修改图6.8所示的单总线结构处理器,使其能够支持如下 MIPS指令,具体指令功能请查阅MIPS32指令手册。试描述需要增加或修改哪些数据通路和控制信号,尝试给出各指令的执行流程和每一步的操作控制信号。 (1)sll;(2)lui; (3)bltz; (4)j
时间: 2024-04-01 15:34:22 浏览: 186
MIPS32指令集.rar_MIPS_MIPS指令集_mips lw指令_mips32 手册_汇编
对于修改单总线结构处理器以支持新指令,需要增加或修改以下数据通路和控制信号:
1. 对于sll指令,需要增加一个左移位数的立即数输入,该立即数需要经过符号扩展后与rs寄存器中的值相加,作为shamt输入到ALU中进行移位操作,因此需要增加一个符号扩展单元和一个8位选择器用于选择ALU的操作。
2. 对于lui指令,需要增加一个16位的立即数输入,该立即数需要左移16位后输出到rt寄存器中,因此需要增加一个16位选择器用于选择立即数输入、数据寄存器的值或者0作为ALU的第二个操作数。
3. 对于bltz指令,需要增加一个比较器用于比较rs寄存器中的值是否小于0,如果小于则跳转到目标地址,因此需要增加一个比较器和一个选择器用于选择PC+4或者目标地址作为PC的输入。
4. 对于j指令,需要将PC的高4位与目标地址的高4位进行拼接,作为新的PC值,因此需要增加一个16位选择器用于选择PC的高4位或者目标地址的高4位作为PC的高4位输入。
各指令的执行流程和每一步的操作控制信号如下:
1. sll指令的执行流程:
(1)将符号扩展后的立即数与rs寄存器的值相加,输出到ALU的第一个操作数端口。
(2)将选择器设置为8,选择ALU进行左移操作。
(3)将ALU的输出写入rd寄存器。
2. lui指令的执行流程:
(1)将16位立即数左移16位,作为ALU的第二个操作数。
(2)将选择器设置为1,选择ALU的第二个操作数输入为立即数左移16位后的值。
(3)将ALU的输出写入rt寄存器。
3. bltz指令的执行流程:
(1)将rs寄存器的值输入到比较器的第一个输入端口。
(2)将0输入到比较器的第二个输入端口。
(3)将选择器设置为2,选择比较器的输出作为PC的输入。
(4)如果比较器的输出为1,则将目标地址输入到PC的输入端口,否则将PC+4的值输入到PC的输入端口。
4. j指令的执行流程:
(1)将PC的高4位输入到16位选择器的第一个输入端口。
(2)将目标地址的高4位输入到16位选择器的第二个输入端口。
(3)将选择器设置为1,选择16位选择器的输出作为PC的高4位输入。
(4)将目标地址的低28位作为PC的低28位输入。
阅读全文