gem5 [DEVELOP-FOR-25.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
 
Random::RandomPtr rng = Random::genRandom()
 

Detailed Description

Definition at line 121 of file address_manager.hh.

Member Typedef Documentation

◆ AddressMap

Definition at line 266 of file address_manager.hh.

◆ AtomicStructTable

◆ Location

Definition at line 128 of file address_manager.hh.

◆ LogTable

Definition at line 274 of file address_manager.hh.

◆ Value

typedef int32_t gem5::AddressManager::Value

Definition at line 127 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 88 of file address_manager.cc.

References atomicStructs, and logTable.

Member Function Documentation

◆ finishLocSelection()

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

Definition at line 127 of file address_manager.cc.

References atomicStructs, and numAtomicLocs.

◆ getAddress()

Addr gem5::AddressManager::getAddress ( Location loc)

Definition at line 97 of file address_manager.cc.

References randAddressMap.

◆ getAtomicLoc()

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

Definition at line 104 of file address_manager.cc.

References atomicStructs, numAtomicLocs, and rng.

◆ getLoadLoc()

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

Definition at line 113 of file address_manager.cc.

References atomicStructs, and numAtomicLocs.

◆ getLoggedValue()

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

Definition at line 435 of file address_manager.cc.

References logTable, numAtomicLocs, and numNormalLocs.

◆ getStoreLoc()

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

Definition at line 120 of file address_manager.cc.

References atomicStructs, and numAtomicLocs.

◆ printLastWriter()

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

Definition at line 141 of file address_manager.cc.

References logTable.

◆ releaseLocation()

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

Definition at line 134 of file address_manager.cc.

References atomicStructs, and numAtomicLocs.

◆ updateLogTable()

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

Definition at line 427 of file address_manager.cc.

References logTable, numAtomicLocs, and numNormalLocs.

◆ validateAtomicResp()

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

Definition at line 442 of file address_manager.cc.

References atomicStructs, and numAtomicLocs.

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 261 of file address_manager.hh.

Referenced by AddressManager().

◆ numNormalLocs

int gem5::AddressManager::numNormalLocs
private

Definition at line 263 of file address_manager.hh.

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

◆ randAddressMap

AddressMap gem5::AddressManager::randAddressMap
private

Definition at line 267 of file address_manager.hh.

Referenced by AddressManager(), and getAddress().

◆ rng

Random::RandomPtr gem5::AddressManager::rng = Random::genRandom()
private

Definition at line 277 of file address_manager.hh.

Referenced by AddressManager(), and getAtomicLoc().


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

Generated on Mon May 26 2025 09:19:18 for gem5 by doxygen 1.13.2