实验 2: MIPS 指令系统和 MIPS 体系结构 实验报告答案Word格式.docx

上传人:b****1 文档编号:13179624 上传时间:2022-10-07 格式:DOCX 页数:13 大小:264.77KB
下载 相关 举报
实验 2: MIPS 指令系统和 MIPS 体系结构 实验报告答案Word格式.docx_第1页
第1页 / 共13页
实验 2: MIPS 指令系统和 MIPS 体系结构 实验报告答案Word格式.docx_第2页
第2页 / 共13页
实验 2: MIPS 指令系统和 MIPS 体系结构 实验报告答案Word格式.docx_第3页
第3页 / 共13页
实验 2: MIPS 指令系统和 MIPS 体系结构 实验报告答案Word格式.docx_第4页
第4页 / 共13页
实验 2: MIPS 指令系统和 MIPS 体系结构 实验报告答案Word格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

实验 2: MIPS 指令系统和 MIPS 体系结构 实验报告答案Word格式.docx

《实验 2: MIPS 指令系统和 MIPS 体系结构 实验报告答案Word格式.docx》由会员分享,可在线阅读,更多相关《实验 2: MIPS 指令系统和 MIPS 体系结构 实验报告答案Word格式.docx(13页珍藏版)》请在冰豆网上搜索。

实验 2: MIPS 指令系统和 MIPS 体系结构 实验报告答案Word格式.docx

(5)、查看“寄存器”窗口PC寄存器的值:

[PC]=0x00000000。

(6)、执行load和store指令,步骤如下:

1)单步执行一条指令(F7)。

2)下一条指令地址为0x00000004,是一条有(有,无)符号载入字节(字节,半字,字)指令。

3)单步执行一条指令(F7)。

4)查看R1的值,[R1]=0xFFFFFFFFFFFFFF80。

5)下一条指令地址为0x00000008,是一条有(有,无)符号载入字(字节,半字,字)指令。

6)单步执行1条指令。

7)查看R1的值,[R1]=0x0000000000000080。

8)下一条指令地址为0x0000000C,是一条无(有,无)符号载入字节(字节,半字,字)指令。

9)单步执行1条指令。

10)查看R1的值,[R1]=0x0000000000000080。

11)单步执行1条指令。

12)下一条指令地址为0x00000014,是一条保存字(字节,半字,字)指令。

13)单步执行一条指令。

14)查看内存BUFFER处字的值,值为0x000080

(7)、执行算术运算类指令。

步骤如下:

1)双击“寄存器”窗口中的R1,将其值修改为2。

2)双击“寄存器”窗口中的R2,将其值修改为3。

3)单步执行一条指令。

4)下一条指令地址为0x00000020,是一条加法指令。

5)单步执行一条指令。

6)查看R3的值,[R3]=0x0000000000000005。

7)下一条指令地址为0x00000024,是一条乘法指令。

8)单步执行一条指令。

9)查看LO、HI的值,[LO]=0x0000000000000006,[HI]=0x0000000000000000。

(8)、执行逻辑运算类指令。

1)双击“寄存器”窗口中的R1,将其值修改为0XFFFF0000。

2)双击“寄存器”窗口中的R2,将其值修改为0XFF00FF00。

3)单步执行一条指令。

4)下一条指令地址为0x000030,是一条逻辑与运算指令,第二个操作数寻址方式是寄存器直接寻址(寄存器直接寻址,立即数寻址)。

5)单步执行一条指令。

6)查看R3的值,[R3]=0x00000000FF000000。

7)下一条指令地址为0x00000034,是一条逻辑或指令,第二个操作数寻址方式是立即数寻址(寄存器直接寻址,立即数寻址)。

8)单步执行一条指令。

9)查看R3的值,[R3]=0x0000000000000000。

(9)、执行控制转移类指令。

1)双击“寄存器”窗口中R1,将其值修改为2。

2)双击“寄存器”窗口中R2,将其值修改为2。

3)单步执行一条指令。

4)下一条指令地址为0x00000040,是一条BEQ指令,其测试条件是两操作数相等,目标地址为0x。

5)单步执行1条指令。

6)查看PC的值,[PC]=0x0000004C,表明分支成功(成功,失败)。

7)一条指令是一条BGEZ指令,其测试条件是大于等于0,目标地址为0x00000058。

8)单步执行1条指令。

9)查看PC的值,[PC]=0x00000058,表明分支成功(成功,失败)。

10)下一条指令是一条BGEZAL指令,其测试条件是大于等于0,目标地址为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]=0x000000000000006C。

实验3流水线及流水线中的冲突

(1)理解计算机流水线基本概念。

(2)理解MIPS结构如何用5段流水线来实现,理

(3)解各段的功能和基本操作。

(4)加深对数据冲突、结构冲突的理解,理解这两类冲突对CPU性能的影响。

(5)进一步理解解决数据冲突的方法,掌握如何应用定向技术来减少数据冲突引起的停顿。

二.实验内容和步骤

(1)、启动MIPSsim。

(2)、根据预备知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义。

(用鼠标双击各段,就可以看到各流水寄存器的内容)

(3)、参照MIPSsim模拟器使用说明,熟悉MIPSsim模拟器的操作和使用方法。

可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中)。

然后分别以单步执行一条周期、执行多个周期、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化,特别是流水寄存器内容的变化。

(4)、选择配置菜单中的“流水方式”选项,使模拟器工作于流水方式下。

(5)、观察程序在流水线中的执行情况,步骤如下:

1)选择MIPSsim的“文件”—>

“载入程序”选项来加载pipeline.s。

2)关闭定向功能。

这是通过“配置”—>

“定向”。

3)用单步执行一个周期的方式执行该程序,观察每一个周期中,各段流水寄存器内容的变化、指令的执行情况(“代码”窗口)以及时钟周期图。

4)当执行到第13个时钟周期时,各段分别正在处理的指令是:

IF:

LW$r4,60($r6)

ID:

ADDI$r3,$r0,25

EX:

ADDI$r1,$r1,-1

MEM:

ADDI$r6,$r0,8

WB:

ADD$r2,$r1,$r0

画出这时的时钟周期图。

(6)、这时各流水寄存器中的内容为:

IF/ID.IR:

2361655356

IF/ID.NPC:

48

ID/EX.A:

0

ID/EX.B:

ID/EX.IR:

25

ID/EX.Imm:

537067545

EX/MEM.ALUo:

4

EX/MEM.IR:

539099135

MEM/WB.LMD:

0

MEM/WB.ALUo:

8

MEM/WB.IR:

37264136

(7)、观察和分析结构冲突对CPU性能的影响,步骤如下:

1)加载structure_hz.s(在模拟器所在文件夹下的“样例程序”文件夹中)。

2)执行该程序,找出存在结构冲突的指令对以及导致结构冲突的部件。

根据始终周期图可知存在结构冲突的指令是浮点加法指令fadd,导致结构冲突的部件是浮点加法器

3)记录由结构冲突引起的停顿时钟周期数,计算停顿时钟周期数占总执行周期数的百分比。

总周期数为52个,结构停顿周期数35个,占总执行周期数的67.30769%

4)把浮点加法器的个数改为4个。

5)再次重复步骤

(1)~(3)的工作。

如上图,可知修改后结构冲突引起的停顿时钟周期数为2个,占总执行周期数的10.52632%

6)分析结构冲突对CPU性能的影响,讨论解决结构冲突的方法。

结构冲突出现的频率较高,导致的停顿使得CPU流水的效率下降,可以通过分别设置独立的指令存储器和数据存储器的方法,或者仍只是一个存储器,但采用两个分离的Cache,即指令Cache和数据Cache

(8)、观察数据冲突并用定向技术来减少停顿,步骤如下:

1)全部复位

2)加载data_hz.s

3)关闭定向功能。

4)单步执行一个周期,同时查看时钟周期图,列出在什么时刻发生了RAW(先写后读)冲突。

发生冲突的周期是4、6、7、9、10、13、14、17、18、20、21、25、26、28、29、32、33、36、37、39、40、44、45、47、48、51、52、55、56、58、59

5)记录数据冲突引起的停顿时钟周期数及程序执行的总时钟周期数,计算停顿时钟周期数占总执行周期数的百分比。

总时钟周期数65,其中数据冲突引起的停顿时钟周期数为31,占总周期数的47.69231%。

6)复位CPU。

7)打开定向功能。

8)单步执行一个周期,同时查看时钟周期图,列出在什么时刻发生了RAW(先写后读)冲突,并与步骤(3)的结果进行比较。

发生冲突的周期为5、10、13、18、22、25、30、34、37,共9个

9)记录由数据冲突引起的停顿时钟周期数以及程序执行的总时钟周期数,计算采用定向技术后的性能是原来的几倍。

程序执行的总周期数为43,其中数据冲突引起的停顿数为9个,采用定向技术后性能是原来的65/43=1.51倍

实验4指令调度和延迟分支

(1)加深对指令调度技术的理解。

(2)加深对延迟分支技术的理解。

(3)熟练掌握用指令调度技术解决流水线中的数据冲突的方法。

(4)进一步理解指令调度技术对CPU性能的改进。

(5)进一步理解延迟分支技术对CPU性能的改进。

二.实验内容和步骤:

(2)、根据前面的相关知识中关于流水线各段操作的描述,进一步理

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1