第七章 处理器(指令系统)
一、指令集(Instruction Set,亦称指令系统)
- 指令集是机器性能的直接表现
1、逻辑格式
Op码(操作码):位数决定指令集中操作的种类
Ad码(地址码):位数决定指令集中操作数的寻址空间
- 应包含的基本信息:
(1)执行什么操作
(2)参加操作的是什么数
(3)操作数如何找到
(4)结果应存在哪里
(5)下一条指令在哪 - 区别几个字长
(1)机器字长:处理器一次能处理的最大的二进制位数
(2)存储字长:一个存储单元能存放的最大的二进制位数
(3)指令字长:一条指令包含的二进制位数(上图示例为n+m位)
注意:指令集内各条指令的长度可能不相同,对应两种不同的指令集,如下: - 定长指令集:指令集中的所有指令长度均相同(控制简单)
- 不定长指令集:指令集中的所有指令长度有长、有短(控制相对复杂)
2、操作码编码
操作码位数由操作类型、操作个数来决定 - 通常可以分为两类
规整型指令集:指令集中的所有指令操作码的长度固定
非规整型指令集:指令集中的所有指令操作码的长度有长、有短
(1)规整型操作码
例:Op码取7位,则操作种类为27=128种
实际操作中一般取8位(1Byte),则操作种类为28=256种
代表机型IBM370、VAX-11
缺点:平均码长大(各种指令出现的频率不同),生成的代码量大
(2)非规整型操作码
通常为扩展操作码安排
例:指令字长16位,每4位一组分为四部分,格式如下:
具体编码安排见下表:
代表机型Intel8086、PDP-11
特点:平均码长短、生成的代码量小,指令译码复杂
3、地址码个数
(1)主存地址操作
(2)寄存器操作
操作数在寄存器中,仅需一次访存取指令,执行时不访存
(3)Reg-Mem类型(通常为双操作数,一个操作数在寄存器里,一个在主存里)
操作(以ADD为例) 操作描述 访存次数
Reg作目的 ADD RI ,M RI+[M] RI 1+1=2次
Mem作目的 ADD M ,RI [M]+RI [M] 1+2=3次
小结: - 采用主存地址需要多次访存,速度慢;采用Reg作地址,访存次数少,速度快
- 主存地址占位数多,代码量大;Reg地址占位数少,代码量相对较小
- 三主存地址格式,编码效率最好,一般在大型机里可以采用
- 二地址格式习惯采用Reg-Mem或Reg-Reg,性能最佳,不用Mem-Mem
- 零地址仅用在堆栈操作等特定场合
4、操作数类型及对齐方式
(1)操作数类型- 地址(无符号数) //位数视寻址范围而定