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