冯·诺依曼结构

来源:互联网 发布:怎么才能成为淘宝客 编辑:程序博客网 时间:2024/04/29 00:26

百度百科

    说到计算机的发展,就不能不提到美国科学家冯诺依曼。从20世纪初,物理学和电子学科学家们就在争论制造可以进行数值计算的机器应该采用什么样的结构。人们被十进制这个人类习惯的计数方法所困扰。所以,那时以研制模拟计算机的呼声更为响亮和有力。20世纪30年代中期,美国科学家冯诺依曼大胆的提出,抛弃十进制,采用二进制作为数字计算机的数制基础。同时,他还说预先编制计算程序,然后由计算机来按照人们事前制定的计算顺序来执行数值计算工作。

  冯诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。人们把冯诺依曼的这个理论称为冯诺依曼体系结构。从ENIAC到当前最先进的计算机都采用的是冯诺依曼体系结构。所以冯诺依曼是当之无愧的数字计算机之父。

    冯·诺依曼结构又称作普林斯顿体系结构(Princeton architecture)。

    1945年,冯·诺依曼首先提出了“存储程序”的概念和二进制原理,后来,人们把利用这种概念和原理设计的电子计算机系统统称为“冯.诺曼型结构”计算机。冯.诺曼结构的处理器使用同一个存储器,经由同一个总线传输。

特点

  冯.诺曼结构处理器具有以下几个特点:  

必须有一个存储器;  

必须有一个控制器;  

必须有一个运算器,用于完成算术运算和逻辑运算;  

必须有输入设备和输出设备,用于进行人机通信。  

另外,程序和数据统一存储并在程序控制下自动工作

功能

    根据冯诺依曼体系结构构成的计算机,必须具有如下功能:   

把需要的程序和数据送至计算机中。   

必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。   

能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力。   

能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作。   

能够按照要求将处理结果输出给用户。   

    为了完成上述的功能,计算机必须具备五大基本组成部件,包括:   

输人数据和程序的输入设备;  

记忆程序和数据的存储器;  

完成数据加工处理的运算器;  

控制程序执行的控制器;  

输出处理结果的输出设备 。

 

 

 

维基百科

冯·诺伊曼结构(von Neumann architecture),也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的电脑设计概念结构。本词描述的是一种实作通用图灵机的计算装置,以及一种相对于平行计算的序列式结构参考模型(referential model)。

本结构隐约指导了将储存装置与中央处理器分开的概念,因此依本结构设计出的计算机又称储存程式型电脑。

将CPU与内存分开并非十全十美,反而会导致所谓的冯·诺伊曼瓶颈(von Neumann bottleneck):在CPU与内存之间的流量(资料传输率)与内存的容量相比起来相当小,在现代电脑中,流量与CPU的工作效率相比之下非常小,在某些情况下(当CPU需要在巨大的资料上执行一些简单指令时),资料流量就成了整体效率非常严重的限制。CPU将会在资料输入或输出内存时闲置。由于CPU速度以及内存容量的成长速率远大于双方之间的流量,因此瓶颈问题越来越严重。

而冯·诺伊曼瓶颈是约翰·巴科斯在1977年ACM图灵奖得奖致词时第一次出现,根据巴科斯所言:


……确实有一个变更储存装置的方法,比借由冯·诺伊曼瓶颈流通大量资料更为先进。瓶颈这词不仅是对于问题本身资料流量的叙述,更重要地,也是个使我们的思考方法局限在‘一次一字符’模式的智能瓶颈。它使我们怯于思考更广泛的概念。因此编程成为一种计划与详述通过冯·诺伊曼瓶颈的字符资料流,且大部分的问题不在于资料的特征,而是如何找出资料。


在CPU与内存间的快取内存抒解了冯·诺伊曼瓶颈的效能问题。另外,分支预测(branch prediction)算法的建立也帮助缓和了此问题。巴科斯在1977年论述的“智能瓶颈”已改变甚多。且巴科斯对于此问题的解决方案并没有造成明显影响。现代的函数式编程以及面向对象编程已较少执行如早期Fortran一般会“将大量数值从内存搬入搬出的操作”,但平心而论,这些操作的确占用电脑大部分的执行时间。