Intel Core & Enhanced Core微架构(10)

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85706358

Intel® Advanced Memory Access

Intel Core微架构中的每个处理器核都包含一个指令缓存和一个一级数据缓存。两个处理器核共享一个2M或4M字节大小的二级混合式缓存(既存放数据也存储指令)。两级缓存都是回写式更新策略且是非包含式缓存(即一级缓存中的缓存行未必一定包含在二级缓存中)。每个处理器核包括:

  • 一级数据缓存,也叫数据缓存单元DCU – DCU可以同时处理多个未完成缓存未命中事件,持续为读存操作和写存操作提供服务,而且维护缓存一致性。DCU的规格如下:
    • 32K字节大小
    • 8路组相联
    • 64字节长度的缓存行
  • 数据(地址)转换旁查缓存区DTLB – Intel Core微架构的DTLB分为两级:内级DTLB0和外级DTLB1。每级DTLB都有多个条目,可以支持4K字节大小的存储器页,或更大的页。内级DTLB0的条目用于读存操作。外级DTLB1的条目支持写存操作以及在DTLB0中未命中的读存操作。所有的条目都是4路相联。下面是每级DTLB的条目特征:
    • DTLB0的大页条目:16个
    • DTLB0的4K页面条目:16个
    • DTLB1的4K页面条目:256个
    • DTLB1的大页条目:32个

DTLB0未命中但是DTLB1命中会导致到2个周期的损失。只有当DTLB0被用于分发情况时,软件才会感受到这种损失。由于Intel智能存储器访问机制,与DTLB1未命中以及缺页处理程序相关的延迟大部分都是非阻塞的。

  • 缺页处理程序(page miss handler - PMH)
  • 访存排序缓存区MOB –
    • 允许投机式且乱序地发射读存和访存操作
    • 确保读存与访存操作在退役时有正确的数据
    • 确保读存和访存操作遵守Intel 64和IA32架构的访存排序规则

Intel Core微架构的存储器簇具有下列特性来加速访存操作:

  • 128位(16字节)的读存和访存操作
  • 数据预取到一级缓存
  • 数据预取逻辑,预取数据到二级缓存
  • 存储转发
  • 访存消歧(memory disambiguation)
  • 8个行填充缓冲区(fill buffer)条目
  • 20存储缓冲区条目
  • 访存操作的乱序执行
  • 流水线化的属主读请求(read-for-ownership)操作

猜你喜欢

转载自blog.csdn.net/qq_43401808/article/details/85706358