46 #ifndef __CPU_MINOR_SCOREBOARD_HH__ 47 #define __CPU_MINOR_SCOREBOARD_HH__ 71 typedef unsigned short int Index;
100 numResults(numRegs, 0),
101 numUnpredictableResults(numRegs, 0),
102 fuIndices(numRegs, 0),
103 returnCycle(numRegs,
Cycles(0)),
104 writingInst(numRegs, 0)
std::vector< Index > numUnpredictableResults
Count of the number of results which can't be predicted.
Cycles is a wrapper class for representing cycle counts, i.e.
unsigned short int Index
Type to use when indexing numResults.
Minor contains all the definitions within the MinorCPU apart from the CPU class itself.
ThreadContext is the external interface to all thread state for anything outside of the CPU...
This file contains miscellaneous classes and functions for formatting general trace information and a...
std::vector< int > fuIndices
Index of the FU generating this result.
std::vector< InstSeqNum > writingInst
The execute sequence number of the most recent inst to generate this register value.
void clearInstDests(MinorDynInstPtr inst, bool clear_unpredictable)
Clear down the dependencies for this instruction.
void markupInstDests(MinorDynInstPtr inst, Cycles retire_time, ThreadContext *thread_context, bool mark_unpredictable)
Mark up an instruction's effects by incrementing numResults counts.
Scoreboard(const std::string &name)
void minorTrace() const
MinorTraceIF interface.
bool canInstIssue(MinorDynInstPtr inst, const std::vector< Cycles > *src_reg_relative_latencies, const std::vector< bool > *cant_forward_from_fu_indices, Cycles now, ThreadContext *thread_context)
Can this instruction be issued.
InstSeqNum execSeqNumToWaitFor(MinorDynInstPtr inst, ThreadContext *thread_context)
Returns the exec sequence number of the most recent inst on which the given inst depends.
const std::string & name() const
std::vector< Index > numResults
Count of the number of in-flight instructions that have results for each register.
A scoreboard of register dependencies including, for each register: The number of in-flight instructi...
Top level definition of the Minor in-order CPU model.
The dynamic instruction and instruction/line id (sequence numbers) definition for Minor...
Register ID: describe an architectural register with its class and index.
constexpr unsigned NumVecElemPerVecReg
bool findIndex(const RegId ®, Index &scoreboard_index)
Sets scoreboard_index to the index into numResults of the given register index.
std::vector< Cycles > returnCycle
The estimated cycle number that the result will be presented.
const unsigned numRegs
The number of registers in the Scoreboard.