再学经典 - 冯诺依曼体系

Posted 田攀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了再学经典 - 冯诺依曼体系相关的知识,希望对你有一定的参考价值。

电子计算机的问世,奠基人是英国科学家艾兰· 图灵(Alan Turing)和美籍匈牙利科学家冯· 诺依曼(John Von· Neumann)。图灵的贡献是建立了图灵机的理论模型,奠定了人工智能的基础。而冯· 诺依曼则是首先提出了计算机体系结构的设想。

图灵和冯诺依曼都是计算机之父,有什么区别呢?

图灵Alan Turing——计算机科学之父

冯·诺依曼John von Neumann——现代计算机之父

图灵也是个天才,他的工作非常有开创性,系统建构了计算机科学的基础,提出了图灵机、图灵测试,所以被称为“计算机科学之父”。

冯·诺依曼John von Neumann——现代计算机之父前面那些人差不多把可以评定为“计算机之父”的选项都拿走了,可为什么冯·诺依曼才是钦定的啊?因为他在科学界名声很响,有许多开创性的工作,包括数学、量子力学、计算机和经济学领域。他对二战的贡献很大,不仅参与原子弹研制,还对ENIAC作了关键改进。另外他还最终完善了计算机的模型,提出冯诺依曼机,奠定了我们现代所使用的计算机的基础。所以把冯诺依曼称为“现代计算机之父”是实至名归的。

这位计算机之父本来是个搞原子弹的数学家,嫌弃计算太慢就自己设计计算机,并且提出了冯诺依曼体系。他的故事,可以看下这篇文章《计算机之父本来是个搞原子弹的数学家,嫌弃计算太慢就自己设计计算机

一般谈到冯诺依曼的改变就不能脱离图灵,对于现代计算机体系结构,如果已经是95分的水平算的话,图灵完成的是0->1的贡献,而冯诺依曼,是1->60分,其后若干的吃瓜群众再在此之上再抱团研(吵)究(架),进一步完善,形成了目前的计算机体系结构,养活了一大堆人。这其中要说到哈佛结构,可能连1分的权重都算不上(教科书上虽然引用很多,但哈佛和冯诺依曼其实并列的资格都没有),毕竟图灵机的原型上,指令和数据就是两条独立的纸带。图灵的根本是在数学上定义了可计算数在二进制及有限指令及状态跳转下的成立,冯诺依曼的根本在于工程上定义了计算、控制、存储、输入输出的五个部件,要改进冯诺依曼,就需要从图灵+冯诺依曼入手。

 

冯诺依曼体系

1946年美籍匈牙利科学家冯·诺依曼提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式存储,并确定了存储程序计算机的五大组成部分和基本工作方法。半个多世纪以来,计算机制造技术发生了巨大变化,但冯· 诺依曼体系结构仍然沿用至今,人们总是把冯· 诺依曼称为“计算机鼻祖”。

数学家冯诺依曼提出的体系结构包含以下几个要点:

  • 把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。
  • 计算机的数制采用二进制。
  • 计算机应该按照程序顺序执行。

关于程序与数据,数据就是一首MP3歌曲, 程序就是用来控制解析播放这首歌的代码,从底层来讲就是供CPU运行的指令.总之在计算机当中它们都是0和1,我们直接简称为数据或程序或指令, 将它们理解为同一个意思,毕竟它们都属于0和1组成的流,这个可以根据上下文来理解。

 

冯诺依曼体系的作用

冯.诺依曼体系结构是现代计算机的基础,现在大多计算机仍是冯.诺依曼计算机的组织结构,只是作了一些改进而已,并没有从根本上突破冯体系结构的束缚。冯.诺依曼也因此被人们称为“计算机之父”。然而由于传统冯.诺依曼计算机体系结构天然所具有的局限性,从根本上限制了计算机的发展。

根据冯·诺依曼体系结构构成的计算机,必须具有如下功能:把需要的程序和数据送至计算机中。必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力。能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作。能够按照要求将处理结果输出给用户。

冯诺依曼体系的重要特点是存储和运算分离。

将指令和数据同时存放在存储器中,是冯·诺依曼计算机方案的特点之一。计算机由控制器、运算器、存储器、输入设备、输出设备五部分组成 冯·诺依曼提出的计算机体系结构,奠定了现代计算机的结构理念。

 

冯诺依曼五元组

 

程序运行的基本原理

要执行指令:红色的为指令码,黑色的是操作数

指令包含两个部分,一部分时指令码,一部分时操作数,这里的操作数是一个地址00011110,在这个地址里面放了数据01001011,该指令要完成的事情是对数据进行加1的操.

详细执行过程:

(1) 程序计数器PC将指令的地址发送给地址寄存器AR

(2)地址寄存器到响应的存储单元中将指令取出放入指令寄存器

(3) 指令寄存器将指令交给指令译码器ID进行译码,经过分析这条指令的操作数是一个地址

(4)控制器将指令中的地址传回地址寄存器AR

(6)在控制器的协调下,到相应的存储器中取出数据,将其送到运算器的缓冲寄存器DR

(7)缓冲寄存器将数据送到算数逻辑单元ALU

(8)操作控制器发送一个加一操作的信号给算数逻辑单元ALU

(9)ALU完成运算,并将运算结果放回到累加器中

主要步骤:按照地址去指令,按照地址取数据,发送运算信号,完成运算

 

 

以上是关于再学经典 - 冯诺依曼体系的主要内容,如果未能解决你的问题,请参考以下文章

什么是内存:存储器层次结构

Linux冯诺依曼体系结构和操作系统概念

计算机系统读书笔记系统组成—冯诺依曼体系

冯诺依曼徒弟

计算机原理学习-- 冯诺依曼体系和CPU工作原理

(转)计算机原理学习-- 冯诺依曼体系和CPU工作原理