cpu: Update DRAM traffic gen
[gem5.git] / src / cpu / inorder / resources / execution_unit.hh
index 0a15afdabd38cbd6e95534cb9172ecf5c07935d6..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,16 +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);
+                  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:
     /////////////////////////////////////////////////////////////////
@@ -70,9 +71,12 @@ class ExecutionUnit : public Resource {
     /////////////////////////////////////////////////////////////////
     Stats::Scalar predictedTakenIncorrect;
     Stats::Scalar predictedNotTakenIncorrect;
-
+    Stats::Scalar predictedIncorrect;
+    Stats::Scalar predictedCorrect;
+    Stats::Formula mispredictPct;
     Stats::Scalar executions;
-    Tick lastExecuteCycle;
+    Tick lastExecuteTick;
+    Tick lastControlTick;
 };