基于目录的cache一致性

基于目录的cache一致性:

目录协议必须进行的操作:
处理读缺失和处理共享未修改cache块的写操作

cache块出现的状态:
  • 共享:一个或者多个处理器拥有cache的数据块
  • 未缓存:没有任何一个处理器含有该数据块
  • 修改:只有一个处理器拥有该cache块的副本并已经进行写操作

除了cache中的块以为,还需要跟踪拥有共享数据块副本的处理器,因为执行写操作后这些处理器的副本要设置成无效状态


本地节点:产生请求的节点
主节点:存储地址和目录条目所在的节点
远程节点:拥有cache块副本的节点

目录协议是通过目录控制器有选择的发送数据获取和无效操作来完成的
任何cache块要执行写操作时都必须处于独占的状态,而且共享数据在存储器中的副本必须被替换


共享着:跟踪拥有数据块副本的处理器集合,该集合通常是一个位向量

理解目录操作:
假设存储器的副本就是当前值,该数据块未被缓存
  • 读缺失:存储器向发送请求的处理器送回所需的数据,而发送请求的节点为唯一的共享节点
  • 写缺失:向发送请求的处理器送回数值并使其成为共享节点.数据块被设置为独占状态,指明这是唯一有效的副本.共享集合指明所有者

当数据块处于共享状态时存储器中的数值也是最新的:
  • 读缺失:存储器送回请求数据,并将该处理器放入共享集合中
  • 写缺失:存储器送回数值.向共享集合中所有的处理器发送无效信息,共享集合中保存发送请求的处理器标识.数据块设为独占状态


数据块处于独占状态,块的当前值保存在共享者所指明的处理器的cache中:

  • 读缺失:向所有者处理器发数据消息,将cache块状态变为共享,由所有者向目录(该目录为请求处理器目录)发送数据,在目录(写回到请求处理器对应的存储器)中写回存储器并发送回发出请求的处理器上.发出请求的
的处理器(此时也拥有该数据块)的身份会被添加到共享者集合中,此时集合中仍然会有所有者处理器的身份(这个是以前的所有者)

  • 数据写回:所有者处理器将数据块改写,执行写回操作,使得存储器的副本得到更新,并且不再缓存数据,且共享者集合为空

  • 写缺失:数据块有新的所有者,向旧的所有者发送消息使cache将该数据块设置为无效,并将值发送到目录(以前拥有的数据块的处理器的目录),再通过目录将数据发送到发出请求的处理器上,发出请求的
处理器成为新的拥有者.共享者集合只保留新所有者的标识,而块仍在独占状态.

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值