CPU:中央处理器
PC:程序计数器
MAR:存储器地址寄存器
ALU:算术逻辑部件
IR:指令寄存器
MDR:存储器数据寄存器
GPRs:通用寄存器组(由若干个寄存器组成,早期就是累加器)
算数逻辑部件(ALU)可以对存储器或寄存器(GPRs)里面的操作数进行运算,运算的结果可以放回某个寄存器或通过总线输出到存储器。
寄存器里的数据可以通过MDR送到存储器,存储器来的数据也可以通过MDRS送到寄存器里。
运算的结果除了直接产生数据外,还有一些标志信息,如:运算结果,符号,有无进位,有无溢出,这些标志信息可以送到控制器里影响后续指令的执行
每条准备执行的指令的地址事先送到PC(Program Counter 程序计数器)寄存器里面,然后指令的地址送到MAR(Memory Address Register 存储地址寄存器),最后通过总线送到存储器,这是读取指令。 如果要取某个操作数,先将操作数的地址送到MAR,再送到存储器
指令(从MDR来的)取过来送到控制器之前,先存放在IR,再送到控制器
也就是说CPU通过PC和MAR向存储器发去取指令请求(发送指令地址)并且把读信号送到控制线上,一起告诉存储器要读哪一个地方的信息;读出来的信息传到MDR,如果是指令则传到IR;如果是数据就送到寄存器,再送到ALU计算,或者直接送到ALU。
举例子:
每条指令和数据都有地址,OP(操作码)字段指出指令的操作性质、类型,ADDR(地址)字段指出该指令处理的操作数的地址