44#ifndef __MEM_DRAMSIM3_WRAPPER_HH__
45#define __MEM_DRAMSIM3_WRAPPER_HH__
88 const std::string& file_name)
const;
100 const std::string& working_dir,
101 std::function<
void(uint64_t)> read_cb,
102 std::function<
void(uint64_t)> write_cb);
121 void setCallbacks(std::function<
void(uint64_t)> read_complete,
122 std::function<
void(uint64_t)> write_complete);
Wrapper class to avoid having DRAMsim3 names like ClockDomain etc clashing with the normal gem5 world...
DRAMsim3Wrapper(const std::string &config_file, const std::string &working_dir, std::function< void(uint64_t)> read_cb, std::function< void(uint64_t)> write_cb)
Create an instance of the DRAMsim3 multi-channel memory controller using a specific config and system...
void setCallbacks(std::function< void(uint64_t)> read_complete, std::function< void(uint64_t)> write_complete)
Set the callbacks to use for read and write completion.
unsigned int burstSize() const
Get the burst size in bytes used by DRAMsim3.
void printStats()
Print the stats gathered in DRAMsim3.
void tick()
Progress the memory controller one cycle.
void enqueue(uint64_t addr, bool is_write)
Enqueue a packet.
unsigned int queueSize() const
Get the transaction queue size used by DRAMsim3.
void resetStats()
Reset stats (useful for fastforwarding switch)
T extractConfig(const std::string &field_name, const std::string &file_name) const
dramsim3::MemorySystem * dramsim
double clockPeriod() const
Get the internal clock period used by DRAMsim3, specified in ns.
bool canAccept(uint64_t addr, bool is_write) const
Determine if the controller can accept a new packet or not.
Forward declaration to avoid includes.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.