实验作业3:DLX流水线实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)等概念和技术。