#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:
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:
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
Stats::Scalar predictedTakenIncorrect;
Stats::Scalar predictedNotTakenIncorrect;
+ Stats::Scalar predictedIncorrect;
+ Stats::Scalar predictedCorrect;
+ Stats::Formula mispredictPct;
+ Stats::Scalar executions;
+ Tick lastExecuteTick;
+ Tick lastControlTick;
};