SST  7.1.0
StructuralSimulationToolkit
SST::Interfaces::SimpleMem Class Referenceabstract

Simplified, generic interface to Memory models. More...

#include <simpleMem.h>

Inheritance diagram for SST::Interfaces::SimpleMem:
SST::SubComponent SST::Module SST::BaseComponent

Data Structures

class  Handler
 Event Handler class with user-data argument. More...
 
class  Handler< classT, void >
 Event Handler class without user-data. More...
 
class  HandlerBase
 Functor classes for Clock handling. More...
 
class  Request
 Represents both memory requests and responses. More...
 

Public Types

typedef uint64_t Addr
 All Addresses can be 64-bit.
 

Public Member Functions

 SimpleMem (SST::Component *comp, Params &UNUSED(params))
 Constructor, designed to be used via 'loadSubComponent'. More...
 
virtual bool initialize (const std::string &linkName, HandlerBase *handler=NULL)=0
 Second half of building the interface. More...
 
virtual void sendInitData (Request *req)=0
 Sends a memory-based request during the init() phase.
 
virtual void sendInitData (SST::Event *ev)
 Sends a generic Event during the init() phase (Mostly acts as a passthrough) More...
 
virtual SST::EventrecvInitData ()
 Receive any data during the init() phase. More...
 
virtual SST::LinkgetLink (void) const =0
 Returns a handle to the underlying SST::Link.
 
virtual void sendRequest (Request *req)=0
 Send a Request to the other side of the link.
 
virtual RequestrecvResponse (void)=0
 Receive a Request response from the side of the link. More...
 
- Public Member Functions inherited from SST::SubComponent
 SubComponent (Component *parent)
 
virtual void init (unsigned int UNUSED(phase)) override
 Used during the init phase. More...
 
virtual void setup () override
 Called after all components have been constructed and inialization has completed, but before simulation time has begun. More...
 
virtual void finish () override
 Called after simulation completes, but before objects are destroyed. More...
 
- Public Member Functions inherited from SST::BaseComponent
ComponentId_t getId () const
 Returns unique component ID.
 
virtual void emergencyShutdown (void)
 Called when SIGINT or SIGTERM has been seen. More...
 
const std::string & getName () const
 Returns component Name.
 
virtual bool Status ()
 Currently unused function.
 
virtual void printStatus (Output &UNUSED(out))
 Called by the Simulation to request that the component print it's current status. More...
 
bool isPortConnected (const std::string &name) const
 Determine if a port name is connected to any links.
 
LinkconfigureLink (std::string name, TimeConverter *time_base, Event::HandlerBase *handler=NULL)
 Configure a Link. More...
 
LinkconfigureLink (std::string name, std::string time_base, Event::HandlerBase *handler=NULL)
 Configure a Link. More...
 
LinkconfigureLink (std::string name, Event::HandlerBase *handler=NULL)
 Configure a Link. More...
 
LinkconfigureSelfLink (std::string name, TimeConverter *time_base, Event::HandlerBase *handler=NULL)
 Configure a SelfLink (Loopback link) More...
 
LinkconfigureSelfLink (std::string name, std::string time_base, Event::HandlerBase *handler=NULL)
 Configure a SelfLink (Loopback link) More...
 
LinkconfigureSelfLink (std::string name, Event::HandlerBase *handler=NULL)
 Configure a SelfLink (Loopback link) More...
 
TimeConverterregisterClock (std::string freq, Clock::HandlerBase *handler, bool regAll=true)
 Registers a clock for this component. More...
 
TimeConverterregisterClock (const UnitAlgebra &freq, Clock::HandlerBase *handler, bool regAll=true)
 
void unregisterClock (TimeConverter *tc, Clock::HandlerBase *handler)
 Removes a clock handler from the component.
 
Cycle_t reregisterClock (TimeConverter *freq, Clock::HandlerBase *handler)
 Reactivates an existing Clock and Handler. More...
 
Cycle_t getNextClockCycle (TimeConverter *freq)
 Returns the next Cycle that the TimeConverter would fire.
 
TimeConverterregisterOneShot (std::string timeDelay, OneShot::HandlerBase *handler)
 Registers a OneShot event for this component. More...
 
TimeConverterregisterOneShot (const UnitAlgebra &timeDelay, OneShot::HandlerBase *handler)
 
TimeConverterregisterTimeBase (std::string base, bool regAll=true)
 Registers a default time base for the component and optionally sets the the component's links to that timebase. More...
 
TimeConvertergetTimeConverter (const std::string &base)
 
TimeConvertergetTimeConverter (const UnitAlgebra &base)
 
SimTime_t getCurrentSimTime (TimeConverter *tc) const
 return the time since the simulation began in units specified by the parameter. More...
 
SimTime_t getCurrentSimTime () const
 return the time since the simulation began in the default timebase
 
SimTime_t getCurrentSimTime (std::string base)
 return the time since the simulation began in timebase specified More...
 
SimTime_t getCurrentSimTimeNano () const
 Utility function to return the time since the simulation began in nanoseconds.
 
SimTime_t getCurrentSimTimeMicro () const
 Utility function to return the time since the simulation began in microseconds.
 
SimTime_t getCurrentSimTimeMilli () const
 Utility function to return the time since the simulation began in milliseconds.
 
template<typename T >
Statistic< T > * registerStatistic (std::string statName, std::string statSubId="")
 Registers a statistic. More...
 
template<typename T >
Statistic< T > * registerStatistic (const char *statName, const char *statSubId="")
 
ModuleloadModule (std::string type, Params &params)
 Loads a module from an element Library. More...
 
ModuleloadModuleWithComponent (std::string type, Component *comp, Params &params)
 Loads a module from an element Library. More...
 
SubComponentloadSubComponent (std::string type, Component *comp, Params &params)
 Loads a SubComponent from an element Library. More...
 
SubComponentloadNamedSubComponent (std::string name)
 
SubComponentloadNamedSubComponent (std::string name, Params &params)
 
SubComponentSlotInfogetSubComponentSlotInfo (std::string name, bool fatalOnEmptyIndex=false)
 
const std::vector< double > & getCoordinates () const
 Retrieve the X,Y,Z coordinates of this component.
 

Additional Inherited Members

- Protected Member Functions inherited from SST::SubComponent
ComponentgetTrueComponent () const final override
 
BaseComponentgetStatisticOwner () const final override
 Returns self if Component If sub-component, returns self if a "modern" subcomponent otherwise, return base component.
 
SubComponentloadSubComponent (std::string type, Params &params)
 
virtual bool doesComponentInfoStatisticExist (const std::string &statisticName) const final override
 
- Protected Member Functions inherited from SST::BaseComponent
void setDefaultTimeBase (TimeConverter *tc)
 Manually set the default detaulTimeBase.
 
LinkselfLink (std::string name, Event::HandlerBase *handler=NULL)
 Creates a new selfLink.
 
SharedRegiongetLocalSharedRegion (const std::string &key, size_t size)
 Find a lookup table.
 
SharedRegiongetGlobalSharedRegion (const std::string &key, size_t size, SharedRegionMerger *merger=NULL)
 
SimulationgetSimulation () const
 
uint8_t getComponentInfoStatisticEnableLevel (const std::string &statisticName) const
 
std::string getComponentInfoStatisticUnits (const std::string &statisticName) const
 
- Protected Attributes inherited from SST::SubComponent
Component *const parent
 
- Protected Attributes inherited from SST::BaseComponent
TimeConverterdefaultTimeBase
 Timebase used if no other timebase is specified for calls like BaseComponent::getCurrentSimTime(). More...
 
ComponentInfomy_info
 
Simulationsim
 
ComponentInfocurrentlyLoadingSubComponent
 

Detailed Description

Simplified, generic interface to Memory models.

Constructor & Destructor Documentation

◆ SimpleMem()

SST::Interfaces::SimpleMem::SimpleMem ( SST::Component comp,
Params UNUSEDparams 
)
inline

Constructor, designed to be used via 'loadSubComponent'.

References initialize(), and sendInitData().

Member Function Documentation

◆ initialize()

virtual bool SST::Interfaces::SimpleMem::initialize ( const std::string &  linkName,
HandlerBase handler = NULL 
)
pure virtual

Second half of building the interface.

Intialize with link name name, and handler, if any

Returns
true if the link was able to be configured.

Referenced by SimpleMem().

◆ recvInitData()

virtual SST::Event* SST::Interfaces::SimpleMem::recvInitData ( )
inlinevirtual

Receive any data during the init() phase.

See also
SST::Link::recvInitData()

References getLink(), SST::Link::recvInitData(), recvResponse(), and sendRequest().

◆ recvResponse()

virtual Request* SST::Interfaces::SimpleMem::recvResponse ( void  )
pure virtual

Receive a Request response from the side of the link.

Use this method for polling-based applications. Register a handler for push-based notification of responses.

Returns
NULL if nothing is available.
Pointer to a Request response (that should be deleted)

Referenced by recvInitData().

◆ sendInitData()

virtual void SST::Interfaces::SimpleMem::sendInitData ( SST::Event ev)
inlinevirtual

Sends a generic Event during the init() phase (Mostly acts as a passthrough)

See also
SST::Link::sendInitData()

References getLink(), and SST::Link::sendInitData().


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