300 likes | 890 Views
Interconnection Networks. Interconnection Networks. Interconnection Network (for SIMD/MIMD) can be used for internal connections among: Processors, Memory Modules, I/O Disk Arrays Topologies of INs can be either:
E N D
Interconnection Networks
Interconnection Networks Interconnection Network (for SIMD/MIMD) can be used for internal connections among: • Processors, • Memory Modules, • I/O Disk Arrays Topologies of INs can be either: • Static networks (i.e., Mesh, Hypercube, ...) are formed of point-to-point direct connections, which will not change during program execution • Dynamic networks (i.e., Bus, Multistage, ...) are implemented with switched channels, which are dynamically configured to match communication demand in user program
Static Interconnects Static networks use direct links which are fixed once built. Suitable for building computers where communication patterns are predictable or implementable with static connections. Example Interconnects: • Linear array, Ring • Mesh, Torus • Hypercubes, ...
0 1 2 3 N-2 N-1 . . . i j (S) (D) Static Interconnects Nodes = N Linear Array (1D Array) Routing Function - “Self routing” Is a communication process where every intermediate node knows where to send incoming message to destination Node i compare its ID with dest. ID if dest.ID >, send if dest ID <, send
0 15 1 2 14 3 13 0 1 2 3 4 12 7 6 5 4 11 5 8 9 10 11 6 10 9 7 8 15 14 13 12 Static Interconnects Linear Array (cont.) is 1-D network in which N nodes are connected by N-1 links in a line Ring is obtained by connecting two terminal nodes of linear array with one extra link
0 1 2 m-2 m-1 . . . 0 1 n-1 . . . . . . . . . Static Interconnects Node N = m x n Mesh (2D Array) Diameter = m-1+n-1 Degree = 2(corner nodes) 3 (side nodes) 4(middle nodes) Routing Function “Row-wise routing” Source compares row first (its row & Dest’s row) if Dest row <, send if Dest row >, send It then compares columns (its col & Dest’s col) if Dest col >, send if Dest col <, send
k = 2, n = 3 k = 2, n = 3 Static Interconnects Mesh (cont.) k-D Mesh with N = nk nodes Torus (a variation of mesh) has a ring connection along each row & each col
1 • 0 0 2-cube • 1 • 0 0 • 1 • 0 0 1 1 0 0 1 1 0 0 0 1 0 1 1-cube 3-cube (xk-1xk-2...x1x0) 2 nodes are adjacent if they differ in exactly 1 bit (yk-1yk-2...y1y0) 0 1 0 1 0 1 0 1 0 1 Static Interconnects Hypercube(Binary k-cubes) k-cube is special case of k-D array (2 nodes/D) • Every node is labeled k bits(xk-1xk-2...x1x0) Node N = 2k Diameter = k Degree = k n-cube can be formed by interconnecting corresponding nodes of two (n-1)-cubes Communication Rule
1 1 0 0 1 1 0 0 • 1 • 0 0 • 1 • 0 0 S D 0 1 0 1 4 5 2 3 0 1 6 7 0 1 S 0 1 Static Interconnects Hypercube(cont.) Point-to-point Routing compare IDs of S & D, if S > D look at left most bit S 101 D 000 Broadcasting (suppose from 0) Step 3 0 4 1 5 2 6 3 7 Step 1 0 1 Step 2 0 2 1 3
110 111 110 111 010 011 010 011 100 101 100 101 001 000 001 000 110 000 001 010 011 100 101 110 010 111 000 101 100 011 001 111 Static Interconnects 3-D Hypercube Routing Network Routing by least significant bit (C0) Routing by middle bit (C1)
110 111 010 011 100 101 001 000 100 011 010 001 111 101 110 000 Static Interconnects Hypercube Routing Network (cont.) Routing by most significant bit (C2) • In general, n-D hypercube has n fns., • Routing by least significant bit (C0) • Routing by middle bits (C1, C2, ..., Cn-2) • Routing by most significant bit (Cn-1)
Dynamic Interconnects For general-purpose applications, we need to use dynamic connections (which can implement all communication patterns based on program demands) Dynamic INs include • Digital Buses • Multistage INs • Omega, Flip, Baseline • Crossbar switch networks • Butterfly networks Low cost High cost