【冯诺依曼体系】
冯诺依曼机
冯诺依曼在研究 EDVAC 机时提出了存储程序的概念,该思想奠定了现代计算机的基本结构,以此概念为基础的各类计算机统称为冯诺依曼机,其特点如下:
- 硬件系统由运算器、存储器、控制器、输入设备、输出设备组成
- 指令与数据以同等地位存于存储器内,且可按地址寻访
- 指令与数据均以二进制码表示
- 指令由操作码和地址码组成,操作码表示操作的性质,地址码表示操作数在存储器中的位置
- 指令在存储器内按顺序存放,通常指令按顺序执行,在特定条件下,可根据运算结果或设定条件改变执行顺序
- 以运算器为中心,输入、输出设备通过运算器和存储器传送数据
现代计算机的组织结构
在微处理器问世前,运算器与控制器分离,且存储器容量很小,故以运算器为中心,其他部件均通过运算器完成信息传递
随着微电子技术的进步,现代计算机已经发展为以存储器为中心,使 I/O 操作尽可能绕过 CPU,直接在 I/O 设备和存储器之间完成,以提高系统的整体运行效率
【计算机的功能部件】
1.输入设备
输入设备的主要功能是将程序、数据以机器所能识别和接受的信息形式输入到计算机
常用的输入设备有键盘、鼠标、扫描仪、摄像机等
2.输出设备
输出设备的任务是将计算机处理的结果以人们所能接受的形式或其他系统所要求的信息形式输出
常用的输出设备有显示器、打印机等
3.存储器
存储器是计算机的存储部件,用来存放程序和数据
存储器分为主存储器、辅助存储器,主存储器又称内存,CPU 能够直接访问,辅助存储器又称外存,用来帮助主存存储更多信息,其中的内容必须调入主存后才可被 CPU 访问
主存由许多存储单元组成,每个存储单元包含若干存储元件,每一元件存储一位二进制代码,因此每一存储单元可存储一连串的二进制代码,这串代码被称为存储字,存储字的位数被称为存储字长,其是一个字节(8 bit)或字节的二次幂整数倍
同时,主存是按存储单元地址进行存取的,这种存取方式被称为按地址存取
主存由地址寄存器(MAR)、数据寄存器(MDR)、存储体、时序控制逻辑四部分组成
- MAR:存放访存地址,以便于主存进行寻址访问,在经过地址译码后即可找到所选的存储单元,其位数对应着存储单元的个数,长度与控制器的 PC 长度相等
- MDR:主存和其他部件的中介机构,用于暂存存储器中要读写的信息,其位数与存储字长相当,一般为字节的二次幂整数倍
- 时序控制逻辑:产生存储器操作所需的各种时序信号
4.运算器
运算器是计算机的执行部件,用于对数据进行加工处理,完成算术运算和逻辑运算
运算器的核心是算术逻辑单元 ALU,同时还包含若干通用寄存器,用于暂存操作数和中间结果,如:累加器 ACC、乘商寄存器 MQ、操作数寄存器 X、变址寄存器 IX、基址寄存器 BR、程序状态寄存器 PSW 等
5.控制器
控制器是计算机的指挥中心,其由程序计数器 PC、指令寄存器 IR、控制单元 CU 组成
- PC:存放当前要执行指令的地址,可以自动 $+1$ 以形成下一条指令的地址,与主存的 MAR 间有一条直接通路
- IR:存放当前指令,内容来自主存的 MDR,指令中的操作码 OP(IR) 会送至 CU,以分析指令并发出各种微操作命令序列,地址码 Ad(IR) 会送往 MAR 来获取操作数
【计算机工作过程】
计算机的工作过程分为以下几个步骤。
- 把程序和数据装入到主存储器中
- 从程序的起始地址运行程序
- 用程序的首地址从存储器中取出第一条指令,经过译码、执行步骤等控制计算机各功能部件协同运行,完成这条指令功能,并计算下一条指令的地址
- 用新得到的指令地址继续读出第二条指令并执行,直到程序结束为止,每一条指令都是在取指、译码和执行的循环过程中完成的
下面以取数指令(将指令地址码指示的存储单元中的操作数取出后送至运算器的 ACC)为例,其信息流程如下:
- 取指令:PC → MAR → M → MDR → IR
- 分析指令:OP(IR) → CU
- 执行指令:Ad(IR) → MAR → M → MDR → ACC
此外,每取完一条指令,还必须为取下条指令作准备,形成下一条指令的地址,即:(PC)+1
【计算机系统的多级层次结构】
现代计算机是一个硬件与软件组成的综合体,由于面对的应用范围越来越广,所以必须有复杂的系统软件和硬件的支持
由于软件、硬件的设计者和使用者都从不同的角度,以及各种不同的语言对待同一个计算机系统,因此,他们各自看到的计算机系统的属性及对计算机系统提出的要求也就不一样
计算机系统的多级层次结构,就是针对上述情况,根据从各种角度所看到的机器之间的有机联系,分清彼此之间的界面,明确各自的功能,以便构成合理、高效的计算机系统
关于计算机系统层次结构的分层方式,目前一般分为五层:
- 第一层:微程序机器层,一个实在的硬件层,由机器硬件直接执行微指令
- 第二层:传统机器语言层,一个实际的机器层,由微程序解释机器指令系统
- 第三层:操作系统层,由操作系统程序实现
- 第四层:汇编语言层,为用户提供一种符号化的语言,借此可编写汇编语言源程序,这一层由汇编程序支持和执行
- 第五层:高级语言层,是面向用户的,为方便用户编写应用程序而设置的,该层由各种高级语言编译程序支持和执行
在高级语言层之上,还可以有应用层,由解决实际问题和应用问题的处理程序组成,如文字处理软件、数据库软件、多媒体处理软件和办公自动化软件等
通常把没有配备软件的纯硬件系统称为裸机,第三到第五层称为虚拟机,简单来说,就是软件实现的机器
层次之间的关系紧密,下层是上层的基础,上层是下层的扩展,但随着超大规模集成电路技术的不断发展,部分软件功能也能由硬件来实现,因而软硬件交界面的划分也不是绝对的