gem5  v20.1.0.0
Public Member Functions | Public Attributes | List of all members
MemPacket Class Reference

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...
 
BurstHelperburstHelper
 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...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ MemPacket()

MemPacket::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 
)
inline

Definition at line 196 of file mem_ctrl.hh.

Member Function Documentation

◆ getAddr()

Addr MemPacket::getAddr ( ) const
inline

Get the packet address (interface compatibility with Packet)

Definition at line 177 of file mem_ctrl.hh.

References addr.

◆ getSize()

unsigned int MemPacket::getSize ( ) const
inline

Get the packet size (interface compatibility with Packet)

Definition at line 171 of file mem_ctrl.hh.

References size.

◆ isDram()

bool MemPacket::isDram ( ) const
inline

◆ isRead()

bool MemPacket::isRead ( ) const
inline

◆ isWrite()

bool MemPacket::isWrite ( ) const
inline

Return true if its a write packet (interface compatibility with Packet)

Definition at line 189 of file mem_ctrl.hh.

References read.

◆ qosValue() [1/2]

uint8_t MemPacket::qosValue ( ) const
inline

Get the packet QoS value (interface compatibility with Packet)

Definition at line 159 of file mem_ctrl.hh.

References _qosValue.

◆ qosValue() [2/2]

void MemPacket::qosValue ( const uint8_t  qv)
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().

◆ requestorId()

RequestorID MemPacket::requestorId ( ) const
inline

Get the packet RequestorID (interface compatibility with Packet)

Definition at line 165 of file mem_ctrl.hh.

References _requestorId.

Referenced by MemCtrl::doBurstAccess().

Member Data Documentation

◆ _qosValue

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().

◆ _requestorId

const RequestorID MemPacket::_requestorId

RequestorID associated with the packet.

Definition at line 105 of file mem_ctrl.hh.

Referenced by requestorId().

◆ addr

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().

◆ bank

const uint8_t MemPacket::bank

◆ bankId

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

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().

◆ dram

const bool MemPacket::dram

Does this packet access DRAM?

Definition at line 110 of file mem_ctrl.hh.

Referenced by isDram().

◆ entryTime

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().

◆ pkt

const PacketPtr MemPacket::pkt

This comes from the outside world.

Definition at line 102 of file mem_ctrl.hh.

Referenced by MemCtrl::processRespondEvent().

◆ rank

const uint8_t MemPacket::rank

◆ read

const bool MemPacket::read

Definition at line 107 of file mem_ctrl.hh.

Referenced by isRead(), and isWrite().

◆ readyTime

Tick MemPacket::readyTime

◆ row

const uint32_t MemPacket::row

◆ size

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().


The documentation for this class was generated from the following file:

Generated on Wed Sep 30 2020 14:02:27 for gem5 by doxygen 1.8.17