冯诺依曼于1903年12月28日出生于匈牙利布达佩斯,二战后开始从事流体力学、计算机学等方面的研究,对世界上第一台电子计算机ENIAC(电子数字积分计算机)的设计提出过建议,1945年3月他在共同讨论的基础上起草了一个全新的“存储程序通用电子计算机方案”--EDVAC(Electronic Discrete Variable Automatic Computer的缩写)。这对后来计算机的设计有决定性的影响,特别是确定计算机的结构,采用存储程序以及二进制编码等,一直为电子计算机设计者所遵循。

冯诺依曼体系_输入设备

在计算机领域,他提出一种结构,将程序指令存储器和数据存储器合并在一起,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。

另外,他还提出二进制逻辑,即采用二进制作为计算机数值计算的基础,以0、1代表数值。不采用人类常用的十进制计数方法,二进制使得计算机容易实现数值的计算。

最后,他认为计算机由五大部分组成,分别是运算器、控制器、存储器、输入设备、输出设备。

当然,这不是他一个人的功劳,在他的身后,还有许许多多的计算机科学家的努力。比如,他的这套结构也遵循了图灵机的设计。

一、冯•诺依曼模型

计算机系统具体定义为五个部分,分别是运算器,控制器,存储器,输入设备,输出设备;其中运算器与控制器并称为中央处理器(CPU),存储器也就是我们常说的内存,常见的输出设备有键盘,鼠标,网卡,硬盘等;常见的输出设备有显示器,音响,硬盘等;

内存与外存的区别

内存从外观上区别就是内存条,外存就是诸如硬盘、U盘、光盘、软件等设备。从内部组成结构而言,内存与CPU关系最密切,他们俩是亲密无间的战友,CPU只处理内存上的数据,如果用户希望保存内存中被处理好的数据,那就只能保存在外存上,因为外存在关机后数据还在,而内存上的数据在关机后就消失了。

我们用一张图来说明计算机系统的五个部分,那么,它应该是下面这个样子。

冯诺依曼体系_输出设备_02

这种结构的主要优点:

  • 以运算单元为中心
  • 采用存储程序原理
  • 存储器是按地址访问,线性编址的空间
  • 控制流由指令流产生
  • 指令由操作码和地址码组成
  • 数据以二进制编码

二、内存的重要性

计算机被发明出来,作为人类的一个工具,最重要的能力就是数据计算。按照上面的结构,人们在使用计算机的过程中,它的流程应该是这样子的。

冯诺依曼体系_输入设备_03

比如说我们要处理一张照片,由扫描仪将真实世界中的照片扫描成计算机数据,交给CPU进行处理,然后输出到硬盘上。这个流程是没有问题的,但是,由于CPU的处理速度实在过快,而扫描仪扫描数据然后输入到计算机的速度又太慢,导致CPU接上不趟,这将大大削弱计算机的计算性能。怎么办?于是,内存就被发明出来。

内存的读写速度很快,快过世界上所有的存储器。于是,我们可以先将输入设备的数据存放到内存上,然后CPU读写内存上的数据进行处理,待数据处理好后,再保存到外存(比如硬盘)上,这样就将CPU的运算性能发挥到了极致。所以,它们之间的相互配合的流程应该是下面这个样子的。

冯诺依曼体系_输出设备_04

从此,输入设备和输出设备便不再和CPU直接打交道了,在输入设备、CPU和输出设备之间,就多了一个内存做为数据缓冲区,通常情况下,内存的速度与CPU的速度是匹配的,它们之间的配合非常贴切。

在解了冯诺依曼体系后,对于立志要做一名程序员的我们而言,还需要进一步了解CPU和内存。下一节,我们将介绍CPU的工作原理。这对于后期学习编程和调试代码是十分有帮助的。

——重庆教主 2023年11月30日