Hello, everyone,
I am using M5 for prefetching simulation. I modify the
Prefetcher::calculatePrefetch() function to generate some prefetch requests.
When I simulating, there thousands of warning info "warn: allocating bonus
target for snoop". I'm really confused about that, since I only simulate one
CPU core with separate L1 D/Inst Cache and one L2 Cache. I suppose there is
no snoop operation needed for single core environment.
Another question about the source code for prefetching? Why the upper level
cache (e.g. L1 cache) will send HardPFResp command to lower level L2 cache?
I think it should be main memory which reply HardPFReq, not the L1 cache?
the related source code from cache_impl.hh,
in function "template<class TagStore> bool Cache<TagStore>::timingAccess()"
if (pkt->isResponse()) {
// must be cache-to-cache response from upper to lower level
ForwardResponseRecord *rec =
dynamic_cast<ForwardResponseRecord *>(pkt->senderState);
if (rec == NULL) {
assert(pkt->cmd == MemCmd::HardPFResp);
// Check if it's a prefetch response and handle it. We shouldn't
// get any other kinds of responses without FRRs.
DPRINTF(Cache, "Got prefetch response from above for addr %#x\n",
pkt->getAddr());
handleResponse(pkt);
return true;
}
rec->restore(pkt, this);
delete rec;
memSidePort->respond(pkt, time);
return true;
}
Many thanks in advance
David
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users