Go to the documentation of this file.
44 #include "debug/GPURF.hh"
49 #include "params/RegisterFile.hh"
52 :
SimObject(
p), simdId(
p->simd_id), _numRegs(
p->num_regs)
76 for (
int i = 0;
i <
busy.size();
i++) {
100 DPRINTF(GPURF,
"SIMD[%d] markReg(): physReg[%d] = %d\n",
101 simdId, regIdx, (
int)value);
102 busy.at(regIdx) = value;
108 DPRINTF(GPURF,
"SIMD[%d] enqRegFreeEvent physReg[%d] at %llu\n",
117 DPRINTF(GPURF,
"SIMD[%d] enqRegBusyEvent physReg[%d] at %llu\n",
175 RegisterFileParams::create()
193 rf->markReg(regIdx,
true);
206 .
desc(
"Total number of DWORDs read from register file")
211 .
desc(
"Total number of DWORDS written to register file")
216 .
desc(
"Total number of register file bank SRAM activations for reads")
221 .
desc(
"Total number of register file bank SRAM activations for writes")
Stats::Scalar registerReads
virtual bool operandReadComplete(Wavefront *w, GPUDynInstPtr ii)
virtual void enqRegBusyEvent(uint32_t regIdx, uint64_t delay)
virtual void waveExecuteInst(Wavefront *w, GPUDynInstPtr ii)
RegisterFile(const RegisterFileParams *p)
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)
virtual std::string dump() const
virtual bool regBusy(int idx) const
virtual bool canScheduleWriteOperandsFromLoad(Wavefront *w, GPUDynInstPtr ii)
Derived & name(const std::string &name)
Set the name and marks this stat to print at the end of simulation.
virtual void scheduleWriteOperandsFromLoad(Wavefront *w, GPUDynInstPtr ii)
virtual bool canScheduleReadOperands(Wavefront *w, GPUDynInstPtr ii)
virtual const std::string name() const
virtual void markReg(int regIdx, bool value)
virtual void regStats() override
Callback to set stat parameters.
virtual void enqRegFreeEvent(uint32_t regIdx, uint64_t delay)
std::shared_ptr< GPUDynInst > GPUDynInstPtr
Stats::Scalar registerWrites
virtual bool canScheduleWriteOperands(Wavefront *w, GPUDynInstPtr ii)
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)
Derived & desc(const std::string &_desc)
Set the description and marks this stat to print at the end of simulation.
virtual void dispatchInstruction(GPUDynInstPtr ii)
Tick curTick()
The current simulated tick.
Abstract superclass for simulation objects.
Generated on Wed Sep 30 2020 14:02:12 for gem5 by doxygen 1.8.17