一、指令集结构的分类
1、区别不同指令集结构的主要因素
CPU中用来存储操作数的存储单元的类型。(堆栈、寄存器组还是累加器)
(1)堆栈结构
操作数来自栈顶和次栈顶,结果存入栈顶。只有pop和push指令才能访存。
(2)累加器结构
其中一个操作数来自累加器,结果存入累加器。
(3)通用寄存器结构
-寄存器-存储器结构(RM):操作数可以来自存储器。
-寄存器-寄存器结构(RR):也叫做load-store结构,只有load和store才能访存。
二、寻址方式
三、指令集的功能设计
1、CISC(复杂指令集计算机):增强指令功能,减少指令条数,以达到提高性能的目的。
把越来越多的功能交由硬件来实现,并且指令的数量也越来越多。
2、RISC(精简指令集计算机):尽可能的简化指令集
不仅指令的条数少,而且指令的功能也比较简单。
两个相比之下,CISC的指令条数可能更少,但是其CPI会多一点。
四、指令格式的优化设计
1、指令由两部分组成:操作码和地址码。
2、常用的编码方法
(1)Huffman编码
减少操作码的平均位数,但是获得的编码是变长的,不规整,不利于硬件处理。
(2)固定长度的编码
保证操作码的编译速度。
(3)扩展编码