Hi,
In CHI specification, request node can send out CompAck after it receives RespSepData and before it recieves DataSepResp.
Let us consider the following scenario:
Step 1: Request node_A wants to write address_B, but its cache doesn't have data of address_B.
Step 2: Request node_A sends out ReadUnique request message to get data of address_B.
Step3: Home node returns RespSepData response to request node_A.
Step4: Home node returns DataSepResp to request node_A. Assume RespSepData reaches request node_A soon, but DataSepResp takes very long time to travel to request node_A.
Step5: Request node_A receives RespSepData and sends out CompAck to home node.
Step6: Home node receives CompAck and sends out a snoop transaction to request node_A to read data of address_B.
Step7. Request node_A receives snoop request message but doesn't receives DataSepResp of ReadUnique transaction yet.
Now, snoop transaction wants to read data of address_B, but data of address_B is on the way to request node_A, request node_A doesn't have data of address_B yet. How does request node_A handle this snoop transaction? Anyone know it? Thanks a lot.