- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * 两路组组相联方式的地址映射 特点 1. 前两种方式的折衷方案。组间为全相连,组内为直接映射。 2. 集中了两个方式的优点。成本也不太高。 是常用的方式 组相连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 Read location 0: Hit Read location 128: Hit Read location 4: Hit Read location 132: Hit 0-15 64-79 … 0-15 16-31 32-47 128-143 144-159 四路组相连Cache实现 三种映射方式比较 直接映射 主存中的一块只能映射到Cache中唯一的一个位置 定位时,不需要判断,只需替换 全相连映射 主存中的一块可以映射到Cache中任何一个位置 N路组相连映射 主存中的一块可以选择映射到Cache中N个位置 全相连映射和N路组相连映射的失效处理 从主存中取出新块 为了腾出Cache空间,需要替换出一个Cache块 不唯一,则需要判断应替出哪块 习题 设某计算机主存容量为16MB,缓存的容量为16KB。每个字块有8个字,每个字32位。设计一个四路组相联映射(缓存每组内共有4个字块)的缓存组织。请画出主存地址字段中各段的位数。 1. 先进先出算法(FIFO) 将最早调入Cache的字块替换出去。容易实现,开销小。 2. 最近最少使用算法(LRU) 需要计算字块的使用次数,开销大,但平均命中率比FIFO要高。 3. 随机替换(RAND) 3. Cache 替换算法 当新的主存字块需要调入cache存储器而它的可用位置又已被占满时,就产生替换算法问题。 LRU算法替换登记表 若 CPU 改写了 Cache一单元内容后且尚未改变主存相应单元内容,则出现数据不一致性。 当其它CPU或外设读主存时,必须保证数据一致性。 写直达(write through) 当写Cache命中时,Cache与主存同时发生写修改,因而较好地维护了Cache和主存内容的一致性。 当写Cache未命中时,只能直接向主存进行写入。 实现简单,缺点是降低了Cache的效率。 4. 写Cache策略 拖后写(write back) 拖后改写主存单元内容,一直拖到有另外的设备要读该内容过时的主存单元时,则首先停止这一读操作,接下来改写主存内容,之后再启动已停下来的读操作; 总线监听: 减少了访问主存的次数,不出现徒劳的写操作,但是存在不一致性的隐患; 控制复杂些,但可以提供更高系统的运行效率。 4. 写Cache策略(续) 5. 提高Cache的性能 提高命中率 缩短缺失后的处理时间 提高访问Cache的速度 Cache缺失的原因 必然缺失 (开机或进程切换):首次访问数据块 世事总是有缺憾 注意:如果我们运行几百万条指令,有点必然缺失又何妨? 冲突缺失 多个 memory块映射到同一 cache块 解决办法 1:增大 cache 容量 解决办法 2:增加相连组数 容量冲突 Cache无法装入程序需要访问的所有块 方案:增大 cache 容量 无效缺失:其它进程(如I/O)修改了主存 影响 CACHE 命中率的因素 从Cache本身诸因素看,可能: 1. Cache的容量,大一些好 2. Cache与主存储器每次交换信息的单位量(块)适中 3. Cache不同的组织方式,多路组相联最合适 4. Cache的多级组织可提高命中率 采用两级或更多级cache来提高命中率 将Cache分解为指令Cache和数据Cache 5. Cache替换算法 Cache命中率与容量的关系 Cache Size in KB Hit Rate 块大小和缺失率的关系 块大小的权衡 一般来说,数据块较大可以更好地利用空间局部性,但是: 数据块大意味着缺失损失的增大: 需要花费更长的时间来装入数据块 若块大小相对Cache总容量来说太大的话,命中率将降低 Cache块数太少 一般来说,平均访问时间 = 命中时间 x 命中率 + 失效损失 x 缺失率 缺失损失 块大小 缺失率 利用空间局部性 较少的数据块: 弥补时间局部性 平均访 问时间 增加了缺失损失 和缺失率 块大小 块大小 Intel
文档评论(0)