分支指令的处理方法、装置、设备和存储介质制造方法及图纸

技术编号:23932244 阅读:38 留言:0更新日期:2020-04-25 01:53
本发明专利技术公开了一种分支指令的处理方法,包括:在获取到分支指令时,获取所述分支指令的当前上下文信息;查询所述分支指令对应的预存上下文信息;判断所述当前上下文信息和所述预存上下文信息是否一致;若一致,则获取所述分支指令对应的预存跳转地址,以执行从所述预存跳转地址内预取的预取指令。本发明专利技术还公开了一种分支指令的处理装置、设备和存储介质。本发明专利技术能够防止被攻击后按照错误的分支程序进行指令执行的问题发生。

Processing method, device, device and storage medium of branch instruction

【技术实现步骤摘要】
分支指令的处理方法、装置、设备和存储介质
本专利技术涉及计算机领域,尤其涉及一种分支指令的处理方法、装置、设备和存储介质。
技术介绍
分支预测(BranchPrediction)是从P5时代开始的一种先进的,解决处理分支指令(if-then-else)导致流水线失败的数据处理方法,由处理器来预判程序分支的进行方向,能够加快运算速度。目前的分支预测方式通常是直接根据分支预测器预测的目标跳转地址进行取指令和指令执行操作。而攻击者通过操作分支预测器,可以使预测执行的代码读取保密数据,在此过程中,尽管错误分支预测的结果没有被提交,但预测执行时读取的数据可以改变处理器微架构状态,如将保密数据读到缓存中,这类攻击被称为幽灵(Spectre)攻击。当前处理器的预测执行可提前执行上百条指令,使得攻击者有足够的时间基于错误的处理器微架构状态改变实施Spectre攻击。根据攻击者诱导分支预测方式,Spectre攻击可分为两类:诱导条件分支跳转方向预测错误攻击与诱导间接跳转分支目标地址预测错误攻击。攻击通过不断提供满足跳转语句条件的值,使处理器总是预测分支条件为真,本文档来自技高网...

【技术保护点】
1.一种分支指令的处理方法,其特征在于,所述分支指令的处理方法包括以下步骤:/n在获取到分支指令时,获取所述分支指令的当前上下文信息;/n查询所述分支指令对应的预存上下文信息;/n判断所述当前上下文信息和所述预存上下文信息是否一致;/n若一致,则获取所述分支指令对应的预存跳转地址,以执行从所述预存跳转地址内预取的预取指令。/n

【技术特征摘要】
1.一种分支指令的处理方法,其特征在于,所述分支指令的处理方法包括以下步骤:
在获取到分支指令时,获取所述分支指令的当前上下文信息;
查询所述分支指令对应的预存上下文信息;
判断所述当前上下文信息和所述预存上下文信息是否一致;
若一致,则获取所述分支指令对应的预存跳转地址,以执行从所述预存跳转地址内预取的预取指令。


2.如权利要求1所述的分支指令的处理方法,其特征在于,所述获取所述分支指令的当前上下文信息的步骤,具体包括:
查询所述分支指令所在的基本块所对应的栈,获取栈顶指针;
获取所述分支指令所在的线程的线程号,以及所述线程所属的进程的进程号;
将所述栈顶指针、所述线程号和所述进程号作为当前上下文信息。


3.如权利要求2所述的分支指令的处理方法,其特征在于,所述将所述栈顶指针、所述线程号和所述进程号作为当前上下文信息的步骤,具体包括:
将所述栈顶指针、所述线程号和所述进程号作为输入信息,利用哈希算法对所述输入信息进行计算,获得对应的哈希值,将所述哈希值作为当前上下文信息。


4.如权利要求1-3任一项所述的分支指令的处理方法,其特征在于,所述查询所述分支指令对应的预存上下文信息的步骤,具体包括:
查询所述分支指令所在的基本块对应的分支目标缓冲器和返回地址栈,从所述分支目标缓冲器或所述返回地址栈中读取所述分支指令对应的预存上下文信息;其中,所述分支目标缓冲器和所述返回地址栈中的记录项均用于记录所述基本块中已执行过的分支指令所对应的预存跳转地址和预存上下文信息;
所述获取所述分支指令对应的预存跳转地址的步骤,具体包括:
根据所述分支指令查询所述分支目标缓冲器和所述返回地址栈,从所述分支目标缓冲器中读取与所述分支指令对应的预存跳转地址。


5.如权利要求1-3任一项所述的分支指令的处理方法,其特征在于,所述判断所述当前上下文信息和所述预存上下文信息是否一致的步骤之后,所述分...

【专利技术属性】
技术研发人员:张军花俏枝王普杭波
申请(专利权)人:湖北文理学院
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1