summaryrefslogtreecommitdiff
path: root/cpu/base_cpu.hh
diff options
context:
space:
mode:
Diffstat (limited to 'cpu/base_cpu.hh')
-rw-r--r--cpu/base_cpu.hh14
1 files changed, 10 insertions, 4 deletions
diff --git a/cpu/base_cpu.hh b/cpu/base_cpu.hh
index f346f4ec5..ea12460db 100644
--- a/cpu/base_cpu.hh
+++ b/cpu/base_cpu.hh
@@ -46,9 +46,17 @@ class ExecContext;
class BaseCPU : public SimObject
{
+ protected:
+ // CPU's clock period in terms of the number of ticks of curTime.
+ Tick cycleTime;
+
+ public:
+ inline Tick frequency() const { return Clock::Frequency / cycleTime; }
+ inline Tick cycles(int numCycles) const { return cycleTime * numCycles; }
+ inline Tick curCycle() const { return curTick / cycleTime; }
+
#ifdef FULL_SYSTEM
protected:
- Tick frequency;
uint64_t interrupts[NumInterruptLevels];
uint64_t intstatus;
@@ -67,8 +75,6 @@ class BaseCPU : public SimObject
bool check_interrupts() const { return intstatus != 0; }
uint64_t intr_status() const { return intstatus; }
-
- Tick getFreq() const { return frequency; }
#endif
protected:
@@ -100,7 +106,7 @@ class BaseCPU : public SimObject
Counter max_insts_all_threads;
Counter max_loads_any_thread;
Counter max_loads_all_threads;
- Tick freq;
+ Tick cycleTime;
bool functionTrace;
Tick functionTraceStart;
#ifdef FULL_SYSTEM