32#ifndef __SCHEDULE_STAGE_HH__
33#define __SCHEDULE_STAGE_HH__
36#include <unordered_map>
37#include <unordered_set>
56class ScheduleToExecute;
57class ScoreboardCheckToSchedule;
60struct ComputeUnitParams;
void reinsertToSchList(int exeType, const GPUDynInstPtr &gpu_dyn_inst)
void doDispatchListTransition(int unitId, DISPATCH_STATUS s, const GPUDynInstPtr &gpu_dyn_inst)
@ SCH_RF_OPD_NRDY_CONDITIONS
gem5::ScheduleStage::ScheduleStageStats stats
void checkRfOperandReadComplete()
ScheduleToExecute & toExecute
ScheduleStage(const ComputeUnitParams &p, ComputeUnit &cu, ScoreboardCheckToSchedule &from_scoreboard_check, ScheduleToExecute &to_execute)
bool dispatchReady(const GPUDynInstPtr &gpu_dyn_inst)
@ SCH_RF_ACCESS_NRDY_CONDITIONS
const std::string & name() const
std::vector< Scheduler > scheduler
std::vector< std::deque< std::pair< GPUDynInstPtr, SCH_STATUS > > > schList
void scheduleRfDestOperands()
ScoreboardCheckToSchedule & fromScoreboardCheck
void arbitrateVrfToLdsBus()
std::unordered_set< uint64_t > wavesInSch
ComputeUnit & computeUnit
bool schedRfWrites(int exeType, const GPUDynInstPtr &gpu_dyn_inst)
void deleteFromSch(Wavefront *w)
bool addToSchList(int exeType, const GPUDynInstPtr &gpu_dyn_inst)
@ SCH_FLAT_MEM_BUS_BUSY_NRDY
@ SCH_LOCAL_MEM_ISSUE_NRDY
@ SCH_VECTOR_MEM_COALESCER_NRDY
@ SCH_FLAT_MEM_COALESCER_NRDY
@ SCH_SCALAR_MEM_BUS_BUSY_NRDY
@ SCH_VECTOR_MEM_REQS_NRDY
@ SCH_SCALAR_MEM_ISSUE_NRDY
@ SCH_VECTOR_MEM_BUS_BUSY_NRDY
@ SCH_LOCAL_MEM_FIFO_NRDY
@ SCH_FLAT_MEM_ISSUE_NRDY
@ SCH_LOCAL_MEM_BUS_BUSY_NRDY
@ SCH_SCALAR_MEM_FIFO_NRDY
@ SCH_VECTOR_MEM_ISSUE_NRDY
Communication interface between Schedule and Execute stages.
Communication interface between ScoreboardCheck and Schedule stages.
This is a simple scalar statistic, like a counter.
A vector of scalar stats.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
std::shared_ptr< GPUDynInst > GPUDynInstPtr
Declaration of Statistics objects.
statistics::Vector rdyListNotEmpty
statistics::Vector addToSchListStalls
statistics::Vector schListToDispList
ScheduleStageStats(statistics::Group *parent, int num_exec_units)
statistics::Vector rfAccessStalls
statistics::Vector schListToDispListStalls
statistics::Vector opdNrdyStalls
statistics::Vector rdyListEmpty
statistics::Vector dispNrdyStalls
statistics::Scalar ldsBusArbStalls