「这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战」
压缩微指令长度
1. 改直接表示为编码表示(压缩互斥性微指令)
- 互斥性微命令
- 输出信号不能同时为 1 XXX(out)
- 运算器的 +1, ADD, SUB 信号也不能同时给出
- 7 个out型命令有7 个状态 –> 3:8译码器
- 所有输出里面一定有一个为高电平,所以 000 不用
- 预留的一个状态表示什么信号也不给
- 加法类的运算器信号 –> 2:4译码器
- +1,ADD, SUB
- 无信号
- 缩短了微指令长度,增加了硬件开销(3:8译码器,2:4译码器),硬件被所有微程序共享,所以开销可忽略
2. 去掉下址字段,采用 μPC = μPC + 1 的方式生成微指令地址
- 每一条指令都有一个下址字段,对控存的浪费是巨大的
- 增加了一个运算器,减少了下址字段,节约了控存空间
3. 改水平型微指令为垂直型微指令(牺牲并行性)
- 水平性微指令如下
- 一条微指令中一般只有两个信号,最多4个信号为1
- 数据通路分类
-
寄存器传输 MOV reg1,reg2 MOV AR,PC(将PC送到AR)
例如: (PC)->AR, (PC)->X (Z)->PC (DR)->IR (IR)->AR, (PC)->X (DR)->R0
- MOV 源寄存器 目的寄存器
- 单总线架构中,只存在 R0、R1、R2、IR、AR、X、Z等,一共只有八个寄存器,所以只需要三位就可以描述一个寄存器,指令需要两个操作,即需要六位
-
运算类型 ALU_OP reg INC、ADD R1
例如: (X) + 1 -> Z (X) + (R1) -> Z
- 单总线架构中运算器的输入一定来自于X,输出一定到Z,指令中 X和Z 的值在指令中不需要给出,只需要给出另外一个输入端来自于哪个寄存器
- INC 无操作数
- ADD 源寄存器号(3位)
-
访存指令 Men LOAD、STORE
例如: Read Mem Mem[AR] -> DR
- Mem Read/Write
-
顺序控制 Branch Branch P1
- Branch 判断条件
-
- 并发水平微指令变为垂直后可能需要多个时钟周期完成
- LOAD指令微程序容量
- 直接表示法 + 下址字段
- 28位 * 8 = 224位
- 编码表示法 + μPC
- 19位 * 8 = 152位
- 垂直微指令
- 8位 * 14 = 112位
- 直接表示法 + 下址字段
- 容量小,速度慢,指令执行需译码电路
- 随着控存价格的降低,垂直型微指令已经被淘汰
- 水平型与垂直型微指令
- 水平型微指令
- 并行操作能力强,效率高,灵活性强
- 微指令字较长,微程序短,控存容量大,性能佳
- 垂直型微指令
-
子长短,微程序长,控存容量小,性能差
-
垂直型与指令相似,易于掌握
-
基本被淘汰
-
最后,欢迎大家关注我的个人微信公众号 『小小猿若尘』,获取更多IT技术、干货知识、热点资讯
今天的文章压缩微指令长度方法分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/16624.html