冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。
2. 冯诺依曼结构的特点现代计算机发展所遵循的基本结构形式始终是冯·诺依曼机结构。这种结构特点是“程序存储,共享数据,顺序执行”,CPU 从存储器里取出指令和数据进行相应的计算。 主要特点有:
- (1)单处理机结构,机器以运算器为中心;
- (2)采用程序存储思想;
- (3)指令和数据一样可以参与运算;
- (4) 数据以二进制表示;
- (5)将软件和硬件完全分离;
- (6) 指令由操作码和操作数组成;
- (7)指令顺序执行。
(1)运算器:计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件(ALU);
(2)控制器:由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。运算器和控制器统称中央处理器,也叫做CPU。中央处理器是电脑的心脏;
(3)存储器:存储器分为内存和外存。内存是电脑的记忆部件,用于存放电脑运行中的原始数据、中间结果以及指示电脑工作的程序。外存就像笔记本一样,用来存放一些需要长期保存的程序或数据,断电后也不会丢失,容量比较大,但存取速度慢。当电脑要执行外存里的程序,处理外存中的数据时,需要先把外存里的数据读入内存,然后中央处理器才能进行处理。外存储器包括硬盘、光盘和优盘;
(4)输入设备:输入设备是向计算机输入数据和信息的设备。是计算机与用户或其他设备通信的桥梁。输入设备是用户和计算机系统之间进行信息交换的主要装置之一。键盘,鼠标,摄像头,扫描仪,光笔等都属于输入设备。
(5)输出设备:是计算机硬件系统的终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表现出来。常见的输出设备有显示器、打印机等。
4. 冯诺依曼结构示意图
5. 冯诺依曼结构的作用
冯.诺依曼体系结构是现代计算机的基础,现在大多计算机仍是冯.诺依曼计算机的组织结构,只是作了一些改进而已,并没有从根本上突破冯体系结构的束缚。冯.诺依曼也因此被人们称为“计算机之父”。
然而由于传统冯.诺依曼计算机体系结构天然所具有的局限性,从根本上限制了计算机的发展。根据冯·诺依曼体系结构构成的计算机,必须具有如下功能:把需要的程序和数据送至计算机中。必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力。能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作。能够按照要求将处理结果输出给用户。 将指令和数据同时存放在存储器中,是冯·诺依曼计算机方案的特点之一。
冯·诺依曼提出的计算机体系结构,奠定了现代计算机的结构理念。
6. 与哈佛体系结构的比较说到冯诺依曼结构,就不得不谈到哈佛结构。 冯·诺依曼结构的特点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行;计算机由输入设备,输出设备,运算器,控制器,存储器五部分组成.
哈佛结构的计算机由CPU;程序存储器;数据存储器。是为了高速数据处理而采用的,它的特点是将程序指令和数据分开存储,由于数据存储器与程序存储器采用不同的总线,因而较大的提高了存储器的带宽,使之数字信号处理性能更加优越。
简而言之,如果你的计算机是哈佛结构的,你就得在电脑安装两块硬盘,一块装程序,一块装数据,内存装两根,一根储存指令,一根存储数据,而冯·诺依曼指令和数据是混合存储的,结构上简单,成本低,这成为现在主流计算机是冯·诺依曼结构而不是哈佛结构的一个重要原因。
7. 冯·诺依曼体系结构的局限早期由于种种软硬件等种种方面的原因,冯·诺依曼体系结构从计算机的发展史中脱颖而出,但由于科技的发展已经人们计算需求的提升,冯·诺依曼体系结构的弊端也暴露出来了。
冯·诺依曼计算机的软件和硬件完全分离,适用于作数值计算。这种计算机的机器语言同高级语言在语义上存在很大的间隔,称之为冯.依曼语义间隔。造成这个差距的其中一个重要原因就是存储器组织方式不同,冯·诺依曼机存储器是一维的线性排列的单元,按顺序排列的地址访问。而高级语言表示的存储器则是一组有名字的变量,按名字调用变量,不考虑访问方法,而且数据结构经常是多维的(如数组,表格)。
在大多数高级语言中,数据和指令截然不同,并无指令可以像数据一样进行运算操作的概念。同时,高级语言中的每种操作对于任何数据类型都是通用的,数据类型属于数据本身,而·诺依曼机的数据本身没有属性标志,同一种操作要用不同的操作码来对数据加以区分。这些因素导致了语义的差距。如何消除如此大的语义间隔,这成了计算机面临的一大难题和发展障碍。
8. 计算机体系结构的发展趋势冯·诺依曼结构开启了计算机系统结构发展的先河,但是因为其集中、顺序地的控制而成为性能提高的瓶颈,冯·诺依曼体系结构的局限已经严重束缚了现代计算机的进一步发展,而非数值处理应用领域对计算机性能的要求越来越高,这就亟待需要突破传统计算机体系结构的框架,寻求新的体系结构来解决实际应用问题。
因此各国科学家仍然在探索各种非冯·诺依曼结构目前在体系结构方面已经有了重大的变化和改进,如并行计算机、数据流计算机以及量子计算机、 函数式编程语言计算机等非冯计算机,它们部分或完全不同于传统的冯.诺依曼型计算机,很大程度上提高了计算机的计算性能。
近几年来人们努力谋求突破传统冯·诺依曼体制的局限,各类非诺依曼化计算机的研究如雨后春笋蓬勃发展,主要表现在以下四个方面:
- (1)对传统冯·诺依曼机进行改良,如传统体系计算机只有一个处理部件是串行执行的,改成多处理部件形成流水处理,依靠时间上的重叠提高处理效率。
- (2)由多个处理器构成系统,形成多指令流多数据流支持并行算法结构。这方面的研究目前已经取得一些成功。
- (3)否定冯·诺依曼的控制流驱动方式。设计数据流驱动工作方式的数据流计算机,只要数据已经准备好,有关的指令就可并行地执行。这是真正非诺依曼化的计算机,这样的研究还在进行中,已获得阶段性的成果,如神经计算机。
- (4)彻底跳出电子的范畴,以其它物质作为信息载体和执行部件,如光子、生物分子、量子等。 众多科学家正在进行这些前瞻性的研究。