实验2流⽔线及流⽔线中的冲突
实验2 流⽔线及流⽔线中的冲突
2.1实验⽬的
加深对计算机流⽔线基本概念的理解;
理解MIPS结构如何⽤5段流⽔线来实现,理解各段的功能和基本操作;
字符串常量池和运行时常量池的联系加深对数据冲突、结构冲突的理解,理解这两类冲突对CPU性能的影响;
进⼀步理解解决数据冲突的⽅法,掌握如何应⽤定向技术来减少数据冲突引起的停顿。
2.2实验平台
实验平台采⽤指令级和流⽔线操作级模拟器MIPSsim。
2.3实验内容
阅读理解课件第3章的“3.4节流⽔线的相关与冲突”(81屏-117屏);
1)启动MIPSsim,选择“配置”→“流⽔⽅式”选项,使模拟器⼯作在流⽔⽅式下。
2)观察程序在流⽔线中的执⾏情况:
在MIPSsim中载⼊pipeline.s样例程序(在本模拟器⽬录的“样例程序”
⽂件夹中),关闭定向功能,单步执⾏⼀个周期的⽅式,观察每⼀步执⾏中,指令的执⾏情况(“代码”窗⼝)和时钟周期图,分析并写出流⽔线执⾏中⼏处停顿的原因。
当执⾏到第13个时钟周期时,写出各个流⽔段正在执⾏的指令,并画出这时的时钟周期图(从周期0到13)。
答:第⼀次停顿是产⽣了数据冲突,第⼆次产⽣结构冲突,第三次是结构冲突.当执⾏到第⼗三个周期时if段执⾏BEQ指令,id执⾏LW指令,ex执⾏ADDI指令,mem执⾏ADDI指令,wb指令执⾏ADDI指令。
3)观察分析结构冲突对CPU性能的影响:
加载样例程序structure_hz.s,执⾏该程序(⽤连续执⾏⽅式),出存在结构冲突的指令对,以及导致
结构冲突的部件。记录由结构冲突引起的停顿时钟周期数,计算停顿时钟周期数占总执⾏周期数的百分⽐。
把浮点加法器的个数改为4个,再重复上⼀步的⼯作。
分析结构冲突对CPU性能的影响,讨论解决结构冲突的⽅法。
答:有⼋对,浮点加法器引起结构冲突,由结构冲突引起的停顿周期数是2个时钟周期,停顿时钟周期数占总执⾏周期数的42.11%
结构冲突会导致cpu性能的下降,未解决结构冲突可以增设硬件,或者优化编译,但增加硬件会使成本增加所以有些计算机会允许结构冲突的存在,主要是为了减少硬件成本,应为结构冲突并不是时常发⽣。
4)观察数据冲突并⽤定向技术来减少停顿:
(a)全部复位,加载data_hz.s,关闭定向功能,单步执⾏该程序,查看
时钟周期图,记录分析在什么时刻发⽣了RAW(写后读)冲突(在
实验报告中只写到执⾏完第⼀条分⽀指令BGTZ $r4, loop即可)。
答:在执⾏LW $r1,0($r2),ADD $r1,$r1,$r3和LW$ r5, 0($r1),ADDI $r5,$r5,10以及ADDI $r2,$r2,4,SUB $r4,$r3,$r2时发⽣了RAW(读后写)冲突
(b)记录数据冲突引起的停顿时钟周期数以及程序执⾏的总时钟周期
数,计算停顿时钟周期数占总执⾏周期数的百分⽐(可使⽤连续执
⾏⽅式,运⾏后查看统计窗⼝)。
答:47.69%和53.85%
(c)复位CPU,打开定向功能,单步执⾏,查看时钟周期图,记录分析
在什么时刻发⽣了RAW(写后读)冲突(在实验报告中只写到执⾏
完第⼀条分⽀指令BGTZ $r4, loop即可)。并与前⾯不采⽤定向的步骤(a)的结果进⾏⽐较。
答:,ADD $r1,$r1,$r3,SW $r1,0($r2),ADDI $r5,$r5,10 ADDI $r2,$r2,4 发⽣了RAW冲突,采⽤定向后,可以有效的减⼩结构冲突。定向技术指结果数据不仅可以从某⼀功能部件的输出定向到其⾃⾝的输⼊,⽽且还可以定向到其他功能部件的输⼊。
(d)记录采⽤定向技术后数据冲突引起的停顿时钟周期数以及程序执⾏
的总时钟周期数(可使⽤连续执⾏⽅式,运⾏后查看统计窗⼝),计算采⽤定向技术后性能提⾼了多少。
答; 停顿时钟周期数为13个,总时钟周期数为43.与不采⽤定向技术相⽐,总的时钟周期由65下降到43,减少了22个,停顿时钟周期数由35下降到13⼤幅度减少了22个,可见定向技术可以⼤幅度减少数据冲突引起的停顿。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。