diff options
author | Korey Sewell <ksewell@umich.edu> | 2010-06-23 18:14:59 -0400 |
---|---|---|
committer | Korey Sewell <ksewell@umich.edu> | 2010-06-23 18:14:59 -0400 |
commit | 7695d4c63fb702ae9d53285f8e544c6c7c13fa74 (patch) | |
tree | a3477a4d32942edbc771ed86be4670737f149f87 /src/cpu/inorder/resource_pool.cc | |
parent | de2321de81506a81f64641babe0bce17ab946b9c (diff) | |
download | gem5-7695d4c63fb702ae9d53285f8e544c6c7c13fa74.tar.xz |
inorder: tick scheduling
use nextCycle to calculate ticks after addition
Diffstat (limited to 'src/cpu/inorder/resource_pool.cc')
-rw-r--r-- | src/cpu/inorder/resource_pool.cc | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/cpu/inorder/resource_pool.cc b/src/cpu/inorder/resource_pool.cc index 74bf4f03b..811ef3e99 100644 --- a/src/cpu/inorder/resource_pool.cc +++ b/src/cpu/inorder/resource_pool.cc @@ -259,7 +259,7 @@ ResourcePool::scheduleEvent(InOrderCPU::CPUEventType e_type, DynInstPtr inst, inst->bdelaySeqNum, inst->readTid()); mainEventQueue.schedule(res_pool_event, - curTick + cpu->ticks(delay)); + cpu->nextCycle(curTick + cpu->ticks(delay))); } break; @@ -278,7 +278,7 @@ ResourcePool::scheduleEvent(InOrderCPU::CPUEventType e_type, DynInstPtr inst, tid); mainEventQueue.schedule(res_pool_event, - curTick + cpu->ticks(delay)); + cpu->nextCycle(curTick + cpu->ticks(delay))); } break; @@ -287,7 +287,7 @@ ResourcePool::scheduleEvent(InOrderCPU::CPUEventType e_type, DynInstPtr inst, { DPRINTF(Resource, "Scheduling Suspend Thread Resource Pool Event for tick %i.\n", - curTick + delay); + cpu->nextCycle(cpu->nextCycle(curTick + cpu->ticks(delay)))); ResPoolEvent *res_pool_event = new ResPoolEvent(this, e_type, inst, @@ -295,7 +295,7 @@ ResourcePool::scheduleEvent(InOrderCPU::CPUEventType e_type, DynInstPtr inst, inst->bdelaySeqNum, tid); - mainEventQueue.schedule(res_pool_event, curTick + cpu->ticks(delay)); + mainEventQueue.schedule(res_pool_event, cpu->nextCycle(cpu->nextCycle(curTick + cpu->ticks(delay)))); } break; @@ -311,7 +311,7 @@ ResourcePool::scheduleEvent(InOrderCPU::CPUEventType e_type, DynInstPtr inst, inst->seqNum, inst->readTid()); mainEventQueue.schedule(res_pool_event, - curTick + cpu->ticks(delay)); + cpu->nextCycle(curTick + cpu->ticks(delay))); } break; @@ -327,7 +327,7 @@ ResourcePool::scheduleEvent(InOrderCPU::CPUEventType e_type, DynInstPtr inst, inst->bdelaySeqNum, inst->readTid()); mainEventQueue.schedule(res_pool_event, - curTick + cpu->ticks(delay)); + cpu->nextCycle(curTick + cpu->ticks(delay))); } break; @@ -343,7 +343,7 @@ ResourcePool::scheduleEvent(InOrderCPU::CPUEventType e_type, DynInstPtr inst, inst->seqNum - 1, inst->readTid()); mainEventQueue.schedule(res_pool_event, - curTick + cpu->ticks(delay)); + cpu->nextCycle(curTick + cpu->ticks(delay))); } break; @@ -356,7 +356,7 @@ ResourcePool::scheduleEvent(InOrderCPU::CPUEventType e_type, DynInstPtr inst, inst->squashingStage, inst->seqNum, inst->readTid()); - mainEventQueue.schedule(res_pool_event, curTick + cpu->ticks(delay)); + mainEventQueue.schedule(res_pool_event, cpu->nextCycle(curTick + cpu->ticks(delay))); } break; @@ -544,9 +544,9 @@ void ResourcePool::ResPoolEvent::scheduleEvent(int delay) { if (squashed()) - mainEventQueue.reschedule(this,curTick + resPool->cpu->ticks(delay)); + mainEventQueue.reschedule(this,resPool->cpu->nextCycle(curTick + resPool->cpu->ticks(delay))); else if (!scheduled()) - mainEventQueue.schedule(this,curTick + resPool->cpu->ticks(delay)); + mainEventQueue.schedule(this, resPool->cpu->nextCycle(curTick + resPool->cpu->ticks(delay))); } /** Unschedule resource event, regardless of its current state. */ |