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