Hi,
I have two questions.
(1) Suppose there are two L1 caches. The first cache has a line which is not in
BlkDirty state. Now, the second cache request to read the line. According to
the coherence, the first cache should send response to the second cache.
But this will not happen.
Because the respond condition will not content in the following code from
function handlesnoop(). So the response will not be send.
if (respond) {
assert(!pkt->memInhibitAsserted());
pkt->assertMemInhibit();
if (have_exclusive) {
pkt->setSupplyExclusive();
}
if (is_timing) {
doTimingSupplyResponse(pkt, blk->data, is_deferred, pending_inval);
} else {
pkt->makeAtomicResponse();
pkt->setDataFromBlock(blk->data, blkSize);
}
}
(2)Suppose there are two L1 caches. The first cache has a line which is in
BlkReadable state. Now, the second cache want to write the address. According
to the coherence, the block in the first cache should be invalidated. But this
will not happen.
Because there is no corresponding code in the snooptiming() and handlesnoop()
function to perform such action.
Thank you!
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users