北邮计算机系统结构:MIPS指令冒泡排序实验与优化分析

5星 · 超过95%的资源 需积分: 34 152 下载量 75 浏览量 更新于2024-09-08 6 收藏 482KB PDF 举报
本篇实验报告是关于北京邮电大学计算机系统结构课程的第四次实验,主题为"使用MIPS指令实现冒泡排序法"。实验旨在让学生掌握静态调度方法、增强汇编语言编程技能,并通过实践了解如何利用MIPSsim模拟器进行程序优化。 首先,实验目标包括: 1. 静态调度方法:通过编写冒泡排序的MIPS汇编程序,学生能够理解并应用静态调度策略来安排指令执行顺序,以减少不必要的计算和冲突。 2. 汇编语言编程:实验要求编写一个可以对一维整数数组进行冒泡排序的程序,这涉及基本的循环、比较和交换操作,强化了学生的低级语言编程能力。 3. 优化模拟器使用:通过MIPSsim,学生要学会使用定向功能来检测和减少流水线中的RAW冲突,从而提高程序执行效率。 实验步骤具体为: 1. 编写冒泡排序程序,包括比较相邻元素、交换操作以及控制循环的条件判断,数组长度至少为10。 2. 使用MIPSsim运行程序,处理输入数据12,34,17,5,89,15,9,22,16,19,21,记录程序执行的1228个周期,其中RAW冲突占40.30%。 3. 应用定向功能,观察到执行效率提升,共花费942个周期,RAW冲突占比下降至22.18%,执行效率提高了约1.30倍。 4. 针对原始代码,通过静态调度优化指令序列,减少相关性,例如使用LOOP2标签的循环结构,减少无效的流水线操作。 5. 优化后的代码示例中,展示了使用局部寄存器(如$r5, $r6, $r7等)进行数组元素的加载、存储和比较,以及通过ADDIU和DSUB等指令实现自增和减操作。 通过这次实验,学生不仅掌握了冒泡排序算法的实现,还锻炼了他们在实际硬件环境中的程序设计和性能优化技巧,提升了计算机系统结构的理解深度。