湖南大学计算机及通信学院.pptx

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
湖南大学计算机及通信学院;第九章 存储层次;;9.2 Cache存储器;;2. 读数据 CPU必须给出两个值: ◆ 第一个值:要被匹配的数据值(参数或数据) ◆ 第二个值:哪些位需要检查(屏蔽位或关键位) 如果满足如下的公式,则匹配就会发生 ; 例如(参考图9.2): 屏蔽寄存器K ? 1111 0000 0000 0000 数据寄存器D ? 1010 XXXX XXXX XXXX 数 据 位M ? 1010 1101 0000 0111 执行 0000 XXXX XXXX XXXX 执行 1111 XXXX XXXX XXXX 执行 1111 1111 1111 1111 ;3. 将数据写回相联存储器 CPU把数据送到数据寄存器并发出写信号。相联存储器检查所有单元的有效位,并找到有效位为0的一个单元,如果找到,把数据存到这个单元,同时将有效位设为1。如果没有找到,必须采用替换算法清除一个单元来保存数据。 ;;;◆ 作用于数据行或数据块的相联存储器;;◆ 索引 Cache地址的低位,用来选择Cache的一个特定单元。 ◆ 标识 原始地址中不是索引的那些高位。;;◆ 相对简单的CPU中,块大小为4字节的直接映像Cache;;◆ 考察大小为1k的2路组相联cache;;9.2.5 在cache中替换数据 问题的引出: 当cache已满时,又有新数据要调入cache ,需 将哪个数据移出cache。 ;例:在一个4路组相联cache单元中应用LRU策略;9.2.6 写数据到cache;处理写失效问题;9.2.7 cache的性能 1. 评判性能的标准 ◆ 命中率与失效率 Cache命中率:CPU访问Cache时,在Cache中找到 数据的概率。 Cache失效率:CPU访问Cache时,在Cache中找不 到数据的概率。 ◆ 平均访问时间 Tm=h Tc + (1-h) Tp;表9.1;2. 如何计算命中率和平均访问时间?;◆ 8字节相联cache 初始化为空,使用FIFO的替换策略。 ;;◆ 8字节的2路组相联cache Cache使用LRU替换策略。;考虑这个同样的系统。 有2字节的数据行 组成相关行的数据对; A和J;B和D;C和G;E和F;I和H 使用相同的替换策略 (相联cache采用FIFO,组相联采用LRU) 相同的访问时间(Tc=10ns,Tp=60ns) ;;;9.3 虚拟存储器;9.3.1 分页;一个页面或者包含程序指令或者包含数据,不能同时包含两者 4. 可能导致内部碎???问题 内部碎片:假设MMU实现的页式存储器中每个页面大小为4K,一个4K+1大小的程序需要MMU分配两个存储器页面,尽管它的第二个页面只用了4K单元的一个单元,这就是所谓的内存碎片;;分页系统必须解决的问题: 何时将某页移入内存? CPU如何在物理内存找到数据,尤其逻辑地址和物理地址不一至的情况下? 当所有页框都装有页面,而CPU需要访问的数据不在这些页面怎么办?;存储管理单元处理上述所有问题;; 在处理器需要访问数据,MMU将数据从逻辑地址装入物理地址的整个处理过程中,CPU没有访问物理单元的任何信息 例:指令 LDAC 4324H如何理解? 答案: 把数据从逻辑地址4234H装入累加器 将逻辑单元4234H的数据装入累加器,此数据实际存储在物理单元3234H中 系统更倾向解释成1;页表的概念;;MMU中逻辑地址到物理地址的转换;;图9.13所示的MMU并没有很好的转换地址 ?;;例:考虑一台含有相对简单CPU,相同内存配置的计算机。它必须取、翻译和执行下列程序 (如表9.8); Page Table; Page Table;9.3.1 分段;外部碎片:内存驻留有3个段,另有8K自由空间。而这8K空间被划分开了,于是不移动或撤除某个当前载入段的话,大小超过3K的段已无法装入内存(如图9.16);分段机制中逻辑地址到物理地址的转换 ;段号输入到段表中,如果段已被装入内存,输出段的起始地址和段大小 如果段不在物理内存中,就产生一个缺段,MMU装入新段到内存中 偏移量与段大小进行比较,如果前者大于后者,

文档评论(0)

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

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

1亿VIP精品文档

相关文档