summaryrefslogtreecommitdiff
path: root/src/cpu/inorder/cpu.cc
diff options
context:
space:
mode:
authorKorey Sewell <ksewell@umich.edu>2010-06-23 18:14:59 -0400
committerKorey Sewell <ksewell@umich.edu>2010-06-23 18:14:59 -0400
commit7695d4c63fb702ae9d53285f8e544c6c7c13fa74 (patch)
treea3477a4d32942edbc771ed86be4670737f149f87 /src/cpu/inorder/cpu.cc
parentde2321de81506a81f64641babe0bce17ab946b9c (diff)
downloadgem5-7695d4c63fb702ae9d53285f8e544c6c7c13fa74.tar.xz
inorder: tick scheduling
use nextCycle to calculate ticks after addition
Diffstat (limited to 'src/cpu/inorder/cpu.cc')
-rw-r--r--src/cpu/inorder/cpu.cc11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/cpu/inorder/cpu.cc b/src/cpu/inorder/cpu.cc
index 0744686e1..c0159bc29 100644
--- a/src/cpu/inorder/cpu.cc
+++ b/src/cpu/inorder/cpu.cc
@@ -158,9 +158,9 @@ void
InOrderCPU::CPUEvent::scheduleEvent(int delay)
{
if (squashed())
- mainEventQueue.reschedule(this,curTick + cpu->ticks(delay));
+ mainEventQueue.reschedule(this, cpu->nextCycle(curTick + cpu->ticks(delay)));
else if (!scheduled())
- mainEventQueue.schedule(this,curTick + cpu->ticks(delay));
+ mainEventQueue.schedule(this, cpu->nextCycle(curTick + cpu->ticks(delay)));
}
void
@@ -671,10 +671,11 @@ InOrderCPU::scheduleCpuEvent(CPUEventType c_event, Fault fault,
CPUEvent *cpu_event = new CPUEvent(this, c_event, fault, tid, inst,
event_pri_offset);
+ Tick sked_tick = nextCycle(curTick + ticks(delay));
if (delay >= 0) {
DPRINTF(InOrderCPU, "Scheduling CPU Event (%s) for cycle %i, [tid:%i].\n",
eventNames[c_event], curTick + delay, tid);
- mainEventQueue.schedule(cpu_event,curTick + delay);
+ mainEventQueue.schedule(cpu_event, sked_tick);
} else {
cpu_event->process();
cpuEventRemoveList.push(cpu_event);
@@ -1335,7 +1336,7 @@ InOrderCPU::cleanUpRemovedReqs()
while (!reqRemoveList.empty()) {
ResourceRequest *res_req = reqRemoveList.front();
- DPRINTF(Resource, "[tid:%i] [sn:%lli]: Removing Request "
+ DPRINTF(RefCount, "[tid:%i] [sn:%lli]: Removing Request "
"[stage_num:%i] [res:%s] [slot:%i] [completed:%i].\n",
res_req->inst->threadNumber,
res_req->inst->seqNum,
@@ -1400,7 +1401,7 @@ InOrderCPU::wakeCPU()
numCycles += extra_cycles;
- mainEventQueue.schedule(&tickEvent, curTick);
+ mainEventQueue.schedule(&tickEvent, nextCycle(curTick));
}
#if FULL_SYSTEM