26#include "CoreTypes.hpp"
27#include "FlushManager.hpp"
46 PARAMETER(
bool, ignore_inst_execute_time,
false,
47 "Ignore the instruction's execute time, "
48 "use execute_time param instead")
49 PARAMETER(uint32_t, execute_time, 1,
"Time for execution")
50 PARAMETER(uint32_t, scheduler_size, 8,
"Scheduler queue size")
51 PARAMETER(
bool, in_order_issue,
true,
"Force in order issue")
75 typedef std::list<ExampleInstPtr> ReadyQueue;
76 ReadyQueue ready_queue_;
79 bool unit_busy_ =
false;
81 const bool ignore_inst_execute_time_ =
false;
82 const uint32_t execute_time_;
83 const uint32_t scheduler_size_;
84 const bool in_order_issue_;
86 ready_queue_collector_ {
getContainer(),
"scheduler_queue",
87 &ready_queue_, scheduler_size_};
109 void sendInitialCredits_();
113 void getInstsFromDispatch_(
const ExampleInstPtr&);
116 void completeInst_(
const ExampleInstPtr&);
119 void flushInst_(
const FlushManager::FlushingCriteria & criteria);
File that defines the Clock class.
Implementation of the Collectable class that allows a user to collect an object into an pipeViewer pi...
File that defines Data[In,Out]Port<DataT>
File that defines the EventSet class.
A set of sparta::Parameters per sparta::ResourceTreeNode.
#define PARAMETER(type, name, def, doc)
Parameter declaration.
File that defines the PortSet class.
File that defines the Port base class.
File that defines the SignalInPort.
#define CREATE_SPARTA_HANDLER_WITH_DATA(clname, meth, dataT)
#define CREATE_SPARTA_HANDLER(clname, meth)
File that defines the StartupEvent class.
Basic Node framework in sparta device tree composite pattern.
File that defines the UniqueEvent class.
File that defines the Unit class, a common grouping of sets and loggers.
Parameters for Execute model.
static const char name[]
Name of this resource. Required by sparta::UnitFactory.
@ COUNT_NORMAL
Counter counts the number of times something happens like one would expect. This is a weakly monotoni...
Represents a counter of type counter_type (uint64_t). 2 and greater than 0 with a ceiling specified....
DataInPort receives data from sender using a DataOutPort.
DataOutPort is used for transferring any data to another module.
Generic container of Parameters.
Class to schedule a Scheduleable in the future with a payload, typed on both the data type and the sc...
TreeNode * getContainer()
Gets the TreeNode (container) for this resource (if any)
std::string getName() const
Node in a composite tree representing a sparta Tree item.
A type of Event that uniquely schedules itself on the schedule within a single time quantum....
The is the base class for user defined blocks in simulation.
sparta::EventSet unit_event_set_
The Unit's event set.
sparta::PortSet unit_port_set_
The Unit's Ports.
StatisticSet * getStatisticSet()
Return the stat set.
Class used to either manually or auto-collect an Annotation String object in a pipeline database.
A collector of any iterable type (std::vector, std::list, sparta::Buffer, etc)
@ Flush
Phase where flushing of pipelines, etc can occur.