Cache一致性PPT演示课件

上传人:日度 文档编号:132403352 上传时间:2020-05-15 格式:PPT 页数:98 大小:491.50KB
返回 下载 相关 举报
Cache一致性PPT演示课件_第1页
第1页 / 共98页
Cache一致性PPT演示课件_第2页
第2页 / 共98页
Cache一致性PPT演示课件_第3页
第3页 / 共98页
Cache一致性PPT演示课件_第4页
第4页 / 共98页
Cache一致性PPT演示课件_第5页
第5页 / 共98页
点击查看更多>>
资源描述

《Cache一致性PPT演示课件》由会员分享,可在线阅读,更多相关《Cache一致性PPT演示课件(98页珍藏版)》请在金锄头文库上搜索。

1、高等计算机体系结构 第五章CacheCoherence 5 1CacheCoherence问题5 1 1CacheCoherence的提出5 1 2多个Cache不一致的原因5 1 3两种设计Cache一致性协议策略5 2监听总线协议5 3基于目录的Cache一致性协议5 4三种Cache一致性策略 5 1CacheCoherence问题 5 1 1CacheCoherence问题的提出在多处理器系统中 多个Cache中 对应的copy内容应该一致 如下图 Memory Cache P Cache P Cache P 这几个copy应该一致 5 1 2多个Cache不一致的原因1 共享可写数据

2、的不一致性 sharingofwritabledata P1 P2 更新前 x x x 处理机 Cache sharedmemory P1 P2 写通过 x x x P1 P2 写回 x x x 2 进程迁移的不一致性 P1 P2 迁移前 x x 处理机 Cache P1 P2 写通过 x x x P1 P2 写回 x x x sharedmemory 上图中 右图为 包含共享变量x的进程原来在P1上运行 并对x进行了修改 但采取写回策略 所以暂时没有修改Memory 由于某种原因迁移到P2 修改过的x 仍在P1的Cache中 P2运行时从Memory中得到x 因为缺失 这个x其实是 过时 的

3、 所以造成了不一致 中间图为 P2中运行的进程对x进行了修改 采取写通过策略 所以把Memory中的x也修改为x 由于某种原因该进程迁移到P1 但P1的Cache中仍为x 所以造成不一致 3 I O操作 绕过Cache的I O操作 P1 P2 x x 存储器 P1 P2 写通过 x x P1 P2 写回 x x x x x x x I O 存储器 输入 存储器 输出 c1 c2 总线 上图中 中间图为 当I O处理机将一个新的数据x 写入主存储器时 绕过采用写通过策略的cache 则C1和共享存储器之间产生了不一致 右图为 直接从主存储器输出数据时 绕过Cache 采用写回策略的高速缓存产生不

4、一致性 5 1 3两种设计Cache一致性协议策略1 写无效 writeinvalidate 任一处理器写它的私有Cache时 它都使所有其它的Cache中的副本失效 对Write through 它也更新memory中的副本 最终是一个Cache中的副本和memory中的副本是有效的 对Write back 它使memory中的副本也失效 最终只有一个Cache中的副本是有效的 2 写更新 writeupdate 任一处理器写它的私有Cache时 它都立即更新所有其它的Cache中的副本 对Write through 它也更新主存储器中的副本 对Write back 对存储器中副本的更新延迟

5、到这个Cache被置换的时刻 3 示意图下图表示数据块x在共享存储器和三台处理机的Cache中的副本一致的情形 x 共享存储器 Cache P1 x P2 x x P3 总线 处理机 下图表示P1进行写无效操作后的情形 写通过 x I表示无效 P1 I P2 x I P3 写回 x I表示无效 P1 I P2 I I P3 下图表示P1进行写更新操作后的情形 写通过 x I表示无效 P1 x P2 x x P3 4 写无效的问题主要开销在两个方面 1 作废各Cache副本的开销 2 由作废引起缺失造成的开销 即处理机需要访问已经作废的数据时将引起Cache的缺失 后果 如果一个处理机经常对某个

6、块连续写 且各处理处理机间对共享块的竞争较小 这时写无效策略维护一致性的开销是很小的 如发生严重竞争 即处理机之间对某个地址的共享数据竞争 将产生较多的作废 引起更多的作废缺失 结果是共享数据在各Cache间倒来倒去 产生颠簸现象 当缓存块比较大时 这种颠簸现象更为严重 5 写更新的问题由于更新时 所有的副本均需要更新 开销很大 第五章CacheCoherence 5 1CacheCoherence问题5 2监听总线协议5 2 1写一次协议5 3基于目录的Cache一致性协议5 4三种Cache一致性策略 5 2监听总线协议 Snoopyprotocol 通过总线监听机制实现Cache和共享存

7、储器之间的一致性 适用性分析 适用于具有广播能力的总线结构多机系统 允许每台处理机监听其它处理机的存储器访问情况 只适用于小规模的多处理机系统 5 2 1写一次 write once 协议写无效监听一致性协议 将写通过和写回策略结合 为了减少总线流量 高速缓存块的第一次写用写通过方法 产生一份正确的主存储器副本 并使其它的Cache中的副本无效 之后就采用写回方法更新Cache与主存储器 1 一致性协议的内容一致性协议包括 1 Cache可能出现的状态集合 2 共享主存的状态 3 为维护一致性而引起的状态转换 2 每份Cache中的副本可能出现的四种状态 1 有效 validstate 与主存

8、储器副本一致的Cache副本 即该副本未经修改 所以这个Cache副本不是唯一的副本 2 保留 reservedstate 这一Cache副本是第一次修改 并用写通过方法写入主存 所以这一Cache副本和主存储器副本一致 3 重写 dirtystate Cache副本不止一次被修改过 由于不再采用写通过方法 所以这个Cache副本是唯一的副本 与存储器和其它的Cache副本都不一致 主存储器中的副本也是无效的 4 无效 invalidstate 与存储器或其它的Cache副本不一致 或在Cache中找不到 3 局部命令 Localcommands 1 P Read 本地处理机读自己的Cache

9、副本 2 P Write 本地处理机写自己的Cache副本 4 一致性命令 1 Read blk 从另一Cache读一份有效的副本 2 Write inv 在写命中时在总线上广播一个无效命令 3 Read inv 在写缺失时在总线上广播一个无效命令 Dirty modifiedmorethanonce theonlycopyinthesystem Invalid inconsistentcopy Reserved afterwrittenonce theonlycopyconsistentwithmemory Valid Acopyconsistentwiththememorycopy 5 W

10、rite Once一致性协议状态转移图其中 四种状态的含义如下 Invalid Valid Dirty Reserved Read inv 4 P Write 1 P Write hit localstilldirty P Write hit local notmemoryupdate localcopybecomesdirty P Write hit local updatememorycopy broadcastwrite invtoallcache localcopybecomesreserved Read blk 3 Read inv 4 P Read 2 Read blk 3 Rea

11、d inv 4 Write inv 5 P Read hit alwayslocal nostatetransition 下一节 用鼠标点击连线来察看详细信息 Invalid Valid Dirty Reserved 下一节 Invalid Valid Dirty Reserved 下一节 Invalid Valid Dirty Reserved 下一节 Invalid Valid Dirty Reserved 下一节 Invalid Valid Dirty Reserved 下一节 Invalid Valid Dirty Reserved 下一节 Invalid Valid Dirty Re

12、served 下一节 1 P Write miss takeadirtycopyfromaremotecachewhichthenupdatesmemory orfrommemory sendRead invtoinvalidateallcopies updatelocalcopyintoadirtyone 2 P Read miss ifnodirtycopyexists memorysuppliesavalidcopy otherwise thecacheinhibitsmemoryandsuppliesacopyandupdatesmemory Bothcopiesbecomevalid

13、 3 Read blk readfromremoteprocessors thelocalcopybecomevalid 4 Read inv Aremotecachereadsablockduringawrite miss updatesitandinvalidatesallothercopies 5 Write inv Aremotecacheupdatesitslocalcopyduringawrite hitsandinvalidatesallothercopies 6 Write Once一致性协议状态转移表 必是局部进行 不影响有效状态 第一次写命中 用写通过法 同时修 改本地和主

14、存副本并广播Write inv使所有副本失效 command currentstate nextstate status P Read 有效 有效 Read hit P Write 有效 保留 Write hit action 第二次写命中 用写回法 但不修改 主存的副本 P Write 保留 重写 Write hit 写缺失时 则从主存或远程Cache送来副本 并广播Read inv使所有其它副本无效 command currentstate nextstate status P Write 无效 保留 Write miss action 续表 第二次以后更多的写命中 用写回法 无状态改变

15、P Write 重写 重写 Write hit command currentstate nextstate status action 续表 读缺失时 如远程Cache中没有重写副本 则主 存中一定有一份正确的副本 供给发请求的Cache 如远程的Cache有重写的副本 则它禁止主存操作 并将副本发给请求的Cache 两种情况均使发请求的Cache得到的副本为有效 P Read 无效 有效 Read miss 远程Cache读此副本 读后两份副本均有效 Read blk 保留或重写 有效 command currentstate nextstate status action 续表 写缺失时

16、 远程Cache读一个块 并修改它 并使所有其它Cache的副本无效 Read inv 除无效外的其它状态 无效 写命中时 一远程Cache修改其本地副本 并使数据块的其它副本无效 Write inv 有效 无效 command currentstate nextstate status action 续表 如果副本处于重写状态 必须通过块替换写回主存 否则不产生替换操作 Write inv 有效 无效 替代 7 其它的一些问题CPU要向Cache写数据 如果writemiss 表示该数据块不在Cache中或者该数据快处于无效状态 那么需要把正确的数据从memory或其它的Cache中取过来 然后再写操作 为什么不能直接写 1 可能该数据块根本不在Cache中 所以需要从其它地方调入 2 已在Cache中 但数据不正确 这时如果直接写入数据 整个数据块可能还是不正确的 例如 数据不正确的原因是100号单元数据已修改 如果要写入一个数据到101单元 这时不能直接写 否则100号单元还是错的 CacheCoherence问题概要 多处理机系统共享存储器Cache块的状态访问的数据是最新的

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号