cpu: Update DRAM traffic gen
[gem5.git] / src / cpu / inorder / resources / execution_unit.hh
index e969497a237d3edfa83e0ed89160243ab9433c64..e87a05c27b15cefe9ccc6b724ccef04cd8a3abf8 100644 (file)
 #ifndef __CPU_INORDER_EXECUTION_UNIT_HH__
 #define __CPU_INORDER_EXECUTION_UNIT_HH__
 
-#include <vector>
 #include <list>
 #include <string>
+#include <vector>
 
-#include "cpu/func_unit.hh"
 #include "cpu/inorder/first_stage.hh"
-#include "cpu/inorder/resource.hh"
 #include "cpu/inorder/inorder_dyn_inst.hh"
+#include "cpu/inorder/resource.hh"
+#include "cpu/func_unit.hh"
 
 class ExecutionUnit : public Resource {
   public:
@@ -51,17 +51,17 @@ class ExecutionUnit : public Resource {
 
   public:
     ExecutionUnit(std::string res_name, int res_id, int res_width,
-              int res_latency, InOrderCPU *_cpu, ThePipeline::Params *params);
-    virtual ~ExecutionUnit() {}
+                  Cycles res_latency, InOrderCPU *_cpu,
+                  ThePipeline::Params *params);
 
   public:
-    virtual void regStats();
+    void regStats();
 
     /** Execute the function of this resource. The Default is action
      *  is to do nothing. More specific models will derive from this
      *  class and define their own execute function.
      */
-    virtual void execute(int slot_num);
+    void execute(int slot_num);
 
   protected:
     /////////////////////////////////////////////////////////////////
@@ -69,8 +69,14 @@ class ExecutionUnit : public Resource {
     // RESOURCE STATISTICS
     //
     /////////////////////////////////////////////////////////////////
-    Stats::Scalar<> predictedTakenIncorrect;
-    Stats::Scalar<> predictedNotTakenIncorrect;
+    Stats::Scalar predictedTakenIncorrect;
+    Stats::Scalar predictedNotTakenIncorrect;
+    Stats::Scalar predictedIncorrect;
+    Stats::Scalar predictedCorrect;
+    Stats::Formula mispredictPct;
+    Stats::Scalar executions;
+    Tick lastExecuteTick;
+    Tick lastControlTick;
 };