为什么StoreLoad比其他障碍类型贵?

问题描述

已经有question关于为什么StoreLoad屏障昂贵的原因,answer解释说这很昂贵,因为StoreLoad屏障阻塞了负载,直到(可能很昂贵的)Store操作完成为止。

但是,这对我而言并不完全有意义,因为其他屏障类型(例如LoadStore,LoadLoad,StoreStore)似乎具有与屏障之后的操作相同的属性,该屏障将始终被阻塞,直到完成之前。我想知道是否/为什么总是认为StoreLoad与perf各自的其他障碍在本质上有所不同?

我确实了解到,在具有强大内存模型的特定平台上(例如X86),从cpu的角度来看,其他三种屏障类型不受限制,因此仅需要编译器屏障。但是其他没有强大内存模型保证的平台呢?例如ARM,PowerPC? StoreLoad仍然更昂贵吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)