Re: [Gems-users] "e_sendData" in MOESI_CMP_directory-L1cache.sm


Date: Wed, 16 Apr 2008 11:00:35 +0200
From: Marco Solinas <marco.solinas@xxxxxxxxxxxx>
Subject: Re: [Gems-users] "e_sendData" in MOESI_CMP_directory-L1cache.sm
I've never worked with this protocol, but in my view (please correct me if I'm wrong) it is correct because the request is a GETS, so a non-exclusive read. The cache receiving the block will store it in the S state, (transition(IS, Data, S){...}), so the block has not to be considered dirty for the requesting node; instead, the dirty information is still held by the sender cache, that changes the state from M to O. In fact, when the Ownership changes (in case of a GETX forwarded to a cache that holds a block in either M or O), the action used to provide the requesting cache with the block is not e_sendData, instead it is e_sendDataExclusive (transition(M, Fwd_GETX, I){...} and transition(O, Fwd_GETX, I){...} for example). This action set the Dirty flag of the outgoing message to the same value of the Dirty flag of the cache tag.

Marco

Hui Li ha scritto:
hello,
the action e_sendData in MOESI_CMP_directory-L1cache.sm always does this:
  out_msg.Dirty := false;
so it means that the contents in the cache entry are the same with memory.
however, in transition:
  transition(M, Fwd_GETS, O) {
    e_sendData;
    l_popForwardQueue;
  }
the Dirty flag should be true, right? or I missed some point?
regards,
lihui


_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.





[← Prev in Thread] Current Thread [Next in Thread→]