gem5  v21.1.0.2
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 122 of file address_manager.hh.

Member Typedef Documentation

◆ AddressMap

Definition at line 265 of file address_manager.hh.

◆ AtomicStructTable

Definition at line 269 of file address_manager.hh.

◆ Location

Definition at line 129 of file address_manager.hh.

◆ LogTable

Definition at line 273 of file address_manager.hh.

◆ Value

typedef int32_t gem5::AddressManager::Value

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

References atomicStructs, and logTable.

Member Function Documentation

◆ finishLocSelection()

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

Definition at line 119 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 97 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 105 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 112 of file address_manager.cc.

References atomicStructs, and numAtomicLocs.

◆ printLastWriter()

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

Definition at line 133 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 126 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 430 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 260 of file address_manager.hh.

Referenced by AddressManager().

◆ numNormalLocs

int gem5::AddressManager::numNormalLocs
private

Definition at line 262 of file address_manager.hh.

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

◆ randAddressMap

AddressMap gem5::AddressManager::randAddressMap
private

Definition at line 266 of file address_manager.hh.

Referenced by AddressManager(), and getAddress().


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

Generated on Tue Sep 21 2021 12:27:12 for gem5 by doxygen 1.8.17