1、1,计算机系统结构 第七章 互连网络,武汉工业学院 主讲教师:易 逵,2,计算机系统结构,第一章 基本概念 第二章 指令系统 第三章 存储系统 第四章 输入输出系统 第五章 标量处理机 第六章 向量处理机 第七章 互连网络 第八章 并行处理机 第九章 多处理机,3,第七章 互连网络,7.1 互连网络的基本概念 7.2 互连网络的种类 7.3 消息传递机制,4,7.1 互连网络的基本概念,7.1.1 互连网络的作用7.1.2 互连网络的特性7.1.3 互连网络的性能参数7.1.4 互连网络的表示方法7.1.5 互连函数,5,7.1.1 互连网络的作用,用来实现计算机系统内部多个处理机或多个功能部
2、件之间的相互连接。 互连网络已成为并行处理系统的核心组成部分。 互连网络对整个计算机系统的性能价格比有着决定性的影响。 一个例子:具有本地存储器、私有高速缓存、共享存储器和共享外围设备的一般处理机系统的互连结构,6,7,7.1.2 互连网络的特性,互连网络通常是用有向边或无向边连接有限个结点的组成。互连网络的主要特性有: (1)网络规模:网络中结点的个数 (2)结点度:与结点相连接的边数称为结点度进入结点的边数叫入度从结点出来的边数则叫出度 (3)距离:两个结点之间相连的最少边数 (4)网络直径:网络中任意两个结点间距离的最大值。用 结点间的连接边数表示,8,7.1.3 互连网络的性能参数,发
3、送方的步骤如下: (1)用户程序把要发送的数据拷贝到系统缓冲区。 (2)缓冲区中的数据打包并发送到网络接口部件。 (3)网络接口硬件开始发送消息。 数据包的接收步骤如下: (1)把数据包从网络接口部件拷贝到系统缓冲区。 (2)检查收到的数据包,如果正确,发回答信号。 (3)把接收到的数据拷贝到用户地址空间。 发送方接收到回答信号后释放系统缓冲区,9,互连网络的主要性能参数: (1)频带宽度(Bandwidth):传输信息的最大速率 (2)传输时间(Transmission time):等于消息长度除以频带宽度 (3)飞行时间(Time of flight):第一位信息到达接收方所花费的时间 (
4、4)传输时延(Transport latency):等于飞行时间与传输时间之和 (5)发送方开销(Sender overhead):处理器把消息放到互连网络所用的时间 (6)接收方开销(Receiver overhead):处理器把消息从互连网络上取出来所用的时间,10,一个消息的部时延可以用下面公式表示:总时延=发送方开销+飞行时间+消息长度/频带宽度+接收方开销 例7.1:假设一个网络的频宽为10Mb/S,发送方开销为 230us,接收方开销分别为270us。如果两台机器相距100 米,现在要发送一个1000字节的消息给另一台机器,试 计算总时延。如果两台机器相距1000公里,那么总时延
5、为多大?,11,解:光的速度为299792.5KM/S,信号在导体中传递速度大约是光速的50%。相距100米时总时延为:,相距1000公里时的总时延为:,12,7.1.4 互连网络的表示方法,为了在输入结点与输出结点之间建立对应关系,互连网络有三种表示方法: (1)互连函数表示法:如:f(xn-1x1x0)=x0xn-2x1xn-1 (2)图形表示法 (3)输入输出对应表示法,13,7.1.5 互连函数,1、交换函数(Exchange) 函数关系:把二进制结点号的某一位取反当n=3时,有3种函数,表示8个结点之间的连接关系。由于交换函数主要用于超立方体互连网中,因此也称为超立方体函数,用Cub
6、e表示,如:Cube0、Cube1、Cube2等。,15,2、全混洗函数(Perfect shuffle) 函数关系:把二进制结点号循环左移一位子混洗(subshuffle)S(k),最低k位循环左移一位 超混洗(supershuffle)S(k),最高k位循环左移一位 S(k)(xn-1xn-2xkxk-1xk-2x1x0)=xn-1xn-2xkxk-2x1x0xk-1 S(k)(xn-1xn-2xn-kxn-k-1x1x0)=xn-2xn-kxn-1xn-k-1x1x0显然成立: S(n)(x)=S(n)(x)=S(x)S(1)(x)=S(1)(x)=x 逆混洗函数:S(-1)(xn-1x
7、n-2x1x0)=x0xn-1xn-2x1,17,3、蝶式函数(Butterfly) 蝶式函数的名称来自于FFT变换时的图形,如蝴蝶式样。函数关系:将二进制结点号的最高位和最低位互换位置。子蝶式(subbutterfly)B(k)最低k位的高低位互换超蝶式(superbutterfly)B(k)最高k位的高低位互换 B(k)(xn-1xn-2xkxk-1xk-2x1x0)=xn-1xn-2xkx0xk-2x1xk-1 B(k)(xn-1xn-2xn-kx1x0)=xn-kxn-2xn-k+1xn-1xn-k-1x1x0 显然成立: B(n)(x)=B(n)(x)=B(x)B(1)(x)=B(1
8、)(x)=x,18,4、反位序函数(Bit Reversal) 函数关系:将二进制自变量的位序反过来子反位序函数,最低k位的位序反过来 超反位序函数,最高k位的位序反过来 R(k)(xn-1xn-2xkxk-1x1x0)=xn-1xn-2xkx0x1xk-1 R(k)(xn-1xn-2xn-kxn-k-1x1x0)=xn-kxn-k+1xn-1xn-k-1x1x0 对于n=3的情况,蝶式函数与反位序函数正好相同,因此有,R=B,R(2)=B(2),R(2)=B(2)。,5、移位函数 函数关系:将输入端结点循环移动一定的位置A(x)=(x+r)mod2n,0x2n 经常取r=2i,因此移数函数又
9、称为加减2i函数、PM2I函数等。,21,例7.2:假设16个处理机的编号分别为0、1、15,采 用单级互连网络。互连函数分别为: (1)Cube3 (2)PM2+3 (3)PM2-3 (4)Shuffle (5)Butterfly (6)Reversal 计算第12号处理机分别与哪一个处理机相连接?,22,解:(12)10=(1100)2(1)Cube3,1100最高位取反得0100,与4号处理机连接(2)PM2+3,(12+8)MOD16=4,与4号处理机连接(3)PM2-0,12-1=11,与11号处理机连接(4)Shuffle,1100循环左移1位得1001,与9号处理机连接(5)Bu
10、tterfly,1100的最高与最低位交换得0101,与5号处理机连接(6)Reversal,1100的位序反过来为0011,与3号处理机连接,23,第七章 互连网络,7.1 互连网络的基本概念 7.2 互连网络的种类 7.3 消息传递机制,24,7.2 互连网络的种类,静态互连网络:连接通路是固定的,一般不能实现任意结点之间的互连。 循环互连网络:通过多次重复使用同一个单级互连网络以实现任意结点之间的互连。 多级互连网络:将多套相同的单级互连网络连接起来,实现任意结点之间的互连。 全排列互连网络:能够同时实现任意结点之间的互连。 全交叉开关网络:能够同时实现任意结点之间的互连,还能够实现广播
11、和多播。,25,7.2 互连网络的种类,7.2.1 静态互连网络7.2.2 循环互连网络7.2.3 多级互连网络7.2.4 全排列互连网络7.2.5 全交叉开关网络,26,7.2.1 静态互连网络,按照网络的互连特性为特征分类,可分为如下几类: 1、静态互连网络 在各结点之间有固定的连接通路,在运行过程不能改变的网络结构。 一般静态互连网络不能实现任意结点之间的互连。 一维的有:线性阵列结构;二维的有:环形、星形、树形、网络形等;三维的有:立方体等;三维以上的有超立方体等。,2、超立方体网 n维立方体由N=2n个结点,分布在n维上 超立方体网采用交换函数 网络规模为2n个结点 结点度为n 直径
12、为n,28,3、环形网 采用移数函数 单向环形网:右环网采用PM2+0函数,左环网采用PM2-0函数,对称,直径是N,结点度是2 双向环形网:又称一维邻居网,采用PM2+0,PM2-0函数,对称,直径为N/2,结点度是2,29,弦环网:增加的弦愈多,则结点度愈高,网络直径愈小。 循环移数网络:将每个结点与其距离为2的整数幂的结点连接构成。循环移数网的结点度为2n-1,直径为n/2。,5、网络形网 二维网格网:结点度为4,直径为2(n-1)。 k维网格网:网络规模为N=nk,结点度为2k,直径为k(n-1)。 环网形网格网:沿阵列每行每列都有环形连接。nn二元环网的结点度为4,直径为2n/2。环
13、网形网格网是一种对称的拓扑结构。,32,7.2.2 循环互连网络,一般静态互连网不有实现任意两结点之间的互连。有两种解决办法: 循环互连网:多次重复使用同一个单级互连网络 多级互连网:将多套相同的单级互连网络连接起来 前一种方法是牺牲时间换取设备,后一种方法是以设备换取时间 RN为网络连接寄存器,它有三个用处:发送消息,接收消息,转发消息,33,例如:对于一个3维立方体网,如果要从PE0发送消息到 PE3,需要经过如下4步: 周期1:PE0RN0,周期2:RN0RN1 周期3:RN1RN3,周期4:RN3PE3,34,7.2.3 多级互连网络,循环互连网络虽然能够实现结点之间的任意互连,但是其
14、通信速度低。 多级互连网络采用多个相同的或不同的单级互连网络直接连接起来。一个时钟周期就能够实现任意结点之间的互连。 多级互连网络采用的关键技术:(1)交换开关,(2)交换开关之间的拓扑连接,(3)对交换开关的不同控制方式。,35,1、交换开关 一个ab交换开关有a个输入和b个输出。最常用的二元开关:a=b=2。 每个输入可与一个或多个输出相连,但是在输出端必须避免发生冲突。一对一和一对多映射是容许的,但不容许有多对一映射。 只容许一对一映射时称为置换连接,称这种开关为交叉开关。 具有直能和交换两种功能的开关称为二功能开关,或交换开关。用一位控制信号控制。 具有所有4种功能的交换开关称为四功能
15、开关,用两位控制信号控制。,36,交换开关和合法状态,37,2、拓扑结构 前一级交换开关的输出端与后一级交换开关的输入端间的连接模式称为拓扑结构。 通常采用前面介绍过的互连函数实现拓扑结构。3、控制方式 有多级交换开关,每一级又有多个交换开关。通常有三种控制方式 级控制:同一级交换开关使用同一个控制信号控制。 单元级控制:每个交换开关分别控制。 部分级控制:第i级使用i+1个控制信号控制(0in-1)。 同一个多级互连网络分别采用三种不同的控制方式,可以构成三种不同的互连网络。,4、多级立方体网,39,4、多级立方体网 采用二功能开关,总共需要开关n2n-1个。 采用交换函数,各级分别采用E0
16、,E1,En-1函数。 当所有开关都直通时,实现恒等变换。当A、B、C、D交换,其余直通实现E0函数。当E、F、G、H交换,其余直通实现E1函数。当I、J、K、L交换,其余直通实现E2函数。 采用不同的控制方式,可构成不同的互连网络采用级控制,可以构成STARAN交换网。采用部分级控制,可以构成STARAN移数网。采用单元级控制可以构成间接二进制n方体网。,40,7.2.4 全排列互连网络,循环互连网络和多级互连网络不能实现同时多个结点之间的互连。例如:多级立方体网中,如果要求同时实现05和17的互连,在开关A发生冲突。 全排列互连网络不仅能够实现任意结点之间的互连,而且能够实现同时任意结点之
17、间的互连。 解决方法:采用多个多级互连网络连接。 原理:N个结点的全排列需要有N! N个结点的多级互连网络共有二功能开关n2n-1个,共有不同的状态种类:,41,7.2.5 全交叉开关网络,全交叉开关网络除了能够实现同时任意结点之间的互连之外,还能够实现广播和多播。 在多处理机系统中,处理机、存储器和IOP之间用交叉开关网络连接。,42,第七章 互连网络,7.1 互连网络的基本概念 7.2 互连网络的种类 7.3 消息传递机制,43,7.3 消息传递机制,7.3.1 消息寻径方式7.3.2 虚拟通道7.3.3 流控制策略7.3.4 选播与广播,44,7.3.1 消息寻径方式,1、线路交换(ci
18、rcuit switch) 先建立一条从源结点到目的结点的物理通路,然后传递消息。 传输时延用公式:T=(Lt/B)D+L/B,其中:Lt为建立路径所需的小信息包的长度,L为信息包的长度,D为经过的结点数,B为带宽。 优点:实际通信时间较短,使用缓冲区少。 缺点:建立物理通路和开销很大,占用物理通路和时间很长。,45,2、存储转发(store and forward) 每个结点有一个包缓冲区,包从源结点经过中间结点到达目的结点。 存储转发网络的时延与源和目的地之间的距离成正比。时延用公式:T=(L/B)D+L/B=(D+1)L/B 优点:占用物理通路的时间比较短。 缺点:包缓冲区大,时延大(与
19、结点距离成正比)。,46,3、虚拟直通(virtual cut through) 当接收到用作寻径的消息头部时,即开始路由选择。通信时延公式:T=(Lh/B)D+L/B=(LhD+L)/BL/B其中:Lh是寻径头部的长度,一般LLhD 当出现寻径阻塞时,只能将整个消息存储在寻径结点中。 优点:通信延迟与结点数无关。 缺点:每个结点需要有足够大的缓冲区。在最坏的情况下与存储转发方式的通信时延相同,经过的每个结点都阻塞,都需要缓冲。,47,4、虫蚀寻径(wormhole) 把包分成更小的片。每个结点的寻径器中设置有片缓冲区。 用头片直接开辟一条从输入结点到输出结点的路径。每个消息中的片以流水方式在
20、网络中向前“蠕动”。 当消息的头片到达一个结点的寻径器后,寻径器根据头片的寻径消息立即做出路由选择。 如果所选择的通道或结点的片缓冲区不可用时,头片必须在该结点的片缓冲区中等待,其它数据片也在原来的结点上等待。,48,时延公式:T=TfD+L/B=(Lf/B)D+L/B=(LfD+L)/B,其中:Lf是片的长度,Tf是片经过一个结点所需时间。一般有:LLfD,时延近似为:T=L/B,与结点数无关。 优点:每个结点的缓冲区较小。较低的网络传输时延:通道共享性好,利用率高;易于实现选播和广播通信方式。 缺点:当消息的一个征被阻塞时,整个消息都被阻塞。,49,7.3.2 虚拟通道,1、虚拟通道虚拟通
21、道是两个结点间的逻辑链路,由源结点的片 缓冲区、结点间的物理通道及接收结点的片缓冲区组成。,50,2、死锁的产生与避免 缓冲区或通道上的循环等待会引起死锁。 利用虚拟通道可以减少死锁。 虚拟通道可能会使每个请求可用的有效通道频宽降低。,通道死锁,51,7.3.3 流控制策略,在相邻结点间传送片时,必须具备三个条件:(1)源缓冲区已存有该片;(2)通道已分配好;(3)接收缓冲区准备接收该片。 接收缓冲区或输出通道冲突的仲裁:(1)把后一个包暂时存放在缓冲区。(2)阻塞后一个包。(3)场弃后一个包。(4)绕道。 维序寻径算法:按照特定顺序选择后继通道。(1)在二维网格网络中称为X-Y寻径:例如,X优先于Y。(2)在超立方体中称为E立方体寻径:逐维改变。,52,7.3.4 选播与广播寻径算法,四种通信模式:(1)单播(unicast),一对一传送。(2)选播(multicast),从一个源结点发送同一消息到目的结点。(3)广播(broadcast),从一个源结点发送同一消息到全部结点。(4)会议(conference),多到多的通信情况。 扩充选播树的原则:选择某些维使剩余目的结点的集合最小。 贪婪选播算法所需的通道数,与多次单播或广播树所需的通道数相比要少。,54,本章重点:,1、主要的互连函数 2、几种典型互连网络的构成方法及特点 3、寻径方式的原理及优缺点,