gem5
v20.1.0.0
|
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... | |
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.
Scoreboard::Scoreboard | ( | const std::string & | _my_name, |
unsigned | _numPhysicalRegs | ||
) |
Constructs a scoreboard.
_numPhysicalRegs | Number of physical registers. |
_numMiscRegs | Number of miscellaneous registers. |
Definition at line 35 of file scoreboard.cc.
|
inline |
Destructor.
Definition at line 71 of file scoreboard.hh.
|
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().
|
inline |
|
inline |
Sets the register as ready.
Definition at line 95 of file scoreboard.hh.
References PhysRegId::className(), DPRINTF, PhysRegId::flatIndex(), PhysRegId::index(), PhysRegId::isFixedMapping(), numPhysRegs, and regScoreBoard.
|
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().
|
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().
|
private |
The number of actual physical registers.
Definition at line 60 of file scoreboard.hh.
Referenced by getReg(), setReg(), and unsetReg().
|
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().