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

高速缓冲存储器的组成与运行原理.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 块大小的权衡 一般来说,数据块较大可以更好地利用空间局部性,但是: 数据块大意味着缺失损失的增大: 需要花费更长的时间来装入数据块 若块大小相对Cache总容量来说太大的话,命中率将降低 Cache块数太少 一般来说,平均访问时间 = 命中时间 x 命中率 + 失效损失 x 缺失率 缺失损失 块大小 缺失率 利用空间局部性 较少的数据块: 弥补时间局部性 平均访 问时间 增加了缺失损失 和缺失率 块大小 块大小 * Cache的替换算法 1. 先进先出算法(FIFO) 将最早调入Cache的字块替换出去。容易实现,开销小。 2. 最近最少使用算法(LRU) 需要计算字块的使用次数,开销大,但平均命中率比FIFO要高。 3. 随机替换(RAND) * 多级Cache 采用两级或更多级cache来提高命中率 将Cache分解为指令Cache和数据Cache * CACHE 接入系统的体系结构 1. 侧接法:像入出设备似的连接到 总线上,优点是结构简单,成本低, 缺点是不利于降低总线占用率。 CPU MEMORY CACHE Bus Master 1 Bus Master 2 总线 * CACHE 接入系统的体系结构 2. 隔断法:把原来的总线打断为两段, 使 CACHE 处在两段之间,优点是有利于提高总线利用率,支持总线并发操作,缺点是结构复杂,成本较高。 CPU MEMORY CACHE Bus Master 1 Bus Master 2 总线 * 改写主存储器的策略 若 CPU 改写了 CACHE 一单元内容后且尚未改变主存相应单元内容,则出现数据不一致性。有两种解决办法: 1.接下来直接改写主存单元内容(Write Through) 简便易行, 但可能带来系统运行效率不高的问题。需要写入缓冲存储器。 2.拖后改写主存单元内容(Write Back) 一直拖到有另外的设备要读该内容过时的主存单元时,则首先停止这一读操作,接下来改写主存内容,之后再起动已停下来的读操作。 矛盾是如何检查是否是读无效内存单元的操作,这是通过 监视地址总线完成的,记下无效单元地址用于比较。 控制复杂些,但可以提供更高的系统运行效率。 * Pentium上的Cache Intel的80386及更早的处理器芯片上并没有片上的高速缓冲存储器。 80486:引入一个8K字节的片上Cache,其块大小为16字节,采用的是四路组相连映象方式。 Pentium:芯片上已经有了两个8K字节的片上cache,一个用作指令缓存,另一个用作数据缓存。它们的块大小都为32字节,采用两路组相连的组织方式。 * * Pentium的数据缓存 数据缓存由128组,每组两个cache块组成,从逻辑上可以看成是大小为4K字节的两“路”。 每个cache块都有20位的标记位和两位的状态位与其对应,标记位即存放在该cache块中的主存块的地址的高20位,两位状态位可以标记出4个不同的块状态。 替换算法采用的是最近最少使用法(LRU),所以对每组cache块还需要有1位的LRU位来表示CPU最近访问的是该组中的哪一块。 采用拖后写策略。 支持两级Cache。 * Pentium Cache块的状态 修改态(M):处于这个状态的cache块中的数据已经被修改过,和主存中对应的数据已不同,只能从cache中读到正确的数据。 独占态(E):处于本状态的cache块的数据和主存中对应的数据块内容相同,而且在其它cache中没有副本。 共享态(S):处于本状态的cache块的数据和主存中对应的数据块内容相同,而且可能在其它cache中有该块的副本。 非法态(I):处于本状态的cache块中尚未装入数据。 * 两级Cache块的状态转换 I L1: L2: S I E E M M 读入数据 读入数据 第一次修改 第二次修改 多次修改 访问主存 第一次修改 访问主存 替换策略: S、E状态不需改写L2 * 写主存顺序 L2监听到其它总线主设备写请求,并要求该设备等待; L2将要被写的地址传给L1,如果L1中的数据在一次写之后有了新的修改(状态为M),则需要将L1中该块的数据写回到主存中。任何情况下,都将该块的状态标记为非法态(I)。 如果L1中的数据与L2相同,则无须L1将数据写回主存中,而只要L2把自己的块的内容写回即可。但还是要把该块的状态标记为非法态(I)。 L2唤醒总线主设备,由它完成写操作。 * Cache 目标 提高CPU访问存储器系统的平均速度 策略 利用一容量较小(降低成本)的高速缓冲存储器 组织方式 全相连、直接映射、组相连 * Cache 包含性保证 cache中的块和主存中的块进行映射 一致性保

文档评论(0)

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

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

1亿VIP精品文档

相关文档