# F.1 引言
<!-- source: p0973 -->

前面的章节和附录介绍了单台计算机的组成部件，却很少讨论这些部件之间如何互连，以及多台计算机系统如何连接在一起。近年来，计算机体系结构的这些方面变得越来越重要。本附录介绍怎样将单个设备连接成一个能够相互通信的设备群体。这里泛称的“设备”，可以是计算机中的一个部件或一组部件，也可以是一台计算机，乃至一个计算机系统。图 F.1 展示了组成这个群体的各个要素：由设备及其软硬件接口构成的端节点、将端节点连接到互连网络的链路，以及互连网络本身。**互连网络**也称网络、通信子网或通信子系统。将多个网络互连称为**网际互连**（internetworking），它依靠通信标准，在不同类型的网络之间转换信息，互联网便是一例。

计算机体系结构设计者应当重视互连网络，原因有多个。除了提供外部连接，网络还广泛用于单台计算机内部各层次部件的互连，甚至深入处理器微体系结构。大型机使用网络已有很长历史；如今，为支持更强的计算能力和更大的存储容量，通信带宽需求大幅增长，个人计算机中也可以看到这样的设计。交换网络正在取代总线，成为计算机之间、I/O 设备之间、电路板之间、芯片之间乃至芯片内部模块之间的常规通信方式。计算机体系结构设计者必须理解互连问题及其解决办法，才能更有效地设计和评估计算机系统。

![设备、软硬件接口、端节点和链路构成的互连系统](/figures/app-f/fig-f-1.png)
{#fig-F.1 .wide .expand num="F.1" caption="相互连接的设备群体的概念示意图。"}

图内术语：Device＝设备；SW interface＝软件接口；HW interface＝硬件接口；End node＝端节点；Link＝链路；Interconnection network＝互连网络。

<!-- source: p0974 -->

互连网络覆盖的应用领域十分广泛，正如存储层次结构覆盖很宽的速度和容量范围一样。处理器芯片和系统内部的网络，往往与处理器和存储器具有许多共同特征：它们更多依靠高速硬件方案，较少依靠灵活的软件栈。跨系统实现的网络则通常与存储和 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] 中的网络。<!-- source: p0975 -->后者在 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 按互连设备数量及距离尺度，大致展示了这些网络领域之间的关系。一些网络在一个或两个维度上存在重叠，由此产生产品竞争。有些网络方案已成为商业标准，另一些仍为专有方案。根据设计要求，不同互连网络领域的优选方案可能有显著差异，但各领域所面对的问题，以及解决这些问题所用的概念，却依然惊人地相似。不论面向哪个领域，都应避免使网络成为系统性能与成本效益的瓶颈。因此，计算机体系结构设计者的最终目标，是设计成本尽可能低的互连网络，使其能在尽可能短的时间内传送尽可能多的可用信息。

<!-- source: p0976 -->

![互连设备数与距离尺度上的 OCN、SAN、LAN、WAN 适用范围](/figures/app-f/fig-f-2.png)
{#fig-F.2 .wide .expand num="F.2" caption="四种互连网络领域在连接设备数量与距离尺度上的关系：片上网络（OCN）、系统／存储区域网络（SAN）、局域网（LAN）和广域网（WAN）。注意，其中一些网络在适用范围的重叠区域相互竞争。有些超级计算机系统使用专有定制网络互连数千台计算机，另一些系统（如多计算机集群）则采用标准商用网络。"}

图内横轴为互连设备数量，纵轴为距离（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 节简要介绍历史背景并推荐进一步阅读的资料。
