资源描述:
《系统结构实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、计算机系统结构实验报告实验一流水线的相关实验目的:1.熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;2.加深对计算机流水线基本概念的理解;3.进一步了解DLX基本流水线各段的功能以及基本操作;4.加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;5.了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。实验平台:WinDLX模拟器实验内容和步骤:一.用WinDLX模拟器执行下列三个程序:求阶乘程序fact.s求最大公倍数程序gcm.s求素数
2、程序prim.s分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。1、求阶乘程序fact.s(1)分别以步进、连续、设置断点的方式运行程序图1.1.1求阶乘程序fact.s运行统计数据步进方式运行图1.1.2求阶乘程序fact.s运行统计数据连续方式运行图1.1.3求阶乘程序fact.s运行统计数据连续方式运行(2)数据统计图1.1.4求阶乘程序fact.s运行统计数据图1.1.5求阶乘程序fact.s流水
3、线执行情况图1.1.6求阶乘程序fact.s寄存器使用情况2、求最大公倍数程序gcm.s图1.2.1求最大公倍数程序gcm.s运行统计数据图1.2.2求最大公倍数程序gcm.s流水线执行情况图1.2.3求最大公倍数程序gcm.s寄存器使用情况3、求素数程序prim.s图1.3.1求素数程序prim.s运行统计数据图1.3.2求素数程序prim.s流水线执行情况图1.3.3求素数程序prim.s寄存器使用情况二、用WinDLX运行程序structure_d.s,通过模拟找出存在资源相关的指令对以及
4、导致资源相关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;论述资源相关对CPU性能的影响,讨论解决资源相关的方法。图1.4.1程序structure_d.s流水线执行过程其中,有如下几种情况,产生了资源相关:(1)导致资源相关的部件:浮点数寄存器f4adddf0,f0,f4指令在译码阶段ID停滞1周期(2)导致资源相关的部件:ALUaddir2,r2,0x8指令在执行阶段intEX停滞1周期图1.4.2程序structure_d.s运行统计信息由资源相关引
5、起的暂停周期数为:30总执行周期数为:139暂停周期数占总执行周期数的百分比:21.58%分析:资源相关使相关指令在流水线上停滞,降低了执行效率。解决方法:在合理的指令调度范围内,尽量避免执行重复的指令。尽量避免同一寄存器的频繁使用,若无法避免,则使用寄存器换名的方法。三、在不采用定向技术的情况下(去掉Configuration菜单中EnableForwarding选项前的勾选符),用WinDLX运行程序data_d.s记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期
6、数占总执行周期数的百分比。图1.5.1不采用定向技术,程序data_d.s运行统计信息由数据相关引起的暂停时钟周期数为:104总执行周期数为:202暂停周期数占总执行周期数的百分比:51.48%在采用定向技术的情况下(勾选EnableForwarding),用WinDLX再次运行程序data_d.s。重复上述3中的工作,并计算采用定向技术后性能提高的倍数。图1.5.2采用定向技术,程序data_d.s运行统计信息由数据相关引起的暂停时钟周期数为:30总执行周期数为:128暂停周期数占总执行周期数
7、的百分比:23.44%通过这两个统计可以发现,在使用定向技术下运行程序指令将大幅降低数据相关发生的次数,这大幅提升了CPU的性能。实验二循环展开及指令调度实验目的:1.加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解;2.熟悉用指令调度技术来解决流水线中的数据相关的方法;3.了解循环展开、指令调度等技术对CPU性能的改进。实验平台:WinDLX模拟器实验内容和步骤:1.用指令调度技术解决流水线中的结构相关与数据相关(1)用DLX汇编语言编写代码文件*.s,程序中应包括数据相
8、关与结构相关(假设:加法﹑乘法﹑除法部件各有2个,延迟时间都是3个时钟周期)程序代码:.data.globalONEONE:.word1.text.globalmainmain:lff1,ONEcvti2ff7,f1nopdivff1,f8,f7divff2,f1,f7divff13,f2,f7divff10,f3,f7addff5,f12,f7addff3,f1,f2multff6,f4,f5Finish:trap0(2)通过Configuration菜单中的“Floatingpointsta