gem5
v22.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. More... | |
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 () |
Private Attributes | |
int | _id |
QueueDesc * | q |
Addr | _wptr |
Most important fields of a PM4 queue are stored in the queue descriptor (i.e., QueueDesc). More... | |
Addr | _ibWptr |
Addr | _offset |
bool | _processing |
bool | _ib |
PM4MapQueues * | _pkt |
Class defining a PM4 queue.
Definition at line 361 of file pm4_queues.hh.
|
inline |
Definition at line 380 of file pm4_queues.hh.
Definition at line 382 of file pm4_queues.hh.
|
inline |
Definition at line 385 of file pm4_queues.hh.
|
inline |
Definition at line 392 of file pm4_queues.hh.
References gem5::GEM5_PACKED::base, and q.
|
inline |
Definition at line 428 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 439 of file pm4_queues.hh.
References _ibWptr, _wptr, ib(), gem5::GEM5_PACKED::ibRptr, q, and gem5::GEM5_PACKED::rptr.
|
inline |
Definition at line 389 of file pm4_queues.hh.
References q.
|
inline |
Definition at line 410 of file pm4_queues.hh.
References ib(), gem5::GEM5_PACKED::ibRptr, q, and gem5::GEM5_PACKED::rptr.
|
inline |
Definition at line 417 of file pm4_queues.hh.
|
inline |
Definition at line 425 of file pm4_queues.hh.
References _ib.
Referenced by fastforwardRptr(), getRptr(), getWptr(), incRptr(), rptr(), and wptr().
|
inline |
Definition at line 468 of file pm4_queues.hh.
References _ib.
|
inline |
Definition at line 393 of file pm4_queues.hh.
References gem5::GEM5_PACKED::ibBase, and q.
|
inline |
Definition at line 429 of file pm4_queues.hh.
References gem5::GEM5_PACKED::ibBase, and q.
|
inline |
Definition at line 390 of file pm4_queues.hh.
References _id.
Referenced by gem5::PM4PacketProcessor::processMQD().
|
inline |
Definition at line 427 of file pm4_queues.hh.
References _id.
|
inline |
Definition at line 446 of file pm4_queues.hh.
References ib(), gem5::GEM5_PACKED::ibRptr, q, and gem5::GEM5_PACKED::rptr.
|
inline |
Definition at line 469 of file pm4_queues.hh.
References _pkt, and gem5::GEM5_PACKED::me.
|
inline |
Definition at line 391 of file pm4_queues.hh.
References gem5::GEM5_PACKED::mqdBase, and q.
|
inline |
Definition at line 423 of file pm4_queues.hh.
References _offset.
|
inline |
Definition at line 466 of file pm4_queues.hh.
References _offset.
|
inline |
Definition at line 470 of file pm4_queues.hh.
References _pkt, and gem5::GEM5_PACKED::pipe.
|
inline |
Definition at line 472 of file pm4_queues.hh.
References _pkt, and gem5::GEM5_PACKED::queueSel.
|
inline |
Definition at line 424 of file pm4_queues.hh.
References _processing.
|
inline |
Definition at line 467 of file pm4_queues.hh.
References _processing.
|
inline |
Definition at line 471 of file pm4_queues.hh.
References _pkt, and gem5::GEM5_PACKED::queueSlot.
|
inline |
Definition at line 396 of file pm4_queues.hh.
References gem5::GEM5_PACKED::base, ib(), gem5::GEM5_PACKED::ibBase, gem5::GEM5_PACKED::ibRptr, q, and gem5::GEM5_PACKED::rptr.
|
inline |
Definition at line 453 of file pm4_queues.hh.
References ib(), gem5::GEM5_PACKED::ibRptr, q, and gem5::GEM5_PACKED::rptr.
|
inline |
Definition at line 403 of file pm4_queues.hh.
References _ibWptr, _wptr, gem5::GEM5_PACKED::base, ib(), gem5::GEM5_PACKED::ibBase, and q.
|
inline |
Definition at line 460 of file pm4_queues.hh.
|
private |
Definition at line 377 of file pm4_queues.hh.
Referenced by ib().
|
private |
Definition at line 374 of file pm4_queues.hh.
Referenced by fastforwardRptr(), getWptr(), and wptr().
|
private |
Definition at line 363 of file pm4_queues.hh.
Referenced by id().
|
private |
Definition at line 375 of file pm4_queues.hh.
Referenced by offset().
|
private |
Definition at line 378 of file pm4_queues.hh.
Referenced by me(), pipe(), privileged(), and queue().
|
private |
Definition at line 376 of file pm4_queues.hh.
Referenced by 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 373 of file pm4_queues.hh.
Referenced by fastforwardRptr(), getWptr(), and wptr().
|
private |