版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机系统结构实验报告一. 流水线中的相关实验目的:1. 熟练掌握 WinDLX 莫拟器的操作和使用,熟悉 DLX 旨令集结构及其特点;2. 加深对计算机流水线基本概念的理解;3. 进一步了解 DLX 基本流水线各段的功能以及基本操作;4.加深对数据相关、结构相关的理解,了解这两类相关对CPI 性能的影响;5.了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。实验平台:Win DLX 模 拟器实验内容和步骤:1.用 WinDLX 模拟器执行下列三个程序:求阶乘程序 fact.s求最大公倍数程序gcm.s求素数程序 prim.s分别以步进、连续、设置断点的方式运行程序,观察程
2、序在流水线中的执行情况,观察CPI 中寄存器和存储器的内容。熟练掌握Win DLX 勺操作和使用。2.用 WinDLX! 行程序 structure_d.s,通过模拟找出存在资源相关的指令对以及导致资源相关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;论述资源相关对CPI 性能的影响,讨论解决资源相关的方法。3.在不采用定向技术的情况下( 去掉 Configuration菜单中 Enable Forwarding选项前的勾选符 ) ,用 WinDLX!行程序 data_d.s 。记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期
3、数占总执行周期数的百分比。在采用定向技术的情况下( 勾选 Enable Forwarding) ,用 WinDLX 再次运行程序 data_d.& 重复上述 3 中的工作,并计算采用定向技术后性能提高的倍数。1. 求阶乘程序用 WinDLX 模拟器执行求阶乘程序fact.s 。这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。该程序中调用了input.s 中的输入子程序,这个子程序用于读入正整数。实验结果:在载入 fact.s 和 input.s 之后,不设置任何断点运行。a 不采用重新定向技术,我们得到的结果Total :Cycle($ execut
4、ed.ID executed bp145 lnshuctiori($)-2 Instruction(s) currentlyin Pipeline.叮叮小文库Stalls :RAW 泅 Is: 53 (22.46 of all Cycles)WAW stalls:0 (0. 00 of all Ccle)Stiucturalstalk 0 (OLDO of all CyclesControl stalls:25 (1(159%of dl CdesjTrap stals 12 5L08of all Cycles)Total : 90 Stall(s) (30 14 of all Cycles)b
5、.采用定向技术,我们得到的结果:Total :21 5 Cycle(s) executedID ewecuted by145 lnebuclion(*).2 Instruction(s) currentin Pipeline.Stalls:RAW stalk 1 ? (/.91 cf all Cycles), thereof:LD stalls: 3 (17.65X of RAW stallsBranch/Jump3 (17.65 of RAW stdhFloating pointstalls : 11(64.70 當 of RAWWAW stalls:0 (0.00 of all Cycle
6、s)Slructural wtallw:0 O.CO of all Cycles)Control stalls : 25 (11.63 ot all CycledTrap stalls: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变成
7、了53 , 总的模拟周期数增加到236 。所以定向技术带来的加速比:236 / 215 = 1.098DLX forwarded 比 DLX not forwarded快 9.8% 。2. 数据相关先给出一个存在数据相关的程序:LHI R2, (A>>16) & 0xFFFFADDUI R2, R2, A & 0xFFFFLHI R3, (B>>16)&0xFFFFADDUI R3, R3, B&0xFFFFloop:LW R1,0 (R2)ADD R1, R1, R3SW 0(R2), R1LW R5, 0 (R1)ADDI R5, R
8、5, #10ADDI R2, R2, #4SUB R4, R3, R2BNEZ R4, loopTRAP #0A: .word 0, 4, 8, 12, 16, 20, 24, 28, 32, 36B: .word 9, 8, 7, 6, 5, 4, 3, 2, 1,0没有采用定向技术时运行该程序:得到欢迎有需要的朋友下载!2叮叮小文库rotal :202 Cicle($) executed.ID execLJled byEI5 Instruction(s).2 lnstruction(s currentlyin Pipeline.StalIs :RAW 紡瞳 104 (51 4 眈 af a
9、ll CdesWAW atolls:0 (0.00 of all CyclesStructural 躺 11$ : 0 (J.OO of all Cycles)Contirol stalls:9 (4 4E 蛊 of al Cycles)Trap stak:3 (1 .48% of all CyclesTo 怕 I: 116 Stall(s) (57.42 of oil Cycles 程序执行了202 个周期, 10 个数据相关引起的时钟周期RAW stall 为 104 个。暂停时钟周期数占总执行周期数的百分比=51.48%采用定向技术时运行该程序:得到Total:12S Cycle$) e
10、xecutedID executed by 85 Iri2hruction(s).2 Inskuctionbi cuirentlyin Pipeline.Stalls:RAWstk 30(23.443 : dal Cycles), thereofLD 站憑 : 20 (66.67of RAW 期 lg) BranchZJump stalls:1D (33.33 of RAW 奴 all$Floating point stall: 0 (0.00 of RAW sials)WAW slab:0 (0 00 d all Cycles)Structural stalls0 (0 00 of al C
11、ycles)Cortral stalls: 9 (/.03 of cill Cycles)Tiap stalls-3 (2.34 of all ClesTotal: 42 Stal|s) (J2.81 of al Cycles)程序执行了128 个周期,共有6 个数据相关引起的时钟周期RAW stall 为 30 个。暂停时钟周期数占总执行周期数的百分比=23.44%可见通过定向技术,减少了数据相关,缩短了程序的执行周期,整个性能为原来的1.57 倍。3. 结构相关 下面这段程序存在结构相关ADDI R5, R5, 1SUBI R4, R4, 1AND R3, R3, R3XOR R7, R7
12、, R7ADDI R8, R8, 1ADDI R9, R9, 1MULT R1,R5,R4MULT R2,R3,R7执行之后得到的clock cycle programeIrBlrucliare/ ?1 阴: -旧卜日丨 " II 一" tI 巳厂 “I°t 舟卜电 I " I * t * r 彳 r 彳 I 彳 II addi 石托血 1|IF |IDBErrMEMTB|IsubirlAjOH:|_ IF | ID EX* MEM | WPand r3j3j3:| IF | ID | inl V | MEM |nor r7j7j?:| 1 卜 | ID
13、 L ” s |z ili'addi r? 油血 1:| IF | ID | iiw | MEM | VJE |addi 占油血 1: IF | ID | in 段 | MEM |卫鸟!rrdt rlj5j4?|_ L 血imulE 凶 1J|MEM W厂rrdt r2j3j?:IFID_|丸 MEM V/Eimu 1欢迎有需要的朋友下载!3叮叮小文库Statistics:total :20 Cycle($) eKecuted.ID executed14 Instructior(s).5 lntruction($) currentlvin Pipeline.Stalls:RAW sta
14、lls:0 (0.00 of all Cycles,thereof:LD shlls: 0(0.00 d RAW stalls)BranchAlump stalls: 0 (0 00 of RAW 咖 ll$Floating pointstalls: 0 (0L0DSof RAW stalls)WAW stalls0 0.00S ; d all Cycles)Structural 旳胚: 4 (20.00 of all Cycles)Control stalk:Q (0 00 of al Cycles)Trp stalls: 0 (0.00 of all Cycles)I' otal:
15、 4 StaKsJ 20.00 of all Cycles)可见 1 个结构相关引起了4 个 stall ,占总共 20 个 CYCLE 的 20%为了避免结构相关,可以考虑采用资源重复的方法,比如,在流水线机器中设置相互独立的指令存储器和数据存储器,也可以将CACHE 分割成指令 CACHE 和数据 CACHE 。二. 循环展开及指令调度实验目的:1. 加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解;2. 熟悉用指令调度技术来解决流水线中的数据相关的方法;3.了解循环展开、指令调度等技术对CPI 性能的改进。实验平台:WinDLX 模拟器欢迎有需要的朋友下载!4叮叮小
16、文库实验内容和步骤:1 ?用指令调度技术解决流水线中的结构相关与数据相关( 1 ) 用 DLX 汇编语言编写代码文件 *.s,程序中应包括数据相关与结构相关( 假设:加法、乘法、除法部件各有2 个,延迟时间都是 3 个时钟周期 )(2)通过 Configuration菜单中的Floating point stages'选项,把加法、乘法、除法部件的个数设置为 2 个,把延迟都设置为 3 个时钟周期;(3)用如 " DLX 运行程序。记录程序执行过程中各种相关发生的次数、发生相关的指令组合,以及程序执行的总时钟周期数;(4) 采用指令调度技术对程序进行指令调度,消除相关;( 5
17、 运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周期数;(6)根据记录结果,比较调度前和调度后的性能。论述指令调度对于提高CPU 性能的意义。2.用循环展开、寄存器换名以及指令调度提高性能(1)用 DLX 汇编语言编写代码文件 *.s, 程序中包含一个循环次数为 4 的整数倍的简单循环;(2运行该程序。记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;(3)将循环展开 3 次,将 4 个循环体组成的代码代替原来的循环体,并对程序做相应的修改。然后对新的循环体进行寄存器换名和指令调度;(4运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数
18、;(5)根据记录结果,比较循环展开、指令调度前后的性能。3)存在相关的程序1.指令调度:首先,通过 Configuration 菜单中的白 oating point stages"选项,把除法单元数设置为3, 把加法、乘法、除法的延迟设置为3 个时钟周期。给出调度前的程序sch_bef:.data.global ONEONE: .word 1.text.global mai nmain:lf f1,ONE ;turn divf into a movecvti2f f7,f1 ;by stori ng in f7 1 innop ;float in g-po int formatdiv
19、f 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=(f13)Fi nish:欢迎有需要的朋友下载!5叮叮小文库trap 0运行之后可以得到结果:Total :27 Cicle(s) exe
20、cuted.ID executed by12 lnshuction($._ lnstfuction|x currently in Pipeline.Stalls :RAW stalls:9 (33. 33 鬼 of all Cycles thereof:LD 治陆1 (11 1Uof RAW stalls)Branch Alump stalls: 0 0.00 龛 of RAW stals)Floatirg pointstalls: 8 1 QQlOOSfof RAW stals)WAW stalls : 0 (0.003 : of all CvcIeJStructural如 Ils : 0
21、(0.00 of all CycledConlrd stalls: 0 (0.00X of dl Cydes)Trap dale 1 (25L92% of dl 匚 yck 制Total: l6Stall(s) (59.26 of all Cycles调度之后的程序sch_aft:.data.global ONEONE: .word 1.text.global mai nmain:lf f1,ONE ;turn divf into a movecvti2f f7,f1 ;by stori ng in f7 1 innop ;float in g-po int formatdivf f1,f8,
22、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)Fi nish:trap 0运行之后得到:'lota 丄21 CVC IB(S) executed.ID executed by12 I
23、nstruction($).2 Instruction(s) currentlyin Pipeline.StalIs:RAW 献 alb: 3 (14.2QK of al Cycles), lhereaf:LD stalk 1 (33 33 of RAW stalkBranch/Jump stak:0 (0.00% of RAW sialsFloating point sldk2 旧 6.67W of RAW stalls)WAW stalls: 0 (0 00 nF all CyclesStiuctural stalls:0 (0. 30S of all CyclesControl stal
24、ls:Cl (0.00 of all CyclesTrap stab:E (29157Xof dl CycledTotal: 9 Stdb) (42.BG% of all Cycles)欢迎有需要的朋友下载!6叮叮小文库可以看出经过调度之后运行周期从 27 减少到 21,而且减少了相关。2.循环展开:循环展开前的程序:LHIR2, (A>>16 )& OxFFFFADDUIR2, R2, A&0xFFFFLHIR3, (B>>16) &0xFFFFADDUIR3, R3, B&0xFFFFADDUR4, R0, R3NOPloop:SUB
25、IR4, R4, #8SUBR5, R4, R2BNEZR5, loopTRAP #0A: .double 1,2, 3, 4B: .double 1,2, 3, 4运行结果:Statistics一|Total :30 Cycled ecuted.ID executed bvI9ln$truction($).2 Instruction(s) currentlynn Pipeline.Hardware conf iguration:Memory size: 32768 Bytes faddEX-Stages: 1“required Cycles: 2 fmulEX-Shges: L requir
26、ed C>cle$: 5 fdivEX-Stagec: 1, required Cycles : 19 Forwarding enabled.Stalls:RAW sC 4 (1333 需 of all Cycles), thereof:LD stalls: 0 (0.00 of RAW stalls)Branch/Jump stalls: 4 (100. 00% of RAW ttek)Floating point stals:0 (0. 00 of RAW stall)WAW stalls0 D O 號 of all Cycles) Strudurd stalls:L (0 00K of all CycledControl tta*3(10.00 of al Cycles) Trap stalls; 3(1O OOX of all Cycles) Total: 10 Stall(s) (33.33 of all Cycles)循环展开后的程序 :LHIR2, (A>>16 )& OxFFFFADDUIR2, R2, A&OxFFFFLHIR3, (B>>16) &0xFFFFADDUIR3, R3, B&0xFFFFADDUR4, R0, R3SUBIR4,R4, #8SUBIR4,R4, #8欢迎有需要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心电监护的操作及注意事项
- 导尿术操作并发症及导尿后护理
- 水风光一体化应急调度处置管理实施方案
- 四年级数学运算定律与简便计算练习题(每日一练共36份)
- 企业消息中台接入能力评估方案
- 腹腔镜下胆囊切除手术步骤
- 施工图预算审核资料归档方案
- 高边坡临边洞口防护施工措施
- 会议纪念礼品采购审批办法
- 阿姨入职体检审核规范
- 2026年上海市闵行区初三下学期二模数学试卷和答案
- (二模)南昌市2026届高三年级四月检测英语试卷(含答案)
- 2026福州鼓楼攀登信息科技有限公司招聘1人笔试历年参考题库附带答案详解
- 河南省活性炭码上换监管预警系统-20260415
- 2025年四川省省级机关公开遴选考试真题(附答案)
- TSG08-2026《特种设备使用管理规则》全面解读课件
- DLT 5035-2016 发电厂供暖通风与空气调节设计规范
- GB/T 2653-2008焊接接头弯曲试验方法
- GB 5009.266-2016食品安全国家标准食品中甲醇的测定
- FZ/T 52004-2007充填用中空涤纶短纤维
- 大型设备说明-涂胶显影机第1台
评论
0/150
提交评论