一、分布式共享存储器结构

SAN共享存储架构_存储单元


二、基本思想

1.目录中存放本地存储器各块的状态信息以及那些cache中有该块的副本。

2.目录法采用位向量来记录哪些块有该块的副本,1表示有,0表示没有,并将有该块副本的处理机集合称为共享集S。

三、存储块的状态

1.未缓存(uncacahed):表示该块位调入cache中。

2.共享(shared):表示该块在多个处理机有副本。

3.独占(exclusive):表示该块只在一个处理机有副本,而且该处理机有该块的最新数据。

四、处理机角色分类

1.本地节点:指发出访问请求的节点。

2.宿主节点:包含所访问存储单元以及目录项的节点。

3.远程节点:拥有存储单元副本的节点。

五、状态转换

1.1.如果节点1读本地自己的存储单元块1,则节点1的目录将该块的状态改为shared,块1的共享集变为{1}。

1.2如果节点1读的是节点2的存储单元块2,则节点1直接向节点2发出读不命中,并告诉节点2要读的存储单元地址,节点2将该单元的数据发给节点1,并将块2的状态改为shared,块2的共享集变为{1}。

2.1如果此时节点2中块2的状态为shared,共享集为{1,2},而节点3要写节点2的存储单元块2,则节点3直接向节点2发出写不命中,节点2查看块2状态为shared,则节点2将数据发给节点1,并且告诉共享集中节点1,2将块2的信息作废,同时将自己块2 的状态改为exclusive,共享集变为{3}。

3.如果节点2中的块2位exclusive,共享集为{3},此时节点1发出读不命中,则节点1发现节点2的块2状态为exclusive,则直接向其共享集中节点3发出读不命中,则节点3将块2的最新信息写回节点2,并将节点2中块2的状态改为shared,共享集为{1,3}

4.如果此时节点2中的块2要被替换了,而块2的状态为exclusive,共享集为{3},则节点2直接向节点3发出写回消息,然后节点3将其关于块2的最新数据写回节点2的存储器。

六、转换图

SAN共享存储架构_缓存_02