1
(1) 针对图中的MIPS处理器数据通路(不考虑I/O),用红色或蓝色描出执行sw指令时的数据通路。(将该图下载到电脑,并用画图完成描线)
(2) 写出执行sw指令时,各个元件控制端信号应该置什么值?
2
基于Minisys处理器,设计一个支持个位数加法和减法的计算器程序。
(1) 需要设计哪些I/O模块?
(2) 计算器程序执行的流程是什么?
3
在调试中:
(1) 你们小组出现了什么问题?
(2) 原因是什么?
(3) 如何解决的?
(本题需要列举本次课设中调试过程中的1个具体问题,详细描述你所遇到问题及解决过程细节)。
4
将MIPS伪指令bgt $t0, $t1, exit翻译为实现对应功能的MIPS指令。
5
若在Minisys处理器中增加浮点数运算功能
(1) 需要增加哪些部件?
(2) 需要修改哪些部件?
(3) 写出实现浮点数运算功能的主要思路和关键之处。
一些参考
将MIPS伪指令bgt $t0, $t1, exit翻译为实现对应功能的MIPS指令如下:
slt $at, $t0, $t1 # 比较$t1和$t0的大小,将比较结果存储在$at寄存器中
beq $at, $zero, exit # 如果$t1小于或等于$t0,则跳转到exit标签处
其中,at寄存器是一个临时寄存器,用于存储比较结果。exit是一个标签,表示跳转目标位置。如果t1大于$t0,则不会执行跳转指令,而是继续执行下一条指令。
(1)需要增加浮点数运算部件,如浮点加法器、浮点乘法器、浮点除法器等。
(2)需要修改ALU(算术逻辑单元)部件,以支持浮点数运算。同时,还需要修改寄存器文件,以支持浮点寄存器。
(3)实现浮点数运算的主要思路是将浮点数表示为符号位、指数位和尾数位的形式,然后进行相应的运算操作。关键之处在于正确解析浮点数的表示形式,并进行适当的舍入和溢出处理。另外,还需要处理特殊情况,如零除、无穷大等。为了提高浮点数运算的效率,可以采用流水线技术和乘法累加器等优化方法。
浮点加法器:用于执行浮点数的加法运算。
浮点乘法器:用于执行浮点数的乘法运算。
浮点除法器:用于执行浮点数的除法运算。
浮点寄存器文件:用于存储浮点数的寄存器。
ALU(算术逻辑单元):需要增加对浮点数运算的支持,包括浮点数加法、减法、乘法和除法。
控制单元:需要增加对浮点数运算指令的译码和控制信号生成。
数据通路:需要增加浮点寄存器文件和浮点运算器的连接路径,以便进行数据传输和运算。
(1)设计一个支持个位数加法和减法的计算器程序需要以下I/O模块:
输入模块:用于接收用户输入的操作数和操作符。
显示模块:用于显示计算结果。
(2)计算器程序执行的流程如下:
初始化:将输入模块和显示模块初始化。
接收输入:从输入模块接收用户输入的操作数和操作符。
执行计算:根据操作符进行加法或减法运算。
显示结果:将计算结果显示在显示模块上。
返回步骤2,等待用户继续输入操作。
整个流程是一个循环,用户可以反复输入操作数和操作符,计算器程序会根据输入执行相应的加法或减法运算,并将结果显示出来。
流程图
此处感谢尊贵的WPS—VIP用户,小曾。