2四种寻径方式
  消息寻径方式可以分为两大类:线路交换和包交换。其中包交换又包括:存储转发寻径、虚拟直通寻径和虫蚀寻径等。下面逐一进行讨论。
  (1)线路交换(circuit switch) 在线路交换这种寻径方式下,在传递一个消息之前,先建立一条从源结点到目的结点的物理通路,然后再传递消息。如图10.38(a)所示。
  其传输时延用公式表示为T=(Lt/B)×D+L/B,Lt为建立路径所需的小信息包的长度,L为信息包的长度,D为经过的结点数,B为带宽(以下同)。
  在并行计算机中的频繁的小信息包通信的这种方式下,由于在传递一个消息之前,需要频繁地建立从源结点到目的结点的物理通路,开销将会很大,这种寻径方式与以下的几种包交换(packet switch)的寻径方式相比这是一个很大的缺点。包交换的寻径方式以其较高的传输带宽和较低的平均传输时延,更适合于具有动态和突发特性的MPP数据传送。
  (2)存储转发寻径(store and forward) 在存储转发网络中包是信息流的基本单位。每个结点有一个包缓冲区。包从源结点经过一系列中间结点到达目的结点。
  当一个包到达一个中间结点时,它首先被存入缓冲区。当所要求的输出通道和接收结点的包缓冲区可使用时,然后再将它传送给下一个结点。如图10.38(b)所示。
  存储转发网络的时延与源和目的地之间的距离(段数)成正比。第一代多计算机系统采用这种寻径方式。其时延用公式表示为T=(L/B)×D+L/B=(D+1)×L/B。
  可以看到,存储转发寻径有两个很大的缺点:
   包缓冲区大,不利于VLSI的实现
   时延大,与结点距离成正比
  (3)虚拟直通(virtual cut through) 目前有一些多计算机系统采用的是虚拟直通的寻径方式。虚拟直通的寻径方式的思想是,为了减少时延,没有必要等到整个消息全部缓冲后再作路由选择,只要接收到用作寻径的消息头部即可判断。
  其通信时延用公式表示为T=(Lh/B)×D+L/B=(Lh×D+L)/B,Lh是消息的寻径头部的长度。一般来说,L>>Lh×D,所以公式可以近似为T=L/B,可以看到此时通信时延与结点数无关,这相对于存储转发的寻径方式来说是一个非常大的改进。
  当出现寻径阻塞时,虚拟直通方式只有将整个消息全部存储在寻径结点中,直到寻径通道不阻塞时才能将消息发出,这就需要每个寻径结点都有足够的缓冲区来存储可能出现的最大的信息包,在这一点上,虚拟直通方式与存储转发的寻径方式是一样的,同样不利于VLSI的实现。因此,虚拟直通方式在最坏的情况下与存储转发方式的通信时延是一样的。由此出现了下面将要讨论的新的寻径方式虫蚀寻径方式,它改进了以上提到的缺点。
图10.38几种寻径方式的时空图
  (4)虫蚀寻径(wormhole) 新型的多计算机系统很多采用的是虫蚀寻径方式,把包进一步分成更小的片。与结点相连的硬件寻径器中有片缓冲区。消息从源结点传送到目的结点要经过一系列寻径器。如图10.38c所示。
  同一个包中所有的片象不可分离的同伴一样以流水方式顺序地传送。包可以看作是一列火车,由火车(头片)和被牵引的车厢(数据片)组成。
  只有头片知道包将发往何处。所有的数据片必须跟着头片。不同的包可以交替地传送,但不同包的片不能交叉,否则它们可能被送到错误的目的地。
  用头片直接开辟一条以输入链路到输出链路的路径的方法来进行操作。每个消息中的片以流水方式在网络中向前"蠕动"。每个片相当于虫的一个节,"蠕动"是以节为单位顺序地向前爬行。
  当消息的头片到达一个结点A的寻径器后,寻径器根据头片的寻径消息立即做出路由选择:
  如果所选择的通道空闭且所选择的结点B的片缓冲区可用,那么这个头片就不必等待,直接通过结点A传向下一个结点B。随后的其它数据片跟着相应地向前"蠕动"一步。当消息的尾片向前"蠕动"一步之后,它刚才所占有的结点就被放弃了。
  如果所选择的通道忙或所选择的结点的片缓冲区不可用时,那么这个头片就必须在该结点的片缓冲区中等待,直到上述两者都可用时为止,其它数据片也在原来的结点上等待。此时,被阻塞的消息不从网络中移去,片也不放弃它所占有的结点和通道。
  虫蚀寻径的通信时延用公式表示为T=Tf×D+L/B=(Lf/B)×D+L/B=(Lf×D+L)/B,Lf是片的长度,Tf是片经过一个结点所需时间。一般来说,L>>Lf×D,所以公式可以近似为T=L/B,可以看到此时通信时延也与结点数无关。
  可以看出,虫蚀寻径有以下的优点:
   每个结点的缓冲区较小,易于VLSI实现。
   较低的网络传输时延。所有的片以流水方式向前传输,采用了时间并行性。而存储转发方式的消息包整个地从一个结点"跳"到另一个结点,通道的使用是串行的,所以它的传输时延基本上正比于消息在网络中传输的距离。虫蚀寻径方式的网络传输时延正比于消息包的长度,传输距离对它的影响很小。
   通道共享性好,利用率高,对通道的预约和释放是结合在一起的一个完整的过程,有一段新的通道后将立即放弃用过的一段旧通道。
   易于实现选播和广播通信方式。允许寻径器复制消息包的片并把它们从其多个输出通道输出。
  然而虫蚀寻径方式也有缺点,当消息的一个片被阻塞时,整个消息的所有片都将被阻塞在所在结点,占用了结点资源,因此需要采用虚拟通道的方式来避免由此引起的一连串的阻塞。
  虫蚀寻径方式也可以分为无缓冲和有缓冲两类,区别在于缓冲的大小。缓冲大有利于性能的提高,但会增加结点的复杂度。IBM SP2采用的寻径方式就是带缓冲的虫蚀寻径方式,它采用共享的存储区来对输入/输出消息进行缓冲。图10.38是线路开关寻径、存储转发寻径和虫蚀寻径的时空图。