当前位置: 首页 > news >正文

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

目录

常用表

实例


常用表

指令格式表

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指令执行结束。

http://www.dtcms.com/a/274866.html

相关文章:

  • SpringCloud之Eureka
  • 当贝桌面_九联UNT403HS_hi3798mv320处理器安卓9优盘刷机和线刷烧录包
  • 第Y7周:训练自己的数据
  • 洛谷P2042 [NOI2005] 维护数列
  • 可以自定义皮肤的桌面备忘便签软件-滴哦小精灵 v1.4.5
  • 深入理解JVM
  • 视频翻译用什么软件?这里有5个高效推荐
  • 编码技术: PRBS, 8B/10B
  • MCU芯片内部的ECC安全机制
  • 提升你的AI交互技能:使用Anthropic互动提示教程
  • c语言中的数组IV
  • Qt:布局管理器Layout
  • flutter鸿蒙版 环境配置
  • Deekseek 学习笔记
  • 北京-4年功能测试2年空窗-报培训班学测开-第四十八天
  • 信创 CDC 实战 | TiDB 实时入仓难点与解决方案解析(以 ClickHouse 为例)
  • 【面板数据】省级泰尔指数及城乡收入差距测算(1990-2024年)
  • 大模型人类反馈强化学习RLHF 凭什么火出圈?人类反馈 + 强化学习,解锁 AI 行为可控密码
  • 盛世美颜伴杭州--花皙蔻牡丹盛世美颜精华油获选“2025杭州特色伴手礼”
  • 【Quest开发】快速添加可手指触摸按钮
  • unity VR linerenderer的线会被UI盖住
  • 微算法科技基于格密码的量子加密技术,融入LSQb算法的信息隐藏与传输过程中,实现抗量子攻击策略强化
  • 20250710-2-Kubernetes 集群部署、配置和验证-网络组件存在的意义?_笔记
  • 车载诊断进阶篇 --- 关于网关转发性能引起的思考
  • JAVA入门——安装java环境
  • 智能运维管理平台:AI赋能的数字化转型引擎
  • 从大模型到云游戏,国鑫SY8108G-G4如何化身“全能AI引擎”?
  • 挥别Feign,拥抱Spring 6.1 RestClient:高可用HTTP客户端构建之路
  • 雷达遥感星座微波射频组件抗辐照MCU的选型与实践
  • HarmonyOS基础概念