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

Reply via email to