gem5  v22.1.0.0
Classes | Public Types | Public Member Functions | Static Public Attributes | Private Types | Private Attributes | List of all members
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

Definition at line 267 of file address_manager.hh.

◆ 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 79 of file address_manager.cc.

References atomicStructs, and logTable.

Member Function Documentation

◆ finishLocSelection()

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

Definition at line 117 of file address_manager.cc.

References atomicStructs, and numAtomicLocs.

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

◆ getAddress()

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

◆ getAtomicLoc()

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

Definition at line 95 of file address_manager.cc.

References atomicStructs, numAtomicLocs, and gem5::MipsISA::random.

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

◆ getLoadLoc()

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

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

References atomicStructs, and numAtomicLocs.

◆ printLastWriter()

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

Definition at line 131 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 124 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 428 of file address_manager.cc.

References atomicStructs, and numAtomicLocs.

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

Member Data Documentation

◆ atomicStructs

AtomicStructTable gem5::AddressManager::atomicStructs
private

◆ INVALID_LOCATION

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

◆ 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 Wed Dec 21 2022 10:23:14 for gem5 by doxygen 1.9.1