summaryrefslogtreecommitdiff
path: root/src/cpu
diff options
context:
space:
mode:
authorRon Dreslinski <rdreslin@umich.edu>2006-07-06 16:52:05 -0400
committerRon Dreslinski <rdreslin@umich.edu>2006-07-06 16:52:05 -0400
commit1ccfdb442ff34f9f2b38ee7716b7baee99a397c2 (patch)
tree1cfdd49a4a8c2e5e89dd66adb98acec93c745e8f /src/cpu
parenta1d208a65de95ee14c52fdc6ca9401642e07293d (diff)
downloadgem5-1ccfdb442ff34f9f2b38ee7716b7baee99a397c2.tar.xz
Timing cache works for hello world test.
Still need 1) detailed CPU (blocking ability in cache) 1a) Multiple outstanding requests (need to keep track of times for events) 2)Multi-level support 3)MP coherece support 4)LL/SC support 5)Functional path needs to be correctly implemented (temporarily works without multiple outstanding requests (simple cpu)) src/cpu/simple/timing.cc: Temp hack because timing cpu doesn't export ports properly so single I/D cache communicates only through the Icache port. src/mem/cache/base_cache.cc: Handle marking MSHR's in service Add support for getting CSHR's src/mem/cache/base_cache.hh: Make these functions visible at the base cache level src/mem/cache/cache.hh: make the functions virtual src/mem/cache/cache_impl.hh: Rename the function to make sense src/mem/packet.hh: Accidentally clearing the needsResponse field when sending a response back. --HG-- extra : convert_revision : 2325d4e0b77e470fa9da91490317dc8ed88b17e2
Diffstat (limited to 'src/cpu')
-rw-r--r--src/cpu/simple/timing.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/cpu/simple/timing.cc b/src/cpu/simple/timing.cc
index ad04c8d3b..036037ba9 100644
--- a/src/cpu/simple/timing.cc
+++ b/src/cpu/simple/timing.cc
@@ -451,7 +451,12 @@ TimingSimpleCPU::completeIfetch(Packet *pkt)
bool
TimingSimpleCPU::IcachePort::recvTiming(Packet *pkt)
{
- cpu->completeIfetch(pkt);
+ if (cpu->_status == DcacheWaitResponse)
+ cpu->completeDataAccess(pkt);
+ else if (cpu->_status == IcacheWaitResponse)
+ cpu->completeIfetch(pkt);
+ else
+ assert("OOPS" && 0);
return true;
}