gem5
v20.1.0.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 91 of file mem_ctrl.hh.
|
inline |
Definition at line 196 of file mem_ctrl.hh.
|
inline |
Get the packet address (interface compatibility with Packet)
Definition at line 177 of file mem_ctrl.hh.
References addr.
|
inline |
Get the packet size (interface compatibility with Packet)
Definition at line 171 of file mem_ctrl.hh.
References size.
|
inline |
Return true if its a DRAM access.
Definition at line 194 of file mem_ctrl.hh.
References dram.
Referenced by DRAMInterface::chooseNextFRFCFS(), NVMInterface::chooseNextFRFCFS(), NVMInterface::chooseRead(), MemCtrl::doBurstAccess(), MemCtrl::packetReady(), and MemCtrl::processRespondEvent().
|
inline |
Return true if its a read packet (interface compatibility with Packet)
Definition at line 183 of file mem_ctrl.hh.
References read.
Referenced by NVMInterface::burstReady(), DRAMInterface::chooseNextFRFCFS(), NVMInterface::chooseNextFRFCFS(), NVMInterface::chooseRead(), MemCtrl::doBurstAccess(), DRAMInterface::doBurstAccess(), and NVMInterface::doBurstAccess().
|
inline |
Return true if its a write packet (interface compatibility with Packet)
Definition at line 189 of file mem_ctrl.hh.
References read.
|
inline |
Get the packet QoS value (interface compatibility with Packet)
Definition at line 159 of file mem_ctrl.hh.
References _qosValue.
|
inline |
Set the packet QoS value (interface compatibility with Packet)
Definition at line 153 of file mem_ctrl.hh.
References _qosValue.
Referenced by MemCtrl::addToReadQueue(), and MemCtrl::addToWriteQueue().
|
inline |
Get the packet RequestorID (interface compatibility with Packet)
Definition at line 165 of file mem_ctrl.hh.
References _requestorId.
Referenced by MemCtrl::doBurstAccess().
uint8_t MemPacket::_qosValue |
QoS value of the encapsulated packet read at queuing time.
Definition at line 147 of file mem_ctrl.hh.
Referenced by qosValue().
const RequestorID MemPacket::_requestorId |
RequestorID associated with the packet.
Definition at line 105 of file mem_ctrl.hh.
Referenced by requestorId().
Addr 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 130 of file mem_ctrl.hh.
Referenced by MemCtrl::addToReadQueue(), MemCtrl::addToWriteQueue(), MemCtrl::doBurstAccess(), DRAMInterface::doBurstAccess(), NVMInterface::doBurstAccess(), and getAddr().
const uint8_t MemPacket::bank |
Definition at line 114 of file mem_ctrl.hh.
Referenced by DRAMInterface::chooseNextFRFCFS(), NVMInterface::chooseNextFRFCFS(), NVMInterface::chooseRead(), DRAMInterface::doBurstAccess(), and NVMInterface::doBurstAccess().
const uint16_t 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 122 of file mem_ctrl.hh.
Referenced by DRAMInterface::doBurstAccess(), and NVMInterface::doBurstAccess().
BurstHelper* 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 142 of file mem_ctrl.hh.
Referenced by MemCtrl::addToReadQueue(), and MemCtrl::processRespondEvent().
const bool MemPacket::dram |
const Tick MemPacket::entryTime |
When did request enter the controller.
Definition at line 96 of file mem_ctrl.hh.
Referenced by MemCtrl::doBurstAccess(), DRAMInterface::doBurstAccess(), and NVMInterface::doBurstAccess().
const PacketPtr MemPacket::pkt |
This comes from the outside world.
Definition at line 102 of file mem_ctrl.hh.
Referenced by MemCtrl::processRespondEvent().
const uint8_t MemPacket::rank |
Will be populated by address decoder.
Definition at line 113 of file mem_ctrl.hh.
Referenced by MemCtrl::addToReadQueue(), MemCtrl::addToWriteQueue(), DRAMInterface::burstReady(), DRAMInterface::chooseNextFRFCFS(), NVMInterface::chooseNextFRFCFS(), NVMInterface::chooseRead(), DRAMInterface::doBurstAccess(), NVMInterface::doBurstAccess(), and MemCtrl::processRespondEvent().
const bool MemPacket::read |
Definition at line 107 of file mem_ctrl.hh.
Tick MemPacket::readyTime |
When will request leave the controller.
Definition at line 99 of file mem_ctrl.hh.
Referenced by MemCtrl::addToReadQueue(), NVMInterface::burstReady(), NVMInterface::chooseRead(), MemCtrl::doBurstAccess(), DRAMInterface::doBurstAccess(), and NVMInterface::doBurstAccess().
const uint32_t MemPacket::row |
Definition at line 115 of file mem_ctrl.hh.
Referenced by DRAMInterface::chooseNextFRFCFS(), NVMInterface::chooseRead(), DRAMInterface::doBurstAccess(), and NVMInterface::doBurstAccess().
unsigned int MemPacket::size |
The size of this dram packet in bytes It is always equal or smaller than the burst size.
Definition at line 136 of file mem_ctrl.hh.
Referenced by MemCtrl::doBurstAccess(), and getSize().