summaryrefslogtreecommitdiff
path: root/src/cpu/base.hh
diff options
context:
space:
mode:
authorKevin Lim <ktlim@umich.edu>2006-11-06 13:27:45 -0500
committerKevin Lim <ktlim@umich.edu>2006-11-06 13:27:45 -0500
commit652281a61c6be7210b575e50566e7efdc82ab6ba (patch)
treeee9532bc451a62a5cc68cb41646794f5165fe14a /src/cpu/base.hh
parent257e09d62622676b84b5166854850024a5f72bcc (diff)
downloadgem5-652281a61c6be7210b575e50566e7efdc82ab6ba.tar.xz
Clean up clock phase drift code a bit.
src/cpu/base.cc: Move clock phase drift code to the base CPU so that any CPU model can use it. src/cpu/base.hh: Added two functions to help get the next cycle the CPU should be scheduled. src/cpu/simple/atomic.cc: src/cpu/simple/timing.cc: Use the function now in BaseCPU. --HG-- extra : convert_revision : 444494b66ffc85fc473c23f57683c5f9458ad80c
Diffstat (limited to 'src/cpu/base.hh')
-rw-r--r--src/cpu/base.hh14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/cpu/base.hh b/src/cpu/base.hh
index 75e0d86af..df665ed23 100644
--- a/src/cpu/base.hh
+++ b/src/cpu/base.hh
@@ -73,6 +73,20 @@ class BaseCPU : public MemObject
inline Tick cycles(int numCycles) const { return clock * numCycles; }
inline Tick curCycle() const { return curTick / clock; }
+ /** The next cycle the CPU should be scheduled, given a cache
+ * access or quiesce event returning on this cycle. This function
+ * may return curTick if the CPU should run on the current cycle.
+ */
+ Tick nextCycle();
+
+ /** The next cycle the CPU should be scheduled, given a cache
+ * access or quiesce event returning on the given Tick. This
+ * function may return curTick if the CPU should run on the
+ * current cycle.
+ * @param begin_tick The tick that the event is completing on.
+ */
+ Tick nextCycle(Tick begin_tick);
+
#if FULL_SYSTEM
protected:
uint64_t interrupts[TheISA::NumInterruptLevels];