当前位置: 首页 > 专利查询>ARM有限公司专利>正文

间接控制流指令和禁止进行数据值推测制造技术

技术编号:26483624 阅读:39 留言:0更新日期:2020-11-25 19:31
提供了一种装置,包括:输入电路,用于接收输入数据;以及输出电路,用于输出要由数据处理电路执行的指令序列。生成电路执行生成过程以使用输入数据生成指令序列。指令序列包括间接控制流指令,该间接控制流指令具有指示间接控制流指令的目标存储在哪里的字段。生成过程使得指令序列中的至少一条指令在执行间接控制流指令之后存储控制流推测的状态。数据处理电路禁止指令序列中存储控制流推测的状态的至少一条指令经受数据值推测。

【技术实现步骤摘要】
【国外来华专利技术】间接控制流指令和禁止进行数据值推测相关申请的交叉引用本申请引用了由RichardEarnshaw、KristofBeyls、JamesGreenhalgh和ScottDouglass专利技术并转让给ArmLimited的、于2018年7月6日提交的、GB1811154的“利用间接控制流指令进行推测(SPECULATIONWITHINDIRECTCONTROLFLOWINSTRUCTIONS)”,其内容通过引用合并于此。
本技术涉及数据处理。具体地,本技术与推测执行(speculativeexecution)领域相关。
技术介绍
推测执行是一种在知道是否应当执行一系列指令之前执行这些指令的技术。在稍后的某个时间点,确定是否应当执行推测执行的指令。如果是,则过程继续。如果否,则执行“倒退”。这种推测形式称为控制流推测。在某些情况下,已经发现这种推测执行会导致安全漏洞。例如,可以使处理器推测性地执行特权代码以将受保护的数据不必要地加载到缓存中。由于在倒退之后,可能无法清除缓存,因此可以使用边信道攻击来探查请求的数据。推测的另一种形式是数据值推测,其中在已知指令的所有输入之前推测指令产生的结果值。本技术认识到期望在发生控制流推测的地方保持数据安全。
技术实现思路
从第一示例配置的角度来看,提供了一种装置,包括:输入电路,用于接收输入数据;输出电路,用于输出要由数据处理电路执行的指令序列;以及生成电路,用于执行生成过程以使用输入数据生成指令序列,其中,指令序列包括间接控制流指令,该间接控制流指令包括指示间接控制流指令的目标存储在哪里的字段;生成过程使得指令序列中的至少一条指令在执行间接控制流指令之后存储控制流推测的状态;并且数据处理电路禁止指令序列中存储控制流推测的状态的至少一条指令经受数据值推测。从第二示例配置的角度来看,提供了一种设备,包括:用于接收输入数据的装置;用于输出要由数据处理电路执行的指令序列的装置;以及用于执行生成过程以使用输入数据生成指令序列的装置,其中,指令序列包括间接控制流指令,该间接控制流指令包括指示间接控制流指令的目标存储在哪里的字段;生成过程使得指令序列中的至少一条指令在执行间接控制流指令之后存储控制流推测的状态;并且数据处理电路禁止指令序列中存储控制流推测的状态的至少一条指令经受数据值推测。从第三示例配置的角度来看,提供了一种方法,包括:接收输入数据;输出要由数据处理电路执行的指令序列;以及执行生成过程以使用输入数据生成指令序列,其中,指令序列包括间接控制流指令,该间接控制流指令包括指示间接控制流指令的目标存储在哪里的字段;生成过程使得指令序列中的至少一条指令在执行间接控制流指令之后存储控制流推测的状态;数据处理电路禁止指令序列中存储控制流推测的状态的至少一条指令经受数据值推测。从第四示例配置的角度来看,提供了一种可读存储介质,包括根据上述方法产生的计算机程序。附图说明将仅通过示例的方式,参考如附图所示的本技术的实施例来进一步描述本技术,其中:图1示出了根据一些实施例的装置;图2示出了分支指令的行为,并用于演示一种形式的推测执行;图3示出了条件选择指令的示例;图4a和图4b示出了根据一些实施例的将输入数据转换为包含数据值推测限制指令的输出指令序列,使得能够进行控制流未命中推测跟踪(miss-speculationtracking);图5a、图5b和图5c示出了根据一些实施例的将输入数据转换为包含跨功能调用边界的符合ABI的控制流未命中推测跟踪的输出指令序列;图6示出了如何将几种涉及转换的技术结合起来;图7示出了根据一些实施例的装置;图8以流程图形式示出了根据一些实施例的数据处理方法;图9以流程图形式示出了根据一些实施例的数据处理方法;图10a示出了根据一些实施例的输入数据到输出指令序列的转换;图10b示出了根据一些实施例的输入数据到输出指令序列的转换;图11示意性地示出了根据一些实施例的代码块之间的关系;图12以流程图形式示出了根据一些实施例的数据处理方法;图13a示意性地示出了示例类层次(classhierarchy);图13b示意性地示出了基于参考图13a所示的示例类层次的vtable的生成;图14a示出了根据一些实施例的输入数据到输出指令序列的转换;图14b示出了根据一些实施例的输入数据到输出指令序列的转换;图14c示出了根据一些实施例的输入数据到输出指令序列的转换;图15a示意性地示出了根据一些实施例的具有虚拟功能包装器(wrapper)的代码块与用于生成针对虚拟功能调用的控制流推测成功的指示符的thunk之间的关系;图15b示意性地示出了根据一些实施例的具有虚拟功能包装器的代码块与用于生成针对虚拟功能调用的控制流推测成功的指示符的thunk之间的关系;以及图16以流程图形式示出了根据一些实施例的数据处理方法。在参考附图讨论实施例之前,提供以下实施例的描述和相关联的优点。具体实施方式根据一个方面,提供了一种装置,包括:输入电路,用于接收输入数据;输出电路,用于输出要由数据处理电路执行的指令序列;以及生成电路,用于执行生成过程以使用输入数据生成指令序列,其中,指令序列包括间接控制流指令,该间接控制流指令包括指示间接控制流指令的目标存储在哪里的字段;生成过程使得指令序列中的至少一条指令在执行间接控制流指令之后存储控制流推测的状态;并且数据处理电路禁止指令序列中存储控制流推测的状态的至少一条指令经受数据值推测。间接控制流指令可以被认为是以下指令:该指令不直接指示控制流应该到达的位置,而是通过指定能够找到控制流参数的位置(例如,地址)来间接指示这一点。这样的装置可以采取将输入指令转换为输出指令的编译器的形式。输入电路接收输入数据,而输出电路输出将由数据处理电路执行的指令序列。生成电路对输入数据执行生成过程,以便生成指令序列。生成过程使得输出的至少一条指令在执行指令时存储控制流推测的状态。这些一条或多条指令在执行了间接控制流指令之后发生,因此控制流推测的状态指示是否针对间接控制流指令发生了控制流推测。输入数据可以通过生成过程从第一语言翻译为第二语言,该第二语言可由数据处理电路(其可以是处理电路本身)执行。在其他实施例中,输入数据可以是与输出的指令序列相同的语言,并且生成过程可以使得添加附加指令以便建立控制流推测的状态。禁止可以通过例如提供“推测屏障(speculationbarrier)”来实现,该“推测屏障”禁止在另外的指令中使用推测的数据值,直到已经确定那些推测的数据值是正确的为止。如前所述,数据推测是一种用于估计数据值的技术。因此,通过在确定控制流推测的状态时禁止发生数据值推测,可以确定实际上是否应该遵循分支。在一些实施例中,控制流推测的状态指示控制流推测是否正确发生。在条件分支指令的情况下,可能会发生控制流推测,在这种情况下本文档来自技高网...

【技术保护点】
1.一种装置,包括:/n输入电路,用于接收输入数据;/n输出电路,用于输出要由数据处理电路执行的指令序列;以及/n生成电路,用于执行生成过程以使用所述输入数据生成所述指令序列,其中,/n所述指令序列包括间接控制流指令,所述间接控制流指令包括指示所述间接控制流指令的目标存储在哪里的字段;/n所述生成过程使得所述指令序列中的至少一条指令在执行所述间接控制流指令之后存储控制流推测的状态;并且/n所述数据处理电路禁止所述指令序列中存储所述控制流推测的状态的至少一条指令经受数据值推测。/n

【技术特征摘要】
【国外来华专利技术】20180424 GB 1806638.1;20180706 GB 1811151.81.一种装置,包括:
输入电路,用于接收输入数据;
输出电路,用于输出要由数据处理电路执行的指令序列;以及
生成电路,用于执行生成过程以使用所述输入数据生成所述指令序列,其中,
所述指令序列包括间接控制流指令,所述间接控制流指令包括指示所述间接控制流指令的目标存储在哪里的字段;
所述生成过程使得所述指令序列中的至少一条指令在执行所述间接控制流指令之后存储控制流推测的状态;并且
所述数据处理电路禁止所述指令序列中存储所述控制流推测的状态的至少一条指令经受数据值推测。


2.根据权利要求1所述的数据处理装置,其中,
所述控制流推测的状态指示控制流推测是否正确发生。


3.根据前述权利要求中任一项所述的装置,其中,
所述指令序列中存储所述控制流推测的状态的至少一条指令适于使得所述数据处理电路执行比较并根据所述比较的结果来存储所述控制流推测的状态。


4.根据权利要求3所述的装置,其中,
所述输入数据包括多目标分支指令和变量;
所述多目标分支指令的目标是基于所述变量而确定的;并且
所述指令序列在所述目标处包括所述指令序列中存储所述控制流推测的状态的至少一条指令。


5.根据权利要求4所述的装置,其中,
所述多目标分支指令的目标是通过基于所述变量来执行计算而确定的;并且
所述比较在逻辑上与所述计算相对应。


6.根据权利要求4至5中任一项所述的装置,其中,
对于所述变量的多个定义的可能值中的每一个,存在相关联的目标值;并且
在每个目标处,所述比较确定所述变量的值是否对应于与该目标相关联的目标值。


7.根据权利要求6所述的装置,其中,
所述变量的定义的可能值的第一子集具有同一关联目标;并且
在所述同一关联目标处,所述比较确定所述变量的值是否对应于与所述同一关联目标相关联的任何目标值。


8.根据权利要求6至7中任一项所述的装置,其中,
所述变量的定义的可能值的第二子集具有不同关联目标;并且
在所述不同关联目标中的每一个处,如果所述比较指示对应关系,则出现到公共功能的分支。


9.根据权利要求5至8中任一项所述的装置,其中,
响应于与所述计算的结果相对应的所述比较的结果,所述控制流推测的状态指示控制流推测正确地发生。


10.根据前述权利要求中任一项所述...

【专利技术属性】
技术研发人员:理查德·威廉·恩肖克里斯托夫·埃瓦里斯特·乔治·贝尔斯詹姆斯·格林哈勒
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国;GB

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

1