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

使用间接控制流指令的推测制造技术

技术编号:26483625 阅读:45 留言:0更新日期:2020-11-25 19:31
提供了用于接收输入数据的输入电路。输出电路输出要由数据处理电路执行的指令序列。生成电路执行生成过程以使用所述输入数据生成所述指令序列,其中所述指令中的至少一些指令被分组为函数。所述指令序列包括间接控制流指令,所述间接控制流指令包括指示所述间接控制流指令的目标存储在何处的字段。目标是所述函数之一的入口点,并且所述生成过程使所述指令序列中的至少一条指令在执行所述间接控制流指令之后存储控制流推测状态。

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

【技术保护点】
1.一种设备,所述设备包括:/n输入电路,用于接收输入数据;/n输出电路,用于输出要由数据处理电路执行的指令序列;以及/n生成电路,用于执行生成过程以使用所述输入数据生成所述指令序列,所述指令中的至少一些指令被分组为函数,其中/n所述指令序列包括间接控制流指令,所述间接控制流指令包括指示所述间接控制流指令的目标存储在何处的字段;/n所述目标是所述函数中的一个函数的入口点;并且/n所述生成过程使所述指令序列中的至少一条指令在执行所述间接控制流指令之后存储控制流推测状态。/n

【技术特征摘要】
【国外来华专利技术】20180424 GB 1806638.1;20180706 GB 1811154.21.一种设备,所述设备包括:
输入电路,用于接收输入数据;
输出电路,用于输出要由数据处理电路执行的指令序列;以及
生成电路,用于执行生成过程以使用所述输入数据生成所述指令序列,所述指令中的至少一些指令被分组为函数,其中
所述指令序列包括间接控制流指令,所述间接控制流指令包括指示所述间接控制流指令的目标存储在何处的字段;
所述目标是所述函数中的一个函数的入口点;并且
所述生成过程使所述指令序列中的至少一条指令在执行所述间接控制流指令之后存储控制流推测状态。


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


3.根据前述权利要求中任一项所述的数据处理设备,其中
所述指令序列中的存储所述控制流推测状态的所述至少一条指令被禁止经受所述数据处理电路的数据值推测。


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


5.根据权利要求4所述的设备,其中
所述输入数据包括对所述函数中的一个函数的调用;并且
所述指令序列在所述目标处包括所述指令序列中的存储所述控制流推测状态的所述至少一条指令。


6.根据权利要求5所述的设备,其中
所述指令序列中与所述调用相关联的所述目标是通过基于所述调用和进行所述调用所针对的数据结构执行查找操作而确定的。


7.根据权利要求6所述的设备,其中
所述调用是虚函数调用;
对与所述数据结构相关联的虚拟表执行所述查找操作,所述虚拟表包括对与所述数据结构相关联的虚函数的入口点的一个或多个引用;并且
在每个所述入口点处,所述比较确定该入口点的地址是否与所述虚拟表中存储的该入口点的地址相对应。


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


9.根据前述权利要求中任一项所述的设备,其中
所述指令序列的至少一个子集符合应用二进制接口;...

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

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

1