CISC和RISC

2009-06-04 21:42:35

技术资料 计算机原理

1、复杂指令集计算机(CISC)
  长期以来,计算机性能的提高往往是通过增加硬件的复杂性来获得.随着集成电路技术.特别是VLSI(超大规模集成电路)技术的迅速发展,为了软件编程方便和提高程序的运行速度,那么这种硬件复杂度的增加采用的办法是不断增加可实现复杂功能的指令和多种灵活的编址方式。甚至某些指令可支持高级语言语句归类后的复杂操作.至使硬件越来越复杂,造价也相应提高.同时,同一系列的新型机型对其指令系统只能扩充而不能减去旧型机的任意一条,以达到程序的兼容。
  为实现复杂操作,微处理器除向程序员提供类似各种寄存器和机器指令功能外.还通过存于只读存贮器(ROM)中的微程序来实现其极强的功能,微处理在分析每一条指令之后执行一系列初级指令运算来完成所需的功能,这种设计的型式被称为复杂指令集计算机(Complex Instruction Set Computer-CISC)结构.一般CISC计算机所含的指令数目至少300条以上,有的甚至超过500条.比如,IBM公司的大、中型计算机,Intel公司的8086、80286、80386微处理器等。
  日益庞大的指令系统不仅使计算机研制周期变长,而且还有难以调试、难以维护等一些自身无法克服的缺点。

2、精简指令集计算机(RISC)
  采用复杂指令系统的计算机有着较强的处理高级语言的能力.这对提高计算机的性能是有益的.当计算机的设计沿着这条道路发展时.有些人没有随波逐流.他们回过头去看一看过去走过的道路,开始怀疑这种传统的做法:IBM公司设在纽约Yorktown的JhomasI。Wason研究中心于1975年组织力量研究指令系统的合理性问题.因为当时已感到,日趋庞杂的指令系统不但不易实现.而且还可能降低系统性能.1979年以帕特逊教授为首的一批科学家也开始在美国加州大学伯克莱分校开展这一研究.结果表明,CISC存在许多缺点.首先.在这种计算机中.各种指令的使用率相差悬殊:一个典型程序的运算过程所使用的80%指令.只占一个处理器指令系统的20%.事实上最频繁使用的指令是取、存和加这些最简单的指令.也就是说,机器执行的指令中85%左右的都是简单指令,复杂指令甚少,这样-来,长期致力于复杂指令系统的设计,实际上是在设计一种难得在实践中用得上的指令系统的处理器.同时.复杂的指令系统必然带来结构的复杂性.这不但增加了设计的时间与成本还容易造成设计失误.此外.尽管VLSI技术现在已达到很高的水平,但也很难把CISC的全部硬件做在一个芯片上,这也妨碍单片计算机的发展.在CISC中,许多复杂指令需要极复杂的操作,这类指令多数是某种高级语言的直接翻版,因而通用性差.由于采用二级的微码执行方式,它也降低那些被频繁调用的简单指令系统的运行速度.因而.针对CISC的这些弊病.帕特逊等人提出了精简指令的设想即指令系统应当只包含那些使用频率很高的少量指令.并提供一些必要的指令以支持操作系统和高级语言.按照这个原则发展而成的计算机被称为精简指令集计算机(Reduced Instruction Set Computer-RISC)结构.简称RISC.
  Intel的Pentium问世以来(92年末),融合了RISC技术,也逐步渗透到了中小工作站和服务器市场。 这种种因素使计算机指令产生了“简单指令”和“复杂指令”之分。
  70年代以前的计算机均用传统的CISC指令结构,即完全采用复杂指令来支持高级语言、应用程序和操作系统。这种PC不但成本高且效率较低,速度受限。 
  目前,RISC和CISC各有优势,而且界限并不那么明显了。现代的CPU往往采用CISC的外围,内部加入了RISC的特性。就连 Intel最新的Pentium II等CISC芯片也具有了明显的RISC特征。
  另外,超长指令集CPU由于融合了RISC和CISC的优势,成为未来的CPU发展方向之一。

  RISC特点小结:
  1、有限、简单的指令集
  2、CPU配备大量的通用寄存器
  3、强调对指令流水线的优化
  4、使用等长指令(即:不需要解析指令)
  5、寻址方式少,绝不出现存储器间接寻址
  6、指令集中指令数一般少于100条,指令格式少于4种
  7、指令功能简单,控制器多采用硬布线方式等。

3、CISC与RISC的区别
  我们经常谈论有关"PC"与"Macintosh"的话题,但是又有多少人知道以Intel公司X86为核心的PC系列正是基于CISC体系结构,而 Apple公司的Macintosh则是基于RISC体系结构,CISC与RISC到底有何区别?
  从硬件角度来看CISC处理的是不等长指令集,它必须对不等长指令进行分割,因此在执行单一指令的时候需要进行较多的处理工作。而RISC执行的是等长精简指令集,CPU在执行指令的时候速度较快且性能稳定。因此在并行处理方面RISC明显优于CISC,RISC可同时执行多条指令,它可将一条指令分割成若干个进程或线程,交由多个处理器同时执行。由于RISC执行的是精简指令集,所以它的制造工艺简单且成本低廉。
  从软件角度来看,CISC运行的则是我们所熟识的DOS、Windows操作系统。而且它拥有大量的应用程序。因为全世界有65%以上的软件厂商都基于CISC体系结构的PC 及其兼容机服务的,象赫赫有名的Microsoft就是其中的一家。而RISC在此方面却显得有些势单力薄。虽然在RISC上也可运行DOS、 Windows,但是需要一个翻译过程,所以运行速度要慢许多。
  目前CISC与RISC正在逐步走向融合,Pentium Pro、Nx586、K5就是一个最明显的例子,它们的内核都是基于RISC体系结构的。他们接受CISC指令后将其分解分类成RISC指令以便在遇一时 间内能够执行多条指令。由此可见,下一代的CPU将融合CISC与RISC两种技术,从软件与硬件方面看二者会取长补短。

  RISC与CISC的主要特征对比

比较内容CISCRISC
指令系统复杂,庞大简单,精简
指令数目一般大于一般小
指令格式一般大于4一般小于4
寻址方式一般大于4一般小于4
指令字长不固定等长
可访存指令不加限制只有LOAD/STORE指令
各种指令使用频率相差很大相差不大
各种指令执行时间相差很大绝大多数在一个周期内完成
优化编译实现很难较容易
程序源代码长度较短较长
控制器实现方式绝大多数为微程序控制绝大多数为硬布线控制
软件系统开发时间较短较长