[Gems-users] Checking both read and write sets on a coherence GETS request


Date: Fri, 03 Feb 2012 13:09:51 +0100
From: Ricardo Quislant del Barrio <quislant@xxxxxx>
Subject: [Gems-users] Checking both read and write sets on a coherence GETS request
Hello everybody,
I would like to know why both read and write sets have to be checked when an L1_GETS request gets the L2 cache
and the block is not present (NP) in there.
The annotation claims that it is for correctness.
Could anybody elaborate on this a bit more?
Why is it not enough to check write filters only?

Thank you very much,
Ricardo

// When L2 doesn't have block, need to send broadcasst to all L1s to check appropriate filter(s)
 transition(NP, L1_GETS,  ISS) {
   p_profileRequest;
   f_profileRequestor;
   qq_allocateL2CacheBlock;
   ll_clearSharers;
   // will mark as exclusive when we get unblocked with success
   //nn_addSharer;
   i_allocateTBE;
   i_setTBEPhysicalAddress;
   ss_recordGetSL1ID;
   a_issueFetchToMemory;
// for correctness we need to query both read + write filters *<----* a_checkL1ReadWriteFiltersExceptRequestor; *<----*
   uu_profileMiss;
   jj_popL1RequestQueue;
 }

--
Ricardo Quislant del Barrio
PhD Student

Dept. Computer Architecture         Ph. +34 95 213 7236
University of Malaga               Fax. +34 95 213 2790
ETSI Informatica, C. Teatinos   e-mail. quislant@xxxxxx
E-29071 Malaga, Spain

[← Prev in Thread] Current Thread [Next in Thread→]
  • [Gems-users] Checking both read and write sets on a coherence GETS request, Ricardo Quislant del Barrio <=