MIPS核心指令集:
指令集概括为3个指令类:
- 存储器访问指令类
lw,sw等
2. 算术逻辑指令类
add,sub等
3. 转移指令类
beg,J等
指令的共同性
取指令,送PC值给Memory;
根据指令内容读取寄存器内容;
除了跳转指令J外,所有指令类都要使用ALU
指令的不同性
使用ALU后,依据指令不同,进行不同的操作:
—存储器访问指令(lw,sw)读写存储器(D-Cache)
—算术逻辑指令将ALU计算结果写入寄存器堆
—转移指令根据ALU比较结果转移到下一条指令地址
数据通路雏形
具有多路选择器和逻辑控制的处理器雏形
R型指令需要的寄存器堆
R型指令概括为需要两次读寄存器的地址,并且需要两个读数据总线;需要一次写寄存器地址和一个写数据总线。
下图是包含32个32位寄存器的寄存器堆,地址线5bit,数据线32bit。
适合于R型指令,I型指令的ALU
主要功能:地址操作和操作数的处理。根据控制线选择不同的逻辑运算。
用于LW和SW指令的数据存储器和符号扩展单元
要求数据存储器具有读口和写口,需要指定数据单元的地址。
16位的偏移量需要进行32位扩展形成数据存储器地址:
转移指令的操作单元
以Beq指令为例:
由于一个指令时32bit,4个字节,所以Offset需要左移两位(x4)
基于以上知识可以设计简单的单周期MIPS处理器。