gem5  v21.1.0.2
Classes | Typedefs | Functions | Variables
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
 ... 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, const BaseISA::RegClasses &reg_classes)
 Print a register in the form r<n>, f<n>, m<n>(<name>) for integer, float, and misc 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...
 
template<class ... Args>
void minorTrace (const char *fmt, Args ...args)
 DPRINTFN for MinorTrace reporting. More...
 
template<class ... Args>
void minorInst (const Named &named, const char *fmt, Args ...args)
 DPRINTFN for MinorTrace MinorInst line reporting. More...
 
template<class ... Args>
void minorLine (const Named &named, const char *fmt, Args ...args)
 DPRINTFN for MinorTrace MinorLine line reporting. More...
 

Variables

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

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

◆ MinorDynInstPtr

MinorDynInsts are currently reference counted.

Definition at line 69 of file dyn_inst.hh.

◆ MinorThread

Minor will use the SimpleThread state for now.

Definition at line 65 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 540 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 528 of file execute.cc.

References gem5::MipsISA::index.

◆ flattenRegIndex()

static RegId gem5::minor::flattenRegIndex ( const RegId reg,
ThreadContext thread_context 
)
static

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

Definition at line 96 of file scoreboard.cc.

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

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

◆ 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 1693 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 75 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 84 of file trace.hh.

References DPRINTFS.

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

◆ minorTrace()

template<class ... Args>
void gem5::minor::minorTrace ( const char *  fmt,
Args ...  args 
)
inline

◆ operator<<() [1/10]

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

◆ 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 65 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 120 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 
)

◆ operator<<() [6/10]

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

◆ operator<<() [7/10]

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

◆ operator<<() [8/10]

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

◆ operator<<() [9/10]

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

◆ operator<<() [10/10]

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

◆ printRegName()

static void gem5::minor::printRegName ( std::ostream &  os,
const RegId reg,
const BaseISA::RegClasses reg_classes 
)
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 142 of file dyn_inst.cc.

References gem5::CCRegClass, gem5::FloatRegClass, gem5::IntRegClass, gem5::MiscRegClass, gem5::ArmISA::miscRegName, 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 252 of file pipe_data.hh.

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


Generated on Tue Sep 21 2021 12:31:29 for gem5 by doxygen 1.8.17