计算机系统结构实验报告_第1页
计算机系统结构实验报告_第2页
计算机系统结构实验报告_第3页
计算机系统结构实验报告_第4页
计算机系统结构实验报告_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机系统结构实验报告一.流水线中的相关实验目的:1 .熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;2 .加深对计算机流水线基本概念的理解;3 .进一步了解DLX基本流水线各段的功能以及基本操作;4 .加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;5 .了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。实验平台:WinDLX模拟器实验内容和步骤:1 .用WinDLX模拟器执行下列三个程序:求阶乘程序fact.s求最大公倍数程序gcm.s求素数程序prim.s分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,

2、观察CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。2 .用WinDLX运行程序structure_d.s,通过模拟找出存在资源相关的指令对以及导致资源相关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;论述资源相关对CPU性能的影响,讨论解决资源相关的方法。3 .在不采用定向技术的情况下(去掉Configuration菜单中EnableForwarding选项前的勾选符),用WinDLX运行程序data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。在采用定向技术的情况下(勾

3、选EnableForwarding),用WinDLX再次运行程序data_d.s。重复上述3中的工作,并计算采用定向技术后性能提高的倍数。1 .求阶乘程序用WinDLX模拟器执行求阶乘程序fact.s。这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。实验结果:在载入fact.s和input.s之后,不设置任何断点运行。a不采用重新定向技术,我们得到的结果Tot-zil:HE匚executed.IDexecutedby145Instructionh.2 Instructionfscurren

4、tinFpeiri已.Stalls:RAWstdk53阻4stofallCycles)WAWstalls;U口口口XofallCycles8truclural对als;0(0口口,ofalCycles)Controlstdb:Z5(1053ofalCycles)Trap*Uk;125.Q够ofallCycles)TqUI:90Stalls)(33.14allCycles)b.采用定向技术,我们得到的结果:Totil:215Cycle(slexecutedIDexecited.145lntruction(3)-2lrKtnjctionsjcurrenlipinPipeline.Stalls:RA

5、Vstails.1?7.91ofallCvcIesLthereofLDs(alk3C1Z65oFRAWslsBrrtth/Jumpstalls;317.E睽ofRAWMM*Floatingpointstalk11(G-70S;ofRAWdel亩WAWstalls:0(O.OOSofallCyclesShucluralsialb;0U口口总nfallCyclesControlstalls:25(11,632:ofallCycles)Trapstate:12(55喀ofdlCyclesTotal;54StalM匹1绘oUISclw)从上面的数据我们可以看出定向的作用:在定向技术存在的情况下Stat

6、istics窗口中的各种统计数字:总的周期数(215)和暂停数(17RAW,25Control,12Trap;54Total)在定向技术不存在时候,控制暂停和Trap暂停仍然是同样的值,而RAW暂停从17变成了53,总的模拟周期数增加到236。所以定向技术带来的加速比:236/215=1.098DLXforwarded比DLXnotforwarded快9.8%2 .数据相关先给出一个存在数据相关的程序:LHIR2,(A16)&0xFFFFADDUIR2,R2,A&0xFFFFLHIR3,(B16)&0xFFFFADDUIR3,R3,B&0xFFFFloop:LWR1,0(R2)ADDR1,R1

7、,R3SW0(R2),R1LWR5,0(R1)ADDIR5,R5,#10ADDIR2,R2,#4SUBR4,R3,R2BNEZR4,loopTRAP#0A: .word0,4,8,12,16,20,24,28,32,36B: .word9,8,7,6,5,4,3,2,1,0没有采用定向技术时运行该程序:得到Fotal;刘2Ccle(3)日旭皿t&dIDaiBCutecIby85|n&tivJctian(.C: Instruction(5)currenlljinPipeline.Stalls;RAWstalls:104(51.ofallCycles)WAWstalls:0(0.005allCyc

8、le?)Structuralstab:0口.口口尊ofalCycles)Contfd-34.461ofallCpctes)Trap对北:3(1.4鸣ofdlCyd?|Total:116$taHs(57.42ofallCycles程序执行了202个周期,10个数据相关引起的时钟周期RAWstall为104个。暂停时钟周期数占总执行周期数的百分比二51.48%采用定向技术时运行该程序:得到Total:12BCcle(s)executedIDesecutedbyB5lnstfuc(ion4二lnstruchQn(3)currentinPipeline.Stalls;RAWztals:30(23.44

9、ofallCvcte5tthereof:L口stalls:20(E6.57ofRAW加阿BranehZJumpstalls:10132.32ofRAWstallsFloatingpoinJstalls:0J.00ofRAWEtalls)WAV/stalls:口肛。吐ofallCyd65)Structuralstalls:C(0.00ofallCycles)Controlstalls:9(.03ofallOgles)Trap黜Ik;二(Z34ofallCycle?)T口闫:42Gldl(s)(32.01cfallCycles)程序执行了128个周期,共有6个数据相关引起的时钟周期RAWstall

10、为30个。暂停时钟周期数占总执行周期数的百分比=23.44%可见通过定向技术,减少了数据相关,缩短了程序的执行周期,整个性能为原来的1.57倍。3 .结构相关下面这段程序存在结构相关ADDIR5,R5,1SUBIR4,R4,1ANDR3,R3,R3XORR7,R7,R7ADDIR8,R8,1ADDIR9,R9,1MULTR1,R5,R4MULTR2,R3,R7执行之后得到的clockcycleprogrameStatistics::20。由同酬营必虱ID学。wtMby14InsbuctionkL5lr)箱电丽网。国作nWinPipeline,Stalls:RAWstals:0|口.口口之ofa

11、lCyclesJ,theieaF:LDstalls:0.侬OfRAWStalls)BranchAlunp芯国Ils:100ofFiAV/相图FlgiigpointOak0(000ofRAWftall$)WAV/stalls:0(0.00oFallCycles)Structijralstalls4(20.00ofalCycles:)Controlstalls:C(H口口考ofalCyclesIrgpstalk0(0,00ofMlCycle?Iotal:4Stall(s)(20DOofallCcleJ可见1个结构相关引起了4个stall,占总共20个CYCLE的20%为了避免结构相关,可以考虑采用

12、资源重复的方法,比如,在流水线机器中设置相互独立的指令存储器和数据存储器,也可以将CACHE分割成指令CACHE和数据CACHE。二.循环展开及指令调度实验目的:1 .加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解;2 .熟悉用指令调度技术来解决流水线中的数据相关的方法;3 .了解循环展开、指令调度等技术对CPU性能的改进。实验平台:WinDLX模拟器实验内容和步骤:1.用指令调度技术解决流水线中的结构相关与数据相关(1)用DLX汇编语言编写代码文件*.s,程序中应包括数据相关与结构相关(假设:加法、乘法、除法部件各有2个,延迟时间都是3个时钟周期)(2)通过Confi

13、guration菜单中的Floatingpointstages”选项,把加法、乘法、除法部件的个数设置为2个,把延迟都设置为3个时钟周期;(3)用WinDLX运行程序。记录程序执行过程中各种相关发生的次数、发生相关的指令组合,以及程序执行的总时钟周期数;(4)采用指令调度技术对程序进行指令调度,消除相关;(5)用WinDLX运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周期数;(6)根据记录结果,比较调度前和调度后的性能。论述指令调度对于提高CPU性能的意义。2.用循环展开、寄存器换名以及指令调度提高性能(1)用DLX汇编语言编写代码文件*.s,程序中包含一个循环次数为4

14、的整数倍的简单循环;(2)用WinDLX运行该程序。记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;(3)将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程序做相应的修改。然后对新的循环体进行寄存器换名和指令调度;(4)用WinDLX运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;(5)根据记录结果,比较循环展开、指令调度前后的性能。3)存在相关的程序1 .指令调度:首先,通过Configuration菜单中的Floatingpointstages”选项,把除法单元数设置为3,把加法、乘法、除法的延迟设置为3个时钟周期。给出调度前的程序sc

15、h_bef:.data.globalONEONE:.word1.text.globalmainmain:lff1,ONE;turndivfintoamovecvti2ff7,f1;bystoringinf71innopfloating-pointformatdivff1,f8,f7;moveY=(f8)intof1divff2,f9,f7;moveZ=(f9)intof2addff3,f1,f2divff10,f3,f7;movef3intoX=(f10)divff4,f11,f7;moveB=(f11)intof4divff5,f12,f7;moveC=(f12)intof5multff6,

16、f4,f5divff13,f6,f7;movef6intoA=(f13)Finish:trap0运行之后可以得到结果:Total:27executed.IDby13Instnjctiorf?).2lnrtruclion(s)cureritlpinPipeline.tells:RAWstalls:9(33.3葵ofaJICycles,thereof:LDstalk:1(11.morRAWstalbBranch/Jurrpstalls:0(0.00aFRAWstallsFloatingpointstdis:S(100.00ofRAWstalls)WAWstab;00,00%ofgcStructur

17、al式alls:0(D.OOZofdlCycles)Control期依0(000ofallCjjde5|Trap考值辰7(2532%ofelCycles)TdarE同伯卜tR口匕IJc知调度之后的程序sch_aft:.data.globalONEONE:.word1.text.globalmainmain:lff1,ONE;turndivfintoamovecvti2ff7,f1;bystoringinf71innopfloating-pointformatdivff1,f8,f7;moveY=(f8)intofldivff2,f9,f7;moveZ=(f9)intof2divff4,f11,

18、f7;moveB=(f11)intof4divff5,f12,f7;moveC=(f12)intof5addff3,f1,f2multff6,f4,f5divff10,f3,f7;movef3intoX=(f10)divff13,f6,f7;movef6intoA=(f13)Finish:trap0运行之后得到:Ictal:21Cydefs)eMDcdtsd.IDesiecUtedby121ristruGtionfs,2lrtEhuGlion(sjgwbti的inPipeline.Stalls;RA.W盘国M2(14.基窸otallCycles),thereof:LDstalls:1(33.3

19、3ofRAWstallsBrcnch/Jurnp标Q0.00抬MRAWstalsFloatingpointstalls;2(56.67ofRAW菩tdh)U/AWstalls:0(口口经ofallCyclesStructuralstalls:0(0,00SofallCycles)Controlstalls:00,005JQfdICycles)Trop就餐;6(28l57SofdlCE即Totl:9Stal(s|(42.SGUdlCycle可可以看出经过调度之后运行周期从27减少到21,而且减少了相关。2.循环展开:循环展开前的程序:LHIR2,(A16)&0xFFFFADDUIR2,R2,A&

20、0xFFFFLHIR3,(B16)&0xFFFFADDUIR3,R3,B&0xFFFFADDUR4,R0,R3NOPloop:SUBIR4,R4,#8SUBR5,R4,R2BNEZR5,loopTRAP#0A: .double1,2,3,4B: .double1,2,3,4运行结果:Ij|Gtaiistics-回Total:却Cycled附曰guDDSKecjted13Instructiorfs)2lnsuction(5currentlyinPipeline.Hardwarecotifiguration:Memerysize:32763By心1,requiredUy2fmuEXtafles:L

21、rgquiredCycles:15fdivEX-Stafles:1,requiredCycles:19Forvrdinge门口bkdtsiis;R4Wstdfe;4(13.33&曲东0IheroNLDstalls;叮口叩原ofRAWstalls)Branch/Jumpstalls:4(100.00%ofRAWstalls)Floatingpoint书图k:0(0.00ofRAW北)VAWstalk0(O.mofallCyclesStructuralstalls-0(000tofallCjides)Contrailstalls-3(100苍ofdl卬d制7rapttails;3(10.00ofalCycles)Total:105旧厕6工33,ofallCycles)循环展开后的程序:LHIR2,(A16)&0xFFFFADDUIR2,R2,A&0xFFFFLHIR3,(B16)&0xFFFFADDUIR3,R3,B&0xFFFFADDUR4,R0,R3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论