分支指令的处理方法、装置、设备和存储介质
成果类型:: 发明专利
发布时间: 2023-09-05 14:58:15
本发明提供一种分支指令的处理方法,包括:在获取到分支指令时,获取所述分支指令的当前上下文信息;查询所述分支指令对应的预存上下文信息;判断所述当前上下文信息和所述预存上下文信息是否一致;若一致,则获取所述分支指令对应的预存跳转地址,以执行从所述预存跳转地址内预取的预取指令。可选地,所述获取所述分支指令的当前上下文信息的步骤,具体包括:查询所述分支指令所在的基本块所对应的栈,获取栈顶指针;获取所述分支指令所在的线程的线程号,以及所述线程所属的进程的进程号;将所述栈顶指针、所述线程号和所述进程号作为当前上下文信息。
本发明公开了一种分支指令的处理方法,包括:在获取到分支指令时,获取所述分支指令的当前上下文信息;查询所述分支指令对应的预存上下文信息;判断所述当前上下文信息和所述预存上下文信息是否一致;若一致,则获取所述分支指令对应的预存跳转地址,以执行从所述预存跳转地址内预取的预取指令。本发明还公开了一种分支指令的处理装置、设备和存储介质。本发明能够防止被攻击后按照错误的分支程序进行指令执行的问题发生。
分支预测(Branch Prediction)是从P5时代开始的一种先进的,解决处理分支指令(if-then-else)导致流水线失败的数据处理方法,由处理器来预判程序分支的进行方向,能够加快运算速度。目前的分支预测方式通常是直接根据分支预测器预测的目标跳转地址进行取指令和指令执行操作。而攻击者通过操作分支预测器,可以使预测执行的代码读取保密数据,在此过程中,尽管错误分支预测的结果没有被提交,但预测执行时读取的数据可以改变处理器微架构状态,如将保密数据读到缓存中,这类攻击被称为幽灵(Spectre)攻击。当前处理器的预测执行可提前执行上百条指令,使得攻击者有足够的时间基于错误的处理器微架构状态改变实施Spectre攻击。根据攻击者诱导分支预测方式,Spectre攻击可分为两类:诱导条件分支跳转方向预测错误攻击与诱导间接跳转分支目标地址预测错误攻击。攻击通过不断提供满足跳转语句条件的值,使处理器总是预测分支条件为真,从而使处理器按错误预测的路径执行,或者通过在相同的地址空间或不同的地址空间重复执行间接分支跳转,从而诱导对间接跳转分支目标地址的预测,使处理器按错误预测的间接跳转分支目标地址进行取指令操作。
因此,目前的对分支指令的处理方法中,存在容易被攻击从而按照错误的分支程序进行指令执行的问题。
湖北文理学院是省属全日制普通本科高等院校,位于全国历史文化名城、湖北省域副中心城市—襄阳市,地处中华民族智慧化身诸葛亮的故居—古隆中。学校办学历史最早可以追溯到创办于1958年的襄阳师范专科学校;1966-1978年,武汉大学襄阳分校在此设立;1998年3月,襄阳师范高等专科学校、襄樊职业大学、襄樊教育学院合并组建襄樊学院;2000年7月,湖北省工艺美术学校整体并入;2012年2月,更名为湖北文理学院。是硕士学位授予单位、中央和地方共建高校、教育部本科教学工作水平评估优秀学校、全国普通高等学校毕业生就业工作先进集体、全国民族团结进步模范集体。
本发明实施例提出的一种分支指令的处理方法、装置、设备和存储介质,在获取到分支指令时,获取所述分支指令的当前上下文信息,查询所述分支指令对应的预存上下文信息,判断所述当前上下文信息和所述预存上下文信息是否一致,若一致,则获取所述分支指令对应的预存跳转地址,以执行从所述预存跳转地址内预取的预取指令;通过在按照预存跳转地址进行取指令之前,判断当前上下文信息和预存上下文信息是否一致,在一致时,即判断分支指令所对应的预测的预存跳转指令未被恶意攻击而导致预测错误时,再获取分支指令对应的预存跳转地址,以执行从预存跳转地址内预取的预取指令,从而防止了被攻击后按照错误的分支程序进行指令执行的问题发生。
本专利成果采用技术转让,技术入股,技术合作等成果转化方式,希望进一步实现该专利的有益效果,有兴趣皆可面议。