1.24k likes | 1.48k Views
第一章 基本概念 第二章 指令系统 第三章 存储系统 第四章 输入输出系统 第五章 标量处理机 第六章 向量处理机 第七章 互连网络 第八章 并行处理机 第九章 多处理机. 计算机系统结构. 第七章 互连网络. 互连网络是一种由开关元件按照一定的 拓扑结构 和 控制方式 构成的网络 用于实现计算机系统内部多个处理机或多个功能部件之间的 相互连接. 第七章 互连网络. 互连网络的基本概念 消息传递机制. 7.1 互连网络的基本概念. 互连网络的作用 互连函数 互连网络的特性和传输的性能参数 互连网络的种类.
E N D
第一章 基本概念 第二章 指令系统 第三章 存储系统 第四章 输入输出系统 第五章 标量处理机 第六章 向量处理机 第七章 互连网络 第八章 并行处理机 第九章 多处理机 计算机系统结构
第七章 互连网络 • 互连网络是一种由开关元件按照一定的拓扑结构和控制方式构成的网络 • 用于实现计算机系统内部多个处理机或多个功能部件之间的相互连接
第七章 互连网络 • 互连网络的基本概念 • 消息传递机制
7.1 互连网络的基本概念 • 互连网络的作用 • 互连函数 • 互连网络的特性和传输的性能参数 • 互连网络的种类
7.1.1互连网络的作用 • 用来实现计算机系统内部多个处理机或多个功能部件之间的相互连接。 • 为并行处理系统的核心组成部分。 • 对整个计算机系统的性能价格比有着决定性的影响。
…… SM1 SM2 SMm (共享存储器) IPMN …… (共享I/O与外设) Cn 磁盘 PION 磁带 LM Pn 打印机 …… …… C1 终端 … LM P1 …… 网络 IPCN • 具有本地存储器、私有高速缓存、共享存储器和共享外围设备的一般处理机系统的互连结构 • IPMN(处理机-存储器网络) • PION(处理机-I/O网络) • IPCN (处理机之间通信网络) • P(处理机) C(高速缓冲存储器) • SM(共享存储器) LM(本地存储器)
0 1 2 ... N-1 f(0) f(1) f(2)...f(N-1) 7.1.2互连函数 • 互连函数 • 将互连网的N个输入和N个输出端分别用整数(0, 1, 2, ..., N-1)来表示,则表示相互连接的输出端号和输入端号之间的一一对应关系 • 表示方法: • 互连函数法,图形表示法, 输入输出对应表示法 • 函数表示法: • x表示输入端号,常用n位二进制形式表示 xn-1xn-2...x1x0 • f(x)表示互连函数,为:f(xn-1xn-2...x1x0 ) • 图形表示法: • 用图形表示输入和输出端之间的连接 • 输入输出对应(矩阵)表示法: • 循环表示法: 把互连函数f(x)表示为:(x0,x1,...,xj) (xk,xk+1,...,xl) ... • 表示对应关系为: f(x0)=x1,f(x1)=x2,...,f(xj)=x0 • j+1称为该循环的长度
常用的互连函数如下: • 1 恒等置换: I( xn-1xn-2 ...x1x0 )= xn-1xn-2 ...x1x0
2 交换置换Exchange • 实现二进制地址编号中第0位位值不同的输入和输出端之间的连接。 E(xn-1xn-2 ...x1x0 )= xn-1xn-2 ...x1x0 • 其他互连函数还有:方体置换、均匀洗牌置换、蝶式置换、位序颠倒置换、移数置换、加减2i置换
3、方体置换Cube • 当n=3时,共有3种函数,每种函数能够表示8个结点之间的连接关系。 • 由于交换函数主要用于超立方体互连网中,因此也称为超立方体函数,用Cube表示,如:Cube0、Cube1、Cube2等。 • 用交换函数构成的互连网络的结点度为n,网络直径也为n。
C1 C2 C0 变化发生在 0,1,2位 分别是高 2,1,0位相同的为一个组 组内加/减 1,2,4
4、均匀洗牌置换Perfect shuffle • 把二进制结点循环左移一位。 • 子混洗(subshuffle)S(k)最低k位循环左移一位 • 超混洗牌(supershuffle) S(k)最高k位循环左移一位 显然成立: 逆混洗函数: 教材P397L2,3,6错
4、均匀洗牌置换Perfect shuffle • 子洗牌是将整组数据分成若干个子组,对每个子组完成均匀洗牌变换。S(2)分两组0,1,2,3;4,5,6,7 • 只用均匀洗牌函数不能实现任意结点之间的互连 • 通常用均匀洗牌函数与其他函数,如交换函数一起构成互连网络。 • 均匀洗牌与逆均匀洗牌是两种十分有用的互连函数 • 以它们代表的链路与以交换置换代表的开关多级组合起来可构成Omega(Ω)网络与逆Omega(Ω^-1)网络。 • 逆均匀洗牌是均匀洗牌的逆函数,两者的输入端和输出端正好互换
5、蝶式置换Butterfly • 蝶式函数的名称来自于FFT变换时的图形,如蝴蝶式样。 • 将输入端二进制结点号的最高位和最低位互换位置。 • 子蝶式(subbutterfly) B(k)最低k位的最高位与最低位互换位置 • 超蝶式(superbutterfly) B(k)最高k位的最高位与最低位互换位置 • 显然成立 • 教材P398L1,2错
5、蝶式置换Butterfly • 与全混洗函数类似,只用蝶式函数也不能实现任意结点之间的互连。
6、位序颠倒置换Bit Reversal • 将输入端二进制地址的位序反过来就得相应输出的地址。 • 子反位序函数:最低k位的位序反过来 • 超反位序函数:最高k位的位序反过来 • 对于n=3的情况,正好有 R=B,R(2)=B(2),R(2)=B(2)。
7、移数置换 • 将输入端数组循环移动一定的位置向输出端传输。 • 也可以将整个输入数组分成若干个子数组,在子数组内进行循环移数置换,这种段内循环移数的表达式可写成为两个式子如下: (a)移数量换k=2(b)段内移数置换k=1,r=2
8、加减2i置换 其中:0 x N-1,0 i n-1,n = log2 N。
8、加减2i置换 • 通常采用移数函数可以构成环型网(包括单向环网、双向环网、弦环网)、方格网、移数网等。 • 例如,Illiac函数是构成Illiac IV阵列的基础,它包含PM20和PM2n/2等四个互连函数。 • 采用全部移数函数构成网络称为移数网,移数网的结点度d=2n-1,网络直径D=n/2
7.1.3互连网络的特性和传输的性能参数 • 1 互连网络的特性 • 互连网络通常是用有向边或无向边连接有限个结点的组成。 • 互连网络的主要特性有 • (1) 网络规模:网络中结点的个数 • (2) 结点度:与结点相连接的边数称为结点度。包括入度和出度。 • 进入结点的边数叫入度,从结点出来的边数则叫出度 • (3) 距离:两个结点之间相连的最少边数 • (4) 网络直径:网络中任意两个结点间距离的最大值。 • 用结点间的连接边数表示
7.1.3互连网络的特性和传输的性能参数 • (5) 等分宽度: • 当某一网络被切成相等的两半时,沿切口的最小边数(通道)称为通道等分宽度,用b表示。 • 于是线等分宽度就是B=b×w,w为通道宽度(用位表示)。 • 等分宽度是说明沿等分网络最大通信带宽的一个参数。 • 网络的所有其它横截面都应限在等分宽度之内。 • (6) 结点间的线长: • 两个结点间连线的长度。用米、公里等表示 • (7) 对称性: • 从任何结点看到拓扑结构都是一样的网络称为对称网络。 • 对称网络比较易实现,编程也较容易。
2 互连网络传输的性能参数 • 一台机器发送消息给另一台机器时,发送方的步骤如下: • (1) 用户程序把要发送的数据拷贝到操作系统的缓冲区。 • (2) 操作系统把缓冲区中的数据打包,并发送的网络接口部件。 • (3) 网络接口硬件开始发送消息。 • 数据包的接收步骤如下: • (1) 把数据包从网络接口部件拷贝到操作系统缓冲区。 • (2) 检查收到的数据包,如果正确,给接收方发回答信号。 • (3) 把接收到的数据拷贝到用户地址空间。发送方接收到回答信号后,释放系统缓冲区
互连网络在传输方面的主要性能参数 • (1) 频带宽度(Bandwidth): 互连网络传输信息的最大速率 • (2) 传输时间(Transmission time): 等于消息长度除以频宽 • (3) 飞行时间(Time of flight): 第一位信息到达接收方所花费的时间 • (4) 传输时延(Transport latency): 等于飞行时间与传输时间之和 • (5) 发送方开销(Sender overhead): 处理器把消息放到互连网络的时间 • (6) 接收方开销(Receiver overhead): 处理器把消息从网络取出来的时间
一个消息的总时延 • 总时延=发送方开销+飞行时间+消息长度/频宽+接收方开销
例7.1 • 假设一个网络的频宽为10Mb/S,发送方开销为230us,接收方开销为270us。如果两台机器相距100米,现在要发送一个1000字节的消息给另一台机器,试计算总时延。如果两台机器相距1000公里,那么总时延为多大? • 解 • 光的速度为299792.5KM/S,信号在导体中传递速度大约是光速的50%,相距100米时总时延 • 相距1000公里时的总时延
7.1.4互连网络的种类 • 互连网络的种类很多,分类方法也很多 • 以互连特性为特征,可分为如下几类 • 静态互连网络:连接通路是固定的,一般静态互连网络不能实现任意结点到结点之间的互连 • 循环互连网络:通过多次重复使用同一个单级互连网络以实现任意结点到结点之间的互连 • 多级互连网络:将多套相同的单级互连网络连接起来,实现任意结点到结点之间的互连 • 全排列互连网络:不仅能够实现任意结点到结点之间的互连,而且能够同时实现任意结点到结点之间的互连 • 全交叉开关网络:除了能够同时实现任意结点到结点之间的互连之外,还能够实现广播和多播
1 静态互连网络 • 静态互连网络是指在各结点间有专用的连接通路,且在运行中不能改变的网络 • 在静态互连网络中,每一个开关元件固定地与一个结点相连,建立该结点与邻近结点之间的连接通路,直接实现两结点间的通信 • 一维的有线性阵列结构 • 二维的有环形、星形、树形、网格形等 • 三维的有立方体等 • 三维以上的有超立方体等
(1)线性阵列 • 一种一维网络,其中N个结点用N-1条链路连成一行 • 内部的结点度为2,端点的结点度为1。直径为N-1 • 当N大时,直径也比较大。等分宽度b=1 • 线性阵列是最简单的拓扑结构。这种结构不对称,当N很大时,通信效率很低 • 在N很小的情况下,如N=2,实现线性阵列是相当经济的。 • 由于直径随N线性增大,因此当N比较大时,就不应使用这种网络了
0 1 2 3 7 6 5 4 8 9 10 11 15 14 13 12 (1)线性阵列 • 线性阵列与总线的区别是很大的,后者是通过切换与其连接的许多结点来实现时分特性的 • 线性阵列允许不同的源结点和目的结点对并发使用系统的不同部分(通道)
(2)环和带弦环(3)循环移数网络 • 采用移数函数。使用不同的移数函数,可以构成多种环形网 • 单向环行网 • 右环网,采用PM2+0函数 • 左环网,采用PM2-0函数 • 双向环行网:又称为一维邻居网,采用{PM2+0,PM2-0}函数 • 环行网是对称的,结点度是常数2 • 双向环网的直径为N/2,单向环形网的直径是N • 将结点度由2提高至3,可得到弦环网 • 增加的弦愈多,则结点度愈高,网络直径愈小 • 循环移数网络也是一种环形网,它将环上每个结点与其距离为2的整数幂的结点之间连接构成 • 循环移数网的结点度为2n-1,直径为[n/2]
2 1 2 1 0 3 0 3 15 15 4 4 14 14 0 1 13 13 7 2 7 6 3 7 5 4 10 9 8 10 9 8 循环移数网 度为3的带弦环 5 5 6 6 12 11 12 11 (2)环和带弦环(3)循环移数网络
(4)树形和星形(5)胖树形 • 一棵k层完全平衡二叉树有N=2^k-1个结点,结点度3,直径2(k-1) • 星形是一种特殊的2层树,结点度很高,为d=N-1,直径2 • 星形结构已用于有集中监督结点的系统中 • 二叉胖树的结点度从叶子结点往根结点逐渐增加 • 胖树缓解了一般二叉树根结点通信速度高的矛盾 星形网 二叉树网 二叉胖树网
(6)网格和环网形 • 网格网是一种比较流行的网络结构,有各种变体形式 • 在Illiac IV、MPP、DAP、CM-2和Inetl Paragon中得到了实现 • 一般网格网,N=n^k 结点的k维网格的结点度为2k,直径为k(n-1) • 环网形网格网沿阵列每行每列都有环形连接。 • 一个n×n二元环网的结点度为4,直径为2[n/2]。 • 环网是一种对称的拓扑结构。附加的回绕连接使直径减至的网格的一半 • 一个n×n Illiac网格直径为d=n-1,为纯网格直径的一半 • Illiac IV的8×8 Illiac网格,其结点度为4,直径为7
(6)网格和环网形 网格形 Illiac网 环形网
(7)搏动式阵列 • 这是一类为实现确定算法而设计的多维流水线阵列结构 • 图7.15(d)所示就是为完成矩阵相乘而专门设计的搏动式阵列。内部结点度为6 • 一般说来,静态搏动式阵列可在多个方向上使数据流变成以流水线方式工作 • 商用Intel iWarp系统就是用搏动式结构设计而成 • 自从1978年Kung和Leiserson提出搏动式阵列后,它已成为广泛研究的领域 • 通过确定的互连和同步操作,搏动式阵列可与算法的通信结构相匹配 • 对信号/图象处理等特殊应用,搏动式阵列可提供更好的性能/价格比 • 但结构的实用性有限,而且编制程序也很难
Y 010 011 111 110 X 000 101 100 Z (8)超立方体 • n维立方体由N=2^n个结点, 分布在n维上, 每维有两个结点 • 超立方体网采用交换函数,结点度为n,直径也为n • 4-立方体可通过将两个3-立方体的相应结点互连组成
(9)带环立方体 • 这种结构是从超立方体改进而来的 • 一个3-立方体可改成带环3-立方体(CCC)。构成的办法是将3-立方体的角结点(顶角)用一个结点环来代替 • 从一个k-立方体构成一个有n=2^k个结点环的带环k-立方体 • 所用的办法是用k个结点的环取代k维超立方体的每个顶角 • 这样,一个k-立方体可变成k×2^k个结点的k-CCC • 3-CCC的直径为6,比原来3-立方体的直径大一倍。一般说来,k-CCC的网格直径2k。CCC的主要改进之处即在其结点度为常数3,与超立方体的维数无关 • 一超立方体有N=2^n结点。一个有同样N结点数的CCC一定是由低维k-立方体组成,即2^n=k×2^k,其中k<n • 对应于n=6和k=4的情况,一个64结点的CCC可用4结点的环取代4-立方体的角结点组成。CCC的直径为2k=8,比6-立方体的6要长些。但是,CCC的结点度为3,比6-立方体的结点度6要小 • 容许一定的时延,CCC是一种构造可扩展系统的较好的结构
Y 010 011 111 110 X 000 101 100 Z (9)带环立方体
(10)k元n-立方体网络 • 环形、网格形、环网形、二元n-立方体(超立方体)和W网络都是k元n-立方体网络系列的拓扑同构体 • 参数n是立方体的维数,k是基数或者说是沿每个方向的结点数(多重性)。这两个数与网络中结点数N的关系为 • k元n-立方体的结点可用基数为k的n位地址A=a1a2…an来表示,其中ai代表第i维结点位置。为简单起见,所有链路都认为是双向的。网络中每条线代表两个通信通道,每个方向一个
图7.17 k=4和n=3的k元n-立方体网络 • (1)4结点串成绿色环 • (2)4绿色环并排成面,同一列用黄色环连接 • (3)4黄色面堆成体,同一行用蓝色环连接
(a)传统环网(4元2-立方体) (b)折叠连接的环网 • SHOW AVI
2 动态互连网络 • 动态互连网络设置有源开关 • 根据需要借助控制信号对连接通路加以重新组合,实现所要求的通信模式 • 包括总线、多级互连网和交叉开关网络
(1)总线 • 总线系统是一组导线和插座用于处理与总线相连接的处理机、存储器模块和外围设备间的数据业务 • 总线被称为多个功能模块间争用总线或时分总线 • 总线系统与其它两种动态连接网络相比,其价格较低,带宽较窄。有很多可用的工业和IEEE总线标准
(2)开关模块 • 一个ab开关模块有a个输入和b个输出。一个二元开关则与a=b=2的22开关模块相对应。实际中a和b通常选为a=b=2^k,k>=1 • 最常用的二元开关:a=b=2 • 每个输入可与一个或多个输出相连,但是在输出端必须避免发生冲突。一对一和一对多映射是容许的;但不容许有多对一映射 • 只容许一对一映射时称为置换连接,称这种开关为n×n交叉开关 • 具有直通和交换两种功能的交换开关称为二功能开关,或交换开关。用一位控制信号控制 • 具有所有四种功能的交换开关称为四功能开关,用两位控制信号控制
直通 交换 上播 下播 交换开关和合法状态 模块大小 合法状态 交换连接 2×2 4 2 4×4 256 24 8×8 16777216 40320 n×n nn n!
(3)多级网络 • 能够实现结点到结点之间的任意互连是互连网络的一种基本功能 • 多级互连网络采用多个相同的或不同的互连网络直接连接起来 • 属于组合逻辑线路,一个时钟周期就能够实现任意结点到结点之间的互连 • 多级互连网络采用的关键技术 • (1) 交换开关 • (2) 交换开关之间的拓扑连接 • (3) 对交换开关的不同控制方式
(3)多级网络 • (3a)拓扑结构(级间连接) • 前一级交换开关的输出端与后一级交换开关的输入端之间的连接模式称为拓扑结构 • 通常采用前面介绍的互连函数实现拓扑结构 • 从结点的输出到第一级交换开关的输入,及从最后一级交换开关的输出到结点的输入也可以采用拓扑结构连接 • (3b)控制方式 • 在多级互连网络中有多级交换开关,每一级又有多个交换开关 • (1)级控制:同一级交换开关使用同一个控制信号控制 • (2)单元级控制:每个交换开关分别控制 • (3)部分级控制:如,第i级使用i+1个控制信号控制 (0<=i<=n-1) • 同一个多级互连网络分别使用三种不同的控制方式,可以构成三种不同的互连网络
(3c)多级立方体网 • 采用二功能开关,总共需要开关 n 2^(n-1)个。 • 采用交换函数构成拓扑结构,各级分别采用E0、E1、…En-1交换函数 • 当所有开关都直通时,实现恒等变换 • 当A、B、C、D四个开关交换,其余直通时实现 E0互连函数 • 当E、F、G、H四个开关交换,其余直通时实现 E1互连函数 • 当I、J、K、L四个开关交换,其余直通时实现 E2互连函数 • 采用三种不同的控制方式,可以构成三种不同的互连网络。 • 采用级控制可以构成STARAN交换网 • 采用部分级控制,可以构成STARAN移数网 • 采用单元控制可以构成间接二进制n方体网