gem5 v24.0.0.0
|
Communication interface between Schedule and Execute stages. More...
#include <comm.hh>
Public Member Functions | |
ScheduleToExecute ()=delete | |
ScheduleToExecute (const ComputeUnitParams &p) | |
Schedule/Execute stage interface. | |
void | reset () override |
Reset the pipe stage interface. | |
GPUDynInstPtr & | readyInst (int func_unit_id) |
void | dispatchTransition (const GPUDynInstPtr &gpu_dyn_inst, int func_unit_id, DISPATCH_STATUS disp_status) |
Once the scheduler has chosen a winning WF for execution, and after the WF's oldest instruction's operands have been read, this method is used to mark the instruction as ready to execute. | |
void | dispatchTransition (int func_unit_id, DISPATCH_STATUS disp_status) |
DISPATCH_STATUS | dispatchStatus (int func_unit_id) const |
Private Attributes | |
std::vector< GPUDynInstPtr > | _readyInsts |
std::vector< DISPATCH_STATUS > | _dispatchStatus |
|
delete |
gem5::ScheduleToExecute::ScheduleToExecute | ( | const ComputeUnitParams & | p | ) |
Schedule/Execute stage interface.
Definition at line 105 of file comm.cc.
References _dispatchStatus, _readyInsts, gem5::EMPTY, and gem5::MipsISA::p.
DISPATCH_STATUS gem5::ScheduleToExecute::dispatchStatus | ( | int | func_unit_id | ) | const |
Definition at line 150 of file comm.cc.
References _dispatchStatus.
Referenced by gem5::ScheduleStage::arbitrateVrfToLdsBus(), gem5::ExecStage::dumpDispList(), gem5::ExecStage::exec(), gem5::ScheduleStage::fillDispatchList(), gem5::ScheduleStage::reserveResources(), and gem5::ScheduleStage::scheduleRfDestOperands().
void gem5::ScheduleToExecute::dispatchTransition | ( | const GPUDynInstPtr & | gpu_dyn_inst, |
int | func_unit_id, | ||
DISPATCH_STATUS | disp_status ) |
Once the scheduler has chosen a winning WF for execution, and after the WF's oldest instruction's operands have been read, this method is used to mark the instruction as ready to execute.
This puts it on the dispatch list to be consumed by the execute stage.
Definition at line 133 of file comm.cc.
References _dispatchStatus, and _readyInsts.
Referenced by gem5::ScheduleStage::doDispatchListTransition(), gem5::ScheduleStage::doDispatchListTransition(), and gem5::ExecStage::exec().
void gem5::ScheduleToExecute::dispatchTransition | ( | int | func_unit_id, |
DISPATCH_STATUS | disp_status ) |
Definition at line 142 of file comm.cc.
References _dispatchStatus, and _readyInsts.
GPUDynInstPtr & gem5::ScheduleToExecute::readyInst | ( | int | func_unit_id | ) |
Definition at line 127 of file comm.cc.
References _readyInsts.
Referenced by gem5::ScheduleStage::arbitrateVrfToLdsBus(), gem5::ExecStage::dumpDispList(), gem5::ExecStage::exec(), gem5::ScheduleStage::reserveResources(), and gem5::ScheduleStage::scheduleRfDestOperands().
|
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 115 of file comm.cc.
References _dispatchStatus, _readyInsts, and gem5::EMPTY.
Referenced by gem5::ScheduleStage::exec().
|
private |
Definition at line 119 of file comm.hh.
Referenced by dispatchStatus(), dispatchTransition(), dispatchTransition(), reset(), and ScheduleToExecute().
|
private |
Definition at line 118 of file comm.hh.
Referenced by dispatchTransition(), dispatchTransition(), readyInst(), reset(), and ScheduleToExecute().