gem5
v20.1.0.0
|
Communication interface between ScoreboardCheck and Schedule stages. More...
#include <comm.hh>
Public Member Functions | |
ScoreboardCheckToSchedule ()=delete | |
ScoreboardCheckToSchedule (const ComputeUnitParams *p) | |
Scoreboard/Schedule stage interface. More... | |
void | reset () override |
Reset the pipe stage interface. More... | |
void | markWFReady (Wavefront *wf, int func_unit_id) |
Mark the WF as ready for execution on a particular functional unit. More... | |
int | numReadyLists () const |
Returns the number of ready lists (i.e., the number of functional units). More... | |
std::vector< Wavefront * > & | readyWFs (int func_unit_id) |
TODO: These methods expose this class' implementation too much by returning references to its internal data structures directly. More... | |
void | updateReadyList (int func_unit_id) |
Delete all wavefronts that have been marked as ready at scoreboard stage but are found to have empty instruction buffers at schedule stage. More... | |
Private Attributes | |
std::vector< std::vector< Wavefront * > > | _readyWFs |
Communication interface between ScoreboardCheck and Schedule stages.
|
delete |
ScoreboardCheckToSchedule::ScoreboardCheckToSchedule | ( | const ComputeUnitParams * | p | ) |
Scoreboard/Schedule stage interface.
Definition at line 46 of file comm.cc.
References _readyWFs, and MipsISA::p.
void ScoreboardCheckToSchedule::markWFReady | ( | Wavefront * | wf, |
int | func_unit_id | ||
) |
Mark the WF as ready for execution on a particular functional unit.
Definition at line 68 of file comm.cc.
References _readyWFs.
Referenced by ScoreboardCheckStage::exec().
int ScoreboardCheckToSchedule::numReadyLists | ( | ) | const |
Returns the number of ready lists (i.e., the number of functional units).
Each functional unit has its own list of ready WFs to consider for arbitration.
Definition at line 74 of file comm.cc.
References _readyWFs.
Referenced by ScheduleStage::init().
std::vector< Wavefront * > & ScoreboardCheckToSchedule::readyWFs | ( | int | func_unit_id | ) |
TODO: These methods expose this class' implementation too much by returning references to its internal data structures directly.
These are to support legacy functionality in the CU pipeline. They should be removed eventually for an API that hides such implementation details.
Definition at line 80 of file comm.cc.
References _readyWFs.
Referenced by ScheduleStage::exec(), and ScheduleStage::init().
|
overridevirtual |
Reset the pipe stage interface.
This is called to remove any stale state from the pipe stage that is leftover from the prior cycle. This is needed when stages do not actually consume the information passed via the stage interfaces.
Implements PipeStageIFace.
Definition at line 60 of file comm.cc.
References _readyWFs.
Referenced by ScoreboardCheckStage::exec().
void ScoreboardCheckToSchedule::updateReadyList | ( | int | func_unit_id | ) |
Delete all wavefronts that have been marked as ready at scoreboard stage but are found to have empty instruction buffers at schedule stage.
Definition at line 90 of file comm.cc.
References _readyWFs.
Referenced by ScheduleStage::exec().
|
private |
Definition at line 93 of file comm.hh.
Referenced by markWFReady(), numReadyLists(), readyWFs(), reset(), ScoreboardCheckToSchedule(), and updateReadyList().