Cache and Memory Subsystem

Intel Nehalem微架构的每个处理器核包括一个一级指令高速缓存,一个一级数据高速缓存,以及一个二级混和式(指令与数据)高速缓存。单个物理处理器封装可以包含多个处理器核,以及处理器核之外的一些共享的子系统集合(统称为核外uncore),例如共享的三级缓存,集成的内存控制器等。以Intel Core i7处理器为例,核外部分包括一个被所有处理器核共享的混和式三级缓存,Intel QuickPath Interconnect(QPI)以及相关的硬件逻辑等。

一级缓存和二级缓存都是回写式的,但是是非包含式(non-inclusive)缓存。共享的三级缓存是回写式的,而且是包含式 (inclusive) 缓存。这样,任何位于一级缓存(指令或数据),二级缓存中的缓存行必定也存在于三级缓存中。三级缓存之所以设计为包含式的,主要是为了节省处理器核之间的缓存嗅探(snoop)流量。下图简单表示了各级缓存之间的包含关系。

下表列出了各级缓存的性能特征。特别要注意的是,三级缓存的访问延迟是可变的,可以看作是处理器频率与核外频率的比值的某个函数关系,即

L3 Latency = f(processor frequency / uncore frequency)

注:事实上,处理器运行频率通常高于核外运行频率。

表:高速缓存的性能数据参数(以Intel Core i7处理器为例)

Level

Capacity

(Bytes)

Associativity

(Ways)

Line Size

(Bytes)

Latency

(clocks)

Throughput

(clocks)

Write Udpate Policy

L1D

32K

8

64

4

1

Writeback

L1I

32K

4

N/A

N/A

N/A

N/A

L2

256K

8

64

101

Varies

Writeback

L3 (Shared)2

8M

16

64

35-40+2

Varies

Writeback

注1:软件可感知的延迟随着访问模式和其他因素会产生变化。

注2:最小的L3延迟是35的周期,此时处理器核频率与核外频率相等。

Intel Nehalem微架构实现了两级地址转换旁查缓冲区(TLB)。第一级有独立的数据TLB和指令TLB构成。DTLB0为数据访问提供地址转换,它有64个条目支持4KB的数据页面和32个条目支持更大的页面。ITLB0为指令访问提供地址转换,它有64个条目(每线程)支持4KB的指令页面和7个条目(每线程)支持更大的页面。

二级TLB (STLB)是混和式的,处理对4KB页面的数据或指令访问,所有的条目都是4路相联。当ITLB或者DTLB查询未命中时,会将查询转发到二级TLB。下面列出了各级TLB的参数指标:

  • DTLB0 4KB: 64 entries / large pages: 32 entries
  • ITLB0 4KB: 64 entires / large pages: 7 entries
  • STLB 4KB: 512 entries (for both data and instruction)

注: STLB并不支持大存储器页面的转换查询。

DTLB0未命中但是STLB命中会有7个周期的性能损失。由于与流水线中其他操作的重叠,通常软件感知不到TLB查询导致的延迟。只有当DTLB0被用于某些分发情形时,软件才能感知到这种类型的性能下降。大多数的二级TLB未命中以及执行页面未命中处理程序导致的延迟是非阻塞性的。(参看原文如下:)

Intel® Nehalem/Westmere架构/微架构/流水线 (5) - 高速缓存 存储器子系统相关推荐

  1. Intel Haswell/Broadwell架构/微架构/流水线 (5)-高速缓存存储器子系统

    Cache and Memory Subsystem 高速缓存层级结构与前代微架构类似,每个处理器核包括一级指令缓存,一级数据缓存,一个混和式二级缓存,核外的三级混和式缓存容量与特定的产品配置有关.三 ...

  2. Intel Skylake (Client) 架构/微架构/流水线 (4) - 高速缓存存储器子系统

    Cache and Memory Subsystem Skylake Client微架构的缓存层级结构具有如下的增强: 较前代具有更高的带宽 更大的缓冲区,可以同时处理更大的读存与写存操作 处理器可以 ...

  3. Intel® Nehalem/Westmere架构/微架构/流水线 (1) - 特性概述

    Intel® Nehalem/Westmere Microarchitecture Intel Nehalem微架构的全称是Intel Microarchitecture code name Neha ...

  4. Intel® Nehalem/Westmere架构/微架构/流水线 (7) - 存储转发增强

    Store Forwarding Enhancement 当一个读存操作紧跟在一个写存操作后,如果这两个操作访问同一个存储器地址,在符合转发条件的情况下,处理器可以直接将写存操作的数据发送给读存操作: ...

  5. Intel(R) 处理器产品架构/微架构对照表

    Intel(R) 处理器与微架构对照表 2020/12/23:更新至IceLake/TigerLake微架构 2019/07/09:更新至 2nd Generation Intel® Xeon® Sc ...

  6. Pentium M处理器架构/微架构/流水线(1) - 流水线概述

    Intel® Pentium® M Processor 与Intel NetBurst微架构类似,Intel Pentium M处理器微架构 的流水线也包括3个主要部分: 有序发射前端 乱序超标量执行 ...

  7. Intel® Nehalem/Westmere架构/微架构/流水线 (4) - 执行引擎

    Execution Engine 译码后微指令队列IDQ(参看上图最右侧)将微指令流发送给流水线的分配/重命名(allocation/renaming)部件.乱序引擎共支持最多可达128条进行中微指令 ...

  8. Intel® Nehalem/Westmere架构/微架构/流水线 (3) - 流水线前端

    Front End Overview 下图展示了Nehalem微架构流水线前端的主要构成组件.取指单元IFU每个周期可以从一级指令缓存中读取16字节的对齐指令流,然后将其送到指令长度译码器ILD中.指 ...

  9. Intel® Nehalem/Westmere架构/微架构/流水线 (2) - 流水线概述

    Microarchitecture Pipeline Intel Nehalem微架构延续了65nm制程的Intel Core微架构上的4宽度流水线.下图是在Intel Core i7处理器上采用的N ...

最新文章

  1. from selenium.webdriver.support.ui import Select
  2. quartz集群调度机制调研及源码分析---转载
  3. hdu 5570(数学期望)
  4. MySQL表名不区分大小写的设置方法
  5. ---WebCam网络摄像头7 cmos--yuv rgb , Format............:V4L2_PIX_FMT_YUYV
  6. python读取配置文件失败原因_python读取配置文件报keyerror-文件路径不正确导致的错误...
  7. 面向非易失内存的MPI-IO接口优化
  8. 【操作系统】进程的创建与终止过程中的父子进程
  9. 详解GaussDB(DWS) explain分布式执行计划
  10. 红橙Darren视频笔记 OKHttp基本使用 对http框架进行封装 链式调用
  11. uni-app获取当前具体日期时间并将其格式化
  12. java 反射 本类_Java 反射 Class类
  13. intellij idea 12 搭建maven web项目 freemarker + spring mvc
  14. git 修改密码_在windows中利用gitblit搭建git服务端
  15. gms2游戏移植linux,GMS卡刷包制作
  16. Flink中的时间语义 和WaterMark
  17. Koo叔说Shader-Unity中的Shader
  18. linux动态频率调节系统cpufreq,Linux的cpufreq(动态变频)技术
  19. 表单域修饰符numebr、trim、lazy
  20. 同里古镇百年古建筑深夜被毁

热门文章

  1. WORD如何使得公式居中,公式自动编号且编号右对齐,如何交叉引用公式?
  2. note_idea中的maven命令操作
  3. 联想ghost重装系统_联想怎么安装ghostwin7系统的教程
  4. mysql查看客户端执行的语句_查看MySQL最近执行的语句-阿里云开发者社区
  5. python导入自己写的模块_Python:包、模块和导入
  6. c语言程序设计授课进度安排表,C语言程序设计教学大纲、教学计划进度简表
  7. python scipy optimize_scipy.optimize.fminbound:设置参数的界限
  8. k均值的损失函数_K-Means算法的实现
  9. python提高文件读取速度_Python提高了HDF5文件的读取速度
  10. 计算机应用的重要性作文,关于科技的重要性作文(通用5篇)