# G.1 引言
<!-- source: p1095 -->

第 4 章介绍了向量体系结构，并在向量体系结构的背景下，说明了多媒体 SIMD 扩展与 GPU 的定位。

本附录更深入地讨论向量体系结构，包括更精确的性能模型，以及以往向量体系结构的具体设计。图 G.1 列出若干典型向量处理器的特征，包括寄存器的大小和数量、功能单元的数量和类型、加载—存储单元数，以及通道数。

<!-- source: p1096 -->

| 处理器（年份） | 向量时钟频率（MHz） | 向量寄存器数 | 每寄存器元素数（64 位元素） | 向量运算单元 | 向量加载—存储单元 | 通道数 |
| --- | ---: | --- | --- | --- | --- | --- |
| Cray-1（1976） | 80 | 8 | 64 | 6 个：浮点加法、浮点乘法、浮点倒数、整数加法、逻辑、移位 | 1 | 1 |
| Cray X-MP（1983）<br>Cray Y-MP（1988） | 118<br>166 | 8 | 64 | 8 个：浮点加法、浮点乘法、浮点倒数、整数加法、2 个逻辑单元、移位、置位计数／奇偶校验 | 2 个加载<br>1 个存储 | 1 |
| Cray-2（1985） | 244 | 8 | 64 | 5 个：浮点加法、浮点乘法、浮点倒数／平方根、整数加法／移位／置位计数、逻辑 | 1 | 1 |
| Fujitsu VP100／VP200（1982） | 133 | 8–256 | 32–1024 | 3 个：浮点或整数加法／逻辑、乘法、除法 | 2 | 1（VP100）<br>2（VP200） |
| Hitachi S810／S820（1983） | 71 | 32 | 256 | 4 个：浮点乘加、浮点乘法或除法后加减、2 个整数加法／逻辑单元 | 3 个加载<br>1 个存储 | 1（S810）<br>2（S820） |
| Convex C-1（1985） | 10 | 8 | 128 | 2 个：浮点或整数乘法／除法、加法／逻辑 | 1 | 1（64 位）<br>2（32 位） |
| NEC SX/2（1985） | 167 | 8＋32 | 256 | 4 个：浮点乘法／除法、浮点加法、整数加法／逻辑、移位 | 1 | 4 |
| Cray C90（1991）<br>Cray T90（1995） | 240<br>460 | 8 | 128 | 8 个：浮点加法、浮点乘法、浮点倒数、整数加法、2 个逻辑单元、移位、置位计数／奇偶校验 | 2 个加载<br>1 个存储 | 2 |
| NEC SX/5（1998） | 312 | 8＋64 | 512 | 4 个：浮点或整数加法／移位、乘法、除法、逻辑 | 1 | 16 |
| Fujitsu VPP5000（1999） | 300 | 8–256 | 128–4096 | 3 个：浮点或整数乘法、加法／逻辑、除法 | 1 个加载<br>1 个存储 | 16 |
| Cray SV1（1998）<br>SV1ex（2001） | 300<br>500 | 8 | 64（MSP） | 8 个：浮点加法、浮点乘法、浮点倒数、整数加法、2 个逻辑单元、移位、置位计数／奇偶校验 | 1 个加载—存储<br>1 个加载 | 2<br>8（MSP） |
| VMIPS（2001） | 500 | 8 | 64 | 5 个：浮点乘法、浮点除法、浮点加法、整数加法／移位、逻辑 | 1 个加载—存储 | 1 |
| NEC SX/6（2001） | 500 | 8＋64 | 256 | 4 个：浮点或整数加法／移位、乘法、除法、逻辑 | 1 | 8 |
| NEC SX/8（2004） | 2000 | 8＋64 | 256 | 4 个：浮点或整数加法／移位、乘法、除法、逻辑 | 1 | 4 |
| Cray X1（2002）<br>Cray X1E（2005） | 800<br>1130 | 32 | 64<br>256（MSP） | 3 个：浮点或整数的加法／逻辑、乘法／移位、除法／平方根／逻辑 | 1 个加载<br>1 个存储 | 2<br>8（MSP） |
{#fig-G.1 .wide .expand num="G.1" caption="若干向量寄存器体系结构的特征。"}

如果某台机器是多处理器系统，表中条目表示其中一个处理器的特征。若干机器的向量单元与标量单元时钟频率不同，表中给出向量单元的频率。Fujitsu 机器的向量寄存器可配置：8K 个 64 位条目可在寄存器数量与每寄存器大小之间进行反向调整。例如，VP200 可以配置为 8 个各含 1K 元素的寄存器，也可以配置为 256 个各含 32 元素的寄存器。NEC 机器有 8 个连接运算单元的前台向量寄存器，另外有 32–64 个后台向量寄存器，连接存储系统与前台向量寄存器。

表中的置位计数（population count）指统计二进制表示中值为 1 的位数。加法流水线执行加法和减法。Hitachi S810／S820 的乘法／除法—加法单元，先执行浮点乘法或除法，再执行加法或减法；乘加单元则先乘、后加或减。注意，大多数处理器使用向量浮点乘除单元执行向量整数乘除；其中一些处理器还让浮点标量运算和浮点向量运算共用功能单元。每个向量加载—存储单元，都表示能够与向量寄存器进行一次独立、可与其他传送重叠的输入或输出。

通道数就是每个功能单元内的并行流水线数，见 G.4 节。例如，NEC SX/5 的乘法功能单元每周期可完成 16 次乘法。若干机器可以把一条 64 位通道拆为两条 32 位通道，以提高只需较低精度的应用的性能。Cray SV1 和 Cray X1 可以将 4 个各有 2 条通道的 CPU 编组，共同作为一个有 8 条通道的大 CPU 工作；Cray 将其称为 Multi-Streaming Processor（MSP）。
