由于软件技术的发展,传统的CISC结构必然随着越来越多的宏代码和功能更强的操作发展,以便为高级语言和操作系统提供更多的支持。其结果是指令数量增加,要求一条指令中完成的操作更多,从而计算机结构变得越来越复杂。但是,在对系统内核和优化编译程序生成目标代码的分析中发现,由于微码很少提供支持各种高级语言和系统环境所需的程序,因此复杂指令很少用到。而最简单的指令却达到了很高的使用频度。由此而产生了RISC的概念。
精简指令集,是计算机中央处理器的一种设计模式,也被称为RISC(Reduced Instruction Set Computer的缩写)。这种设计思路对指令数目和寻址方式都做了精简,使其实现更容易,指令并行执行程度更好,编译器的效率更高。常用的精简指令集微处理器包括DECAlpha、ARC、ARM、AVR、MIPS、PA-RISC、PowerArchitecture(包括PowerPC)和SPARC等。
RISC和CISC是设计制造微处理器的两种典型技术,虽然它们都是试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,因此,在很多方面差异很大,它们主要有:
(1)指令系统:RISC设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效。对不常用的功能,常通过组合指令来完成。因此,在RISC机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC计算机的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。
(2)存储器操作:RISC对存储器操作有限制,使控制简单化;而CISC机器的存储器操作指令多,操作直接。
(3)程序:RISC汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC汇编语言程序编程相对简单,科学计算及复杂操作的程序设计相对容易,效率较高。
(4)中断:RISC机器在一条指令执行的适当地方可以响应中断,但是相比CISC指令执行的时间短,所以中断响应及时;而CISC机器是在一条指令执行结束后响应中断。
(5)CPU:RISC CPU包含有较少的单元电路,因而面积小、功耗低;而CISCCPU包含有丰富的电路单元,因而功能强、面积大、功耗大。
(6)设计周期:RISC微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC微处理器结构复杂,设计周期长。
(7)用户使用:RISC微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。
(8)应用范围:由于RISC指令系统的确定与特定的应用领域有关,故RISC机器更适合于专用机;而CISC机器则更适合于通用机。
究竟应怎样来认识RISC呢?应该说,时至而今的RISC不是一个具体的系统,也不是一种具体的技术,它是一种结构设计的规范。
所谓RISC计算机,应具有这样一个指令系统,它既能由流水线处理器高效地执行,又能为优化编译程序生成优化的代码。
这种开放式的定义综合了RISC设计的基本要求和原理,在这个定义下的RISC机器通常具有以下特点:
●指令集中各条指令的周期数一致。以便指令流水线的管理简单,高效。
●指令编码简单一致。
●大部分指令能在一个周期内完成。
●只由Load和Store指令访问存储器。
●寻址方式简单。
●延迟的装入指令。
●延迟的分支指令。
●三地址指令格式。
●寄存器数量多。
●具有对称指令集。
应该注意的是,这些特点都没有排除执行复杂功能的指令。例如在很多RISC中都提供了浮点运算指令。但只有在用硬件实现比用一组简单指令更快时,RISC才考虑包括这种复杂功能指令。所谓“精简”并不是要求把指令集缩减到某最低限,而应以满足性能要求为前提。