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

Communication interface between ScoreboardCheck and Schedule stages. More...

#include <comm.hh>

Inheritance diagram for gem5::ScoreboardCheckToSchedule:
gem5::PipeStageIFace

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
 

Detailed Description

Communication interface between ScoreboardCheck and Schedule stages.

Definition at line 62 of file comm.hh.

Constructor & Destructor Documentation

◆ ScoreboardCheckToSchedule() [1/2]

gem5::ScoreboardCheckToSchedule::ScoreboardCheckToSchedule ( )
delete

◆ ScoreboardCheckToSchedule() [2/2]

gem5::ScoreboardCheckToSchedule::ScoreboardCheckToSchedule ( const ComputeUnitParams &  p)

Scoreboard/Schedule stage interface.

Definition at line 45 of file comm.cc.

References _readyWFs, and gem5::VegaISA::p.

Member Function Documentation

◆ markWFReady()

void gem5::ScoreboardCheckToSchedule::markWFReady ( Wavefront wf,
int  func_unit_id 
)

Mark the WF as ready for execution on a particular functional unit.

Definition at line 67 of file comm.cc.

References _readyWFs.

Referenced by gem5::ScoreboardCheckStage::exec().

◆ numReadyLists()

int gem5::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 73 of file comm.cc.

References _readyWFs.

Referenced by gem5::ScheduleStage::init().

◆ readyWFs()

std::vector< Wavefront * > & gem5::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 79 of file comm.cc.

References _readyWFs.

Referenced by gem5::ScheduleStage::exec(), and gem5::ScheduleStage::init().

◆ reset()

void gem5::ScoreboardCheckToSchedule::reset ( )
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 gem5::PipeStageIFace.

Definition at line 59 of file comm.cc.

References _readyWFs.

Referenced by gem5::ScoreboardCheckStage::exec().

◆ updateReadyList()

void gem5::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 89 of file comm.cc.

References _readyWFs.

Referenced by gem5::ScheduleStage::exec().

Member Data Documentation

◆ _readyWFs

std::vector<std::vector<Wavefront*> > gem5::ScoreboardCheckToSchedule::_readyWFs
private

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

Generated on Wed Dec 21 2022 10:23:22 for gem5 by doxygen 1.9.1