计算机组成原理:以ADD指令为例讲解微指令执行流程

发布于:2025-07-12 ⋅ 阅读:(21) ⋅ 点赞:(0)

目录

常用表

实例


常用表

指令格式表

MOV~INC和HALT为单字长指令,占8位;其余指令为双字节字长,占16位,其中数据D占8位。若内存按字节编址,则单字长指令占一个内存单元,双字节字长占两个内存单元,其中数据D单独占一个内存单元。

数据通路图

红框内是CPU。

微指令格式表

微程序流程图

蓝色数字代表微指令地址,可查微指令表。

微指令表

每条微指令共24位,可查微指令格式表查各bit位功能。

运算器功能表

用于查看微指令的S3-S0代表了什么运算功能。


实例

ADD R1,R3

对应机器码为0000 1101,查指令格式表可知其功能为R3+R1->R3。

微程序流程图,首先是空操作NOP,然后是PC送AR,PC+1,即PC将ADD R1,R3的指令地址送AR,AR再送MEM,随后PC+1。

接着来到MEM->IR,对应的微指令地址为03H。查微指令表,找到微指令

00010 0000 111 000 001 110000

微指令格式表,高5位中的1是RD,即读MEM命令,在读写控制逻辑电路中模拟:

XMRD有效,则ADD R1,R3指令对应的机器码从MEM中流到数据总线。

再看微指令的A字段和C字段,查微指令格式表,A字段(111)功能为LDIR,C字段(001)功能为P<1>。

数据通路图,找到LDIR,功能为T3节拍来时把数据总线中的数据送入IR,也就是把ADD R1,R3的机器码(0000 1101)送入IR。

C字段功能P<1>是分支判断,在指令译码电路中模拟:

P<1>低电平有效,I2~I7来自机器码0000 1101的2~7位,输出为SE0~SE4有效,再在D触发器改变微地址电路中模拟:

SE4~SE0来自刚才指令译码电路的输出结果,SE5和中断有关,这里置零即可,uA5~uA0来自微指令的末6位,输出地址为110000,即30H,也就是说下一条微指令地址为30H,微程序流程图中ADD的执行流程也和我们的预期一致。


微指令表中找到30H对应的微指令:

00000 0000 001 011 000 000100

微指令格式表,A字段功能为LDA,在数据通路图中找到LDA,功能为T4节拍来时将数据总线上的数据送入寄存器A。

B字段功能为RD_B,在寄存器译码电路中模拟:

RD_B高有效,I0~I3来自机器码0000 1101的0~3位,输出为R1_B有效。

数据通路图中找到R1_B,功能为T4节拍来时将R1中的数据送入数据总线,再结合字段A的功能,可知该微指令作用为将R1的内容送入寄存器A。


后继地址为000100,即04H,在微指令表中找到对应的微指令:

00000 0000 010 010 000 000101

微指令格式表,A字段功能为LDB,在数据通路图中找到LDB,即往寄存器B中送数据。

B字段功能为RS_B,在寄存器译码电路中模拟:

RS_B低有效,I0~I3来自机器码0000 1101的0~3位,输出为R3_B有效。

数据通路图中找到R3_B,功能为T4节拍来时将R3中的数据送入数据总线,再结合字段A的功能,可知该微指令作用为将R3的内容送入寄存器B。


后继地址为000101,即05H,在微指令表中找到对应的微指令:

00000 1001 011 001 000 000001

S3~S0为1001,查运算器功能表可知为加法运算。

微指令格式表,A字段功能为LDRi,在寄存器译码电路中模拟:

LDRi高有效,I0~I3来自机器码0000 1101的0~3位,输出为LDR1有效。

数据通路图中找到R3_B,功能为T4节拍来时将数据总线中的数据送入R1。

B字段功能为ALU_B,查数据通路图可知功能为将ALU运算结果送入数据总线,再结合S3~S0和字段A,可知该微指令功能为将寄存器A和寄存器B中数据的和送入R1。


后继地址为000001,由微程序流程图可知又回到了PC送AR,然后PC+1的环节即开始执行下一条指令,ADD R1,R3指令执行结束。


网站公告

今日签到

点亮在社区的每一天
去签到