指令系统的发展有两种截然不同的方向,
一种是增强原有指令的功能,设置更为复杂的新指令实现软件功能的硬化;
另一种是减少指令种类和简化指令功能,提高指令的执行速度.前者称为复杂指令系统,后者称为精简指令系统.
长期以来,计算机性能的提高往往是通过增加硬件的复杂性获得的,随着VLSI技术的迅速发展,硬件成本不断下降,软件成本不断上升,促使人们在指令系统中增加更多的指令和更复杂的指令,以适应不同应用领域的需要.这种基于复杂指令系统设计的计算机称为复杂指令系统计算机,简称CISC(Complex Instruction SetComputer).CISC的指令系统多达几百条指令
,例如,Intel 80x86(IA-32)就是典型的CISC,其中Pentium 4的指令条数已达到500多条(包括扩展的指令集).
如此庞大的指令系统使得计算机的研制周期变得很长,同时也增加了设计失误的可能性,而且由于复杂指令需进行复杂的操作,有时还可能降低系统的执行速度.通过对传统的CISC指令系统进行测试表明,各种指令的使用频度相差很悬殊.最常使用的是一些比较简单的指令,这类指令仅占指令总数的20%,但在各种程序中出现的频度却占80%,其余大多数指令是功能复杂的指令,这类指令占指令总数的80%,但其使用频度仅占20%.因此,人们把这种情况称为“20%-80%律”.从这一事实出发,人们开始了对指系统合理性的研究,于是基于精简指令系统的精简指令系统计算机RISC(Reduced Instruction Set Computer)随之诞生
.
RISC的中心思想是要求指令系统简化,尽量使用寄存器-寄存器操作指令
,除去访存指令(Load和Store)外其他指令的操作均在单周期内完成,指令格式力求一致,寻址方式尽可能减少,并提高编译的效率,最终达到加快机器处理速度的目的.