计算机体系结构实验三 指令调度和延迟分支

3 篇文章 5 订阅
订阅专栏

3.1  实验目的

  1. 加深对指令调度技术的理解。
  2. 加深对延迟分支技术的理解。
  3. 熟练掌握用指令调度技术来解决流水线中的数据冲突的方法。
  4. 进一步理解指令调度技术对CPU性能的改进。
  5. 进一步理解延迟分支技术对CPU性能的改进。

3.2  实验平台

实验平台采用指令级和流水线操作级模拟器MIPSsim。

3.3  实验内容和步骤

首先要掌握MIPSsim模拟器的使用方法。详见附录B。

1.启动MIPSsim。

2.根据教材中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义(双击各段,就可以看到各流水寄存器的内容)。

3.选择“配置”→“流水方式”选项,使模拟器工作于流水方式下。

4.用指令调度技术解决流水线中的结构冲突与数据冲突。

1)启动MIPSsim。

2)用MIPSsim的“文件”→“载入程序”选项来加载schedule.asm(在模拟器所在文件夹下的“样例程序”文件夹中)。

3)关闭定向功能。这是通过在“配置”菜单中关闭“定向”(使该项前面没有“√”号)来实现的。

4)执行所载入的程序。通过查看统计数据和时钟周期图,找出并记录程序执行过程中各种冲突发生的次数、发生冲突的指令组合,以及程序执行的总时钟周期数。

第1对指令组合

LW$r2,0($r1)

ADD$r4,$r0,$r2

第2对指令冲突

ADD$r4,$r0,$r2

SW$r4,0($r1)

第3对指令冲突

SW$r4,0($r1)

LW$r6,4($r1)

第4对指令冲突

ADD$r8,$r6,$r1

MUL$r12,$r10,$r1

第5对指令冲突

ADD$r16,$r12,$r1

ADD$r18,$r16,$r1

第6对指令冲突

ADD$r18,$r16,$r1

SW$r18,16($r1)

第7对指令冲突

SW$r18,16($r1)

LW$r20,8($r1)

第8对指令冲突

MUL$r22,$r20,$r14

MUL$r24,$r26,$r14

(5)采用指令调度技术对程序进行指令调度,消除冲突。将调度后的程序保持到after-schedule.asm中。

(6)载入after-schedule.asm。

(7)执行该程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周期数;

(8)根据记录结果,比较调度前和调度后的性能。论述指令调度对于提高CPU性能的作用。

5.用延迟分支减少分支指令对性能的影响。

1)启动MIPSsim。

2)载入branch.asm。

3)关闭延迟分支功能。这是通过在“配置”→“延迟槽”选项来实现的。

4)执行该程序。观察并记录发生分支延迟的时刻

由下图可知,6,9,13,21,24,28

5)记录执行该程序所花的总时钟周期数。 

6)假设延迟槽为一个,对branch.asm进行指令调度,然后保存到“delayed-branch.asm”中。

7)载入delayed-branch.asm。

8)打开延迟分支功能。

9)执行该程序,观察其时钟周期图。

10)记录执行该程序所花的总时钟周期数。

11)对比上述两种情况下的时钟周期图。

12)根据记录结果,比较没采用延迟分支和采用了延迟分支的性能。论述延迟分支对于提高CPU性能的作用。

3.4 相关知识:指令调度和延迟分支

3.4.1指令调度

      为了减少停顿,对于无法用定向技术解决的数据冲突,可以通过在编译时让编译器重新组织指令顺序来消除冲突,这种技术称为指令调度或流水线调度。实际上,对于各种冲突,都有可能用指令调度来解决。

下面通过一个例子来进一步说明。考虑以下表达式:
A=B+C;
D=E-F;
     表3.1左边是这两个表达式编译后所形成的代码。在这个代码序列中,DADDRa,Rb,Re与LDRc,C之间存在数据冲突,DSUBRd,Re,Rf与LDRf,F之间也是如此。为了保证流水线能正确执行调度前的指令序列,必须在指令的执行过程中插入两个停顿周期(分别在DADD和DSUB执行前)。而在调度后的指令列中,加大了DADD和DSUB指令与LD指令的距离。通过采用定向可以消除数据冲突,因而不必在执行过程中插入任何停顿周期。

表3.1 调度前后的指令序列

3.4.2 延迟分支

       在流水线中,控制冲突可能会比数据冲突造成更多的性能损失,所以同样需要得到很好的处理。执行分支指令的结果有两种,一种是分支成功,PC值改变为分支转移的目标地址;另一种则是不成功或者失败,这时PC的值保持正常递增,指向顺序的下一条指令。对分支指令成功的情况来说,是在条件判定和转移地址计算都完成后才改变。
      PC 值。处理分支指令最简单的方法是冻结或者排空流水线。即一旦在流水线的译码段ID检测到分支指令,就暂停其后的所有指令的执行,直到分支指令到达MEM段、确定出是否成功并计算出新的PC值为止。然后,按照新的PC值取指令。如图3-1所示这种方法的优点在于其简单性,它给流水线带来了3个时钟周期的延迟(称为分支延迟)。

图3-1 简单处理分支指令:分支成功的情况

为了减少分支延迟,可以采用延迟分支技术。这种技术的主要思想是从逻辑上延长分支指令的执行时间。把延迟分支看成是由原来的分支指令和若干个延迟槽构成。不管分支是否成功,都要按顺序执行延迟槽中的指令。在采用延迟分支的实际计算机中,绝大多数的延迟槽都是一个。MIPSsim模拟器的也是按这样处理的,即:
分支指令
延迟槽
后继指令
在这种情况下,流水线的执行情况如图3.2所示。可以看出,只要分支延迟槽中的指令是有用的,流水线中就没有出现停顿,这时延迟分支的方法能很好地减少了分支延迟。

图3.2  延迟分支的执行情况 

放入延迟槽中的指令是由编译器来选择的。实际上延迟分支能否带来好处完全取决于编译器能否把有用的指令调度到延迟槽中。这也是一种指令调度技术。常用的调度方法有3种:从前调度,从目标处调度和从失败处调度。如图10.3所示。图中,上面的代码是调度前的,下面的代码是调度后的。
图10.3(a)表示的是从前调度,它是把位于分支指令之前的一条独立指令移到延迟槽。当无法采用从前调度时,就采用另外两种方法。图10.3(b)表示的是从目标处调度,它是把目标处的指令复制到延迟槽。同时,还要修改分支指令的目标地址,如图10.3(b)中的箭头所示。之所以是复制到延迟槽,而不是把该指令移过去,是因为从别的路径可能也要执行到该指令。从目标处调度实际上是猜测了分支是成功的,所以当分支成功概率比较高时(例如循环转移),采用这种方法比较好;否则,采用从失败处调度比较好(见图10.3(e))。需要注意的是,当猜测错误时,要保证图10.3(b)和(c)中调度到延迟槽中的指令的执行不会影响程序的正确性(当然,这时延迟槽中的指令是无用的)。在图10.3(b)和(c)的指令序列中,由于分支指令是使用R1来判断的,所以不能把产生R1的值的DADD指令调度到延迟槽。

图3.3调度分支指令的3种常用方法 

计算机系统结构WINDLX实验——实验三
洛离溪的小屋
01-22 1268
一、实验内容 1.在configuration菜单中,选择"floating point stages" 并设置除法单元数为3和加法﹑乘法﹑除法的延迟为3个时钟周期。 2.运行 Original program,记录程序运行结果,并画出流水线的时空图; 3.运行Reordered program,记录程序运行结果,并画出流水线的时空图; 4.对比以上两个程序的运行结果,指出其不同并作出合理的解释; 5.列出指令调度对于流水线性能提高的意义。
计算机体系结构试验——指令调度延迟分支
05-12
计算机体系结构试验——指令调度延迟分支
指令调度延迟分支指令调度延迟分支.txt
05-29
指令调度延迟分支指令调度延迟分支指令调度延迟分支指令调度延迟分支
北邮 计算机系统结构实验五——指令调度延迟分支
06-01
北邮 计算机系统结构实验五——指令调度延迟分支实验报告
计算机系统结构实验报告
10-21
实验一 Cache性能分析 1 1.1 实验目的 1 1.2 实验平台 1 1.3 实验内容及步骤 2 1.4 实验总结与心得 5 实验二 MIP指令系统MIP体系结构 6 2.1实验目的 6 2.2实验平台 6 2.3实验内容和步骤 6 2.4实验总结与心得 8 实验三 流水线及流水线中的冲突 10 3.1实验目的 10 3.2实验平台 10 3.3实验内容和步骤.......................................................................................................................10 3.4 实验总结与心得 13 实验四 指令调度延迟分支 14 4.1实验目的 14 4.2实验平台 14 4.3实验内容和步骤............................................................................................................14 4.4实验总结与心得 19
实验2 指令调度延迟分支【计算机系统结构】
小心星的博客
05-19 2713
实验2 指令调度延迟分支【计算机系统结构】
计算机体系结构】实验4指令调度分支延迟
轩轩是只胖企鹅的企鹅窝
11-10 7615
指令调度分支延迟实验目的实验平台实验内容和步骤实验分析和总结Schedule.sBranch.sArray.s实验分析和总结: 实验目的 1.加深对指令调度技术的理解。 2.加深对分支延迟技术的理解。 3.熟练采用指令调度技术解决流水线中的数据冲突的方法。 4.进一步理解指令调度技术对 CPU 性能的改进。 5.进一步理解延迟分支技术对 CPU 性能的改进。 实验平台 实验平台采用指令级和流水线操作级模拟器 MIPSsim。 实验内容和步骤 1.启动 MIPSsim。 2.根据实验 3的相关知识中关于流水
计算机体系结构指令调度实验报告
05-18
1.实验目的:   通过本实验,加深对指令调度的理解,了解指令调度技术对CPU性能改进的好处。 2. 实验内容:   (1) 通过Configuration菜单中的“Floating point stages”选项,把除法单 元数设置为3,把加法﹑乘法﹑除法的延迟设置为3个时钟周期。   (2) 用WinDLX模拟器运行调度前的程序sch-before.s 。记录程序执行过程中各种相关发生的次数以及程序执行的总时钟周期数。   (3) 用WinDLX模拟器运行调度后的程序sch-after.s ,记录程序执行过程中各种相关发生的次数以及程序执行的总时钟周期数。   (4) 根据记录结果,比较调度前和调度后的性能。   (5) 论述指令调度对于提高CPU性能的意义。
【计算机组成与体系结构Ⅱ】指令调度分支延迟(实验)
m0_65787507的博客
01-15 1899
实验4:指令调度分支延迟 一、实验目的 1. 加深对指令调度技术的理解。 2. 加深对分支延迟技术的理解。 3. 熟练采用指令调度技术解决流水线中的数据冲突的方法。 4. 进一步理解指令调度技术对CPU性能的改进。 5. 进一步理解延迟分支技术对CPU性能的改进。 二、实验平台 实验平台采用指令级和流水线操作级模拟器MIPSsim。 三、实验内容和步骤 1. 启动MIPSsim。 2. 根据实验3的相关知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流
计算机系统结构 实验三 Tomasulo算法
WSY_12345的博客
05-24 1774
一、实验目的 (1)加深对指令级并行性及开发的理解。 (2)加深对Tomasulo算法和基于硬件的前瞻执行算法的理解。 (3)掌握Tomasulo算法在指令流出、执行、写结果各阶段的操作以及ROB在流出、执行、写结果和确认4个阶段所进行的操作。 (4)掌握采用了Tomasulo算法的浮点处理部件的结构。 (5)掌握保留站的结构和ROB缓冲器的结构。 (6)给定被执行代码片段,对于具体某个时钟周期,能够写出保留站、指令状态表以及浮点寄存器状态表内容的变化情况。 (7)给定被执行代码片段,对于具体
MIPSsim模拟器.zip
12-18
一个计算机系统结构课程里面需要用到的模拟器,用这个模拟器可以实现MIPSsim的相关功能,模拟器简洁方便。
MIPSsim的汇编语言.doc
03-20
MIPSsim是一个指令级和流水线级的MIPS模拟器。它能够执行用MIPS汇编语言(子集)编写的程序
北邮计算机体系结构实验报告2021版本
06-01
实验 1 MIPS 指令系统和 MIPS 体系结构 实验 2 流水线及流水线中的冲突 实验3 使用 MIPS 指令实现求两个数组的点积 实验 4 使用 MIPS 指令实现冒泡排序法 实验 5 指令调度延迟分支
延迟调度延迟分支.docx
最新发布
05-30
指令调度延迟分支计算机体系结构中的关键概念,尤其在处理器设计领域,它们直接影响到处理器的性能和效率。这两个概念紧密相连,共同作用于优化指令执行流程,减少流水线停顿,提升处理器吞吐量。 ### 指令调度...
计算机系统结构实验-实验一-MIPS指令系统
m0_63171888的博客
12-09 1112
1. 了解和熟悉指令级模拟器。2. 熟练掌握MIPSsim模拟器的操作和使用方法。3. 熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解。4. 熟悉MIPS体系结构。
MIPSsim模拟器 使用说明
qq_63976098的博客
11-10 1173
MIPSsim基本使用
计算机体系结构实验】指令调度延迟分支
零碎@流年絮语 的博客
04-19 1万+
指令调度延迟分支 1.启动MIPSsim 2.根据预备知识中关于流水线各段操作的描述,进一步理解流水线中各段的功能,掌握各流水线的含义(用鼠标双击各段,就可以看到各流水寄存器的内容) 3.勾选配置菜单中的“流水方式”,使模拟器工作于流水方式下 4.用指令调度技术解决流水线中结构冲突和数据冲突 a) 启动MIPSsim b) 通过“配置”菜单中的“常规配置”项把加法、乘法、除法部件的个数设置为两个,把他们的延迟时间都设置为3个时钟周期 c) 用MIPSsim的“文件”菜单中的“载入程序”来加载schedul
计算机系统结构实验windlx,《计算机体系结构》第三次实验 WinDLX流水线实验
weixin_35794072的博客
07-22 1205
计算机体系结构》课程必做实验实验报告,内含全部程序代码。实验三 WinDLX流水线实验王宇航 安全0901班 09283020实验三 WinDLX流水线实验1 实验目的:通过本实验,加深对结构相关、数据相关和指令调度的理解,了解结构相关对CPU性能的影响,掌握如何使用定向技术来减少数据相关带来的暂停,了解指令调度技术对CPU性能改进的好处。2 实验内容:用WinDLX模拟器进行结构相关的分...
计算机组成原理之指令调度延迟分支
热门推荐
ReliaM的博客
06-13 2万+
一.实验目的 (1)加深对指令调度技术的理解。 (2)加深对延迟分支技术的理解。 (3)熟练掌握用指令调度技术解决流水线中的数据冲突的方法。 (4)进一步理解指令调度技术对CPU性能的改进。 (5)进一步理解延迟分支技术对CPU性能的改进。 MIPS 360云盘分享https://yunpan.cn/cRLzwTkYc3TEt 访问密码 f9a6 二.实验内容和步骤: (1)、启动MI
计算机体系结构 实验 csdn
11-14
计算机体系结构实验是指通过实践操作,让学生了解和掌握计算机体系结构的基本原理和技术,并通过实验验证相关理论的正确性和可行性。 在计算机体系结构实验中,学生通常会进行一系列的实验操作和学习,其中包括但不限于以下内容: 1. MIPS汇编语言实验:学生将学习和掌握MIPS指令集的基本指令、寄存器、内存和I/O等操作,编写和调试MIPS汇编语言程序,并通过实验验证程序的正确性和性能。 2. 单周期CPU设计实验:学生将学习和实践单周期CPU的设计原理和实现方法,通过控制信号、数据通路和状态转移图等进行CPU的设计和实验,实现基本的指令执行过程,并通过实验测试和验证各个模块的正确性和性能。 3. 流水线CPU设计实验:学生将进一步学习和实践流水线CPU的设计原理和实现方法,在单周期CPU的基础上增加流水线结构,通过指令的分发、执行和写回等阶段,提高CPU的执行效率,并通过实验测试和验证各个阶段的正确性和性能。 4. 存储器层次结构实验:学生将学习和实践计算机的存储器层次结构原理和实现方法,包括主存、高速缓存和虚拟内存等,通过实验测试和验证各个层次结构的读写性能和命中率等指标。 5. 并行计算实验:学生将学习和实践并行计算的原理和实现方法,包括并行算法、并行计算模型和并行计算系统等,通过实验测试和验证并行计算的效果和性能提升等。 通过计算机体系结构实验,学生可以深入了解和掌握计算机体系结构的基本原理和技术,提升实际操作和问题解决能力,为今后从事相关领域的研究和工作打下坚实基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 8255 并行接口实验 25231
  • 编译原理陈火旺版第三章课后题答案 24479
  • 编译原理陈火旺版第五章课后题答案 22367
  • 毕业设计管理系统 数据库设计 21630
  • 编译原理陈火旺版第四章课后题答案 17562

分类专栏

  • 编译原理 8篇
  • 高等工程数学复习 8篇
  • 算法题 10篇
  • 数据库实验 9篇
  • 接口技术实验 10篇
  • 计算机体系结构实验 3篇

最新评论

  • 毕业设计管理系统 数据库设计

    祈笙629: 求源代码,已点赞关注加收藏了

  • 编译原理陈火旺版第五章课后题答案

    钻仰弥坚: 是的,已修正

  • 编译原理陈火旺版第五章课后题答案

    Moon359: 第七题的I1中不是也存在移进–规约冲突嘛

  • 创建数据库&&数据插入、更新与删除

    岚茝: 终于更新了,等你更新真不容易

  • 编译原理陈火旺版第五章课后题答案

    钻仰弥坚: 好像是的,我改一下

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 创建数据库&&数据插入、更新与删除
  • 用户及权限管理
  • 高等工程数学张韵华版第八,九,十章课后题
2024年5篇
2023年18篇
2022年42篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钻仰弥坚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司亳州设计网站哪家好长治设计网站哪家好铜川阿里店铺托管哪家好许昌网站搭建公司永湖seo网站优化推荐贵阳企业网站设计价格黄山网站优化推广大芬外贸网站建设公司眉山建站多少钱遵义网站开发鸡西优化多少钱忻州关键词排名包年推广哪家好爱联seo排名哪家好咸宁网站推广系统价格大浪网站推广价格唐山seo网站推广公司南昌SEO按天扣费推荐鹤壁百度关键词包年推广哪家好运城关键词按天扣费报价岳阳品牌网站设计多少钱荆门百度关键词包年推广价格哈尔滨网站设计模板公司厦门百度竞价包年推广多少钱玉林百度网站优化哪家好宝鸡建网站价格新余网站制作价格海口SEO按天收费威海企业网站改版多少钱秦皇岛企业网站制作哪家好seo网站推广多少钱歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化