CPU运行时优化(高速缓存、指令重排等)
一、CPU高速缓存与缓存一致性协议
1.1 高速缓存
CPU高速缓存主要是用于优化CPU程序执行性能的手段,高速缓存在硬件层面上尽可能地降低处理器访问主内存的时间开销(引申计算机存储结构—磁盘、内存、高速缓存、寄存器)。
L1和L2缓存均是每个CPU独占的缓存区域,往往缓存空间都不大,通常用于数据缓存和指令缓存。L3缓存进一步降低访问内存延迟,同时提升大数据量计算时的处理器性能,L3缓存是多处理器共用的,由此也引出了缓存一致性协议。
1.2 缓存一致性协议(MESI)
MESI协议用于多处理器使用同一高速缓存时,单个CPU对缓存数据的改动需要通知给其他CPU,也就是说CPU要控制自己的读写操作,还要监听其他CPU发出的通知。MESI协议基于此给每条缓存定义了下面四个状态:
- 修改态:此cache行已被修改过(脏行),内容已不同于主内存,为此cache专有。
- 专