|
SST
6.1.0
StructuralSimulationToolkit
|
Generic network interface. More...
#include <simpleNetwork.h>
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 handling of callbacks. More... | |
| class | NetworkInspector |
| Class used to inspect network requests going through the network. More... | |
| class | Request |
| Represents both network sends and receives. More... | |
Public Types | |
| typedef int64_t | nid_t |
| All Addresses can be 64-bit. | |
Public Member Functions | |
| SimpleNetwork (SST::Component *comp) | |
| Constructor, designed to be used via 'loadSubComponent'. More... | |
| virtual bool | initialize (const std::string &portName, const UnitAlgebra &link_bw, int vns, const UnitAlgebra &in_buf_size, const UnitAlgebra &out_buf_size)=0 |
| Second half of building the interface. More... | |
| virtual void | sendInitData (Request *req)=0 |
| Sends a network request during the init() phase. | |
| virtual Request * | recvInitData ()=0 |
| Receive any data during the init() phase. More... | |
| virtual bool | send (Request *req, int vn)=0 |
| Returns a handle to the underlying SST::Link. More... | |
| virtual Request * | recv (int vn)=0 |
| Receive a Request from the network. More... | |
| virtual void | setup () |
| Called after all components have been constructed and inialization has completed, but before simulation time has begun. More... | |
| virtual void | init (unsigned int phase) |
| Used during the init phase. More... | |
| virtual void | finish () |
| Called after simulation completes, but before objects are destroyed. More... | |
| virtual bool | spaceToSend (int vn, int num_bits)=0 |
| Checks if there is sufficient space to send on the specified virtual netork. More... | |
| virtual bool | requestToReceive (int vn)=0 |
| Checks if there is a waiting network request request pending in the specified virtual network. More... | |
| virtual void | setNotifyOnReceive (HandlerBase *functor)=0 |
| Registers a functor which will fire when a new request is received from the network. More... | |
| virtual void | setNotifyOnSend (HandlerBase *functor)=0 |
| Registers a functor which will fire when a request is sent to the network. More... | |
| virtual bool | isNetworkInitialized () const =0 |
| Check to see if network is initialized. More... | |
| virtual nid_t | getEndpointID () const =0 |
| Returns the endpoint ID. More... | |
| virtual const UnitAlgebra & | getLinkBW () const =0 |
| Returns the final BW of the link managed by the simpleNetwork instance. More... | |
Public Member Functions inherited from SST::SubComponent | |
| SubComponent (Component *parent) | |
Static Public Attributes | |
| static const nid_t | INIT_BROADCAST_ADDR = 0xffffffffffffffffl |
Additional Inherited Members | |
Protected Member Functions inherited from SST::SubComponent | |
| bool | isPortConnected (const std::string &name) const |
| Determine if a port name is connected to any links. | |
| Link * | configureLink (std::string name, TimeConverter *time_base, Event::HandlerBase *handler=NULL) |
| Configure a Link. More... | |
| Link * | configureLink (std::string name, std::string time_base, Event::HandlerBase *handler=NULL) |
| Configure a Link. More... | |
| Link * | configureLink (std::string name, Event::HandlerBase *handler=NULL) |
| Configure a Link. More... | |
| Link * | configureSelfLink (std::string name, TimeConverter *time_base, Event::HandlerBase *handler=NULL) |
| Configure a SelfLink (Loopback link) More... | |
| Link * | configureSelfLink (std::string name, std::string time_base, Event::HandlerBase *handler=NULL) |
| Configure a SelfLink (Loopback link) More... | |
| Link * | configureSelfLink (std::string name, Event::HandlerBase *handler=NULL) |
| Configure a SelfLink (Loopback link) More... | |
| bool | doesSubComponentInfoStatisticExist (std::string statisticName) |
| template<typename T > | |
| Statistic< T > * | registerStatistic (std::string statName, std::string statSubId="") |
| TimeConverter * | registerClock (std::string freq, Clock::HandlerBase *handler) |
| Registers a clock for this component. More... | |
| TimeConverter * | registerClock (const UnitAlgebra &freq, Clock::HandlerBase *handler) |
| 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. | |
| TimeConverter * | getTimeConverter (const std::string &base) |
| TimeConverter * | getTimeConverter (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 (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. | |
| Module * | loadModule (std::string type, Params ¶ms) |
| Module * | loadModuleWithComponent (std::string type, Params ¶ms) |
| SubComponent * | loadSubComponent (std::string type, Params ¶ms) |
| SharedRegion * | getLocalSharedRegion (const std::string &key, size_t size) |
| Find a lookup table. | |
| SharedRegion * | getGlobalSharedRegion (const std::string &key, size_t size, SharedRegionMerger *merger=NULL) |
Protected Attributes inherited from SST::SubComponent | |
| Component *const | parent |
Generic network interface.
|
inline |
Constructor, designed to be used via 'loadSubComponent'.
|
inlinevirtual |
Called after simulation completes, but before objects are destroyed.
A good place to print out statistics.
Reimplemented from SST::SubComponent.
|
pure virtual |
Returns the endpoint ID.
Cannot be called until after the network is initialized.
|
pure virtual |
Returns the final BW of the link managed by the simpleNetwork instance.
Cannot be called until after the network is initialized.
|
inlinevirtual |
Used during the init phase.
The method will be called each phase of initialization. Initialization ends when no components have sent any data.
Reimplemented from SST::SubComponent.
|
pure virtual |
Second half of building the interface.
Initialize network interface
| portName | - Name of port to connect to |
| link_bw | - Bandwidth of the link |
| vns | - Number of virtual networks to be provided |
| in_buf_size | - Size of input buffers (from router) |
| out_buf_size | - Size of output buffers (to router) |
|
pure virtual |
Check to see if network is initialized.
If network is not initialized, then no other functions other than init() can can be called on the interface.
|
pure virtual |
|
pure virtual |
Receive any data during the init() phase.
|
pure virtual |
Checks if there is a waiting network request request pending in the specified virtual network.
| vn | Virtual network to check |
|
pure virtual |
|
pure virtual |
Registers a functor which will fire when a new request is received from the network.
Note, the actual request that was received is not passed into the functor, it is only a notification that something is available.
| functor | Functor to call when request is received |
|
pure virtual |
Registers a functor which will fire when a request is sent to the network.
Note, this only tells you when data is sent, it does not guarentee any specified amount of available space.
| functor | Functor to call when request is sent |
|
inlinevirtual |
Called after all components have been constructed and inialization has completed, but before simulation time has begun.
Reimplemented from SST::SubComponent.
|
pure virtual |
Checks if there is sufficient space to send on the specified virtual netork.
| vn | Virtual network to check |
| num_bits | Minimum size in bits required to have space to send |