处理机的Cache一致性.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.写更新(write update) 任一处理器写它的私有Cache时,它都立即更新所有其它的Cache中的副本。 对Write-through,它也更新主存储器中的副本。 对Write-back,对存储器中副本的更新延迟到这个Cache被置换的时刻。 * PPT课件 例子 Write-Update 监听协议分别采用写无效策略和写更新策略的区别 P1 P2 X X X 更新之前 X’ X’ P1将它的高速缓存C1中的X修改成X’ Write-Invalidate Cache的写通过策略同时将内存中的X也修改成X’ I 写无效策略则将远程高速缓存C2中的X变成无效(无效数据块用I表示) 写更新策略将包含X1的新数据块通过总线广播到所有的高速缓存,更新其中的X为X1 X’ * PPT课件 数据块的两种状态: 采用写通过策略的Cache状态 有效 表示该数据块内容正确 无效 表示该数据块内容已“过时”或不在本地Cache中 处理机P1对本地高速缓存C1中数据块的读操作R1和写操作W1,以及其他处理机Pr对它的高速缓存Cr中同一数据块拷贝的读操作Rr和写操作Wr都可能引起高速缓存C1中该数据块的状态变化. 状态转移图 * PPT课件 对有效块的所有读操作R1,Rr之后,数据块仍然是有效块 P1对C1中的有效块X写操作W1,使C1中的X变为X1’ 若P1对本地高速缓存C1中无效数据块读操作R1和写操作W1时,则将该数据块由无效转变为有效。但是,其他处理机Pr对自己的高速缓存Cr中数据块读操作Rr和写操作Wr时,C1中的无效数据块拷贝仍无效 R1,W1,Rr Rr,Wr R1 W1 Wr 写通过策略的Cache状态图 有效 无效 说明: * PPT课件 采用写回策略的Cache状态 Cache采用写回策略 Cache中的数据块被修改时不同时修改内存中相应的数据块拷贝,当Cache中的数据块被替换时,才将该数据块写回内存。 Cache中数据块的两种有效状态: 读/写状态 该数据块至少被修改过一次,尚未写回,内存中的相应数据块还没有被修改,在整个系统中只有一个数据块拷贝是正确的 只读状态整个系统中不止一个数据块拷贝是正确的 采用写回策略的Cache状态图 * PPT课件 采用写回策略的监听协议保持Cache一致性的方法 当内存拥有一个数据块时,每个高速缓存只有该数据块的只读状态的拷贝,有拷贝的本地处理机P1和远程处理机Pr都可以安全地读这份拷贝,本地的写操作W1使其拷贝变为读/写状态,远程的写操作Wr使本地高速缓存的拷贝变为无效状态 如果某个Cache中的某个数据块处于有效状态(读-写或只读),则远程写操作Wr,使该Cache中的这个数据块变为无效 系统中可能拥有一份处于读/写状态的数据块拷贝。对于处于读-写状态的数据块,本地的读/写操作(R1和W1)都是安全的,远程读操作Rr使其变为只读状态,远程写操作Wr使其变为无效 * PPT课件 两种策略的缺点 1,写无效的问题 主要开销在两个方面: (1)作废各Cache副本的开销; (2)由作废引起缺失造成的开销,即处理机需要访问已经作废的数据时将引起Cache的缺失。 后果: 如果一个Core经常对某个块连续写,且Core间对共享块的竞争较小,这时写无效策略维护一致性的开销是很小的。如发生严重竞争,即Core之间对某个地址的共享数据竞争,将产生较多的作废,引起更多的作废缺失。结果是共享数据在各Cache间倒来倒去,产生颠簸现象,当缓存块比较大时,这种颠簸现象更为严重。 * PPT课件 2,写更新的问题 由于更新时,所有的副本均需要更新,开销很大。 * PPT课件 写一次协议 特点是:为了减少总线流量,Cache的第一次写采取写通过策略,其后的写则采取写回策略 为了区分是否第一次写,协议把读-写状态分为两种状态:保留和重写 写一次协议的Cache中的数据块的4种状态 有效(Valid):从内存读入的并与内存拷贝一致的Cache数据块是有效状态 无效(Invalid):在Cache中找不到或Cache中的数据块内容已过时的块是无效状态 保留(Reserved):若数据块从内存读入Cache后只被写过一次,且Cache中的拷贝与内存中的拷贝一致且正确,则是保留状态 重写(Dirty):若Cache中的数据块不只一次被写过,且它是系统中唯一正确的数据块,则是重写状态 * PPT课件 * * * * 那么,此时P1的C1中仍然是X,而不是它先修改过的X’。 * * * * * * * * 链式目录的目录指针链若采用最简单的单向链,那么,目录项 中除一位重写位

文档评论(0)

锦绣中华 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档