Go to the documentation of this file.
45 #ifndef __CPU_MINOR_DECODE_HH__
46 #define __CPU_MINOR_DECODE_HH__
149 const MinorCPUParams ¶ms,
std::vector< InputBuffer< ForwardInstData > > & nextStageReserve
Interface to reserve space in the next stage.
Id for lines and instructions.
unsigned int outputWidth
Width of output of this stage/input of next in instructions.
bool isDrained()
Is this stage drained? For Decoed, draining is initiated by Execute halting Fetch1 causing Fetch2 to ...
MinorCPU is an in-order CPU model with four fixed pipeline stages:
Forward flowing data between Fetch2,Decode,Execute carrying a packet of instructions of a width appro...
TheISA::PCState microopPC
Interface for things with names.
void popInput(ThreadID tid)
Pop an element off the input buffer, if there are any.
std::vector< DecodeThreadInfo > decodeInfo
bool inMacroop
True when we're in the process of decomposing a micro-op and microopPC will be valid.
virtual std::string name() const
GenericISA::DelaySlotPCState< 4 > PCState
DecodeThreadInfo()
Default Constructor.
unsigned int inputIndex
Index into the inputBuffer's head marking the start of unhandled instructions.
void evaluate()
Pass on input/buffer data to the output if you can.
GEM5_DEPRECATED_NAMESPACE(GuestABI, guest_abi)
bool processMoreThanOneInput
If true, more than one input word can be processed each cycle if there is room in the output to conta...
MinorCPU & cpu
Pointer back to the containing CPU.
Decode(const std::string &name, MinorCPU &cpu_, const MinorCPUParams ¶ms, Latch< ForwardInstData >::Output inp_, Latch< ForwardInstData >::Input out_, std::vector< InputBuffer< ForwardInstData >> &next_stage_input_buffer)
InstSeqNum execSeqNum
Source of execSeqNums to number instructions.
bool blocked
Blocked indication for report.
ThreadID getScheduledThread()
Use the current threading policy to determine the next thread to decode from.
Latch< ForwardInstData >::Input out
Output port carrying micro-op decomposed instructions to Execute.
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Data members after this line are cycle-to-cycle state.
int16_t ThreadID
Thread index/ID type.
std::vector< InputBuffer< ForwardInstData > > inputBuffer
Latch< ForwardInstData >::Output inp
Input port carrying macro instructions from Fetch2.
const ForwardInstData * getInput(ThreadID tid)
Get a piece of data to work on, or 0 if there is no data.
DecodeThreadInfo(const DecodeThreadInfo &other)
Generated on Tue Sep 7 2021 14:53:44 for gem5 by doxygen 1.8.17