




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机系统结构实验报告班级3班实验日期3.28实验成绩姓名王志刚学号23020112204884实验名称指令调度和分支延迟实验目的、要求实验目的: 加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解; 熟悉用指令调度技术来解决流水线中的数据相关的方法; 了解指令调度、循环展开等技术对CPU性能的改进。实验要求: 调度前的源代码(只需给出关键代码部分)注明各种相关的位置 调度后的源代码注明使用的策略并加以说明 调度前的测试数据 VS 调度后的测试数据 分析回答以下问题:当定向技术打开和关闭时结果是否有差异?Stall是否越少越好?实验内容、步骤及结果实验内容: 熟悉MIPSsim模拟器的操作和使用方法; 学习流水线、相关和冲突的知识; 完成实验教程中实验内容; 完成补充实验; 完成实验报告。实验步骤:(实验教材)实验步骤:1、 启动MIPSsim。2、 根据2.5节相关内容关于流水线的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义。3、 选择“配置”-“流水方式”选项;4、 用指令调度解决流水线中的数据冲突(1) 启动MIPSsim;(2) 用MIPSsim的“文件”“载入程序”选项加载schedule.s;(3) 关闭定向功能,“配置”“定向”;(4) 执行载入程序,通过查看统计数据与始终周期图,找出并记录程序执行过程中各种冲突的次数没发生冲突的指令组合以及程序执行的总周期数。结果:各冲突发生的次数:18次;发生冲突的指令组合:ADDIU $r1,$r0,56与LW $r2,0($r1);(发生RAW冲突)ADDIU $r1,$r0,56与ADD $r4,$r0,$r2;(发生结构冲突)ADD $r4,$r0,$r2与SW $r4,0($r1);(发生RAW冲突)LW $r2,0($r1)与SW $r4,0($r1);(发生结构冲突)SW $r4,0($r1)与LW $r6,4($r1);(发生结构冲突)LW $r6,4($r1)与ADD $r8,$r6,$r1;(发生RAW冲突)MUL $r12,$r10,$r1与ADD $r16,$r12,$r1;(发生RAW冲突)ADD $r16,$r12,$r1与ADD $r18,$r16,$r1;(发生结构冲突)ADD $r18,$r16,$r1与SW $r18,16($r1);(发生结构冲突和RAW冲突)SW $r18,16($r1)与LW $r20,8($r1);(发生结构冲突)LW $r20,8($r1)与MUL $r22,$r20,$r14;(发生RAW冲突)MUL $r22,$r20,$r14与MUL $r24,$r26,$r14;(发生结构冲突)程序执行的总时钟周期数:33(5) 采用指令调度技术对程序进行指令调度,消除冲突。将调度后的程序写入afer-schedule.s中。指令调度后程序:ADDIU $r1,$r0,ALW $r6,4($r1)ADD $r16,$r12,$r1LW $r2,0($r1)ADD $r8,$r6,$r1LW $r20,8($r1)MUL $r12,$r10,$r1ADD $r4,$r0,$r2MUL $r22,$r20,$r14ADD $r18,$r16,$r1SW $r4,0($r1)MUL $r24,$r26,$r14SW $r18,16($r1)(6) 载入after-schedule.s;(7) 执行该程序。观察程序在流水线中的执行情况,记录程序执行的总始终周期数。结果: (8)根据记录结果,比较调度前与调度后的性能,论述指令调度对与提高CPU性能的作用。经过指令调度后执行的时钟总周期数从33降低到19,停顿周期总数从17降到了3,说明通过指令调度技术减少了指令冲突的次数,大大提高了CPU的性能。5、 用延迟分支减少分支指令对性能的影响。(1) 启动MIPSsim。(2) 载入branch.s。(3) 关闭延迟分支功能,“配置”“延迟槽”(4) 执行程序,观察并记录发生分支延迟的时刻。(5) 记录执行改程序所需要的总时钟周期数。执行周期总数:38(6) 假设延迟槽为一个,对branch.s进行指令调度,然后保存到delayed-branch.s中。指令调度后程序:ADDI $r2,$r0,1024ADD $r3,$r0,$r0ADDI $r4,$r0,8loop: LW $r1,0($r2)ADDI $r1,$r1,1ADDI $r3,$r3,4SUB $r5,$r4,$r3BGTZ $r5,loopSW $r1,0($r2)ADD $r7,$r0,$r6(7) 载入delayed-branch.s。(8) 打开延迟分支功能。(9) 执行该程序,观察其时钟周期图。(10)记录执行该程序所用的总时钟周期数。结果:(11)对比上诉两种情况的时钟周期图;(12)根据记录结果,比较没采用延迟分支和采用了延迟分支的性能之间的不同,论述延迟分支对于条CPU性能的作用。答:从记录结果来看,在使用延迟槽后,在一定程度上减少了分支延迟,减少了总时钟周期数,在一定程度上提高了CPU的性能。补充实验步骤1: 通过配置菜单,把加法乘法除法部件的个数设置为2个,把延迟都设置为3个时钟周期; 用MIPS语言编写一段简单的程序 至少包含数据相关和结构相关 包含循环次数为4的倍数的循环程序为:.textmain:ADDIU $r1,$r0,16ADDIU $r4,$r0,8loop:ADDI $r1,$r1,1MUL $r2,$r1,$r1ADDIU $r4,$r4,-1BGTZ $r4,loopTEQ $r0,$r0 运行程序。记录程序执行过程中各种相关发生的次数、发生相关的指令组合,以及程序执行的总时钟周期数;。数据冲突次数:16次;结构冲突次数:9次;数据冲突组合:ADDI $r1,$r1,1与MUL $r2,$r1,$r1;ADDIU $r4,$r4,-1与BGTZ $r4,loop;结构冲突组合:ADDIU $r4,$r0,8与ADDI $r1,$r1,1;MUL $r2,$r1,$r1与ADDIU $r4,$r4,-1;(争用同一个译码器)程序执行的总时钟周期数:78补充实验步骤2: 用循环展开、寄存器换名以及指令调度提高性能相关基础知识可见教材或实验手册提示:将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程序做相应的修改。然后对新的循环体进行寄存器换名和指令调度; 运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;调度前代码:loop: ADDI $r1,$r1,1MUL $r2,$r1,$r1ADDIU $r4,$r4,-1BGTZ $r4,loop调度后代码:loop: ADDI $r1,$r1,1ADDI $r2,$r1,1MUL $r5,$r1,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合肥学院《建筑材料力学》2024-2025学年第一学期期末试卷
- 临床统计面试题目及答案
- 室内设计知识竞赛试题及答案
- 群体性不明原因疾病事件专项应急演练脚本(2篇)
- 入党论文题目及答案
- 医院停水停电停氧的应急预案考核试题及答案
- 《项目管理案例教程》课件-04 第4章 项目管理方法和工具的应用案例
- 2025年电梯安全员守则培训考核试题附答案
- 外科休克病人的护理考试题及答案
- 传染病护理学试题及参考答案(护理专科)
- 建筑施工现场签证单(模板)
- GB/T 41837-2022温泉服务温泉水质要求
- GB/T 9729-2007化学试剂氯化物测定通用方法
- MA控台基本知识和技巧
- 东芝空调用户使用手册
- BVI公司法全文(英文版)
- 住房公积金投诉申请书
- 众辰变频器说明书3400
- 《世说新语》乘船 完整版课件
- 施工现场安全检查记录表(周)以及详细记录
- 煤矿地质基础知识课件
评论
0/150
提交评论