|
gem5 [DEVELOP-FOR-25.0]
|
#include <decode.hh>
Classes | |
| struct | DecodeThreadInfo |
| Data members after this line are cycle-to-cycle state. More... | |
Public Member Functions | |
| Decode (const std::string &name, MinorCPU &cpu_, const BaseMinorCPUParams ¶ms, Latch< ForwardInstData >::Output inp_, Latch< ForwardInstData >::Input out_, std::vector< InputBuffer< ForwardInstData > > &next_stage_input_buffer) | |
| void | evaluate () |
| Pass on input/buffer data to the output if you can. | |
| void | minorTrace () const |
| bool | isDrained () |
| Is this stage drained? | |
Public Member Functions inherited from gem5::Named | |
| Named (std::string_view name_) | |
| virtual | ~Named ()=default |
| virtual std::string | name () const |
Public Attributes | |
| std::vector< InputBuffer< ForwardInstData > > | inputBuffer |
Protected Member Functions | |
| const ForwardInstData * | getInput (ThreadID tid) |
| Get a piece of data to work on, or 0 if there is no data. | |
| void | popInput (ThreadID tid) |
| Pop an element off the input buffer, if there are any. | |
| ThreadID | getScheduledThread () |
| Use the current threading policy to determine the next thread to decode from. | |
Protected Attributes | |
| MinorCPU & | cpu |
| Pointer back to the containing CPU. | |
| Latch< ForwardInstData >::Output | inp |
| Input port carrying macro instructions from Fetch2. | |
| Latch< ForwardInstData >::Input | out |
| Output port carrying micro-op decomposed instructions to Execute. | |
| std::vector< InputBuffer< ForwardInstData > > & | nextStageReserve |
| Interface to reserve space in the next stage. | |
| unsigned int | outputWidth |
| Width of output of this stage/input of next in instructions. | |
| bool | processMoreThanOneInput |
| If true, more than one input word can be processed each cycle if there is room in the output to contain its processed data. | |
| std::vector< DecodeThreadInfo > | decodeInfo |
| ThreadID | threadPriority |
| gem5::minor::Decode::Decode | ( | const std::string & | name, |
| MinorCPU & | cpu_, | ||
| const BaseMinorCPUParams & | params, | ||
| Latch< ForwardInstData >::Output | inp_, | ||
| Latch< ForwardInstData >::Input | out_, | ||
| std::vector< InputBuffer< ForwardInstData > > & | next_stage_input_buffer ) |
Definition at line 51 of file decode.cc.
References cpu, decodeInfo, fatal, inp, inputBuffer, gem5::Named::name(), gem5::Named::Named(), nextStageReserve, out, outputWidth, processMoreThanOneInput, and threadPriority.
Referenced by evaluate().
| void gem5::minor::Decode::evaluate | ( | ) |
Pass on input/buffer data to the output if you can.
Definition at line 127 of file decode.cc.
References gem5::StaticInst::advancePC(), cpu, Decode(), decodeInfo, gem5::minor::Pipeline::DecodeStageId, DPRINTF, gem5::minor::Decode::DecodeThreadInfo::execSeqNum, gem5::StaticInst::fetchMicroop(), getInput(), getScheduledThread(), gem5::ArmISA::i, gem5::minor::Decode::DecodeThreadInfo::inMacroop, inp, inputBuffer, gem5::minor::Decode::DecodeThreadInfo::inputIndex, gem5::minor::ForwardInstData::insts, gem5::InvalidThreadID, gem5::minor::ForwardInstData::isBubble(), gem5::StaticInst::isLastMicroop(), gem5::StaticInst::isMacroop(), gem5::minor::Decode::DecodeThreadInfo::microopPC, nextStageReserve, gem5::NoFault, out, outputWidth, popInput(), processMoreThanOneInput, gem5::minor::ForwardInstData::resize(), gem5::ArmISA::set, gem5::minor::ForwardInstData::threadId, and gem5::minor::ForwardInstData::width().
|
protected |
Get a piece of data to work on, or 0 if there is no data.
Definition at line 85 of file decode.cc.
References inputBuffer, and gem5::minor::ForwardInstData::isBubble().
Referenced by evaluate(), and getScheduledThread().
|
inlineprotected |
Use the current threading policy to determine the next thread to decode from.
Definition at line 300 of file decode.cc.
References cpu, decodeInfo, getInput(), gem5::InvalidThreadID, panic, and threadPriority.
Referenced by evaluate().
| bool gem5::minor::Decode::isDrained | ( | ) |
| void gem5::minor::Decode::minorTrace | ( | ) | const |
Definition at line 341 of file decode.cc.
References data, decodeInfo, inputBuffer, gem5::minor::minorTrace(), and out.
|
protected |
Pop an element off the input buffer, if there are any.
Definition at line 98 of file decode.cc.
References decodeInfo, and inputBuffer.
Referenced by evaluate().
|
protected |
Pointer back to the containing CPU.
Definition at line 70 of file decode.hh.
Referenced by Decode(), evaluate(), and getScheduledThread().
|
protected |
Definition at line 127 of file decode.hh.
Referenced by Decode(), evaluate(), getScheduledThread(), minorTrace(), and popInput().
|
protected |
Input port carrying macro instructions from Fetch2.
Definition at line 73 of file decode.hh.
Referenced by Decode(), evaluate(), and isDrained().
| std::vector<InputBuffer<ForwardInstData> > gem5::minor::Decode::inputBuffer |
Definition at line 89 of file decode.hh.
Referenced by Decode(), evaluate(), getInput(), isDrained(), minorTrace(), and popInput().
|
protected |
Interface to reserve space in the next stage.
Definition at line 78 of file decode.hh.
Referenced by Decode(), and evaluate().
|
protected |
Output port carrying micro-op decomposed instructions to Execute.
Definition at line 75 of file decode.hh.
Referenced by Decode(), evaluate(), and minorTrace().
|
protected |
Width of output of this stage/input of next in instructions.
Definition at line 81 of file decode.hh.
Referenced by Decode(), and evaluate().
|
protected |
If true, more than one input word can be processed each cycle if there is room in the output to contain its processed data.
Definition at line 85 of file decode.hh.
Referenced by Decode(), and evaluate().
|
protected |
Definition at line 128 of file decode.hh.
Referenced by Decode(), and getScheduledThread().