并行计算机架构 - 简介

在过去的 50 年中,计算机系统的性能和功能取得了巨大的发展。这得益于超大规模集成 (VLSI) 技术。VLSI 技术允许在单个芯片上容纳大量组件,并提高时钟频率。因此,可以同时并行执行更多操作。

并行处理还与数据局部性和数据通信相关。并行计算机架构是一种组织所有资源的方法,以在技术和任何时间点的成本限制内最大限度地提高性能和可编程性。

为什么要使用并行架构?

并行计算机架构通过使用越来越多的处理器,为计算机系统的发展增加了一个新的维度。原则上,在给定时间点,使用大量处理器所实现的性能高于单个处理器的性能。

应用趋势

随着硬件容量的提高,对高性能应用程序的需求也随之增加,这反过来又对计算机体系结构的发展提出了要求。

在微处理器时代之前,高性能计算机系统是通过奇特的电路技术和机器组织获得的,这使得它们价格昂贵。现在,高性能计算机系统是通过使用多个处理器获得的,大多数重要和要求高的应用程序都是以并行程序的形式编写的。因此,为了获得更高的性能,需要开发并行体系结构和并行应用程序。

要提高应用程序的性能,加速是需要考虑的关键因素。 p 个处理器上的加速定义为 −

$$Speedup(p \ 处理器)\equiv\frac{Performance(p \ 处理器)}{Performance(1 \ 处理器)}$$

对于单个固定问题,

$$performance \ of \ a \ computer \ system = \frac{1}{Time \ needed \ to \ complete \ the \ problem}$$ $$Speedup \ _{fixed \ problem} (p \ processors) =\frac{Time(1 \ processor)}{Time(p \ processor)}$$

科学与工程计算

并行架构已成为科学计算(如物理、化学、生物、天文学等)和工程应用(如油藏建模、气流分析、燃烧效率等)中不可或缺的一部分。在几乎所有应用中,对计算输出可视化的需求都很大,因此需要开发并行计算来提高计算速度。

商业计算

在商业计算(如视频、图形、数据库、OLTP 等)中,也需要高速计算机在指定时间内处理大量数据。桌面使用多线程程序,这些程序几乎与并行程序类似。这反过来又需要开发并行架构。

技术趋势

随着技术和架构的发展,对高性能应用程序的开发需求强烈。实验表明,并行计算机的工作速度比单处理器的最高速度快得多。此外,并行计算机可以在技术和成本的限制内开发。

这里使用的主要技术是 VLSI 技术。因此,如今越来越多的晶体管、门和电路可以安装在相同的面积上。随着基本 VLSI 特征尺寸的减小,时钟速率也成比例提高,而晶体管的数量则以平方增长。可以预期,同时使用多个晶体管(并行性)的性能要比增加时钟速率好得多。

技术趋势表明,基本的单芯片构建块将提供越来越大的容量。因此,在单个芯片上放置多个处理器的可能性增加了。

架构趋势

技术的发展决定了什么是可行的;架构将技术的潜力转化为性能和能力。并行性局部性是两种方法,其中更大的资源量和更多的晶体管可以提高性能。然而,这两种方法争夺相同的资源。当多个操作并行执行时,执行程序所需的周期数会减少。

但是,需要资源来支持每个并发活动。还需要资源来分配本地存储。最佳性能是通过中间行动计划实现的,该计划使用资源来利用并行度和局部性。

一般来说,计算机架构的历史分为四代,具有以下基本技术 −

  • 真空管
  • 晶体管
  • 集成电路
  • VLSI

直到 1985 年,这段时间一直以位级并行性的增长为主。4 位微处理器,然后是 8 位、16 位等等。为了减少执行完整 32 位操作所需的周期数,数据路径的宽度加倍。后来,引入了 64 位操作。

指令级并行性的增长主导了 80 年代中期到 90 年代中期。 RISC 方法表明,将指令处理步骤流水线化非常简单,因此平均而言,几乎每个周期都会执行一条指令。编译器技术的发展使指令流水线更加高效。

20 世纪 80 年代中期,基于微处理器的计算机由

  • 整数处理单元
  • 浮点单元
  • 缓存控制器
  • 用于缓存数据的 SRAM
  • 标签存储

随着芯片容量的增加,所有这些组件都合并到单个芯片中。因此,单个芯片由用于整数运算、浮点运算、内存运算和分支运算的独立硬件组成。除了流水线处理单个指令外,它还会一次获取多个指令,并尽可能将它们并行发送到不同的功能单元。这种类型的指令级并行性称为超标量执行