36 #ifndef __VECTOR_REGISTER_FILE_HH__
37 #define __VECTOR_REGISTER_FILE_HH__
44 #include "debug/GPUVRF.hh"
53 struct VectorRegisterFileParams;
73 read(
int regIdx,
int threadId=0)
76 DPRINTF(GPUVRF,
"reading vreg[%d][%d] = %u\n", regIdx, threadId, (uint64_t)p0);
84 write(
int regIdx, T value,
int threadId=0)
86 DPRINTF(GPUVRF,
"writing vreg[%d][%d] = %u\n", regIdx, threadId, (uint64_t)value);
90 uint8_t
regBusy(
int idx, uint32_t operandSize)
const;
91 uint8_t
regNxtBusy(
int idx, uint32_t operandSize)
const;
95 void markReg(
int regIdx, uint32_t operandSize, uint8_t value);
96 void preMarkReg(
int regIdx, uint32_t operandSize, uint8_t value);
146 #endif // __VECTOR_REGISTER_FILE_HH__
std::vector< uint8_t > nxtBusy
virtual void updateEvents()
virtual void updateResources(Wavefront *w, GPUDynInstPtr ii)
T read(int regIdx, int threadId=0)
ComputeUnit * computeUnit
uint8_t regBusy(int idx, uint32_t operandSize) const
virtual void exec(GPUDynInstPtr ii, Wavefront *w)
Declaration of Statistics objects.
virtual bool isWriteConflict(int memWfId, int exeWfId) const
void write(int regIdx, T value, int threadId=0)
std::shared_ptr< GPUDynInst > GPUDynInstPtr
VecRegisterState * vgprState
uint8_t regNxtBusy(int idx, uint32_t operandSize) const
T read(int regIdx, int threadId=0)
virtual bool vrfOperandAccessReady(uint64_t dynamic_id, Wavefront *w, GPUDynInstPtr ii, VrfAccessType accessType)
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
bool operandsReady(Wavefront *w, GPUDynInstPtr ii) const
void setParent(ComputeUnit *_computeUnit)
virtual bool isReadConflict(int memWfId, int exeWfId) const
void write(unsigned int regIdx, T value, int threadId=0)
SimplePoolManager * manager
void markReg(int regIdx, uint32_t operandSize, uint8_t value)
void preMarkReg(int regIdx, uint32_t operandSize, uint8_t value)
std::vector< uint8_t > busy
VectorRegisterFile(const VectorRegisterFileParams *p)
Abstract superclass for simulation objects.