gem5  v22.1.0.0
Public Member Functions | Private Attributes | List of all members
gem5::o3::Scoreboard Class Reference

Implements a simple scoreboard to track which registers are ready. More...

#include <scoreboard.hh>

Public Member Functions

 Scoreboard (const std::string &_my_name, unsigned _numPhysicalRegs)
 Constructs a scoreboard. More...
 
 ~Scoreboard ()
 Destructor. More...
 
std::string name () const
 Returns the name of the scoreboard. More...
 
bool getReg (PhysRegIdPtr phys_reg) const
 Checks if the register is ready. More...
 
void setReg (PhysRegIdPtr phys_reg)
 Sets the register as ready. More...
 
void unsetReg (PhysRegIdPtr phys_reg)
 Sets the register as not ready. More...
 

Private Attributes

const std::string _name
 The object name, for DPRINTF. More...
 
std::vector< bool > regScoreBoard
 Scoreboard of physical integer registers, saying whether or not they are ready. More...
 
GEM5_CLASS_VAR_USED unsigned numPhysRegs
 The number of actual physical registers. More...
 

Detailed Description

Implements a simple scoreboard to track which registers are ready.

This class operates on the unified physical register space, because the different classes of registers do not need to be distinguished. Registers being part of a fixed mapping are always considered ready.

Definition at line 54 of file scoreboard.hh.

Constructor & Destructor Documentation

◆ Scoreboard()

gem5::o3::Scoreboard::Scoreboard ( const std::string &  _my_name,
unsigned  _numPhysicalRegs 
)

Constructs a scoreboard.

Parameters
_numPhysicalRegsNumber of physical registers.
_numMiscRegsNumber of miscellaneous registers.

Definition at line 38 of file scoreboard.cc.

◆ ~Scoreboard()

gem5::o3::Scoreboard::~Scoreboard ( )
inline

Destructor.

Definition at line 76 of file scoreboard.hh.

Member Function Documentation

◆ getReg()

bool gem5::o3::Scoreboard::getReg ( PhysRegIdPtr  phys_reg) const
inline

Checks if the register is ready.

Definition at line 83 of file scoreboard.hh.

References gem5::PhysRegId::flatIndex(), gem5::PhysRegId::isFixedMapping(), numPhysRegs, and regScoreBoard.

Referenced by gem5::o3::Rename::renameSrcRegs().

◆ name()

std::string gem5::o3::Scoreboard::name ( ) const
inline

Returns the name of the scoreboard.

Definition at line 79 of file scoreboard.hh.

References _name.

◆ setReg()

void gem5::o3::Scoreboard::setReg ( PhysRegIdPtr  phys_reg)
inline

◆ unsetReg()

void gem5::o3::Scoreboard::unsetReg ( PhysRegIdPtr  phys_reg)
inline

Sets the register as not ready.

Definition at line 115 of file scoreboard.hh.

References gem5::PhysRegId::flatIndex(), gem5::PhysRegId::isFixedMapping(), numPhysRegs, and regScoreBoard.

Referenced by gem5::o3::Rename::renameDestRegs().

Member Data Documentation

◆ _name

const std::string gem5::o3::Scoreboard::_name
private

The object name, for DPRINTF.

We have to declare this explicitly because Scoreboard is not a SimObject.

Definition at line 59 of file scoreboard.hh.

Referenced by name().

◆ numPhysRegs

GEM5_CLASS_VAR_USED unsigned gem5::o3::Scoreboard::numPhysRegs
private

The number of actual physical registers.

Definition at line 66 of file scoreboard.hh.

Referenced by getReg(), setReg(), and unsetReg().

◆ regScoreBoard

std::vector<bool> gem5::o3::Scoreboard::regScoreBoard
private

Scoreboard of physical integer registers, saying whether or not they are ready.

Definition at line 63 of file scoreboard.hh.

Referenced by getReg(), setReg(), and unsetReg().


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

Generated on Wed Dec 21 2022 10:24:18 for gem5 by doxygen 1.9.1