表3.9 寄存器窗口技术的效果
程序名称 调用次数 最大调用深度 RISC II
溢出次数
RISC II
访存次数
VAX-11
访存次数
Quicksort 111K(0.7%) 10 64 4K(0.8%) 696K(50%)
Puzzle 43K(8.0%) 20 124 8K(1.0%) 444K(28%)
  表3.10是RISC II处理机与几种CISC处理机的每次过程调用的开销比较。从表中可以看出,在执行时间、执行指令条数、访问存储器次数等方面,采用重叠寄存器窗口技术都是十分有效的。
表3.10 过程调用所需开销的比较
机 器 执行指令条数 执行时间(微秒) 访问存储器次数
VAX-11
PDP-11
MC68000
RISC II
5
19
9
6
26
22
19
2
10
15
12
0.2
  4、指令流调整技术
  为了使RISC处理机中的指令流水线高效率地工作,尽量不断流。优化编译器必须分析程序的数据流和控制流,当发现指令流有断流可能时,要调整指令序列。对有些可以通过变量重新命名来消除的有数据相关,要尽量消除。这样,可以提高流水线的执行效率,缩短程序的执行时间。
  例如,有图3.9(a)这样一个简单的指令序列,由于存在R3寄存器的数据相关,第二条指令必须等第一条指令执行完后才能开始执行,后续的指令也是这样。如果执行一条指令需要两个机器周期,那么,每两条指令之间都要浪费一个机器周期。
  图3.9(b)是通过优化编译器调整后的指令序列。在两条乘法指令中用R0寄存器代替原来的R3寄存器,消除了两条乘法指令与两条加法指令之间的数据相关,并且重新调整了指令序列。调整后的指令序列比原指令序列的执行速度快一倍。
图3.9 指令流调整技术

  5.硬件为主固件为辅
  指令系统用微程序实现的主要优点是:便于实现复杂的指令,便于修改指令系统,增加了机器的灵活性和适应性。主要缺点是:执行速度低。RISC要求主要指令能在单周期内执行完成,采用微程序技术是不可能做到的
  RISC必须主要采用硬联逻辑来实现指令系统。对于那些必须的复杂指令,也可用固件(微程序技术)实现。因此,目前商用的RISC处理机在实现指令系统时,一般都采用以硬件为主固件为辅的方法。
  6.优化编译技术
  RISC思想在采用硬件技术提高处理机性能的同时,也十分重视软件的优化编译技术。可以说,RISC是硬件和软件相结合的产物。离开了优化编译技术的支持,RISC处理机的性能就不可能得到充分的发挥。
  RISC的硬件设计为优化编译程序的设计带来了许多方便的地方,同时也造成一些困难。
  RISC对优化编译程序带来的方便主要有:
  (1)由于RISC的指令系统比较简单,而且对称、均匀,优化编译程序不必为具有类似功能的指令做复杂的指令选择工作。
  (2)RISC的寻址方式简单,只有LOAD和STORE指令能够访问存储器,其它指令均在通用寄存器之间进行操作。因此,可以简化优化编译器在选择寻址方式过程种要做的工作,省去了是否要生成访问存储器指令的选择工作。
  (3)因为大多数指令都能在一个周期内执行完成,为优化编译器调整指令序列提供了极大的方便。
  RISC对优化编译器造成的困难主要有:
  (1)优化编译器必须选择哪些变量放在通用寄存器中,哪些变量放在主存储器中,必须精心安排每一个寄存器的用法,以便充分发挥每一个通用寄存器的效率,尽量减少访问主存储器的次数。
  (2)优化编译器要做数据和控制相关性分析,要调整指令的执行序列。并与硬件相配合实现指令延迟技术和指令取消技术等个。
  (3)要设计复杂的子程序库,因为在CISC中的一条指令在RISC中要用一段子程序来实现。所以,RISC的子程序库通常要比CISC的大得多。