欢迎来到天天文库
浏览记录
ID:48451992
大小:2.23 MB
页数:27页
时间:2020-01-30
《计算机体系结构实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一流水线中的相关一.实验目的1.熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;2.加深对计算机流水线基本概念的理解;3.进一步了解DLX基本流水线各段的功能以及基本操作;4.加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;5.了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。二.实验平台WinDLX模拟器三.预备知识1.WinDLXWinDLX模拟器是一个图形化、交互式的DLX流水线模拟器,能够演示DLX流水线是如何工作的。该模拟器可以装载DLX汇编语言程序(后缀为“.s”的文件),然后单步、设断点或是连续执行该程序。CPU的寄
2、存器、流水线、I/O和存储器都可以用图形表示出来,以形象生动的方式描述DLX流水线的工作过程。模拟器还提供了对流水线操作的统计功能,便于对流水线进行性能分析。有关WinDLX的详细介绍,见WinDLX教程。2.熟悉WinDLX指令集和WinDLX源代码的编写3.复习和掌握教材中相应的内容(1)DLX基本流水线(2)流水线的结构相关与数据相关l结构相关:当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突时,将产生“结构相关”。l数据相关:当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能引起“数据相关”。(3)定向技术的主要思想:在发生数据相关时
3、,等待前面计算结果的指令并不一定真的马上就用到该计算结果,如果能够将该计算结果从其产生的地方直接送到其他指令需要它的地方,就可以避免暂停。四.实验内容及结果1.用WinDLX模拟器执行下列三个程序(任选一个):l求阶乘程序fact.sl求最大公倍数程序gcm.sl求素数程序prim.s分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。注意:fact.s中调用了input.s中的输入子程序。load程序时,要两个程序一起装入(都select后再点击load)。gcm.s也是如此。说明:此实验我们选择:求阶乘
4、程序fact.s1)用WinDLX模拟器执行求阶乘程序fact.s。2)程序的作用:这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。3)实验结果:i.分别以步进、连续、设置断点的方式运行程序图1.求阶乘程序fact.s运行统计数据步进方式运行图2求阶乘程序fact.s运行统计数据连续方式运行图3求阶乘程序fact.s运行统计数据连续方式运行ii.数据统计图1.1.4求阶乘程序fact.s运行统计数据图5求阶乘程序fact.s流水线执行情况图6求阶乘程序fact.s寄存器使用情况iii.定向
5、非定向分析在载入fact.s和input.s之后,不设置任何断点运行。A.不采用重新定向技术,我们得到的结果:B.采用定向技术,我们得到的结果:结果分析从上面的数据我们可以看出定向的作用:在定向技术存在的情况下Statistics窗口中的各种统计数字:总的周期数(215)和暂停数(17RAW,25Control,12Trap;54Total)在定向技术不存在时候,控制暂停和Trap暂停仍然是同样的值,而RAW暂停从17变成了53,总的模拟周期数增加到236。所以定向技术带来的加速比: S=236/215=1.098 因此:DLXforwarded比DLXnotforwarded快9.8%。
6、2.用WinDLX运行程序structure_d.s,通过模拟:l找出存在结构相关的指令对以及导致结构相关的部件;l记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;l论述结构相关对CPU性能的影响,讨论解决结构相关的方法。1)模拟结果:图2.1程序structure_d.s流水线执行过程图2.2程序structure_d.s运行统计信息2)结构相关i.如图,导致结构的部件:浮点数寄存器f4adddf0,f0,f4指令在译码阶段ID停滞1周期ii.如图导致结构相关的部件:ALUaddir2,r2,0x8指令在执行阶段intEX停滞1周期3)结果分析由资源相关引起的暂
7、停周期数为:30总执行周期数为:139暂停周期数占总执行周期数的百分比:21.58%分析:资源相关使相关指令在流水线上停滞,降低了执行效率。4)解决办法在合理的指令调度范围内,尽量避免执行重复的指令。尽量避免同一寄存器的频繁使用,若无法避免,则使用寄存器换名的方法。也可以考虑采用资源重复的方法,比如,在流水线机器中设置相互独立的指令存储器和数据存储器,也可以将CACHE分割成指令CACHE和数据C
此文档下载收益归作者所有