diff options
author | Kevin Lim <ktlim@umich.edu> | 2006-11-06 13:27:57 -0500 |
---|---|---|
committer | Kevin Lim <ktlim@umich.edu> | 2006-11-06 13:27:57 -0500 |
commit | 2506c156205bc5255e8b64d1844ddf5a3645c117 (patch) | |
tree | 47e8ca8b3e8a010bf6732527399c4f128be758e2 /src/cpu/simple/timing.cc | |
parent | 430622c173b676c7a53aa5623d5197a26f9c9190 (diff) | |
parent | 652281a61c6be7210b575e50566e7efdc82ab6ba (diff) | |
download | gem5-2506c156205bc5255e8b64d1844ddf5a3645c117.tar.xz |
Merge ktlim@zizzer:/bk/newmem
into zamp.eecs.umich.edu:/z/ktlim2/clean/newmem
--HG--
extra : convert_revision : d6bb87586cf7ee63ca32e36944c3755fae0b55d0
Diffstat (limited to 'src/cpu/simple/timing.cc')
-rw-r--r-- | src/cpu/simple/timing.cc | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/cpu/simple/timing.cc b/src/cpu/simple/timing.cc index 4d57bf6d5..abf316095 100644 --- a/src/cpu/simple/timing.cc +++ b/src/cpu/simple/timing.cc @@ -532,14 +532,13 @@ TimingSimpleCPU::IcachePort::recvTiming(PacketPtr pkt) { if (pkt->isResponse()) { // delay processing of returned data until next CPU clock edge - Tick time = pkt->req->getTime(); - while (time < curTick) - time += lat; + Tick mem_time = pkt->req->getTime(); + Tick next_tick = cpu->nextCycle(mem_time); - if (time == curTick) + if (next_tick == curTick) cpu->completeIfetch(pkt); else - tickEvent.schedule(pkt, time); + tickEvent.schedule(pkt, next_tick); return true; } @@ -610,14 +609,13 @@ TimingSimpleCPU::DcachePort::recvTiming(PacketPtr pkt) { if (pkt->isResponse()) { // delay processing of returned data until next CPU clock edge - Tick time = pkt->req->getTime(); - while (time < curTick) - time += lat; + Tick mem_time = pkt->req->getTime(); + Tick next_tick = cpu->nextCycle(mem_time); - if (time == curTick) + if (next_tick == curTick) cpu->completeDataAccess(pkt); else - tickEvent.schedule(pkt, time); + tickEvent.schedule(pkt, next_tick); return true; } |