实验作业3:DLX流水线实验报告

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

计算机体系结构

实验作业3:DLX流水线实验报告

姓名:

学号:

班级:

班号:

《计算机系统结构》第三次实验作业

一、实验目的

本次实验的主要目的是熟悉DLX流水线以及结构相关、数据相关、控制相关、前送(forwarding)等概念和技术。

二、实验内容

1. 了解各种指令在DLX流水线中的运行过程;

2. 流水线相关实验;

3. 前送(forwarding)技术对流水线性能的影响;

4. 考察改变部件数量和延迟数对性能的影响。

三、实验步骤及结果分析

1. 了解各种指令在DLX流水线中的运行过程

如上次实验那样,读入并运行fact.s和input.s。请从程序中选择有代表性的5条不同类型的指令,并描述每条指令在5段流水线中每步完成的工作。

(1)

(2)

(3)

(4)

(5)

2. 流水线相关实验

在流水线窗口中观察,分别找出结构相关、数据相关、控制相关各一种,并描述冒险情况以及这些冒险在winDLX是如何解决的。

(1)结构相关

在执行subd f0,f0,f4和j fact.Loop期间由于ALU被占用硬件资源无法满足j fact.Loop进入EX阶段,发生结构相关的冒险。winDLX中通过阻

塞EX 1个周期来解决此问题。

(2)数据相关

bnez r5,input.Finish需要使用seqi的计算结果r5,所以产生数据相关的冒险。WindDLX通过阻塞解决问题。

(3)控制相关

语句lw r2,SaveR2(r0)被aborted,这是控制相关的冒险造成的。因为前一条语句j input.Loop是跳转语句,而指定到EX阶段语句被解码后在

能知道其作用,所以已经取指令的lw语句被取消。

3.前送(forwarding)技术对流水线性能的影响

(1)开启forwarding:

没有开启forwarding:

lbur r3,0x0(r2) ……①

seqi r5,r3,0xa ……②

对比在开启和关闭forwarding的情况下以上两条语句的执行,由于语句2需要使用语句1计算的结果r3作为输入,产生数据冒险。在没有forwarding时语句2的IF阶段需要阻塞2个周期,即等待语句1完成EX,后才可继续执行。当开启forwarding后语句2的IF与语句1的ID并行执行,语句2的ID受冒险影响阻塞1个周期,并在EX阶段得到前送数据,继续执行。从整体上看,开启forwarding后使阻塞周期减少了1个,提高了性能。

(2)

开启forwarding:

没有开启forwarding:

movi2fp f11,r2 ……①

cvti2d f2,f11 ……②

对比在开启和关闭forwarding的情况下以上两条语句的执行,由于语句2需要使用语句1计算的结果f11作为输入。在没有forwarding时语句2的IF阶段需要阻塞8个周期,即等待语句1完成后,才可继续执行。当开启forwarding后语句2的IF与语句1的ID并行执行,从整体上看,开启forwarding后使阻塞周期减少了8个,提高了性能。

4. 考察改变部件数量和延迟数对性能的影响

通过configuration floating point stages可施加各种改变。该实验由你自己设计实验计划,得出结果和结论。

使用默认设置:

增加加法单元数量

增加加法单元的延时:

通过测试可以发现,增加加法单元并没有明显改变性能情况,但是增加延时使得总周期数和阻塞周期发生明显变换。

四、实验总结

通过此次实验,我学习了计算机体系结构的流水线操作。winDLX有了进一步了解。熟悉了DLX流水线以及结构相关、数据相关、控制相关、前送(forwarding)等概念和技术。

相关文档
最新文档