Cache的工作原理4.docx

上传人:scccc 文档编号:12382771 上传时间:2021-12-03 格式:DOCX 页数:8 大小:14.95KB
返回 下载 相关 举报
Cache的工作原理4.docx_第1页
第1页 / 共8页
Cache的工作原理4.docx_第2页
第2页 / 共8页
Cache的工作原理4.docx_第3页
第3页 / 共8页
Cache的工作原理4.docx_第4页
第4页 / 共8页
Cache的工作原理4.docx_第5页
第5页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Cache的工作原理4.docx》由会员分享,可在线阅读,更多相关《Cache的工作原理4.docx(8页珍藏版)》请在三一文库上搜索。

1、、/ 、一 刖百虽然CPU主频的提升会带动系统性能的改善,但系统性能的提高不仅仅取决 于CPU,还与系统架构、指令结构、信息在各个部件之间的传送速度及存储部件 的存取速度等因素有关,特别是与 CPU/存之间的存取速度有关。若CPU工作速度较高,但存存取速度相对较低,则造成 CPU等待,降低处理 速度,浪费CPU的能力。如500MHz的Pm , 一次指令执行时间为2ns,与其相配的存(SDRAM)存取 时间为10ns,比前者慢5倍,CPU和PC的性能怎么发挥出来?如何减少CPU与存之间的速度差异?有4种办法:一种是在基本总线周期中插入等待,但这样会浪费CPU的能力。另一种方法是采用存取时间较快的

2、 SRAM作存储器,这样虽然解决了 CPU与 存储器间速度不匹配的问题,但却大幅提升了系统成本。第3种方法是在慢速的DRAM和快速CPU之间插入一速度较快、容量较小的 SRAM,起到缓冲作用;使CPU既可以以较快速度存取 SRAM中的数据,又不使 系统成本上升过高,这就是 Cache法。还有一种方法,采用新型存储器。目前,一般采用第3种方法。它是PC系统在不大增加成本的前提下,使性能 提升的一个非常有效的技术。本文简介了 Cache的概念、原理、结构设计以及在 PC及CPU中的实现。Cache的工作原理Cache的工作原理是基于程序访问的局部性。对大量典型程序运行情况的分析结果表明, 在一个较

3、短的时间间隔,由程序产 生的地址往往集中在存储器逻辑地址空间的很小围。指令地址的分布本来就是连续的,再加上循环程序段和子程序段要重复执行多次。因此,对这些地址的访问就自然地具有时间上集中分布的倾向。数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元 的选择都可以使存储器地址相对集中。 这种对局部围的存储器地址频繁访问, 而 对此围以外的地址则访问甚少的现象,就称为程序访问的局部性。根据程序的局部性原理,可以在主存和 CPU通用寄存器之间设置一个高速的 容量相对较小的存储器,把正在执行的指令地址附近的一部分指令或数据从主存 调入这个存储器,供CPU在一段时间使用。这对提高程序的

4、运行速度有很大的 作用。这个介于主存和CPU之间的高速小容量存储器称作高速缓冲存储器 (Cache)。系统正是依据此原理,不断地将与当前指令集相关联的一个不太大的后继指令 集从存读到Cache,然后再与CPU高速传送,从而达到速度匹配。CPU对存储器进行数据请求时,通常先访问Cache。由于局部性原理不能保证 所请求的数据百分之百地在 Cache中,这里便存在一个命中率。即 CPU在任一 时刻从Cache中可靠获取数据的几率。命中率越高,正确获取数据的可靠性就越大。一般来说,Cache的存储容量比主存的容量小得多,但不能太小,太小会使命中率太低;也没有必要过大,过大 不仅会增加成本,而且当容量

5、超过一定值后,命中率随容量的增加将不会有明显 地增长。只要Cache的空间与主存空间在一定围保持适当比例的映射关系,Cache的命中率还是相当高的。一般规定Cache与存的空间比为4: 1000,即128kB Cache可映射32MB存; 256kB Cache可映射64MB存。在这种情况下,命中率都在 90%以上。至于没有 命中的数据,CPU只好直接从存获取。获取的同时,也把它拷进 Cache,以备下 次访问。Cache的基本结构Cache通常由相联存储器实现。相联存储器的每一个存储块都具有额外的存储 信息,称为标签(Tag)。当访问相联存储器时,将地址和每一个标签同时进行比 较,从而对标签

6、相同的存储块进行访问。Cache的3种基本结构如下:全相联Cache在全相联Cache中,存储的块与块之间,以及存储顺序或保存的存储器地址 之间没有直接的关系。程序可以访问很多的子程序、 堆栈和段,而它们是位于主 存储器的不同部位上。因此,Cache保存着很多互不相关的数据块,Cache必须对每个块和块自身的 地址加以存储。当请求数据时,Cache控制器要把请求地址同所有地址加以比较, 进行确认。这种Cache结构的主要优点是,它能够在给定的时间去存储主存器中的不同 的块,命中率高;缺点是每一次请求数据同Cache中的地址进行比较需要相当的时间,速度较慢。直接映像Cache直接映像Cache不

7、同于全相联Cache,地址仅需比较一次。在直接映像Cache中,由于每个主存储器的块在 Cache中仅存在一个位置, 因而把地址的比较次数减少为一次。其做法是,为 Cache中的每个块位置分配 一个索引字段,用Tag字段区分存放在Cache位置上的不同的块。单路直接映像把主存储器分成若干页,主存储器的每一页与 Cache存储器的 大小相同,匹配的主存储器的偏移量可以直接映像为 Cache偏移量。Cache的 Tag存储器(偏移量)保存着主存储器的页地址(页号)。以上可以看出,直接映像Cache优于全相联Cache,能进行快速查找,具缺点 是当主存储器的组之间做频繁调用时,Cache控制器必须做

8、多次转换。组相联Cache组相联Cache是介于全相联Cache和直接映像Cache之间的一种结构。这种 类型的Cache使用了几组直接映像的块,对于某一个给定的索引号,可以允许 有几个块位置,因而可以增加命中率和系统效率。Cache与DRAM存取的一致性在CPU与主存之间增加了 Cache之后,便存在数据在CPU和Cache及主存之 间如何存取的问题。读写各有2种方式。贯穿读出式(Look Through)该方式将Cache隔在CPU与主存之间,CPU对主存的所有数据请求都首先送 到Cache,由Cache自行在自身查找。如果命中,则切断 CPU对主存的请求, 并将数据送出;不命中,则将数据

9、请求传给主存。该方法的优点是降低了 CPU对主存的请求次数,缺点是延迟了 CPU对主存的 访问时间。旁路读出式(Look Aside)在这种方式中,CPU发出数据请求时,并不是单通道地穿过 Cache,而是向 Cache和主存同时发出请求。由于 Cache速度更快,如果命中,则 Cache在将 数据回送给CPU的同时,还来得及中断CPU对主存的请求;不命中,则 Cache 不做任何动作,由CPU直接访问主存。它的优点是没有时间延迟,缺点是每次 CPU对主存的访问都存在,这样,就 占用了一部分总线时间。写穿式(Write Through)任一从CPU发出的写信号送到Cache的同时,也写入主存,

10、以保证主存的数 据能同步地更新。它的优点是操作简单,但由于主存的慢速,降低了系统的写速度并占用了总线 的时间。回写式(Copy Back)为了克服贯穿式中每次数据写入时都要访问主存,从而导致系统写速度降低并 占用总线时间的弊病,尽量减少对主存的访问次数,又有了回写式。它是这样工作的:数据一般只写到Cache,这样有可能出现Cache中的数据得 到更新而主存中的数据不变(数据旧)的情况。但此时可在Cache中设一标志地址 及数据旧的信息,只有当Cache中的数据被再次更改时,才将原更新的数据写 入主存相应的单元中,然后再接受再次更新的数据。这样保证了Cache和主存中的数据不致产生冲突。Cach

11、e的分级体系设计微处理器性能由如下几种因素估算:性能=k(f x 1/CPI (1 H)x N)式中:k为比例常数,f为工作频率,CPI为执行每条指令需要的周期数,H为 Cache的命中率,N为存储周期数。虽然,为了提高处理器的性能,应提高工作频率,减少执行每条指令需要的周 期数,提高Cache的命中率。同时分发多条指令和采用乱序控制,可以减少 CPI 值;采用转移预测和增加Cache容量,可以提高H值。为了减少存储周期数N, 可采用高速的总线接口和不分块的 Cache方案。以前提高处理器的性能,主要靠提高工作频率和提高指令级的并行度,今后则主要靠提高Cache的命中率。设计出无阻塞Cache

12、分级结构。Cache分级结构的主要优势在于,对于一个典型的一级缓存系统的 80%的存 申请都发生在CPU部,只有20%的存申请是与外部存打交道。而这20%的外部 存申请中的80%又与二级缓存打交道。因此,只有 4%的存申请定向到DRAM 中。Cache分级结构的不足在于高速缓存组数目受限, 需要占用线路板空间和一些 支持逻辑电路,会使成本增加。综合比较结果还是采用分级Cache。L1 Cache的设计有在片一级分离和统一设计两种方案。Intel、AMD、原DEC等公司将L1 Cache设计成指令 Cache与数据Cache分离 型。因为这种双路高速缓存结构减少了争用高速缓存所造成的冲突, 改进

13、了处理 器效能,以便数据访问和指令调用在同一时钟周期进行。但是,仅依靠增加在片一级 Cache的容量,并不能使微处理器性能随之成正 比例地提高,还需设置二级Cache。在L1 Cache结构方面,一般采用回写式静态随机存储器(SRAM)。目前,L1 Cache容量有加大的趋势。L2 Cache的设计分芯片置和外置两种设计。如AMD K6 3置的256kB L2 Cache与CPU同步工作。外置 L2 Cache, 一般 都要使二级Cache与CPU实现紧密耦合,并且与在片一级 Cache形成无阻塞阶 层结构。同时还要采用分离的前台总线(外部I/O总线)和后台总线(二级Cache总 线)模式。显

14、然,将来随着半导体集成工艺的提高,如果 CPU与二级Cache集成在单芯 片上,则CPU与二级Cache的耦合效果可能更佳。由于L2 Cache置,因此,还可以在原主板上再外置大容量缓存1MB2MB,它被称为L3 Cache。PC中的Cache技术的实现PC中Cache的发展是以80386为界的。结语目前,PC系统的发展趋势之一是CPU主频越做越高,系统架构越做越先进, 而主存DRAM的结构和存取时间改进较慢。因此,Cache技术愈显重要,在PC 系统中Cache越做越大。广大用户已把Cache做为评价和选购PC系统的一个重 要指标。本文小结了 Cache的源脉。希望可以给广大用户一个较系统的

15、参考。速缓冲存储器Cache是位于CPU与存之间的临时存储器,它的容量比存小但交 换速度快。在Cache中的数据是存中的一小部分,但 这一小部分是短时间CPU即将访问的, 当CPU调用大量数据时,就可避开存直接从Cache中调用,从而加快读取速度。 由此可见,在CPU中加入Cache是一种高效的解决方案,这样整个存储器(Cache+存)就变成了既有Cache的高速度,又有存的大容量的存储系统了。 Cache对CPU的性能影响很大,主要是因为 CPU的数据交换顺序和CPU与 Cache间的带宽引起的。高速缓存的工作原理1、读取顺序CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取

16、并送给 CPU 处理;如果没有找到,就用相对慢的速度从存中读取并送给CPU处理,同时把这个数据所在的数据块调入 Cache中,可以使得以后对整块数据的读取都从 Cache中进行,不必再调用存。正是这样 的读取机制使CPU读取Cache的命中率非常高(大多数CPU可达90% 左右),也就是说CPU下一次要读取的数据90%?在Cache中,只有大约10%常 要从存读取。这大大节省了 CPU直接读取存的时间,也使 CPU读取数据时基本 无需等待。总的来说,CPU读取数据的顺序是先Cache后 存。2、缓存分类前面是把Cache作为一个整体来考虑的,现在要分类分析了。Intel从Pentium开始将C

17、ache分开,通常分为一级高速缓存L1和二级高速缓存L2。在以往的观念中,L1 Cache是集成在CPU中的,被称为片Cache在L1中还分 数据Cache (I-Cache)和指令Cache (D-Cache)。它们分别用来 存放数据和执 行这些数据的指令,而且两个 Cache可以同时被CPU访问,减少了争用Cache 所造成的冲突,提高了处理器效能。在P4处 理器中使用了一种先进的一级指令 Cache动态跟踪缓存。它直接和 执行单元及动态跟踪引擎相连,通过动态跟踪引擎可以很快地找到所执行的指 令,并且将 指令的顺序存储在追踪缓存里,这样就减少了主执行循环的解码周 期,提高了处理器的运算效率

18、。以前的L2 Cache没集成在CPU中,而在主板上或与CPU集成在同一块电路板 上,因此也被称为片外Cache但从PIH开始,由于工艺的提高L2 Cache被集成 在CPU核中,以相同于主频的速度工作,结束了 L2 Cache与CPU大差距分频的 历史,使L2 Cache与L1 Cache在性能上平等,得到更高的传输速度。L2Cache只存储数据,因此不分数据 Cache和指令Cache。在CPU核心不变化 的情况下,增加L2 Cache的容量能使性能提升,同一核心的 CPU高低端之分往 往也是在L2 Cache上做手脚,可见L2 Cache的重要性。现在 CPU的L1 Cache 与L2

19、Cache惟一区别在于读取顺序。3、读取命中率CPU在Cache中找到有用的数据被称为命中,当Cache中没有CPU所需的数据 时(这时称为未命中),CPU才访问存。从理论上讲,在一颗拥有 2级Cache的 CPU中,读取L1 Cache的命中率为80% 也就是说CPU从L1 Cache中找至U的有 用数据占数据总量的80%剩下的20%A L2 Cache读取。由于不能准确预测将要 执行的数据,读取L2的命中率也在80画右(从L2读到有用的数据占总数据的 16%。那么还有的数据就不得不从 存调用,但这已经是一个相当小的比例了。在一些高端领域的CPU (彳象Intel的Itanium)中,我们常

20、听到L3 Cache,它是为 读取L2 Cache后未命中的数据设计的 一种Cache,在拥有L3 Cache的CPU中, 只有约5%勺数据需要从存中调用,这进一步提高了 CPU的效率。为了保证CPU访问时有较高的命中率,Cache中的容应该按一定的算法替换。 一种较常用的算法是 最近最少使用算法”(LRU算法),它 是将最近一段时间最 少被访问过的行淘汰出局。因此需要为每行设置一个计数器,LRU算法是把命中 行的计数器清零,其他各行计数器加 1。当需要替换时淘汰 行计数器计数值最 大的数据行出局。这是一种高效、科学的算法,其计数器清零过程可以把一些频 繁调用后再不需要的数据淘汰出 Cache,提高Cache的利用率。缓存技术的发 展总之,在传输速度有较大差异的设备间都可以利用Cache作为匹配来调节差距,或者说是这些设备的传输通道。在显示 系统、硬盘和光驱,以及网络通讯中, 都需要使用Cache技术。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1