gem5 v24.0.0.0
Loading...
Searching...
No Matches
gem5::AddressManager Class Reference

#include <address_manager.hh>

Classes

class  AtomicStruct
 
class  LastWriter
 

Public Types

typedef int32_t Value
 
typedef int32_t Location
 

Public Member Functions

 AddressManager (int n_atomic_locs, int numNormalLocsPerAtomic)
 
 ~AddressManager ()
 
Addr getAddress (Location loc)
 
Location getAtomicLoc ()
 
Location getLoadLoc (Location atomic_loc)
 
Location getStoreLoc (Location atomic_loc)
 
void finishLocSelection (Location atomic_loc)
 
void releaseLocation (Location atomic_loc, Location loc)
 
void updateLogTable (Location loc, int threadId, int episodeId, Value new_value, Tick curTick, int cuId=-1)
 
Value getLoggedValue (Location loc) const
 
bool validateAtomicResp (Location loc, Value ret_val)
 
std::string printLastWriter (Location loc) const
 

Static Public Attributes

static const int INVALID_VALUE = -1
 
static const int INVALID_LOCATION = -1
 

Private Types

typedef std::vector< AddrAddressMap
 
typedef std::vector< AtomicStruct * > AtomicStructTable
 
typedef std::vector< LastWriter * > LogTable
 

Private Attributes

int numAtomicLocs
 
int numLocsPerAtomic
 
int numNormalLocs
 
AddressMap randAddressMap
 
AtomicStructTable atomicStructs
 
LogTable logTable
 

Detailed Description

Definition at line 120 of file address_manager.hh.

Member Typedef Documentation

◆ AddressMap

Definition at line 263 of file address_manager.hh.

◆ AtomicStructTable

◆ Location

Definition at line 127 of file address_manager.hh.

◆ LogTable

Definition at line 271 of file address_manager.hh.

◆ Value

typedef int32_t gem5::AddressManager::Value

Definition at line 126 of file address_manager.hh.

Constructor & Destructor Documentation

◆ AddressManager()

gem5::AddressManager::AddressManager ( int n_atomic_locs,
int numNormalLocsPerAtomic )

◆ ~AddressManager()

gem5::AddressManager::~AddressManager ( )

Definition at line 85 of file address_manager.cc.

References atomicStructs, and logTable.

Member Function Documentation

◆ finishLocSelection()

void gem5::AddressManager::finishLocSelection ( Location atomic_loc)

Definition at line 124 of file address_manager.cc.

References atomicStructs, and numAtomicLocs.

Referenced by gem5::Episode::initActions().

◆ getAddress()

◆ getAtomicLoc()

AddressManager::Location gem5::AddressManager::getAtomicLoc ( )

◆ getLoadLoc()

AddressManager::Location gem5::AddressManager::getLoadLoc ( Location atomic_loc)

Definition at line 110 of file address_manager.cc.

References atomicStructs, and numAtomicLocs.

◆ getLoggedValue()

AddressManager::Value gem5::AddressManager::getLoggedValue ( Location loc) const

◆ getStoreLoc()

AddressManager::Location gem5::AddressManager::getStoreLoc ( Location atomic_loc)

Definition at line 117 of file address_manager.cc.

References atomicStructs, and numAtomicLocs.

◆ printLastWriter()

std::string gem5::AddressManager::printLastWriter ( Location loc) const

Definition at line 138 of file address_manager.cc.

References logTable.

Referenced by gem5::TesterThread::validateLoadResp().

◆ releaseLocation()

void gem5::AddressManager::releaseLocation ( Location atomic_loc,
Location loc )

Definition at line 131 of file address_manager.cc.

References atomicStructs, and numAtomicLocs.

Referenced by gem5::Episode::completeEpisode().

◆ updateLogTable()

void gem5::AddressManager::updateLogTable ( Location loc,
int threadId,
int episodeId,
Value new_value,
Tick curTick,
int cuId = -1 )

◆ validateAtomicResp()

bool gem5::AddressManager::validateAtomicResp ( Location loc,
Value ret_val )

Definition at line 439 of file address_manager.cc.

References atomicStructs, and numAtomicLocs.

Referenced by gem5::TesterThread::validateAtomicResp().

Member Data Documentation

◆ atomicStructs

◆ INVALID_LOCATION

◆ INVALID_VALUE

const int gem5::AddressManager::INVALID_VALUE = -1
static

◆ logTable

LogTable gem5::AddressManager::logTable
private

◆ numAtomicLocs

int gem5::AddressManager::numAtomicLocs
private

◆ numLocsPerAtomic

int gem5::AddressManager::numLocsPerAtomic
private

Definition at line 258 of file address_manager.hh.

Referenced by AddressManager().

◆ numNormalLocs

int gem5::AddressManager::numNormalLocs
private

Definition at line 260 of file address_manager.hh.

Referenced by AddressManager(), getLoggedValue(), and updateLogTable().

◆ randAddressMap

AddressMap gem5::AddressManager::randAddressMap
private

Definition at line 264 of file address_manager.hh.

Referenced by AddressManager(), and getAddress().


The documentation for this class was generated from the following files:

Generated on Tue Jun 18 2024 16:24:09 for gem5 by doxygen 1.11.0