一、计算机系统简介
1.计算机的软硬件概念
2.计算机系统的层次结构
(1)现代计算机的解题过程
(2)多级层次结构的计算机系统
3.计算机组成和计算机体系结构
计算机体系结构是指能够被程序员所见到的计算机系统的属性,即概念性的结构与功能特性,例如指令集、数据类型、存储器寻址技术和I/O机理等。
计算机组成是指如何实现计算机体系结构所体现的属性,包含了许多对程序员而言是透明的硬件细节,例如如何取指令、分析指令等。
举一个简单的例子,计算机有没有除法这个指令是计算机体系结构,而计算机如何实现除法指令是计算机组成。
二、计算机的基本组成
1.冯·诺伊曼计算机特点
1945年,冯·诺伊曼提出了“存储程序”的概念,以此概念为基础的各类计算机称为冯.诺伊曼机。
它的特点:
(1)冯·诺依曼计算机主要由五大部件组成,分别是:运算器、控制器、存储器、输入设备和输出设备;
(2)冯诺依曼体系结构的指令和数据均采用二进制码表示;
(3)指令和数据以同等地位存放于存储器中,均可按地址寻访;
(4)指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数所在存储器中的位置;
(5)指令在存储器中按顺序存放,通常指令是按顺序执行的,特定条件下,可以根据运算结果或者设定的条件改变执行顺序;
(6)机器以运算器为中心,输入输出设备和存储器的数据传送通过运算器。
现在的计算机基本以存储器为中心,下图为以存储器为中心的计算机结构框图。
现代计算机可认为由三大部分组成:CPU、I/O设备及主存储器。
2.计算机的工作步骤
1.上机前的准备
- 建立数学模型
- 确定计算方法
- 编制解题程序(将运算步骤用一一对应的机器指令描述)
操作码表示机器所执行的各种操作,如取数、存数、加、减等。
地址码表示参加运算的数在存储器内的位置。
2.计算机的上机工作过程
(1)主存储器
包括存储体M、各种逻辑部件及控制电路
存储体由许多存储单元组成,每个存储单元又包含许多存储元件,每个存储元件能寄存一位二进制代码“0”或“1”。
可见,一个存储单元可存储一串二进制代码,称这串二进制代码为一个存储字,这串二进制代码的位数为存储字长。
MAR:存储器地址寄存器,反映存储单元个数
MDR:存储器数据寄存器,反映存储字长
(2)运算器
运算器最少包括3个寄存器和一个算术逻辑单元(ALU),其中ACC为累加器,MQ为乘商寄存器,X为操作数寄存器。
运算器可将运算结果从ACC送至存储器中的MDR,而存储器的操作数也可从MDR送至运算器中的ACC、MQ或X。
上述结构的运算器加、减、乘、除四则运算的操作过程:
设:M表示存储器的任一地址号,[M]表示对应M地址号单元中的内容;X表示X寄存器,[X]表示X寄存器中的内容;ACC表示累加器,[ACC]表示累加器中的内容;MQ表示乘商寄存器,[MQ]表示乘商寄存器中的内容。
假设ACC中已有前一时刻的运算结果,并作为下述运算中的一个操作数,则
1. 加法操作过程为
[M]——>X
[ACC]+[X]——>[ACC]
即将[ACC]看作被加数,先从主从中取一个存放在M地址号单元内的加数[M],送至运算器的X寄存器中,然后将被加数[ACC]与加数[X]相加,结果(和)保留在ACC中。
2.减法操作过程为
[M]——>X
[ACC]-[X]——>[ACC]
即将[ACC]看作被减数,先取出存放在主存M地址号单元中的减数[M]并送入X,然后[ACC]-[X],结果(差)保留在ACC中。
3.乘法操作过程为
[M]——>MQ
[ACC]——>X
0——>ACC
[X]x[MQ]——>ACC//MQ
即将[ACC]看作被乘数,先取出放在主存M号地址单元中的乘数[M]并送入乘商寄存器MQ,再把乘数送入X寄存器,并将ACC清“0”,然后[X]和[MQ]相乘,结果(积)的高位保留在ACC中,低位保留在MQ中。
4.除法操作过程为
[M]——>X
[ACC]/[X]——>MQ
余数R在ACC中
即将[ACC]看作被除数,先取出存放在主存M号地址单元内的除数[M]并送至X寄存器,然后[ACC]除以[X],结果(商)暂留于MQ,[ACC]为余数R。若需要将商保留在ACC中,只需要做一步[MQ]9——>ACC即可。
(3)控制器
- 取指令(PC)
- 分析指令(IR)
- 执行指令(CU)
(4)I/O
3.计算机硬件的主要技术指标
CPU——速度,越快越好
存储器——内存,越大越好
如何衡量?
1.机器字长
机器字长是指CPU一次能处理数据的位数,通常与CPU的寄存器位数有关。字长越长,数的表示范围就越大,精度也越高。
2.存储容量
主存(主存中存放二进制代码的总位数):
第一种表示方法:存储容量=存储单元个数*存储字长
第二种表示方法:字节数
辅存:字节数
3.运算速度
- 主频 8位 16位 32位 64位
- 吉普森法(综合考虑每条指令的执行时间及他们在全部操作中所占的百分比)
- MIPS:每秒执行百万条指令
- CPI :执行一条指令所需时钟周期数
- FLOPS:每秒浮点运算次数