gem5 [DEVELOP-FOR-25.0]
Loading...
Searching...
No Matches
gem5::ruby::BankedArray Class Reference

#include <BankedArray.hh>

Classes

class  AccessRecord
 

Public Member Functions

 BankedArray (unsigned int banks, Cycles accessLatency, unsigned int startIndexBit)
 
bool tryAccess (int64_t idx)
 
void reserve (int64_t idx)
 
Cycles getLatency () const
 
void setClockPeriod (Tick _clockPeriod)
 

Private Member Functions

unsigned int mapIndexToBank (int64_t idx)
 

Private Attributes

unsigned int banks
 
Cycles accessLatency
 
Tick clockPeriod = 0
 
unsigned int bankBits
 
unsigned int startIndexBit
 
std::vector< AccessRecordbusyBanks
 

Detailed Description

Definition at line 46 of file BankedArray.hh.

Constructor & Destructor Documentation

◆ BankedArray()

gem5::ruby::BankedArray::BankedArray ( unsigned int banks,
Cycles accessLatency,
unsigned int startIndexBit )

Definition at line 44 of file BankedArray.cc.

References accessLatency, bankBits, banks, busyBanks, gem5::floorLog2(), and startIndexBit.

Member Function Documentation

◆ getLatency()

Cycles gem5::ruby::BankedArray::getLatency ( ) const
inline

Definition at line 80 of file BankedArray.hh.

References accessLatency.

◆ mapIndexToBank()

unsigned int gem5::ruby::BankedArray::mapIndexToBank ( int64_t idx)
private

Definition at line 103 of file BankedArray.cc.

References banks.

Referenced by reserve(), and tryAccess().

◆ reserve()

void gem5::ruby::BankedArray::reserve ( int64_t idx)

Definition at line 75 of file BankedArray.cc.

References accessLatency, banks, busyBanks, clockPeriod, gem5::curTick(), mapIndexToBank(), and panic.

◆ setClockPeriod()

void gem5::ruby::BankedArray::setClockPeriod ( Tick _clockPeriod)
inline

Definition at line 82 of file BankedArray.hh.

References clockPeriod.

◆ tryAccess()

bool gem5::ruby::BankedArray::tryAccess ( int64_t idx)

Definition at line 59 of file BankedArray.cc.

References accessLatency, banks, busyBanks, gem5::curTick(), and mapIndexToBank().

Member Data Documentation

◆ accessLatency

Cycles gem5::ruby::BankedArray::accessLatency
private

Definition at line 50 of file BankedArray.hh.

Referenced by BankedArray(), getLatency(), reserve(), and tryAccess().

◆ bankBits

unsigned int gem5::ruby::BankedArray::bankBits
private

Definition at line 52 of file BankedArray.hh.

Referenced by BankedArray().

◆ banks

unsigned int gem5::ruby::BankedArray::banks
private

Definition at line 49 of file BankedArray.hh.

Referenced by BankedArray(), mapIndexToBank(), reserve(), and tryAccess().

◆ busyBanks

std::vector<AccessRecord> gem5::ruby::BankedArray::busyBanks
private

Definition at line 66 of file BankedArray.hh.

Referenced by BankedArray(), reserve(), and tryAccess().

◆ clockPeriod

Tick gem5::ruby::BankedArray::clockPeriod = 0
private

Definition at line 51 of file BankedArray.hh.

Referenced by reserve(), and setClockPeriod().

◆ startIndexBit

unsigned int gem5::ruby::BankedArray::startIndexBit
private

Definition at line 53 of file BankedArray.hh.

Referenced by BankedArray().


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

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