gem5
v20.1.0.0
|
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... | |
Packet * | packet |
Packet from which the line is taken. More... | |
Private Attributes | |
bool | bubbleFlag |
This line is a bubble. More... | |
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 171 of file pipe_data.hh.
|
inline |
Definition at line 205 of file pipe_data.hh.
Referenced by bubble().
|
inline |
Definition at line 216 of file pipe_data.hh.
References line.
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 183 of file pipe_data.cc.
References bubbleFlag, Packet::getPtr(), isFault(), line, lineWidth, packet, and Packet::req.
Referenced by Minor::Fetch1::processResponse().
void Minor::ForwardLineData::allocateLine | ( | unsigned int | width_ | ) |
In-place initialise a ForwardLineData, freeing and overridding the line.
Definition at line 171 of file pipe_data.cc.
References bubbleFlag, isFault(), line, and lineWidth.
|
inlinestatic |
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 196 of file pipe_data.cc.
References bubbleFlag, isBubble(), isFault(), line, and packet.
|
inline |
Definition at line 241 of file pipe_data.hh.
References bubbleFlag.
Referenced by Minor::Fetch1::evaluate(), freeLine(), and reportData().
|
inline |
This is a fault, not a line.
Definition at line 220 of file pipe_data.hh.
References fault, and NoFault.
Referenced by adoptPacketData(), allocateLine(), Minor::Fetch2::evaluate(), freeLine(), and setFault().
void Minor::ForwardLineData::reportData | ( | std::ostream & | os | ) | const |
ReportIF interface.
Definition at line 214 of file pipe_data.cc.
References fault, id, isBubble(), NoFault, and X86ISA::os.
void Minor::ForwardLineData::setFault | ( | Fault | fault_ | ) |
Set fault and possible clear the bubble flag.
Definition at line 163 of file pipe_data.cc.
References bubbleFlag, fault, and isFault().
Referenced by Minor::Fetch1::processResponse().
|
private |
This line is a bubble.
No other data member is required to be valid if this is true
Definition at line 176 of file pipe_data.hh.
Referenced by adoptPacketData(), allocateLine(), freeLine(), isBubble(), and setFault().
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 192 of file pipe_data.hh.
Referenced by Minor::Fetch2::evaluate(), isFault(), reportData(), and setFault().
InstId Minor::ForwardLineData::id |
Thread, stream, prediction ...
id of this line
Definition at line 195 of file pipe_data.hh.
Referenced by Minor::Fetch2::evaluate(), Minor::Fetch1::processResponse(), and reportData().
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 199 of file pipe_data.hh.
Referenced by adoptPacketData(), allocateLine(), Minor::Fetch2::evaluate(), freeLine(), and ~ForwardLineData().
Addr Minor::ForwardLineData::lineBaseAddr |
First byte address in the line.
This is allowed to be <= pc.instAddr()
Definition at line 181 of file pipe_data.hh.
Referenced by Minor::Fetch2::evaluate(), and Minor::Fetch1::processResponse().
unsigned int Minor::ForwardLineData::lineWidth |
Explicit line width, don't rely on data.size.
Definition at line 187 of file pipe_data.hh.
Referenced by adoptPacketData(), allocateLine(), and Minor::Fetch2::evaluate().
Packet* Minor::ForwardLineData::packet |
Packet from which the line is taken.
Definition at line 202 of file pipe_data.hh.
Referenced by adoptPacketData(), and freeLine().
TheISA::PCState Minor::ForwardLineData::pc |
PC of the first requested inst within this line.
Definition at line 184 of file pipe_data.hh.
Referenced by Minor::Fetch2::evaluate(), and Minor::Fetch1::processResponse().