简介
指令系统体现了机器的属性,属于计算机结构的问题;
但指令的实现,即如何取指令、分析指令、取操作数、运算、送结果等,属于计算机组成的问题。
计算机基本组成
冯诺依曼计算机——以运算器为中心
现代计算机——以存储器为中心
- 运算器:算术运算和逻辑运算,并将运算的中间结果暂存在运算器内;
- 存储器:存放数据和程序;
- 控制器:控制、指挥程序和数据的输入、运行以及处理运算结果;
- 输入设备:将人们熟悉的信息形式转换为机器能识别的信息形式;
- 输出设备:将机器运算结果转换为人们熟悉的信息形式。
现代计算机可认为由三大部分组成
细化的计算机组成框图
主存储器
- 一个存储体由n个存储单元组成,一个存储单元包含k个存储元件;
- 每个存储元件寄存1位二进制代码:0或1;
- 一个存储单元可存储一串k位二进制代码,称这串二进制代码为一个存储字,k为存储字长;
- k通常为8/16/32等;
- 每个存储单元都有一个编号,称为存储单元的地址号;指令和数据都由存储单元地址号反映,因此,取一条指令和取一个数据的操作可视为相同;
- MAR: 存储器地址寄存器,存放欲访问的存储单元的地址,其位数对应存储单元的个数(MAR为10位,则有2^10 = 1 024个存储单元,记为1K);
- MDR: 存储器数据寄存器,存放从存储体某单元取出的代码或准备往某存储单元存入的代码,其位数与存储字长相等;
- 1 指令字长/数据字长 = n 字节 = 8n 位二进制代码。
运算器
运算器至少包括3个寄存器和一个算术逻辑单元(ALU)
- ACC 累加器
- MQ 乘商寄存器
- X 操作数寄存器
控制器
工作过程:取指(命令存储器读出一条指令)->分析(对该指令分析,指出操作并指明操作数的地址)->执行(根据操作数所在地址以及指令的操作码完成某种操作)
组成部分:
- 控制器 PC:存放当前欲执行指令的地址
- 指令寄存器 IR:存放当前的指令,其内容来自MDR。IR中的操作码(OP(IR))送至CU,记作 OP(IR)->CU,用于分析指令;其他地址码(Ad(IR))作为操作数的地址送至存储器的MAR,记作 Ad(IR)->MAR
- 控制单元 CU:分析当前的指令所需要完成的操作,并发出各种微操作命令序列,用以控制所有被控对象
I/O:每一种I/O设备都由I/O接口与主机联系,它接收CU发出的各种控制命令,并完成相应的操作
计算机硬件的主要技术指标
- 机器字长:CPU一次能处理数据的位数,机器字长一般等于内部寄存器的大小,它决定了计算机的运算精度
- 指令字长:一个指令中包含二进制代码的位数
- 存储字长:一个存储单元存储二进制代码的长度,必须是字节的整数倍
指令字长一般都取存储字长的整数倍,如果指令字长等于存储字长的2倍,就需要2次访存来取出一条指令,因此取指周期是机器周期的2倍,若指令周期等于存储字长,则取指周期等于机器周期。
- 存储容量:主存容量位主存中存放二进制代码的总位数,即:存储容量 = 存储单元个数 * 存储字长;现代计算机中常以字节数描述容量大小,如:2M 位 = 2^21 位 = 2^21 / 2^3 字节 = 2^18 字节 = 256KB;辅存容量也常用字节数表示
- 运算速度:MIPS(百万条指令每秒)/CPI(执行一条指令所需时钟周期)/FLOPS(浮点运算次数每秒)