[Gems-users] Another question on MOESI protocol


Date: Sun, 23 Nov 2008 00:33:42 -0600
From: "Xuehai Qian" <xuehaiq@xxxxxxxxx>
Subject: [Gems-users] Another question on MOESI protocol
Hi Everyone,
   I have another question about the one of the cache protocols in GEMS(MOESI_directory).
   Suppose the block in a cache (P1) is in MM state, and another cache(P2) issues a load, the result according to the protocol is P1 sends the data to P2, and the data is exclusive dirty, after that, P1 invalidate itself, and P2 has the data, and the data is in state M. Here, it is the only senario that the state can change to M, but why we cannot let P1 still keeps the data, and the after this transaction, the states in both of the caches are shared (P1 is O_D, P2 is S)?? Following the original protocol, if P1 later load the block, it will encounter a miss, and will have longer latency. The protocol invalidate a locally stored copy in any situation (GETX or GETS), the motivation or benefit of doing that is not clear to me. But if a modified block has migrated to another cache (for example in M or O_D) state, the owner cache will keep the block as long as no remote caches' store. Why the MM cannot be handle in this way as well? But in that case, there is no transition being able to move state machine to "M".
 
   I guess there is a coner case preventing what I said above, it is good if you can tell me the corner case, and I will understand it. 
  Thanks!
 
Xuehai
[← Prev in Thread] Current Thread [Next in Thread→]