存储程序控制概念是冯·诺依曼于1945年6月首先提出来的。它可以概括为以下几点:
计算机(硬件)是由运算器、存储器、控制器、输入设备和输出设备5个基本部件组成。
计算机内部采用二进制来表示指令和数据。
将编号的程序和原始数据事先存入存储器中。
把编好的程序和原始数据预先存入计算机的主存储器中,使计算机在工作时能够连续、自动、高速地从存储器中取出一条条指令并加以执行, 从而自动完成预定的任务。
原始的冯·诺依曼计算机在结构上是以运算器为中心的,而发展到现在,已转向以存储器为中心。
通常将运算器和控制器合称为中央处理器(Central Processing Unit, CPU)。
中央处理器和主存储器(内存储器)一起组成主机部分。
除去主机以外的硬件装置,如输入设备、输出设备和辅助存储器等,称为外围设备或外部设备。
CPU 负责与存储器间交换数据,为了这个目的,CPU 一般使用两个内部寄存器,一个是存储器地址寄存器MAR,为下一次读写指定存储器的地址;另一个是存储器数据寄存器MDR, 存放刺耳到内存或从内存接收的数据。类似的, I/O地址寄存器I/O AR指定一个特定的I/O设备;I/O 数据寄存器 I/O DR用于I/O模块与CPU之间数据交换。
运算器部件是计算机中进行数据加工的部件,其主要功能包括:
执行数值数据的算术加减乘除等运算,执行逻辑数据的与或非等逻辑运算,由一个被称为 ALU (Arithmetic and Logical Unit, ALU)的部件完成。
暂时存放参加运算的数据和中间结果,由多个通用寄存器来承担
运算器通常也是数据传输的通路
控制器是计算机中控制执行指令的部件,主要功能是按照人们预先确定的操作步骤,控制整个计算机的各部件有条不紊地自动工作。
1. 正确执行每条指令
(1)首先是取来一条指令,
(2)接着分析这条指令,
(3)再按指令格式和功能执行这条指令
2. 保证指令按规定序列自动连续地执行。
3. 对各种异常情况和请求及时响应和处理。
存储器用来存放程序和数据,是计算机能够实现存储程序控制的基础。
由高速缓冲存储器,主存储器,外存储器所组成的多级(层)存储器系统,是计算机中用于存储程序和数据的子系统。这三级存储器所用的存储介质、工作原理和特性各不相同。
输入设备是向计算机中送入程序和数据的有一定独立功能的设备,通过接口和总线与计算机主机连通,用于人—机交互联系,如计算机键盘和鼠标等。
输出设备的任务是将计算机的处理结果以数字、字符(汉字)、图形、图像、声音等形式送出计算机。
常用的输出设备有打印机、显示器、辅助存储器等。
总线是一组能为多个部件服务的公共信息传送线路,他能分时地发送与接收各部件的信息。
1. 数据线
数据线提供系统模块间传送数据的途径。这些线组合在一起成为数据总线。典型的数据总线包含32、64、128或更多的分离导线,这些线的数据称为数据总线的宽度。数据总线的宽度是决定系统总体性能的关键。
2. 地址线
用于指定数据总线上数据的来源或去向。地址总线的宽度决定了系统能够使用的最大的存储器容量。地址线通常也用于I/O端口的寻址。地址线的高位用于选择总线上指定的模块,低位用于选择模块内具体的存储单元或I/O端口。
3. 控制线
用来控制对数据线和地址线的存取和使用。控制信号在系统部件之间发送命令和时序信号。时序信号指定了数据和地址信号的有效性,命令信号指定了要执行的操作。
前面提到的冯·诺依曼计算机的存储程序概念,但是根据程序和数据的存放形式不同,存储器的设计思想有可以分为冯·诺依曼结构和哈佛结构。
冯·诺依曼结构也成为普林斯顿结构,是一种传统的存储设计思想,即指令和数据是不加区别地混合存储在同一个存储器中的,共享数据线。指令地址和数据地址指向同一个存储器的不同物理位置,指令和数据的宽度相同。由于指令和数据存放在同一存储器中,因此,冯·诺依曼结构中不能同时取指令和取操作数。又由于存储器存取速度远远低于CPU运算速度,从而使计算机运算速度受到很大的限制,CPU和共享存储器间的信息交换成了影响计算和系统性能的瓶颈。
为了克服冯·诺依曼结构的缺点,哈佛大学提出了另外一种存储器设计的思想,称为哈佛结构。哈佛结构的指令和数据是完全分开的,存储器分为两部分,一个是程序存储器,用来存放指令,另一个是数据存储器,用来存放数据。并且有两组总线:程序存储器的数据总线和地址总线,数据存储器的数据总线和地址总线。这种结构可以允许同时获取指令和操作数。也就是说,在一个机器周期内可以同时准备好直立和操作数。所以哈佛结构比冯·诺依曼结构具有更高的执行效率。同时,可以使指令和数据有不同的数据宽度。
当前,许多微型计算机中的高速缓冲存储器采用哈佛结构,主存储器采用冯·诺依曼结构。