MIPS计算机多周期CPU系统中的运算器部件的组成
MIPS计算机是上个世纪八十年代中期推出的典型RISC结构,我们将以32位字长的机型为例,介绍MIPS计算机的运算器部件,其内部组成如图3.4所示,包括两个重要部分,一个是由128个寄存器组成的寄存器堆,另一个是执行数据运算的ALU。这个运算器被用于多周期CPU系统(对不同类型的指令选用不同的周期数)时,ALU既用于计算数据,又用于计算数据和指令在存储器中的地址,故还需要向ALU提供计算指令地址的相关信息。
寄存器堆可以使用两个端口(N1、N2)控制,从寄存器堆中读出两个寄存器的内容(Q1、Q2)并送到暂存器A和B,作为ALU运算的两路数据来源,B暂存器的内容还可以作为写入内存的数据。寄存器堆还要用第三个端口(ND)提供写入外部数据时用到的寄存器编号。
ALU完成对两路输入数据(A、B)的算术或者逻辑运算功能,向外直接提供运算的结果R(送PC)和结果的特征信息Z(结果为0标志),或将结果暂存于结果寄存器C中,为后续操作准备数据。
向ALU提供不同来源的两路数据,A路可以选择程序计数器PC或者寄存器A的输出,B路可以选择常数4、寄存器B的输出、或者另外两路数据Immed_1或Immed_2。这可以组合出A OP B,A OP Immed_1(OP代表不同的算数或者逻辑运算),PC+4,PC+ Immed_2等多种运算功能。前两种组合用于数据运算,包括两个寄存器之间的运算,或者一个寄存器和立即数之间的运算;后两种组合用于计算指令地址,PC+4得到下条相邻指令的地址,PC+ Immed_2得到相对转移指令的地址,更深入的内容将在控制