版权归原作者所有,如有侵权,请联系我们

[科普中国]-存储程序原理

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

存储程序原理是冯·诺依曼于1946年提出的将程序像数据一样存储到计算机内部存储器中的一种设计原理。

存储程序原理就是将我们为解决特定问题而编写的程序存放在计算机存储器中,然后按存储器存储程序的首地址执行程序的第一条指令。以后就按照该程序的规定顺序执行其他指令,直至程序结束执行。1

简介存储程序原理又称“冯·诺依曼原理”(1946年提出)。将程序像数据一样存储到计算机内部存储器中的一种设计原理。程序存入存储器后,计算机便可自动地从一条指令转到执行另一条指令。现代电子计算机均按此原理设计。

1、首先:把程序和数据通过输入输出设备送入内存。

一般的内存都是划分为很多存储单元,每个存储单元都有地址编号,这样按一定顺序把程序和数据存起来,而且还把内存分为若干个区域,比如有专门存放程序区和专门存放数据的数据区。

2、其次:执行程序,必须从第一条指令开始,以后一条一条地执行。

一般情况下按存放地址号的顺序,由小到大依次执行,当遇到条件转移指令时,才改变执行的顺序。每执行一条指令,都要经过三个步骤:第一步,把指令从内存中送往译码器,称为取指;第二步,译码器把指令分解成操作码和操作数,产生相应的各种控制信号送往各电器部件;第三步,执行相应的操作。这一过程是由电子路线来控制,从而实现自动连续的工作。

定义冯·诺依曼计算机要求程序必须存储在存储器中。这与早期(冯·诺依曼计算机以前)只有数据才存储在存储器中的计算机结构完全不同,早期的计算机为了完成某个任务,一般是将完成该任务的程序通过操作一系列的开关或改变配线系统来实现的,即存储器中只存数据不存程序。

冯·诺依曼计算机将数据和程序都以二进制形式(0或1)存储在存储器中。其程序由一组数量有限的指令(控制计算机操作的命令)组成。控制单元从存储器中取出一条指令,解释并执行指令。一条指令执行完毕后,计算机将按照程序所规定的顺序自动取出下一条指令来执行。将这种操作指令的方式称为程序控制原理。2

发展历程计算机采取事先编制程序、存储程序、自动连续运行程序的工作方式,称为存储程序方式。对此作出重大贡献的是一位匈牙利出生的美籍数学家冯,诺依曼(Von Neuman)。虽然1946年制成的ENIAC是现代计算机的始祖,但它并没有采用现在通用计算机的工作原理——存储程序思想。在研制ENIAC的同时,以冯·诺依曼为首的研制小组提出了”存储程序控制”的计算机结构,并开始了存储程序控制的计算机EDVAC(Electronic Discrete Variable Automatic Computer)的研制。由于种种原因,EDVAC直到1951年才问世,而吸收了冯,诺依曼的设计思想,由英国盒0桥大学研制的EDSAC(Electronic Delay Storage Automatic Computer)先于它两年诞生,成为事实上的第一台存储程序的计算机。

几十年来,计算机体系结构发生了许多演变,但存储程序的概念仍是普遍采用的结构原则。存储程序原理简要概括如下:

(1)计算机由运算器、控制器、存储器、输入设备和输出设备五部分组成(硬件构成)。

(2)指令和数据都以二进制的形式顺序存放在存储器中(二进制原理)。

(3)机器自动顺序取出每条指令,进行分析,执行其规定的操作(程序控制原理)。

冯·诺依曼对计算机界的最大贡献在于存储程序概念的提出和实现。存储程序原理不仅是计算机的基本工作原理,奠定了现代计算机的基本结构,而且开创了程序设计的新时代。自计算机出现至今的60多年来,虽然计算机的发展速度惊人,但就其结构原理来说,目前绝大多数计算机仍建立在存储程序概念的基础上。我们把符合存储程序概念的计算机统称为冯·诺依曼型计算机。随着计算机技术的不断发展,也出现了一些突破冯·诺依曼结构的计算机,统称为非冯·诺依曼结构计算机,如数据驱动的数据流计算机、需求驱动的归约计算机和模式匹配驱动的智能计算机等。本书主要讨论冯,诺依曼结构计算机的组成。3

基本思想“存储程序”工作原理是计算机自动连续工作的基础,其基本思想如下:

(1)采用二进制形式表示数据和指令。

(2)将程序和数据事先存入主存储器中,计算机在工作时按一定顺序从存储器中取出指令加以执行。

(3)论证了组成计算机硬件系统有运算器、存储器、控制器、输入装置和输出装置五大基本部件,并规定了这五部分的基本功能。

上述概念奠定了现代计算机的基本结构,并开创了程序设计的时代。虽然计算机技术发展很快,但存储程序原理至今仍然是计算机内在的基本工作原理,仍然是我们理解计算机系统功能与特征的基础。自计算机诞生的那天起,这一原理就决定了人们使用计算机的主要方式——编写程序和运行程序。4

本词条内容贡献者为:

徐恒山 - 讲师 - 西北农林科技大学