130 likes | 367 Views
MIPS Architecture. Leilei Wang 2011.09.08. Architecture. History. Pipeline. MIPS/RISC Features. - 指令集的限制 指令长度必须都是 32 位, 不可能把一个 32 位常数放进单个指令 指令操作必须适合流水线 三操作数的指令 32 个通用寄存器 寄存器零 没有条件码 - 寻址和访存 访问内存只能通过简单的寄存器加载和存储 只有一种数据寻址方式 字节地址指令 - 符号扩展和零扩展 load/store 必须对齐 跳转指令 - 没有的特性
E N D
MIPS Architecture Leilei Wang 2011.09.08
MIPS/RISC Features - 指令集的限制 • 指令长度必须都是32位, 不可能把一个32位常数放进单个指令 • 指令操作必须适合流水线 • 三操作数的指令 • 32个通用寄存器 • 寄存器零 • 没有条件码 - 寻址和访存 • 访问内存只能通过简单的寄存器加载和存储 • 只有一种数据寻址方式 • 字节地址指令 - 符号扩展和零扩展 • load/store必须对齐 • 跳转指令 - 没有的特性 • 没有字节或半字数据的运算 • 没有对堆栈的特殊支持 • 最少的子程序支持 • 最少的中断处理 • 最少的异常处理
整数乘法部件 • 专用整数乘法部件,并没有集成到主流水线中。 • 把两个寄存器大小的值相乘得到一个两倍大小的寄存器结果,存放在乘法单元里面,指令mfhi,mflo分两半将结果传送到指令通用寄存器 • 乘法的结果寄存器总是互锁的 • 执行两个通用寄存器的除法操作,这是lo保存商,hi保存余数 • 乘法要4-12个周期,除法要20-80个周期 • 三操作数的mul指令,返回乘法结果的低半部分到一个通用寄存器,但这条指令必须停顿下来直到操作完成 • mthi,mtlo用来将通用寄存器的值传送到乘法单元的内部寄存器
存储器与寄存器的数据类型 • 符号扩展指令lb,lh,将高位使用符号位填充 • 无符号指令lbu,lhu将高位用零填充