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

维持推测的状态制造技术

技术编号:26483623 阅读:44 留言:0更新日期:2020-11-25 19:31
提供了一种装置,其包括输入电路,该输入电路接收输入数据。输出电路输出要由数据处理电路执行的指令序列,这些指令中的至少一些被分组到功能中,并且生成电路执行生成过程以使用输入数据来生成指令序列。生成过程使指令序列中的指令中的至少一个指令存储在指令序列的执行期间执行的控制流推测的状态,并且所存储的控制流推测的状态在功能之间被维持。

【技术实现步骤摘要】
【国外来华专利技术】维持推测的状态
本技术涉及数据处理。具体而言,本技术与推测执行的领域相关。
技术介绍
推测执行是一种技术,其中在知道是否应当执行一系列指令之前执行那些指令。在以后的某个时间点,确定是否应当执行推测执行的指令。如果是,则过程继续。如果不是,则执行被“倒回”。这种形式的推测被称为控制流推测。在某些情况下,已经发现这样的推测执行导致安全漏洞。例如,可以使处理器推测地执行特权代码以将受保护的数据不必要地加载到缓存中。由于在倒回后缓存可能未被清除,因此所请求的数据可以使用旁路攻击被探查。另一种形式的推测是数据值推测,其中在已知指令的所有输入之前推测该指令所产生的结果值。
技术实现思路
本技术认识到期望在发生控制流推测之处保持数据安全。从第一示例配置来看,提供了一种装置,其包括:输入电路,用于接收输入数据;输出电路,用于输出要由数据处理电路执行的指令序列,这些指令中的至少一些指令被分组到功能中;以及生成电路,用于执行生成过程以使用输入数据来生成指令序列,其中,该生成过程使指令序列中的指令中的至少一个指令存储在指令序列的执行期间执行的控制流推测的状态;并且所存储的控制流推测的状态在功能之间被维持。从第二示例配置来看,提供了一种方法,其包括:接收输入数据;执行生成过程以使用输入数据来生成指令序列;以及输出要由数据处理电路执行的指令序列,这些指令中的至少一些指令被分组到功能中,其中,该生成过程使指令序列中的指令中的至少一个指令存储在指令序列的执行期间执行的控制流推测的状态;并且所存储的控制流推测的状态在功能之间被维持。从第三示例配置来看,提供了一种装置,其包括:用于接收输入数据的装置;用于输出要由数据处理电路执行的指令序列的装置,这些指令中的至少一些指令被分组到功能中;以及用于执行生成过程以使用输入数据来生成指令序列的装置,其中该生成过程使指令序列中的指令中的至少一个指令存储在指令序列的执行期间执行的控制流推测的状态;并且所存储的控制流推测的状态在功能之间被维持。附图说明将参考如附图所示的本技术的实施例仅通过示例的方式来进一步描述本技术,其中:图1示出了根据一些实施例的装置;图2示出了分支指令的行为,并被用于演示一种形式的推测执行;图3示出了条件选择指令的示例;图4a和图4b示出了根据一些实施例的输入数据到输出指令序列的转换,该输出指令序列包含数据值推测限制的指令,从而使能控制流未命中推测(miss-speculation)跟踪;图5a、图5b和图5c示出了根据一些实施例的输入数据到输出指令序列的转换,该输出指令序列包含跨功能调用边界的符合ABI的控制流未命中推测跟踪;图6示出了可以如何组合几种涉及转换的技术;图7示出了根据一些实施例的装置;图8示出了根据一些实施例的流程图形式的数据处理方法;并且图9示出了根据一些实施例的流程图形式的数据处理方法。具体实施方式在参考附图讨论实施例之前,提供了对实施例和相关优点的以下描述。根据一个方面,提供了一种装置,其包括:输入电路,用于接收输入数据;输出电路,用于输出要由数据处理电路执行的指令序列,这些指令中的至少一些指令被分组到功能中;以及生成电路,用于执行生成过程以使用输入数据来生成指令序列,其中该生成过程使指令序列中的指令中的至少一个指令存储在指令序列的执行期间执行的控制流推测的状态;并且所存储的控制流推测的状态在功能之间被维持。以上装置可以采取将输入指令转换为输出指令的编译器的形式。输入电路接收输入数据,并且输出电路输出要由数据处理电路执行的指令序列。生成电路对输入数据执行生成过程,以便生成指令序列。该生成过程使所输出的指令中的至少一个指令存储在指令正在被执行时控制流推测的状态。该状态在功能之间被维持,例如在功能调用和从功能调用返回期间。在这种情况下,可能可以在另一个功能中访问在一个功能中建立的推测状态。输入数据可以通过生成过程被从第一语言转化成可由数据处理电路(其可以是处理电路本身)执行的第二语言。在其他实施例中,输入数据可以是以与所输出的指令序列相同的语言,并且生成过程可以使附加指令被添加以建立控制流推测的状态。在一些实施例中,控制流推测的状态指示控制流推测是否正确地发生。控制流推测可以发生在条件分支指令的情况下,其中进行分支预测以确定关于获取、解码和开始执行进一步的指令是否应当遵循该分支,直到该分支的结果已知为止。在这些实施例中,提供了指示推测是否正确地发生的指令。在一些实施例中,指令序列中的指令中存储控制流推测状态的至少一个指令被数据处理电路阻止经历(subjectto)数据值推测。这可以通过例如配设“推测屏障”来实现,该“推测屏障”禁止在进一步的指令中使用推测的数据值,直到已经确定那些推测的数据值是正确的为止。如前所述,数据推测是一种用于估计数据值的技术。因此,通过在确定控制流推测的状态时禁止发生数据值推测,可以确定实际上是否应该遵循分支。在一些实施例中,指令序列中的指令中存储控制流推测状态的至少一个指令适于使数据处理电路执行比较并根据比较结果存储控制流推测的状态。执行比较以确定控制流推测是否应当引起分支。控制流推测的状态然后被存储,使得其在其他地方的其他计算中可以被引用或使用。在一些实施例中,输入数据包括条件分支指令,该条件分支指令包括条件和当该条件被满足时分支到的目标;并且指令序列在该目标处包括指令序列中的指令中存储控制流推测状态的至少一个指令。存储控制流推测状态的指令发生在可能经历控制流推测的分支指令之后。因此,在发生控制流推测的情况下,可以确定分支决定是否正确。在一些实施例中,比较在逻辑上与条件相对应。将会认识到,如果由确定控制流推测状态的指令执行的比较与条件分支指令中的条件相匹配,则控制流推测的状态与是否应当采取条件分支相匹配。这里,术语“在逻辑上与…相对应”意味着条件和比较具有逻辑等价。如技术人员将知道的,这可以使用布尔真值表来建立。在一些实施例中,响应于与条件未被满足相对应的比较结果,控制流推测的状态指示控制流推测不正确地发生。在一些实施例中,指令序列的至少子集符合应用二进制接口;并且所存储的控制流推测的状态通过以下操作在功能之间被维持:将根据应用二进制接口的非法值存储在存储电路中。应用二进制接口(ABI)规定软件应当如何使用某些硬件元素。例如,ABI可以规定调用约定(例如,不同的值将如何被存储在寄存器和/或堆栈中以便执行功能调用或从功能调用返回)。因此,ABI可以规定特定的寄存器应当/不应当存储特定的值。无论如何,在这样的实施例中,尽管多个指令的至少子集符合ABI,但是(根据ABI的)“非法”(例如,不允许的)值被存储在存储电路中,以便在功能之间维持控制流推测的状态。以这种方式,由于存储电路中的“非法”值的存在应当没有效果,因此与现有系统的兼容性可以被维持。在一些实施例中,所存储的控制流推测的状态通过以下操作在至少一些功能内被维持:存储根据应用二进制接口的合本文档来自技高网...

【技术保护点】
1.一种装置,包括:/n输入电路,用于接收输入数据;/n输出电路,用于输出要由数据处理电路执行的指令序列,这些指令中的至少一些指令被分组到功能中;和/n生成电路,用于执行生成过程以使用所述输入数据来生成所述指令序列,其中,/n所述生成过程使所述指令序列中的至少一个指令存储控制流推测的状态,该控制流推测是在所述指令序列的执行期间执行的;并且/n所存储的控制流推测的状态在这些功能之间被维持。/n

【技术特征摘要】
【国外来华专利技术】20180424 GB 1806638.11.一种装置,包括:
输入电路,用于接收输入数据;
输出电路,用于输出要由数据处理电路执行的指令序列,这些指令中的至少一些指令被分组到功能中;和
生成电路,用于执行生成过程以使用所述输入数据来生成所述指令序列,其中,
所述生成过程使所述指令序列中的至少一个指令存储控制流推测的状态,该控制流推测是在所述指令序列的执行期间执行的;并且
所存储的控制流推测的状态在这些功能之间被维持。


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


3.根据任一前述权利要求所述的数据处理装置,其中,
所述指令序列中存储控制流推测的所述状态的所述至少一个指令被所述数据处理电路阻止经历数据值推测。


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


5.根据权利要求4所述的装置,其中,
所述输入数据包括条件分支指令,该条件分支指令包括条件和当该条件被满足时要分支到的目标;并且
所述指令序列在所述目标处包括所述指令序列中存储控制流推测的所述状态的所述至少一个指令。


6.根据权利要求5所述的装置,其中,
所述比较在逻辑上与所述条件相对应。


7.根据权利要求6所述的装置,其中,
响应于与所述条件未被满足相对应的所述比较的结果,控制流推测的所述状态指示控制流推测不正确地发生。


8.根据任一前述权利要求所述的装置,其中,
所述指令序列的至少子集符合应用二进制接口;并且
所存储的控制流推测的状态通过以下操作来在所述功能之间被维持:将根据所述应用二进制接口的非法值存储在存储电路中。


9.根据权利要求8所述的装置,其中,
所存储的控制流推测的状态通过以下操作来在所述功能中的至少一些功能之内被维持:存储根据所述应用二进制接口的合法值。


10.根据权利要求8-9中任一项所述的装置,其中,
响应于控制流推测的所述状态指示发生未命中推测,所述非...

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

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

1