计算机接口技术 教学课件 作者 978 7 302 28212 9 第3章.pptVIP

计算机接口技术 教学课件 作者 978 7 302 28212 9 第3章.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文档。上传文档
查看更多
为什么在CPU和主存之间加一个小容量的高速缓冲存储器能使存取速度大大提高呢?原因之一是Cache的读写速度几乎能够与CPU进行匹配,重要的原因就是要访问的数据大部分都位于高速缓冲存储器中,也就是当前要执行的下一条指令应该位于高速缓冲存储器中。这方面要求主要源于程序的局部性原理。程序的局部性包括两方面——时间的局部性和空间的局部性。时间的局部性是指最近的、未来要用到的信息,也可能是现在正在使用的信息。因为程序中存在循环,循环程序段和子程序段都需要重复执行多次,所以对这些局部存储单元的访问就自然具有时间上集中分布的倾向。空间的局部性是指最近的、未来要用到的信息,可能是现在正在使用的信息,它们在空间上是相邻的,这主要因为程序是顺序执行的,并且数据一般以向量、阵列等形式存放。这种对局部范围的存储器单元的访问比较频繁,而对此范围以外的存储单元进行访问的现象相对甚少。因此把局部范围内的小量数据放入高速缓冲存储器中,使得执行完当前指令后,下一条指令也在高速缓冲存储器中。这样一来,访问的速度就和Cache的读写速度相当,因而能提高整个系统的存取时间 3.4.2 高速缓冲存储器的体系结构 管理这两级存储器的部件为Cache控制器,CPU与主存之间的数据传输必须经过Cache 控制器。CPU通过地址总线给出主存的地址,从而到主存中读取数据,同时把地址送给主存地址寄存器MA,接下来通过主存-Cache地址变换机构来判断该地址的数据或指令是否在Cache中,如果在,即命中,就把主存地址变换成Cache地址并送入Cache地址寄存器,通过该地址访问Cache。如果不命中,就继续访问主存并把数据所在的块调入Cache,调入之前要判断Cache中是否有空闲块以装入要调入的块。如果没有空闲块,就替换控制部件并仲裁把当前Cache中的哪一个块替换出去。 把主存中的数据调入Cache是以块为单位调入的,把主存和Cache分成大小相等的块,块的大小比较小,通过多字宽通道调入Cache。主存的块数比较多而Cache的块数比较少,这就会发生冲突,即两个主存块同时争用Cache的同一个块,这称为块的争用或块冲突。主存的块装入Cache时要按照一定的规则,也就是地址映像规则。 1. 地址映像方式 地址映像是指主存的块按照什么规则放入Cache中,这个规则称为地址映像规则。分为以下几种: 1) 全相联 全相联映像的规则是:主存的块可以放入Cache的任何位置,进行地址变换时需要记录主存的哪一块装入Cache中的哪一块,即记录主存块号和Cache块号之间的对应关系,如图3-23所示。因为Cache是为了和CPU的速度相匹配,所以在进行地址变换时不采用虚拟存储器的页表法而采用目录表硬件方式来实现,从而提高地址变换速度。 2) 直接相联 每个主存块映象到Cache中的一个指定块,这种方式称为直接映象。在直接映象方式下,主存中某一特定存储块只可调入Cache中的一个指定位置,如果主存中另一个存储块也要调入该位置,将发生冲突。 3) 组相联 全相联映像的冲突概率低,但是速度慢;直接相联的冲突概率较高,但速度较快;组相联是全相联映象和直接相联映象的一种折衷方案。希望既有快的速度又使得冲突概率较低。该方法把主存空间先分成区,区中包含的块数同Cache中的块数相同,然后每个区内的块和Cache中的块分成若干组,各组之间是直接相联映象,而组内各块之间则是全相联映象 全相联主存地址用nm来表示,包括两部分——主存块号nmb和块内位移nmr。Cache地址用nc来表示,包括Cache块号ncb和Cache块内位移ncb。地址变换记录nmb和ncb之间的对应关系。找到与主存块号nmb对应的Cache块号ncb后,和块内位移拼接最后的 主存地址nm所对应的Cache地址nc。进行相联比较时,比较的位数为ncb的位数。对于全相联方法来说,块冲突的概率低,只有Cache装满后才可能会发生块冲突,所以Cache的利用率高,是一种最理想的解决方案。但全相联Cache中目录表查找的速度慢,由于Cache的速度要求高,因此全部比较和替换策略都要用硬件实现,控制复杂,实现起来也比较困难 直接相联如图3-24所示,把主存空间分成区,区中包含的块数和Cache块数相同,每个区中的第i块只能放在Cache中第i块的位置。这样一来,主存地址nm被分为区号、区内块号和块内位移,Cache地址nc仍为Cache块号ncb和Cache块内位移ncb。进行地址变换时,每个区的第i块固定放在Cache中的第i个位置,即变换后的Cache块号ncb同主存地址中的区内块号相同,进行地址变换只需要记录Cache中的第i个位置是主存中哪个区的第i块装入的即可。 组相联当每个组内块数减少到只包含一个块时,该映像变成直接相联映像;当

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档