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

下载本文档

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

文档简介

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

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

3、rding ,用WinDLX再次运行程序data_d.s。重复上述3中的工作,并计算采用定向技术后性能提高的倍数。1.1.求阶乘程序用WinDLX模拟器执行求阶乘程序fact.s。这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。实验结果:在载入fact.s和input.s之后,不设置任何断点运行。a不采用重新定向技术,我们得到的结果Total:236 Cycle$ executed.ID executed by 145 In曲uctioM匐.2 In或ruction司currently i

4、n Pipeline.Stalls:RAW漏II*: 5322.4牌of dl Cycles)WAW stalls: 0 (0 00 of all Ccle?)Structural stalk 0 (OLDO of all QJCIBS)Control stah: 25 (1(159% of dl CdesjTrap stal 12 (5L08 of all Cycles)Total: 90 Stall国(3814X of all Cycles)b.采用定向技术,我们得到的结果:Total:215 Cycle(s) executed.ID executed b 145 In就ruction闰2

5、 Instruction(s) current in Pipeline.Stalls:RAW stalk 1 ? (/.91 cf all Cycles), thereof:LD stalls: 3 (17.65X af RAW stallsBranch/Jump stall散3 (17E5艺of RAW就戒Floating point stalls: 11 (64.70X of RAWWAW stalls: 0(0.00 of all Cycles)Structural就ellw 0 0.00 of all以I闵Control stalk: 25 (11.63 oJ all CycledTr

6、ap stalk: 12 (5.58 of al CyclesTotal: 54 SUll(s) 25.12 of all Qdet)从上面的数据我们可以看出定向的作用:在定向技术存在的情况下Statistics窗口中的各种统计数字:总的周期数(215)和暂停数(17 RAW, 25 Control, 12 Trap; 54 Total)在定向技术不存在时候,控制暂停和Trap暂停仍然是同样的值,而RAW暂停从17变成了53,总的模拟周期数增加到236。所以定向技术带来的加速比:236 / 215 = 1.098DLXforwarded比DLXnot forwarded快9.8%。2.2.数据

7、相关先给出一个存在数据相关的程序:LHI R2, (A16) & 0 xFFFFADDUI R2, R2, A & 0 xFFFFLHI R3, (B16)&0 xFFFFADDUI R3, R3, B&0 xFFFFloop:LW R1,0 (R2)ADD R1, R1, R3SW 0(R2), R1LW R5, 0 (R1)ADDI R5, R5, #10ADDI R2, R2, #4SUB R4, R3, R2BNEZ R4, loopTRAP #0A: .word 0, 4, 8, 12, 16, 20, 24, 28, 32, 36B: .word 9

8、, 8, 7, 6, 5, 4, 3, 2, 1,0没有采用定向技术时运行该程序:得到Fatal:202 Cicle($) executed.ID execLJled by EI5 Instruction(s).2 lnstruction(s currently in Pipeline.StalIs:RAW stalls: 104 (51 of g CyclesWAW stalls: 0 (0. 00 of all CyclesSUucUral stalls: 0 (J.OO of all Cycles)Control stalls: 9 (4 4GSf of al Cycles)Trap s

9、talls: 3 1.48% of all CyclesT otd: 11E; Stall(s) (57.42 of all Cycles程序执行了202个周期,10个数据相关引起的时钟周期RAW stall为104个。暂停时钟周期数占总执行周期数的百分比=51.48%采用定向技术时运行该程序:得到Total:128 Cycl&(s| executed.ID executed by 85 Instructionft2 ln$hu曲origj currently in Pipeline.Stalls:RAW stalls: 30 23.44卷of al Cycles), thereof:

10、LD ttals: 20 6E67艺of RAW st刑Bianch/Jump stalls 1033.3凝of RAW stallsFloating point stals: 0 (0 00% of RAW血IlsWAW stalls: 0 0 00 of all Cycles)Structural stale: 0 (0.00% of all Cycles)Control stalls: 9 7 03% of all Cycles)Trap砒dh: 3 (2.34 oJ all CyclesTotal: 42 Stalls (32.91 % of al Cycles)程序执行了128个周期

11、,共有6个数据相关引起的时钟周期RAW stall为30个。暂停时钟周期数占总执行周期数的百分比=23.44%可见通过定向技术,减少了数据相关,缩短了程序的执行周期,整个性能为原来的1.57倍。3.3.结构相关下面这段程序存在结构相关ADDI R5, R5, 1SUBI R4, R4, 1AND R3, R3, R3XOR R7, R7, R7ADDI R8, R8, 1ADDI R9, R9, 1MULT R1,R5,R4MULT R2,R3,R7执行之后得到的clock cycle programeIrBlrucliare!:崩 | 也 | 一口 | | 一旧I小I一日I一I小I一I丐I七

12、I一,I $ I丐II;I卫IL IIIIIIIIIIIIIIIIIIIaddi r5j5j&!-匚匚匚Iubir4jW :|_ IF | I。MEM | /andr3j3j3:|F | ID | int: | MEM | 3,HDFr7j7j?;| IF | ID MEH |皿 |liaddi r航1:| IF | ID | ini|MEM |W |addi占航1: IF | It) | inX | MEM |巡白!mJtrl站H IF ID|ImulE网1J| MEH W厂mJ r2j3j?:| IF|_ 心I$闭 IEU避1j MEM | WEStatistics:1口tail

13、:20 Cycle($) eKecuted.ID executed by 14 Instructior(s).5 In就ructicirtB currently in Pipeline.Stalls:RAW就前堂0 (0.00 of JI Cycles, thereof:LD迥临0 (0 00 of RAW敏a岫BranchAJump stJIs: 0 (Cl.Cl维of RAW stallsFloating point stals: 0 (0.00% of RAW stallsWAW stalls: 0 (0 00 of alll CyclesStructural stalls: 4 (2C

14、LOO% of all Cycles)_ iDntrol stalk: 0皿00X of all Cycles)I rap就alls: 0 (0 005; of all Cycles)T Qtal: 4 Sla峋(2(100您of al Cycles)可见1个结构相关引起了4个stall,占总共20个CYCLE的20%为了防止结构相关,可以考虑采用资源重复的方法,比方,在流水线机器中设置相互独立的指令存储器和数据存储器,也可以将CACHE分割成指令CACHE和数据CACHE。二.循环展开及指令调度实验目的:1.加深对循环级并行性、指令调度技术、循环展开技术以及存放器换名技术的理解;2.熟悉用指

15、令调度技术来解决流水线中的数据相关的方法;3.了解循环展开、指令调度等技术对CPIB能的改良。实验平台:WinDLX模拟器实验内容和步骤:1.用指令调度技术解决流水线中的结构相关与数据相关(1)用DLX汇编语言编写代码文件*.s,程序中应包括数据相关与结构相关(假设:加法、乘法、除法部件各有2个,延退时间都是3个时钟周期)(2)通过 ConfigurationConfiguration 菜单中的 FloatingFloating pointpoint stageSstageS 选项,把加法、乘法、除法部件的个数设置为2个,把延退都设置为3个时钟周期;(3)用WinDLX运行程序。记录程序执行过

16、程中各种相关发生的次数、发生相关的指令组合,以及程序执行的总时钟周期数;(4)采用指令调度技术对程序进行指令调度,消除相关;(5)用WinDLX运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周期数;(6)根据记录结果,比拟调度前和调度后的性能。 论述指令调度对于提高CPU性能的意义。2.用循环展开、存放器换名以及指令调度提高性能(1)用DLX汇编语言编写代码文件*.s,程序中包含一个循环次数为4的整数倍的简单循环;(2)用WinDLX运行该程序。记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;(3)将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程

17、序做相应的修改。然后对新的循环体进行存放器换名和指令调度;(4)用WinDLX运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;(5)根据记录结果,比拟循环展开、指令调度前后的性能。3)3)存在相关的程序1.1.指令调度:首先,通过Configuration菜单中的Floating point stages选项,把除法单元数设置为3,把加法、乘法、除法的延退设置为3个时钟周期。给出调度前的程序sch_bef:.data.global ONEONE: .word 1.text.global mainmain:lf f1,ONE ;turn divf into a mo

18、vecvti2f f7,f1 ;by storing in f7 1 innop ;floating-point formatdivf f1,f8,f7 ;move Y=(f8) into f1divf f2,f9,f7 ;move Z=(f9) into f2addf f3,f1,f2divf f10,f3,f7 ;move f3 into X=(f10)divf f4,f11,f7 ;move B=(f11) into f4divf f5,f12,f7 ;move C=(f12) into f5multf f6,f4,f5divf f13,f6,f7 ;move f6 into A=(f1

19、3)Finish:trap 0运行之后可以得到结果:TotalTotal: :27 Cicle(s) executed.IDID executedexecuted byby 1 12 lnshuction($._ lnstfuction|x currently in Pipelin已.Stalls:RAW褊卜:9 (33.33% of all Cyclesl thereof:LD stdk 1 (11 11tof RAW stalls)Brnch/Jump stalls: 0 tJ.COZ of RAW stalk)Floating point stals: B (100.00 of RAW

20、stallsWAW stls: 0 (0.00 of all Cycles)Structural褊Ik: Q (0.00V of al CycledControl stals: 0 (0.00% of all Cyde#)T rap stalls:7(25.92 of all CydesTotal: 16Stall(s) (59.26 of dl Cycles)调度之后的程序sch_aft:.data.global ONEONE: .word 1.text.global mainmain:lf f1,ONE ;turn divf into a movecvti2f f7,f1 ;by stor

21、ing in f7 1 innop floating-point formatdivf f1,f8,f7 ;move Y=(f8) into f1divf f2,f9,f7 ;move Z=(f9) into f2divf f4,f11,f7 ;move B=(f11) into f4divf f5,f12,f7 ;move C=(f12) into f5addf f3,f1,f2multf f6,f4,f5divf f10,f3,f7 ;move f3 into X=(f10)divf f13,f6,f7 ;move f6 into A=(f13)Finish:trap 0运行之后得到:To

22、tal21 CVCIB(S) executed.ID executed by 12 Instruction($).2 Instruction(s) currently in Pipeline.StalIs:RAW stalls: 3 (14.28 of al Cvcles), lher?oJ:LD stalls: 1 (33 33 of RAW stalkBfanch/Jump stale: 0 (0.00% of RAW sialsFloating point s沽Ils: 2 (66.67 of RAW stalls)WAW stalls: 0 (0.00 all CyclesStiuct

23、ural stale 0 0.0口在of all Cycles)Control stalls: Cl (0.00 of all CyclesTrap state: 6 (29157X of all CydeTold: 9 Stdh) (42.BG% of all Cycles)可以看出经过调度之后运行周期从27减少到21,而且减少了相关。2.2.循环展开:循环展开前的程序:LHI R2, (A16)&0 xFFFFADDUIR2, R2, A&0 xFFFFLHIR3, (B16)&0 xFFFFADDUIR3, R3, B&0 xFFFFADDUR4, R0,

24、 R3NOPloop:SUBIR4,R4, #8SUBR5,R4, R2BNEZ R5, loopTRAP#0A:.double 1,2, 3, 4B:.double 1,2, 3, 4运行结果:Statistics- I ITotal:30 Cyclefs executed.ID executed 19 lndruclior(t).2 lnstructian($j currently in Pipeline,Hardware configuration:Memory size: 3276S BytesfaddEX-Stages: L required Cycles: 2 fmulEX-S t

25、apes: L required Cycles: 5 tdivEX-Stages: L required Cycles: 13 Forwardingenabled.Stalis:RAW stalls: 4 13 33% of all Cycles), thereof: LD stalls: 0(0. m of RAW stalls) BrarichZJump stalls: 4 100.00% d RAW slalhFloating point stals: 0 (0.00 of RAW steh)WAW shlls: 0 (O OQS: of ell CycledStructural stalls: 0 (0.00 of all CyclesControl stalk 3 10.00 of al Cycles)Trap sUlls: 3 (10L0OX of all Cycles)T otal: 1033.33 of al Cycles)循环展开后的程序:LHIR2, (A16)&0 xFFFFADDUIR2, R2, A&0 xFFFFLHIR3, (B16)&0 xFFFFADDUIR3, R3, B&0 xFFFFADDUR4, R0, R3SUBIR4, R4, #8SUBIR4

温馨提示

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

评论

0/150

提交评论