指令体系结构
////////////////////////////////////////////////////////////////////////////////////////////
CISC 体系结构
////////////////////////////////////////////////////////////////////////////////////////////
一、CISC 体系结构的特征
CISC 体系结构是一种 PC 体系结构的设计思想,并不是一个具体的指令系统或者一种产品. 它指具有以下
特征的 PC 体系结构:
(1) 庞大的指令集、众多的寻址方式
一般的 CISC 体系结构的计算机系统,都有一个庞大的指令集,特别是系列机,新机器的指令集一定是老机器
指令集的超集. 这样使得指令集变得越来越庞大.
如 Intel8086 的指令系统只有 133 条指令,而 80286 是 143 条,80386 是 154 条,最新的
Pentium 4 处理器的指令系统已达 505 条.伴随庞大的指令集,操作码扩展技术应运而生,但同时又造
成了地址码的减少. 为了减少地址码,设计人员发明了各种各样的寻址方式,如基址寻址、相对寻址、
比例寻址等,以尽量减少地址码的长度. 于是,动辄几种、十几种甚至几十种寻址方式出现在指令系统
中.数量庞大的指令集,众多的寻址方式,已经成为 CISC 体系结构的一个显著特征.
(2) 指令长度及执行时间不一 CISC 体系结构的指令长度一般是可变的,短的只有一个字节,长的可以
达到 7、8 个字节,一般采用可变操作码的形式,操作码分散到指令字的不同字段,采用操作码扩展的指令优
化技术. 同时,由于 CISC 体系结构的指令集庞大,里面既有功能简单的指令,又有功能复杂的指令,CPU 执行
起来时,执行所花费的时间明显不一,简单的指令,执行起来只需一个时钟周期,而复杂的指令可能需要几十
个时钟周期,甚至更长. 像 Intel 8086 CPU 执行一条 XOR AX,AX 指令,只需一个时钟周期;而执行一条 IDIV
BYTE PTR 2000H[BX] [ SI]指令则需要 190 个时钟周期.
(3) 微指令译码结构
在 CISC 体系结构的 CPU 中,所有机器指令必须在 CPU 内部译码为微程序代码,微程序集存放在 CPU 内部
的控制存储器 ROM 中. 当机器指令读入 CPU 后,经过译码单元,将一条条复杂的 CISC 指令译码为多个微程
序代码,再送到 CPU 执行单元进行操作. 因此,从本质上说,CISC 体系结构的 CPU 的译码过程是软件工作过
程,它必然影响
CPU 的运行速度. 图 1 是 CISC 指令的执行过程.
(4) 软件功能硬件化
CISC 通过增强指令的功能,把原本由软件实现的功能改用硬件实现. 这样,一些常用的、简单的指令就不必
经过译码或经过简单的译码就可以直接送到 CPU 的执行单元进行处理. 但这也增加了 CPU 的复杂程度.
(5) 优化目标程序
CISC 体系结构非常重视优化目标程序,这样可以缩短程序执行的时间,减少程序的开销. 例如,传送指令
(MOV) 在 CPU 中使用的频率占 20 %左右,执行时间占整个程序的 30 %左右,因此,增加传输指令的功能有
助于改
进 CPU 执行的效率.
二、CISC 体系结构的优点
CPU 指令集向下兼容性好,新设计的 CPU 只需增加较少的晶体管就可以执行同样的指令集. 新指令系
统是可以包含早期系统的指令超集. 微操作指令的格式与高级语言相匹配,因而编译器不一定要重新编写.