- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.7 高速缓冲存储器 5.7.1 高速缓存工作原理 5.7.2 Cache的读写操作 5.7.3 地址映象 5.7.4 替换算法 5.7.5 更新策略 5.7.6 PC机中Cache技术的实现 5.7.1 高速缓存工作原理 1. 程序的局部性原理 程序的局部性有两个方面的含义:时间局部性和空间局部性。时间局部性是指如果一个存储单元被访问,则可能该单元会很快被再次访问。这是因为程序存在着循环。空间局部性是指如果一个存储单元被访问,则该单元邻近的单元也可能很快被访问。这是因为程序中大部分指令是顺序存储、顺序执行的,数据一般也是以向量、数组、树、表等形式簇聚地存储在一起的。 高速缓冲技术就是利用程序的局部性原理,把程序中正在使用的部分存放在一个高速的容量较小的Cache中,使CPU的访存操作大多数针对Cache进行,从而使程序的执行速度大大提高。 5.7.2 Cache的读写操作 1. Cache的读操作 当CPU发出读请求时,如果Cache命中,就直接对Cache进行读操作,与主存无关;如果Cache不命中,则仍需访问主存,并把该块信息一次从主存调入Cache内。若此时Cache已满,则须根据某种替换算法,用这个块替换掉Cache中原来的某块信息。 2. Cache的写操作 由于Cache中保存的只是主存的部分副本,这些副本与主存中的内容能否保持一致,是Cache能否可靠工作的一个关键问题。当CPU发出写请求时,如果Cache命中,有可能会遇到Cache与主存中的内容不一致的问题,例如,由于CPU写Cache,把Cache某单元中的内容从 X修改为X’,而主存对应单元中的内容仍然是X,没有改变。所以如果Cache命中,需要进行一定的写处理,处理的方法有:写直达法和写回法,详见5.7.5节。 如果写Cache不命中,就直接把信息写入主存,并有两种处理方法: ① 不按写分配法,即只把所要写的信息写入主存。 ② 按写分配法,即在把所写的信息写入主存后还把这个块从主存中读入Cache。 5.7.3 地址映象 3. 组相联映像 组相联映像将Cache分成若干组,组存中的块可以直接映像装入Cache中对应组内的 任何一块位置上,即组间采取直接映像,组内采取全相联映像。组相联映像实际上是全相联映像和直接映像的折衷方案,所以其优点和缺点介于全相联和直接映像方式的优缺点之间。 组相连映像的具体实现方案有两种,他们之间的区别在于是否需要将主存空间按Cache大小再分成区。图5-28(c)是采用主存分区的方案,主存分成2区,每区4组,每组2块;Cache分成4组,每组2块。主存的第9块将可以映像到Cache 的第0块或第1块的位置上。 也可以采用主存不分区的方案,此方案的映像关系与直接映像的公式相同,只不过公式中K代表Cache的组号,Q代表Cache的组数而已。两种方案下主存块映像的位置有所不同。 5.7.4 替换算法 在采用全相联映像和组相联映像方式从主存向Cache传送一个新块,而Cache中的空间已被占满时,就需要把原来存储的一块替换掉。常用的替换算法有下述3种。 1. 随机算法 最简单的替换方法是随机法。随机法完全不管Cache块过去、现在及将来的使用情况,简单地根据一个随机数,选择一块替换掉。 2. 先进先出(FIFO)算法 FIFO算法的思想是:按调入Cache的先后决定淘汰的顺序,即在需要更新时,将最先进入Cache的块作为被替换的块。这种方法要求为每块做一记录,记下它们进入Cache的先后次序。这种方法容易实现,而且系统开销小。其缺点是可能会把一些需要经常使用的程序块(如循环程序)也作为最早进入Cache的块替换掉。 3. 近期最少使用(LRU)算法 LRU算法是把CPU近期最少使用的块作为被替换的块。这种替换方法需要随时记录Cache中各块的使用情况,以便确定哪个块是近期最少使用的块。LRU算法相对合理,但实现起来比较复杂,系统开销较大。通常需要对每一块设置一个称为“年龄计数器”的硬件或软件计数器,用以记录其被使用的情况。 5.3.4 半导体只读存储器 ROM的最大优点是具有非易失性,即使电源断电,ROM中存储的信息也不会丢失。 1. ROM的类型 ROM工作时只能读出,不能写入,那么ROM中的内容是如何事先存入的呢?把向ROM写入数据的过程称为对ROM进行编程,根据编程方法的不同,ROM通常可以分为以下几类: (1)掩膜式ROM(MROM) (2)一次可编程ROM(PROM) (3)可擦除可编程ROM(EPROM) (4)闪速存储器 2. ROM芯片 ROM中使用最多的是可擦除可编程ROM(EPROM)。各种EPROM芯片的外引脚主要有: ·地址线:Ai。 ·
文档评论(0)