Go to the documentation of this file.
39 #include "debug/GPURF.hh"
44 #include "params/RegisterFile.hh"
50 :
SimObject(
p), simdId(
p.simd_id), _numRegs(
p.num_regs), stats(this)
74 for (
int i = 0;
i <
busy.size();
i++) {
98 DPRINTF(GPURF,
"SIMD[%d] markReg(): physReg[%d] = %d\n",
99 simdId, regIdx, (
int)value);
100 busy.at(regIdx) = value;
106 DPRINTF(GPURF,
"SIMD[%d] enqRegFreeEvent physReg[%d] at %llu\n",
115 DPRINTF(GPURF,
"SIMD[%d] enqRegBusyEvent physReg[%d] at %llu\n",
185 rf->markReg(regIdx,
true);
194 : statistics::
Group(parent),
196 "Total number of DWORDs read from register file"),
198 "Total number of DWORDS written to register file"),
200 "Total number of register file bank SRAM activations for reads"),
202 "Total number of register file bank SRAM activations for writes")
Tick curTick()
The universal simulation clock.
virtual void enqRegBusyEvent(uint32_t regIdx, uint64_t delay)
virtual void enqRegFreeEvent(uint32_t regIdx, uint64_t delay)
RegisterFileStats(statistics::Group *parent)
virtual bool canScheduleReadOperands(Wavefront *w, GPUDynInstPtr ii)
virtual void dispatchInstruction(GPUDynInstPtr ii)
virtual void markReg(int regIdx, bool value)
void schedule(Event &event, Tick when)
virtual void waveExecuteInst(Wavefront *w, GPUDynInstPtr ii)
virtual bool canScheduleWriteOperands(Wavefront *w, GPUDynInstPtr ii)
virtual bool regBusy(int idx) const
#define ADD_STAT(n,...)
Convenience macro to add a stat to a statistics group.
Abstract superclass for simulation objects.
RegisterFile(const RegisterFileParams &p)
std::shared_ptr< GPUDynInst > GPUDynInstPtr
virtual void scheduleWriteOperands(Wavefront *w, GPUDynInstPtr ii)
virtual void scheduleReadOperands(Wavefront *w, GPUDynInstPtr ii)
virtual std::string dump() const
virtual bool canScheduleWriteOperandsFromLoad(Wavefront *w, GPUDynInstPtr ii)
virtual bool operandReadComplete(Wavefront *w, GPUDynInstPtr ii)
virtual void scheduleWriteOperandsFromLoad(Wavefront *w, GPUDynInstPtr ii)
virtual void setParent(ComputeUnit *_computeUnit)
ComputeUnit * computeUnit
#define fatal_if(cond,...)
Conditional fatal macro that checks the supplied condition and only causes a fatal error if the condi...
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
virtual bool operandsReady(Wavefront *w, GPUDynInstPtr ii) const
Generated on Sun Jul 30 2023 01:56:57 for gem5 by doxygen 1.8.17