体系结构29_多处理机的互联网络

       互连网络是将集中式系统或分布式系统中的结点连接起来所构成的网络,这些结点可能是处理器、存储模块或者其它设备,它们通过互连网络进行信息交换。在拓扑上,互连网络为输入和输出两组结点之间提供一组互连或映象(mapping)

       互连网络的拓扑可以采用静态或动态的结构。静态网络由点和点直接相连而成,这种连接方式在程序执行过程中不会改变。

       动态网络是用开关通道实现的,它可动态地改变结构,使其与用户程序中通信要求匹配

       静态网络常用来实现一个系统中子系统或计算结点之间固定连接。动态网络常用于集中式共享存储器多处理系统中。

 定义几个常用于估算网络复杂性、通信效率和价格地参数

  网络可用图来表示。这种图由用有向边或无向边连接的有限个结点构成。其结点数称为网络规模(network size)

  结点度:与结点相连接的边的数目称为结点度(node degree)。这里的边表示链路或通道。链路或通道是指网络中连接两个结点并传送数字信号的通路。在单向通道的情况下,进入结点的通道数叫做入读(in degree),而从结点出来的通道数叫做出度(out degree),结点度是这两者之和。结点度应尽可能地小并保持恒定。

网络直径:网络中任意两个结点间最短路径长度的最大值称为网络直径。网络直径应当尽可能地小

等分宽度:在将某一网络切成相等两半的各种切法中,沿切口的最小通道边数称为通道等分宽度b(channel bisection width)

结点间的线长(或通道长度):它会影响信号的延迟、时钟扭斜和对功率的需要。

对于一个网络,如果从其中的任何一个结点看,拓扑结构都是一样的话,则称此网络为对称网络。对称网络较易实现,编址程序也较容易。

路由(routing):在网络通信中对路径的选择与指定。通常见到的处理单元之间的数据路由功能有移数、循环、置换(一对一)、广播(一对全体)、选播(多对多)、个人通信(一对多)、混洗、交换等。

为了反映不同互连网络的连接特性,每一种互连网络可用一组互连函数来定义。如果把互连网络的N个入端和N个出端各自用整数0,1,...,N-1代表,则互连函数表示互连的出端号和入端号的一一对应关系

令互连函数为f,则它的作用是:对于所有的0<=j<=N-1同时存在入端j连至出端f(j)的对应关系

   

为了对n=2的k次方个对象均匀混洗,我们可用k位二进制数x = (Xk-1,...,X1,X0)来表示定义域中的每个对象。均匀混洗将x映射到f(x),得到f(x) = (Xk-2,....,X1,X0,Xk-1)。这是将x循环左移1位得到。

5.广播和选播

广播是一种一对全体的映射,选播是一个子集到另一子集(多对多)的映射。消息传递型多处理机一般有广播信息机构,广播常常作为多处理机中的全局操作来处理。

6.消息传递机制

消息由任意长度固定的包构成

*存储转发:每个结点有一个包缓冲古,包先进入缓冲区,当所需要的输出通道和接收结点的包缓冲区可用时,就将它传输给下一结点。

*虫蚀(wormhole)把包进一步分成小片,硬件路由器有片缓冲区,同一个包中所有片象不可分离的同伴一样,以流水方式顺序传送。只有片头包含目标地址,所有片必须跟随片头

*维序  按多维网络维序的特定顺序来选择后续通道。由于唯一性,可能产生死锁

*虚拟自适应  将一个物理通道分成几个虚拟的通道,根据后续各虚拟通道的忙闲情况自适应选择后续通道。

通过上面的讨论,我们可概括出影响互连网络性能的因素为:

(1)功能特性-即网络如何支持路由、中断处理、同步、请求/消息组合和一致性

(2)网络时延-即单位消息通过网络传送时最坏情况下的时间延迟

(3)带宽-即通过网络的最大数据传输率,用M字节/秒表示

(4)硬件复杂性-即诸如导线、开关、连接器、仲裁和接口逻辑等的造价

(5)可扩展性-即在增加机器资源使性能可缩放的情况下,网络具备模块化可缩放的能力

静态连接网络

静态网络使用直接链路,它一旦构成后就固定不变。这种网络比较适合于构造通信模式可预测或可用静态连接实现的计算机系统。

线性阵列(linear array)这是一种一维的线性网络,其中N个结点用N-1个链路连成一行。内部结点度为2,端结点度为1.直径为N-1,N较大时,直径就比较长。等分宽度b = 1。线性阵列是连接最简单的拓扑结构。这种结构不对称,当N很大时,通信效率很低。

在N很小的情况下,实现线性阵列是相当经济和合理的。由于直径随N线性增大,因此当N比较大时,就不应使用这种方案了。

线性阵列与总线的区别是很大的,总线是通过切换与其连接的很多结点来实现时分特性的,而线性阵列则允许不同的源节点和目的结点对并行地使用其不同的部分(通道)

环和带弦环(chordal ring)环是用一条附加链路将线性阵列的两个端点连接起来而构成的。环可以单向工作,也可以双向工作。它是对称的,结点度是常数2.双向环的直径为N/2,单向环的直径是N。

如果将结点度由2提高到3或4,即可得到两种带弦环。增加的链路愈多,结点度愈高,网络直径就愈小。16个结点的环网络直径为3.全连接网络(completely connected network)的结点度为15,直径为1

胖树形    1985年Leiserson提出将计算机科学中所用的一般树结构修改为胖树形(fat tree)。胖树的通道宽度从叶节点往根节点上行方向逐渐增宽,它更象真实的树,愈靠近树根的枝叉愈粗。

使用传统二叉树的主要问题之一就是通向根节点的瓶颈问题,这是因为根部的交通最忙。胖树的提出使该问题得形    到了缓解。

网格形和环网型    N= n的k次方个结点的k维网络的内部结点度为2k,网络直径为k(n-1).纯网络形不是对称的。边结点和角结点的结点度分别为3或2.n为每维上的结点数。

 二维网格两个结点之间的路径数为K = (X + Y)!(X!Y!),XY分别为两结点之间距离增量。对三维网格,两个结点之间的路径数为K = (X + Y+Z)!/(X!Y!Z!),XYZ分别为两结点之间距离增量

环形网可看做是直径更短的另一种网格。这种拓扑结构将环形和网格组合在一起,并能向高维扩展。环形网沿阵列每行和每列都有环形连接。一般说来,一个n*n 二元环网的结点度为4,直径为2*【n/2】

环网是一种对称的拓扑结构,所有附加的回绕连接可使其直径比网格结构减少二分之一。

超立方体   这是一种二元n - 立方体结构,它已在nCUBE和CM-2等系统中得到了实现。一般说来,一个n-立方体由N = 2的n次方个结点组成,它们分布在n 维上,每维有两个结点。

  4-立方体可通过将两个3-立方体的相应结点互连组成。一个n-立方体的结点度等于n,也就是网络的直径。实际上,结点度随维数线性地增加,所以很难设想超立方体是一种可扩展结构。

低维网络在负载不均匀情况下运行较好,因为它们有较多地资源共享。在高维网络中,连线常分配给指定地维,各维之间不能共享。例如,在二元n-立方体中,可能有的线已达到饱和,而物理上分配给其它维的相邻连线却都还空闲着。

网络直径的变化范围很大。但随着硬件路由技术的不断革新(如虫孔方式),路由已不是一个严重问题,因为任意两结点间的通信延迟在高度流水线操作下几乎是固定不变的。链路数会影响网络价格,等分宽度将影响网络的带宽。对称性会影响可扩展性和路由效率。

动态连接网络

为了达到多用或通用的目的,需要采用动态连接网络,它能根据程序要求实现所需的通信模式。它不用固定连接,而是沿着连接通路使用开关或仲裁器以提供动态连接特性。

按照价格和性能增加的顺序,动态连接网络的排队次序为总线系统、多级互连网络(MIN)和交叉开关网络

采用动态网络的多处理机的互连是在程序控制下实现的。定时、开关和控制是动态互连网络的三个主要操作特征

根据级间连结方式,单级网络也称循环网络,因为数据项在到达最后目的地之前可能在单级网络中循环多次。单级网络的成本比较低,但在建立某种连接时可能需要多次通过网络。交叉开关和多端口存储器结构都属于单级网络。

多级网络由一级以上的开关元件构成。这类网络可以把任一输入与任一输出相连。级间连接模式的选择取决于网络连接特性。不同级的连接模式可能相同也可能不同,这与所设计的网络的类型有关。Omege网、Filip网和Baseline网都是多级网络。

如果同时连接多个输入输出对时,可能会引起开关和通信链路使用上的冲突,这种多级网络称为阻塞网络。阻塞网络的实例有Omeage网、Baseline网、Banyan网和Delta网

如果多级网络通过重新安排连接方式可以建立所有可能的输入输出之间的连接,则称之为非阻塞网络。这类网络中,任何输入输出对之间总可以建立连接通路。Benes网络具有这种功能。

总线系统

总线系统实际上是一组导线和插座,用于处理与总线相连的处理器、存储模块和外围设备间的数据业务。总线只用于源(主部件)和目的(从部件)之间处理业务。在多个请求情况下,总线仲裁逻辑必须每次能将总线服务分配或重新分配给一个请求。

系统总线在处理机、I/O子系统、存储模块或辅助存储设备(磁盘、磁带机等)之间提供了一条公用通信通路。

交叉开关网络

在交叉开关网络中,每个输入端通过一个交叉点开关可以无阻塞地与一个空闲输出端相连。交叉开关网络是单级网络,它由交叉点的一元开关构成。交叉网络主要用于中小型系统。

从存储器读出的数据一旦可用时,该数据通过同一交叉开关回送给请求的处理器。通常,这类交叉开关网络需要使用n*m个交叉点开关。正方形交叉开关网络(n = m)可以无阻塞地实现n!种置换

在交叉开关网络的每一行中可以同时接通多个交叉点开关,所以交叉点开关网络中n对处理器可以同时传送数据。

交叉开关网络的带宽和互连特性最好。

交叉开关网络每个周期可以实现n个数据传输,与每个总线周期只传一个数据相比,它的频宽最高。交叉开关网络对小型多处理机系统来说性能价格比较高。但单级交叉开关网络一旦构成后将不能扩充

多端口存储器

许多大型的多处理机系统都采用多端口存储器结构。其主要思想是将所有交叉点仲裁逻辑和跟每个存储器模块有关的开关功能移到存储器控制器中

由于增加了访问端口和相应的逻辑线路,存储器模块的成本就变得较为昂贵。每个存储器模块的n个输入端口与n个开关相连,一次只能接收n台处理器中的一个请求。

多端口存储器结构是一个折衷方案,它介于低成本低性能的总线系统和高成本高带宽的交叉开关系统之间。总线被所有处理器和与之相连的设备模块分时地共享。多端口存储器则负责分解各台处理器的请求冲突。

当m和n值很大时,这种多端口存储器结构将变得十分昂贵。典型的多处理机应用配置是四台处理机和16个存储器模块。

多级网络

多级网络可用于构造大型多处理机系统,每一级都用了多个a * b 开关,相邻级开关之间都有固定的级间连接。为了在输入和输出之间建立所需的连接,可用动态设置开关的状态来实现。

各种多级网络的区别就在于所用开关模块和级间连接模式的不同。一个a * b 开关模块有a个输入和b 个输出。一个二元开关与a = b = 2的2 * 2开关模块相对应。在理论上a与b 不一定要相等,但实际上a 和b经常选为2的整数幂,即 a = b =2的k次方,k>=1.最简单的开关模块是2 * 2开关。常用的级间连接模式包括混洗、交叉、立方体连接等

构成动态网络的总线、多级网络、交叉开关中,总线的造价最低,但其缺点是每台处理器可用的带宽较窄。总线所存在的另一个问题是容易产生故障。有些容错系统,如用于事务处理的Tandem多处理机等,常采用双总线以防止系统产生简单的故障。

由于交叉开关的硬件复杂性以n的2次方上升,所以其造价最为昂贵。但是,交叉开关的带宽和路由性能最好。如果网络的规模较小,它是一种理想的选择。

多级网络则是两个极端之间的折衷。它的主要优点在于采用模块结构,因而可扩展性较好。然而,其时延随网络的级数而上升。另外,由于增加了连线和开关复杂性,价格也是一种限制因素。

同步

基本硬件原语

1.原子交换(Atomic Exchange)

     它的功能是将一个存储单元的值和一个寄存器的值进行交换。

2.测试并置(test_and_set)

     先测试一个值,如果符合条件则修改其值。

3.读取并加一(fetch_and_increment)

     返回存储单元的值并自动增加该值

4.指令对LL&SC

     从第二条指令的返回值可以判断该指令对的执行是否成功

前三个都需要进行两次存储器操作

必须保持原子性

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值