47 #ifndef __CPU_MINOR_PIPELINE_HH__
48 #define __CPU_MINOR_PIPELINE_HH__
56 #include "params/MinorCPU.hh"
131 cpu.ppCycles->notify(delta);
Cycles is a wrapper class for representing cycle counts, i.e.
Top level definition of the Minor in-order CPU model.
Latch< ForwardInstData > f2ToD
Latch< BranchData > f2ToF1
All the fun of executing instructions from Decode and sending branch/new instruction stream info...
ActivityRecoder from cpu/activity.h wrapped to provide evaluate and minorTrace.
ActivityRecorder with a Ticked interface.
MinorCPU::MinorCPUPort & getInstPort()
Functions below here are BaseCPU operations passed on to pipeline stages.
Fetch2 receives lines of data from Fetch1, separates them into instructions and passes them to Decode...
MinorActivityRecorder * getActivityRecorder()
To give the activity recorder to the CPU.
MinorCPU::MinorCPUPort & getDataPort()
Return the DcachePort belonging to Execute for the CPU.
Latch< ForwardInstData > dToE
Latch< BranchData > eToF1
bool isDrained()
Test to see if the CPU is drained.
Latch< ForwardLineData > f1ToF2
Decode collects macro-ops from Fetch2 and splits them into micro-ops passed to Execute.
MinorActivityRecorder activityRecorder
Activity recording for the pipeline.
Ticked attaches gem5's event queue/scheduler to evaluate calls and provides a start/stop interface to...
Provide a non-protected base class for Minor's Ports as derived classes are created by Fetch1 and Exe...
bool needToSignalDrained
True after drain is called but draining isn't complete.
bool drain()
Try to drain the CPU.
This stage receives lines of data from Fetch1, separates them into instructions and passes them to De...
StageId
Enumerated ids of the 'stages' for the activity recorder.
A stage responsible for fetching "lines" from memory and passing them to Fetch2.
void countCycles(Cycles delta) override
Callback to handle cycle statistics and probes.
Fetch1 is responsible for fetching "lines" from memory and passing them to Fetch2.
void wakeupFetch(ThreadID tid)
Wake up the Fetch unit.
int16_t ThreadID
Thread index/ID type.
Base classes for ClockedObjects which have evaluate functions to look like clock ticking operations...
Pipeline(MinorCPU &cpu_, MinorCPUParams ¶ms)
bool allow_idling
Allow cycles to be skipped when the pipeline is idle.
Wraps a MinorBuffer with Input/Output interfaces to ensure that units within the model can only see t...
MinorCPU is an in-order CPU model with four fixed pipeline stages:
void evaluate() override
A custom evaluate allows report in the right place (between stages and pipeline advance) ...
The constructed pipeline.