《计算机组成原理》教程第5篇存储器-CACHE2.pptVIP

《计算机组成原理》教程第5篇存储器-CACHE2.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.3 高速缓冲存储器(Cache) Cache-存储器映象 替换算法 问题的提出 CPU和I/O争抢访问主存 主存速度始终跟不上CPU的发展 100MHz的Pentium处理器平均10ns就执行一条指令,而DRAM的典型访问时间是60~120ns。 Cache的出现主要使CPU不直接访问主存,只与高速Cache交换信息。 程序访问的局部性原理 时间局部性:最近的访问项(指令/数据)很可能在不久的将来再次被访问(往往会引起对最近使用区域的集中访问) 空间局部性:一个进程访问的各项其地址彼此很近(往往会访问在存储器空间的同一区域) 命中、不命中、命中率 Cache命中(hit) CPU欲访问的数据已在缓存中,即可直接访问Cache Cache不命中(miss) CPU欲访问的数据不在Cache内,此时需将该数所在的主存整个子块一次调入Cache中。 命中率是指CPU要访问的信息已在Cache内的比率。通常用命中率来衡量Cache的效率。 Cache效率 Cache的容量和块长是影响Cache效率的重要因素。 Cache容量越大,命中率越高。 当Cahce容量达到一定值时,命中率不会因容量的增大而明显提高。 Cache容量大,成本增加。 Cache的命中率与cache容量的关系 Cache的读数操作流程 Cache的写操作 命中 写直达法(Write-through、Store-though) 每次写入Cache的同时,也写入主存。 写回法(Write-back): 执行写操作时,信息只写入Cache; 当Cache块被替换时,先将该块内容写回主存,然后再调入新页。 信息只写入主存,同时将相应的Cache块有效位置“0” 不命中:被修改的单元根本不在Cache内,此时写操作只能对主存进行。 比较 写回法的开销是在块替换时的回写时间,而写直达法则在每次写入时,都要附加一个比写Cache长得多的写主存时间。 一般来说,写直达法的开销大一些,但其一致性保持的要好一些。 关键在于如何使Cache与主存内容保持一致。 Cache的基本结构 Cahce存储体、地址映象变换机构、替换机构 Cahce存储体 以块为单位和主存交换信息 Cache访存的优先级最高 地址映象变换机构 主要是 主存块号和Cache块号之间的转换。 四种映象:直接映象、全相联映象、组相联映象和段相联映象。 替换机构 Cache内容已满时,无法接受来自主存块的信息,需由Cache内的替换机构按一定的替换算法来确定从Cache内移出某个块写回主存。 Cache-主存地址映象 由主存地址映象到Cache地址称为地址映象。 直接映象 全相联映象 组相联影响 段相连映象 1. 直接映象 优点:实现简单,只需利用主存地址的某些位直接判断,就可确定所需字块是否在缓存中。 缺点:效率低。因为每个主存块固定地对应某个缓存块(有2t个主存字块对应同一个Cache字块),如果这2t个字块中有两个或两个以上的主存字块要调入Cache,必然会发生冲突。这时,即使Cache中还有很多空闲块也无法占用,使缓存的空间得不到充分的利用。 2. 全相联映像 2. 全相联映像(续) 3. 组相联映象 3. 组相联映象(续) 原理:把Cache分为Q(=2q)组,每组有R(=2r)块,且 i=j mod Q 其中,i为缓存的组号,j为主存的块号 r=0,直接相联;r=c,全相联。 在主存块和Cache的各组之间,属于直接映象关系;而主存块可以映射到对应组内的任何一块,这又体现出了全相联映象的关系。 4.段相联映象 它将主存和Cache都分成若干段,且使得它们每段包含的块数都相等 段之间采用全相联映象,段内块之间采用直接映象。 当段数与Cache块数相等时(即每段只包含一块),便为全相联映象;当段数为1时,便为直接映象。 四种映象方式比较 直接映象:优点是实现简单,缺点是不够灵活。 全相联映象:实现电路较多,成本较高,实际的Cache还要采用各种措施来减少地址的比较次数。 组相联映象和段相联映象:是直接映象和全相联映象相结合的两种形式。 替换算法 替换算法 先进先出算法(FIFO):选择最早装入的Cache字块替换出来。这种算法实现起来比较方便,但不能正确反映程序的局部性。因为最先进入的字块也可能是目前经常要用的字块,因此,采用这种算法,有可能产生较大的失效率。 近期最少使用算法(LRU):选择“近期最少使用”块作为调出块,这种算法能比较正确反映程序的局部性,因为当前最少使用的块一般来说也是未来最少被访问的块。但是它的具体实现比FIFO要复杂一些。 随机替换 FIFO替换算法 近期最少使用算法 * 1 Cache容量 命中率 开始 CPU发出访存地址 访问C

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档