北邮计算机系统结构实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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,进入后按下图的方式进行选择:
运算结果如下: