gem5
v20.1.0.0
|
DefaultDecode class handles both single threaded and SMT decode. More...
#include <decode.hh>
Classes | |
struct | DecodeStats |
struct | Stalls |
Source of possible stalls. More... | |
Public Types | |
enum | DecodeStatus { Active, Inactive } |
Overall decode stage status. More... | |
enum | ThreadStatus { Running, Idle, StartSquash, Squashing, Blocked, Unblocking } |
Individual thread status. More... | |
Public Member Functions | |
DefaultDecode (O3CPU *_cpu, DerivO3CPUParams *params) | |
DefaultDecode constructor. More... | |
void | startupStage () |
void | clearStates (ThreadID tid) |
Clear all thread-specific states. More... | |
void | resetStage () |
std::string | name () const |
Returns the name of decode. More... | |
void | setTimeBuffer (TimeBuffer< TimeStruct > *tb_ptr) |
Sets the main backwards communication time buffer pointer. More... | |
void | setDecodeQueue (TimeBuffer< DecodeStruct > *dq_ptr) |
Sets pointer to time buffer used to communicate to the next stage. More... | |
void | setFetchQueue (TimeBuffer< FetchStruct > *fq_ptr) |
Sets pointer to time buffer coming from fetch. More... | |
void | setActiveThreads (std::list< ThreadID > *at_ptr) |
Sets pointer to list of active threads. More... | |
void | drainSanityCheck () const |
Perform sanity checks after a drain. More... | |
bool | isDrained () const |
Has the stage drained? More... | |
void | takeOverFrom () |
Takes over from another CPU's thread. More... | |
void | tick () |
Ticks decode, processing all input signals and decoding as many instructions as possible. More... | |
void | decode (bool &status_change, ThreadID tid) |
Determines what to do based on decode's current status. More... | |
void | decodeInsts (ThreadID tid) |
Processes instructions from fetch and passes them on to rename. More... | |
unsigned | squash (ThreadID tid) |
Squashes due to commit signalling a squash. More... | |
Private Types | |
typedef Impl::O3CPU | O3CPU |
typedef Impl::DynInstPtr | DynInstPtr |
typedef Impl::CPUPol | CPUPol |
typedef CPUPol::FetchStruct | FetchStruct |
typedef CPUPol::DecodeStruct | DecodeStruct |
typedef CPUPol::TimeStruct | TimeStruct |
Private Member Functions | |
void | skidInsert (ThreadID tid) |
Inserts a thread's instructions into the skid buffer, to be decoded once decode unblocks. More... | |
bool | skidsEmpty () |
Returns if all of the skid buffers are empty. More... | |
void | updateStatus () |
Updates overall decode status based on all of the threads' statuses. More... | |
void | sortInsts () |
Separates instructions from fetch into individual lists of instructions sorted by thread. More... | |
void | readStallSignals (ThreadID tid) |
Reads all stall signals from the backwards communication timebuffer. More... | |
bool | checkSignalsAndUpdate (ThreadID tid) |
Checks all input signals and updates decode's status appropriately. More... | |
bool | checkStall (ThreadID tid) const |
Checks all stall signals, and returns if any are true. More... | |
bool | fetchInstsValid () |
Returns if there any instructions from fetch on this cycle. More... | |
bool | block (ThreadID tid) |
Switches decode to blocking, and signals back that decode has become blocked. More... | |
bool | unblock (ThreadID tid) |
Switches decode to unblocking if the skid buffer is empty, and signals back that decode has unblocked. More... | |
void | squash (const DynInstPtr &inst, ThreadID tid) |
Squashes if there is a PC-relative branch that was predicted incorrectly. More... | |
Private Attributes | |
DecodeStatus | _status |
Decode status. More... | |
ThreadStatus | decodeStatus [Impl::MaxThreads] |
Per-thread status. More... | |
O3CPU * | cpu |
CPU interface. More... | |
TimeBuffer< TimeStruct > * | timeBuffer |
Time buffer interface. More... | |
TimeBuffer< TimeStruct >::wire | fromRename |
Wire to get rename's output from backwards time buffer. More... | |
TimeBuffer< TimeStruct >::wire | fromIEW |
Wire to get iew's information from backwards time buffer. More... | |
TimeBuffer< TimeStruct >::wire | fromCommit |
Wire to get commit's information from backwards time buffer. More... | |
TimeBuffer< TimeStruct >::wire | toFetch |
Wire to write information heading to previous stages. More... | |
TimeBuffer< DecodeStruct > * | decodeQueue |
Decode instruction queue. More... | |
TimeBuffer< DecodeStruct >::wire | toRename |
Wire used to write any information heading to rename. More... | |
TimeBuffer< FetchStruct > * | fetchQueue |
Fetch instruction queue interface. More... | |
TimeBuffer< FetchStruct >::wire | fromFetch |
Wire to get fetch's output from fetch queue. More... | |
std::queue< DynInstPtr > | insts [Impl::MaxThreads] |
Queue of all instructions coming from fetch this cycle. More... | |
std::queue< DynInstPtr > | skidBuffer [Impl::MaxThreads] |
Skid buffer between fetch and decode. More... | |
bool | wroteToTimeBuffer |
Variable that tracks if decode has written to the time buffer this cycle. More... | |
Stalls | stalls [Impl::MaxThreads] |
Tracks which stages are telling decode to stall. More... | |
Cycles | renameToDecodeDelay |
Rename to decode delay. More... | |
Cycles | iewToDecodeDelay |
IEW to decode delay. More... | |
Cycles | commitToDecodeDelay |
Commit to decode delay. More... | |
Cycles | fetchToDecodeDelay |
Fetch to decode delay. More... | |
unsigned | decodeWidth |
The width of decode, in instructions. More... | |
unsigned | toRenameIndex |
Index of instructions being sent to rename. More... | |
ThreadID | numThreads |
number of Active Threads More... | |
std::list< ThreadID > * | activeThreads |
List of active thread ids. More... | |
unsigned | skidBufferMax |
Maximum size of the skid buffer. More... | |
Addr | bdelayDoneSeqNum [Impl::MaxThreads] |
SeqNum of Squashing Branch Delay Instruction (used for MIPS) More... | |
DynInstPtr | squashInst [Impl::MaxThreads] |
Instruction used for squashing branch (used for MIPS) More... | |
bool | squashAfterDelaySlot [Impl::MaxThreads] |
Tells when their is a pending delay slot inst. More... | |
DefaultDecode::DecodeStats | stats |
DefaultDecode class handles both single threaded and SMT decode.
Its width is specified by the parameters; each cycles it tries to decode that many instructions. Because instructions are actually decoded when the StaticInst is created, this stage does not do much other than check any PC-relative branches.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
enum DefaultDecode::DecodeStatus |
enum DefaultDecode::ThreadStatus |
DefaultDecode< Impl >::DefaultDecode | ( | O3CPU * | _cpu, |
DerivO3CPUParams * | params | ||
) |
DefaultDecode constructor.
Definition at line 60 of file decode_impl.hh.
References DefaultDecode< Impl >::bdelayDoneSeqNum, DefaultDecode< Impl >::decodeStatus, DefaultDecode< Impl >::decodeWidth, fatal, DefaultDecode< Impl >::fetchToDecodeDelay, DefaultDecode< Impl >::Idle, DefaultDecode< Impl >::skidBufferMax, DefaultDecode< Impl >::squashAfterDelaySlot, DefaultDecode< Impl >::squashInst, and DefaultDecode< Impl >::stalls.
|
private |
Switches decode to blocking, and signals back that decode has become blocked.
Definition at line 239 of file decode_impl.hh.
References DefaultDecode< Impl >::Blocked, DefaultDecode< Impl >::decodeStatus, DPRINTF, DefaultDecode< Impl >::skidInsert(), DefaultDecode< Impl >::toFetch, and DefaultDecode< Impl >::wroteToTimeBuffer.
Referenced by DefaultDecode< Impl >::checkSignalsAndUpdate(), and DefaultDecode< Impl >::decodeInsts().
|
private |
Checks all input signals and updates decode's status appropriately.
Definition at line 491 of file decode_impl.hh.
References DefaultDecode< Impl >::block(), DefaultDecode< Impl >::Blocked, DefaultDecode< Impl >::checkStall(), DefaultDecode< Impl >::decodeStatus, DPRINTF, DefaultDecode< Impl >::fromCommit, DefaultDecode< Impl >::readStallSignals(), DefaultDecode< Impl >::Running, DefaultDecode< Impl >::squash(), DefaultDecode< Impl >::Squashing, DefaultDecode< Impl >::unblock(), and DefaultDecode< Impl >::Unblocking.
Referenced by DefaultDecode< Impl >::tick().
|
private |
Checks all stall signals, and returns if any are true.
Definition at line 218 of file decode_impl.hh.
References DPRINTF, and DefaultDecode< Impl >::stalls.
Referenced by DefaultDecode< Impl >::checkSignalsAndUpdate().
void DefaultDecode< Impl >::clearStates | ( | ThreadID | tid | ) |
Clear all thread-specific states.
Definition at line 95 of file decode_impl.hh.
void DefaultDecode< Impl >::decode | ( | bool & | status_change, |
ThreadID | tid | ||
) |
Determines what to do based on decode's current status.
status_change | decode() sets this variable if there was a status change (ie switching from from blocking to unblocking). |
tid | Thread id to decode instructions from. |
Definition at line 584 of file decode_impl.hh.
References DefaultDecode< Impl >::Blocked, DefaultDecode< Impl >::DecodeStats::blockedCycles, DefaultDecode< Impl >::decodeInsts(), DefaultDecode< Impl >::decodeStatus, DPRINTF, DefaultDecode< Impl >::fetchInstsValid(), DefaultDecode< Impl >::Idle, DefaultDecode< Impl >::Running, DefaultDecode< Impl >::skidInsert(), DefaultDecode< Impl >::skidsEmpty(), DefaultDecode< Impl >::DecodeStats::squashCycles, DefaultDecode< Impl >::Squashing, DefaultDecode< Impl >::stats, DefaultDecode< Impl >::unblock(), and DefaultDecode< Impl >::Unblocking.
Referenced by DefaultDecode< Impl >::tick().
void DefaultDecode< Impl >::decodeInsts | ( | ThreadID | tid | ) |
Processes instructions from fetch and passes them on to rename.
Decoding of instructions actually happens when they are created in fetch, so this function mostly checks if PC-relative branches are correct.
Definition at line 629 of file decode_impl.hh.
References DefaultDecode< Impl >::block(), DefaultDecode< Impl >::DecodeStats::branchMispred, DefaultDecode< Impl >::DecodeStats::branchResolved, DefaultDecode< Impl >::DecodeStats::controlMispred, curTick(), DefaultDecode< Impl >::DecodeStats::decodedInsts, DefaultDecode< Impl >::decodeStatus, DefaultDecode< Impl >::decodeWidth, DPRINTF, DTRACE, DefaultDecode< Impl >::DecodeStats::idleCycles, DefaultDecode< Impl >::insts, panic, DefaultDecode< Impl >::DecodeStats::runCycles, DefaultDecode< Impl >::Running, TimeBuffer< T >::size, DefaultDecode< Impl >::skidBuffer, DefaultDecode< Impl >::squash(), DefaultDecode< Impl >::DecodeStats::squashedInsts, DefaultDecode< Impl >::stats, DefaultDecode< Impl >::toRename, DefaultDecode< Impl >::toRenameIndex, DefaultDecode< Impl >::DecodeStats::unblockCycles, DefaultDecode< Impl >::Unblocking, and DefaultDecode< Impl >::wroteToTimeBuffer.
Referenced by DefaultDecode< Impl >::decode().
void DefaultDecode< Impl >::drainSanityCheck |
Perform sanity checks after a drain.
Definition at line 196 of file decode_impl.hh.
References DefaultDecode< Impl >::insts, DefaultDecode< Impl >::numThreads, and DefaultDecode< Impl >::skidBuffer.
|
inlineprivate |
Returns if there any instructions from fetch on this cycle.
Definition at line 232 of file decode_impl.hh.
References DefaultDecode< Impl >::fromFetch, and TimeBuffer< T >::size.
Referenced by DefaultDecode< Impl >::decode().
bool DefaultDecode< Impl >::isDrained |
Has the stage drained?
Definition at line 206 of file decode_impl.hh.
References DefaultDecode< Impl >::decodeStatus, DefaultDecode< Impl >::Idle, DefaultDecode< Impl >::insts, DefaultDecode< Impl >::numThreads, DefaultDecode< Impl >::Running, and DefaultDecode< Impl >::skidBuffer.
std::string DefaultDecode< Impl >::name |
Returns the name of decode.
Definition at line 117 of file decode_impl.hh.
|
private |
Reads all stall signals from the backwards communication timebuffer.
Definition at line 477 of file decode_impl.hh.
References DefaultDecode< Impl >::fromRename, DefaultDecode< Impl >::Stalls::rename, and DefaultDecode< Impl >::stalls.
Referenced by DefaultDecode< Impl >::checkSignalsAndUpdate().
void DefaultDecode< Impl >::resetStage |
Definition at line 103 of file decode_impl.hh.
Referenced by DefaultDecode< Impl >::takeOverFrom().
void DefaultDecode< Impl >::setActiveThreads | ( | std::list< ThreadID > * | at_ptr | ) |
Sets pointer to list of active threads.
Definition at line 189 of file decode_impl.hh.
References DefaultDecode< Impl >::activeThreads.
void DefaultDecode< Impl >::setDecodeQueue | ( | TimeBuffer< DecodeStruct > * | dq_ptr | ) |
Sets pointer to time buffer used to communicate to the next stage.
Definition at line 169 of file decode_impl.hh.
References DefaultDecode< Impl >::decodeQueue, TimeBuffer< T >::getWire(), and DefaultDecode< Impl >::toRename.
void DefaultDecode< Impl >::setFetchQueue | ( | TimeBuffer< FetchStruct > * | fq_ptr | ) |
Sets pointer to time buffer coming from fetch.
Definition at line 179 of file decode_impl.hh.
References DefaultDecode< Impl >::fetchQueue, DefaultDecode< Impl >::fetchToDecodeDelay, DefaultDecode< Impl >::fromFetch, and TimeBuffer< T >::getWire().
void DefaultDecode< Impl >::setTimeBuffer | ( | TimeBuffer< TimeStruct > * | tb_ptr | ) |
Sets the main backwards communication time buffer pointer.
Definition at line 154 of file decode_impl.hh.
References DefaultDecode< Impl >::commitToDecodeDelay, DefaultDecode< Impl >::fromCommit, DefaultDecode< Impl >::fromIEW, DefaultDecode< Impl >::fromRename, TimeBuffer< T >::getWire(), DefaultDecode< Impl >::iewToDecodeDelay, DefaultDecode< Impl >::renameToDecodeDelay, DefaultDecode< Impl >::timeBuffer, and DefaultDecode< Impl >::toFetch.
|
private |
Inserts a thread's instructions into the skid buffer, to be decoded once decode unblocks.
Definition at line 388 of file decode_impl.hh.
References DPRINTF, DefaultDecode< Impl >::insts, DefaultDecode< Impl >::skidBuffer, and DefaultDecode< Impl >::skidBufferMax.
Referenced by DefaultDecode< Impl >::block(), and DefaultDecode< Impl >::decode().
|
private |
Returns if all of the skid buffers are empty.
Definition at line 412 of file decode_impl.hh.
References DefaultDecode< Impl >::activeThreads, and DefaultDecode< Impl >::skidBuffer.
Referenced by DefaultDecode< Impl >::decode().
|
private |
Separates instructions from fetch into individual lists of instructions sorted by thread.
Definition at line 467 of file decode_impl.hh.
References DefaultDecode< Impl >::fromFetch, ArmISA::i, DefaultDecode< Impl >::insts, and TimeBuffer< T >::size.
Referenced by DefaultDecode< Impl >::tick().
|
private |
Squashes if there is a PC-relative branch that was predicted incorrectly.
Sends squash information back to fetch.
Definition at line 288 of file decode_impl.hh.
References DefaultDecode< Impl >::Blocked, DefaultDecode< Impl >::cpu, DefaultDecode< Impl >::decodeStatus, DPRINTF, DefaultDecode< Impl >::fromFetch, ArmISA::i, DefaultDecode< Impl >::insts, TimeBuffer< T >::size, DefaultDecode< Impl >::skidBuffer, DefaultDecode< Impl >::Squashing, DefaultDecode< Impl >::toFetch, and DefaultDecode< Impl >::Unblocking.
Referenced by DefaultDecode< Impl >::checkSignalsAndUpdate(), and DefaultDecode< Impl >::decodeInsts().
unsigned DefaultDecode< Impl >::squash | ( | ThreadID | tid | ) |
Squashes due to commit signalling a squash.
Changes status to squashing and clears block/unblock signals as needed.
Definition at line 340 of file decode_impl.hh.
References DefaultDecode< Impl >::Blocked, DefaultDecode< Impl >::decodeStatus, DPRINTF, DefaultDecode< Impl >::fromFetch, FullSystem, ArmISA::i, DefaultDecode< Impl >::insts, TimeBuffer< T >::size, DefaultDecode< Impl >::skidBuffer, DefaultDecode< Impl >::Squashing, DefaultDecode< Impl >::toFetch, and DefaultDecode< Impl >::Unblocking.
void DefaultDecode< Impl >::startupStage |
Definition at line 88 of file decode_impl.hh.
|
inline |
Takes over from another CPU's thread.
Definition at line 131 of file decode.hh.
References DefaultDecode< Impl >::resetStage().
void DefaultDecode< Impl >::tick |
Ticks decode, processing all input signals and decoding as many instructions as possible.
Definition at line 548 of file decode_impl.hh.
References DefaultDecode< Impl >::activeThreads, DefaultDecode< Impl >::checkSignalsAndUpdate(), DefaultDecode< Impl >::cpu, DefaultDecode< Impl >::decode(), DPRINTF, DefaultDecode< Impl >::sortInsts(), DefaultDecode< Impl >::toRenameIndex, DefaultDecode< Impl >::updateStatus(), and DefaultDecode< Impl >::wroteToTimeBuffer.
|
private |
Switches decode to unblocking if the skid buffer is empty, and signals back that decode has unblocked.
Definition at line 269 of file decode_impl.hh.
References DefaultDecode< Impl >::decodeStatus, DPRINTF, DefaultDecode< Impl >::Running, DefaultDecode< Impl >::skidBuffer, DefaultDecode< Impl >::toFetch, and DefaultDecode< Impl >::wroteToTimeBuffer.
Referenced by DefaultDecode< Impl >::checkSignalsAndUpdate(), and DefaultDecode< Impl >::decode().
|
private |
Updates overall decode status based on all of the threads' statuses.
Definition at line 428 of file decode_impl.hh.
References DefaultDecode< Impl >::_status, DefaultDecode< Impl >::Active, DefaultDecode< Impl >::activeThreads, DefaultDecode< Impl >::cpu, DefaultDecode< Impl >::decodeStatus, DPRINTF, DefaultDecode< Impl >::Inactive, and DefaultDecode< Impl >::Unblocking.
Referenced by DefaultDecode< Impl >::tick().
|
private |
Decode status.
Definition at line 93 of file decode.hh.
Referenced by DefaultDecode< Impl >::updateStatus().
|
private |
List of active thread ids.
Definition at line 278 of file decode.hh.
Referenced by DefaultDecode< Impl >::setActiveThreads(), DefaultDecode< Impl >::skidsEmpty(), DefaultDecode< Impl >::tick(), and DefaultDecode< Impl >::updateStatus().
|
private |
SeqNum of Squashing Branch Delay Instruction (used for MIPS)
Definition at line 284 of file decode.hh.
Referenced by DefaultDecode< Impl >::DefaultDecode().
|
private |
Commit to decode delay.
Definition at line 263 of file decode.hh.
Referenced by DefaultDecode< Impl >::setTimeBuffer().
|
private |
CPU interface.
Definition at line 207 of file decode.hh.
Referenced by DefaultDecode< Impl >::squash(), DefaultDecode< Impl >::tick(), and DefaultDecode< Impl >::updateStatus().
|
private |
Decode instruction queue.
Definition at line 226 of file decode.hh.
Referenced by DefaultDecode< Impl >::setDecodeQueue().
|
private |
Per-thread status.
Definition at line 96 of file decode.hh.
Referenced by DefaultDecode< Impl >::block(), DefaultDecode< Impl >::checkSignalsAndUpdate(), DefaultDecode< Impl >::decode(), DefaultDecode< Impl >::decodeInsts(), DefaultDecode< Impl >::DefaultDecode(), DefaultDecode< Impl >::isDrained(), DefaultDecode< Impl >::squash(), DefaultDecode< Impl >::unblock(), and DefaultDecode< Impl >::updateStatus().
|
private |
The width of decode, in instructions.
Definition at line 269 of file decode.hh.
Referenced by DefaultDecode< Impl >::decodeInsts(), and DefaultDecode< Impl >::DefaultDecode().
|
private |
Fetch instruction queue interface.
Definition at line 232 of file decode.hh.
Referenced by DefaultDecode< Impl >::setFetchQueue().
|
private |
Fetch to decode delay.
Definition at line 266 of file decode.hh.
Referenced by DefaultDecode< Impl >::DefaultDecode(), and DefaultDecode< Impl >::setFetchQueue().
|
private |
Wire to get commit's information from backwards time buffer.
Definition at line 219 of file decode.hh.
Referenced by DefaultDecode< Impl >::checkSignalsAndUpdate(), and DefaultDecode< Impl >::setTimeBuffer().
|
private |
Wire to get fetch's output from fetch queue.
Definition at line 235 of file decode.hh.
Referenced by DefaultDecode< Impl >::fetchInstsValid(), DefaultDecode< Impl >::setFetchQueue(), DefaultDecode< Impl >::sortInsts(), and DefaultDecode< Impl >::squash().
|
private |
Wire to get iew's information from backwards time buffer.
Definition at line 216 of file decode.hh.
Referenced by DefaultDecode< Impl >::setTimeBuffer().
|
private |
Wire to get rename's output from backwards time buffer.
Definition at line 213 of file decode.hh.
Referenced by DefaultDecode< Impl >::readStallSignals(), and DefaultDecode< Impl >::setTimeBuffer().
|
private |
IEW to decode delay.
Definition at line 260 of file decode.hh.
Referenced by DefaultDecode< Impl >::setTimeBuffer().
|
private |
Queue of all instructions coming from fetch this cycle.
Definition at line 238 of file decode.hh.
Referenced by DefaultDecode< Impl >::decodeInsts(), DefaultDecode< Impl >::drainSanityCheck(), DefaultDecode< Impl >::isDrained(), DefaultDecode< Impl >::skidInsert(), DefaultDecode< Impl >::sortInsts(), and DefaultDecode< Impl >::squash().
|
private |
number of Active Threads
Definition at line 275 of file decode.hh.
Referenced by DefaultDecode< Impl >::drainSanityCheck(), and DefaultDecode< Impl >::isDrained().
|
private |
Rename to decode delay.
Definition at line 257 of file decode.hh.
Referenced by DefaultDecode< Impl >::setTimeBuffer().
|
private |
Skid buffer between fetch and decode.
Definition at line 241 of file decode.hh.
Referenced by DefaultDecode< Impl >::decodeInsts(), DefaultDecode< Impl >::drainSanityCheck(), DefaultDecode< Impl >::isDrained(), DefaultDecode< Impl >::skidInsert(), DefaultDecode< Impl >::skidsEmpty(), DefaultDecode< Impl >::squash(), and DefaultDecode< Impl >::unblock().
|
private |
Maximum size of the skid buffer.
Definition at line 281 of file decode.hh.
Referenced by DefaultDecode< Impl >::DefaultDecode(), and DefaultDecode< Impl >::skidInsert().
|
private |
Tells when their is a pending delay slot inst.
to send to rename. If there is, then wait squash after the next instruction (used for MIPS).
Definition at line 293 of file decode.hh.
Referenced by DefaultDecode< Impl >::DefaultDecode().
|
private |
Instruction used for squashing branch (used for MIPS)
Definition at line 287 of file decode.hh.
Referenced by DefaultDecode< Impl >::DefaultDecode().
|
private |
Tracks which stages are telling decode to stall.
Definition at line 254 of file decode.hh.
Referenced by DefaultDecode< Impl >::checkStall(), DefaultDecode< Impl >::DefaultDecode(), and DefaultDecode< Impl >::readStallSignals().
|
private |
Referenced by DefaultDecode< Impl >::decode(), and DefaultDecode< Impl >::decodeInsts().
|
private |
Time buffer interface.
Definition at line 210 of file decode.hh.
Referenced by DefaultDecode< Impl >::setTimeBuffer().
|
private |
Wire to write information heading to previous stages.
Definition at line 223 of file decode.hh.
Referenced by DefaultDecode< Impl >::block(), DefaultDecode< Impl >::setTimeBuffer(), DefaultDecode< Impl >::squash(), and DefaultDecode< Impl >::unblock().
|
private |
Wire used to write any information heading to rename.
Definition at line 229 of file decode.hh.
Referenced by DefaultDecode< Impl >::decodeInsts(), and DefaultDecode< Impl >::setDecodeQueue().
|
private |
Index of instructions being sent to rename.
Definition at line 272 of file decode.hh.
Referenced by DefaultDecode< Impl >::decodeInsts(), and DefaultDecode< Impl >::tick().
|
private |
Variable that tracks if decode has written to the time buffer this cycle.
Used to tell CPU if there is activity this cycle.
Definition at line 246 of file decode.hh.
Referenced by DefaultDecode< Impl >::block(), DefaultDecode< Impl >::decodeInsts(), DefaultDecode< Impl >::tick(), and DefaultDecode< Impl >::unblock().