实验一流水线相关一. 实验目的1. 熟练掌握 WinDLX 模拟器的操作和使用,熟悉DLX 指令集结构及其特点;2. 加深对计算机流水线基本概念的理解;3. 进一步了解DLX 基本流水线各段的功能以及基本操作;4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU 性能的影响;5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。二. 实验内容1. 用WinDLX 模拟器执行下列三个程序(任选一个):求阶乘程序 fact.s 求最大公倍数程序gcm.s 求素数程序 prim.s 分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察 CPU 中寄存器和存储器的内容。熟练掌握WinDLX 的操作和使用。注意: fact.s 中调用了 input.s 中的输入子程序。load 程序时,要两个程序一起装入(都 select 后再点击 load)。gcm.s 也是如此。2. 用WinDLX 运行程序 structure_d.s,通过模拟:找出存在结构相关的指令对以及导致结构相关的部件;记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;论述结构相关对CPU 性能的影响,讨论解决结构相关的方法。3. 在不采用定向技术的情况下(去掉Configuration 菜单中 Enable Forwarding 选项前的勾选符),用 WinDLX 运行程序 data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。4. 在采用定向技术的情况下(勾选Enable Forwarding ),用 WinDLX 再次运行程序 data_d.s。重复上述 3 中的工作,并计算采用定向技术后性能提高的倍数。三.实验过程和截图1.模拟执行 fact.s和 input.s 流水线的状态如下:在执行求阶乘程序fact.s 之后,输入值5,查看寄存器的值为120,结果正确。2.执行程序 structure_d.s之后的实验数据如下图:由实验数据显示:(1)该程序没有结构相关;(2)该程序总共暂停的时钟周期数为:108 个时钟周期,暂停的时钟周期数占总的时钟周期数的百分比为%38.551951083.不采用定向技术,运行data_d.s程序,实验数据如下图:由实验数据显示:(1)由数据相关引起的暂停的时钟周期数为:104 (2)程序执行的总的时钟周期数为:202 (3)暂停的时钟周期数占总的时钟周期数的百分比:%49.512021044.采用定向技术执行程序data_d.s,实验数据如下图:由实验数据显示:(1)程序由于数据相关引起的暂停的时候周期数为:30;...