实验四 处理器结构实验二

实验四 处理器结构实验二

——控制冒险与分支预测

试验目的

了解控制冒险分支预测的概念

了解多种分支预测的方法,动态分支预测更要深入了解

理解什么是BTB(Branch Target Buffer),并且学会用BTB来优化所给程序

利用BTB的特点,设计并了解在哪种状态下BTB无效

了解循环展开,并于BTB功能进行对比

对WinMIPS64的各个窗口和操作更加熟悉

实验内容

按照下面的实验步骤及说明,完成相关操作记录实验过程的截图:

首先,给出一段矩阵乘法的代码,通过开启BTB功能对其进行优化,并且观察流水线的细节,解释BTB在其中所起的作用;

其次,自行设计一段使得即使开启了BTB也无效的代码。

第三,使用循环展开的方法,观察流水因分支停顿的次数减少的现象,并对比采用BTB结构时流水因分支而停顿的次数。

(选做:在x86系统上编写C语言的矩阵乘法代码,用perf观察分支预测失败次数,分析其次数是否与你所学知识吻合。再编写前面第二部使用的令分支预测失败的代码,验证x86是否能正确预测,并尝试做解释)

实验环境

硬件:桌面PC

软件:Windows

实验步骤及说明

背景知识

在遇到跳转语句的时候,我们往往需要等到MEM阶段才能确定这条指令是否跳转(通过硬件的优化,可以极大的缩短分支的延迟,将分支执行提前到ID阶段,这样就能够将分支预测错误代价减小到只有一条指令),这种为了确保预取正确指令而导致的延迟叫控制冒险(分支冒险)。

为了降低控制冒险所带来的性能损失,一般采用分支预测技术。分支预测技术包含编译时进行的静态分支预测,和执行时进行的动态分支预测。这里,我们着重介绍动态分支预测中的BTB(Branch Target Buffer)技术。

BTB即为分支目标缓冲器,它将分支指令(对应的指令地址)放到一个缓冲区中保存起来,当下次再遇到相同的指令(跳转判定)时,它将执行和上次一样的跳转(分支或不分支)预测。

一种可行的BTB结构示意图如下:

在采用了BTB之后,在流水线各个阶段所进行的相关操作如下:

注意,为了填写BTB,需要额外一个周期。

一、矩阵乘法及优化

在这一阶段,我们首先给出矩阵乘法的例子,接着将流水线设置为不带BTB功能(configure->enable branch target buffer)直接运行,观察结果进行记录;然后,再开启BTB功能再次运行,观察实验结果。将两次的实验结果进行对比,观察BTB是否起作用,如果有效果则进一步观察流水线执行细节并且解释BTB起作用原因。

矩阵乘法的代码如下:

.data

str:  .asciiz "the data of matrix 3:\n"

mx1:   .space 512

mx2:   .space 512

mx3:   .space 512

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
处理器结构实验二是指分支目标缓冲器(Branch Target Buffer,简称BTB),它是一种用于处理处理器分支指令的数据结构。 BTB的主要作用是为处理器提供预测的分支目标地址,从而在分支指令执行时减少预测错误所带来的处理器浪费。它通过记录已经历的分支指令及其目标地址,并根据历史统计信息进行预测。当处理器遇到分支指令时,首先查询BTB,以确定该分支的目标地址。如果BTB中存在该分支指令,并且预测的目标地址与查询地址匹配,处理器会按照预测的目标地址执行下一条指令,大大提高了处理器的执行效率。 BTB的结构通常由两部分组成:标签(Tag)和目标地址(Target Address)。 标签用于唯一标识分支指令,目标地址则记录了与该分支指令相对应的目标指令地址。当处理器执行分支指令时,会比对当前指令的标签与BTB中所有标签,以寻找匹配的指令。如果找到匹配项,则根据匹配项的目标地址进行预测。 BTB的性能和准确性取决于其预测算法和容量大小。常见的预测算法有多种,如全相联、直接映射等。容量大小取决于BTB能够存储和维护的历史分支指令数量。较大的容量能够提高预测准确性,但也会占用更多的处理器资源。 总之,处理器结构实验二的BTB在处理器设计中扮演了重要的角色,通过提供预测的分支目标地址,可以有效提高处理器的执行效率,减少分支指令带来的处理器浪费。不过,不同的处理器架构可能采用不同的BTB实现方式,具体的设计和性能会有所差异。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值