处理器高速缓存的工作原理

2024-10-14 21:53:13

1、处理器高速缓存历史篇:1985年英特尔公司研发的386DX,第一次把缓存技术运用在处理器上,但当时的缓存器在处理器的外面。九十年代初英特尔公司研发486DX,把高速缓存器集成到处理器中,大小有8K,并称为1级缓存L1,同时主板上的高速缓存称为二级缓存L2。1993年英特尔推出Pentium系列,首次把一级缓存拆分成一级指令缓存(L1I)和一级数据缓存(L1D)。二级缓存不变,仍集成在主办上。后续AMD公司相继推出K5、K6、K6-2处理器延续同样的X86体系结构。K6-3推出了3级缓存L3。L2在处理器外,处理器访问速率很低,从486DX2 CPU开始处理器存取内部数据的速率就不同于处理器存取外部数据的速率。例如工作在200兆赫Pentium-200,内部频率200兆赫,但其二级缓存(外部)的频率L2只有66兆赫。1996年英特尔公司推出了最新一代的第六代X86系列CPU——P6,把二级缓存芯片封装入处理器中。这种体系结构沿用到现在,把一级和二级高速缓存集成在CPU内部,运行于CPU内部的时钟频率。CPU的型号决定了其高速缓存的大小,除了更换CPU,没有其它的方法增加高速缓存的大小。

处理器高速缓存的工作原理

3、多核处理器内的二级高速缓存:多核CPU中的L2缓存体系结构变化很大,取决于CPU模型。基于K8架构的奔腾D和AMD双核心处理器,每个CPU核心都有自己的L2高速缓存。所以每个核心工作起来就像是一个完全独立的CPU。基于Pentium M的微体系结构英特尔双核心处理器,有一个共享L2高速缓存。英特尔公司认为共享体系结构更好,因为有两个独立缓存空间会出现利用率不一致的问题。另一方面,英特尔四核CPU:酷睿 2 Ex和酷睿2-四核,使用两个双核心芯片,这意味着共享只发生芯1和2和3和4之间。当时英特尔计划使用单个芯片控制四核CPU。即使用L2缓存在四个核心之间共享。下图中,可以看到使用这三种L2内存缓存解决方案之间的比较。基于K10架构的AMD处理器在CPU内部有一个共享的三级高速缓存L3,结合以上两种方法,示意图如下第二张图,这个缓存的大小将取决于CPU模型,功能类似于L2。

处理器高速缓存的工作原理

4、高速缓存的工作原理:CPU取指单元从一级指令缓存中获取将要执行的指令,如果获取不到,将在二级缓存中获取,仍获取不到的话,就团蝣逅捎必须从内存中获取指令。CPU从高速缓存中获得所需的指令或数据,称之为“命中”,相反CPU在高速缓存中获得不到所需要的指令或数据,必须直接从内存中获取的情况,称之为“丢失”。当然,当你开机时高速缓存是空的,所以访问内存是必需的-会不可避免的出现“丢失”。但是在第一个指令被加载之后,高速缓存的表演开始了。当CPU从内存某个位置加载指令时,一个称为缓存控制器的小的数据块,会加载入高速缓存内,它标记最近一次CPU加载指令的内存地址。因为程序经常顺序地执行,所以CPU将请求的下一个内存地址可能是它刚刚加载的内存地址下一个单位的地址。所以缓存控制器会提前加载一些该地址中的数据,因此CPU不需要到外面去访问数据,它已经加载在嵌入式CPU中的缓存控制器中,并以CPU内部的传输速率进行存取。缓存控制器存储的数据量称为“行”,长度一般64位字节。除了加载少量的数据外,内存制器会试图猜测CPU接下来会访问的地址。有一种称为预取器的电路,它所做的是:当内存中前64位字节加载入缓存控制器后,如果程序还需要以顺序的方式从内存位置加载指令和数据,那么就通过预取器把CPU下一个请求的指令和数据加载到高速缓存中。下面我们总结下高速缓存的工作方式:1.CPU要求在地址“A”中存取指令/数据。2.如果地址“A”的内容不在高速缓存中,CPU必须直接从内存中获取它。3.缓存控制器将一行(通常为64字节)从地址“A”开始加载到高速缓存中。这比CPU请求的数据要多,所以如果程序继续按顺序运行(也就是请求地址A + 1),CPU将请求的下一个指令/数据将被加载到缓存中。4.通过一种称为预取器的电路加载更多的数据,即从地址+ 64开始加载数据。例如:奔腾4 CPU有一个256字节的预取器,所以接下来的256个字节的数据将加载到高速缓存后面。如果程序总是按顺序运行,CPU将永远不需要直接从内存中获取数据——除了加载第一个指令,因为CPU需要的指令和数据总是在CPU请求之前存储在内存缓存中。但是程序不会像这样运行,时不时地从一个内存位置跳到另一个内存位置。缓存控制器的主要处理猜测CPU将跳转到什么地址,在CPU请求之前,将这个地址的内容加载到内存缓存中,以免CPU访问内存,减慢系统的速度。这个作业叫做分支预测,所有的现代CPU都有这个特性。现代CPU的命中率至少为80%,这意味着CPU至少有80%的时间没有直接访问内存,而是高速缓存。

处理器高速缓存的工作原理处理器高速缓存的工作原理
猜你喜欢