第三章存储系统.pptVIP

  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文档。上传文档
查看更多
Cache 根据访存局部性规律优化设计存储系统,就是要求将计算机中频繁访问的数据存放在速度较高的存储器中,而将不频繁访问的数据存放在速度较慢但价格较低的存储器件中。 采用层次化结构 Cache的作用是弥补CPU与主存储器在速度上的差异。 Cache是一个高速小容量的临时存储器,可以用高速的SRAM芯片实现,或者集成到CPU芯片的内部。 层次化结构 * Cache的基本概念 在带有Cache的计算机中,Cache中开始时是没有数据或程序代码的。当CPU访问存储器时,从主存中读取的数据或代码在写入寄存器的同时还写入Cache中。 在以后的访问中,如果访问的数据或代码已经存在于Cache中,就可以直接从Cache中访问到数据或代码,而不必再到主存中区访问了。这个情形称为Cache命中。 Cache命中的统计概率称为Cache的命中率。 反之,访问主存的数据或代码不存在于Cache中的情形称为不命中或失效,不命中的统计概率称为失效率。 为了提高Cache的命中率,在将主存的数据或代码写入Cache时,一般把该数据的前后相邻的数据或代码也一起写入Cache。即从主存到Cache的数据传送是以块为单位进行的,这样符合访存的局部性规律。 在Cache命中时所需要的访问时间称为命中访问时间。不命中时因访问主存而增加的访问时间称为Cache的失效访问时间。 命中时,访问时间=Cache的访问时间=命中时间。 失效时,访问时间=命中时间+失效访问时间。 无论Cache是否命中,Cache都是必须访问的。 * Cache设计中需考虑的问题 地址映象 主存中的块放入Cache中的什么地方? 这是一个将主存地址映像到Cache地址的问题。主存地址到Cache地址的映像以块为单位。 替换策略 Cache放满时怎么办? 需要有一个算法将Cache中的某一块替换出去。 更新策略 写Cache时是否写主存? 它决定在写操作时,何时将数据写入Cache?何时写入主存? 容量 Cache的容量比主存低很多,数据块怎么分配? * Cache与内存的地址映像 直接映像 一个主存块只能映像到Cache中的唯一位置的地址映像方式 全相联映像 每个主存块都可映像到任何Cache块的地址映像方式。 组相联映像 将存储空间分成若干组,每个组包含若干个数据块。 主存中 的一个数据块可以装入Cache中同一组的任何一个块框架。 即各组之间直接映像,组内各块之间则是全相联映像。 * Cache的结构原理 * 地址映象与变换 一个主存块只能映像到Cache中的唯一位置的地址映像方式 1. 直接映象 * 块地址的概念 存储容量、块数、块容量与地址格式中区号、块号、块内地址位数的关系。 **根据主存块号在由块表中查询出区号,与主存区号相比较,如相符,则命中,可直接访问Cache;如不同,则不命中。 访问cache 1. 直接映象 * 以读操作为例,假定Cache中有8个块的容量,访问的块地址序列为:10110、11010、10110、11010、10000、00100、10000、10010 因此,地址的低3位作为Cache的块号,高2位作为区号标志位识别Cache的命中情况。 1. 直接映象 * 例 设有一个cache的容量为2K字,每个块为16字,求 (1) 该cache可容纳多少个块? (2) 如果主存的容量是256K字,则有多少个块? (3) 主存的地址有多少位?cache地址有多少位? (4) 在直接映像方式下,主存中的第i块映像到cache中哪一个块中? (5) 进行地址映像时,存储器的地址分成哪几段?各段分别有多少位? 解:(1) cache中有2048/16=128个块。 (2) 主存有256K/16=16384个块。 (3) 主存容量为256K=218字,字地址有18位。 cache容量为2K=211字,字地址为11位。 (4) 在直接映像方式下,主存中的第i块映像到cache中第 i mod 128个块中。 (5) 区号7位,块号为7位,块内字地址为4位。 区号 块号 块内地址 11 4 18 * 每个主存块都可映像到任何Cache块的地址映像方式。 2. 全相联映象 * N = 区内块数,阴影区表示查找范围 根据主存块号在块表中检索,如存在,则命中,根据块表查出相对应的块号作为Cache块号,和块内地址拼装成Cache地址。 2. 全相联映象 * 2. 全相联映象 * 将存储空间分成若干组,每个组包含若干个数据块。 主存中 的一个数据块可以装入Cache中同一组的任何一个块框架。 即各组之间直接映像,组内各块之间则是全相联映像。 n路组相联:组内有n块 3. 组相联映象 * N = 区内块数,阴影区表示查找范围,根据组号在块表中寻找组,组内相联查找。 **命中的检索

文档评论(0)

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

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

1亿VIP精品文档

相关文档