Go to the documentation of this file.
45 #ifndef __CPU_MINOR_FETCH2_HH__
46 #define __CPU_MINOR_FETCH2_HH__
52 #include "params/MinorCPU.hh"
206 MinorCPUParams ¶ms,
InstSeqNum predictionSeqNum
Fetch2 is the source of prediction sequence numbers.
std::vector< Fetch2ThreadInfo > fetchInfo
MinorCPU & cpu
Pointer back to the containing CPU.
Fetch2ThreadInfo()
Default constructor.
This stage receives lines of data from Fetch1, separates them into instructions and passes them to De...
int16_t ThreadID
Thread index/ID type.
ThreadID getScheduledThread()
Use the current threading policy to determine the next thread to fetch from.
InstSeqNum lastStreamSeqNum
Stream sequence number of the last seen line used to identify changes of instruction stream.
InstSeqNum fetchSeqNum
Fetch2 is the source of fetch sequence numbers.
BPredUnit & branchPredictor
Branch predictor passed from Python configuration.
Line fetch data in the forward direction.
Latch< ForwardInstData >::Input out
Output port carrying instructions into Decode.
Fetch2ThreadInfo(const Fetch2ThreadInfo &other)
Data members after this line are cycle-to-cycle state.
void predictBranch(MinorDynInstPtr inst, BranchData &branch)
Predicts branches for the given instruction.
Stats::Scalar loadInstructions
void evaluate()
Pass on input/buffer data to the output if you can.
Latch< ForwardLineData >::Output inp
Input port carrying lines from Fetch1.
This is a simple scalar statistic, like a counter.
Latch< BranchData >::Output branchInp
Input port carrying branches from Execute.
void popInput(ThreadID tid)
Pop an element off the input buffer, if there are any.
bool havePC
PC is currently valid.
const ForwardLineData * getInput(ThreadID tid)
Get a piece of data to work on from the inputBuffer, or 0 if there is no data.
MinorCPU is an in-order CPU model with four fixed pipeline stages:
bool blocked
Blocked indication for report.
bool processMoreThanOneInput
If true, more than one input word can be processed each cycle if there is room in the output to conta...
unsigned int outputWidth
Width of output of this stage/input of next in instructions.
InstSeqNum expectedStreamSeqNum
Stream sequence number remembered from last time the predictionSeqNum changed.
Fetch2(const std::string &name, MinorCPU &cpu_, MinorCPUParams ¶ms, Latch< ForwardLineData >::Output inp_, Latch< BranchData >::Output branchInp_, Latch< BranchData >::Input predictionOut_, Latch< ForwardInstData >::Input out_, std::vector< InputBuffer< ForwardInstData >> &next_stage_input_buffer)
Stats::Scalar storeInstructions
Stats::Scalar vecInstructions
void updateBranchPrediction(const BranchData &branch)
Update local branch prediction structures from feedback from Execute.
Basically a wrapper class to hold both the branch predictor and the BTB.
Minor::Fetch2::Fetch2Stats stats
void dumpAllInput(ThreadID tid)
Dump the whole contents of the input buffer.
Fetch2Stats(MinorCPU *cpu)
Latch< BranchData >::Input predictionOut
Output port carrying predictions back to Fetch1.
Forward data betwen Execute and Fetch1 carrying change-of-address/stream information.
Stats::Scalar amoInstructions
GenericISA::DelaySlotPCState< MachInst > PCState
std::vector< InputBuffer< ForwardLineData > > inputBuffer
TheISA::PCState pc
Remembered program counter value.
unsigned int inputIndex
Index into an incompletely processed input line that instructions are to be extracted from.
bool isDrained()
Is this stage drained? For Fetch2, draining is initiated by Execute halting Fetch1 causing Fetch2 to ...
Stats::Scalar intInstructions
Stats.
const std::string & name() const
Id for lines and instructions.
Stats::Scalar fpInstructions
std::vector< InputBuffer< ForwardInstData > > & nextStageReserve
Interface to reserve space in the next stage.
Generated on Wed Sep 30 2020 14:02:08 for gem5 by doxygen 1.8.17