体系结构学习-2-现代处理器最常用的分支预测

现代处理器最常用的解决控制冒险的方法就是分支预测法(Branch Prediction).

在2018年年初Intel承认的"Meltdown"漏洞就和"分支预测"紧密相关。

Meltdown漏洞相关报道
上述报道中对Meltdown漏洞生动的诠释:

赵晓峰打比方说:“我拿着假的录取通知书去拿宿舍钥匙,我虽然会被发现是假冒的,但是在这一过程中,我会发现相应学号对应的相应宿舍。这样,我就能推测出不同专业的学生住在哪了。”

更详细的漏洞分析连接

分支预测需要解决的三个核心问题:

(1)是否为跳转指令
(2)是否会跳转
(3)跳转目标地址

MIPS的Branch指令类型:

指令类型 指令示例 跳转可能性 跳转目标地址
条件跳转 beq 不确定 要执行后才能确定
无条件跳转 j 一定 立即数,译码阶段可以计算
调用 jal 一定 立即数,译码阶段可以计算
返回 jr 一定 由call存储的$ra内部值决定
间接跳转 jr 一定 由依赖的寄存器内部值决定

  jal 和 j 指令可以在译码阶段确定跳转地址,有利于分支预测,其他的需要寄存器访问和指令执行后才能得到跳转信息。

-如果不做分支预测,那么流水线的下一条指令需要stall相应周期,等待跳转信息确定才能继续执行。
-如果分支预测错误,那么流水线需要flush(冲刷)取错的指令,也会浪费时钟周期和计算资源。

分支预测流程

Created with Raphaël 2.2.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值