网站大量收购独家精品文档,联系QQ:2885784924

[计算机]第七章_存储系统2.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[计算机]第七章_存储系统2

第七章 存储体系 (2) 7.3.3 替换策略及更新主存策略(1) Cache从主存读取数据块时有三种方式:需要时读取、预读取和选择读取。这三种方式各有优缺点,请注意比较。课本中提到共享的数据放在主存中比放在Cache中合适,特别是在多处理机系统中,因为共享的数据经常由别的处理过程改写,若放到cache中,则经常涉及到数据的一致性问题,因此放在主存中可保证其单一性,不致发生数据一致性错误的问题。 在层次式的存储体系中,访问某层存储器的内容时将从该层取数据块层层复制到上层存储器中,而上层的存储器容量总比下层的少,则在复制到上层时,就会发生替换掉原有数据块的问题。若被替换的块中有新写入的数据(如计算结果)则这些数据还得先写到下层存储器的相应块中,这就涉及更新策略。 7.3.3 替换策略及更新主存策略(2) 在直接映象方式下,不存在块替换的算法,因为每一块的位置映象是固定的,需要哪一块数据就可直接确定地将该块数据调入上层确定位置。而其他两种映象就存在替换策略的问题,就是要选择替换到哪一个Cache块。即替换算法。 7.3.3 替换策略及更新主存策略(2) 在直接映象方式下,不存在块替换的算法,因为每一块的位置映象是固定的,需要哪一块数据就可直接确定地将该块数据调入上层确定位置。而其他两种映象就存在替换策略的问题,就是要选择替换到哪一个Cache块。即替换算法。 FIFO替换方式的块分配操作示意图 一个容量为4个块的全相联Cache,假定访问的地址块号序列为:2,11,2,9,7,6,4,3,在先进先出替换方式下,队列中的变化情况如下: LRU替换方式的块分配操作 一个容量为4个块的全相联Cache,假定访问的地址块号序列为:2,11,2,9,7,6,4,3,在最久未使用替换方式下,队列中的变化情况如下: FIFO块替换中出现的颠簸现象 同样对于上述的4个块的全相联Cache,假定访问的地迁块号字列为:2,11,9,7,6,2,11,9,在先进先出替换方式下,队列中的变化情况如下: LUR算法的实现过程(1) 计数器法: 每个块一个计数器,定时时间间隔计数一次,块数据被访问时计数器清零。 计数值表示上一次访问后经过的时间,替换选择计数值最大的块替换出去。 由于计数器存在最大长度,计数满后溢出,造成时间最小。因此,改进方法就是采用相对计数值。 例如,当Cache命中时,其他非命中的块的计数值如果小于命中块的计数值就加1,计数值较大的不变。命中块的计数值清零。 LUR算法的实现过程(2) 寄存器栈法: 一套寄存器,存放每个块的记录。最近使用过的块始终保持在栈的顶部,最久未使用过的块放在栈的底部。 块访问时,从栈顶向栈底顺序查找该块的寄存器内的标识,如果找到,将该寄存器抽出来放在栈顶,如果没有找到,栈顶压入该标识的寄存器,栈底的标识出栈。 寄存器栈法示意图 11,6 访问时: Cache的更新策略 对Cache的写操作,情况比读操作要复杂一些。由于写入Cache时,并没有写入主存,因此就出现Cache和主存数据不一致的情况。 如何处理Cache和主存不一致的方法就称为更新策略。 一般的更新策略有两种: 7.3.3 替换策略及更新主存策略(3) 另外,当写不命中时(也就是写Cache块时,这块早被人替换出去而在Cache中找不到时)是不是要把这块再取回Cache中,有两个解决方法: 不按写分配法,就是直接写到主存里,不再把该地址对应的块调回Cache中。 按写分配法,就是写到主存,而且把这一块从主存中调入到Cache。 一般写回法用按写分配法,全写法则采用不按写分配。 7.3.3 替换策略及更新主存策略(4) 写回法中,处理器写操作的速度就是写Cache的速度,处理器多次写等于多次写Cache,只有发生块替换时才写主存,因此,总的写主存次数较少。 但Cache的操作变得复杂了,由于数据快替换发生在Cache操作失效时(不论读或写),因此,很多读操作也将引起数据块的写回操作。 简单回写法:块替换时不论是否更新过,都回写; 标志回写法:根据块更新标志决定是否回写。 写回法中可以设置写缓存,将暂时不会引起快失效,Cache可继续访问。块失效时,更新数据写入主存时,可以和处理器并行进行。但在处理器又要使用刚刚写入的数据时,就不能避免处理器的写停顿。 7.3.3 替换策略及更新主存策略(4) 全写法中,读 Cach

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档