The Sparta Modeling Framework
Loading...
Searching...
No Matches
core_example::FlushManager Class Reference

Class used by performance models for signaling a flushing event across blocks. More...

#include <FlushManager.hpp>

Inheritance diagram for core_example::FlushManager:
Collaboration diagram for core_example::FlushManager:

Classes

class  FlushManagerParameters
 

Public Types

typedef uint64_t FlushingCriteria
 

Public Member Functions

 FlushManager (sparta::TreeNode *rc, const FlushManagerParameters *params)
 Create a FlushManager in the tree.
 
- Public Member Functions inherited from sparta::Unit
 Unit (TreeNode *rc, const std::string &name)
 Construct unit with a ResouceContainer.
 
 Unit (TreeNode *rc)
 Construct unit with a ResouceContainer.
 
virtual ~Unit ()
 Destroy!
 
void setAutoPrecedence (bool auto_p)
 Turn off auto-precedence.
 
PortSetgetPortSet ()
 Return the port set.
 
EventSetgetEventSet ()
 Return the event set.
 
StatisticSetgetStatisticSet ()
 Return the stat set.
 
- Public Member Functions inherited from sparta::Resource
 Resource (TreeNode *rc)
 Construct resource with a resource container.
 
 Resource (TreeNode *rc, const std::string &name)
 Construct resource with a specific name and resource container.
 
 Resource (const std::string &name, const Clock *clk)
 Construct a Resource with the given name and clock having NO association with a resource container. This constructor is reserved for free-standing resources owned by other resources (not containers [TreeNodes])
 
virtual ~Resource ()
 Destroy!
 
const ClockgetClock () const
 
SchedulergetScheduler (const bool must_exist=true) const
 
std::string getName () const
 
TreeNodegetContainer ()
 Gets the TreeNode (container) for this resource (if any)
 
const TreeNodegetContainer () const
 Gets the TreeNode (container) for this resource (if any)
 
ResourceContainergetResourceContainer ()
 Gets the ResourceContainer for this resource (if any)
 
const ResourceContainergetResourceContainer () const
 Gets the ResourceContainer for this resource (if any)
 
virtual void addLink (TreeNode *node, const std::string &label)
 
virtual void activateLink (const std::string &label)
 
 Resource (const Resource &)=delete
 Disallow copying.
 
Resourceoperator= (const Resource &)=delete
 

Static Public Attributes

static constexpr char name [] = "flushmanager"
 
- Static Public Attributes inherited from sparta::Unit
static constexpr const char * INFO_LOG = "info"
 
static constexpr const char * WARN_LOG = log::categories::WARN_STR
 
static constexpr const char * DEBUG_LOG = log::categories::DEBUG_STR
 

Additional Inherited Members

- Protected Member Functions inherited from sparta::Unit
virtual void onBindTreeEarly_ () override
 
virtual void onBindTreeLate_ () override
 Dump a dot.
 
- Protected Attributes inherited from sparta::Unit
sparta::PortSet unit_port_set_
 The Unit's Ports.
 
sparta::EventSet unit_event_set_
 The Unit's event set.
 
sparta::StatisticSet unit_stat_set_
 The Unit's statistic set.
 
log::MessageSource info_logger_
 Default info logger.
 
log::MessageSource warn_logger_
 Default warn logger.
 
log::MessageSource debug_logger_
 Default debug logger.
 

Detailed Description

Class used by performance models for signaling a flushing event across blocks.

The usage is pretty simple. Create a FlushManager within the topology and have individual units bind their DataInPorts to the appropriate flush ports (based on type [reflected in the name]).

When a Flush is instigated on the Tick phase, on the phase sparta::SchedulingPhase::Flush the signal will be delivered to the unit (+1 cycle or more later). The unit will be given a criteria for flushing that it can use to determine what components it needs to remove from its internal data structures.

Definition at line 38 of file FlushManager.hpp.

Member Typedef Documentation

◆ FlushingCriteria

typedef uint64_t core_example::FlushManager::FlushingCriteria

Definition at line 41 of file FlushManager.hpp.

Constructor & Destructor Documentation

◆ FlushManager()

core_example::FlushManager::FlushManager ( sparta::TreeNode rc,
const FlushManagerParameters params 
)
inline

Create a FlushManager in the tree.

Parameters
rcThe parent resource tree node
paramsPointer to the flush manager parameters

Definition at line 58 of file FlushManager.hpp.

Member Data Documentation

◆ name

constexpr char core_example::FlushManager::name[] = "flushmanager"
staticconstexpr

Definition at line 42 of file FlushManager.hpp.


The documentation for this class was generated from the following file: