35 #ifndef __MEM_RUBY_SYSTEM_SYSTEM_HH__
36 #define __MEM_RUBY_SYSTEM_SYSTEM_HH__
44 #include "params/RubySystem.hh"
124 uint64_t cache_trace_size,
125 uint64_t block_size_bytes);
129 uint64_t &uncompressed_trace_size);
131 uint64_t uncompressed_trace_size);
167 #endif // __MEM_RUBY_SYSTEM_SYSTEM_HH__
EventQueue * eventq
A pointer to this object's event queue.
static void readCompressedTrace(std::string filename, uint8_t *&raw_data, uint64_t &uncompressed_trace_size)
static void writeCompressedTrace(uint8_t *raw_data, std::string file, uint64_t uncompressed_trace_size)
Cycles is a wrapper class for representing cycle counts, i.e.
void serialize(CheckpointOut &cp) const override
Serialize an object.
SimpleMemory * m_phys_mem
RubySystem * m_ruby_system
static bool m_randomization
SimpleMemory * getPhysMem()
void makeCacheRecorder(uint8_t *uncompressed_trace, uint64_t cache_trace_size, uint64_t block_size_bytes)
CacheRecorder * m_cache_recorder
static uint32_t m_block_size_bytes
RubySystem(const Params *p)
static uint32_t getMemorySizeBits()
bool functionalRead(Packet *ptr)
static bool m_warmup_enabled
bool functionalWrite(Packet *ptr)
void drainResume() override
Resume execution after a successful drain.
void enqueueRubyEvent(Tick tick)
RubySystem * m_ruby_system
static bool getWarmupEnabled()
const bool m_access_backing_store
void registerNetwork(Network *)
The simple memory is a basic single-ported memory controller with a configurable throughput and laten...
uint64_t Tick
Tick count type.
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
std::vector< std::map< uint32_t, AbstractController * > > m_abstract_controls
ClockedObject declaration and implementation.
void startup() override
startup() is the final initialization call before simulation.
void memWriteback() override
Write back dirty buffers to memory using functional writes.
static bool getCooldownEnabled()
void regStats(const std::string &name)
static uint32_t m_memory_size_bits
void process()
virtual process function that is invoked when the callback queue is executed.
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
void resetStats() override
Reset statistics associated with this object.
static uint32_t m_block_size_bits
std::vector< AbstractController * > m_abs_cntrl_vec
RubySystem & operator=(const RubySystem &obj)
virtual const std::string name() const
RubyStatsCallback(RubySystem *system)
Declaration of the Packet class.
std::ostream CheckpointOut
void schedule(Event &event, Tick when)
void regStats() override
Register statistics for this object.
static bool m_cooldown_enabled
static unsigned m_systems_to_warmup
virtual ~RubyStatsCallback()
static uint32_t getBlockSizeBits()
static uint32_t getBlockSizeBytes()
void regStats() override
Register statistics for this object.
void registerAbstractController(AbstractController *)
RubyEvent(RubySystem *_ruby_system)
static int getRandomization()
void unserialize(CheckpointIn &cp) override
Unserialize an object.
bool getAccessBackingStore()