gem5  v20.1.0.0
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
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 68 of file dyn_inst.hh.

Constructor & Destructor Documentation

◆ InstId()

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

Member Function Documentation

◆ operator==()

bool Minor::InstId::operator== ( const InstId rhs)
inline

Definition at line 119 of file dyn_inst.hh.

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

Member Data Documentation

◆ execSeqNum

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

Referenced by operator==().

◆ fetchSeqNum

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

Referenced by operator==().

◆ firstExecSeqNum

const InstSeqNum Minor::InstId::firstExecSeqNum = 1
static

Definition at line 77 of file dyn_inst.hh.

◆ firstFetchSeqNum

const InstSeqNum Minor::InstId::firstFetchSeqNum = 1
static

Definition at line 76 of file dyn_inst.hh.

◆ firstLineSeqNum

const InstSeqNum Minor::InstId::firstLineSeqNum = 1
static

Definition at line 75 of file dyn_inst.hh.

◆ firstPredictionSeqNum

const InstSeqNum Minor::InstId::firstPredictionSeqNum = 1
static

Definition at line 74 of file dyn_inst.hh.

◆ firstStreamSeqNum

const InstSeqNum 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 73 of file dyn_inst.hh.

◆ lineSeqNum

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

Referenced by operator==().

◆ predictionSeqNum

InstSeqNum Minor::InstId::predictionSeqNum

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

Definition at line 90 of file dyn_inst.hh.

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

◆ streamSeqNum

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

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

◆ threadId

ThreadID Minor::InstId::threadId

The thread to which this line/instruction belongs.

Definition at line 81 of file dyn_inst.hh.

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


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

Generated on Wed Sep 30 2020 14:03:06 for gem5 by doxygen 1.8.17