Hardware and its habits

硬件发展

Pipelined CPUs

  • 流水线+超标量+乱序执行+分支预测
  • 分支预测失败将导致预取的指令全部丢弃
  • 不同线程共享一个CPU核心,指令分解的微操作流水线失效

Memory References

  • 直接访问内存的成本过高
  • 现代计算机会增加三级缓存尽可能减小成本

Atomic Operation

  • 现代计算机改进原子操作
  • 识别具有原子操作的所有缓存行,所有缓存行由单个CPU所有
  • 非原子操作进行store可以使用store buffer而非cacheline
  • 为维护多个数据的同步,CPU提供了memory barrier

Memory Barriers

  • 内存屏障,实现多个数据的同步

Thermal Throttling

  • CPU功耗升高,温度也会升高;受限于冷却设备,可能会自主截断功耗继续升高

Cache Misses

  • 缓存未命中,会取下一级缓存或者内存中取,这实际上增加了开销

I/O Operations