冯·诺依曼机

来自计算思维百科
跳转至: 导航搜索

根据冯·诺依曼提出的原理制造的计算机被称为冯·诺依曼结构计算机,现代计算机虽然结构更加复杂,计算能力更加强大,但仍然是基于这一原理设计的,也是冯诺依曼机。

基本概念

ENIAC是第一台采用电子线路研制成功的通用电子数字计算机,虽然它采用了当时先进的电子技术,但是在结构上还是根据机电系统设计的,因此存在重大的线路结构等问题。在图灵机的影响下,美国数学家冯·诺依曼(John von Neumann)等人发表了关于“电子计算装置逻辑结构设计”的报告,它被认为是现代电子计算机发展的里程碑式文献。该报告具体介绍了制造电子计算机和程序存储的新思想,明确给出了计算机系统结构以及实现方法,提出了两个极其重要的思想,即存储程序和二进制。后来人们把具有这种结构的机器统称为冯·诺依曼型计算机。

模型

冯·诺依曼机模型是以运算器为中心的存储程序式的计算机模型,它由5大部分所组成,即运算器、控制器、存储器、输入设备和输出设备,各部分之间的关系如图1所示:

 
8.3.1.png


图1 冯·诺依曼机

在图1中,实线代表数据或指令,在机内表现为二进制;虚线代表控制信号,在机内呈现高低电平形式,起控制作用。

运算器

用来实现算术运算、关系运算和逻辑运算,此外它还含有能暂时存放数据和结果的寄存器。

控制器

用来实现对整个运算过程的协调控制。控制器和运算器一起组成了计算机核心。现代计算机的运算器和控制器通常都做在一块芯片中,称为中央处理单元(Central Processing Unit,简称CPU)。计算机中的各种控制和运算都由CPU来完成,因此人们把CPU称为计算机的心脏。

存储器

用来存放程序和参与运算的各种数据。使用时,可以从存储器中取出信息,不破坏原有的内容,这种操作称为存储器的读操作;也可以把信息写入存储器,原来的内容被抹掉,这种操作称为存储器的写操作。存储器包括内存储器和外存储器两种。

输入设备

用于程序和原始数据的输入。

输出设备

实现计算结果的输出。

通常把运算器、控制器和内存储器一起称为主机,而输入设备、输出设备和外存储器合称为外部设备。外部设备与主机之间的信息交换是通过外部设备输入/输出接口实现的,不同的外部设备有各自不同的输入/输出接口。

工作原理

冯·诺依曼机的主要思想是存储程序和程序控制,其工作原理是:程序由指令组成,并和数据一起存放在存储器中,计算机一经启动,就能按照程序指定的逻辑顺序把指令从存储器中读取并逐条执行,自动完成指令规定的操作。

例如,利用计算机解算一个题目时,先确定分解的算法,编制计算的步骤,选取能实现相应操作的指令,并构成相应的程序。如果把程序和解算问题时所需的一些数据都以计算机能识别和接受的二进制代码形式预先按一定顺序存放到计算机的存储器中,计算机运行时就可从存储器中取出一条指令,实现一个基本操作。以后自动地逐条取出指令,执行所指的操作,最终便完成一个复杂的运算。这个原理就是存储程序的基本思想。

根据存储程序的原理,计算机解题过程就是不断引用存储在计算机中的指令和数据的过程。只要事先存入不同的程序,计算机就可以实现不同的任务,解决不同的问题。可见,存储程序与ENIAC繁琐的外部接线法截然不同,它使计算机的编程发生了质的变化,大大地方便了计算机的使用。

特点

冯·诺依曼机的主要思想是存储程序和程序控制,其工作原理是:程序由指令组成,并和数据一起存放在存储器中,计算机一经启动,就能按照程序指定的逻辑顺序把指令从存储器中读取并逐条执行,自动完成指令规定的操作。

例如,利用计算机解算一个题目时,先确定分解的算法,编制计算的步骤,选取能实现相应操作的指令,并构成相应的程序。如果把程序和解算问题时所需的一些数据都以计算机能识别和接受的二进制代码形式预先按一定顺序存放到计算机的存储器中,计算机运行时就可从存储器中取出一条指令,实现一个基本操作。以后自动地逐条取出指令,执行所指的操作,最终便完成一个复杂的运算。这个原理就是存储程序的基本思想。

根据存储程序的原理,计算机解题过程就是不断引用存储在计算机中的指令和数据的过程。只要事先存入不同的程序,计算机就可以实现不同的任务,解决不同的问题。可见,存储程序与ENIAC繁琐的外部接线法截然不同,它使计算机的编程发生了质的变化,大大地方便了计算机的使用。

局限性

早期的计算机都是以数值计算为目的开发的,所以基本上都是以冯·诺依曼理论为基础的冯·诺依曼计算机,其工作方式是顺序的。当计算机越来越广泛地应用于非数值计算领域,处理速度成为人们关心的首要问题时,冯·诺依曼计算机的局限性就逐渐显露出来了。

冯·诺依曼机结构的最大局限就是存储器和中央处理单元之间的通路太狭窄,每次执行一条指令,所需的指令和数据都必须经过这条通路。由于这条狭窄通路的阻碍,单纯地扩大存储器容量和提高CPU速度的努力意义不大,因此人们将这种现象叫做“冯·诺依曼瓶颈”。

非冯·诺依曼化

冯·诺依曼机从本质上讲是采取串行顺序处理的工作机制,即使有关数据已经准备好,也必须逐条执行指令序列,而提高计算机性能的根本方向之一是并行处理。因此,近年来人们在谋求突破传统冯·诺依曼体制的束缚,这种努力被称为非冯·诺依曼化。对所谓非冯·诺依曼化的探讨仍存在争议,一般认为它表现在以下3个方面。

① 在冯·诺依曼体系范畴内,对传统冯·诺依曼机进行改造。如采用多个处理部件形成流水处理,依靠时间上的重叠提高处理效率;又如组成阵列机结构,形成单指令流多于数据流,提高处理速度。这些方向比较成熟,已经成为标准结构。

② 采用多个冯·诺依曼机组成多机系统,支持并行算法结构,这方面的研究目前比较活跃。

③ 从根本上改变冯·诺依曼机的控制流驱动方式。例如,采用数据流驱动工作方式的数据流计算机,只要数据已经准备好,有关的指令就可并行地执行。这是真正非冯·诺依曼计算机,它为并行处理开辟了新的前景。