43#ifndef __MEM_DRAMSIM2_WRAPPER_HH__
44#define __MEM_DRAMSIM2_WRAPPER_HH__
48#include "DRAMSim2/Callback.h"
55class MultiChannelMemorySystem;
78 DRAMSim::MultiChannelMemorySystem*
dramsim;
88 const std::string& file_name)
const;
104 const std::string& system_file,
105 const std::string& working_dir,
106 const std::string& trace_file,
107 unsigned int memory_size_mb,
122 void setCallbacks(DRAMSim::TransactionCompleteCB* read_callback,
123 DRAMSim::TransactionCompleteCB* write_callback);
Wrapper class to avoid having DRAMSim2 names like ClockDomain etc clashing with the normal gem5 world...
void enqueue(bool is_write, uint64_t addr)
Enqueue a packet.
void printStats()
Print the stats gathered in DRAMsim2.
double clockPeriod() const
Get the internal clock period used by DRAMSim2, specified in ns.
unsigned int queueSize() const
Get the transaction queue size used by DRAMSim2.
unsigned int burstSize() const
Get the burst size in bytes used by DRAMSim2.
DRAMSim2Wrapper(const std::string &config_file, const std::string &system_file, const std::string &working_dir, const std::string &trace_file, unsigned int memory_size_mb, bool enable_debug)
Create an instance of the DRAMSim2 multi-channel memory controller using a specific config and system...
bool canAccept() const
Determine if the controller can accept a new packet or not.
T extractConfig(const std::string &field_name, const std::string &file_name) const
void setCallbacks(DRAMSim::TransactionCompleteCB *read_callback, DRAMSim::TransactionCompleteCB *write_callback)
Set the callbacks to use for read and write completion.
void tick()
Progress the memory controller one cycle.
DRAMSim::MultiChannelMemorySystem * dramsim
Forward declaration to avoid includes.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.