CPU性能优化手段 - 缓存
为了提高程序的运行性能, 现代CPU在很多方面对程序进行了优化
例如: CPU高速缓存, 尽可能的避免处理器访问主内存的时间开销, 处理器大多会利用缓存以提高性能
?...在这种高速缓存回写的场景下, 有一个缓存一致性协议, 多数CPU厂商对它进行了实现....对缓存中的数据进行了改动, 需要通知给其他CPU, 也就意味着, CPU处理要控制自己的读写操作, 还要监听其他CPU发出的通知, 从而保证最终一致
CPU性能优化手段 - 运行时指令重排
?...语义, 也就是说, 编译器和处理器不会对存在数据依赖关系的操作做重排序
两个问题
CPU高速缓存下有一个问题:
缓存中的数据与主内存的数据并不是实时同步的, 各CPU间缓存的数据也不是实时同步....在同一时间点, 各CPU所看到的同一内存地址的数据的值可能是不一致的.
CPU执行指令重排序优化的一个问题:
虽然遵守了as-if-serial语义, 但仅在单CPU自己执行的情况下能保证结果正确.