gem5  v19.0.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Static Public Member Functions | Public Attributes | Private Attributes | List of all members
Minor::ForwardLineData Class Reference

Line fetch data in the forward direction. More...

#include <pipe_data.hh>

Public Member Functions

 ForwardLineData ()
 
 ~ForwardLineData ()
 
bool isFault () const
 This is a fault, not a line. More...
 
void setFault (Fault fault_)
 Set fault and possible clear the bubble flag. More...
 
void allocateLine (unsigned int width_)
 In-place initialise a ForwardLineData, freeing and overridding the line. More...
 
void adoptPacketData (Packet *packet)
 Use the data from a packet as line instead of allocating new space. More...
 
void freeLine ()
 Free this ForwardLineData line. More...
 
bool isBubble () const
 
void reportData (std::ostream &os) const
 ReportIF interface. More...
 

Static Public Member Functions

static ForwardLineData bubble ()
 BubbleIF interface. More...
 

Public Attributes

Addr lineBaseAddr
 First byte address in the line. More...
 
TheISA::PCState pc
 PC of the first requested inst within this line. More...
 
unsigned int lineWidth
 Explicit line width, don't rely on data.size. More...
 
Fault fault
 This line has a fault. More...
 
InstId id
 Thread, stream, prediction ... More...
 
uint8_t * line
 Line data. More...
 
Packetpacket
 Packet from which the line is taken. More...
 

Private Attributes

bool bubbleFlag
 This line is a bubble. More...
 

Detailed Description

Line fetch data in the forward direction.

Contains a single cache line (or fragment of a line), its address, a sequence number assigned when that line was fetched and a bubbleFlag that can allow ForwardLineData to be used to represent the absence of line data in a pipeline.

Definition at line 173 of file pipe_data.hh.

Constructor & Destructor Documentation

◆ ForwardLineData()

Minor::ForwardLineData::ForwardLineData ( )
inline

Definition at line 207 of file pipe_data.hh.

◆ ~ForwardLineData()

Minor::ForwardLineData::~ForwardLineData ( )
inline

Definition at line 218 of file pipe_data.hh.

Member Function Documentation

◆ adoptPacketData()

void Minor::ForwardLineData::adoptPacketData ( Packet packet)

Use the data from a packet as line instead of allocating new space.

On destruction of this object, the packet will be destroyed

Definition at line 185 of file pipe_data.cc.

References Packet::getPtr(), and Packet::req.

Referenced by Minor::Fetch1::processResponse().

◆ allocateLine()

void Minor::ForwardLineData::allocateLine ( unsigned int  width_)

In-place initialise a ForwardLineData, freeing and overridding the line.

Definition at line 173 of file pipe_data.cc.

◆ bubble()

static ForwardLineData Minor::ForwardLineData::bubble ( )
inlinestatic

BubbleIF interface.

Definition at line 242 of file pipe_data.hh.

◆ freeLine()

void Minor::ForwardLineData::freeLine ( )

Free this ForwardLineData line.

Note that these are shared between line objects and so you must be careful when deallocating them. Copying of ForwardLineData can, therefore, be done by default copy constructors/assignment

Definition at line 198 of file pipe_data.cc.

References Minor::BranchData::isBubble().

◆ isBubble()

bool Minor::ForwardLineData::isBubble ( ) const
inline

Definition at line 243 of file pipe_data.hh.

References Minor::BranchData::reportData().

Referenced by Minor::Fetch1::evaluate().

◆ isFault()

bool Minor::ForwardLineData::isFault ( ) const
inline

This is a fault, not a line.

Definition at line 222 of file pipe_data.hh.

References NoFault.

Referenced by Minor::Fetch2::evaluate().

◆ reportData()

void Minor::ForwardLineData::reportData ( std::ostream &  os) const

ReportIF interface.

Definition at line 216 of file pipe_data.cc.

References ArmISA::id, Minor::BranchData::isBubble(), and NoFault.

◆ setFault()

void Minor::ForwardLineData::setFault ( Fault  fault_)

Set fault and possible clear the bubble flag.

Definition at line 165 of file pipe_data.cc.

Referenced by Minor::Fetch1::processResponse().

Member Data Documentation

◆ bubbleFlag

bool Minor::ForwardLineData::bubbleFlag
private

This line is a bubble.

No other data member is required to be valid if this is true

Definition at line 178 of file pipe_data.hh.

◆ fault

Fault Minor::ForwardLineData::fault

This line has a fault.

The bubble flag will be false and seqNums will be valid but no data will

Definition at line 194 of file pipe_data.hh.

Referenced by Minor::Fetch2::evaluate().

◆ id

InstId Minor::ForwardLineData::id

Thread, stream, prediction ...

id of this line

Definition at line 197 of file pipe_data.hh.

Referenced by Minor::Fetch2::evaluate(), and Minor::Fetch1::processResponse().

◆ line

uint8_t* Minor::ForwardLineData::line

Line data.

line[0] is the byte at address pc.instAddr(). Data is only valid upto lineWidth - 1.

Definition at line 201 of file pipe_data.hh.

Referenced by Minor::Fetch2::evaluate().

◆ lineBaseAddr

Addr Minor::ForwardLineData::lineBaseAddr

First byte address in the line.

This is allowed to be <= pc.instAddr()

Definition at line 183 of file pipe_data.hh.

Referenced by Minor::Fetch2::evaluate(), and Minor::Fetch1::processResponse().

◆ lineWidth

unsigned int Minor::ForwardLineData::lineWidth

Explicit line width, don't rely on data.size.

Definition at line 189 of file pipe_data.hh.

Referenced by Minor::Fetch2::evaluate().

◆ packet

Packet* Minor::ForwardLineData::packet

Packet from which the line is taken.

Definition at line 204 of file pipe_data.hh.

◆ pc

TheISA::PCState Minor::ForwardLineData::pc

PC of the first requested inst within this line.

Definition at line 186 of file pipe_data.hh.

Referenced by Minor::Fetch2::evaluate(), and Minor::Fetch1::processResponse().


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

Generated on Fri Feb 28 2020 16:27:22 for gem5 by doxygen 1.8.13