一种分支预测器的隔离方法、预测方法及分支预测器技术

技术编号:27290382 阅读:11 留言:0更新日期:2021-02-06 11:59
本申请提供一种分支预测器的隔离方法、预测方法及分支预测器。该方法包括:获取训练信息,所述训练信息包括分支信息和第一地址信息,所述第一地址信息包括第一取指地址和/或第一分支历史;获取所述训练信息对应的待隔离软件的多个第一软件属性,并利用预设编码方式对所述多个第一软件属性进行编码,获得一个第一编码信息;根据所述第一地址信息和所述第一编码信息,利用哈希算法从所述分支预测表中获取对应的表项,并将所述分支信息写入所述表项中,以实现对所述待隔离软件的分支信息与其他待隔离软件的分支信息隔离。本申请实施例通过将多个软件属性进行统一编码,避免了设置多种比较逻辑,只需要一种比较逻辑即可,降低了硬件开销和复杂度。件开销和复杂度。件开销和复杂度。

【技术实现步骤摘要】
一种分支预测器的隔离方法、预测方法及分支预测器


[0001]本申请涉及分支预测
,具体而言,涉及一种分支预测器的隔离方法、预测方法及分支预测器。

技术介绍

[0002]处理器核作为硬件资源,通常会被很多软件通过调度的方式共享。比如:用户态(user)和系统态(supervisor)之间的共享、客户机(guest)和宿主机(host)之间的共享,以及同步多线程(SMT)的共享。对于用户态和系统态的相互切换,即,处理器可以在一段时间内执行用户程序A,在下一段时间内执行系统程序,再在下一段时间内又执行用户程序B。对于客户机和宿主机之间的切换,即,处理器可以在一段时间内执行客户机A,在下一段时间段内执行宿主机,再在下一段时间内执行客户机B。对于同步多线程来说,处理器具有多个硬件线程,可以同时执行多个软件程序。
[0003]分支预测器作为处理器核的一部分,通常也是直接共享的。由于分支预测器共享的特性,攻击程序可以将分支预测器训练到特定状态,从而改变合法程序的预测结果和推测执行,达到泄露信息的目的。近来的幽灵漏洞(spectre)就是利用了这种特性。现有技术中,通过将不同的程序之间隔离开来保证用户的信息安全,例如:通过在分支预测器的表项中增加程序对应的ID,这样将额外的增加了分支预测表的存储空间,将会带来较大的存储开销。

技术实现思路

[0004]本申请实施例的目的在于提供一种分支预测器的隔离方法、预测方法及分支预测器,用以以较低的存储开销来保证用户信息安全。
[0005]第一方面,本申请实施例提供一种分支预测器的隔离方法,包括:获取训练信息,所述训练信息包括分支信息和第一地址信息,所述第一地址信息包括第一取指地址和/或第一分支历史;获取所述训练信息对应的待隔离软件的多个第一软件属性,并利用预设编码方式对所述多个第一软件属性进行编码,获得一个第一编码信息;根据所述第一地址信息和所述第一编码信息,利用哈希算法从分支预测表中获取对应的表项,并将所述分支信息写入所述表项中,以实现对所述待隔离软件的分支信息与其他待隔离软件的分支信息隔离。
[0006]本申请实施例通过将多个软件属性进行统一编码,避免了设置多种比较逻辑,只需要一种比较逻辑即可,降低了硬件开销和硬件设计的复杂度。
[0007]进一步地,所述多个第一软件属性包括所述待隔离软件对应的线程标识、用户系统态标识、客户宿主模式标识、用户ID和宿主ID中的多项;所述利用预设编码方式对所述多个第一软件属性进行编码,获得一个第一编码信息,包括:将所述线程标识、用户系统态标识、客户宿主模式标识、用户ID和宿主ID中的多项进行拼接,获所述第一编码信息。
[0008]进一步地,所述根据所述第一地址信息和所述第一编码信息,利用哈希算法从所
述分支预测表中获取对应的表项,并将所述分支信息写入所述表项中,包括:利用第一哈希算法对所述第一地址信息进行哈希计算,获得对应的第一索引信息;利用第二哈希算法对所述第一编码信息进行哈希计算,获得对应的第一安全信息;若所述分支预测表不包括tag项,则根据所述第一索引信息从所述分支预测表中获取对应的表项;将所述第一安全信息和所述分支信息写入所述表项中。本申请实施例通过在分支预测表中增加对第一编码信息进行哈希后获得第一安全信息,用以区分分支预测表中分支信息的用户,从而实现了将分支信息进行隔离,一方面提高了对分支信息的安全性,另一方面降低了分支预测器的存储开销。
[0009]进一步地,所述根据所述第一地址信息和所述第一编码信息,利用哈希算法从所述分支预测表中获取对应的表项,并将所述分支信息写入所述表项中,还包括:若所述分支预测表包括tag项,则利用第三哈希算法对所述第一地址信息进行哈希计算,获得对应的第一tag;根据所述第一索引信息和所述第一tag从所述分支预测表中获取目标分支预测表中的表项;将所述第一安全信息/所述分支信息写入所述表项中。
[0010]对于分支预测表中包含tag项的情况,本申请实施例通过将待隔离软件的第一编码信息进行哈希后作为安全信息与分支信息一同写入,因此,通过安全信息实现了分支信息的安全,并通过哈希的方式降低了预测表的存储开销。
[0011]进一步地,所述根据所述第一地址信息和所述第一编码信息,利用哈希算法从所述分支预测表中获取对应的表项,并将所述分支信息写入所述表项中,包括:根据所述第一地址信息和所述第一编码信息生成新的第一地址信息;若所述分支预测表不包括tag项,则利用第四哈希算法对所述新的第一地址信息进行哈希计算,获得对应的第二索引信息;根据所述第二索引信息从所述分支预测表中获取对应的表项;将所述分支信息写入所述表项中。本申请实施例通过将第一编码信息与第一地址信息进行拼接,获得新的第一地址信息,用新的第一地址信息将分支信息写入分支预测表中,一方面提高了分支信息的安全性,另一方面,不需要额外增加信息,进一步降低了分支预测器的存储开销。
[0012]进一步地,所述根据所述第一地址信息和所述编码信息,利用哈希算法从所述分支预测表中获取对应的表项,并将所述分支信息写入所述表项中,还包括:若所述分支预测表包括tag项,则利用第四哈希算法对所述第一地址信息或所述新的第一地址信息进行哈希计算,获得对应的第三索引信息;利用第五哈希算法对所述第一地址信息或所述新的第一地址信息进行哈希计算,获得对应的第二tag;其中所述第三索引信息和所述第二tag中,有至少一个是对新的第一地址信息进行哈希计算获得的;根据所述第三索引信息和所述第二tag从所述分支预测表中获取目标分支预测表中的表项;将所述分支信息写入所述表项中。本申请实施例通过将第一编码信息与第一地址信息进行拼接,获得新的第一地址信息,用新的第一地址信息将分支信息写入分支预测表中,一方面提高了分支信息的安全性,另一方面,不需要额外增加信息,进一步降低了分支预测器的存储开销。
[0013]进一步地,所述利用第二哈希算法对所述第一编码信息进行哈希计算,包括:按照预设周期生成第一随机数,并根据所述第一随机数和所述第一编码信息生成随机第一编码信息;利用所述第二哈希算法对所述随机第一编码信息进行哈希计算。通过加入随机数防止了黑客的反向工程,从而提高分支信息的安全性。
[0014]进一步地,所述利用第四哈希算法对所述新的第一地址信息进行哈希计算,包括:
根据预设周期生成第二随机数,根据所述第二随机数和所述新的第一地址信息生成随机第一地址信息;利用第四哈希算法对所述随机第一地址信息进行哈希计算。本申请实施例通过引入随机数进一步提高了信息的安全性。通过加入随机数防止了黑客的反向工程,从而提高分支信息的安全性。
[0015]第二方面,本申请实施例提供一种分支预测器的预测方法,包括:
[0016]获取预测信息,所述预测信息包括第二地址信息,所述第二地址信息包括第二取指地址和/或第二分支历史;获取所述预测信息对应的待预测软件的多个第二软件属性,并利用预设编码方式对所述多个第二软件属性进行编码,获得一个第二编码信息;根据所述第二地本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分支预测器的隔离方法,其特征在于,用于在训练阶段对分支预测器进行隔离,所述方法包括:获取训练信息,所述训练信息包括分支信息和第一地址信息,所述第一地址信息包括第一取指地址和/或第一分支历史;获取所述训练信息对应的待隔离软件的多个第一软件属性,并利用预设编码方式对所述多个第一软件属性进行编码,获得一个第一编码信息;根据所述第一地址信息和所述第一编码信息,利用哈希算法从分支预测表中获取对应的表项,并将所述分支信息写入所述表项中,以实现对所述待隔离软件的分支信息与其他待隔离软件的分支信息隔离。2.根据权利要求1所述的方法,其特征在于,所述多个第一软件属性包括所述待隔离软件对应的线程标识、用户系统态标识、客户宿主模式标识、用户ID和宿主ID中的多项;所述利用预设编码方式对所述多个第一软件属性进行编码,获得一个第一编码信息,包括:将所述线程标识、用户系统态标识、客户宿主模式标识、用户ID和宿主ID中的多项进行拼接,获所述第一编码信息。3.根据权利要求1所述的方法,其特征在于,所述根据所述第一地址信息和所述第一编码信息,利用哈希算法从所述分支预测表中获取对应的表项,并将所述分支信息写入所述表项中,包括:利用第一哈希算法对所述第一地址信息进行哈希计算,获得对应的第一索引信息;利用第二哈希算法对所述第一编码信息进行哈希计算,获得对应的第一安全信息;若所述分支预测表不包括标签tag项,则根据所述第一索引信息从所述分支预测表中获取对应的表项;将所述第一安全信息和所述分支信息写入所述表项中。4.根据权利要求3所述的方法,其特征在于,所述根据所述第一地址信息和所述第一编码信息,利用哈希算法从所述分支预测表中获取对应的表项,并将所述分支信息写入所述表项中,还包括:若所述分支预测表包括tag项,则利用第三哈希算法对所述第一地址信息进行哈希计算,获得对应的第一tag;根据所述第一索引信息和所述第一tag从所述分支预测表中获取目标分支预测表中的表项;将所述第一安全信息和所述分支信息写入所述表项中。5.根据权利要求1所述的方法,其特征在于,所述根据所述第一地址信息和所述第一编码信息,利用哈希算法从所述分支预测表中获取对应的表项,并将所述分支信息写入所述表项中,包括:根据所述第一地址信息和所述第一编码信息生成新的第一地址信息;若所述分支预测表不包括tag项,则利用第四哈希算法对所述新的第一地址信息进行哈希计算,获得对应的第二索引信息;根据所述第二索引信息从所述分支预测表中获取对应的表项;将所述分支信息写入所述表项中。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一地址信息和所述编码信息,利用哈希算法从所述分支预测表中获取对应的表项,并将所述分支信息写入所述表项中,还包括:若所述分支预测表包括tag项,则利用第四哈希算法对所述第一地址信息或所述新的第一地址信息进行哈希计算,获得对应的第三索引信息;利用第五哈希算法对所述第一地址信息或所述新的第一地址信息进行哈希计算,获得对应的第二tag;其中所述第三索引信息和所述第二tag中,有至少一个是对新的第一地址信息进行哈希计算获得的;根据所述第三索引信息和所述第二tag从所述分支预测表中获取目标分支预测表中的表项;将所述分支信息写入所述表项中。7.根据权利要求3所述的方法,其特征在于,所述利用第二哈希算法对所述第一编码信息进行哈希计算,包括:按照预设周期生成第一随机数,并根据所述第一随机数和所述第一编码信息生成随机第一编码信息;利用所述第二哈希算法对所述随机第一编码信息进行哈希计算。8.根据权利要求5所述的方法,其特征在于,所述利用第四哈希算法对所述新的第一地址信息进行哈希计算,包括:根据预设周期生成第二随机数,根据所述第二随机数和所述新的第一地址信息生成随机第一地址信息;利用第四哈希算法对所述随机第一地址信息进行哈希计算。9.一种分支预测器的预测方法,其特征在于,包括:获取预测信息,所述预测信息包括第二地址信息,所述第二地址信息包括第二取指地址和/或第二分支历史;获取所述预测信息对应的待预测软件的多个第二软件属性,并利用预设编码方式对所述多个第二软件属性进行编码,获得一个第二编码信息;根据所述第二地址信息和所述第二编码信息,利用哈希算法从分支预测表中获取对应的表项,并获取所述表项中的分支信息;根据...

【专利技术属性】
技术研发人员:崔泽汉
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:

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

1