资讯

冯·诺依曼架构是什么?程序和数据存在同一个存储器中的计算机结构

2026-11-053 分钟阅读百科
TL;DR冯·诺依曼架构(Von Neumann Architecture)是 1945 年冯·诺依曼在 EDVAC 报告中描述的计算机体系结构,由运算器、控制器、存储器、输入和输出设备组成,核心是程序和数据都以二进制存放在同一存储器中、按顺序取指执行;其处理器与存储器之间的传输瓶颈对 AI 计算影响显著,催生了存内计算等研究。

冯·诺依曼架构(Von Neumann Architecture),也叫冯·诺依曼结构或普林斯顿结构,是现代绝大多数计算机所采用的基本体系结构。它的核心思想是“存储程序”:计算机要执行的程序和要处理的数据,都以二进制的形式存放在同一个存储器中,计算机按照顺序从存储器中取出指令并执行。

它的由来

1945 年,美籍匈牙利数学家约翰·冯·诺依曼参与了美国电子计算机 EDVAC 的设计工作,并撰写了一份题为《EDVAC 报告书的第一份草案》的文件,系统地描述了这种计算机的逻辑结构。这份报告广泛流传,对后来的计算机设计产生了深远的影响,这种结构因此以他的名字命名。需要说明的是,存储程序的思想并非冯·诺依曼一人所创,参与 ENIAC 和 EDVAC 研制的约翰·莫奇利、约翰·埃克特等人也做出了重要的贡献,艾伦·图灵在 1936 年提出的通用图灵机也蕴含了类似的思想。

在此之前,像 ENIAC 这样的早期电子计算机,要改变它所执行的计算任务,需要工作人员手动地重新连接大量的电线、拨动开关,一个新的程序可能需要花上好几天才能“装”好。而在冯·诺依曼架构中,程序和数据一样存放在存储器中,要换一个任务,只需要把新的程序读入存储器就可以了,这让计算机变成了真正通用、灵活的机器。

五个组成部分

冯·诺依曼架构的计算机由五个基本部分组成:运算器,负责进行算术运算和逻辑运算;控制器,负责从存储器中取出指令、解释指令,并指挥其他部件协调工作,运算器和控制器合在一起,就是我们今天所说的中央处理器(CPU);存储器,用来存放程序和数据;输入设备,比如键盘、鼠标,用来把信息输入计算机;输出设备,比如显示器、打印机,用来把结果输出。

计算机的工作过程是一个不断重复的循环:控制器从存储器中取出下一条指令;对指令进行解码,弄清楚要做什么;执行这条指令,可能需要从存储器中读取数据,交给运算器计算,再把结果写回存储器;然后再去取下一条指令。

冯·诺依曼瓶颈

冯·诺依曼架构有一个固有的问题:处理器和存储器是分开的,所有的指令和数据都要通过它们之间的同一条通道来传输。随着技术的发展,处理器的运算速度提升得非常快,而存储器的读写速度和这条通道的传输速度提升得慢得多。结果,处理器常常要花大量的时间等待数据从存储器中送过来,计算能力被白白浪费。这个问题被称为“冯·诺依曼瓶颈”,由约翰·巴克斯在 1977 年的图灵奖演讲中明确提出,也常被称为“内存墙”。为了缓解这一瓶颈,现代计算机采用了多级高速缓存、更高带宽的内存等技术。另一种相关的结构是哈佛架构,它把指令和数据分开存储在不同的存储器中,可以同时读取指令和数据,常用于一些嵌入式处理器和数字信号处理器中。

对 AI 计算的影响

冯·诺依曼瓶颈在人工智能计算中表现得尤为突出。大型神经网络有海量的参数,在训练和推理时需要不断地在存储器和计算单元之间搬运这些数据。尤其是大语言模型在生成文字时,每生成一个词都要把全部的模型参数从显存中读取一遍,速度往往受限于数据搬运的速度,而不是计算的速度,数据搬运消耗的能量甚至比计算本身还要多。为此,研究者和芯片厂商探索了多种方案:高带宽内存(HBM)把内存芯片堆叠起来、紧贴着计算芯片封装,大幅提高数据传输的带宽;存内计算直接在存储器中进行计算,减少数据的搬运;类脑计算芯片模仿人脑中存储与计算融为一体的方式。