GenericInterfaceNB Class Reference

#include <genericInterfaceNB.h>

Inheritance diagram for GenericInterfaceNB:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 GenericInterfaceNB ()
 ~GenericInterfaceNB ()
uint get_no_credits () const
void set_no_credits (int credits)
void set_no_vcs (uint v)
void set_buffer_size (uint b)
void setup (uint v, uint cr, uint bs)
string toString () const
void process_event (IrisEvent *e)
string print_stats ()
ullint get_packets_out ()
ullint get_packets ()
ullint get_flits_out ()

Public Attributes

bool is_mc_interface

Private Member Functions

void handle_new_packet_event (IrisEvent *e)
void handle_ready_event (IrisEvent *e)
void handle_tick_event (IrisEvent *e)
void handle_link_arrival (IrisEvent *e)

Private Attributes

uint vcs
uint buffer_size
int credits
bool in_packet_cleared
vector< bool > in_packet_complete
uint flast_vc
bool ticking
GenericBuffer out_buffer
GenericBuffer in_buffer
GenericArbiter out_arbiter
vector< int > downstream_credits
vector< LowLevelPacketout_packets
vector< uintout_packet_flit_index
vector< LowLevelPacketin_packets
vector< uintin_packets_flit_index
vector< bool > in_packets_valid
vector< bool > in_ready
ullint flits_in
ullint packets_in
ullint flits_out
ullint packets_out
ullint total_packets_in_time


Detailed Description

Definition at line 49 of file genericInterfaceNB.h.


Constructor & Destructor Documentation

GenericInterfaceNB::GenericInterfaceNB (  ) 

=====================================================================================

Filename: genericInterfaceNB.cc

Description: Implements the class described in genericInterfaceNB.h

Version: 1.0 Created: 02/21/2010 03:46:20 PM Revision: none Compiler: gcc

Author: Mitchelle Rasquinha (), mitchelle.rasquinha@gatech.edu Company: Georgia Institute of Technology

=====================================================================================

Definition at line 24 of file genericInterfaceNB.cc.

References NetworkComponent::name, and ticking.

GenericInterfaceNB::~GenericInterfaceNB (  ) 

Definition at line 30 of file genericInterfaceNB.cc.

References in_packets, and out_packets.


Member Function Documentation

ullint GenericInterfaceNB::get_flits_out (  )  [virtual]

Implements Interface.

Definition at line 590 of file genericInterfaceNB.cc.

References flits_out.

uint GenericInterfaceNB::get_no_credits (  )  const

Definition at line 106 of file genericInterfaceNB.cc.

References credits.

ullint GenericInterfaceNB::get_packets (  )  [virtual]

Implements Interface.

Definition at line 602 of file genericInterfaceNB.cc.

References packets_in, and packets_out.

ullint GenericInterfaceNB::get_packets_out (  )  [virtual]

Implements Interface.

Definition at line 596 of file genericInterfaceNB.cc.

References packets_out.

void GenericInterfaceNB::handle_link_arrival ( IrisEvent e  )  [private]

link arrival can be for a flit or credit. FLIT: Add incoming flit to buffer and send a credit back. Credit for the tail flit is not sent here. This is held till we know the ejection port is free. ( This is modelled here for the additional MC backpressure modelling and need not be this way). CREDIT: Update state for downstream credits. Generate a TICK event at the end of it. This will restart the interface if it is blocked on a credit(outgoing path) or initiate a new packet(incoming path).

Definition at line 198 of file genericInterfaceNB.cc.

References _DBG, HeadFlit::addr, NetworkComponent::address, GenericBuffer::change_push_channel(), CREDIT_ID, downstream_credits, IrisEvent::event_data, FLIT_ID, flits_in, HEAD, in_buffer, Interface::input_connection, is_mc_interface, istat, LINK_ARRIVAL_EVENT, Simulator::Now(), ONE_FLIT_REQ, packets_in, process_event(), NetworkComponent::process_event(), LinkArrivalData::ptr, GenericBuffer::push(), Simulator::Schedule(), IrisStats::stat_link, TAIL, TICK_EVENT, ticking, total_packets_in_time, IrisEvent::type, Flit::type, LinkArrivalData::type, LinkArrivalData::valid, IrisEvent::vc, Flit::vc, and LinkArrivalData::vc.

Referenced by process_event().

Here is the call graph for this function:

Here is the caller graph for this function:

void GenericInterfaceNB::handle_new_packet_event ( IrisEvent e  )  [private]

void GenericInterfaceNB::handle_ready_event ( IrisEvent e  )  [private]

These are credits from the processor and hence do not update flow control state. Flow control state is updated at the link arrival event for a credit.

Definition at line 162 of file genericInterfaceNB.cc.

References _DBG, in_ready, is_mc_interface, Simulator::Now(), NetworkComponent::process_event(), Simulator::Schedule(), TICK_EVENT, ticking, and IrisEvent::vc.

Referenced by process_event().

Here is the call graph for this function:

Here is the caller graph for this function:

void GenericInterfaceNB::handle_tick_event ( IrisEvent e  )  [private]

string GenericInterfaceNB::print_stats ( void   )  [virtual]

void GenericInterfaceNB::process_event ( IrisEvent e  )  [virtual]

READY_EVENT: A ready is the credit at a packet level with the injection/ejection point

LINK_ARRIVAL_EVENT: This is a flit/credit arrival from the network. (Incoming path)

NEW_PACKET_EVENT: This is a high level packet from the processor connected to this node

TICK_EVENT: Update internal state of the interface. This involves two distinct paths ( Incoming and Outgoing ). Push flits into the output buffer and send them out after all flits for a packet are moved to the output buffer(Outgoing path). Push flits from the input buffer to a low level packet. Convert the low level packet to a high level packet when complete and then send it to the injection processor connected to this node (Incoming path).

Implements Interface.

Definition at line 122 of file genericInterfaceNB.cc.

References handle_link_arrival(), handle_new_packet_event(), handle_ready_event(), handle_tick_event(), LINK_ARRIVAL_EVENT, NEW_PACKET_EVENT, READY_EVENT, TICK_EVENT, and IrisEvent::type.

Referenced by handle_link_arrival(), and handle_tick_event().

Here is the call graph for this function:

Here is the caller graph for this function:

void GenericInterfaceNB::set_buffer_size ( uint  b  )  [virtual]

Implements Interface.

Definition at line 117 of file genericInterfaceNB.cc.

void GenericInterfaceNB::set_no_credits ( int  credits  )  [virtual]

Implements Interface.

Definition at line 101 of file genericInterfaceNB.cc.

void GenericInterfaceNB::set_no_vcs ( uint  v  )  [virtual]

Implements Interface.

Definition at line 112 of file genericInterfaceNB.cc.

void GenericInterfaceNB::setup ( uint  v,
uint  cr,
uint  bs 
) [virtual]

string GenericInterfaceNB::toString (  )  const [virtual]

Reimplemented from Interface.

Definition at line 88 of file genericInterfaceNB.cc.

References NetworkComponent::address, in_buffer, NetworkComponent::node_ip, out_buffer, out_packets, and GenericBuffer::toString().

Here is the call graph for this function:


Member Data Documentation

Definition at line 73 of file genericInterfaceNB.h.

Referenced by setup().

Definition at line 74 of file genericInterfaceNB.h.

Referenced by get_no_credits(), and setup().

vector< int > GenericInterfaceNB::downstream_credits [private]

Definition at line 83 of file genericInterfaceNB.h.

Referenced by handle_link_arrival(), handle_tick_event(), and setup().

Definition at line 77 of file genericInterfaceNB.h.

Referenced by handle_tick_event(), and setup().

Definition at line 103 of file genericInterfaceNB.h.

Referenced by handle_link_arrival(), print_stats(), and setup().

Definition at line 105 of file genericInterfaceNB.h.

Referenced by get_flits_out(), handle_tick_event(), print_stats(), and setup().

Definition at line 81 of file genericInterfaceNB.h.

Referenced by handle_link_arrival(), handle_tick_event(), setup(), and toString().

Definition at line 75 of file genericInterfaceNB.h.

Definition at line 76 of file genericInterfaceNB.h.

Referenced by handle_tick_event(), and setup().

Definition at line 90 of file genericInterfaceNB.h.

Referenced by handle_tick_event(), setup(), and ~GenericInterfaceNB().

Definition at line 91 of file genericInterfaceNB.h.

Referenced by handle_tick_event(), and setup().

vector< bool> GenericInterfaceNB::in_packets_valid [private]

Definition at line 92 of file genericInterfaceNB.h.

Referenced by setup().

vector< bool > GenericInterfaceNB::in_ready [private]

Definition at line 94 of file genericInterfaceNB.h.

Referenced by handle_ready_event(), handle_tick_event(), and setup().

Definition at line 82 of file genericInterfaceNB.h.

Referenced by handle_tick_event(), and setup().

Definition at line 80 of file genericInterfaceNB.h.

Referenced by handle_tick_event(), setup(), and toString().

Definition at line 87 of file genericInterfaceNB.h.

Referenced by handle_new_packet_event(), handle_tick_event(), and setup().

Definition at line 104 of file genericInterfaceNB.h.

Referenced by get_packets(), handle_link_arrival(), print_stats(), and setup().

Definition at line 107 of file genericInterfaceNB.h.

Referenced by handle_link_arrival(), print_stats(), and setup().

Definition at line 72 of file genericInterfaceNB.h.

Referenced by handle_tick_event(), and setup().


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

Generated on Tue Oct 19 17:22:14 2010 for IRIS by  doxygen 1.5.8