读者往往会提出这样一个问题:RISC的指令系统精简了,CISC的一条指令,在RISC中要用一串指令才能实现,那么,为什么RISC执行程序的速度比CISC还要快呢?
  这里,有一个很简单,也是很重要的公式。任何一个程序在计算机上的执行时间可以用下面的公式来计算:
    P=I·CPI·T
其中:
  P是执行这个程序所使用的总的时间;
  I是这个程序所需执行的总的指令条数;
  CPI是每条指令执行的平均周期数;
  T是一个周期的时间长度。
  表3.8列出了CISC与RISC的三个参数I、CPI和T的比较情况。从这三个参数的比较中可以得出如下结论:
表3.8 CISC与RISC的I、CPI和T的比较
类 型 指令条数 I 指令平均周期数 CPI 周期时间 T
CISC 1 2~15 33ns~5ns
RISC 1.3~1.4 1.1~1.4 10ns~1ns

  1.总的指令条数增加30%至40%
  由于RISC的指令都比较简单,CISC中的一条复杂指令所完成的功能在RISC中可能要用几条指令才能实现。对于同一个源程序,分别编译后生成的动态目标代码,显然RISC的要比CISC的多。但是,由于CISC中复杂指令使用的频度很低,程序中使用的绝大多数指令都是与RISC一样的简单指令,因此,实际上的统计结果表明,RISC的I长度只比CISC的长30%至40%。
  2.指令平均执行周期数CPI减少3至5倍
  由于CISC一般是用微程序实现的,一条指令往往要用好几个周期才能完成,一些复杂指令所要的周期数就更多。根据统计,大多数CISC处理机,指令平均执行周期数CPI在4到6。而RISC的大所数指令都是单周期执行的,它们的CPI应该是1,但是,由于RISC中还有LOAD和STORE指令,也还有少数复杂指令,所以,CPI要略大于1。据报道,SUN公司的SPARC处理机的CPI为1.3到1.4,SGI公司的MIPS处理机的CPI为1.1到1.2。
  3.一个周期的时间长度T有所缩短
  由于RISC一般采用硬布线逻辑实现,指令要实现的功能都比较简单,所以,RISC的T通常要比CISC的T小。从报道中也可以看到,目前使用中RISC处理机的工作主频一般要比CISC处理机高。
  从表3.8中可以很快计算出,RISC的速度要比CISC快3倍左右。其中的关键在于RISC的指令平均执行周期数CPI减小了,这正是RISC设计思想的精华所在。
  减小CPI是多个方面共同努力的结果。在硬件方面,采用硬布线控制逻辑,减少指令和寻址方式的种类,使用固定的指令格式,采用LOAD/STORE结构,指令执行过程中采用多级流水线技术等。在软件方面,优化编译技术起了非常大的作用。
  当然,RISC设计思想也可以用于CISC中。例如,Intel公司的80x86处理机的指令平均执行周期数在不断缩小,8088的指令平均执行周期数大于20,80286的指令平均执行周期数大约是5.5,到了80386,指令平均执行周期数进一步减小到4左右,而80486处理机的指令平均执行周期数已经接近2。
  目前,微处理器的工作主频已经超过1千兆,缩短工作周期T的潜力已经越来越小。因此,将来提高处理机速度的技术途径将更加依赖减小CPI。采用超标量、超流水线、VLIW(超长指令字)体系结构,可以使指令的平均执行周期数小于1,即平均每个周期执行超过1条指令。已经商品化的微处理机,其内部大都有4个至8个功能部件并行工作,每个周期可以平均执行2条以上指令。