That's probably to allow the requestor get exclusive access to the block if no other L1 has it in the read set either.

--
Nilay

On Fri, 3 Feb 2012, Ricardo Quislant del Barrio wrote:

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

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

Reply via email to