第2章多机系统结构1.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 本地读、写不会改变状态 远程读:这时只有这个 Cache的数据块是正确的,所以要有“写回”动作(即把内容写回Memory),另外还需要把正确的数据传递给远程读的处理机相应的Cache。两个Cache的状态?RO 远程写:把本地处理机的数据块传递给远程处理机,远程处理机对数据块进行写操作,远程处理机对应的Cache状态变为R-W,而本地的Cache变为无效状态。 R-W(读写状态) * * 本地读:无效?RO 本地写:无效?WR(同时使其它拥有相同内容的数据块的Cache中相应的数据块的状态变成无效) 远程写、远程读:不影响状态的改变 无效状态 * * Write-Through和Write-Back的缺点 Write-Through策略的弱点是每次都要修改memory,所以总线流量增大; Write-Back策略的弱点是Cache写了一次后,Memory中的内容不一致。 Write-Once策略的Cache * * 把Write-Through和Write-Back两者的优点结合在一起:减少总线流量。 Cache的第一次写采用Write-Through策略(有一个以上的副本正确); Cache而后的写采用Write-Back策略(只有一份副本正确)。 为了区分是否是第一次写,把“读-写”状态分成两个状态:Reserved和Drity。 Write-Once的基本思想 折中:减少发出失效的次数和各cache状态变换次数 顺序程序可能就写一次,循环程序就不止写一次。引 Wrete-Once协议思想 * * 数据块的四种状态 有效状态(Valid):相当于Write-Back里的“只读”,从共享存储器中读入的并与存储器副本一致的Cache数据块。 (多个Cache和内存一致) 无效状态(Invalid):在Cache中找不到或Cache中的数据块内容与共享存储器中的内容不一致的Cache数据块。 * * 保留状态(Reserved):数据从共享存储器读入Cache只被写过一次。Cache中的副本与共享存储器中的副本是一致的,并且它是正确的副本。(仅一个Cache和内存一致) 重写状态(Dirty):Cache中的数据块不止一次被写过,此时共享存储器中的数据块也不是正确的数据块,唯一正确的数据块在Cache中。(Cache和主存不一致) * * 如果处于“有效”状态 有效 保留 Wr Rl, Rr 无效 Wl 重写 * * 1)本地读Rl,不影响状态。 2)本地写Wl(第一次写),采用Write-Through策略,这时要发无效命令给其它Cache中相应的副本,并修改memory。 有效?保留 3)远程写Wr(不管是第几次写),远程CPU会发无效命令:有效?无效 4)远程读Rr:不影响状态。 * * 如果处于“保留”状态 有效 保留 Wr Rl 无效 Rr 重写 Wl * * 1)本地读Rl,不影响状态。 2)远程读Rr:这时Cache中只有处于保留状态的数据块是正确的,所以把该数据块送到远程CPU的Cache中(远程Cache中该数据块变为有效),本数据块状态已变为有效。 3)本地写Wl:第二次及以后的写,采取Write-Back策略,不修改Memory,状态由Reserved变为Dirty(这时只有一个副本有效),发无效命令给其它Cache的对应的副本,使Memory中的副本也无效。 4)远程写Wr:远程CPU会发无效命令,使状态由Reserved变为Invalid。 * * 处于“重写”状态 有效 保留 Wr Rr 无效 Rl,Wl 重写 * * 1)本地读Rl:不影响状态。 2)本地写Wl:不影响状态。 3)远程读Rr:这时只有这个Cache的数据块是正确的,所以把该数据块发送给远程的Cache,远程Cache的数据块和本Cache中的数据块都变得有效。 4)远程写Wr:远程CPU写后,发无效命令使状态由重写?无效。 * * 处于“无效”状态 有效 保留 Rl Wr, Rr 无效 Wl 重写 * * 本地读Rl:这时产生Read-Miss,设法找到有效的数据块调入Cache: 如果系统存在处于有效,保留或重写状态的相应数据块,则将其调入本地Cache 如果系统中不存在处于有效、保留或重写状态的相应数据块,则说明共享存储器中的数据块是正确的,直接从共享存储器读入即可。 读入后相应数据块进入“有效”状态。 * * 远程读Rr:状态不变 本地写Wl:一定是Write-Miss,系统首先把正确的内容调入Cache,然后写Cache,因为是第一次写,所以Write-Through策略,同时写memory,将本地Cache状态置为

文档评论(0)

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

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

1亿VIP精品文档

相关文档