- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机系统结构实验报告流水线及流水线中的冲突
计算机系统结构实验报告
班级 2010级2班 实验日期 2013.5.10 实验成绩 姓名 乐宗港 学号 23020102203935 实验名称 流水线及流水线中的冲突 实
验
目
的
、
要
求
及
器
材 2.1 实验目的
1. 加深对计算机流水线基本概念的理解。
2. 理解MIPS结构如何用5段流水线来实现,理解各段的功能以及基本操作
3. 加深对数据冲突、结构冲突的理解,理解这两类冲突对CPU性能的影响;;
4. 进一步理解解决数据冲突的方法,掌握如何应用定向技术来减少数据冲突引起的停顿。
2.2 实验平台
实验平台采用指令级和流水线操作级模拟器MIPSsim
实
验
内
容
、
步
骤
及
结
果
2.3 实验内容和步骤
首先要掌握MIPSsim模拟器的使用方法。
1. 启动MIPSsim
2. 根据预备知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义。(用鼠标双击各段,就可以看到各流水寄存器的内容)
3.参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。
可以先载入一个样例程序,然后分别以单步执行一条指令、执行多条指令、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化,特别是流水寄存器内容的变化。
4. 选择“配置”→“流水方式”选项,使模拟器工作在流水方式下。
5. 观察程序在流水线中的执行情况,步骤如下:
选择MIPSsim “文件” →“载入程序”选项,加载pipeline.s。
关闭定向功能。这是通过“配置” →“定向”(使该项前面没有√号)来实现的。
用单步执行一个周期的方式(在“执行”菜单中)或按F7键执行程序,观察每一个周期中,各段流水寄存器内容的变化、指令的执行情况(“代码”窗口)以及时钟周期图。
当执行到第13个时钟周期时,各段分别正在处理的指令是:
IF: BFG $r1,$r0,ret
ID: LW $r4,60($r6)
EX: ADDI $r3,$r0,25
MEM: ADDI $r1,$r1,-1
WB: ADDI $r6,$r0,8
画出这时的时钟周期图。如下图所示:
6. 这时各流水寄存器中的内容为:
IF/ ID.IR: 270532612
IF/ ID.NPC: 52
ID/ EX.A: 8
ID/ EX.B: 0
ID/ EX.Imm: 60
ID/ EX.IR: 2361655356
EX /MEM.ALUo: 25
EX /MEM.IR: 537067545
MEM /WB.LMD: 0
MEM /WB. ALUo: 4
MEM /WB.IR: 539099135
7. 观察和分析结构冲突对CPU的影响,步骤如下:
加载structure_hz.s
执行该程序,找出存在结构冲突的指令以及导致结构冲突的部件。
ADD.D $f2,$f0,$f1 ADD.D $f5,$f0,$f1 存储器加法器
记录由结构冲突引起的停顿时钟周期数,计算停顿时钟周期数占总执行周期数的百分比。32/52=67.30769%
把浮点加法器的个数改为4个。
再次重复步骤(1)-(3)的工作。
分析结构冲突对CPU性能的影响,讨论解决结构冲突的办法。
结构冲突对CPU性能的影响:当发生冲突时,流水线会出现停顿,从而降低了CPU的性能。
解决方法:设置相互独立的指令寄存器和数据寄存器,增加导致结构冲突的部件
8. 观察数据冲突并用定向技术来减少停顿,步骤如下:
全部复位
加载data_hz.s
关闭定向功能。这是通过“配置” →“定向”(使该项前面没有√号)来实现的。
用单步执行一个周期的方式(F7)执行该程序,同时查看时钟周期图,列出在什么时刻发生了RAW(先写后读)冲突。
以下周期发生RAW: 3 5 6 8 9 12 13 16 17 19 20 24 25 27 28 31 32 35 36 38 39 43 46 50 51 54 55 57 58
记录由数据冲突引起的停顿时钟周期数以及程序执行的总时钟周期数,计算停顿时钟周期数占总执行周期数的百分比。31/64=47.69231%
复位CPU。
打开定向功能。这是通过“配置” →“定向”(使该项前面有√号)来实现的。
用单步执行一个
文档评论(0)