Go to the documentation of this file.
   41 #include "debug/GPURF.hh" 
   46 #include "params/RegisterFile.hh" 
   52     : 
SimObject(
p), simdId(
p.simd_id), _numRegs(
p.num_regs), stats(this)
 
   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",
 
  187     rf->markReg(regIdx, 
true);
 
  196     : statistics::
Group(parent),
 
  198               "Total number of DWORDs read from register file"),
 
  200               "Total number of DWORDS written to register file"),
 
  202               "Total number of register file bank SRAM activations for reads"),
 
  204               "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 Tue Sep 21 2021 12:25:25 for gem5 by  doxygen 1.8.17