|
gem5
v21.1.0.2
|
#include <scoreboard_check_stage.hh>
Classes | |
| struct | ScoreboardCheckStageStats |
Public Types | |
| enum | nonrdytype_e { NRDY_ILLEGAL, NRDY_WF_STOP, NRDY_IB_EMPTY, NRDY_WAIT_CNT, NRDY_SLEEP, NRDY_BARRIER_WAIT, NRDY_VGPR_NRDY, NRDY_SGPR_NRDY, INST_RDY, NRDY_CONDITIONS } |
Public Member Functions | |
| ScoreboardCheckStage (const ComputeUnitParams &p, ComputeUnit &cu, ScoreboardCheckToSchedule &to_schedule) | |
| ~ScoreboardCheckStage () | |
| void | exec () |
| const std::string & | name () const |
Protected Attributes | |
| gem5::ScoreboardCheckStage::ScoreboardCheckStageStats | stats |
Private Member Functions | |
| void | collectStatistics (nonrdytype_e rdyStatus) |
| int | mapWaveToExeUnit (Wavefront *w) |
| bool | ready (Wavefront *w, nonrdytype_e *rdyStatus, int *exeResType, int wfSlot) |
Private Attributes | |
| ComputeUnit & | computeUnit |
| ScoreboardCheckToSchedule & | toSchedule |
| Interface between scoreboard check and schedule stages. More... | |
| const std::string | _name |
Definition at line 63 of file scoreboard_check_stage.hh.
| Enumerator | |
|---|---|
| NRDY_ILLEGAL | |
| NRDY_WF_STOP | |
| NRDY_IB_EMPTY | |
| NRDY_WAIT_CNT | |
| NRDY_SLEEP | |
| NRDY_BARRIER_WAIT | |
| NRDY_VGPR_NRDY | |
| NRDY_SGPR_NRDY | |
| INST_RDY | |
| NRDY_CONDITIONS | |
Definition at line 66 of file scoreboard_check_stage.hh.
| gem5::ScoreboardCheckStage::ScoreboardCheckStage | ( | const ComputeUnitParams & | p, |
| ComputeUnit & | cu, | ||
| ScoreboardCheckToSchedule & | to_schedule | ||
| ) |
Definition at line 50 of file scoreboard_check_stage.cc.
| gem5::ScoreboardCheckStage::~ScoreboardCheckStage | ( | ) |
Definition at line 59 of file scoreboard_check_stage.cc.
|
private |
Definition at line 64 of file scoreboard_check_stage.cc.
References NRDY_CONDITIONS, NRDY_ILLEGAL, panic_if, gem5::ScoreboardCheckStage::ScoreboardCheckStageStats::stallCycles, and stats.
Referenced by exec().
| void gem5::ScoreboardCheckStage::exec | ( | ) |
Reset the ready list for all execution units; ready list will be constructed every cycle because resource availability may change.
Definition at line 250 of file scoreboard_check_stage.cc.
References collectStatistics(), computeUnit, DPRINTF, gem5::ScoreboardCheckToSchedule::markWFReady(), gem5::Shader::n_wf, gem5::Wavefront::nextInstr(), NRDY_ILLEGAL, gem5::ComputeUnit::numVectorALUs, ready(), gem5::ScoreboardCheckToSchedule::reset(), gem5::ComputeUnit::shader, gem5::Wavefront::simdId, toSchedule, gem5::Wavefront::wfDynId, and gem5::ComputeUnit::wfList.
Referenced by gem5::ComputeUnit::exec().
|
private |
NOTE: Flat memory ops requires both GM and LM resources. The simulator models consumption of both GM and LM resources in the schedule stage. At instruction execution time, after the aperture check is performed, only the GM or LM pipe is actually reserved by the timing model. The GM unit is returned here since Flat ops occupy the GM slot in the ready and dispatch lists. They also consume the LM slot in the dispatch list.
Definition at line 208 of file scoreboard_check_stage.cc.
References computeUnit, gem5::ComputeUnit::numExeUnits(), panic, and gem5::MipsISA::w.
Referenced by ready().
|
inline |
Definition at line 86 of file scoreboard_check_stage.hh.
References _name.
|
private |
The waitCnt checks have to be done BEFORE checking for Instruction buffer empty condition. Otherwise, it will result into a deadlock if the last instruction in the Instruction buffer is a waitCnt: after executing the waitCnt, the Instruction buffer would be empty and the ready check logic will exit BEFORE checking for wait counters being satisfied.
Definition at line 77 of file scoreboard_check_stage.cc.
References gem5::ComputeUnit::allAtBarrier(), computeUnit, gem5::ComputeUnit::cu_id, DPRINTF, INST_RDY, mapWaveToExeUnit(), NRDY_BARRIER_WAIT, NRDY_IB_EMPTY, NRDY_SGPR_NRDY, NRDY_SLEEP, NRDY_VGPR_NRDY, NRDY_WAIT_CNT, NRDY_WF_STOP, panic, gem5::ComputeUnit::releaseWFsFromBarrier(), gem5::ComputeUnit::resetBarrier(), gem5::Wavefront::S_BARRIER, gem5::Wavefront::S_RETURNING, gem5::Wavefront::S_STALLED, gem5::Wavefront::S_STALLED_SLEEP, gem5::Wavefront::S_STOPPED, gem5::Wavefront::S_WAITCNT, gem5::ComputeUnit::srf, gem5::ComputeUnit::vrf, and gem5::MipsISA::w.
Referenced by exec().
|
private |
Definition at line 102 of file scoreboard_check_stage.hh.
Referenced by name().
|
private |
Definition at line 93 of file scoreboard_check_stage.hh.
Referenced by exec(), mapWaveToExeUnit(), and ready().
|
protected |
Referenced by collectStatistics().
|
private |
Interface between scoreboard check and schedule stages.
Each cycle the scoreboard check stage populates this interface with information needed by the schedule stage.
Definition at line 100 of file scoreboard_check_stage.hh.
Referenced by exec().