北邮计算机系统结构实验报告

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

高级计算机系统结构

实验报告

实验二指令流水线相关性分析

实验三DLX处理器程序设计

实验四代码优化

实验五循环展开

专业计算机科学与技术

班级2015

姓名

学号2015

实验二指令流水线相关性分析

1. 实验目的:

通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC处理器的特点的理解。

2. 实验设备环境:

2.1 WinDLX模拟器可以装入DLX汇编语言程序,然后单步、设置断点或者连续执行该程序;

2.2 CPU的寄存器、流水线、I/O和存储器都可以使用图形的方式表示出来;

2.3 模拟器还提供了对流水线操作的统计功能;

2.4 该模拟器对理解流水线和RISC处理器的特点很有帮助;

2.5 所有浮点运算部件的延时都设定为4个周期;

3. 实验原理:

指令流水线中主要有结构相关、数据相关、控制相关。相关影响流水线性能。

3.1数据相关

定义:原有先后顺序的两条指令(I1,I2)在对共享变量(位置)进行读、写时,指令流水线中实际完成的读、写顺序与原有顺序不一致,导致流水线输出错误。

三类数据相关:写读(WR)相关

读写(RW)相关

写写(WW)相关

解决方法技术:

1.使某些流水线指令延迟、停顿一或多个周期。

2.双端口存储器:如果指令和数据放在同一个存储器。

3.设置两个存储器:一个数据存储,一个为指令存储器。

4.软件优化编译:通过指令重新排序,消除数据相关。

5.定向技术:又称旁路技术或专用通路技术,是使后续指令提前得

到前指令的运算结果(适合ALU类指令)

3.2结构相关

定义:如果某指令在流水线重叠执行过程中,硬件资源满足不了指令重叠执行的要求,会产生资源冲突或竞争,称为流水线结构相关

解决方法技术:

1.延迟技术:使某些指令延迟、停顿一或多个时钟周期

2.双端口存储器:允许同时读两个数据或指令

3.设置双存储器(哈弗结构):一个数据存储,一个指令存储。

4软件优化编译:通过指令重新排序消除结构相关。

3.3控制相关

定义:控制相关是指因程序执行转移类指令而引起的冲突相关。包括无条件转移、条件转移、子程序调用、中断等,它们属于分支指令,执行中可能改变程序方向,造成流水线断流。

解决方法技术:

1、静态分支技术

➢静态转移预测技术(猜测法)

➢延迟转移

➢提前形成条件码,生成转移目标地址

➢改进循环程序

2、动态分支预测技术

➢转移历史表BHT。

➢转移目标缓冲栈(BTB)

➢转移目标指令缓冲栈BTIB

4. 实验步骤:

4.1 观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。

按要求,初始化WinDLX ,将所有浮点运算部件的延时都设定为4周期;载入fact.s和input.s先总体上观察数据/结构/控制相关。

装入后点击F5运行,在结果分析中发现无结构相关,有数据相关和控制相

关。

4.1.1数据相关分析

可知第0*0000012c条指令subd f0,f0,f4对f0进行了读写操作,写回发生在

MEM阶段,led f0,f4指令在ID时刻要读取f0,f4的信息,可知关于f0两条指令发生了写读相关(WR)。

如上图所示,此时由于指令subd f0,f0,f4,在MEM时才写回f0,为保证程序的正确运行,led f0,f4的ID取数阶段顺延至MEM完成后才进行,这样导致了流水线的断流,影响了程序的运行效率。

4.1.2控制相关分析

可知第0*00000130条指令jfact.Loop为循环指令,指令在EX时刻才能判别指令是否发生转移,此时发生了控制相关。如下所示,此时指令跳转成功,故顺序取出的指令必须中断,并且转向取出转移到的指令。

jfact.Loop在EX时发现跳转成功,则在EX阶段马上结束指令顺序取出的指令sd PrintfValue(r0),f0,转而执行led f0/4指令的取指阶段ID。由于此控制相关使得流水线断流一个时钟周期。

4.2考察增加浮点运算部件对性能的影响。

4.2.1不附加部件

在载入fact.s和input.s后,对程序进行初始化设置,使得浮点数运算时延均设为4。按F5运行程序,要求输入时,输入12,以后的运算也均输入12。

Statistics 窗口中的各种统计数字:总的周期数(200) 其中控制相关暂停17(8.5%)数据相关暂停12.0(6.0%)。

4.2.2附加forward部件

在Configuration 菜单中的设置,它们是:Symbolic addresses, Absolute Cycle Count 和。点击Enable Forwarding相应菜单项后,在它的旁边将显示一个小钩。

在定向技术存在的情况下Statistics 窗口中的各种统计数字:总的周期数158其中控制相关暂停17(10.76%)数据相关暂停12.0(7.59%)。

在定向技术不存在时候,控制相关暂停和数据相关暂停仍然是同样的值,总的模拟周期数增加到200。所以定向技术带来的加速比:

200 / 158 = 1.266

DLXforwarded比DLXnot forwarded 快26.6%。

4.2.3增加浮点运算部件

点击Floating Point Stages,进入后按下图的方式进行选择:

运算结果如下:

相关文档
最新文档