gem5 v24.0.0.0
Loading...
Searching...
No Matches
gem5::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...
 
struct  MinorStats
 Currently unused stats class. More...
 
class  NoBubbleTraits
 ... BubbleTraits are trait classes to add BubbleIF interface functionality to templates which process elements which don't necessarily implement BubbleIF themselves 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... functions. 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.
 
typedef RefCountingPtr< MinorDynInstMinorDynInstPtr
 MinorDynInsts are currently reference counted.
 
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.
 

Functions

std::ostream & operator<< (std::ostream &os, const InstId &id)
 Print this id in the usual slash-separated format expected by MinorTrace.
 
std::ostream & operator<< (std::ostream &os, const MinorDynInst &inst)
 Print a short reference to this instruction.
 
static void printRegName (std::ostream &os, const RegId &reg)
 Print a register in the form r<n>, f<n>, m<n>(<name>) for integer, float, and misc given an 'architectural register number'.
 
unsigned int cyclicIndexInc (unsigned int index, unsigned int cycle_size)
 Increment a cyclic buffer index for indices [0, cycle_size-1].
 
unsigned int cyclicIndexDec (unsigned int index, unsigned int cycle_size)
 Decrement a cyclic buffer index for indices [0, cycle_size-1].
 
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.
 
std::ostream & operator<< (std::ostream &os, LSQ::MemoryState state)
 
std::ostream & operator<< (std::ostream &os, BranchData::Reason reason)
 Print a branch reason enum.
 
std::ostream & operator<< (std::ostream &os, const BranchData &branch)
 Print BranchData contents in a format suitable for DPRINTF comments, not for MinorTrace.
 
template<class ... Args>
void minorTrace (const char *fmt, Args ...args)
 DPRINTFN for MinorTrace reporting.
 
template<class ... Args>
void minorInst (const Named &named, const char *fmt, Args ...args)
 DPRINTFN for MinorTrace MinorInst line reporting.
 
template<class ... Args>
void minorLine (const Named &named, const char *fmt, Args ...args)
 DPRINTFN for MinorTrace MinorLine line reporting.
 

Variables

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

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 229 of file func_unit.hh.

◆ MinorDynInstPtr

MinorDynInsts are currently reference counted.

Definition at line 71 of file dyn_inst.hh.

◆ MinorThread

Minor will use the SimpleThread state for now.

Definition at line 67 of file cpu.hh.

Function Documentation

◆ cyclicIndexDec()

unsigned int gem5::minor::cyclicIndexDec ( unsigned int index,
unsigned int cycle_size )
inline

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

Definition at line 536 of file execute.cc.

References gem5::MipsISA::index.

◆ cyclicIndexInc()

unsigned int gem5::minor::cyclicIndexInc ( unsigned int index,
unsigned int cycle_size )
inline

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

Definition at line 524 of file execute.cc.

References gem5::MipsISA::index.

◆ makePacketForRequest()

PacketPtr gem5::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 1696 of file lsq.cc.

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

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

◆ minorInst()

template<class ... Args>
void gem5::minor::minorInst ( const Named & named,
const char * fmt,
Args ... args )
inline

DPRINTFN for MinorTrace MinorInst line reporting.

Definition at line 74 of file trace.hh.

References DPRINTFS.

Referenced by gem5::minor::MinorDynInst::minorTraceInst().

◆ minorLine()

template<class ... Args>
void gem5::minor::minorLine ( const Named & named,
const char * fmt,
Args ... args )
inline

DPRINTFN for MinorTrace MinorLine line reporting.

Definition at line 83 of file trace.hh.

References DPRINTFS.

Referenced by gem5::minor::Fetch1::minorTraceResponseLine().

◆ minorTrace()

◆ operator<<() [1/10]

◆ operator<<() [2/10]

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

◆ operator<<() [3/10]

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

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

Definition at line 62 of file dyn_inst.cc.

References gem5::X86ISA::os.

◆ operator<<() [4/10]

std::ostream & gem5::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 112 of file dyn_inst.cc.

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

◆ operator<<() [5/10]

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

Definition at line 1793 of file execute.cc.

◆ operator<<() [6/10]

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

Definition at line 468 of file fetch1.cc.

◆ operator<<() [7/10]

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

Definition at line 210 of file fetch1.cc.

◆ operator<<() [8/10]

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

Definition at line 193 of file lsq.cc.

◆ operator<<() [9/10]

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

Definition at line 213 of file lsq.cc.

◆ operator<<() [10/10]

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

Definition at line 1744 of file lsq.cc.

◆ printRegName()

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

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

Definition at line 140 of file dyn_inst.cc.

References gem5::CCRegClass, gem5::FloatRegClass, gem5::IntRegClass, gem5::InvalidRegClass, gem5::MiscRegClass, gem5::X86ISA::os, panic, gem5::X86ISA::reg, gem5::VecElemClass, and gem5::VecRegClass.

Referenced by gem5::minor::MinorDynInst::minorTraceInst().

Variable Documentation

◆ MAX_FORWARD_INSTS

const unsigned int gem5::minor::MAX_FORWARD_INSTS = 16

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

Definition at line 278 of file pipe_data.hh.

Referenced by gem5::minor::ForwardInstData::resize().


Generated on Tue Jun 18 2024 16:24:19 for gem5 by doxygen 1.11.0