Module 17: "Interconnection Networks"
  Lecture 37: "Introduction to Routers"
 

Latency and bandwidth

  • Latency gets affected by delivered bandwidth and the delivered bandwidth may be lower than the actual bandwidth under contention, i.e. when bandwidth demand (called offered bandwidth) is much higher than affordable link bandwidth

Router architecture

  • Number of input ports is normally equal to the number of output ports which is the degree of the router
  • In a direct network one input and one output port would connect to the host node’s NI outbound and NI inbound control respectively
  • A single VLSI chip
    • Pin count is essentially number of ports (input and output) multiplied by channel width
    • High speed serial links offer lowest pin count, but the clock and control must be encoded within the serial bit stream
    • Parallel links require high pin count and one extra channel is devoted to transmit the clock; also must be careful about the cross-channel clock skew
    • Flow control is realized with a separate set of wires comprising ready and acknowledge signals
  • Channel buffers
    • With no buffering a blocked packet at an input port may block all subsequent packets at that port creating a tree saturation very fast
    • Input buffering: provide FIFO buffers at each input port; each input port independently requests its output port; one severe problem is head-of-line blocking: two packets from two different ports may ask the same output port and only the selected one can proceed, but the port that is not selected may block subsequent packets destined for a different output port (buffers are FIFO)
    • Output buffering: for each input port partition the buffer storage equally among output ports (normally after crossbar) or provide FIFO buffers per output port; solves head-of-line blocking
    • Shared pool: provide buffer storage (typically SRAM) shared among all input ports; must provide high read/write bandwidth
    • Virtual channels: each input port is equipped with independent virtual channels and an incoming packet is deposited into one of them; normally, a packet is copied from input virtual channel to the same output virtual channel of the requested output port and the virtual channels of an output port are multiplexed onto one physical link
  • Output scheduling
    • Simply speaking, each output port can carry out an independent arbitration across all input ports and select one (assumption?)
    • Selection algorithm can be round-robin, oldest first, static priority, etc.
    • For adaptive routing each input port may request multiple output ports and hence output ports cannot arbitrate independently
    • In such a situation, formulate the problem as an online bipartite matching; start with a random selection of requests at each output; assign unselected outputs via improvement iterations