42 #include "params/ComputeUnit.hh"
45 : numSIMDs(p->num_SIMDs),
46 numMemUnits(p->num_global_mem_pipes + p->num_shared_mem_pipes),
47 numShrMemPipes(p->num_shared_mem_pipes),
48 vectorAluInstAvail(nullptr),
50 lastShrMemSimd(-1), glbMemInstAvail(nullptr),
51 shrMemInstAvail(nullptr)
73 for (
int unitId = 0; unitId <
numSIMDs; ++unitId) {
90 for (
int unitId = 0; unitId <
numSIMDs; ++unitId)
111 (*glbMemInstAvail)++;
121 (*shrMemInstAvail)++;
138 for (
int unitId = 0; unitId <
numSIMDs; ++unitId) {
std::vector< bool > vectorAluInstAvail
void init(ComputeUnit *cu)
std::vector< std::vector< std::pair< Wavefront *, WAVE_STATUS > > > waveStatusList
std::vector< std::vector< Wavefront * > > readyList
void collectStatistics(Wavefront *curWave, int unitId)
std::vector< std::vector< Wavefront * > * > readyList
bool isOldestInstFlatMem()
bool isOldestInstPrivMem()
std::deque< GPUDynInstPtr > instructionBuffer
ScoreboardCheckStage(const ComputeUnitParams *params)
std::vector< bool > * vectorAluInstAvail
bool cedeSIMD(int simdId, int wfSlotId)
virtual const std::string name() const
ComputeUnit * computeUnit
std::vector< std::vector< std::pair< Wavefront *, WAVE_STATUS > > * > waveStatusList