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. [email protected]
E-29071 Malaga, Spain

_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to