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.
 
PortSet * getPortSet ()
 Return the port set.
 
EventSet * getEventSet ()
 Return the event set.
 
StatisticSet * getStatisticSet ()
 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 Clock * getClock () const
 
Scheduler * getScheduler (const bool must_exist=true) const
 
std::string getName () const
 
TreeNode * getContainer ()
 Gets the TreeNode (container) for this resource (if any)
 
const TreeNode * getContainer () const
 Gets the TreeNode (container) for this resource (if any)
 
ResourceContainer * getResourceContainer ()
 Gets the ResourceContainer for this resource (if any)
 
const ResourceContainer * getResourceContainer () 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.
 
Resource & operator= (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

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

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: