Go to the documentation of this file.
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__
void registerNewQueue(uint64_t hostReadIndexPointer, uint64_t basePointer, uint64_t queue_id, uint32_t size)
bool mapQIfSlotAvlbl(uint32_t al_idx, AQLRingBuffer *aql_buf, HSAQueueDescriptor *q_desc)
std::map< Addr, uint32_t > dbMap
void unregisterQueue(uint64_t queue_id)
void scheduleAndWakeupMappedQ()
uint64_t Tick
Tick count type.
Internal ring buffer which is used to prefetch/store copies of the in-memory HSA ring buffer.
std::map< uint32_t, QCntxt > activeList
SchedulerWakeupEvent(HWScheduler *hw_schdlr)
void updateRRVars(uint32_t al_idx, uint32_t rl_idx)
bool isRLQIdle(uint32_t rl_idx)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
std::map< uint32_t, uint32_t > regdListMap
HSAPacketProcessor * hsaPP
void write(Addr db_addr, uint32_t doorbell_reg)
void addQCntxt(uint32_t al_idx, AQLRingBuffer *aql_buf, HSAQueueDescriptor *q_desc)
virtual const char * description() const
Return a C string describing the event.
HWScheduler(HSAPacketProcessor *hsa_pp, Tick wakeup_delay)
SchedulerWakeupEvent schedWakeupEvent
Generated on Wed Sep 30 2020 14:02:11 for gem5 by doxygen 1.8.17