在计算机系统结构发展的过程中,指令系统的优化设计有两个截然相反的方向。
分别为:
1、复杂指令集( CISC)
2、简单指令集(RISC)
两种指令集如何区分?
有一个脑筋急转弯 :把大象装入冰箱需要几步?
复杂指令的答案是:1步,
调用指令:把大象装入冰箱
简单指令的答案是:3步
第一步:打开冰箱,第二步:装进大象,第三步:关闭冰箱
如果把脑筋急转弯改一下:把长颈鹿装入冰箱需要几步?
复杂指令的答案是:1步,
调用指令:把长颈鹿装入冰箱
简单指令的答案是:3步
第一步:打开冰箱,第二步:装进长颈鹿,第三步:关闭冰箱
随着以上情况地增加,可以发现
CISC 指令系统的主要特点如下:
(1)指令数量众多。指令系统拥有大量的指令,通常有 100~250 条
(2)指令使用频率相差悬殊。最常使用的是一些比较简单的指令,仅占指令总数的 20%,
但在程序中出现的频率却占 80%。而大部分复杂指令却很少使用。
(3)支持很多种寻址方式。支持的寻址方式通常为 5~20 种。
(4)变长的指令。指令长度不是固定的,变长的指令增加指令译码电路的复杂性。
(5)指令可以对主存单元中的数据直接进行处理。典型的 CISC 通常都有指令能够直
接对主存单元中的数据进行处理,其执行速度较慢。
(6)以微程序控制为主。CISC 的指令系统很复杂,难以用硬布线逻辑(组合逻辑)电路实现控制器,通常采用微程序控制。
2. RISC 指令系统的特点
(1)指令数量少。优先选取使用频率最高的一些简单指令和一些常用指令,
避免使用复杂指令。只提供了 LOAD(从存储器中读数)和 STORE(把数据写入存储器)两条指令对存储器操作,其余所有的操作都在 CPU 的寄存器之间进行。
(2)指令的寻址方式少。通常只支持寄存器寻址方式、立即数寻址方式和相对寻址方式。
(3)指令长度固定,指令格式种类少。因为 RISC 指令数量少、格式少、相对简单,其指令长度固定,指令之间各字段的划分比较一致,译码相对容易。
(4)以硬布线逻辑控制为主。为了提高操作的执行速度,通常采用硬布线逻辑(组合逻辑)来构建控制器。
(5)单周期指令执行,采用流水线技术。因为简化了指令系统,很容易利用流水线技术,使得大部分指令都能在一个机器周期内完成。少数指令可能会需要多周期,
例如,LOAD/STORE 指令因为需要访问存储器,其执行时间就会长一些。
(6)优化的编译器:RISC 的精简指令集使编译工作简单化。
因为指令长度固定、格式少、寻址方式少,编译时不必在具有相似功能的许多指令中进行选择,也不必为寻址方式的选择而费心,同时易于实现优化,从而可以生成高效率执行的机器代码。
(7)CPU 中的通用寄存器数量多,一般在 32 个以上,有的可达上千个。