没有合适的资源?快使用搜索试试~ 我知道了~
北邮计算机体系结构实验报告2021版本
需积分: 28 35 下载量 75 浏览量
2022-06-01
10:52:58
上传
评论 3
收藏 3.21MB DOCX 举报
温馨提示
试读
26页
实验 1 MIPS 指令系统和 MIPS 体系结构 实验 2 流水线及流水线中的冲突 实验3 使用 MIPS 指令实现求两个数组的点积 实验 4 使用 MIPS 指令实现冒泡排序法 实验 5 指令调度与延迟分支
资源推荐
资源详情
资源评论
组员贡献率
XXXX
XXXX
XXXX
实验 1 MIPS 指令系统和 MIPS 体系结构
1. 实验目的
(1) 了解和熟悉指令级模拟器。
(2) 熟练掌握 MIPSsim 模拟器的操作和使用方法。
(3) 熟悉 MIPS 指令系统及其特点,加深对 MIPS 指令操作语义的理解。
(4) 熟悉 MIPS 体系结构。
2. 实验平台
实验平台采用指令级和流水线操作级模拟器 MIPSsim。
3. 实验内容和步骤
首先要阅读 MIPSsim 模拟器的使用方法(见附录),然后了解 MIPSsim 的指令
系统和汇编语言。
(1)启动 MIPSsim(用鼠标双击 MIPSsim.exe)。
(2) 选择“配置”—>“流水方式”选项,使模拟器工作在非流水方式下。
(3)参照 MIPSsim 使用说明,熟悉 MIPSsim 模拟器的操作和使用方法。
可以先载人一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中),
然后分别以单步执行一条指令、执行多条指令、连续执行、设置断点等的方式
运行程序,观察程序执行情况观察 CPU 中寄存器和存储器的内容的变化。
(4) 选择“文件”—>“载入程序”选项,加载样例程序 alltest.asm,然后查看“代
码” 窗口,至看程序所在的位置(起始地址为 Ox00000100)。
(5) 查看“寄存器"窗口 PC 寄存器的值:[PC]=Ox00000000
(6) 执行 load 和 store 指令,步骤如下:
1. 单步执行 1 条指令(F7)。
2. 下一条指令地址为 Ox00000004 ,是一条有(有,无)符号载入字节(字节,
半字,字)指令。
3. 单步执行 1 条指令(F7)。
4. 查看 Rl 的值,[R1]=OxFFFFFFFFFFFFFF80
5. 下一条指令地址为 Ox00000008,是一条有(有,无)符号载入字(字节,半
字,字)指令。
6. 单步执行 1 条指令。
7. 查看 Rl 的值,[R1]=Ox0000000000000080
8. 下一条指令地址为 Ox0000000C,是一条无(有,无)符号载入字节(字节,
半字,字)指令。
9. 单步执行 1 条指令。
10. 查看 Rl 的值,[R1]=Ox0000000000000080
11. 单步执行 1 条指令。
12. 下一条指令地址为 0x00000014,是一条保存字(字节,半字,字)指令。
13. 单步执行 1 条指令(F7)。
14. 查看内存 BUFFER 处字的值,值为 0x0080。(内存一>符号表)
(7)执行算术运算类指令。步骤如下:
1. 双击“寄存器”窗口中的 R1,将其值修改为 2。
2. 双击“寄存器”窗口中的 R2,将其值修改为 3。
3. 单步执行 1 条指令。
4. 下一条指令地址为 0x00000020,是一条加法指令。
5. 单步执行 1 条指令。
6. 查看 R3 的值,[R3]=0x0000000000000005
7. 下一条指令地址为 0x00000024,是一条乘法指令。
8. 单步执行 1 条指令。
9. 查看 L0、HI 的值,[LO]=0x0000000000000006,
[HI]=0x0000000000000000
(8)执行逻辑运算类指令。步骤如下:
1. 双击“寄存器”窗口中的 R1,将其值修改为 0xFFFF0000。
2. 双击“寄存器”窗口中的 R2,将其值修改为 0xFF00FF00。
3. 单步执行 1 条指令。
4. 下一条指令地址为 0x00000030,是一条逻辑与运算指令,第二个操作数
寻址方式是寄存器直接寻址(寄存器直接寻址,立即数寻址)。
5. 单步执行 1 条指令。
6. 查看 R3 的值,[R3]=0x00000000FF000000
7. 下一条指令地址为 0x00000034,是一条逻辑与运算指令,第二个操作数
寻址方式是立即数寻址(寄存器直接寻址,立即数寻址)。
8. 单步执行 1 条指令。
9. 查看 R3 的值,[R3]=0x0000000000000000
(9)执行控制转移类指令。步骤如下:
1. 双击“寄存器”窗口中的 R1,将其值修改为 2。
2. 双击“寄存器”窗口中的 R2,将其值修改为 2。
3. 单步执行 1 条指令。
4. 下一条指令地址为 0x00000040,是一条 BEQ 指令,其测试条件是目标地址
为 0x0000004C
5. 单步执行 1 条指令。
6. 查看 PC 的值,[PC]=0x0000004C,表明分支成功(成功,失败)。
7. 下一条指令是一条 BGEZ 指令,其测试条件是,目标地址为 0x00000058
8. 单步执行 1 条指令。
9. 查看 PC 的值,[PC]=0x00000058,表明分支成功(成功,失败)。
10. 下一条指令是一条 BGEZAL 指令,其测试条件是,目标地址为
0x00000064
11. 单步执行 1 条指令。
12. 查看 PC 的值[PC]=0x00000064 表明分支成功(成功,失败);查看 R31 的
值,[R31]=0x000000000000005C
13. 单步执行 1 条指令。
14. 查看 R1 的值,[R1]=0x0000000000000074
15. 下一条指令地址为 0x00000068 是一条 JALR 指令,保存目标地址的寄存
器为 R1,保存返回地址的目标寄存器为 R3
16. 单步执行 1 条指令。
17. 查看 PC 和 R3 的值,[PC]=0x00000074, [R3]=0x0000006C
实验 2 流水线及流水线中的冲突
1. 实验目的
(1)加深对计算机流水线基本概念的理解。
(2)理解 MIPS 结构如何用 5 段流水线来实现,理解各段的功能和基本操作。
(3)加深对数据冲突和资源冲突的理解,理解这两类冲突对 CPU 性能的影响。
(4)进一步理解解决数据冲突的方法,掌握如何应用定向技术来减少数据冲
突引起的停顿。
2. 实验平台
指令级和流水线操作级模拟器 MIPSsim。
剩余25页未读,继续阅读
资源评论
德林恩宝
- 粉丝: 499
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功