APP下载

冯·诺依曼瓶颈下计算机体系结构的创新

2023-12-04吕启闻陈泽乾张曦月张鲁峰于春霖

电子技术应用 2023年11期
关键词:数据流指令量子

吕启闻,陈泽乾,2,张曦月,周 朋,张鲁峰,于春霖,,陈 钦,叶 涛,李 璇

(1.中国长城科技集团股份有限公司 中国长城研究院,广东 深圳 518057;2.中南大学 计算机学院,湖南 长沙 410083;3.中国电子信息产业集团有限公司 科技发展部,广东 深圳 518057;4.南方科技大学 工学院,广东 深圳 518055)

0 引言

电子计算机自问世以来经过80 余年的持续探索与发展[1],逐渐成为当今世界人类工作和生活中不可或缺的部分,推动了各行各业和社会的发展,是人类历史上最伟大的发明之一。电子计算机发展到现在以来所遵循的基本结构为传统的冯·诺依曼架构[2]。随着人工智能等高新技术的快速发展与应用,传统冯·诺依曼架构由于其固有缺陷,已难以适应与处理对算力要求极高的任务,电子计算机架构的创新与突破成为了亟待解决的重要问题。本文将深入探讨到目前为止,为解决传统冯·诺依曼架构的缺陷所采取的思路与解决方案。

1 冯·诺依曼架构的局限性

传统冯·诺依曼架构采用顺序执行程序的方式,一经问世便广泛运用在计算机的结构设计中。但冯·诺依曼架构具有以下两方面局限性:

(1) 由于传统的冯·诺依曼架构将指令和数据存储在同一内存中,因此计算机性能高度依赖存储器的速度与容量。也就是说计算机体系结构的发展和进步受到内存技术发展的制约[3]。

(2) 指令在存储器中按照它们被执行的顺序进行存储,并且每次只执行一条指令,因此总体效率较低[4]。

1977 年,John Backus 将上述缺陷称为冯·诺依曼瓶颈[5],它所带来的影响会随着时代的发展日益严重。为了进一步提升计算效率,研究人员不断尝试,提出了诸多解决方案。这些改进主要分为两个方向:一是继续在冯·诺依曼架构下针对系统瓶颈进行局部优化;二是另辟蹊径,彻底打破冯·诺依曼架构的限制,进行结构创新;三是创造有别于电子计算机物理材料的全新非冯·诺依曼架构。

2 冯·诺依曼架构下计算机结构的改进

2.1 多级存储器的运用

随着微处理器在性能、集成度等方面的快速发展,中央处理器(Central Processing Unit,CPU)、输入/输出(I/O)设备和存储器之间的速度差异越来越大[6-7],计算机效率受到了存储器性能的严重限制,冯·诺依曼瓶颈在这种情况下一语成谶。为了最大程度提升存储器的功效,现代计算机采用了多级存储结构(Multi-level Storage System)来缓解访存效率问题[8]。

多级存储结构利用程序局部性原理,即程序在一段时间内只会执行其中的一部分,并且所访问的存储空间也只局限于某个内存区域。CPU 访存具有一定的规律性和集中性,因此可以把某些需要被多次访问的存储内容从低速存储器临时写入高速存储器中,以此提升访存效率[8]。

现代计算机的多级存储结构通常如图1 所示,其中高速缓冲存储器是一种使用了静态随机存取技术的高速存储器(Static Random-Access Memory,SRAM),也称Cache[9],其可以提供与CPU 相当的存取速度。高速缓存被设计集成于CPU 内部,访存操作基本只在CPU 内部进行,极大地提升了系统的工作效率[10]。

图1 三级缓存结构示意图

2.2 指令流水线的诞生

指令的串行执行极大限制了CPU 的运行速度。正常情况下每条指令的执行过程分为取指、译码、执行三个阶段。假设不同指令的三个执行阶段所需时长相等且均为一个时钟周期,那么执行一条指令便需要三个时钟周期。

指令流水线技术使得CPU 能够同时执行多条指令的不同阶段,即在第K条指令的译码操作时,并行执行第K+1 条指令的取指操作和第K-1 条指令的执行操作,如此一来完成K条指令只需K+2 个机器周期,提高了CPU 的运行效率和指令吞吐量[11]。

但实际情况下,每条指令的执行时间并非完全相等,指令流水线往往无法完全发挥其高效作用。例如流水线上前后指令段数据或结构依赖不一致、缓存未命中等情况,会引起数据的阻塞和断流。针对这种情况,乱序执行技术可以起到弥补作用[12]。

乱序执行技术是在指令流水线遇到指令依赖的情况下,CPU 可以不遵循程序指定顺序,先行跳转到后面的非依赖指令执行。乱序执行技术大大减少了指令依赖造成的资源消耗,CPU 因此可以满负荷运行,极大地提升了整体性能。

2.3 CPU 速度上限的突破与异构计算

2.3.1 CPU 的多核化发展

CPU 性能的发展虽然迅速,但也面临着多种限制。CPU 的主频并不能无限提升,过高的频率会使单位频率效能低下,同时功耗也会大幅增加[13]。直到多核心CPU解决方案的出现才打破了单核处理器性能提升的瓶颈。

多核处理器(Multi-core Processor)是将两个或多个计算内核集成在同一处理器上,早在20 世纪90 年代末就被提出以替代单核CPU[14-15]。如IBM 公司的Power 4处理器,但由于其应用范围较窄,并未引起广泛关注。2005 年,Intel 和AMD 公司先后推出了多款双核处理器,其中AMD 公司推出的双核皓龙275 处理器采用90 nm工艺,较当时性能最高的单核252 处理器提升了70%。

时至今日,个人计算机CPU 核心数一般在4 核8 线程至16 核24 线程之间。Intel 公司推出的13 代Core i9-13900KS 处理器具有24 核32 线程,最高频率首次达到6 GHz,性能较先前推出的i9-13900K 进一步提升10%。这意味着在CPU 性能方面,未来几年内摩尔定律还是会沿其方向继续前进[16]。

2.3.2 CPU 的异构结构

然而,处理器的核心数并不能无限增长,应用领域对算力的需求却仍在提升,利用多核技术来实现通用处理器性能提升的发展前景不容乐观。

图形处理器(Graphics Processing Unit,GPU)最开始只是作为专用图形显示处理器存在,并不参与CPU 的通用计算。随着多媒体程序对图形显示能力需求的增加,GPU 开始集成于可编程处理器内部。2006 年后,GPU逐渐转向CPU 的通用计算领域。

目前,主流GPU 凭借大量的流处理单元,在计算能力上与CPU 相比更具竞争力[17]。现代个人计算机上广泛采用CPU+GPU 的异构结构,这种结构能够充分发挥GPU 在通用计算上的运算速度优势,同时又具备高度的灵活性[18-19]。

2.3.3 异构计算的应用

异构计算是指在特定的应用场景下,将不同种类的计算资源集成在一起,充分利用不同计算资源之间的互补性及各自优势,达到更高的计算性能和效率[20]。异构计算常见的一个实现方式是将GPU 与CPU 结合起来,形成一个混合计算系统。除了CPU+GPU,还有其他类型的异构计算结构。异构计算结构可以是采用数据流和指令流多种组合方式的独立计算机,或是一组支持并行计算的网络互联计算机组,也可以是装载有CPU、GPU 和多媒体处理单元的智能手机[21]。由此可见,异构计算近乎存在于所有的现代电子产品中。

目前异构计算主要向着以下几个方向发展:

(1) 高性能计算。如今高性能计算集群越来越多地使用GPU、总线多路复用电源监控接口芯片(Manage‐ment Interface Chip,MIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)等多个芯片的异构组合。

(2) 单机计算。现代个人计算机基本采用的是CPU+GPU 的异构方式。

(3) 移动计算。通常在移动芯片的设计上,除了CPU 以外,还集成有视频处理单元、音频处理单元等。

如图2 所示,以NVIDIA Jetson Xavier NX 人工智能模组为例,它是集成了6 核64 位CPU、4 MB L3 缓存、6 MB L1 缓存、384 核GPU、深度学习加速器NVDLA 和多媒体处理部件的异构模组。该系统具有强大的计算加速能力,可处理多个高分辨率传感器传来的数据,并且可以并行训练神经网络模型,算力高达21 TOPS。

图2 NVIDIA Jetson Xavier NX 人工智能计算机部分结构示意图(未包含传感器与外设接口)

总的来说,由于单核CPU 速度的提升遇到瓶颈,计算机结构逐渐向着多核CPU、CPU 与多种计算单元并行的异构结构以及大规模网络异构计算的方向发展。并行计算的思想也体现出在单核性能的限制下,人们总是会尽一切可能在不同层次上利用更多的计算单元来提升总体计算效率。

3 结构性创新:冯·诺依曼架构的突破

前文介绍的计算机结构依然具有传统冯·诺依曼架构的特色,因其良好的可行性和成本低廉而被人们应用至今。然而,上述改进虽缓解了冯·诺依曼瓶颈所带来的问题,但并未打破其桎梏。

为了彻底突破冯·诺依曼瓶颈,研究者们对现代计算机架构的探索仍在不断进行。非冯·诺依曼架构主要包括哈佛计算机、存算一体计算机、数据流计算机等新型架构模式。而数据流计算机是其中最有影响力的设计之一,虽然它因为自身的局限性从设计初期到现在并未投入现实产业,但它的设计思想给现代计算机的发展带来了诸多参考。

3.1 哈佛架构计算机

冯·诺依曼架构计算机采用指令和数据统一存储和编址的结构,使用单一总线进行数据传输,导致CPU 无法同时读取指令和数据,从而限制了计算效率。虽然这种结构可以节省存储资源,但同时也造成了数据传输瓶颈。

为了解决冯·诺依曼架构使用同一总线这一问题,物理学家A·Howard 提出了一种哈佛结构。它将指令和数据分开存储,将指令固定在硬件内,并使用不同的总线进行数据传输。相比于冯·诺依曼架构,哈佛架构允许CPU 在同时访问指令和数据存储器时实现并行处理,提高了计算效率[22]。虽然哈佛架构的总线宽度较小,效率相对较低,但它能够提升系统整体的稳定性,因此主要应用于对稳定性有较高要求的领域,如嵌入式计算机。哈佛架构计算机如图3 所示。

图3 哈佛计算机架构示意图

目前主流计算机整体上仍遵循传统冯·诺依曼架构,但内部某些结构可以认为是哈佛架构,如X86 架构CPU 在内存中并不区分指令与数据,但其L1 Cache 却分为了数据存储与指令存储。此外,ARM 和Power 架构的部分CPU 也采用的是冯·诺依曼与哈佛架构的融合方案。

3.2 存算一体计算机

尽管内存设备有所改进,但内存和处理器之间的性能差距仍在扩大。随着以人工智能计算单元为代表的访存密集型应用快速崛起,传统冯·诺依曼架构的访存时延和功耗开销问题使其难以处理海量数据集,计算架构的变革显得尤为迫切。

存算一体计算机,也称为存内计算,是一种集成了计算和存储功能的计算机系统。与传统计算机不同,存算一体计算机中的计算单元和存储单元集成在一起,形成了一个共享的存储-计算体系结构。计算操作可以直接在存储单元中执行,无需将数据从存储器传输到计算单元进行计算,从而提高了数据处理的速度和效率。存算一体技术通过与后摩尔时代先进封装、新型存储器件等技术进行结合,能够实现计算能效的数量级提升。

目前存算一体技术主要分为以下两个方向:

(1) 邻存计算(Computing Near Memory)。计算操作由位于存储区域外部的独立计算芯片/模块完成,将存储单元和计算单元集成以增加访存带宽、减少数据搬移。这种架构本质仍是存算分离架构,典型代表是AMD 公司的Zen 系列CPU[23]。

(2) 存内计算(Computing In Memory)。这是狭义的存算一体技术。计算操作由位于存储芯片/区域内部的独立计算单元完成,直接消除存算界限,使计算能效取得数量级提升[23]。

存内计算主要包含数字和模拟两种实现方式。模拟存内计算通过利用物理定律,在存算阵列上实现乘加运算,具有能效高的优点,但是误差相对较大,通常用于功耗与精度偏低的场景。而数字存内计算通过在存储阵列内部加入逻辑计算电路,使其同时具备存储及计算能力,该方式取得的误差小,但单位面积功耗较大,通常适用于高精度、功耗不敏感的计算场景。

存算一体的优势在于减少了不必要的数据搬移延迟和功耗,使用存储单元来大幅提升算力[24]。随着人工智能等技术的快速落地以及对算力的大量需求,存算一体技术有望成为加速计算的中流砥柱。

3.3 数据流计算机

冯·诺依曼架构计算机按照指令的顺序执行程序,是一种典型的控制流计算机,CPU 只能串行执行指令。冯·诺依曼瓶颈归根结底,就是串行执行所带来的并发性不足的问题。

为了解决冯·诺依曼架构的这一不足,麻省理工学院的Dennis 开拓了一种数据流计算方法,其思想是采用具备并行计算能力的数据流图来表述运算任务,如图4所示[25]。在数据流计算机中,数据被视为在计算机内部流动的离散块,处理器只在数据到达时才执行计算,运算得到的新数值并不存储于存储器中,而是当作新的运算单元传递给后继运算,直至产生最终输出结果[26]。

与传统冯·诺依曼架构的控制流计算方法相比,数据流计算方法通过数据流图来表示所有运算过程,其操作并非线性进行,而是由数据驱动执行,具有天生的并行性。这一新思路在当时计算机体系结构界引起了轰动,并带来了一系列基于数据流计算思路的对新型计算机体系结构的设计和探索[27]。

然而,数据流计算机仍有其不足之处:

(1) 要将串行程序转换为数据流图,需要对程序中的并行度进行识别与划分,并且转化后的数据流图还需要具有可扩展性。因此,将串行程序自动转化为数据流图的过程非常复杂[27]。

(2) 数据流程序由于其缺乏数据共享机制,数据在处理过程中需要大量复制,导致存储空间和传输成本会随着数据量的增加而增加,从而降低程序的执行效率,影响整体系统性能[27]。

(3) 数据流计算机需要处理许多复杂的问题,包括流控制、数据依赖性、流同步等,导致编程和调试的难度增加[27]。

尽管纯粹的数据流计算机并未得到产业化发展,但在体系结构的实践中,产生了不少可以总结的经验和教训,在流处理器和GPU 中都有体现。

4 根源性改变:运算方式的探索

体系改良的道路最终总会走到尽头,受电子元件生产工艺限制,电子计算机运算能力也终有上限。唯有冲破现行结构的限制,完全跳出传统计算机的框架,用其他材料作为数据媒介和控制单元,同时寻找出新型材料作为现代计算机的物质基础,才能让现代计算机有质的飞越。随着量子物理与生物科技的迅猛发展,人们在全新的物质基础下创新计算机架构开始有了眉目,类脑计算、光子计算、量子计算等理论层出不穷。

4.1 生物计算机

生物计算机(Biological Computer)是指利用生物分子进行信息处理和计算的一种计算机技术。它利用生物分子的化学和物理性质,通过设计和组合分子来实现计算和信息存储[28]。由于生物计算机的元器件由有机分子构成,以及脱氧核糖核酸(DeoxyriboNucleic Acid,DNA)含有的大量碱基对和特有的双螺旋结构,使得生物计算机拥有存储能力强、计算效能高等特殊优势,同时生物计算机在芯片寿命方面也超越了传统计算机[29]。

2018 年,国内研究团队对DNA 计算机领域内的典型图着色的NP-完全问题进行深入挖掘,提出了一种大规模DNA 并行计算模型,实现了人类非传统计算机最大规模问题的求解[30]。2021 年,国际首次开发出能够脱离特定条件使用的活体计算设备,并能够在纸上打印细胞。研究人员利用该新技术设计了多种生物传感器,有望推动生物计算行业的发展[31]。

4.2 光子计算机

光子计算机(Photon Computer)是指由光子信号实现数字计算、逻辑运算、信号存储和数据处理的新型计算机。它主要由激光器、光学反射器、透镜、滤波电容器等光学元器件组成,靠激光束进入由反射器与透镜所构成的列阵来实现数据的处理,由光取代了电子,光计算取代了电子运算。相比于传统计算机,光子计算机具有更快的运算速度、更低的能耗以及更高的并行性[32-33]。

2020 年2 月,我国研制出一种结合集成芯片、光子概念、物理尺度可扩展的光子计算机,成功将子集和问题映射到光波导网络中来并行搜索解[34-35]。2021 年12月,国外研发出一款高性能光子计算处理器(PACE),单个光子芯片中集成了超过10 000 个光子器件,针对特定循环神经网络的运行速度可达目前高端GPU 的数百倍[36]。

4.3 类脑计算机

类脑计算(Brain-inspired Computing)又称为神经形态计算,旨在模拟人脑的神经网络和信息处理方式,以实现更加智能化的计算能力,从而支持计算机完成感知、记忆、学习、决策等智能任务[37],如基于神经形态计算和哈希的动态视觉传感器、基于神经结构搜索的液体状态机架构挖掘与参数设计[38-39]。相比于冯·诺依曼架构,类脑计算机具有两个巨大的优势:低功耗和并行计算。有研究指出,人脑能够以约20 W 的超低功耗来处理接收到的大量信息,该功率远远小于现有计算机CPU[40]。

2019 年,我国研发出一款名为“天极”的类脑芯片[41],其不仅可以搭载传统的机器学习算法,还可以实现类脑电路和多种编码方案,已在无人驾驶自行车上进行了验证[42]。2020 年,我国第一台类脑计算机——Dar‐win Mouse 研制成功,其计算规模超越了世界三大顶尖类脑计算系统,标志着我国在类脑计算领域进入了一个全新的发展阶段[43]。

4.4 量子计算机

量子计算机是指利用量子力学定律完成量子运算的机器。在传统计算机中,每个比特只能表示0 或1 两种状态,而在量子计算机中,每个量子比特可以同时处于多种状态,这被称为量子叠加态。在这种叠加态下,量子比特不仅可以表示0 和1,还可以表示这两种状态之间所有可能的状态[44]。量子计算机通过操作量子比特间的相互作用,可以实现更快的计算和处理速度,对某个特定问题的求解能力可以远超经典计算机,这种能力也被称为“量子计算优越性”。量子计算机被誉为最有潜力的非冯·诺依曼计算架构。

目前有三个问题可以用来验证量子计算优越性,分别是玻色取样(Boson Sampling)[45]、随机量子线路采样(Random Circuit Sampling)[46]和瞬时量子多项式线路(Instantaneous Quantum Polynomial,IQP)[47]。为了测试经典计算机在这些案例上面的极限,各国科学家纷纷在超级计算机上进行量子计算优越性的标准测试。

以玻色取样问题为例,2016 年,我国测试高斯玻色采样案例在天河二号超级计算机上的最高生成速度为每100 分钟50 个光子玻色采样[48]。2020 年,国内量子计算团队成功构建76 个光子的量子计算机“九章”,在求解玻色取样问题时较世界最快的超级计算机“富岳”快1014倍,这项重大突破意味着目前中国已经实现量子计算优越性[49]。

在量子计算系统方面,2021 年,国内高校团队研发出一款可编程硅基光量子计算芯片[50],可以在任意五顶点图上实现纠缠双光子量子行走,具有连续可调的粒子交换对称性和不可分辨性,为大规模可编程量子行走处理器的应用开辟了道路。

5 结论

冯·诺依曼架构自诞生以来一直作为电子计算机的主流架构,其具有的局限性也被日益精进的技术所弥补。针对访存瓶颈和指令串行的两大缺陷,技术人员提出了多级存储与指令流水线技术。对于单核CPU 性能提升困难的问题,多核处理器和异构并行计算也成为了主要处理方式,并不断取得突破性的成果。

但在传统架构上的探索终有尽头,对高算力的迫切需求倒逼人们对计算机体系架构进行改变,或对计算方式进行创新。目前在非冯·诺依曼架构下的研究成果,如存算一体计算机、数据流计算机等,虽然未能取代冯·诺依曼架构,但这种计算思想已融入了现代电子计算机中。此外,类脑计算、光子计算、量子计算等全新计算机架构极具潜力,未来的发展前景将十分可观。

猜你喜欢

数据流指令量子
听我指令:大催眠术
2022年诺贝尔物理学奖 从量子纠缠到量子通信
汽车维修数据流基础(下)
决定未来的量子计算
新量子通信线路保障网络安全
ARINC661显控指令快速验证方法
LED照明产品欧盟ErP指令要求解读
一种提高TCP与UDP数据流公平性的拥塞控制机制
一种简便的超声分散法制备碳量子点及表征
基于数据流聚类的多目标跟踪算法