The growing need for performance from computing systems drove the industry into the
multi-core and
many-core arena. In this setup, the execution of a kernel (a program) is split across multiple processors and the computation happens in parallel, thus ensuring performance with respect to execution time. This however implies that the processors must now be able to communicate with each other and exchange data and control signals seamlessly. One straightforward approach is the
bus based interconnect, a group of wires connecting all the processors. This approach is however not scalable as the number of processors in the system increase. Hence, a scalable high performance interconnect network lies at the core of
parallel computer architecture.
Basic network terminologies and background Definitions of an interconnection network The formal definition of an interconnection network "An interconnection network
I is represented by a strongly connected directed multigraph,
I = G(N,C). The set of vertices of the multigraph
N includes the set of processing element nodes
P and the set of router nodes
RT. The set of arcs
C represents the set of unidirectional channels (possibly virtual) that connect either the processing elements to the routers or the routers to each other". The primary expectation of an interconnection network is to have as low a latency as possible, that is the time taken to transfer a message from one node to another should be minimal, while allowing a large number of such transactions to take place concurrently. As with any other engineering design trade offs, the interconnection network must accomplish these traits while keeping the cost of implementation as low as possible. Having discussed what is expected of a network, let us look at a few design points that can be tweaked to obtain the necessary performance. The basic building blocks of an interconnection network are its
topology,
routing algorithm,
switching strategy and the flow control mechanism.
Topology: This refers to the general infrastructure of the interconnection network; the pattern in which multiple processors are connected. This pattern could either be regular or irregular, though many multi-core architectures today use highly regular interconnection networks.
Routing algorithm: This determines which path the message must take in order to ensure delivery to the destination node. The choice of the path is based on multiple metrics such as latency, security and number of nodes involved etc. There are many different routing algorithms, providing different guarantees and offering different performance trade-offs.
Switching strategy: The routing algorithm only determines the path that a message must take to reach its destination node. The actual traversal of the message within the network is the responsibility of the switching strategy. There are basically two types of switching strategies, a
circuit switched network is a network where a path is reserved and blocked off from other messages, till the message is delivered to its destination node. A famous example of circuit switched network is the telephone services, which establish a circuit through many switches for a call. The alternative approach is the
packet switched network where messages are broken down into smaller compact entities called
packets. Each packet contains a part of data in addition to a sequence number. This implies that each packet can now be transferred individually and assembled at the destination based on the sequence number.
Flow control: Note that we have previously established the fact that multiple messages can flow through the interconnect network at any given time. It is the responsibility of the flow control mechanism implemented at the router level to decide which message gets to flow and which message is held back.
Characteristics and metrics of a network Every network has a '
width w'''''
, and a transmission '
rate f'''''
, which decide the
bandwidth of a network as
b = w*f. The amount of data transferred in a single cycle is called a physical unit or
phit. As is observable, the width of a network is also equal to the phit size. Hence the bandwidth of the network can also be defined in terms of phit/sec. Each message to be transferred can be broken down into smaller chunks of fixed length entities called
packets. Packets may in turn be broken down into message flow control units or
flits. == The need for flits ==