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