收藏 分享(赏)

高速缓冲存储器Cache的工作原理及技术实现.doc

上传人:scg750829 文档编号:5580231 上传时间:2019-03-08 格式:DOC 页数:14 大小:64.50KB
下载 相关 举报
高速缓冲存储器Cache的工作原理及技术实现.doc_第1页
第1页 / 共14页
高速缓冲存储器Cache的工作原理及技术实现.doc_第2页
第2页 / 共14页
高速缓冲存储器Cache的工作原理及技术实现.doc_第3页
第3页 / 共14页
高速缓冲存储器Cache的工作原理及技术实现.doc_第4页
第4页 / 共14页
高速缓冲存储器Cache的工作原理及技术实现.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、桂林理工大学 2013 年春季学期课程论文题目:高速缓冲存储器 Cache 的工作原理及技术实现专业: 网络工程 班级: 网络 11-2 班 学号: 3110757202 姓名: xxx 信息科学与工程学院2013 年 7 月【内容摘要】 缓冲存储器用在两个工作速度不同的硬件之间,在交换信息过程中起到缓冲作用,它能提高计算机系统的工作效益。高速缓冲存储器 Cache是架设在 CPU 与内存之间的临时存储器,它的容量比内存小但交换速度快,主要用来提高 CPU 提取数据的速度 , Cache 作为 PC 系统中一个重要功能部件 ,已成为评价和选购 P C 系统的重要指标 ,下面主要谈谈Cache

2、的原理 、设计及发展趋势。【关键词】 Cache CPU 命中率 映像 局部性原理【前言】我们通常都认为计算机的速度是由 CPU 决定的, 虽然 CPU 主频的提升会带动系统性能的改善,但系统性能的提高不仅仅取决于 CPU,还要有其它的硬件或软件来充分发挥它的速度,与系统架构、指令结构、信息在各个部件之间的传送速度及存储部件的存取速度等因素有关,特别是与 CPU/内存之间的存取速度有关。我们知道要使用的软件都要通过主存储器(内存)才能运行,而主存储器的运行速度和 CPU 之间有一个数量级的差距,这就限制了 CPU 速度潜力的发挥,若 CPU 工作速度较高,但内存存取速度较低,则造成 CPU 等

3、待,降低处理速度,浪费 CPU 的能力。如500MHz 的 P,一次指令执行时间为 2ns,与其相配的内存(SDRAM)存取时间为 10ns,比前者慢 5 倍,CPU 和 PC 的性能怎么发挥出来?如何减少 CPU 与内存之间的速度差异?有 4 种办法:一种是在基本总线周期中插入等待,这样会浪费 CPU 的能力。另一种方法是采用存取时间较快的 SRAM 作存储器,这样虽然解决了 CPU 与存储器间速度不匹配的问题,但却大幅提升了系统成本。第 3 种方法是在慢速的 DRAM 和快速CPU 之间插入一速度较快、容量较小的 SRAM,起到缓冲作用;使 CPU 既可以以较快速度存取 SRAM 中的数据

4、,又不使系统成本上升过高,这就是Cache 法。还有一种方法,采用新型存储器。目前,一般采用第 3 种方法。它是 PC 系统在不大增加成本的前提下,使性能提升的一个非常有效的技术。高速缓冲存储器 Cache 的运行速度高于主存储器数倍,与 CPU 速度差不多,容量较小。【正文】一、高速缓冲存储器的结构Cache 的功能是用来存放那些近期需要运行的指令与数据。目的是提高 CPU 对存储器的访问速度。为此需要解决 2 个技术问题:一是主存地址与缓存地址的映象及转换; 二是按一定原则对 Cache 的内容进行替换。 Cache 的结构和工作原理如下图所示。 主要由三大部分组成: Cache 存储体:

5、存放由主存调入的指令与数据块。 地址转换部件:建立目录表以实现主存地址到缓存地址的转换。 替换部件:在缓存已满时按一定策略进行数据块替换,并修改地址转换部件。Cache 通常由相联存储器实现。相联存储器的每一个存储块都具有额外的存储信息,称为标签(Tag)。当访问相联存储器时,将地址和每一个标签同时进行比较,从而对标签相同的存储块进行访问。Cache 的 3种基本结构如下: 1、全相联 Cache。地址映象规则:主存的任意一块可以映象到Cache 中的任意一块 (1) 主存与缓存分成相同大小的数据块。 (2) 主存的某一数据块可以装入缓存的任意一块空间中。 全相联方式的对应关系如下图所示。如果

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

7、2、直接映像 Cache。地址映象规则: 主存储器中一块只能映象到Cache 的一个特定的块中。 (1) 主存与缓存分成相同大小的数据块。 (2) 主存容量应是缓存容量的整数倍,将主存空间按缓存的容量分成区,主存中每一区的块数与缓存的总块数相等。 (3) 主存中某区的一块存入缓存时只能存入缓存中块号相同的位置。直接相联映象规则如下图直接映像 Cache 不同于全相联 Cache,地址仅需比较一次。在直接映像 Cache 中,由于每个主存储器的块在 Cache 中仅存在一个位置,因而把地址的比较次数减少为一次。其做法是,为 Cache 中的每个块位置分配一个索引字段,用 Tag 字段区分存放在

8、Cache 位置上的不同的块。单路直接映像把主存储器分成若干页,主存储器的每一页与 Cache 存储器的大小相同,匹配的主存储器的偏移量可以直接映像为 Cache 偏移量。Cache 的 Tag 存储器(偏移量)保存着主存储器的页地址(页号)。以上可以看出,直接映像 Cache 优于全相联 Cache,能进行快速查找,其缺点是当主存储器的组之间做频繁调用时,Cache 控制器必须做多次转换。3.组相联映象方式组相联的映象规则: (1) 主存和 Cache 按同样大小划分成块。 (2) 主存和 Cache 按同样大小划分成组。 (3) 主存容量是缓存容量的整数倍,将主存空间按缓冲区的大小分成区,

9、主存中每一区的组数与缓存的组数相同。 (4) 当主存的数据调入缓存时,主存与缓存的组号应相等,也就是各区中的某一块只能存入缓存的同组号的空间内,但组内各块地址之间则可以任意存放, 即从主存的组到 Cache 的组之间采用直接映象方式;在两个对应的组内部采用全相联映象方式。 下图示出了组相联的映象关系, 图中缓存共分 Cg 个组,每组包含有 Gb 块; 主存是缓存的 Me 倍,所以共分有 Me 个区, 每个区有 Cg 组,每组有 Gb 块。那么, 主存地址格式中应包含 4 个字段:区号、区内组号、组内块号和块内地址。 而缓存中包含 3 个字段:组号、组内块号、块内地址。主存地址与缓存地址的转换有

10、两部分,组地址是按直接映象方式,按地址进行访问,而块地址是采用全相联方式,按内容访问。组相联 Cache 是介于全相联 Cache 和直接映像 Cache 之间的一种结构。这种类型的 Cache 使用了几组直接映像的块,对于某一个给定的索引号,可以允许有几个块位置,因而可以增加命中率和系统效率。优点:块的冲突概率比较低,块的利用率大幅度提高,块失效率明显降低。 缺点:实现难度和造价要比直接映象方式高。二、Cache 的工作原理及技术实现1、读取顺序CPU 要读取一个数据时,首先从 Cache 中查找,如果找到就立即读取并送给 CPU 处理;如果没有找到,就用相对慢的速度从内存中读取并送给 CP

11、U 处理,同时把这个数据所在的数据块调入 Cache 中,可以使得以后对整块数据的读取都从 Cache 中进行,不必再调用内存。正是这样的读取机制使 CPU 读取 Cache 的命中率非常高(大多数CPU 可达 90%左右) ,也就是说 CPU 下一次要读取的数据 90%都在 Cache中,只有大约 10%需要从内存读取。这大大节省了 CPU 直接读取内存的时间,也使 CPU 读取数据时基本无需等待。总的来说,CPU 读取数据的顺序是先 Cache 后内存。2、基于程序访问的局部性对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范

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

13、地将与当前指令集相关联的一个不太大的后继指令集从内存读到 Cache,然后再与 CPU 高速传送,从而达到速度匹配。CPU 对存储器进行数据请求时,通常先访问 Cache。由于局部性原理不能保证所请求的数据百分之百地在 Cache 中,这里便存在一个命中率。即CPU 在任一时刻从 Cache 中可靠获取数据的几率。命中率越高,正确获取数据的可靠性就越大。一般来说,Cache 的存储容量比主存的容量小得多,但不能太小,太小会使命中率太低;也没有必要过大,过大不仅会增加成本,而且当容量超过一定值后,命中率随容量的增加将不会有明显地增长。只要 Cache 的空间与主存空间在一定范围内保持适当比例的映

14、射关系,Cache 的命中率还是相当高的。一般规定 Cache 与内存的空间比为 4:1000,即 128kB Cache 可映射 32MB 内存;256kB Cache 可映射 64MB 内存。在这种情况下,命中率都在 90以上。至于没有命中的数据,CPU 只好直接从内存获取。获取的同时,也把它拷进 Cache,以备下次访问。3、缓存分类前面是把 Cache 作为一个整体来考虑的,现在要分类分析了。Intel从 Pentium 开始将 Cache 分开,通常分为一级高速缓存 L1 和二级高速缓存 L2。在以往的观念中,L1 Cache 是集成在 CPU 中的,被称为片内Cache。在 L1

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

16、始,由于工艺的提高 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 Cache 惟一区别在于读取顺序。4、读取命中率CPU 在 Cache 中找到有用的

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

18、为读取 L2 Cache 后未命中的数据设计的种 Cache,在拥有 L3 Cache 的 CPU 中,只有约 5%的数据需要从内存中调用,这进一步提高了 CPU 的效率。为了保证 CPU 访问时有较高的命中率,Cache 中的内容应该按一定的算法替换。一种较常用的算法是“最近最少使用算法” (LRU 算法) ,它是将最近一段时间内最少被访问过的行淘汰出局。因此需要为每行设置一个计数器,LRU 算法是把命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出 Cache,提高 Ca

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

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

21、he分离型。因为这种双路高速缓存结构减少了争用高速缓存所造成的冲突,改进了处理器效能,以便数据访问和指令调用在同一时钟周期内进行。但是,仅依靠增加在片一级 Cache 的容量,并不能使微处理器性能随之成正比例地提高,还需设置二级 Cache。在 L1 Cache 结构方面,一般采用回写式静态随机存储器(SRAM) 。目前,L1 Cache 容量有加大的趋势。L2 Cache 的设计分芯片内置和外置两种设计。如 AMD K63 内置的256kB L2 Cache 与 CPU 同步工作。外置 L2 Cache,一般都要使二级Cache 与 CPU 实现紧密耦合,并且与在片一级 Cache 形成无阻

22、塞阶层结构。同时还要采用分离的前台总线(外部 I/O 总线)和后台总线(二级Cache 总线)模式。显然,将来随着半导体集成工艺的提高,如果 CPU 与二级 Cache 集成在单芯片上,则 CPU 与二级 Cache 的耦合效果可能更佳。由于 L2 Cache 内置,因此,还可以在原主板上再外置大容量缓存1MB2MB,它被称为 L3 Cache。6、PC 中的 Cache 技术的实现PC 中 Cache 的发展是以 80386 为界的。目前,PC 中部分已实现的Cache 技术如表 1 所示表 1 pc 中部分已实现的 cache 技术系统 l0 l1cache l2cache l3cache

23、 cache 主存储器8088 无 无 无 无 无 dram80286 无 无 无 无 无 dram80386dx 无 外部 sram 无 无 sram dram80486dx 无 内部 8kb 外部 sram 无 sram drampentium 无 内部 8kb+8kb 外部 sram 无 sram dramppro 无 内部 8kb+8kb 内部封装 256kb 或512kb 无 sram drammmx 无 内部 16kb+16kb 外部 sram 无 sram dramp/p 无 内部 16kb+16kb 卡上封装 512kb1mb 无 sram dramk6- 内部 32kb+32

24、kb 芯片背上封装 256kb外部1mb sram dram【结语】高速缓冲存储器的技术发展:目前,PC 系统的发展趋势之一是 CPU主频越做越高,系统架构越做越先进,而主存 DRAM 的结构和存取时间改进较慢。因此,Cache 技术愈显重要,在 PC 系统中 Cache 越做越大。广大用户已把 Cache 做为评价和选购 PC 系统的一个重要指标。总之,在传输速度有较大差异的设备间都可以利用高速缓冲存储器作为匹配来调节差距,或者说是这些设备的传输通道。在显示系统、硬盘和光驱,以及网络通讯中,都需要使用 Cache 技术。但 Cache 均由静态 RAM 组成,结构复杂,成本不菲,使用现有工艺在有限的面积内不可能做得很大,不过,这也正是技术前进的源动力,有需要才有进步!【参考文献】1 苏东庄 计算机系统结构,北京 :国防工业出版社,1984 年。2 五爱英 计算机组成与结构,北京 :清华大学出版社,1995年。3 蒋本珊 计算机组成原理,北京:清华大学出版社,2008 年。

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

当前位置:首页 > 实用文档 > 解决方案

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报