![](https://lstatic.shangxueba.com/jiandati/h5/images/m_q_title.png)
下图描述一个典型的SMP多处理器结构,使用snooping协议。每个cache使用直接映射,包含4个块,每个块包含两个字。为了简化,cache的地址标签包含全地址,每个字显示两个16进制。一致性协议采用MSI协议。每条指令有下述形式: P#:<op><addr>[<value>] P#代表CPU号;<op>代表读写;<addr>代表内存地址;[<value>]代表写操作的新值。 在初始状态(如图所示)依次进行P0: read 120和P0: write 120 <-- 80两个操作之后,请列出内存和cache的状态变化(例如一致性状态,标签和数据),仅仅描述状态改变的块。例如p0.b0: (i, 120, 00 01)表示处理器p0的块b0有最后状态i,标记为120,数据位00和01。 style="width:597px;height:442px" src="http://static.jiandati.com/fb5fb60-chaoxing2016-852349.png">
A.P0从内存120中读入数据,P0.B0: (S, 120, 0020);
B.P0从内存120中读入数据,P0.B0: (M, 120, 0080)
C.P0从内存120中读入数据,P0.B0: (M, 120, 0080) 且 P3.B0: (I, 120, 0020)
D.P0从内存120中读入数据,P0.B0: (S, 120, 0080) 且 P3.B0: (S, 120, 0080)