计算机的基本组成
1. 冯 诺依曼计算机的特点
- 计算机由五大部件组成
- 指令和数据 以同等地位 存于存储器, 可按地址寻访。
- 指令和数据用二进制 表示
- 指令由操作码 和 地址码 组成;
- 存储程序;
- 以运算器 为中心;
2. 硬件框图
- 存储器: 主存 和 辅存
- 运算器 ALU
- 控制器; CU;
- 输入设备; I/O 设备;
- 输出设备;
2.1 以存储器为中心
2.2 现代计算机硬件框图
现代计算机中, 将运算器和 控制器 合称为 CPU,
2.3 系统复杂性管理的方法
-
层次化: 将被设计的系统划分为多个模块或子模块;
-
模块化: 有明确的定义的功能和接口。
-
规则性: 模块更容易被重用;
2.4 指令格式举例
取数指令:
将内存单元中的数据, 放入到寄存器ACC 中去,
假设 指令 共有 16 位, 其中前6 位 代表操作码部分, 代表了对应的操作; 后10位 代表了内存单元的地址;
存数指令:
将ACC 中的数据保存到内存单元中;
加法指令:
假设另外一个操作数,默认保存在ACC中, 加法的结果也是保存在ACC中,
乘法指令:
被乘数 默认保存在ACC 中, 注意, 其中寄存器的位数和内存单元中的位数需要对应起来
打印操作:
将内存单元中的数据 输出到打印机中;
停机;
指令和数据都是保存在存储器中的;
程序清单:
3 存储器的基本组成:
存储单元: 存放一串二进制代码, 存放一个存储字的所有存储元集合。
存储字: 存储单元中二进制代码的组合;
存储字长: 存储单元中二进制代码的值;每个存储单元 赋予一个地址;
按地址寻访:
MAR
: 存储器地址寄存器, 反应存储单元的个数;
MDR
: 存储器数据寄存器, 反应存储字长;
存储体: 存放 0 - 1 代码,
4 运算器的基本组成
运算器的核心是 算术逻辑运算单元, ALU;
而ALU 通常是一个组合电路,
组合电路: 输入消失, 输出同样消失;
为了使得ALU 能够完成,算术逻辑运算功能;
能够对结果进行保存;
必须在ALU 的输入端加上寄存器,
寄存器保存参与运算的数据, 一个寄存器为ACC, 另一个寄存器为X,数据寄存器;
ACC 和 X 寄存器用于 ALU 的输入, 同时ACC 也作为运算结果的输出,
MQ
乘商寄存器
4.1 乘法运算
乘法指令: 操作码(代表乘法运算) + M(地址码, 指出了乘数所在的内存单元的地址)
取数指令: 将被乘数 送入到ACC 中;
将内存单元M 的内容取出来,作为乘数;
将乘数放在MQ 的寄存器中,
将ACC 中内容输入到X 中,
指令之间的先后顺序, 由控制器来控制
乘法运算使用: 加法和移位的方式, 进行运算;
ACC 作为累加寄存器, 初始输入为0;
乘法结果保存在两个寄存器中,
高位在ACC, 低位在MQ 中;
累加器使用:ACC
被乘数: 放入X 寄存器中,
由于被乘数 和 乘数都是 使用二进制表示,故而乘数的每一位 要么是0, 要么是1;
4.2 除法运算
除法通过减法和移位的方式实现的,
二进制的除法, 商的值非0 即1, 组成的串;
将被除数和除数做差运算,如果够减, 对应位记作1;
除法指令:
操作码(代表除法) + 除数保存在内存单元地址为M的单元中;
被除数保存在ACC 中;
商 保存在MQ寄存器中;
4.3 加法运算
ACC, X 寄存器;
初始态: ACC 中保存了 被加数;
指令中M 给出的是加数 在内存单元中地址;
将内存单元M 中的数据送到X 寄存器中;
4.4 减法操作
减法指令: 操作码(该操作码代表了减法运算) +
M(给出了减数在内存单元中的地址)
- 被减数放在ACC 中,
- 减数放在X 中,
- ALU 完成运算;
- 结果放入ACC 中。