Cache and Memory Subsystem
高速缓存层级结构与前代微架构类似,每个处理器核包括一级指令缓存,一级数据缓存,一个混和式二级缓存,核外的三级混和式缓存容量与特定的产品配置有关。三级缓存由多个缓存分片构成,每个分片的容量随产品配置不同,各个分片通过互联环路连接。关于高速缓存的详细信息可以通过CPUID的叶4获得。三级缓存位于核外子系统中,由所有的处理器核共享使用。在某些产品配置中,还支持可选的四级缓存。下表是各级缓存的详细参数信息。
表:Haswell微架构的高速缓存参数
Level |
Capacity/ Associativity |
Line Size (bytes) |
Fastest Latency[1] (cycles) |
Throughput (clocks) |
Peak Bandwidth (bytes/cyc) |
Update Policy |
L1D |
32KB/8 |
64 |
4 |
0.5[2] |
64(LD)+32(ST) |
Writeback |
L1I |
32KB/8 |
64 |
N/A |
N/A |
N/A |
N/A |
L2 Cache |
256KB/8 |
64 |
11 |
Varies |
64 |
Writeback |
L3 (Shared) |
Varies |
64 |
~34 |
Varies |
- |
Writeback |
注1:软件可见的时延可能会根据访问模式与其他因素产生变化。L3时延可能随处理器核时钟频率与核外时钟频率的比值发生变化。
注2:一级数据缓存每个周期可以执行两个读存操作;每个操作读取32字节数据。
TLB层级结构有专用的一级指令TLB,一级数据TLB,加上混和式二级TLB。
表:Haswell微架构的TLB参数
Level |
Page Size |
Entries |
Associativity |
Partition |
指令ITLB |
4KB |
128 |
4 |
Dynamic |
指令ITLB |
2MB/4MB |
8 per thread |
- |
fixed |
数据DTLB |
4KB |
64 |
4 |
Fixed |
数据DTLB |
2MB/4MB |
32 |
4 |
Fixed |
数据DTLB |
1GB |
4 |
4 |
Fixed |
二级TLB |
4KB/2MB/4MB |
1024 |
8 |
Fixed |
Load and Store Operation Enhancements
一级数据缓存可以每周期同时处理两个256位读存操作与一个256位写存操作。混和式二级缓存可以每周期处理一个缓存行(64字节)。此外,还有72个读存缓存区与42个写存缓冲区可供进行中的微指令使用。