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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验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个,可见定向技术可以大幅度减少数据冲突引起的停顿。

相关文档
最新文档