. . .
. . .
. . .
Pipe[0]
MQD
Queue[0]
Queue[n]
...
. . .
. . .
. . .
Pipe[1]
Queue[0]
Queue[n]
...
. . .
. . .
. . .
Pipe[n]
Queue[0]
Queue[n]
...
...
Hardware Block
EXECUTION
Memory
e.g.,:queue[0]
e.g.,:queue[4]
e.g.,:queue[n]
HQD
HQD
HQD
HQD
HQD
HQD
Registers
MQD
MQD
MQD
MQD
MQD
...
HQD RegistersQueue Address in the GPUDoorbell...
SWITCH QUEUE:WAIT FOR HQD_ACTIVE = 0SAVE QUEUE STATE TO THE MQDCOPY NEW MQD STATESET HQD_ACTIVE = 1
Firmware