压缩微指令长度方法
【摘要】
压缩微指令长度1. 改直接表示为编码表示(压缩互斥性微指令)2. 去掉下址字段,采用 μPC = μPC + 1 的方式生成微指令地址3. 改水平型微指令为垂直型微指令(牺牲并行性)
压缩微指令长度
1. 改直接表示为编码表示(压缩互斥性微指令)
互斥性微命令 输出信号不能同时为 1 XXX(out)运算器的 +1, ADD, SUB 信号...
压缩微指令长度
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
- 1
- 2
- 3
- 4
- 5
- 6
- MOV 源寄存器 目的寄存器
- 单总线架构中,只存在 R0、R1、R2、IR、AR、X、Z等,一共只有八个寄存器,所以只需要三位就可以描述一个寄存器,指令需要两个操作,即需要六位
-
运算类型 ALU_OP reg INC、ADD R1
例如: (X) + 1 -> Z (X) + (R1) -> Z
- 1
- 2
- 3
- 单总线架构中运算器的输入一定来自于X,输出一定到Z,指令中 X和Z 的值在指令中不需要给出,只需要给出另外一个输入端来自于哪个寄存器
- INC 无操作数
- ADD 源寄存器号(3位)
-
访存指令 Men LOAD、STORE
例如: Read Mem Mem[AR] -> DR
- 1
- 2
- 3
- Mem Read/Write
-
顺序控制 Branch Branch P1
- Branch 判断条件
-
- 并发水平微指令变为垂直后可能需要多个时钟周期完成
- LOAD指令微程序容量
- 直接表示法 + 下址字段
- 28位 * 8 = 224位
- 编码表示法 + μPC
- 19位 * 8 = 152位
- 垂直微指令
- 8位 * 14 = 112位
- 直接表示法 + 下址字段
- 容量小,速度慢,指令执行需译码电路
- 随着控存价格的降低,垂直型微指令已经被淘汰
- 水平型与垂直型微指令
- 水平型微指令
- 并行操作能力强,效率高,灵活性强
- 微指令字较长,微程序短,控存容量大,性能佳
- 垂直型微指令
- 子长短,微程序长,控存容量小,性能差
- 垂直型与指令相似,易于掌握
- 基本被淘汰
文章来源: ruochen.blog.csdn.net,作者:若尘,版权归原作者所有,如需转载,请联系作者。
原文链接:ruochen.blog.csdn.net/article/details/106223864
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)