36 #ifndef __DEV_HSA_HW_SCHEDULER_HH__ 37 #define __DEV_HSA_HW_SCHEDULER_HH__ 43 #define MAX_ACTIVE_QUEUES (PAGE_SIZE/8) 52 void write(
Addr db_addr, uint32_t doorbell_reg);
106 #endif // __DEV_HSA_HW_SCHEDULER_HH__
std::map< Addr, uint32_t > dbMap
bool mapQIfSlotAvlbl(uint32_t al_idx, AQLRingBuffer *aql_buf, HSAQueueDescriptor *q_desc)
void unregisterQueue(uint64_t queue_id)
void updateRRVars(uint32_t al_idx, uint32_t rl_idx)
void scheduleAndWakeupMappedQ()
std::map< uint32_t, QCntxt > activeList
uint64_t Tick
Tick count type.
bool isRLQIdle(uint32_t rl_idx)
SchedulerWakeupEvent(HWScheduler *hw_schdlr)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
void addQCntxt(uint32_t al_idx, AQLRingBuffer *aql_buf, HSAQueueDescriptor *q_desc)
HWScheduler(HSAPacketProcessor *hsa_pp, Tick wakeup_delay)
Internal ring buffer which is used to prefetch/store copies of the in-memory HSA ring buffer...
SchedulerWakeupEvent schedWakeupEvent
std::map< uint32_t, uint32_t > regdListMap
HSAPacketProcessor * hsaPP
void write(Addr db_addr, uint32_t doorbell_reg)
void registerNewQueue(uint64_t hostReadIndexPointer, uint64_t basePointer, uint64_t queue_id, uint32_t size)
virtual const char * description() const
Return a C string describing the event.