gem5
|
Id for lines and instructions. More...
#include <dyn_inst.hh>
Public Member Functions | |
InstId (ThreadID thread_id=0, InstSeqNum stream_seq_num=0, InstSeqNum prediction_seq_num=0, InstSeqNum line_seq_num=0, InstSeqNum fetch_seq_num=0, InstSeqNum exec_seq_num=0) | |
Very boring default constructor. More... | |
bool | operator== (const InstId &rhs) |
Public Attributes | |
ThreadID | threadId |
The thread to which this line/instruction belongs. More... | |
InstSeqNum | streamSeqNum |
The 'stream' this instruction belongs to. More... | |
InstSeqNum | predictionSeqNum |
The predicted qualifier to stream, attached by Fetch2 as a consequence of branch prediction. More... | |
InstSeqNum | lineSeqNum |
Line sequence number. More... | |
InstSeqNum | fetchSeqNum |
Fetch sequence number. More... | |
InstSeqNum | execSeqNum |
'Execute' sequence number. More... | |
Static Public Attributes | |
static const InstSeqNum | firstStreamSeqNum = 1 |
First sequence numbers to use in initialisation of the pipeline and to be expected on the first line/instruction issued. More... | |
static const InstSeqNum | firstPredictionSeqNum = 1 |
static const InstSeqNum | firstLineSeqNum = 1 |
static const InstSeqNum | firstFetchSeqNum = 1 |
static const InstSeqNum | firstExecSeqNum = 1 |
Id for lines and instructions.
This includes all the relevant sequence numbers and thread ids for all stages of execution.
Definition at line 70 of file dyn_inst.hh.
|
inline |
Very boring default constructor.
Definition at line 109 of file dyn_inst.hh.
|
inline |
Definition at line 121 of file dyn_inst.hh.
References execSeqNum, fetchSeqNum, lineSeqNum, predictionSeqNum, streamSeqNum, and threadId.
InstSeqNum Minor::InstId::execSeqNum |
'Execute' sequence number.
These are assigned after micro-op decomposition and form an ascending sequence (starting with 1) for post-micro-op decomposed instructions.
Definition at line 105 of file dyn_inst.hh.
Referenced by operator==().
InstSeqNum Minor::InstId::fetchSeqNum |
Fetch sequence number.
This is 0 for bubbles and an ascending sequence for the stream of all fetched instructions
Definition at line 100 of file dyn_inst.hh.
Referenced by operator==().
|
static |
Definition at line 79 of file dyn_inst.hh.
|
static |
Definition at line 78 of file dyn_inst.hh.
|
static |
Definition at line 77 of file dyn_inst.hh.
|
static |
Definition at line 76 of file dyn_inst.hh.
|
static |
First sequence numbers to use in initialisation of the pipeline and to be expected on the first line/instruction issued.
Definition at line 75 of file dyn_inst.hh.
InstSeqNum Minor::InstId::lineSeqNum |
Line sequence number.
This is the sequence number of the fetched line from which this instruction was fetched
Definition at line 96 of file dyn_inst.hh.
Referenced by operator==().
InstSeqNum Minor::InstId::predictionSeqNum |
The predicted qualifier to stream, attached by Fetch2 as a consequence of branch prediction.
Definition at line 92 of file dyn_inst.hh.
Referenced by Minor::Fetch2::evaluate(), and operator==().
InstSeqNum Minor::InstId::streamSeqNum |
The 'stream' this instruction belongs to.
Streams are interrupted (and sequence numbers increased) when Execute finds it wants to change the stream of instructions due to a branch.
Definition at line 88 of file dyn_inst.hh.
Referenced by Minor::Fetch2::evaluate(), and operator==().
ThreadID Minor::InstId::threadId |
The thread to which this line/instruction belongs.
Definition at line 83 of file dyn_inst.hh.
Referenced by Minor::Fetch2::evaluate(), Minor::Fetch1::evaluate(), Minor::Fetch1::fetchLine(), operator==(), and Minor::Fetch1::processResponse().