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

第四章第三讲高速缓冲存储器的组成与运行原理.ppt

第四章第三讲高速缓冲存储器的组成与运行原理.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三单元 层次存储器系统 第三讲 高速缓冲存储器的组成与运行原理 刘卫东 liuwd@tsinghua.edu.cn 内容提要 Cache的目的 基本原理 Cache的三种映射方式 提高Cache性能 CPU与DRAM性能比较 程序的局部性原理 程序在一定的时间段内通常只访问较小的地址空间 两种局部性: 时间局部性 空间局部性 层次存储器系统 使用高速缓冲存储器Cache来提高CPU对存储器的平均访问速度。 时间局部性:最近被访问的信息很可能还要被访问。 将最近被访问的信息项装入到Cache中。 空间局部性:最近被访问的信息临近的信息也可能被访问。 将最近被访问的信息项临近的信息一起装入到Cache中。 CACHE的基本运行原理 几个参数 块(Line):数据交换的最小单位 命中(Hit):在较高层次中发现要访问的内容 命中率(Hit Rate):命中次数/访问次数 命中时间:访问在较高层次中数据的时间 失效(Miss):需要在较低层次中访问块 失效率(Miss Rate):1-命中率 失效损失(Miss Penalty):替换较高层次数据块的时间+将该块交付给处理器的时间 命中时间失效损失 参数典型数值 块大小:4~128Byte 命中时间:1~4周期 失效损失: 访问时间:6~10个周期 传输时间:2~22个周期 命中率:80%~99% Cache容量:1KB~256KB 全相联方式 全相连映射硬件实现举例 直接映射方式 Cache 举例 8 块 cache 每块16 字节 “直接映射”: 内存中的每个单元在Cache中只会有一个唯一的位置和它对应。 直接映射Cache 举例 假定有如下访问操作: Read location 0 Read location 16 Read location 32 Read location 4 Read location 8 Read location 36 Read location 32 Read location 128 Read location 148 cache中命中和缺失各有多少次? Cache 举例:续 Cache中命中和缺失次数? Read location 0: Miss Read location 16: Miss Read location 32: Miss Read location 4: Hit Read location 8: Hit Read location 36: Hit Read location 32: Hit Read location 128: Miss Read location 148: Miss 命中率 = 4/9 = 45% 注意:失效的原因 启动失效 冲突失效 直接映射 Cache:硬件实现 直接映射 Cache: 硬件实现 增加块大小可以更好地利用空间局部性 两路组相联方式 组相连Cache访问举例 四路组相连Cache实现 三种映射方式比较 直接映射 主存中的一块只能映射到Cache中唯一的一个位置 定位时,不需要判断,只需替换 全相连映射 主存中的一块可以映射到Cache中任何一个位置 N路组相连映射 主存中的一块可以选择映射到Cache中N个位置 全相连映射和N路组相连映射的失效处理 从主存中取出新块 为了腾出Cache空间,需要替换出一个Cache块 不唯一,则需要判断应替出哪块 提高Cache的性能 1. 提高命中率 2. 缩短缺失后的处理时间 3. 提高访问cache的速度 Cache缺失的原因 必然缺失 (开机或进程切换):首次访问数据块 世事总是有缺憾 注意:如果我们运行几百万条指令,有点必然缺失又何妨? 冲突缺失 多个 memory块映射到同一 cache块 解决办法 1:增大 cache 容量 解决办法 2:增加相连组数 容量冲突 Cache无法装入程序需要访问的所有块 方案:增大 cache 容量 无效缺失:其它进程(如I/O)修改了主存 影响 CACHE 命中率的因素 从 CACHE 本身诸因素看,可能: 1. CACHE 的容量,大一些好 2. CACHE 与主存储器每次交换 信息的单位量(Cache Line Size)适中 3. CACHE 不同的组织方式,多路组相联更好 4. CACHE 的多级组织可提高命中率 5. CACHE 装满后的换字算法 Cache命中率 块大小和缺失率的关系 块大小的权衡 一般来说,数据块较大可以更好地利用空间局部性,但是: 数据块大意味着缺失损失的增大: 需要花费更长的时间来装入数据块 若块大小相对Cache总容量来说太大的话,命中率将降低 Cache块数太少 一般来说,平均访问时间 = 命

文档评论(0)

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

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

1亿VIP精品文档

相关文档