gem5 v24.0.0.0
Loading...
Searching...
No Matches
gem5::minor::InstId Class Reference

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.
 
bool operator== (const InstId &rhs)
 

Public Attributes

ThreadID threadId
 The thread to which this line/instruction belongs.
 
InstSeqNum streamSeqNum
 The 'stream' this instruction belongs to.
 
InstSeqNum predictionSeqNum
 The predicted qualifier to stream, attached by Fetch2 as a consequence of branch prediction.
 
InstSeqNum lineSeqNum
 Line sequence number.
 
InstSeqNum fetchSeqNum
 Fetch sequence number.
 
InstSeqNum execSeqNum
 'Execute' sequence number.
 

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.
 
static const InstSeqNum firstPredictionSeqNum = 1
 
static const InstSeqNum firstLineSeqNum = 1
 
static const InstSeqNum firstFetchSeqNum = 1
 
static const InstSeqNum firstExecSeqNum = 1
 

Detailed Description

Id for lines and instructions.

This includes all the relevant sequence numbers and thread ids for all stages of execution.

Definition at line 75 of file dyn_inst.hh.

Constructor & Destructor Documentation

◆ InstId()

gem5::minor::InstId::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 )
inline

Very boring default constructor.

Definition at line 114 of file dyn_inst.hh.

Member Function Documentation

◆ operator==()

bool gem5::minor::InstId::operator== ( const InstId & rhs)
inline

Definition at line 126 of file dyn_inst.hh.

References execSeqNum, fetchSeqNum, lineSeqNum, predictionSeqNum, streamSeqNum, and threadId.

Member Data Documentation

◆ execSeqNum

InstSeqNum gem5::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 110 of file dyn_inst.hh.

Referenced by operator==().

◆ fetchSeqNum

InstSeqNum gem5::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 105 of file dyn_inst.hh.

Referenced by operator==().

◆ firstExecSeqNum

const InstSeqNum gem5::minor::InstId::firstExecSeqNum = 1
static

Definition at line 84 of file dyn_inst.hh.

◆ firstFetchSeqNum

const InstSeqNum gem5::minor::InstId::firstFetchSeqNum = 1
static

Definition at line 83 of file dyn_inst.hh.

◆ firstLineSeqNum

const InstSeqNum gem5::minor::InstId::firstLineSeqNum = 1
static

Definition at line 82 of file dyn_inst.hh.

◆ firstPredictionSeqNum

const InstSeqNum gem5::minor::InstId::firstPredictionSeqNum = 1
static

Definition at line 81 of file dyn_inst.hh.

◆ firstStreamSeqNum

const InstSeqNum gem5::minor::InstId::firstStreamSeqNum = 1
static

First sequence numbers to use in initialisation of the pipeline and to be expected on the first line/instruction issued.

Definition at line 80 of file dyn_inst.hh.

◆ lineSeqNum

InstSeqNum gem5::minor::InstId::lineSeqNum

Line sequence number.

This is the sequence number of the fetched line from which this instruction was fetched

Definition at line 101 of file dyn_inst.hh.

Referenced by operator==().

◆ predictionSeqNum

InstSeqNum gem5::minor::InstId::predictionSeqNum

The predicted qualifier to stream, attached by Fetch2 as a consequence of branch prediction.

Definition at line 97 of file dyn_inst.hh.

Referenced by gem5::minor::Fetch2::evaluate(), and operator==().

◆ streamSeqNum

InstSeqNum gem5::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 93 of file dyn_inst.hh.

Referenced by gem5::minor::Fetch2::evaluate(), and operator==().

◆ threadId

ThreadID gem5::minor::InstId::threadId

The thread to which this line/instruction belongs.

Definition at line 88 of file dyn_inst.hh.

Referenced by gem5::minor::Fetch1::evaluate(), gem5::minor::Fetch2::evaluate(), gem5::minor::Fetch1::fetchLine(), operator==(), and gem5::minor::Fetch1::processResponse().


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

Generated on Tue Jun 18 2024 16:24:20 for gem5 by doxygen 1.11.0