认识各个硬件
主存储器:
- 存储体:用来存储二进制数据
- MAR(Memory Address Register)存储地址寄存器
- MDR(Memory Data Register)存储数据寄存器
CPU从主存储器读取数据
CPU想要获取数据时,首先把存放地址写入MAR中,主存储器根据MAR对应的地址到存储体内寻找对应的数据,然后把数据写入MDR当中,最后CPU通过数据线路从MDR当中读取它想要的数据。
CPU向存储器写入数据
CPU首先向MAR指明它想要写入的地址位置,以及向MDR中放入它想要写入的数据。接着CPU通过数据线路告诉主存储器它想要写入数据,最后由主存储器根据这三个信息执行操作。
存储体
存储单元:存放一串二进制代码
,称之为存储字
(word),每个存储字包含多少个二进制信息位,本称之为存储字长
,通常存储字长都是8bit的整数倍
存储元:用于存储二进制的电子元件(电容),每个存储元存放1bit,存储元和一些线路就构成了存储单元。
演示计算机的工作过程
首先看一下计算机各个硬件部件:
主存:存储体
,MAR地址寄存器
,MDR数据寄存器
注意:MAR,MAR在现代计算机中也被集成到CPU内了
运算器:MQ乘商寄存器
,ACC累加寄存器
,ALU算术逻辑单元
(*),X通用寄存器
控制器:PC程序计数器
,IR指令寄存器
,CU控制单元(*)
1
:PC=0:指向第一条指令,控制器通过控制总线告诉主存储器,它要进行读取操作,并且把地址写入MAR
2
:MAR根据地址访问存储体中的指令数据
3
:将读取的指令写入MDR中
4
:通过数据总线将MDR中的指令数据写入IR中
此时取址操作完成,PC+1
5
:IR将指令中的操作码写入CU,CU会根据操作码分析这是一个取数指令
这个步骤是:分析
6
:再根据地址码对应的主存地址通过MAR找到对应的数据
7
:在CU控制单元的指挥下会把数据送入运算器中,如果是变量就送到ACC中,如果需要进行乘商操作,就送到MQ中
8
:运算器在乘法运算的时候先把ACC中的数据放到X中,然后通过ALU控制X中的数与MQ中的数执行相乘操作,结果会放入ACC中。
这个部分是:执行
计算机指令的执行三个阶段:取址,分析,执行