Cache Hierarchy
每个处理器核中,高速缓存的层级结构包括一级指令缓存LII,一级数据缓存LID,以及二级缓存。如果开启了Intel超线程技术,数据缓存有可能被两个逻辑处理器共享使用。二级缓存是混和式的,由指令与数据共享使用。物理处理器中所有的处理器核通过一个互联环路连接到共享的三级缓存,即最后级缓存LLC。
将线性地址转换为物理地址的过程中,高速缓存会利用指令地址转换旁查缓冲区ITLB,数据地址转换旁查缓冲区DTLB和共享地址转换旁查缓冲区STLB中缓存的页表查询数据。MESI协议保证了各级缓存中的数据一致性。
表:Sandy Bridge高速缓存参数
Level | Capacity | Associativity | Line Size (bytes) | Write Update Policy | Inclusive |
L1D | 32KB | 8 | 64 | Writeback | - |
L1I | 32KB | 8 | N/A | N/A | - |
L2 (unified) | 256KB | 8 | 64 | Writeback | No |
LLC (L3) | Varies, query CPUID leaf 4 | Varies with Cache size | 64 | Writeback | Yes |