Go to the documentation of this file.
41 #include "debug/GPURF.hh"
46 #include "params/RegisterFile.hh"
49 :
SimObject(
p), simdId(
p.simd_id), _numRegs(
p.num_regs), stats(this)
73 for (
int i = 0;
i <
busy.size();
i++) {
97 DPRINTF(GPURF,
"SIMD[%d] markReg(): physReg[%d] = %d\n",
98 simdId, regIdx, (
int)value);
99 busy.at(regIdx) = value;
105 DPRINTF(GPURF,
"SIMD[%d] enqRegFreeEvent physReg[%d] at %llu\n",
114 DPRINTF(GPURF,
"SIMD[%d] enqRegBusyEvent physReg[%d] at %llu\n",
184 rf->markReg(regIdx,
true);
195 "Total number of DWORDs read from register file"),
197 "Total number of DWORDS written to register file"),
199 "Total number of register file bank SRAM activations for reads"),
201 "Total number of register file bank SRAM activations for writes")
virtual bool operandReadComplete(Wavefront *w, GPUDynInstPtr ii)
virtual void enqRegBusyEvent(uint32_t regIdx, uint64_t delay)
virtual void waveExecuteInst(Wavefront *w, GPUDynInstPtr ii)
virtual void scheduleReadOperands(Wavefront *w, GPUDynInstPtr ii)
virtual bool operandsReady(Wavefront *w, GPUDynInstPtr ii) const
virtual void scheduleWriteOperands(Wavefront *w, GPUDynInstPtr ii)
void schedule(Event &event, Tick when)
#define ADD_STAT(n,...)
Convenience macro to add a stat to a statistics group.
virtual std::string dump() const
virtual bool regBusy(int idx) const
virtual bool canScheduleWriteOperandsFromLoad(Wavefront *w, GPUDynInstPtr ii)
virtual void scheduleWriteOperandsFromLoad(Wavefront *w, GPUDynInstPtr ii)
virtual bool canScheduleReadOperands(Wavefront *w, GPUDynInstPtr ii)
virtual void markReg(int regIdx, bool value)
virtual void enqRegFreeEvent(uint32_t regIdx, uint64_t delay)
std::shared_ptr< GPUDynInst > GPUDynInstPtr
RegisterFile(const RegisterFileParams &p)
virtual bool canScheduleWriteOperands(Wavefront *w, GPUDynInstPtr ii)
Tick curTick()
The universal simulation clock.
RegisterFileStats(Stats::Group *parent)
ComputeUnit * computeUnit
#define fatal_if(cond,...)
Conditional fatal macro that checks the supplied condition and only causes a fatal error if the condi...
virtual void setParent(ComputeUnit *_computeUnit)
virtual void dispatchInstruction(GPUDynInstPtr ii)
Abstract superclass for simulation objects.
Generated on Tue Mar 23 2021 19:41:27 for gem5 by doxygen 1.8.17