gem5  v21.1.0.2
Public Member Functions | Private Attributes | List of all members
gem5::ScheduleToExecute Class Reference

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

#include <comm.hh>

Inheritance diagram for gem5::ScheduleToExecute:
gem5::PipeStageIFace

Public Member Functions

 ScheduleToExecute ()=delete
 
 ScheduleToExecute (const ComputeUnitParams &p)
 Schedule/Execute stage interface. More...
 
void reset () override
 Reset the pipe stage interface. More...
 
GPUDynInstPtrreadyInst (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. More...
 
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
 

Detailed Description

Communication interface between Schedule and Execute stages.

Definition at line 100 of file comm.hh.

Constructor & Destructor Documentation

◆ ScheduleToExecute() [1/2]

gem5::ScheduleToExecute::ScheduleToExecute ( )
delete

◆ ScheduleToExecute() [2/2]

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

Schedule/Execute stage interface.

Definition at line 107 of file comm.cc.

References _dispatchStatus, _readyInsts, gem5::EMPTY, and gem5::MipsISA::p.

Member Function Documentation

◆ dispatchStatus()

DISPATCH_STATUS gem5::ScheduleToExecute::dispatchStatus ( int  func_unit_id) const

◆ dispatchTransition() [1/2]

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 135 of file comm.cc.

References _dispatchStatus, and _readyInsts.

Referenced by gem5::ScheduleStage::doDispatchListTransition(), and gem5::ExecStage::exec().

◆ dispatchTransition() [2/2]

void gem5::ScheduleToExecute::dispatchTransition ( int  func_unit_id,
DISPATCH_STATUS  disp_status 
)

Definition at line 144 of file comm.cc.

References _dispatchStatus, and _readyInsts.

◆ readyInst()

GPUDynInstPtr & gem5::ScheduleToExecute::readyInst ( int  func_unit_id)

◆ reset()

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

References _dispatchStatus, _readyInsts, and gem5::EMPTY.

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

Member Data Documentation

◆ _dispatchStatus

std::vector<DISPATCH_STATUS> gem5::ScheduleToExecute::_dispatchStatus
private

Definition at line 121 of file comm.hh.

Referenced by dispatchStatus(), dispatchTransition(), reset(), and ScheduleToExecute().

◆ _readyInsts

std::vector<GPUDynInstPtr> gem5::ScheduleToExecute::_readyInsts
private

Definition at line 120 of file comm.hh.

Referenced by dispatchTransition(), readyInst(), reset(), and ScheduleToExecute().


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

Generated on Tue Sep 21 2021 12:28:05 for gem5 by doxygen 1.8.17