gem5  v20.1.0.0
Classes | Typedefs | Functions | Variables
Minor Namespace Reference

Classes

class  BranchData
 Forward data betwen Execute and Fetch1 carrying change-of-address/stream information. More...
 
class  BubbleIF
 Interface class for data with 'bubble' values. More...
 
class  BubbleTraitsAdaptor
 Pass on call to the element. More...
 
class  BubbleTraitsPtrAdaptor
 Pass on call to the element where the element is a pointer. More...
 
class  Decode
 
class  ExecContext
 ExecContext bears the exec_context interface for Minor. More...
 
class  Execute
 Execute stage. More...
 
class  Fetch1
 A stage responsible for fetching "lines" from memory and passing them to Fetch2. More...
 
class  Fetch2
 This stage receives lines of data from Fetch1, separates them into instructions and passes them to Decode. More...
 
class  ForwardInstData
 Forward flowing data between Fetch2,Decode,Execute carrying a packet of instructions of a width appropriate to the configured stage widths. More...
 
class  ForwardLineData
 Line fetch data in the forward direction. More...
 
class  FUPipeline
 A functional unit configured from a MinorFU object. More...
 
class  InputBuffer
 Like a Queue but with a restricted interface and a setTail function which, when the queue is empty, just takes a reference to the pushed item as the single element. More...
 
class  InstId
 Id for lines and instructions. More...
 
class  Latch
 Wraps a MinorBuffer with Input/Output interfaces to ensure that units within the model can only see the right end of buffers between them. More...
 
class  LSQ
 
class  MinorActivityRecorder
 ActivityRecorder with a Ticked interface. More...
 
class  MinorBuffer
 TimeBuffer with MinorTrace and Named interfaces. More...
 
class  MinorDynInst
 Dynamic instruction for Minor. More...
 
class  MinorStats
 Currently unused stats class. More...
 
class  NoBubbleTraits
 ... More...
 
class  Pipeline
 The constructed pipeline. More...
 
class  Queue
 Wrapper for a queue type to act as a pipeline stage input queue. More...
 
class  QueuedInst
 Container class to box instructions in the FUs to make those queues have correct bubble behaviour when stepped. More...
 
class  ReportIF
 Interface class for data with reporting/tracing facilities. More...
 
class  ReportTraitsAdaptor
 ...ReportTraits are trait classes with the same functionality as ReportIF, but with elements explicitly passed into the report... More...
 
class  ReportTraitsPtrAdaptor
 A similar adaptor but for elements held by pointer ElemType should implement ReportIF. More...
 
class  Reservable
 Base class for space reservation requestable objects. More...
 
class  Scoreboard
 A scoreboard of register dependencies including, for each register: The number of in-flight instructions which will generate a result for this register. More...
 
class  SelfStallingPipeline
 A pipeline simulating class that will stall (not advance when advance() is called) if a non-bubble value lies at the far end of the pipeline. More...
 

Typedefs

typedef SimpleThread MinorThread
 Minor will use the SimpleThread state for now. More...
 
typedef RefCountingPtr< MinorDynInstMinorDynInstPtr
 MinorDynInsts are currently reference counted. More...
 
typedef SelfStallingPipeline< QueuedInst, ReportTraitsAdaptor< QueuedInst > > FUPipelineBase
 Functional units have pipelines which stall when an inst gets to their ends allowing Execute::commit to pick up timing-completed insts when it feels like it. More...
 

Functions

std::ostream & operator<< (std::ostream &os, const InstId &id)
 Print this id in the usual slash-separated format expected by MinorTrace. More...
 
std::ostream & operator<< (std::ostream &os, const MinorDynInst &inst)
 Print a short reference to this instruction. More...
 
static void printRegName (std::ostream &os, const RegId &reg)
 Print a register in the form r<n>, f<n>, m<n>(<name>), z for integer, float, misc and zero registers given an 'architectural register number'. More...
 
unsigned int cyclicIndexInc (unsigned int index, unsigned int cycle_size)
 Increment a cyclic buffer index for indices [0, cycle_size-1]. More...
 
unsigned int cyclicIndexDec (unsigned int index, unsigned int cycle_size)
 Decrement a cyclic buffer index for indices [0, cycle_size-1]. More...
 
std::ostream & operator<< (std::ostream &os, Execute::DrainState state)
 
std::ostream & operator<< (std::ostream &os, Fetch1::IcacheState state)
 
std::ostream & operator<< (std::ostream &os, Fetch1::FetchState state)
 
std::ostream & operator<< (std::ostream &os, LSQ::AddrRangeCoverage coverage)
 
std::ostream & operator<< (std::ostream &os, LSQ::LSQRequest::LSQRequestState state)
 
PacketPtr makePacketForRequest (const RequestPtr &request, bool isLoad, Packet::SenderState *sender_state=NULL, PacketDataPtr data=NULL)
 Make a suitable packet for the given request. More...
 
std::ostream & operator<< (std::ostream &os, LSQ::MemoryState state)
 
std::ostream & operator<< (std::ostream &os, BranchData::Reason reason)
 Print a branch reason enum. More...
 
std::ostream & operator<< (std::ostream &os, const BranchData &branch)
 Print BranchData contents in a format suitable for DPRINTF comments, not for MinorTrace. More...
 
static RegId flattenRegIndex (const RegId &reg, ThreadContext *thread_context)
 Flatten a RegId, irrespective of what reg type it's pointing to. More...
 

Variables

const unsigned int MAX_FORWARD_INSTS = 16
 Maximum number of instructions that can be carried by the pipeline. More...
 

Detailed Description

Minor contains all the definitions within the MinorCPU apart from the CPU class itself

Typedef Documentation

◆ FUPipelineBase

Functional units have pipelines which stall when an inst gets to their ends allowing Execute::commit to pick up timing-completed insts when it feels like it.

Definition at line 219 of file func_unit.hh.

◆ MinorDynInstPtr

MinorDynInsts are currently reference counted.

Definition at line 61 of file dyn_inst.hh.

◆ MinorThread

Minor will use the SimpleThread state for now.

Definition at line 58 of file cpu.hh.

Function Documentation

◆ cyclicIndexDec()

unsigned int Minor::cyclicIndexDec ( unsigned int  index,
unsigned int  cycle_size 
)
inline

Decrement a cyclic buffer index for indices [0, cycle_size-1].

Definition at line 532 of file execute.cc.

References MipsISA::index.

◆ cyclicIndexInc()

unsigned int Minor::cyclicIndexInc ( unsigned int  index,
unsigned int  cycle_size 
)
inline

Increment a cyclic buffer index for indices [0, cycle_size-1].

Definition at line 520 of file execute.cc.

References MipsISA::index.

◆ flattenRegIndex()

static RegId Minor::flattenRegIndex ( const RegId reg,
ThreadContext thread_context 
)
static

Flatten a RegId, irrespective of what reg type it's pointing to.

Definition at line 102 of file scoreboard.cc.

References ThreadContext::flattenRegId(), and X86ISA::reg.

Referenced by Minor::Scoreboard::canInstIssue(), Minor::Scoreboard::execSeqNumToWaitFor(), and Minor::Scoreboard::markupInstDests().

◆ makePacketForRequest()

PacketPtr Minor::makePacketForRequest ( const RequestPtr request,
bool  isLoad,
Packet::SenderState sender_state = NULL,
PacketDataPtr  data = NULL 
)

Make a suitable packet for the given request.

If the request is a store, data will be the payload data. If sender_state is NULL, it won't be pushed into the packet as senderState

Definition at line 1691 of file lsq.cc.

References Packet::allocate(), Packet::createRead(), Packet::createWrite(), data, Packet::dataDynamic(), and Packet::pushSenderState().

Referenced by Minor::LSQ::SplitDataRequest::makeFragmentPackets(), and Minor::LSQ::LSQRequest::makePacket().

◆ operator<<() [1/10]

std::ostream & Minor::operator<< ( std::ostream &  os,
BranchData::Reason  reason 
)

◆ operator<<() [2/10]

std::ostream & Minor::operator<< ( std::ostream &  os,
const BranchData branch 
)

Print BranchData contents in a format suitable for DPRINTF comments, not for MinorTrace.

Definition at line 151 of file pipe_data.cc.

References Minor::BranchData::inst, Minor::BranchData::newPredictionSeqNum, Minor::BranchData::newStreamSeqNum, X86ISA::os, Minor::BranchData::reason, and Minor::BranchData::target.

◆ operator<<() [3/10]

std::ostream & Minor::operator<< ( std::ostream &  os,
const InstId id 
)

Print this id in the usual slash-separated format expected by MinorTrace.

Definition at line 61 of file dyn_inst.cc.

References X86ISA::os.

◆ operator<<() [4/10]

std::ostream & Minor::operator<< ( std::ostream &  os,
const MinorDynInst inst 
)

Print a short reference to this instruction.

Print a summary of the instruction.

'-' for a bubble and a series of '/' separated sequence numbers for other instructions. The sequence numbers will be in the order: stream, prediction, line, fetch, exec with exec absent if it is 0. This is used by MinorTrace.

Definition at line 116 of file dyn_inst.cc.

References Minor::MinorDynInst::fault, StaticInst::getName(), Minor::MinorDynInst::id, Minor::MinorDynInst::isFault(), NoFault, X86ISA::os, Minor::MinorDynInst::pc, Minor::MinorDynInst::staticInst, and Minor::MinorDynInst::translationFault.

◆ operator<<() [5/10]

std::ostream& Minor::operator<< ( std::ostream &  os,
Execute::DrainState  state 
)

◆ operator<<() [6/10]

std::ostream& Minor::operator<< ( std::ostream &  os,
Fetch1::FetchState  state 
)

◆ operator<<() [7/10]

std::ostream& Minor::operator<< ( std::ostream &  os,
Fetch1::IcacheState  state 
)

◆ operator<<() [8/10]

std::ostream& Minor::operator<< ( std::ostream &  os,
LSQ::AddrRangeCoverage  coverage 
)

◆ operator<<() [9/10]

std::ostream& Minor::operator<< ( std::ostream &  os,
LSQ::LSQRequest::LSQRequestState  state 
)

◆ operator<<() [10/10]

std::ostream& Minor::operator<< ( std::ostream &  os,
LSQ::MemoryState  state 
)

◆ printRegName()

static void Minor::printRegName ( std::ostream &  os,
const RegId reg 
)
static

Print a register in the form r<n>, f<n>, m<n>(<name>), z for integer, float, misc and zero registers given an 'architectural register number'.

Definition at line 138 of file dyn_inst.cc.

References CCRegClass, FloatRegClass, IntRegClass, MiscRegClass, ArmISA::miscRegName, X86ISA::os, panic, X86ISA::reg, VecElemClass, and VecRegClass.

Referenced by Minor::MinorDynInst::minorTraceInst().

Variable Documentation

◆ MAX_FORWARD_INSTS

const unsigned int Minor::MAX_FORWARD_INSTS = 16

Maximum number of instructions that can be carried by the pipeline.

Definition at line 248 of file pipe_data.hh.

Referenced by Minor::ForwardInstData::resize().


Generated on Wed Sep 30 2020 14:03:06 for gem5 by doxygen 1.8.17