问题的由来:
在第4.7.1章节中,有这样的一种状态转换:
ReadShared操作,Initial state = I, Final state = UD, Comp response = CompData_UD_PD, 是什么情景能出现这样的状态转换呢?
经讨论,可以考虑以下时空图的操作:
当RN-F2从UD变为I后,则可把UD状态传送给RN-F.
这种场景解决了这个问题,但是仍然有一个需要澄清的问题,为什么Home agent 不发一个SnpSharedFwd来完成一笔DCT操作呢?
可以看到协议在叙述snpfwd操作时的一段描述:
Must not forward data in Unique state in response to a Non-invalidating type snoop
意思是不允许RN-F0变成Unique state,
可以知道,在这种那个情况是不允许发SnpSharedFwd的,那么为什么呢?
其实有RN-F1 属于unique state的DCT操作,如图,但是看起来不允许RN-F0有同样的状态。
此问题仍有待解决,也许有什么corner case.