gem5  v20.1.0.0
Public Member Functions | Private Attributes | List of all members
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...
 
unsigned M5_CLASS_VAR_USED 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 48 of file scoreboard.hh.

Constructor & Destructor Documentation

◆ Scoreboard()

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

Constructs a scoreboard.

Parameters
_numPhysicalRegsNumber of physical registers.
_numMiscRegsNumber of miscellaneous registers.

Definition at line 35 of file scoreboard.cc.

◆ ~Scoreboard()

Scoreboard::~Scoreboard ( )
inline

Destructor.

Definition at line 71 of file scoreboard.hh.

Member Function Documentation

◆ getReg()

bool Scoreboard::getReg ( PhysRegIdPtr  phys_reg) const
inline

Checks if the register is ready.

Definition at line 77 of file scoreboard.hh.

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

Referenced by DefaultRename< Impl >::renameSrcRegs().

◆ name()

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

Returns the name of the scoreboard.

Definition at line 74 of file scoreboard.hh.

References _name.

◆ setReg()

void Scoreboard::setReg ( PhysRegIdPtr  phys_reg)
inline

◆ unsetReg()

void Scoreboard::unsetReg ( PhysRegIdPtr  phys_reg)
inline

Sets the register as not ready.

Definition at line 112 of file scoreboard.hh.

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

Referenced by DefaultRename< Impl >::renameDestRegs().

Member Data Documentation

◆ _name

const std::string Scoreboard::_name
private

The object name, for DPRINTF.

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

Definition at line 53 of file scoreboard.hh.

Referenced by name().

◆ numPhysRegs

unsigned M5_CLASS_VAR_USED Scoreboard::numPhysRegs
private

The number of actual physical registers.

Definition at line 60 of file scoreboard.hh.

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

◆ regScoreBoard

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

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

Definition at line 57 of file scoreboard.hh.

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


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

Generated on Wed Sep 30 2020 14:02:31 for gem5 by doxygen 1.8.17