并行计算机体系结构 - 简介
在过去的 50 年里,计算机系统的性能和功能取得了巨大的发展。这在超大规模集成(VLSI)技术的帮助下成为可能。VLSI技术允许在单个芯片上容纳大量组件并提高时钟速率。因此,一次可以并行执行更多操作。
并行处理还与数据局部性和数据通信相关。并行计算机体系结构是在任何时间在技术和成本给定的限制内组织所有资源以最大化性能和可编程性的方法。
为什么采用并行架构?
并行计算机体系结构通过使用越来越多的处理器,为计算机系统的开发增加了一个新的维度。原则上,在给定时间点,利用大量处理器实现的性能高于单个处理器的性能。
应用趋势
随着硬件能力的进步,对高性能应用程序的需求也随之增加,这反过来又对计算机架构的发展提出了要求。
在微处理器时代之前,高性能计算机系统是通过奇异的电路技术和机器组织来获得的,这使得它们价格昂贵。现在,高性能的计算机系统是通过使用多个处理器来获得的,并且最重要和要求最高的应用程序被编写为并行程序。因此,为了获得更高的性能,需要开发并行架构和并行应用程序。
要提高应用程序的性能,加速是要考虑的关键因素。p 个处理器上的加速定义为 -
$$加速(p \ 处理器)\equiv\frac{性能(p \ 处理器)}{性能(1 \ 处理器)}$$对于单个固定问题,
\a\计算机\系统的$$性能\=\frac{1}{完成\问题所需\时间}$$$$加速\_{固定\问题}(p\处理器)=\frac {时间(1 \ 处理器)}{时间(p \ 处理器)}$$科学与工程计算
并行架构在科学计算(如物理、化学、生物学、天文学等)和工程应用(如油藏建模、气流分析、燃烧效率等)中已变得不可或缺。在几乎所有的应用中,都对计算输出的可视化有巨大的需求,从而需要开发并行计算以提高计算速度。
商业计算
在商业计算(如视频、图形、数据库、OLTP等)中,也需要高速计算机在指定时间内处理大量数据。桌面使用几乎类似于并行程序的多线程程序。这反过来又要求开发并行架构。
技术趋势
随着技术和架构的发展,对高性能应用程序的开发有强烈的需求。实验表明,并行计算机的工作速度比最先进的单处理器要快得多。而且,在技术和成本的限制内,可以开发并行计算机。
这里使用的主要技术是VLSI技术。因此,现在越来越多的晶体管、门和电路可以安装在同一区域内。随着基本VLSI特征尺寸的减小,时钟速率也成比例地提高,而晶体管的数量则呈平方增长。预计同时使用多个晶体管(并行)比提高时钟速率的性能要好得多
技术趋势表明基本的单芯片构建块将提供越来越大的容量。因此,在单个芯片上放置多个处理器的可能性增加了。
建筑趋势
技术的发展决定了可行;架构将技术的潜力转化为性能和能力。并行性和局部性是使用大量资源和更多晶体管来提高性能的两种方法。然而,这两种方法会竞争相同的资源。当多个操作并行执行时,执行程序所需的周期数就会减少。
然而,需要资源来支持每项并发活动。还需要资源来分配本地存储。最佳性能是通过使用资源来利用一定程度的并行性和一定程度的局部性的中间行动计划来实现的。
一般来说,计算机体系结构的历史分为四代,具有以下基本技术 -
- 真空管
- 晶体管
- 集成电路
- 超大规模集成电路
直到 1985 年,持续时间主要是位级并行性的增长。4 位微处理器其次是 8 位、16 位等等。为了减少执行完整 32 位操作所需的周期数,数据路径的宽度加倍。后来,引入了 64 位操作。
指令级并行性的增长主导了 80 年代中期到 90 年代中期。RISC 方法表明,指令处理步骤的流水线化非常简单,因此平均而言,几乎每个周期都会执行一条指令。编译器技术的发展使得指令管道的生产效率更高。
在 80 年代中期,基于微处理器的计算机包括
- 整数处理单元
- 浮点单元
- 缓存控制器
- 用于缓存数据的 SRAM
- 标签存储
随着芯片容量的增加,所有这些组件都被合并到一个芯片中。因此,单个芯片由用于整数运算、浮点运算、存储器运算和分支运算的独立硬件组成。除了对单个指令进行流水线处理之外,它还一次获取多个指令,并尽可能将它们并行发送到不同的功能单元。这种类型的指令级并行称为超标量执行。