gem5
v21.2.1.0
|
A memory packet stores packets along with the timestamp of when the packet entered the queue, and also the decoded address. More...
#include <mem_ctrl.hh>
Public Member Functions | |
void | qosValue (const uint8_t qv) |
Set the packet QoS value (interface compatibility with Packet) More... | |
uint8_t | qosValue () const |
Get the packet QoS value (interface compatibility with Packet) More... | |
RequestorID | requestorId () const |
Get the packet RequestorID (interface compatibility with Packet) More... | |
unsigned int | getSize () const |
Get the packet size (interface compatibility with Packet) More... | |
Addr | getAddr () const |
Get the packet address (interface compatibility with Packet) More... | |
bool | isRead () const |
Return true if its a read packet (interface compatibility with Packet) More... | |
bool | isWrite () const |
Return true if its a write packet (interface compatibility with Packet) More... | |
bool | isDram () const |
Return true if its a DRAM access. More... | |
MemPacket (PacketPtr _pkt, bool is_read, bool is_dram, uint8_t _rank, uint8_t _bank, uint32_t _row, uint16_t bank_id, Addr _addr, unsigned int _size) | |
Public Attributes | |
const Tick | entryTime |
When did request enter the controller. More... | |
Tick | readyTime |
When will request leave the controller. More... | |
const PacketPtr | pkt |
This comes from the outside world. More... | |
const RequestorID | _requestorId |
RequestorID associated with the packet. More... | |
const bool | read |
const bool | dram |
Does this packet access DRAM? More... | |
const uint8_t | rank |
Will be populated by address decoder. More... | |
const uint8_t | bank |
const uint32_t | row |
const uint16_t | bankId |
Bank id is calculated considering banks in all the ranks eg: 2 ranks each with 8 banks, then bankId = 0 --> rank0, bank0 and bankId = 8 --> rank1, bank0. More... | |
Addr | addr |
The starting address of the packet. More... | |
unsigned int | size |
The size of this dram packet in bytes It is always equal or smaller than the burst size. More... | |
BurstHelper * | burstHelper |
A pointer to the BurstHelper if this MemPacket is a split packet If not a split packet (common case), this is set to NULL. More... | |
uint8_t | _qosValue |
QoS value of the encapsulated packet read at queuing time. More... | |
A memory packet stores packets along with the timestamp of when the packet entered the queue, and also the decoded address.
Definition at line 97 of file mem_ctrl.hh.
|
inline |
Definition at line 202 of file mem_ctrl.hh.
|
inline |
Get the packet address (interface compatibility with Packet)
Definition at line 183 of file mem_ctrl.hh.
References addr.
|
inline |
Get the packet size (interface compatibility with Packet)
Definition at line 177 of file mem_ctrl.hh.
References size.
|
inline |
Return true if its a DRAM access.
Definition at line 200 of file mem_ctrl.hh.
References dram.
Referenced by gem5::memory::DRAMInterface::chooseNextFRFCFS(), gem5::memory::NVMInterface::chooseNextFRFCFS(), gem5::memory::NVMInterface::chooseRead(), gem5::memory::MemCtrl::doBurstAccess(), gem5::memory::MemCtrl::packetReady(), and gem5::memory::MemCtrl::processRespondEvent().
|
inline |
Return true if its a read packet (interface compatibility with Packet)
Definition at line 189 of file mem_ctrl.hh.
References read.
Referenced by gem5::memory::NVMInterface::burstReady(), gem5::memory::DRAMInterface::chooseNextFRFCFS(), gem5::memory::NVMInterface::chooseNextFRFCFS(), gem5::memory::NVMInterface::chooseRead(), gem5::memory::MemCtrl::doBurstAccess(), gem5::memory::DRAMInterface::doBurstAccess(), and gem5::memory::NVMInterface::doBurstAccess().
|
inline |
Return true if its a write packet (interface compatibility with Packet)
Definition at line 195 of file mem_ctrl.hh.
References read.
|
inline |
Get the packet QoS value (interface compatibility with Packet)
Definition at line 165 of file mem_ctrl.hh.
References _qosValue.
|
inline |
Set the packet QoS value (interface compatibility with Packet)
Definition at line 159 of file mem_ctrl.hh.
References _qosValue.
Referenced by gem5::memory::MemCtrl::addToReadQueue(), and gem5::memory::MemCtrl::addToWriteQueue().
|
inline |
Get the packet RequestorID (interface compatibility with Packet)
Definition at line 171 of file mem_ctrl.hh.
References _requestorId.
Referenced by gem5::memory::MemCtrl::doBurstAccess().
uint8_t gem5::memory::MemPacket::_qosValue |
QoS value of the encapsulated packet read at queuing time.
Definition at line 153 of file mem_ctrl.hh.
Referenced by qosValue().
const RequestorID gem5::memory::MemPacket::_requestorId |
RequestorID associated with the packet.
Definition at line 111 of file mem_ctrl.hh.
Referenced by requestorId().
Addr gem5::memory::MemPacket::addr |
The starting address of the packet.
This address could be unaligned to burst size boundaries. The reason is to keep the address offset so we can accurately check incoming read packets with packets in the write queue.
Definition at line 136 of file mem_ctrl.hh.
Referenced by gem5::memory::MemCtrl::addToReadQueue(), gem5::memory::MemCtrl::addToWriteQueue(), gem5::memory::MemCtrl::doBurstAccess(), gem5::memory::DRAMInterface::doBurstAccess(), gem5::memory::NVMInterface::doBurstAccess(), and getAddr().
const uint8_t gem5::memory::MemPacket::bank |
const uint16_t gem5::memory::MemPacket::bankId |
Bank id is calculated considering banks in all the ranks eg: 2 ranks each with 8 banks, then bankId = 0 --> rank0, bank0 and bankId = 8 --> rank1, bank0.
Definition at line 128 of file mem_ctrl.hh.
Referenced by gem5::memory::DRAMInterface::doBurstAccess(), and gem5::memory::NVMInterface::doBurstAccess().
BurstHelper* gem5::memory::MemPacket::burstHelper |
A pointer to the BurstHelper if this MemPacket is a split packet If not a split packet (common case), this is set to NULL.
Definition at line 148 of file mem_ctrl.hh.
Referenced by gem5::memory::MemCtrl::addToReadQueue(), and gem5::memory::MemCtrl::processRespondEvent().
const bool gem5::memory::MemPacket::dram |
const Tick gem5::memory::MemPacket::entryTime |
When did request enter the controller.
Definition at line 102 of file mem_ctrl.hh.
Referenced by gem5::memory::MemCtrl::doBurstAccess(), gem5::memory::DRAMInterface::doBurstAccess(), and gem5::memory::NVMInterface::doBurstAccess().
const PacketPtr gem5::memory::MemPacket::pkt |
This comes from the outside world.
Definition at line 108 of file mem_ctrl.hh.
Referenced by gem5::memory::MemCtrl::processRespondEvent().
const uint8_t gem5::memory::MemPacket::rank |
Will be populated by address decoder.
Definition at line 119 of file mem_ctrl.hh.
Referenced by gem5::memory::MemCtrl::addToReadQueue(), gem5::memory::MemCtrl::addToWriteQueue(), gem5::memory::DRAMInterface::burstReady(), gem5::memory::DRAMInterface::chooseNextFRFCFS(), gem5::memory::NVMInterface::chooseNextFRFCFS(), gem5::memory::NVMInterface::chooseRead(), gem5::memory::DRAMInterface::doBurstAccess(), gem5::memory::NVMInterface::doBurstAccess(), and gem5::memory::MemCtrl::processRespondEvent().
const bool gem5::memory::MemPacket::read |
Definition at line 113 of file mem_ctrl.hh.
Tick gem5::memory::MemPacket::readyTime |
When will request leave the controller.
Definition at line 105 of file mem_ctrl.hh.
Referenced by gem5::memory::MemCtrl::addToReadQueue(), gem5::memory::NVMInterface::burstReady(), gem5::memory::NVMInterface::chooseRead(), gem5::memory::MemCtrl::doBurstAccess(), gem5::memory::DRAMInterface::doBurstAccess(), and gem5::memory::NVMInterface::doBurstAccess().
const uint32_t gem5::memory::MemPacket::row |
Definition at line 121 of file mem_ctrl.hh.
Referenced by gem5::memory::DRAMInterface::chooseNextFRFCFS(), gem5::memory::NVMInterface::chooseRead(), gem5::memory::DRAMInterface::doBurstAccess(), and gem5::memory::NVMInterface::doBurstAccess().
unsigned int gem5::memory::MemPacket::size |
The size of this dram packet in bytes It is always equal or smaller than the burst size.
Definition at line 142 of file mem_ctrl.hh.
Referenced by gem5::memory::MemCtrl::doBurstAccess(), and getSize().