中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

原子操作多核场景优化

原理

LL/SC(Load-link/Store-condition)原子指令需要把共享变量先load到本核所在的L1 cache中进行修改,在锁竞争少的情况下性能较好,锁竞争激烈时会导致系统性能下降严重。ARMv8.1规范中引入了新的原子操作指令扩展LSE(Large System Extensions),将计算操作放到L3 cache中进行。不仅增大数据共享范围,减少cache一致性耗时,还能在锁竞争激烈时可以提升锁的性能。

在多核、原子锁争抢严重的情况下,建议在GCC编译选项中添加LSE相关选项,减缓锁竞争。

LL/SC指令(ldaxr&stlxr):

LSE指令(ldaddal):

修改方式

GCC6.0以上版本支持(建议使用gcc7.3.0以上版本)。

在编译选项中增加:

-march=armv8-a+lse

或者

-march=armv8.1-a

或者

-march=armv8.2-a
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词