F.1 引言
前面的章节和附录介绍了单台计算机的组成部件,却很少讨论这些部件之间如何互连,以及多台计算机系统如何连接在一起。近年来,计算机体系结构的这些方面变得越来越重要。本附录介绍怎样将单个设备连接成一个能够相互通信的设备群体。这里泛称的“设备”,可以是计算机中的一个部件或一组部件,也可以是一台计算机,乃至一个计算机系统。图 F.1 展示了组成这个群体的各个要素:由设备及其软硬件接口构成的端节点、将端节点连接到互连网络的链路,以及互连网络本身。互连网络也称网络、通信子网或通信子系统。将多个网络互连称为网际互连(internetworking),它依靠通信标准,在不同类型的网络之间转换信息,互联网便是一例。
计算机体系结构设计者应当重视互连网络,原因有多个。除了提供外部连接,网络还广泛用于单台计算机内部各层次部件的互连,甚至深入处理器微体系结构。大型机使用网络已有很长历史;如今,为支持更强的计算能力和更大的存储容量,通信带宽需求大幅增长,个人计算机中也可以看到这样的设计。交换网络正在取代总线,成为计算机之间、I/O 设备之间、电路板之间、芯片之间乃至芯片内部模块之间的常规通信方式。计算机体系结构设计者必须理解互连问题及其解决办法,才能更有效地设计和评估计算机系统。

图内术语:Device=设备;SW interface=软件接口;HW interface=硬件接口;End node=端节点;Link=链路;Interconnection network=互连网络。
互连网络覆盖的应用领域十分广泛,正如存储层次结构覆盖很宽的速度和容量范围一样。处理器芯片和系统内部的网络,往往与处理器和存储器具有许多共同特征:它们更多依靠高速硬件方案,较少依靠灵活的软件栈。跨系统实现的网络则通常与存储和 I/O 更相似,更多依靠操作系统和软件协议,而非高速硬件——不过,如今这些方向正在趋于融合。在所有这些领域,性能都包括延迟和有效带宽;除了仿真技术,排队论也是评估性能的重要分析工具。
这个主题非常庞大:图 F.1 的某些部分,本身就是整本书或整门大学课程讨论的内容。本附录旨在为计算机体系结构设计者概述网络问题及其解决方案。我们将对关键概念和思想作入门性解释,介绍互连网络技术与方法对体系结构的影响,并提供便于深入阅读的参考资料。本附录还用一套统一术语描述基本选择,为评估各种互连网络提供共同框架。我们将看到,许多类型的网络具有共同的优选方案,但另一些网络的最佳解决办法却很不相同。跨越不同网络应用领域时,这些差异尤其明显。
互连网络的应用领域
互连网络部署在计算机系统内部及系统之间的不同层次,以满足高性能计算、存储 I/O、集群/工作组/企业系统、网际互连等应用的运行需求。根据待连接设备的数量及其相互距离,可以将互连网络分为四大领域。
- 片上网络(on-chip network,OCN):也称 network-on-chip(NoC),用于连接芯片或多芯片模块内的微体系结构功能单元、寄存器堆、缓存、计算 tile、处理器核心及 IP 核。当前及近期的 OCN 可以连接几十到几百个此类设备,最大互连距离为厘米量级。高性能芯片中的大多数 OCN 都经过专门设计,以缓解工艺持续缩小、晶体管集成度提高所造成的横跨芯片的片内连线延迟问题;不过,一些专有设计正得到更广泛的应用,例如 IBM 的 CoreConnect、Arm 的 AMBA 和 Sonic 的 Smart Interconnect。目前 OCN 的实例包括:Intel Teraflops 处理器芯片中的网络 [Hoskote07],连接 80 个简单核心;Intel Single-Chip Cloud Computer(SCCC)中的网络 [Howard10],连接 48 个 IA-32 体系结构核心;以及 Tilera 的 TILE-Gx 系列处理器 [TILE-GX] 中的网络。后者在 2011 年第四季度采用 TSMC 的 40 nm 工艺连接 100 个处理核心,并计划在 2013 年采用 TSMC 的 28 nm 工艺连接 200 个核心,代号为“Stratton”。两款 Intel 原型的网络峰值带宽均为 256 GBps,TILE-Gx100 处理器则最高达到 200 Tbps。有关 OCN 的更多详细信息,见 Flich [2010]。
- 系统/存储区域网络(system/storage area network,SAN):用于多处理器和多计算机系统内部的处理器间互连、处理器与存储器之间的互连,也用于服务器与数据中心环境中存储和 I/O 部件的连接。通常可以连接数百个这样的设备;一些超级计算机的 SAN 则能互连数千个设备,例如 IBM Blue Gene/L 超级计算机。最大互连距离覆盖的范围相对较小,通常为几十米量级,但有些 SAN 可跨越数百米。例如,2000 年末推出的流行 SAN 标准 InfiniBand,可以在 300 m 距离上,以最高 120 Gbps 的速率支持系统和存储 I/O 互连。
- 局域网(local area network,LAN):用于连接分布在机房、建筑物或园区内的独立计算机系统。将 PC 连接成集群,就是一个典型例子。最初,LAN 最多只连接约一百个设备;借助网桥,如今可以连接数千个设备。最大互连距离通常覆盖几千米,但有些网络可跨越几十千米。例如,最流行且经久不衰的 LAN——以太网——有一种 10 Gbps 标准版本,可在 40 km 距离上保持最高性能。
- 广域网(wide area network,WAN):也称长途网络,连接分布在全球的计算机系统,因此需要网际互连支持。WAN 能在数千千米的距离尺度上连接数百万台计算机。异步传输模式(Asynchronous Transfer Mode,ATM)就是一个 WAN 实例。
图 F.2 按互连设备数量及距离尺度,大致展示了这些网络领域之间的关系。一些网络在一个或两个维度上存在重叠,由此产生产品竞争。有些网络方案已成为商业标准,另一些仍为专有方案。根据设计要求,不同互连网络领域的优选方案可能有显著差异,但各领域所面对的问题,以及解决这些问题所用的概念,却依然惊人地相似。不论面向哪个领域,都应避免使网络成为系统性能与成本效益的瓶颈。因此,计算机体系结构设计者的最终目标,是设计成本尽可能低的互连网络,使其能在尽可能短的时间内传送尽可能多的可用信息。

图内横轴为互连设备数量,纵轴为距离(m),均采用数量级刻度。
本附录的思路与组织
要理解互连网络,可以采用自顶向下的方法,逐步揭示设计网络涉及的概念与复杂性。我们首先把网络看成一个不透明的“黑盒”,假定它只是以理想方式完成若干必要功能;随后,系统地打开黑盒的各个层次,逐渐揭示更复杂的概念和网络的非理想行为。
F.2 节先讨论仅互连两个设备的情况。此时,可以把黑盒网络看作一个简单的专用链路网络,即在两个设备之间双向传输的导线或导线集合。F.3 节接着讨论互连两个以上设备的情况,此时黑盒网络可以看作连接这些设备的共享链路网络,或点到点交换网络。之后,我们继续剥开黑盒的其他层次,更详细地考察网络拓扑(F.4 节)、路由、仲裁与交换(F.5 节),以及交换机微体系结构(F.6 节)。F.7 节讨论商用网络中的实际问题,F.8 节通过实例说明各类网络的权衡。F.9 节简要讨论网际互连,F.10 节介绍互连网络中贯穿各层的其他问题。F.11 节列举互连网络中一些常见的谬误与陷阱,F.12 节给出结束语。最后,F.13 节简要介绍历史背景并推荐进一步阅读的资料。