64-ia-32架构优化手册(7)

来源:互联网 发布:照片电子相册制作软件 编辑:程序博客网 时间:2024/05/18 16:16

2.4.5.Intel® Advanced Smart Cache

Intel Core微架构为一块芯片上的两个处理器核优化了若干特性。这两个核共享一个第二级缓存以及一个总线接口单元,统称为IntelAdvanced Smart Cache。本节描述Intel Advanced Smart Cache的组件。图2-9显示了IntelAdvanced Smart Cache架构。

2-9. Intel Advanced Smart Cache架构

表2-27细述了IntelCore微架构中缓存的参数。关于使用确定性的CPUID指令的缓存参数页枚举缓存层次结构识别的信息,参考《Intel®64 and IA-32 Architectures Software Developer’s Manual, Volume 2A》。

表2-27. 基于Intel Core微架构的处理器缓存参数

层级

容量

关联性(路)

行大小

(字节)

访问时延(时钟)

吞吐率(时钟)

更新策略

L1数据

32KB

8

64

3

1

回写

指令

32KB

8

N/A

N/A

N/A

N/A

第二级

(共享L2)[1]

2, 4MB

8或16

64

14[2]

2

回写

第二级

(共享L2)[3]

3, 6MB

12或24

64

1517

2

回写

第三级[4]

8, 12, 16MB

16

64

~110

12

回写

2.4.5.1. 读

当一条指令从一个具有回写(WB)类型的内存位置读数据时,处理器以下列次序在缓存以及内存中查找包含该数据的缓存行:

1.      发起核的DCU。

2.      其他核的DCU以及第二级缓存。

3.      系统内存。

仅当该缓存行被修改,忽略L2缓存中其可用性或状态时,从其他核的DCU获取该缓存行。

表2-28显示了从内存簇不同位置获取前4个字节的特征。时延行提供了访问时延的一个估计。不过,实际的时延依赖于缓存的负载,内存组件及它们的参数而变。

表2-28. Intel Core微架构中读写操作的特征

数据局部性

时延

吞吐率

时延

吞吐率

DCU

3

1

2

1

在其他核中修改状态的DCU

14+5.5总线周期

14+5.5总线周期

14+5.5总线周期

 

第二级缓存

14

3

14

3

内存

14+5.5总线周期+内存

依赖于总线读协议

14+5.5总线周期+内存

依赖于总线写协议

有时,必须逐出一个被修改缓存行来为新缓存腾出空间。这个被修改缓存行的逐出与新数据的引入并行,不需要额外的时延。不过,当数据回写到内存时,逐出使用缓存带宽,还可能使用总线带宽。因此,当多个缓存不命中要求在短时间内逐出被修改行时,缓存响应时间有一个总体上的下降。

2.4.5.2. 写

当一条指令向一个具有WB内存类型的内存位置写数据时,处理器首先确保该行在它自己的DCU中,处在Exclusive或Modified状态。处理器在下列位置,以指定次序查找这个缓存行:

1.      发起核的DCU。

2.      其他核的DCU以及第二级缓存。

3.      系统内存。

仅当该缓存行被修改,忽略L2缓存中其可用性或状态时,从其他核的DCU获取这个缓存行。在完成为所有权读入(readingforownership)后,该数据被写入第一级数据缓存,并且该行被标记为已修改。

为所有权读入与写数据发生在指令回收之后,并遵循回收次序。因此,写时延不影响写指令本身。不过,几个连续写可能具有累积的,会影响性能的时延。表2-28展示了依赖于发起缓存行位置的写时延。



[1] Intel Core微架构(CPUID签名DisplayFamily= 06H,DisplayModel= 0FH)。

[2] 软件可见时延将依赖访问模式与其他因素而变化。

[3] 增强Intel Core微架构(CPUID签名DisplayFamily = 06H,DisplayModel = 17H或1DH)。

[4] 增强Intel Core微架构(CPUID签名DisplayFamily = 06H,DisplayModel = 1DH)。


原创粉丝点击