文档详情

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

发布:2017-06-18约1.53千字共10页下载文档
文本预览下载声明
计算机体系结构 实验作业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是如何解决的。 结构相关 在执行subd f0,f0,f4和j fact.Loop期间由于ALU被占用硬件资源无法满足j fact.Loop进入EX阶段,发生结构相关的冒险。winDLX中通过阻塞EX 1个周期来解决此问题。 数据相关 bnez r5,input.Finish需要使用seqi的计算结果r5,所以产生数据相关的冒险。WindDLX通过阻塞解决问题。 控制相关 语句lw r2,SaveR2(r0)被aborted,这是控制相关的冒险造成的。因为前一条语句j input.Loop是跳转语句,而指定到EX阶段语句被解码后在能知道其作用,所以已经取指令的lw语句被取消。 前送(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)等概念和技术。
显示全部
相似文档