SST/macro
|
#include <packet_flow_crossbar.h>
Classes | |
struct | request |
Public Member Functions | |
virtual | ~packet_flow_NtoM_queue () |
packet_flow_NtoM_queue (timestamp send_lat, timestamp credit_lat, double out_bw, int num_vc, int buffer_size, packet_flow_bandwidth_arbitrator *arb) | |
packet_flow_NtoM_queue (timestamp send_lat, timestamp credit_lat, int num_vc, int buffer_size) | |
int | thread_id () const |
virtual void | do_handle_payload (packet_flow_payload *pkt) |
void | set_input (int my_inport, int src_outport, event_handler *input) |
void | set_output (int my_outport, int dst_inport, event_handler *output) |
virtual void | handle_credit (packet_flow_credit *msg) |
virtual void | start_message (message *msg) |
void | init_credits (int port, int num_credits) |
int | num_initial_credits () const |
int | buffer_size () const |
void | configure_mod_ports (int mod) |
void | configure_div_ports (int div, int max_port) |
void | configure_offset_ports (int offset, int max_port) |
void | configure_basic_ports (int num_ports) |
int | local_port (int port) const |
int | local_slot (int port, int vc) const |
packet_flow_bandwidth_arbitrator *& | port_arbitrator (int port) |
void | deadlock_check () |
void | deadlock_check (event *ev) |
Public Member Functions inherited from sstmac::hw::packet_flow_sender | |
virtual | ~packet_flow_sender () |
void | set_acker (event_handler *acker) |
void | handle_payload (packet_flow_payload *pkt) |
void | set_event_location (node_id nid) |
void | set_event_location (switch_id sid) |
void | set_stat_collector (packet_sent_stats *c) |
std::string | to_string () const |
virtual std::string | packet_flow_name () const =0 |
void | set_update_vc (bool flag) |
Public Member Functions inherited from sstmac::hw::packet_flow_handler | |
packet_flow_handler () | |
virtual | ~packet_flow_handler () |
virtual void | handle (event *ev) |
int | thread_id () const |
Public Member Functions inherited from sstmac::event_subscheduler | |
event_subscheduler () | |
timestamp | now () const |
get the current time More... | |
void | schedule (timestamp t, event_handler *handler, event *ev) |
Add an event to the event queue, where msg will get delivered to handler at time t. More... | |
void | schedule (timestamp t, event_queue_entry *ev) |
void | schedule_now (event_queue_entry *ev) |
void | schedule_now (event_handler *handler, event *ev) |
void | schedule_delay (timestamp delay, event_handler *handler, event *ev) |
void | schedule_delay (timestamp delay, event_queue_entry *ev) |
void | send_self_event (timestamp arrival, event *ev) |
void | send_delayed_self_event (timestamp delay, event *ev) |
void | send_now_self_event (event *ev) |
void | send_self_event_queue (timestamp arrival, event_queue_entry *ev) |
void | send_delayed_self_event_queue (timestamp delay, event_queue_entry *ev) |
void | send_now_self_event_queue (event_queue_entry *ev) |
virtual void | set_event_parent (event_scheduler *m) |
Set the eventmanager for this scheduler. More... | |
event_scheduler * | parent () const |
Public Member Functions inherited from sstmac::event_handler | |
virtual | ~event_handler () |
event_loc_id | event_location () const |
virtual bool | ipc_handler () const |
Whether an event handler is a "fake" handler that represents logical process boundary. More... | |
int | thread_id () const |
Protected Types | |
typedef std::list< request > | buffer_request_list |
typedef spkt_unordered_map< int, buffer_request_list > | xbar_request_map |
typedef spkt_unordered_map< int, packet_flow_input > | input_map |
typedef std::vector< packet_flow_output > | output_map |
typedef std::vector< int > | credit_map |
typedef std::vector< payload_queue > | queue_map |
Protected Member Functions | |
void | handle_routed_payload (packet_flow_payload *pkt) |
void | send_payload (packet_flow_payload *pkt) |
void | build_blocked_messages () |
Protected Member Functions inherited from sstmac::hw::packet_flow_sender | |
packet_flow_sender (const timestamp &send_lat, const timestamp &credit_lat) | |
packet_flow_sender () | |
void | send_credit (const packet_flow_input &src, packet_flow_payload *payload, timestamp packet_tail_leaves) |
void | send (packet_flow_bandwidth_arbitrator *arb, packet_flow_payload *pkt, const packet_flow_input &src, const packet_flow_output &dest) |
Protected Member Functions inherited from sstmac::event_handler | |
event_handler () | |
void | init_loc_id (event_loc_id id) |
void | init_thread_id (int id) |
Protected Attributes | |
packet_flow_bandwidth_arbitrator * | arb_tmpl_ |
std::vector< packet_flow_bandwidth_arbitrator * > | port_arbitrators_ |
input_map | inputs_ |
output_map | outputs_ |
credit_map | credits_ |
queue_map | queues_ |
int | num_vc_ |
int | buffer_size_ |
int | port_offset_ |
int | port_div_ |
int | port_mod_ |
double | out_bw_ |
std::map< int, std::set< int > > | deadlocked_channels_ |
std::map< int, std::map< int, std::list< packet_flow_payload * > > > | blocked_messages_ |
Protected Attributes inherited from sstmac::hw::packet_flow_sender | |
packet_sent_stats * | stat_collector_ |
event_handler * | acker_ |
timestamp | send_lat_ |
timestamp | credit_lat_ |
bool | update_vc_ |
Protected Attributes inherited from sstmac::event_subscheduler | |
event_scheduler * | parent_ |
Private Member Functions | |
int & | credit (int port, int vc) |
void | resize (int num_ports) |
payload_queue & | queue (int port, int vc) |
std::string | input_name (packet_flow_payload *pkt) |
std::string | output_name (packet_flow_payload *pkt) |
event_handler * | output_handler (packet_flow_payload *pkt) |
Additional Inherited Members | |
Static Public Attributes inherited from sstmac::event_handler | |
static const int | null_lpid = -1 |
static const int | null_threadid = -1 |
Definition at line 13 of file packet_flow_crossbar.h.
|
protected |
Definition at line 111 of file packet_flow_crossbar.h.
|
protected |
Definition at line 122 of file packet_flow_crossbar.h.
|
protected |
Definition at line 119 of file packet_flow_crossbar.h.
|
protected |
Definition at line 121 of file packet_flow_crossbar.h.
|
protected |
Definition at line 123 of file packet_flow_crossbar.h.
|
protected |
Definition at line 113 of file packet_flow_crossbar.h.
|
virtual |
sstmac::hw::packet_flow_NtoM_queue::packet_flow_NtoM_queue | ( | timestamp | send_lat, |
timestamp | credit_lat, | ||
double | out_bw, | ||
int | num_vc, | ||
int | buffer_size, | ||
packet_flow_bandwidth_arbitrator * | arb | ||
) |
sstmac::hw::packet_flow_NtoM_queue::packet_flow_NtoM_queue | ( | timestamp | send_lat, |
timestamp | credit_lat, | ||
int | num_vc, | ||
int | buffer_size | ||
) |
|
inline |
Definition at line 64 of file packet_flow_crossbar.h.
References buffer_size_, configure_basic_ports(), configure_div_ports(), configure_mod_ports(), and configure_offset_ports().
Referenced by sstmac::hw::packet_flow_demuxer::to_string().
|
protected |
void sstmac::hw::packet_flow_NtoM_queue::configure_basic_ports | ( | int | num_ports | ) |
Referenced by buffer_size().
void sstmac::hw::packet_flow_NtoM_queue::configure_div_ports | ( | int | div, |
int | max_port | ||
) |
Referenced by buffer_size().
void sstmac::hw::packet_flow_NtoM_queue::configure_mod_ports | ( | int | mod | ) |
Referenced by buffer_size().
void sstmac::hw::packet_flow_NtoM_queue::configure_offset_ports | ( | int | offset, |
int | max_port | ||
) |
Referenced by buffer_size().
|
inlineprivate |
Definition at line 157 of file packet_flow_crossbar.h.
References local_slot(), and resize().
|
virtual |
Reimplemented from sstmac::event_handler.
Referenced by port_arbitrator().
|
virtual |
Reimplemented from sstmac::event_handler.
|
inlinevirtual |
Implements sstmac::hw::packet_flow_sender.
Definition at line 39 of file packet_flow_crossbar.h.
References handle_credit(), handle_routed_payload(), init_credits(), set_input(), set_output(), and start_message().
|
virtual |
Implements sstmac::hw::packet_flow_handler.
Referenced by do_handle_payload().
|
protected |
Referenced by do_handle_payload().
|
virtual |
Implements sstmac::hw::packet_flow_sender.
Referenced by do_handle_payload().
|
private |
Referenced by queue().
|
inline |
Definition at line 81 of file packet_flow_crossbar.h.
References port_div_, port_mod_, and port_offset_.
Referenced by local_slot(), and port_arbitrator().
|
inline |
Definition at line 90 of file packet_flow_crossbar.h.
References local_port(), and num_vc_.
Referenced by credit(), and queue().
|
inlinevirtual |
Implements sstmac::hw::packet_flow_sender.
Definition at line 59 of file packet_flow_crossbar.h.
References buffer_size_.
|
private |
Referenced by queue().
|
private |
Referenced by queue().
|
inline |
Definition at line 95 of file packet_flow_crossbar.h.
References deadlock_check(), local_port(), and port_arbitrators_.
|
inlineprivate |
Definition at line 163 of file packet_flow_crossbar.h.
References input_name(), local_slot(), output_handler(), and output_name().
|
private |
Referenced by credit().
|
protected |
|
virtual |
Implements sstmac::hw::packet_flow_sender.
Referenced by do_handle_payload().
|
virtual |
Implements sstmac::hw::packet_flow_sender.
Referenced by do_handle_payload().
|
virtual |
Referenced by do_handle_payload().
|
inline |
Definition at line 34 of file packet_flow_crossbar.h.
References sstmac::event_handler::thread_id().
|
protected |
Definition at line 125 of file packet_flow_crossbar.h.
|
protected |
Definition at line 147 of file packet_flow_crossbar.h.
|
protected |
Definition at line 138 of file packet_flow_crossbar.h.
Referenced by buffer_size(), and num_initial_credits().
|
protected |
Definition at line 133 of file packet_flow_crossbar.h.
|
protected |
Definition at line 145 of file packet_flow_crossbar.h.
|
protected |
Definition at line 129 of file packet_flow_crossbar.h.
|
protected |
Definition at line 137 of file packet_flow_crossbar.h.
Referenced by local_slot().
|
protected |
Definition at line 143 of file packet_flow_crossbar.h.
|
protected |
Definition at line 131 of file packet_flow_crossbar.h.
|
protected |
Definition at line 127 of file packet_flow_crossbar.h.
Referenced by port_arbitrator().
|
protected |
Definition at line 140 of file packet_flow_crossbar.h.
Referenced by local_port().
|
protected |
Definition at line 141 of file packet_flow_crossbar.h.
Referenced by local_port().
|
protected |
Definition at line 139 of file packet_flow_crossbar.h.
Referenced by local_port().
|
protected |
Definition at line 135 of file packet_flow_crossbar.h.