# HG changeset patch
# User Korey Sewell <[email protected]>
# Date 1251991492 14400
# Node ID 2cbb826e9ca006cad820ba2be85eeea1da7fd2f9
# Parent  e0c1c6d876499dc536cfdf0cd37736051f1fb760
cpus: make commit count naming consistent across all cpus
move all common cpu commit counts to base cpu
-numInsts => total number of insts. committed
-numInstsPerThread=> per thread instruction commits

a similar naming scheme is used for:
cpi, cpiPerThread, ipc, and ipcPerThread

diff -r e0c1c6d87649 -r 2cbb826e9ca0 src/cpu/base.cc
--- a/src/cpu/base.cc   Sun Aug 23 14:19:14 2009 -0700
+++ b/src/cpu/base.cc   Thu Sep 03 11:24:52 2009 -0400
@@ -246,12 +246,48 @@
 BaseCPU::regStats()
 {
     using namespace Stats;
-
+    
     numCycles
         .name(name() + ".numCycles")
-        .desc("number of cpu cycles simulated")
+        .desc("Number of cpu cycles simulated")
         ;
 
+    numInsts
+        .name(name() + ".num_insts")
+        .desc("Number of instructions committed")
+        ;
+
+    numInstsPerThread
+        .init(numThreads)
+        .name(name() + ".num_insts_per_thread")
+        .desc("Number of instructions committed per thread");
+
+    cpi
+        .name(name() + ".cpi")
+        .desc("Cycles per instruction")
+        .precision(6);
+    cpi = numCycles / numInsts;
+
+    cpiPerThread
+        .name(name() + ".cpi_per_thread")
+        .desc("Cycles per instruction for each thread")
+        .precision(6);
+    cpiPerThread = numCycles / numInstsPerThread;
+
+
+    ipc
+        .name(name() + ".ipc")
+        .desc("Instructions per cycle")
+        .precision(6);
+    ipc =  numInsts / numCycles;
+
+    ipcPerThread
+        .name(name() + ".ipc_per_thread")
+        .desc("Instructions per cycle for each thread")
+        .precision(6);
+    ipcPerThread =  numInstsPerThread / numCycles;
+
+
     int size = threadContexts.size();
     if (size > 1) {
         for (int i = 0; i < size; ++i) {
diff -r e0c1c6d87649 -r 2cbb826e9ca0 src/cpu/base.hh
--- a/src/cpu/base.hh   Sun Aug 23 14:19:14 2009 -0700
+++ b/src/cpu/base.hh   Thu Sep 03 11:24:52 2009 -0400
@@ -311,6 +311,24 @@
   public:
     // Number of CPU cycles simulated
     Stats::Scalar numCycles;
+
+    // Number of instructions committed by CPU
+    Stats::Scalar numInsts;
+
+    /** Stat for the number of committed instructions per thread. */
+    Stats::Vector numInstsPerThread;
+
+    /** Stat for the CPI */
+    Stats::Formula cpi;
+
+    /** Stat for the CPI per thread. */
+    Stats::Formula cpiPerThread;
+
+    /** Stat for the IPC */
+    Stats::Formula ipc;
+
+    /** Stat for the IPC per thread */
+    Stats::Formula ipcPerThread;
 };
 
 #endif // __CPU_BASE_HH__
diff -r e0c1c6d87649 -r 2cbb826e9ca0 src/cpu/inorder/cpu.cc
--- a/src/cpu/inorder/cpu.cc    Sun Aug 23 14:19:14 2009 -0700
+++ b/src/cpu/inorder/cpu.cc    Thu Sep 03 11:24:52 2009 -0400
@@ -319,56 +319,6 @@
         .name(name() + ".smtCycles")
         .desc("Total number of cycles that the CPU was simultaneous 
multithreading.(SMT)");
 
-    committedInsts
-        .init(numThreads)
-        .name(name() + ".committedInsts")
-        .desc("Number of Instructions Simulated (Per-Thread)");
-
-    smtCommittedInsts
-        .init(numThreads)
-        .name(name() + ".smtCommittedInsts")
-        .desc("Number of SMT Instructions Simulated (Per-Thread)");
-
-    totalCommittedInsts
-        .name(name() + ".committedInsts_total")
-        .desc("Number of Instructions Simulated (Total)");
-
-    cpi
-        .name(name() + ".cpi")
-        .desc("CPI: Cycles Per Instruction (Per-Thread)")
-        .precision(6);
-    cpi = threadCycles / committedInsts;
-
-    smtCpi
-        .name(name() + ".smt_cpi")
-        .desc("CPI: Total SMT-CPI")
-        .precision(6);
-    smtCpi = smtCycles / smtCommittedInsts;
-
-    totalCpi
-        .name(name() + ".cpi_total")
-        .desc("CPI: Total CPI of All Threads")
-        .precision(6);
-    totalCpi = numCycles / totalCommittedInsts;
-
-    ipc
-        .name(name() + ".ipc")
-        .desc("IPC: Instructions Per Cycle (Per-Thread)")
-        .precision(6);
-    ipc =  committedInsts / threadCycles;
-
-    smtIpc
-        .name(name() + ".smt_ipc")
-        .desc("IPC: Total SMT-IPC")
-        .precision(6);
-    smtIpc = smtCommittedInsts / smtCycles;
-
-    totalIpc
-        .name(name() + ".ipc_total")
-        .desc("IPC: Total IPC of All Threads")
-        .precision(6);
-        totalIpc =  totalCommittedInsts / numCycles;
-
     BaseCPU::regStats();
 }
 
@@ -1024,15 +974,10 @@
     thread[tid]->numInsts++;
 
     // Count committed insts per thread stats
-    committedInsts[tid]++;
+    numInstsPerThread[tid]++;
 
     // Count total insts committed stat
-    totalCommittedInsts++;
-
-    // Count SMT-committed insts per thread stat
-    if (numActiveThreads() > 1) {
-        smtCommittedInsts[tid]++;
-    }
+    numInsts++;
 
     // Check for instruction-count-based events.
     comInstEventQueue[tid]->serviceEvents(thread[tid]->numInst);
diff -r e0c1c6d87649 -r 2cbb826e9ca0 src/cpu/inorder/cpu.hh
--- a/src/cpu/inorder/cpu.hh    Sun Aug 23 14:19:14 2009 -0700
+++ b/src/cpu/inorder/cpu.hh    Thu Sep 03 11:24:52 2009 -0400
@@ -673,32 +673,6 @@
     /** Stat for total number of cycles the CPU spends descheduled. */
     Stats::Scalar idleCycles;
 
-    /** Stat for the number of committed instructions per thread. */
-    Stats::Vector committedInsts;
-
-    /** Stat for the number of committed instructions per thread. */
-    Stats::Vector smtCommittedInsts;
-
-    /** Stat for the total number of committed instructions. */
-    Stats::Scalar totalCommittedInsts;
-
-    /** Stat for the CPI per thread. */
-    Stats::Formula cpi;
-
-    /** Stat for the SMT-CPI per thread. */
-    Stats::Formula smtCpi;
-
-    /** Stat for the total CPI. */
-    Stats::Formula totalCpi;
-
-    /** Stat for the IPC per thread. */
-    Stats::Formula ipc;
-
-    /** Stat for the total IPC. */
-    Stats::Formula smtIpc;
-
-    /** Stat for the total IPC. */
-    Stats::Formula totalIpc;
 };
 
 #endif // __CPU_O3_CPU_HH__
diff -r e0c1c6d87649 -r 2cbb826e9ca0 src/cpu/inorder/inorder_cpu_builder.cc
--- a/src/cpu/inorder/inorder_cpu_builder.cc    Sun Aug 23 14:19:14 2009 -0700
+++ b/src/cpu/inorder/inorder_cpu_builder.cc    Thu Sep 03 11:24:52 2009 -0400
@@ -36,7 +36,7 @@
 #include "cpu/static_inst.hh"
 #include "cpu/inorder/cpu.hh"
 #include "cpu/inorder/inorder_dyn_inst.hh"
-#include "cpu/inorder/pipeline_traits.hh"
+//#include "cpu/inorder/pipeline_traits.hh"
 #include "params/InOrderCPU.hh"
 
 InOrderCPU *
@@ -44,7 +44,7 @@
 {
     ThreadID actual_num_threads =
         (numThreads >= workload.size()) ? numThreads : workload.size();
-
+    
     if (workload.size() == 0) {
         fatal("Must specify at least one workload!");
     }
diff -r e0c1c6d87649 -r 2cbb826e9ca0 src/cpu/o3/commit.hh
--- a/src/cpu/o3/commit.hh      Sun Aug 23 14:19:14 2009 -0700
+++ b/src/cpu/o3/commit.hh      Thu Sep 03 11:24:52 2009 -0400
@@ -451,8 +451,6 @@
     /** Updates commit stats based on this instruction. */
     void updateComInstStats(DynInstPtr &inst);
 
-    /** Stat for the total number of committed instructions. */
-    Stats::Scalar commitCommittedInsts;
     /** Stat for the total number of squashed instructions discarded by commit.
      */
     Stats::Scalar commitSquashedInsts;
@@ -469,8 +467,6 @@
     /** Distribution of the number of committed instructions each cycle. */
     Stats::Distribution numCommittedDist;
 
-    /** Total number of instructions committed. */
-    Stats::Vector statComInst;
     /** Total number of software prefetches committed. */
     Stats::Vector statComSwp;
     /** Stat for the total number of committed memory references. */
diff -r e0c1c6d87649 -r 2cbb826e9ca0 src/cpu/o3/commit_impl.hh
--- a/src/cpu/o3/commit_impl.hh Sun Aug 23 14:19:14 2009 -0700
+++ b/src/cpu/o3/commit_impl.hh Thu Sep 03 11:24:52 2009 -0400
@@ -150,10 +150,7 @@
 DefaultCommit<Impl>::regStats()
 {
     using namespace Stats;
-    commitCommittedInsts
-        .name(name() + ".commitCommittedInsts")
-        .desc("The number of committed instructions")
-        .prereq(commitCommittedInsts);
+
     commitSquashedInsts
         .name(name() + ".commitSquashedInsts")
         .desc("The number of squashed insts skipped by commit")
@@ -174,17 +171,10 @@
     numCommittedDist
         .init(0,commitWidth,1)
         .name(name() + ".COM:committed_per_cycle")
-        .desc("Number of insts commited each cycle")
+        .desc("Number of insts committed each cycle")
         .flags(Stats::pdf)
         ;
 
-    statComInst
-        .init(cpu->numThreads)
-        .name(name() + ".COM:count")
-        .desc("Number of instructions committed")
-        .flags(total)
-        ;
-
     statComSwp
         .init(cpu->numThreads)
         .name(name() + ".COM:swp_count")
@@ -902,14 +892,6 @@
                 // Set the doneSeqNum to the youngest committed instruction.
                 toIEW->commitInfo[tid].doneSeqNum = head_inst->seqNum;
 
-                ++commitCommittedInsts;
-
-                // To match the old model, don't count nops and instruction
-                // prefetches towards the total commit count.
-                if (!head_inst->isNop() && !head_inst->isInstPrefetch()) {
-                    cpu->instDone(tid);
-                }
-
                 PC[tid] = nextPC[tid];
                 nextPC[tid] = nextNPC[tid];
                 nextNPC[tid] = nextNPC[tid] + sizeof(TheISA::MachInst);
@@ -1242,18 +1224,11 @@
 {
     ThreadID tid = inst->threadNumber;
 
-    //
-    //  Pick off the software prefetches
-    //
-#ifdef TARGET_ALPHA
-    if (inst->isDataPrefetch()) {
-        statComSwp[tid]++;
-    } else {
-        statComInst[tid]++;
-    }
-#else
-    statComInst[tid]++;
-#endif
+    // To match the old model, don't count nops and instruction
+    // prefetches towards the total commit count.
+    //if (!head_inst->isNop() && !head_inst->isInstPrefetch()) {
+    cpu->instDone(tid);
+    //}
 
     //
     //  Control Instructions
diff -r e0c1c6d87649 -r 2cbb826e9ca0 src/cpu/o3/cpu.cc
--- a/src/cpu/o3/cpu.cc Sun Aug 23 14:19:14 2009 -0700
+++ b/src/cpu/o3/cpu.cc Thu Sep 03 11:24:52 2009 -0400
@@ -439,43 +439,6 @@
               "to idling")
         .prereq(idleCycles);
 
-    // Number of Instructions simulated
-    // --------------------------------
-    // Should probably be in Base CPU but need templated
-    // MaxThreads so put in here instead
-    committedInsts
-        .init(numThreads)
-        .name(name() + ".committedInsts")
-        .desc("Number of Instructions Simulated");
-
-    totalCommittedInsts
-        .name(name() + ".committedInsts_total")
-        .desc("Number of Instructions Simulated");
-
-    cpi
-        .name(name() + ".cpi")
-        .desc("CPI: Cycles Per Instruction")
-        .precision(6);
-    cpi = numCycles / committedInsts;
-
-    totalCpi
-        .name(name() + ".cpi_total")
-        .desc("CPI: Total CPI of All Threads")
-        .precision(6);
-    totalCpi = numCycles / totalCommittedInsts;
-
-    ipc
-        .name(name() + ".ipc")
-        .desc("IPC: Instructions Per Cycle")
-        .precision(6);
-    ipc =  committedInsts / numCycles;
-
-    totalIpc
-        .name(name() + ".ipc_total")
-        .desc("IPC: Total IPC of All Threads")
-        .precision(6);
-    totalIpc =  totalCommittedInsts / numCycles;
-
     this->fetch.regStats();
     this->decode.regStats();
     this->rename.regStats();
@@ -1400,8 +1363,8 @@
     // Keep an instruction count.
     thread[tid]->numInst++;
     thread[tid]->numInsts++;
-    committedInsts[tid]++;
-    totalCommittedInsts++;
+    numInstsPerThread[tid]++;
+    numInsts++;
 
     // Check for instruction-count-based events.
     comInstEventQueue[tid]->serviceEvents(thread[tid]->numInst);
diff -r e0c1c6d87649 -r 2cbb826e9ca0 src/cpu/o3/cpu.hh
--- a/src/cpu/o3/cpu.hh Sun Aug 23 14:19:14 2009 -0700
+++ b/src/cpu/o3/cpu.hh Thu Sep 03 11:24:52 2009 -0400
@@ -726,18 +726,6 @@
     Stats::Scalar timesIdled;
     /** Stat for total number of cycles the CPU spends descheduled. */
     Stats::Scalar idleCycles;
-    /** Stat for the number of committed instructions per thread. */
-    Stats::Vector committedInsts;
-    /** Stat for the total number of committed instructions. */
-    Stats::Scalar totalCommittedInsts;
-    /** Stat for the CPI per thread. */
-    Stats::Formula cpi;
-    /** Stat for the total CPI. */
-    Stats::Formula totalCpi;
-    /** Stat for the IPC per thread. */
-    Stats::Formula ipc;
-    /** Stat for the total IPC. */
-    Stats::Formula totalIpc;
 };
 
 #endif // __CPU_O3_CPU_HH__
diff -r e0c1c6d87649 -r 2cbb826e9ca0 src/cpu/simple/base.cc
--- a/src/cpu/simple/base.cc    Sun Aug 23 14:19:14 2009 -0700
+++ b/src/cpu/simple/base.cc    Thu Sep 03 11:24:52 2009 -0400
@@ -126,11 +126,6 @@
 
     BaseCPU::regStats();
 
-    numInsts
-        .name(name() + ".num_insts")
-        .desc("Number of instructions executed")
-        ;
-
     numMemRefs
         .name(name() + ".num_refs")
         .desc("Number of memory references")
diff -r e0c1c6d87649 -r 2cbb826e9ca0 src/cpu/simple/base.hh
--- a/src/cpu/simple/base.hh    Sun Aug 23 14:19:14 2009 -0700
+++ b/src/cpu/simple/base.hh    Thu Sep 03 11:24:52 2009 -0400
@@ -177,14 +177,16 @@
     // number of simulated instructions
     Counter numInst;
     Counter startNumInst;
-    Stats::Scalar numInsts;
 
     void countInst()
     {
+        // Increment counters
         numInst++;
+        thread->funcExeInst++;
+
+        // Increment stats
         numInsts++;
-
-        thread->funcExeInst++;
+        numInstsPerThread[0/*tid*/]++;        
     }
 
     virtual Counter totalInstructions() const
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to