Fix ordering issue with squashed Icache Fetches and Static data in packet.
Now hello world works with 2 levels of cache with O3 CPU(multiple outstanding requests). src/cpu/o3/fetch_impl.hh: Fix ordering issue with squashed Icache Fetches and Static data in packet. --HG-- extra : convert_revision : a6adb87540b007ead0b4982cb3f31da8199fb5ca
This commit is contained in:
parent
ad4374e0cd
commit
6bcc65c1f8
1 changed files with 3 additions and 1 deletions
|
@ -357,6 +357,8 @@ DefaultFetch<Impl>::processCacheCompletion(PacketPtr pkt)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memcpy(cacheData[tid], pkt->getPtr<uint8_t *>(), cacheBlkSize);
|
||||||
|
|
||||||
if (!drainPending) {
|
if (!drainPending) {
|
||||||
// Wake up the CPU (if it went to sleep and was waiting on
|
// Wake up the CPU (if it went to sleep and was waiting on
|
||||||
// this completion event).
|
// this completion event).
|
||||||
|
@ -548,7 +550,7 @@ DefaultFetch<Impl>::fetchCacheLine(Addr fetch_PC, Fault &ret_fault, unsigned tid
|
||||||
// Build packet here.
|
// Build packet here.
|
||||||
PacketPtr data_pkt = new Packet(mem_req,
|
PacketPtr data_pkt = new Packet(mem_req,
|
||||||
Packet::ReadReq, Packet::Broadcast);
|
Packet::ReadReq, Packet::Broadcast);
|
||||||
data_pkt->dataStatic(cacheData[tid]);
|
data_pkt->dataDynamic(new uint8_t[cacheBlkSize]);
|
||||||
|
|
||||||
DPRINTF(Fetch, "Fetch: Doing instruction read.\n");
|
DPRINTF(Fetch, "Fetch: Doing instruction read.\n");
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue