GenericInterfacePhy Class Reference

#include <genericInterfacePhy.h>

Inheritance diagram for GenericInterfacePhy:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 GenericInterfacePhy ()
 ~GenericInterfacePhy ()
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)
string toString () const
void process_event (IrisEvent *e)
string print_stats ()
ullint get_packets_out ()
ullint get_packets ()
ullint get_flits_out ()

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)
bool is_pkt_in_progress (uint vc)

Private Attributes

uint vcs
uint buffer_size
int credits
bool in_packet_cleared
bool in_packet_complete
bool ticking
GenericBuffer out_buffer
GenericBuffer in_buffer
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 > pkt_in_progress
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 44 of file genericInterfacePhy.h.


Constructor & Destructor Documentation

GenericInterfacePhy::GenericInterfacePhy (  ) 

Definition at line 29 of file genericInterfacePhy.cc.

References NetworkComponent::name, and ticking.

GenericInterfacePhy::~GenericInterfacePhy (  ) 

Definition at line 35 of file genericInterfacePhy.cc.

References in_packets, and out_packets.


Member Function Documentation

ullint GenericInterfacePhy::get_flits_out (  )  [virtual]

Implements Interface.

Definition at line 530 of file genericInterfacePhy.cc.

References flits_out.

uint GenericInterfacePhy::get_no_credits (  )  const

Definition at line 109 of file genericInterfacePhy.cc.

References credits.

ullint GenericInterfacePhy::get_packets (  )  [virtual]

Implements Interface.

Definition at line 542 of file genericInterfacePhy.cc.

References packets_in, and packets_out.

ullint GenericInterfacePhy::get_packets_out (  )  [virtual]

Implements Interface.

Definition at line 536 of file genericInterfacePhy.cc.

References packets_out.

void GenericInterfacePhy::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 200 of file genericInterfacePhy.cc.

References _DBG, NetworkComponent::address, GenericBuffer::change_push_channel(), CREDIT_ID, downstream_credits, IrisEvent::event_data, FLIT_ID, flits_in, in_buffer, Interface::input_connection, Flit::is_single_flit_pkt, LINK_ARRIVAL_EVENT, Simulator::Now(), packets_in, process_event(), NetworkComponent::process_event(), LinkArrivalData::ptr, GenericBuffer::push(), Simulator::Schedule(), TAIL, TICK_EVENT, ticking, total_packets_in_time, IrisEvent::type, Flit::type, LinkArrivalData::type, LinkArrivalData::valid, IrisEvent::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 GenericInterfacePhy::handle_new_packet_event ( IrisEvent e  )  [private]

void GenericInterfacePhy::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 175 of file genericInterfacePhy.cc.

References _DBG, in_ready, 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 GenericInterfacePhy::handle_tick_event ( IrisEvent e  )  [private]

bool GenericInterfacePhy::is_pkt_in_progress ( uint  vc  )  [private]

Definition at line 548 of file genericInterfacePhy.cc.

References pkt_in_progress.

string GenericInterfacePhy::print_stats ( void   )  [virtual]

void GenericInterfacePhy::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 135 of file genericInterfacePhy.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 GenericInterfacePhy::set_buffer_size ( uint  b  )  [virtual]

Implements Interface.

Definition at line 101 of file genericInterfacePhy.cc.

References buffer_size.

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

Implements Interface.

Definition at line 115 of file genericInterfacePhy.cc.

References credits.

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

Implements Interface.

Definition at line 95 of file genericInterfacePhy.cc.

References vcs.

void GenericInterfacePhy::setup ( uint  v,
uint  cr 
)

string GenericInterfacePhy::toString (  )  const [virtual]

Reimplemented from Interface.

Definition at line 122 of file genericInterfacePhy.cc.

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

Referenced by handle_tick_event().

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Definition at line 67 of file genericInterfacePhy.h.

Referenced by set_buffer_size(), and setup().

Definition at line 68 of file genericInterfacePhy.h.

Referenced by get_no_credits(), handle_tick_event(), set_no_credits(), and setup().

vector< int > GenericInterfacePhy::downstream_credits [private]

Definition at line 75 of file genericInterfacePhy.h.

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

Definition at line 97 of file genericInterfacePhy.h.

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

Definition at line 99 of file genericInterfacePhy.h.

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

Definition at line 74 of file genericInterfacePhy.h.

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

Definition at line 69 of file genericInterfacePhy.h.

Definition at line 70 of file genericInterfacePhy.h.

Referenced by handle_tick_event(), and setup().

Definition at line 82 of file genericInterfacePhy.h.

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

Definition at line 83 of file genericInterfacePhy.h.

Referenced by handle_tick_event(), and setup().

vector< bool> GenericInterfacePhy::in_packets_valid [private]

Definition at line 84 of file genericInterfacePhy.h.

Referenced by setup().

vector< bool > GenericInterfacePhy::in_ready [private]

Definition at line 87 of file genericInterfacePhy.h.

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

Definition at line 73 of file genericInterfacePhy.h.

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

Definition at line 79 of file genericInterfacePhy.h.

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

Definition at line 98 of file genericInterfacePhy.h.

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

vector< bool> GenericInterfacePhy::pkt_in_progress [private]

Definition at line 85 of file genericInterfacePhy.h.

Referenced by is_pkt_in_progress().

Definition at line 101 of file genericInterfacePhy.h.

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

Definition at line 66 of file genericInterfacePhy.h.

Referenced by set_no_vcs(), and setup().


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

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