gem5 v25.0.0.1
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 Sat Oct 18 2025 08:06:48 for gem5 by doxygen 1.14.0