SST/macro
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
sstmac::hw::packet_flow_tiled_switch Class Reference

#include <packet_flow_tiled_switch.h>

Inheritance diagram for sstmac::hw::packet_flow_tiled_switch:
Inheritance graph
Collaboration diagram for sstmac::hw::packet_flow_tiled_switch:
Collaboration graph

Public Member Functions

 packet_flow_tiled_switch ()
 
virtual void initialize ()
 
virtual void init_factory_params (sprockit::sim_parameters *params)
 
int queue_length (int port) const
 
virtual void connect (int src_outport, int dst_inport, connection_type_t ty, connectable *mod, config *cfg)
 
virtual void connect_output (int src_outport, int dst_inport, connectable *mod, config *cfg)
 
virtual void connect_input (int src_outport, int dst_inport, connectable *mod, config *cfg)
 
std::vector< switch_idconnected_switches () const
 
void handle (event *ev)
 Cast message and pass to #send. More...
 
void add_ejector (node_id addr, event_handler *link)
 Set the link to use when ejecting packets at their endpoint. More...
 
virtual void set_event_manager (event_manager *m)
 
virtual std::string to_string () const
 
int initial_credits () const
 
virtual ~packet_flow_tiled_switch ()
 
event_handlerdemuxer (int port) const
 
void deadlock_check ()
 
- Public Member Functions inherited from sstmac::hw::packet_flow_abstract_switch
timestamp hop_latency () const
 
timestamp lookahead () const
 
double hop_bandwidth () const
 
packet_sent_statsxbar_stats () const
 
packet_sent_statsbuf_stats () const
 

Protected Member Functions

virtual void connect_injector (int src_outport, int dst_inport, event_handler *nic)
 
virtual void connect_ejector (int src_outport, int dst_inport, event_handler *nic)
 
- Protected Member Functions inherited from sstmac::hw::packet_flow_abstract_switch
 packet_flow_abstract_switch ()
 
virtual ~packet_flow_abstract_switch ()
 

Protected Attributes

std::vector< packet_flow_demuxer * > row_input_demuxers_
 
std::vector< packet_flow_crossbar * > xbar_tiles_
 
std::vector< packet_flow_muxer * > col_output_muxers_
 
int nrows_
 
int ncols_
 
- Protected Attributes inherited from sstmac::hw::packet_flow_abstract_switch
int packet_size_
 
double link_bw
 
double ej_bw
 
int xbar_output_buffer_num_bytes
 
int xbar_input_buffer_num_bytes
 
double xbar_bw
 
int row_buffer_num_bytes
 
timestamp hop_lat
 
packet_flow_bandwidth_arbitratorlink_arbitrator_template
 
packet_sent_statsxbar_stats_
 
packet_sent_statsbuf_stats_
 

Private Member Functions

int row_col_to_tile (int row, int col)
 
void tile_to_row_col (int tile, int &row, int &col)
 
void resize_buffers ()
 
void init_components ()
 
void connect_output (int src_outport, int dst_inport, event_handler *mod, config *cfg)
 
void connect_input (int src_outport, int dst_inport, event_handler *mod, config *cfg)
 

Detailed Description

Definition at line 18 of file packet_flow_tiled_switch.h.

Constructor & Destructor Documentation

sstmac::hw::packet_flow_tiled_switch::packet_flow_tiled_switch ( )
inline
virtual sstmac::hw::packet_flow_tiled_switch::~packet_flow_tiled_switch ( )
virtual

Referenced by initial_credits().

Member Function Documentation

void sstmac::hw::packet_flow_tiled_switch::add_ejector ( node_id  addr,
event_handler link 
)

Set the link to use when ejecting packets at their endpoint.

A packet_flow_switch can have any number of ejectors, corresponding to the number of nodes per switch.

Parameters
addrThe compute node address of the endpoint to eject to
linkThe link to the compute node for ejection

Referenced by packet_flow_tiled_switch().

virtual void sstmac::hw::packet_flow_tiled_switch::connect ( int  src_outport,
int  dst_inport,
connection_type_t  ty,
connectable mod,
config *  cfg 
)
virtual
virtual void sstmac::hw::packet_flow_tiled_switch::connect_ejector ( int  src_outport,
int  dst_inport,
event_handler nic 
)
protectedvirtual

Referenced by demuxer().

virtual void sstmac::hw::packet_flow_tiled_switch::connect_injector ( int  src_outport,
int  dst_inport,
event_handler nic 
)
protectedvirtual

Referenced by demuxer().

virtual void sstmac::hw::packet_flow_tiled_switch::connect_input ( int  src_outport,
int  dst_inport,
connectable mod,
config *  cfg 
)
virtual
void sstmac::hw::packet_flow_tiled_switch::connect_input ( int  src_outport,
int  dst_inport,
event_handler mod,
config *  cfg 
)
private
virtual void sstmac::hw::packet_flow_tiled_switch::connect_output ( int  src_outport,
int  dst_inport,
connectable mod,
config *  cfg 
)
virtual
void sstmac::hw::packet_flow_tiled_switch::connect_output ( int  src_outport,
int  dst_inport,
event_handler mod,
config *  cfg 
)
private
std::vector<switch_id> sstmac::hw::packet_flow_tiled_switch::connected_switches ( ) const
void sstmac::hw::packet_flow_tiled_switch::deadlock_check ( )

Referenced by demuxer().

event_handler* sstmac::hw::packet_flow_tiled_switch::demuxer ( int  port) const
inline

Definition at line 85 of file packet_flow_tiled_switch.h.

References connect_ejector(), connect_injector(), deadlock_check(), and row_input_demuxers_.

Here is the call graph for this function:

void sstmac::hw::packet_flow_tiled_switch::handle ( event ev)

Cast message and pass to #send.

Parameters
msgIncoming message (should cast to packet_train)

Referenced by packet_flow_tiled_switch().

void sstmac::hw::packet_flow_tiled_switch::init_components ( )
private
virtual void sstmac::hw::packet_flow_tiled_switch::init_factory_params ( sprockit::sim_parameters *  params)
virtual
int sstmac::hw::packet_flow_tiled_switch::initial_credits ( ) const
inlinevirtual

Implements sstmac::hw::packet_flow_abstract_switch.

Definition at line 77 of file packet_flow_tiled_switch.h.

References sstmac::hw::packet_flow_abstract_switch::row_buffer_num_bytes, and ~packet_flow_tiled_switch().

Here is the call graph for this function:

virtual void sstmac::hw::packet_flow_tiled_switch::initialize ( )
virtual
int sstmac::hw::packet_flow_tiled_switch::queue_length ( int  port) const
void sstmac::hw::packet_flow_tiled_switch::resize_buffers ( )
private
int sstmac::hw::packet_flow_tiled_switch::row_col_to_tile ( int  row,
int  col 
)
private
virtual void sstmac::hw::packet_flow_tiled_switch::set_event_manager ( event_manager m)
virtual
void sstmac::hw::packet_flow_tiled_switch::tile_to_row_col ( int  tile,
int &  row,
int &  col 
)
private
virtual std::string sstmac::hw::packet_flow_tiled_switch::to_string ( ) const
virtual

Member Data Documentation

std::vector<packet_flow_muxer*> sstmac::hw::packet_flow_tiled_switch::col_output_muxers_
protected

Definition at line 104 of file packet_flow_tiled_switch.h.

int sstmac::hw::packet_flow_tiled_switch::ncols_
protected

Definition at line 108 of file packet_flow_tiled_switch.h.

int sstmac::hw::packet_flow_tiled_switch::nrows_
protected

Definition at line 106 of file packet_flow_tiled_switch.h.

std::vector<packet_flow_demuxer*> sstmac::hw::packet_flow_tiled_switch::row_input_demuxers_
protected

Definition at line 100 of file packet_flow_tiled_switch.h.

Referenced by demuxer().

std::vector<packet_flow_crossbar*> sstmac::hw::packet_flow_tiled_switch::xbar_tiles_
protected

Definition at line 102 of file packet_flow_tiled_switch.h.


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