Go to the documentation of this file.
32 #ifndef __DEV_HSA_HW_SCHEDULER_HH__
33 #define __DEV_HSA_HW_SCHEDULER_HH__
40 #include "enums/GfxVersion.hh"
45 #define MAX_ACTIVE_QUEUES (PAGE_SIZE/8)
57 void write(
Addr db_addr, uint64_t doorbell_reg);
61 uint32_t size,
int doorbellSize,
62 GfxVersion gfxVersion);
114 #endif // __DEV_HSA_HW_SCHEDULER_HH__
virtual const char * description() const
Return a C string describing the event.
SchedulerWakeupEvent(HWScheduler *hw_schdlr)
std::map< Addr, uint32_t > dbMap
bool isRLQIdle(uint32_t rl_idx)
uint64_t Tick
Tick count type.
void unregisterQueue(uint64_t queue_id, int doorbellSize)
bool mapQIfSlotAvlbl(uint32_t al_idx, AQLRingBuffer *aql_buf, HSAQueueDescriptor *q_desc)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
std::map< uint32_t, QCntxt > activeList
void registerNewQueue(uint64_t hostReadIndexPointer, uint64_t basePointer, uint64_t queue_id, uint32_t size, int doorbellSize, GfxVersion gfxVersion)
void addQCntxt(uint32_t al_idx, AQLRingBuffer *aql_buf, HSAQueueDescriptor *q_desc)
HWScheduler(HSAPacketProcessor *hsa_pp, Tick wakeup_delay)
HSAPacketProcessor * hsaPP
void scheduleAndWakeupMappedQ()
Internal ring buffer which is used to prefetch/store copies of the in-memory HSA ring buffer.
void updateRRVars(uint32_t al_idx, uint32_t rl_idx)
SchedulerWakeupEvent schedWakeupEvent
void write(Addr db_addr, uint64_t doorbell_reg)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
std::map< uint32_t, uint32_t > regdListMap
Generated on Tue Dec 21 2021 11:34:29 for gem5 by doxygen 1.8.17