下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验二循环展开及指令调度一、实验目的加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解;熟悉用指令调度技术来解决流水线中的数据相关的方法;了解循环展开、指令调度等技术对CPU性能的改进。二、实验平台装有win7操作系统的电脑一台、WinDLX模拟器三、实验内容和步骤用指令调度技术解决流水线中的结构相关与数据相关用DLX汇编语言编写代码文件*.s,程序中应包括数据相关与结构相关(假设:加 法、乘法、除法部件各有2个,延迟时间都是3个时钟周期)通过Configuration菜单中的“Floating point stages 选项,把加法、乘法、除法部件的个数设置为2个,把延迟
2、都设置为3个时钟周期;用WinDLX运行程序。记录程序执行过程中各种相关发生的次数、发生相关的指 令组合,以及程序执行的总时钟周期数;采用指令调度技术对程序进行指令调度,消除相关;用WinDLX运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行 的总时钟周期数;根据记录结果,比较调度前和调度后的性能。论述指令调度对于提高CPU性能的 意义。用循环展开、寄存器换名以及指令调度提高性能用DLX汇编语言编写代码文件*.,程序中包含一个循环次数为4的整数倍的简单 循环;用WinDLX运行该程序。记录执行过程中各种相关发生的次数以及程序执行的总 时钟周期数;将循环展开3次,将4个循环体组成的代
3、码代替原来的循环体,并对程序做相应的 修改。然后对新的循环体进行寄存器换名和指令调度;用WinDLX运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执 行的总时钟周期数;根据记录结果,比较循环展开、指令调度前后的性能。四、预备知识WinDLX模拟器的相关知识。详见相关的文档。复习和掌握教材中相应的内容循环级并行性指令调度循环展开寄存器换名五、实验结果指令调度:首先,通过Configuration菜单中的“Floatingpoint stages选项,把除法单元数设置为3, 把加法、乘法、除法的延迟设置为3个时钟周期。给出调度前的程序sch_bef:.data,global ONEON
4、E: .word 1.text.global mainmain:lf f1,ONE ;turn divf into a movecvti2f 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
5、=(f12) into f5multf f6,f4,f5divf f13,f6,f7 ;move f6 into A=(f13)Finish:trap 0运行之后可以得到结果:Total:27 Cycle(s) executed.ID executed by 12 Instruction(s).2 lnstruction(sj currently in Pipeline.tails:RAW stalls: 9 (33.33 of all Cvcles, thereof:ILD stalls: 1RAW stalls)Branch/Jump stalls: 0 (0.00 of RAW stal
6、ls)Floating point stalls: 0 (100.00 of RAW stallsWAW stalls: 0 皿口宾 of all CvclesStructural stalls: 0 (0.00 of all CvclesControl stalls: 0 (0.00 of all Cycles)Trap stalls: 7 (25.92 of all Cycles)Total: 16Stall(s) (59.26: of all Cycles)调度之后的程序sch_aft:.data,global ONEONE: .word 1.text.global mainmain:l
7、f f1,ONE ;turn divf into a movecvti2f 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 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
8、f13,f6,f7 ;move f6 into A=(f13)Finish:trap 0运行之后得到:Total:21 Cvcle(s) executed.ID executed by 12 Instruction(s).2 Instructionfsj currently in Pipeline.Stalls:RAW stalls: 3 (14.20 of all Cycles), thereof:ILD stalls: 1 (33.33: of RAW stalls)Branch/Jump stalls: 0 (0.00 of RAW stallsFloating point stalls
9、: 2 (66.67 of RAW stalls)WAW stalls: 0 (0.00 of all Cycles)Structural stalls: 0 (0.00 of all Cycles)Control stalls: 0 (0.00 of all Cycles)T rap stalls: 6 (20.57 of all CyclesTotal: 9 Stallfs (42.06 of all Cycles)可以看出经过调度之后运行周期从27减少到21,而且减少了相关。循环展开:循环展开前的程序:LHI R2, (A16)&0 xFFFFADDUIR2, R2, A&0 xFFFF
10、LHIR3, (B16)&0 xFFFFADDUIR3, R3, B&0 xFFFFADDUR4, R0, R3NOPloop:SUBI R4, R4, #8SUB R5, R4, R2BNEZ R5, loopTRAP #0A:.double 1, 2, 3, 4B:.double 1, 2, 3, 4运行结果:Statistics_=_Total:30 Cycle(s) executed.ID executed by 19 Instruction(s).2 Instructionfs currently in Pipeline.I Hardware conf igurat ion:Memo
11、ry size: 32768 BtesfaddEX-Stages: required Cycles: 2fmulEX-Stages:required Cycles: 5fdivEX-Stages:required Cycles: 19Forwarding enabled.Stalls:RAW stalls: 4 13.33% of all Cycles), thereof:LD stalls: 0 (0.00: of RAW stalls)Branch/Jump stalls: 4 (100.00 of RAW stalls)Floating point stalls: 0 0.00 of R
12、AW stalls)WAW stalls: 0 0.00: of all Cycles)Structural stalls: 0 0.00 of all Cycles)Control stalls: 3 10.00 of all Cycles)循环展开后的曲I: 3 10.00% of all CycleslhiT 昭:(A:fi16)&0 xFF跄茶如3II CyclesADDUI R2, R2, A&0 xFFFFLHI R3, (B16)&0 xFFFFADDUI R3, R3, B&0 xFFFFADDU R4, R0, R3 TOC o 1-5 h z SUBIR4, R4,#8SU
13、BIR4, R4,#8SUBIR4, R4,#8SUBIR4, R4,#8TRAP #0A:.double 1, 2, 3, 4B:.double 1, 2, 3, 4运行结果:|. Statistics | 匚Total:14 Cvcle(s) executed.ID executed by 10 Instruction(s).2 Instruction(s) currently in Pipeline.Hardware conf iguration:Memory size: 32768 BtesfaddEX-Stages: 1, required Cycles: 2fmulEX-Stages: 1required Cycles: 5fdivEX-Stages: 1, required Cycles: 19Forwarding enabled.Stalls:RAW stalls: 0 (0.00 of all Cycles), thereof:LD stalls: 0(0.00 of RAW stalls)Branch/Jump stalls: 0 (0.00% of RAW stalls)Floating point stalls: 0 0.00 of RAW stalls)WAW stalls: 0 (0.00 of all Cycles)可以看出经过循环展开之后 o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年云南省景洪市高一化学上册期末考试模拟考试卷及完整答案【名校卷】
- 2026年浙江省临安市高三历史上册期末考试试卷(重点)附答案
- 深圳光明 2026 年基层治理岗公务员招录测评试题 招聘 8 人
- 校长在九年级月考质量分析会上讲话:课要一节一节地抓学生要一个一个地带
- 新疆克拉玛依克拉玛依区 2026 年油田石化配套辅助岗入职综合考卷 招聘 56 人
- 胜任力素质图谱构建指导人才发展若干措施
- 亳州利辛 2026 纺织服装加工岗入职综合考卷 招聘 53 人
- 江西贵溪 2026 年铜冶炼配套辅助岗入职理论考卷 招聘 73 人
- 许昌魏都仓库理货员招募 28 人无需工作经验
- 四川南充阆中老观 2026 古镇文旅管护岗公务员招录理论考卷 招聘 4 人
- 《人工智能 数据集质量评估要求》
- 漏水维修知识培训课件
- T/CNSS 006-2020学龄前儿童集体餐营养要求
- 3.2代数式的值教学设计人教版数学七年级上册
- 露天矿山环保操作规范培训课件
- 《WPS AI智能办公应用大全》全套教学课件
- 高三拼搏班会课件
- 多病共存的慢病管理课件
- 职业健康粉尘防护培训
- DB32-T 5082-2025 建筑工程消防施工质量验收标准
- 易见股份财务舞弊动因及后果研究
评论
0/150
提交评论