首页 考试资料幻灯片工程技术公务员考试小学教学中学教学大学教学外语资料
46《计算机体系结构》第三次实验 WinDLX流水线实验


实验三

WinDLX 流水线实验

王宇航

安全 0901 班

09283020

实验三

WinDLX 流水线实验

1 实验目的:
通过本实验,加深对结构相关、数据相关和指令调度的理解,了解结构相关对 CPU 性能 的影响, 掌握如何使用定向技术来减少数据相关带来的暂停, 了解指令调度技术对 CPU 性能 改进的好处。

2 实验内容:
用 WinDLX 模拟器进行结构相关的分析
1、生成 structure.s 程序。用 WinDLX 模拟器运行该程序。 2、通过模拟,找出存在结构相关的指令对,以及导致结构相关的部件。 3、记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分 比。

用 WinDLX 模拟器分析数据相关
1、生成 data.s 程序。 2、通过 Configuration 菜单中的选项,设定在不采用定向技术的情况下,用 WinDLX 模拟 器运行程序 data_d.s。 记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数, 计算暂停时钟周期数占总执行周期数的百分比。 3、在采用定向技术的情况下,用 WinDLX 模拟器再次运行程序 data_d.s。记录数据相关 引起的暂停时钟周期数以及程序执行的总时钟周期数, 计算暂停时钟周期数占总执行周期数 的百分比。

用 WinDLX 模拟器分析指令调度
1、生成 sch-before.s 及 sch-after.s 程序。 2、通过 Configuration 菜单中的选项,将除法单元数设置为 3,将加法﹑乘法﹑除法的延 迟设置为 3 个时钟周期。 3、用 WinDLX 模拟器运行调度前的程序 sch-before.s 。记录程序执行过程中各种相关 发生的次数以及程序执行的总时钟周期数。 4、 WinDLX 模拟器运行调度后的程序 sch-after.s , 用 记录程序执行过程中各种相关发 生的次数以及程序执行的总时钟周期数。

1

综合实验(习题 3.4)
在 WinDLX 上运行如下代码序列: LOOP: LW R1,0(R2) ADDI R1,R1,#1 SW 0(R2),R1 ADDI R2,R2,#4 SUB R4,R3,R2 BNEZ R4,LOOP 其中:R3 的初值是 R2+396。假设:在整个代码序列的运行过程中,所有的存储器访问 都是命中的, 并且在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器文件 “定向” 。 1、在没有任何其他定向(或旁路)硬件的支持下,假设采用排空流水线的策略处理分支指 令,且所有的存储器访问都是命中 Cache,那么执行上述代码需要多少个时钟周期? 2、假设该流水线有正常的定向路径,且采用预测分支失败的策略处理分支指令,所有的存 储器访问都命中 Cache,那么执行上述代码需要多少个时钟周期? 3、假设该流水线有正常的定向路径和一个单周期延迟分支, 请对该循环中的指令进行调度, 但是不能增加指令的条数。计算执行上述代码所需要的时钟周期数。

3 实验过程:
用 WinDLX 模拟器进行结构相关的分析 实验过程:
用 WinDLX 打开之前编写好的 structure.s 程序,单步执行,查看 Clock Cycle Diagram 窗 口中的变化:

可以看出指令“ADDI R2, R2, #8 ”和指令“LD

F0, 0(R2)”发生结构冲突。

2

可以看出“ADDI R2, R2, #8”“ADDI 、 R3, R3, #8” 和“SUBI R5, R5, #1”这三 条指令和“ADDD F4, F0, F2”存在结构相关。 导致结构相关的部件是存储数据和指令的存储器部件。 通过单步执行可以在 code 窗口中观察到程序的 LOOP 段共循环了 10 次, 而且上述的因 结构冲突引起暂停的指令都是在 LOOP 循环中。所以 程序执行完毕后,因结构冲突引起的暂停周期数为 2× 10=20, 由图 3 可知, 程序总共执行了 117 个时钟周期。 所以暂停时钟数占总执行周期的百分比为:20/117 = 17.09 %。

结构相关对 CPU 性能的影响及解决结构相关的方法:
上述四对指令在流水线中重叠执行时产生了对存储器访问的资源冲突,即结构相关问 题。上述 WinDLX 的执行过程采用了流水化功能单元的解决办法来解决结构相关,CPU 产生 了暂停周期,使流水线的性能下降。且暂停周期占总执行周期的百分比还比较大,是一个不 容忽视的问题。 解决结构相关通常需要采用流水线功能单元的方法或资源重复的方法。 既然流水线功能 单元的方法引入的暂停影响了流水线的性能, 可以考虑采用资源重复的方法, 即在流水线机 器中设置相互独立的指令存储器和数据存储器,也可将 Cache 分割成指令 Cache 和数据 Cache,这样就能够很好的消除结构相关。但是这样做会带来很大的硬件开销,对流水线机 器而言, 如果要在每个时钟周期内, 能够支持取指令操作和对数据的存储访问操作同时进行, 而又不发生结构相关, 那么存储总线的带宽必须要加倍。 所以在解决该问题时要在性能和开 销两方面进行权衡。

用 WinDLX 模拟器分析数据相关 实验过程:
用 WinDLX 打开之前写好的 data_d.s 程序,配置 Configuration 菜单中的选项,设定不采 用定向技术。 记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数, 结果如下:
3

可以看出,在不采用定向技术的情况下,data_d.s 程序总过执行了 202 个时钟周期,其 中由数据相关引起的暂停周期为 104 个,占总执行周期的 51.48%。 配置 Configuration 菜单中的选项,设定采用定向技术。记录数据相关引起的暂停时钟 周期数以及程序执行的总时钟周期数,结果如下:

可以看出,采用定向技术之后,data_d.s 程序总过执行了 128 个时钟周期,其中由数据 相关引起的暂停周期为 30 个,占总执行周期的 23.44%。

总结:
由上述记录可知,通过定向技术,减少了数据相关所引起的暂停周期的数量,缩短了程 序的执行周期,整个性能是原来的 1.58 倍。

4

用 WinDLX 模拟器分析指令调度 实验过程:
通过 Configuration 菜单中的选项,将除法单元数设置为 3,将加法﹑乘法﹑除法的延迟 设置为 3 个时钟周期。用 WinDLX 模拟器运行调度前的程序 sch-before.s 。记录程序执 行过程中各种相关发生的次数以及程序执行的总时钟周期数。结果如下:

可以看出,sch-before.s 程序执行的总时钟周期数为 31,总暂停周期数为 16,其中 写后读相关(RAW)暂停周期为 9 个,Trap 暂停周期为 7 个。 用 WinDLX 模拟器运行调度前的程序 sch-after.s 。记录程序执行过程中各种相关发 生的次数以及程序执行的总时钟周期数。结果如下:

5

可以看出,sch-after.s 程序执行的总时钟周期数为 25,总暂停周期数为 9,其中写 后读相关(RAW)暂停周期为 3 个,Trap 暂停周期为 6 个。

3y三亿文库 scdrt.com 包含各类专业文献、行业资料、高等教育、外语学习资料、中学教育、应用写作文书、生活休闲娱乐、各类资格考试、幼儿教育、小学教育、《计算机体系结构》第三次实验 WinDLX流水线实验等内容。

12

 


 

  【Top

最新搜索

 

计算机体系结构实验一_IT/计算机_专业资料。计算机系统结构实验实验一:WINDLX 模拟...五、实验作业请写出 DLX 流水线第五个周期---第十个周期的 code 子窗口, Clo...

暂无评价|0人阅读|0次下载|举报文档北邮计算机系统结构实验报告-实验一到五-WINDLX模拟器_电脑基础知识_IT/计算机_专业资料。计算机体系结构实验报告 北京...

计算机体系结构实验报告_计算机软件及应用_IT/计算机_专业资料。Cache 性能分析,...(5)用WinDLX运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行的总...

计算机体系结构实验报告实验题目:熟悉 WinDLX 的使用 日期:2014.4.16 Email: 实验目的: 通过本实验,熟悉 WinDLX 模拟器的操作和使用,了解 DLX 指令集结构及其 ...

《计算机体系结构》第三次实验 WinDLX流水线实验_工学_高等教育_教育专区。《计算机体系结构》课程必做实验实验报告,内含全部程序代码。...