一、RISC机器的特点
RISC(精简指令系统计算机)是在继承了CISC(复杂指令系统计算机)的成功技术,并克服了CISC机器的缺点的基础上发展起来的。
RISC机器的三个基本要素是:
基于上述三要素的RISC机器的特征是:
(1)使用等长指令,目前的典型长度是4个字节。
(2)寻址方式少且简单,一般为2—3种,最多不超过4种,绝不出现存储器间接寻址方式。
(3)只有取数指令、存数指令访问存储器。指令中最多出现RS型指令,绝不出现SS型指令。
(4)指令集中的指令数目一般少于100种,指令格式一般少于4种。
(5)指令功能简单,控制器多采用硬布线方式,以期更快的执行速度。
(6)平均而言,所有指令的执行时间为一个处理时钟周期。
(7)指令格式中用于指派整数寄存器的个数不少于32个,用于指派浮点数寄存器的个数不少于16个。
(8)强调通用寄存器资源的优化使用。
(9)支持指令流水并强调指令流水的优化使用。
(10)RlSC技术的复杂性在于它的编译程序,因此软件系统开发时间比CISC机器长。
二、RISC CPU实例
1、MC88110 CPU 结构框图
MC 88110 CPU是一个RISC处理器。处理器有12个执行功能部件,3个cache和1个控制部件。图5.40为其结构框图。
2、MC 88110的指令流水线
MC 88110是超标量流水CPU,所以指令流水线在每个机器时钟周期完成两条指令。
流水线共分为三段:
3、指令动态调度策略
88110采用按序发射、按序完成的指令动态调度策略。
指令派遣单元总是发出单一地址,然后从指令cache取出此地址及下一地址的两条指令。译码后总是力图同一时间发射这两条指令到EX段。
若这对指令的第一条指令由于资源冲突或数据相关冲突,则这一对指令都不发射,两条指令在F&D段停顿,等待资源的可用或数据相关的消除。若是第一条指令能发射第二条指令不能发射,则只发射第一条指令,而第二条指令停顿并与新取的指令之一进行配对等待发射,此时原第二条指令作为配对的第一条指令对待。可见,这样实现的方式是按序发射。
为了判定能否发射指令,88110使用了计分牌方法。
计分牌是一个位向量, 寄存器堆中每个寄存器都有一个相应位。每当一条指令发射时,它预约的目的寄存器在位向量中的相应位上置“1”,表示该寄存器“忙”。当指令执行完毕并将结果写回此目的寄存器时,该位被清除。
于是,每当判定是否发射一条指令(STORE指令和转移指令除外)时,一个必须满足的条件是:该指令的所有目的寄存器、源寄存器在位向量中的相应位都已被清除。否则,指令必须停顿等待这些位被清除。
为了减少经常出现的数据相关,流水线采用了如前面所述的定向传送技术,将前面指令执行的结果直接送给后面指令所需此源操作数的功能部件,并同时将位向量中的相应位清除。因此,指令发射和定向传送是同时进行的。
按序完成:88110提供了一个FIFO指令执行队列,称之为历史缓冲器。每当一条指令发射出去,它的副本就被送到FIFO队尾。队列最多能保存12条指令。只有前面的所有指令执行完,这条指令才到达队首。当它到达队首并执行完毕后才离开队列。
对于转移处理,88110使用了延迟转移法和目标指令cache(TIC)法。
延迟转移是个选项(.n)。如果采用这个选项(指令如bcnd.n),则跟随在转移指令后的指令将被发射。如果不采用这个选项,则在转移指令发射之后的转移延迟时间片内没有任何指令被发射。延迟转移通过编译程序来调度。
目标指令cache(TIC)是一个32项的全相联cache,每项能保存转移目标路径的前两条指令。当一条转移指令译码并命中cache时,能同时由TIC取来它的目标路径的前面两条指令。