gem5  v22.1.0.0
Classes | Typedefs | Functions | Variables
gem5::minor Namespace Reference

Classes

class  MinorActivityRecorder
 ActivityRecorder with a Ticked interface. More...
 
class  ReportIF
 Interface class for data with reporting/tracing facilities. More...
 
class  BubbleIF
 Interface class for data with 'bubble' values. 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  NoBubbleTraits
 ... 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  MinorBuffer
 TimeBuffer with MinorTrace and Named interfaces. 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  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...
 
class  Reservable
 Base class for space reservation requestable objects. More...
 
class  Queue
 Wrapper for a queue type to act as a pipeline stage input queue. 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  Decode
 
class  InstId
 Id for lines and instructions. More...
 
class  MinorDynInst
 Dynamic instruction for Minor. More...
 
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  QueuedInst
 Container class to box instructions in the FUs to make those queues have correct bubble behaviour when stepped. More...
 
class  FUPipeline
 A functional unit configured from a MinorFU object. More...
 
class  LSQ
 
class  BranchData
 Forward data betwen Execute and Fetch1 carrying change-of-address/stream information. More...
 
class  ForwardLineData
 Line fetch data in the forward direction. 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  Pipeline
 The constructed pipeline. 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...
 
struct  MinorStats
 Currently unused stats class. 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>) 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...
 
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 72 of file dyn_inst.hh.

◆ MinorThread

Minor will use the SimpleThread state for now.

Definition at line 68 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 537 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 525 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 1697 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 63 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 113 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 1831 of file execute.cc.

◆ operator<<() [6/10]

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

Definition at line 469 of file fetch1.cc.

◆ operator<<() [7/10]

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

Definition at line 211 of file fetch1.cc.

◆ operator<<() [8/10]

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

Definition at line 194 of file lsq.cc.

◆ operator<<() [9/10]

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

Definition at line 214 of file lsq.cc.

◆ operator<<() [10/10]

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

Definition at line 1745 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 136 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 279 of file pipe_data.hh.

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


Generated on Wed Dec 21 2022 10:24:16 for gem5 by doxygen 1.9.1