gem5  v21.1.0.2
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
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. 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
 

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 76 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 115 of file dyn_inst.hh.

Member Function Documentation

◆ operator==()

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

Definition at line 127 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 111 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 106 of file dyn_inst.hh.

Referenced by operator==().

◆ firstExecSeqNum

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

Definition at line 85 of file dyn_inst.hh.

◆ firstFetchSeqNum

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

Definition at line 84 of file dyn_inst.hh.

◆ firstLineSeqNum

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

Definition at line 83 of file dyn_inst.hh.

◆ firstPredictionSeqNum

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

Definition at line 82 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 81 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 102 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 98 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 94 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 89 of file dyn_inst.hh.

Referenced by gem5::minor::Fetch2::evaluate(), gem5::minor::Fetch1::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 Sep 21 2021 12:31:30 for gem5 by doxygen 1.8.17