1.控制器的功能
(1)取指令(指令地址,控制信号)
(2)分析指令(解释指令,指令译码)
(3)执行指令
(4)控制程序和数据的输入与结果输出
(5)对异常情况和某些请求的处理(“中断请求”信号)
2.控制器的组成
(1)程序计数器(PC)
即指令地址寄存器。用来存放当前正在执行的指令地址或即将要执行的下一条指令地址。
(2)指令寄存器(IR)
存放当前正在执行的指令。
(3)指令译码器或操作码译码器
对指令寄存器中的操作码进行分析解释,产生相应的控制信号。
(4)脉冲源及启停线路
(5)时序控制信号形成部件
3.指令执行过程
加法指令:
ADD rs,rd rs1 disp
功能:
将寄存器(rs)中的一个数与存储器中的一个数(地址为(rs1)+ disp)相加,结果放在rd中,rs与rd为同一寄存器。
执行过程:
(1)取指令
从存储器取指令,送入指令寄存器,并进行操作码译码(分析指令)。程序计数器加1,为下一条指令做好准备。
(2)计算操作数地址
在ALU计算数据地址(将rs1内容与disp送ALU,加法命令送ALU),将计算得到的有效地址(EA)送入地址寄存器(AR)。
(3)取操作数
将地址寄存器内容送地址总线,同时发访存读命令,存储器读出数据送数据总线后,打入数据寄存器。
(4)执行加法运算
两个源操作数送ALU进行加法运算,结果送寄存器,并根据运算结果置状态位N、Z、V、C。其中:
N(负数):当运算结果为负数时,置1,否则为0。
Z(零):当运算结果为零时,置1,否则为0。
V(溢出):当运算结果溢出时,置1,否则为0。
C(进位):当加法运算产生进位信号或减法运算产生借位信号时,置1,否则为0。
执行一条指令的过程实际上就是执行这条指令所对应的微指令的过程。
步骤:
接上图:
(2)加法运算:“+”(13)
(3)送结果:ALU→GR(17)
微指令由控制字段(23位)和下址字段组成。
机器加电后,首先由reset信号在程序计数器PC内置入开机后执行的操作系统第一条指令的地址,同时在微指令寄存器内置入一条“取指”微指令,并将其他一些有关的状态位或寄存器置于初始状态。