diff options
author | Korey Sewell <ksewell@umich.edu> | 2010-01-31 18:28:51 -0500 |
---|---|---|
committer | Korey Sewell <ksewell@umich.edu> | 2010-01-31 18:28:51 -0500 |
commit | ffa9ecb1fa71f1fe89a65975b2c558e312bbfbc8 (patch) | |
tree | adbae9144a62e3a25720954b48feb4de8c46f259 /src/cpu/inorder/cpu.cc | |
parent | 4d749472e3cb97ff0421fbf5cbc53d9c89ecfa45 (diff) | |
download | gem5-ffa9ecb1fa71f1fe89a65975b2c558e312bbfbc8.tar.xz |
inorder: pipeline stage stats
add idle/run/utilization stats for each pipeline stage
Diffstat (limited to 'src/cpu/inorder/cpu.cc')
-rw-r--r-- | src/cpu/inorder/cpu.cc | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/cpu/inorder/cpu.cc b/src/cpu/inorder/cpu.cc index d8fea79d9..4cc9b9f22 100644 --- a/src/cpu/inorder/cpu.cc +++ b/src/cpu/inorder/cpu.cc @@ -346,6 +346,11 @@ InOrderCPU::regStats() .prereq(maxResReqCount); #endif + /* Register for each Pipeline Stage */ + for (int stage_num=0; stage_num < ThePipeline::NumStages; stage_num++) { + pipelineStage[stage_num]->regStats(); + } + /* Register any of the InOrderCPU's stats here.*/ timesIdled .name(name() + ".timesIdled") @@ -1289,8 +1294,14 @@ InOrderCPU::wakeCPU() DPRINTF(Activity, "Waking up CPU\n"); - //@todo: figure out how to count idleCycles correctly - //idleCycles += (curTick - 1) - lastRunningCycle; + Tick extra_cycles = tickToCycles((curTick - 1) - lastRunningCycle); + + idleCycles += extra_cycles; + for (int stage_num = 0; stage_num < NumStages; stage_num++) { + pipelineStage[stage_num]->idleCycles += extra_cycles; + } + + numCycles += extra_cycles; mainEventQueue.schedule(&tickEvent, curTick); } |