gem5 v24.0.0.0
|
Class defining a PM4 queue. More...
#include <pm4_queues.hh>
Public Member Functions | |
PM4Queue () | |
PM4Queue (int id, QueueDesc *queue, Addr offset) | |
PM4Queue (int id, QueueDesc *queue, Addr offset, PM4MapQueues *pkt) | |
QueueDesc * | getMQD () |
int | id () |
Addr | mqdBase () |
Addr | base () |
Addr | ibBase () |
Addr | rptr () |
Addr | wptr () |
Addr | getRptr () |
Addr | getWptr () |
Addr | offset () |
bool | processing () |
bool | ib () |
void | id (int value) |
void | base (Addr value) |
void | ibBase (Addr value) |
void | fastforwardRptr () |
It seems that PM4 nop packets with count 0x3fff, not only do not consider the count value, they also fast forward the read pointer. | |
void | incRptr (Addr value) |
void | rptr (Addr value) |
void | wptr (Addr value) |
void | offset (Addr value) |
void | processing (bool value) |
void | ib (bool value) |
uint32_t | me () |
uint32_t | pipe () |
uint32_t | queue () |
bool | privileged () |
PM4MapQueues * | getPkt () |
void | setPkt (uint32_t me, uint32_t pipe, uint32_t queue, bool privileged) |
uint64_t | size () |
Private Attributes | |
int | _id |
QueueDesc * | q |
Addr | _wptr |
Most important fields of a PM4 queue are stored in the queue descriptor (i.e., QueueDesc). | |
Addr | _ibWptr |
Addr | _offset |
bool | _processing |
bool | _ib |
PM4MapQueues | _pkt |
Class defining a PM4 queue.
Definition at line 377 of file pm4_queues.hh.
|
inline |
Definition at line 396 of file pm4_queues.hh.
Definition at line 398 of file pm4_queues.hh.
|
inline |
Definition at line 401 of file pm4_queues.hh.
|
inline |
Definition at line 408 of file pm4_queues.hh.
References gem5::GEM5_PACKED::base, and q.
|
inline |
Definition at line 444 of file pm4_queues.hh.
References gem5::GEM5_PACKED::base, and q.
|
inline |
It seems that PM4 nop packets with count 0x3fff, not only do not consider the count value, they also fast forward the read pointer.
Without proper sync packets this can potentially be dangerous, since more useful packets can be enqueued in the time between nop enqueu and nop processing.
Definition at line 455 of file pm4_queues.hh.
References _ibWptr, _wptr, ib(), gem5::GEM5_PACKED::ibRptr, q, and gem5::GEM5_PACKED::rptr.
|
inline |
Definition at line 405 of file pm4_queues.hh.
References q.
|
inline |
Definition at line 489 of file pm4_queues.hh.
References _pkt.
|
inline |
Definition at line 426 of file pm4_queues.hh.
References ib(), gem5::GEM5_PACKED::ibRptr, q, and gem5::GEM5_PACKED::rptr.
|
inline |
Definition at line 433 of file pm4_queues.hh.
|
inline |
|
inline |
Definition at line 484 of file pm4_queues.hh.
References _ib.
|
inline |
Definition at line 409 of file pm4_queues.hh.
References gem5::GEM5_PACKED::ibBase, and q.
|
inline |
Definition at line 445 of file pm4_queues.hh.
References gem5::GEM5_PACKED::ibBase, and q.
|
inline |
Definition at line 406 of file pm4_queues.hh.
References _id.
Referenced by gem5::PM4PacketProcessor::processMQD(), and gem5::PM4PacketProcessor::serialize().
|
inline |
Definition at line 443 of file pm4_queues.hh.
References _id.
|
inline |
Definition at line 462 of file pm4_queues.hh.
References ib(), gem5::GEM5_PACKED::ibRptr, q, and gem5::GEM5_PACKED::rptr.
|
inline |
Definition at line 485 of file pm4_queues.hh.
References _pkt, and gem5::GEM5_PACKED::me.
Referenced by setPkt().
|
inline |
Definition at line 407 of file pm4_queues.hh.
References gem5::GEM5_PACKED::mqdBase, and q.
|
inline |
Definition at line 439 of file pm4_queues.hh.
References _offset.
|
inline |
Definition at line 482 of file pm4_queues.hh.
References _offset.
|
inline |
Definition at line 486 of file pm4_queues.hh.
References _pkt, and gem5::GEM5_PACKED::pipe.
Referenced by setPkt().
|
inline |
Definition at line 488 of file pm4_queues.hh.
References _pkt, and gem5::GEM5_PACKED::queueSel.
Referenced by setPkt().
|
inline |
Definition at line 440 of file pm4_queues.hh.
References _processing.
|
inline |
Definition at line 483 of file pm4_queues.hh.
References _processing.
|
inline |
Definition at line 487 of file pm4_queues.hh.
References _pkt, and gem5::GEM5_PACKED::queueSlot.
Referenced by setPkt().
|
inline |
Definition at line 412 of file pm4_queues.hh.
References gem5::GEM5_PACKED::base, ib(), gem5::GEM5_PACKED::ibBase, gem5::GEM5_PACKED::ibRptr, q, gem5::GEM5_PACKED::rptr, and size().
|
inline |
Definition at line 469 of file pm4_queues.hh.
References ib(), gem5::GEM5_PACKED::ibRptr, q, and gem5::GEM5_PACKED::rptr.
|
inline |
Definition at line 490 of file pm4_queues.hh.
References _pkt, gem5::GEM5_PACKED::me, me(), gem5::GEM5_PACKED::pipe, pipe(), privileged(), queue(), gem5::GEM5_PACKED::queueSel, and gem5::GEM5_PACKED::queueSlot.
|
inline |
Definition at line 498 of file pm4_queues.hh.
References gem5::GEM5_PACKED::hqd_pq_control, and q.
|
inline |
Definition at line 419 of file pm4_queues.hh.
References _ibWptr, _wptr, gem5::GEM5_PACKED::base, ib(), gem5::GEM5_PACKED::ibBase, q, and size().
|
inline |
Definition at line 476 of file pm4_queues.hh.
|
private |
Definition at line 393 of file pm4_queues.hh.
|
private |
Definition at line 390 of file pm4_queues.hh.
Referenced by fastforwardRptr(), getWptr(), wptr(), and wptr().
|
private |
Definition at line 379 of file pm4_queues.hh.
|
private |
Definition at line 391 of file pm4_queues.hh.
|
private |
Definition at line 394 of file pm4_queues.hh.
Referenced by getPkt(), me(), pipe(), privileged(), queue(), and setPkt().
|
private |
Definition at line 392 of file pm4_queues.hh.
Referenced by processing(), and processing().
|
private |
Most important fields of a PM4 queue are stored in the queue descriptor (i.e., QueueDesc).
However, since the write pointers are communicated through the doorbell value, we will add separate atributes for them.
Definition at line 389 of file pm4_queues.hh.
Referenced by fastforwardRptr(), getWptr(), wptr(), and wptr().
|
private |