互连网络

一、基本概念

互连网络是一种由开关元件按照一定的拓扑结构和控制方式构成的网络,用来实现计算机系统中结点
之间的相互连接。

1.1 互连网络的种类

静态互连网络:连接通路是固定的,一般不能实现任意结点到结点之间的互连。
循环互连网络:通过多次重复使用同一个单级互连网络以实现任意结点到结点之间的互连 。
多级互连网络:将多套相同的单级互连网络连接起来,实现任意结点到结点之间的互连。
全排列互连网络:能够同时实现任意结点到结点之间的互连。
全交叉开关网络:能够同时实现任意结点到结点之间的互连,还能够实现广播和多播。

1.2 互连网络的性能参数

⑴  网络规模
网络中的结点数。用于表示网络中所能连接的部件的多少。

⑵ 连接度(结点度)
网络中与结点相连接的边的数目。用于表示结点所需要的 I/O 端口数。
入度:进入结点的通道数。
出度:从结点出来的通道数。
结点度=入度+出度。
结点度也反映了一个结点与其他结点的连接程度。

⑶ 连接数
网络中所有结点之间连接的数量,即通路(边数)的总和。

⑷ 距离
网络中两结点之间相连的最少边数。

⑸ 网络直径
网络中任意两结点之间距离的最大值。
网络直径反映了从一个结点传送信息到任何另一个结点所需的时间,即网络的延时性。

另外,带宽、可靠性和成本也是反映网络性能的重要指标。

1.3 互连网络设计时应考虑的因素

⑴ 通信工作方式(定时方式)

①  同步方式
用统一的时钟同步各PE的并行操作以及控制器向处理单元广播命令的操作。
SIMD并行机都采用同步方式。
同步方式的控制比较简单。
②  异步方式
不用统一时钟同步操作,各个处理单元根据需要相互建立动态连接。    
异步方式的控制比较复杂。

⑵ 控制策略

①  集中式控制
由一个统一控制器对各个互连开关状态加以控制。
一般的SIMD并行机都采用集中控制。
②  分散式控制
由各个互连开关自身实行管理。

⑶ 交换方式

①  线路交换
在整个交换过程中,在源和目标结点之间建立固定的物理通路。
线路交换适用于成批数据传送。
②  分组交换
把要传送的一个信息分成多个分组,分别送入互连网络。这些分组可通过不同的路由到达目标结点。
分组交换适合于短数据报文的传送。
SIMD并行机一般采用线路交换,因为处理单元间的联接比较紧密。MIMD多机系统多采用分组交换方式。

⑷ 网络拓扑

拓扑:互连网络中的各个结点间连接关系,通常用图来描述。

①  静态拓扑
在各结点间有专用的连接通路,且在运行中不能改变。
静态拓扑一维的有线性阵列结构,二维的有环形、星形、树形、网格形等,三维的有立方体等,三维以上的有超立方体等。

②  动态拓扑
各结点之间的连接通路中设置有源开关,可根据需要利用控制信号对连接通路加以重新组合。
动态拓扑主要有单级循环网络和各种多级互连网络等。

二、互连函数

每种互连网络可用一组互连函数来定义,互连函数反映了不同互连网络的连接特性。
若将互连网络的N个输入端和N个输出端分别用整数0,1,…,N-1表示,则互连函数表示互相连接的输出端号
与输入端号的一一对应关系。
或者说,存在互连函数f,输入i与输出f(i)相连,0≤i≤N-1。
当用互连网络实现PE与PE之间的数据变换时,互连函数也反映了输入数组与输出数组间对应的置换或排列关系,
因此互连函数也称为置换函数或排列函数。

2.1 互连函数的表示方法

⑴ 输入输出对应表示法

|  0    1    2  ...   n-1 |
|f(0) f(1) f(2) ... f(n-1)|

⑵ 函数表示法

用x表示输入端变量,f(x)表示互连函数。
通常把 N 个输入端 x 用N位二进制形式表示为:

互连函数对应表示为

如果

即127号输入与254号输出关联。

三、常用的单级互连网络

3.1 交换互连网络(Exchange)

在网络规模为N的互连网络中,交换互连网络的互连函数为:

E(x)k=(bn-1…bk…b0) 其中:0≤k≤n- 1,n=log2N

即把输入端 x的二进制编码的第k位变反就可得到对应的输出排列。也写成

3.2 混洗互连网络(Shuffle)

全混洗

Shuffle(bn-1bn-2… b1 b0) =(bn-2…b0 bn-1)

即将输入端x的二进制编码循环左移一次就可得到输出端的二进制编码。也写成

若再进行一次混洗,则得到新的函数:

子混洗(subshuffle)S(k) ,最低k位循环左移一位
超混洗(supershuffle)S(k),最高k位循环左移一位

显然:

逆混洗函数:

3.3 蝶式互连网络(Butterfly)

Butterfly(bn-1bn-2… b1b0) =(b0 bn-2… b1bn-1)

即将输入端x的二进制编码的最高位与最低位互相交换位置就可得到输出端的二进制编码。也写成

子蝶式(subbutterfly)B(k) 最低k位的高低位互换
超蝶式(superbutterfly)B(k) 最高k位的高低位互换

显然

3.4 反位序互连网络(Bit Reversal permutation)

即将输入x的二进制编码的位序颠倒就可得到输出端的二进制编码。

子反位序函数,最低k位的位序反过来;
超反位序函数,最高k位的位序反过来.

3.5 移数互连网络(shift purmutation)

α (x)=(x+1) mod 2n              0≤x≤N

移数互连函数相当于把N个输入端的二进制编码同时移动一个位置。即把x的 n 位二进制编码的末位上
加上“1”再取模2n,就是输出端的二进制编码。
移数互连函数用x的十进制编码更容易表示。
一般地,如果需要把N个输入端同时移动m个位置传到输出端,则移数互连函数可写为:

α (x)=(x+m) mod N 0≤x≤N

3.6 PM2I互连网络

PM2I互连网络是“加减2i”单级网络的简称,又称循环移数网。它的互连函数为移数互连网络的特例:

PM2±i(j)=(j±2i) mod N

式中:0≤i≤n-1,0≤j≤N-1,n=log2N,N是网络中的结点数。这种互连网络中共有2n个互连函数。

3.7 混洗交换互连网络

混洗交换互连网络由全混洗Shuffle(x) 和交换网络Exchange0 (x)复合而成。

也是