掌桥专利:专业的专利平台
掌桥专利
首页

用于推测执行的安全预测器

文献发布时间:2023-06-19 12:07:15


用于推测执行的安全预测器

技术领域

本公开涉及用于推测执行的安全预测器。

背景技术

已经公开了依赖处理器分支预测和推测执行的边信道攻击。对于Intel x86处理器,这些攻击中的第一个最初被标记为Spectre,这些攻击的其他变体或类别也存在。简而言之,这些攻击依赖于训练分支预测器来执行攻击者选择的代码,以便在进程/上下文和/或权限级别改变后将目标的秘密数据加载到缓存存储器中。攻击者使用的目标代码可能是来自目标进程或共享库中的代码,因此目标进程执行该代码是合法的。在攻击者进程重新获得对处理器的控制后,攻击者可以测量从缓存中的同一位置读取数据所需的时间,从而确定缓存中存在哪些目标数据,并且因此确定目标进程中数据的价值。减少这些攻击对于安全且可靠的计算非常重要。

附图说明

当结合附图阅读时,从以下详细描述可以最好地理解本公开。需要强调的是,按照惯例,附图的各种特征并非按比例。相反,为了清楚,各种特征的尺寸被任意扩大或缩小。

图1是用于执行具有安全预测的指令的集成电路的示例的框图。

图2是用于安全预测的预测器电路的示例的框图。

图3是用于执行具有安全预测的指令的系统的示例的框图。

图4是用于执行具有安全预测的指令的技术的示例的流程图。

图5是用于在预测器的重置操作期间,基于预测器条目集合的子集来执行具有预测的指令的技术的示例的流程图。

具体实施方式

概述

本文公开了用于推测执行的安全预测器的实施方式。一些实施方式可以被用来比先前已知的解决方案更有效地消除或减少对处理器(例如,诸如x86、ARM和/或RISC-V CPU的CPU)的边信道攻击(例如,Spectre-类攻击)的可能性。

公开了用于安全预测的系统和方法。集成电路(例如,处理器或微控制器)可以被配置为解码和执行指令集架构(ISA)(例如,RISC V指令集)中的指令。集成电路可以实现流水线架构。集成电路可以包括预测器电路(例如,分支预测器),其用于通过减少流水线架构中执行指令的延迟来提高性能。预测器电路访问被放置在条目中的预测数据,这些预测数据可以被用来确定用于相应指令的预测。

集成电路可以被配置为检测针对正在由集成电路执行的软件,何时发生安全域转换。例如,可以基于隐含或明确地解码与安全域转换相关联的指令来检测安全域转换。例如,可以使用用于指示在软件中的安全域边界的特殊指令,或者可以将现有指令解释为使安全域转换。在一些实施方式中,可以基于接收中断信号来检测安全域转换。

当检测到安全域转换时,可以重置预测器的状态,包括预测器条目集合,以防止处于该状态的数据在安全域之间传递信息。由于预测器的状态可能很大并且重置整个状态可能需要多个时钟周期来完成,因此预测器可以被配置为在一种或多种受限模式下操作,以防止预测器在对重置操作指定的时间间隔期间,使用被标记为重置的预测器条目来生成预测。例如,在受限模式中,在重置的时间间隔期间,可以禁止预测器电路生成预测以促进推测执行。例如,在受限模式中,预测器电路可以被配置为在重置的时间间隔期间生成不依赖于预测器条目的静态预测。在一些实施方式中,预测器电路可以包括混合预测器,该混合预测器可以基于其预测器状态的子集来生成预测。例如,在受限模式中,预测器电路可以被配置为基于预测器条目的子集生成预测,而预测器条目中的不相交子集在被重置时不可使用。在一些实施方式中,重置操作的时间间隔的持续时间是固定的,这可以提供诸如防止经由时序变化泄漏信息和/或防止抖动(例如,对于实时应用)的益处。

如本文所用,术语“电路”指被构造为实现一个或多个功能的电子组件(例如,晶体管、电阻器、电容器和/或电感器)的布置。例如,电路可以包括互连以形成共同实现逻辑功能的逻辑门的一个或多个晶体管。

如本文所用,术语“微体系结构状态”指集成电路(例如,处理器或微控制器)的状态(例如,数据位)的一部分,其不能由集成电路执行的软件直接访问。例如,微体系结构状态可以包括存储在缓存中的数据和/或由控制流预测器存储的用于对控制流执行进行预测的数据。

详情

图1是用于执行具有安全预测的指令的集成电路110的示例的框图。例如,集成电路110可以是处理器、微处理器、微控制器或IP核。集成电路110包括预测器电路120和安全域转换检测电路130。例如,预测器电路120可以包括值预测器、存储器依赖预测器、预取预测器、控制流预测器、分支预测器、分支历史表、分支目标缓冲器和/或返回地址堆栈预测器。例如,预测器电路120可以被配置为当在第一模式(例如,标准或正常模式)下操作时,使用存储在从预测器条目集合中的任何中选择的一个或多个条目中的数据来生成用于指令的推测执行的预测。例如,安全域转换检测电路130可以检测集成电路110(例如,处理器)何时进行到不同进程的上下文切换,或从用户进程切换到操作系统(内核模式),或从操作系统切换到虚拟机管理程序(管理程序模式)。在一些实施方式中,安全域转换检测电路130可以基于指令的解码来检测转换,该指令明确或隐含地与安全域的转换相关联。在一些实施方式中,安全域转换检测电路130可以基于接收中断信号来检测转换。预测器电路120包括预测器重置电路140,其被配置为当安全域转换检测电路130检测到安全域转换事件时,重置预测器电路120的状态。例如,预测器条目集合可能全部或部分存储在SRAM中,并且可能需要多个时钟周期来完全重置。当正在执行重置操作时,预测器电路120可以被配置为避免使用被调度以重置的预测器状态中一些或全部(例如,预测器条目的子集)。例如,在用于执行重置的时间间隔期间,预测器电路120可以完全禁止预测、生成不依赖于任何预测器条目的静态预测,或者基于预测器条目集合中的已经被重置的子集(例如,存储在触发器中并且可以在检测到安全域转换时立即重置的条目的子集)来生成预测。例如,预测器电路120可以包括可以使用其预测器条目的子集生成预测的混合预测器。在一些实施方式中,可以在固定持续时间的时间间隔期间执行重置操作,这可以防止以重置延迟的形式泄露信息并防止抖动源(例如,以提高实时应用的性能)。例如,预测器电路120可以被实现为图2的预测器电路210。例如,集成电路110可以被用来实现图4的技术400。

例如,集成电路110可以被配置为使用安全域转换检测电路130,针对由集成电路110正在执行的软件,检测安全域转换,并且响应于安全域转换,将预测器电路的模式120从第一模式改变为第二模式,并且通过向预测器重置电路140输入重置信号来调用该预测器条目集合的重置。第二模式可以防止预测器电路120使用预测器条目集合中的预测器条目的至少第一子集以生成预测。集成电路110可以被配置为在完成预测器状态重置之后,将预测器电路的模式改变为第一模式以恢复正常预测。在一些实施方式中,集成电路110可以被配置为响应于重置的部分完成,将预测器电路120的模式改变为第三模式,该第三模式使得预测器电路120能够使用预测器条目集合中的已经被重置的第二子集,同时防止使用预测器条目集合中的尚未被重置的第三子集。第二子集和第三子集可以是非空并且是第一子集的不相交的子集。集成电路110可以被配置为在重置完成之前,基于第二子集中的预测器条目来生成预测。在一些实施方式中,在第二模式下操作防止预测器电路120生成预测。在一些实施方式中,在第二模式下操作防止预测器电路120使用预测器条目集合中的所有并且使预测器电路120生成静态预测。在一些实施方式中,在第二模式下操作使预测器电路120基于预测器条目集合中的与预测器条目的第一子集不相交的第二子集中的预测器条目来生成预测。例如,预测器电路120当在第一模式下操作时,可以基于根据预测器条目集合的第二子集确定的预测与根据预测器条目集合中的与第二集合不相交的一个或多个相应的附加子集确定的一个或多个预测的组合来生成预测。在一些实施方式中,安全域转换检测电路130被配置为基于对与安全域转换相关联的指令进行解码来检测安全域转换。在一些实施方式中,安全域转换检测电路130被配置为基于接收中断信号来检测安全域转换。在一些实施方式中,在调用重置和将预测器电路的模式改变为第一模式之间的时间间隔具有固定的持续时间,这可以防止经由重置操作的定时泄露信息和/或减少或消除抖动。

图2是用于安全预测的预测器电路210的示例的框图。预测电路210包括预测确定电路230;具有预测器条目的预测数据表240;预测更新电路250和预测器重置电路252。例如,预测确定电路230可以被配置为基于对应于指令的预测数据表240的条目中的数据来确定用于指令的预测260(例如,分支预测或值预测)。然而,当已经检测到安全域转换时,可以将预测器重置信号输入到预测器电路210以使得预测器重置电路252执行存储在预测数据表240中的预测器条目的重置,以及预测模式选择信号可以被输入到预测器电路210以修改预测确定电路生成预测260的方式。例如,改变预测器电路210的模式可以使预测260生成为不依赖于预测数据表240中的预测器条目的静态预测或阻止生成预测260。例如,改变预测器电路210的模式可以使得通过仅访问在重置操作的早期阶段已经被重置的预测数据表240中的预测器条目(例如,存储在触发器中的条目)的子集来生成预测260。例如,预测器电路210可以用在实现图4的技术400中。

例如,预测器电路210可以包括分支预测器并且预测260可以包括对是否将采用本分支指令的预测。例如,预测数据表240的条目可以包括反映最近已经采用对应分支指令的频率的相应计数器(例如,两位饱和计数器)。在一些实施方式中,预测器电路210包括分支历史表。例如,预测数据表240的条目可以包括反映最近对应分支指令的分支历史的相应移位寄存器。例如,预测数据表240的条目可以由程序计数器索引。在第一模式(例如,标准或正常模式)中,预测确定电路230可以被配置为基于对应于指令的预测数据表240的条目中的数据来确定用于该指令的预测260。例如,如果预测数据表240的对应条目中的饱和计数器高于阈值,则可以“采用”用于分支指令的预测260。例如,在第二模式(例如,受限重置模式)中,预测确定电路230可以被配置为将用于指令的预测260确定为静态预测。例如,在第二模式(例如,受限重置模式)中,预测确定电路230可以被配置为基于来自预测器条目集合中的在重置操作的早期阶段中已经被重置并且可用于安全使用的子集的数据来确定用于该指令的预测260。

预测更新电路250被配置为在执行指令后更新预测数据表240。例如,当采用分支指令时,预测更新电路250可以使对应于分支指令的预测数据表240的条目中的饱和计数器递增。例如,当不采用分支指令时,预测更新电路250可以使对应于分支指令的预测数据表240的条目中的饱和计数器递减。

预测器重置电路252可以被配置为对存储在预测数据表240中的预测器条目集合执行重置操作。例如,当检测到安全域转换时,预测器电路可以从检测器电路接收预测器重置信号,这可以使预测器重置电路252启动预测数据表240中的预测器条目的重置。例如,预测数据表240的一些或全部预测器条目可以被存储在SRAM中。重置(例如,将条目值设置为零或一些其他默认值或初始值)所有预测器条目可能需要多个时钟周期。例如,可以在跨越多个时钟周期的时间间隔期间,由预测器重置电路252执行完全重置操作。在一些实施方式中,预测数据表240的一些预测器条目可以被存储在触发器或寄存器中,当接收到预测器重置信号时,其可以在单个时钟周期内被清零或重置。例如,可以在接收到预测器重置信号后的第一个时钟周期内,清零存储在触发器中的预测器条目的子集,而可以在更长时间间隔的过程中,重置被存储在SRAM中的预测器条目的另一个不相交子集(例如,利用对SRAM的不同部分进行一系列写入)。

图3是用于执行具有安全预测的指令的系统300的示例的框图。系统300包括存储指令的存储器302和被配置为执行指令的集成电路310。例如,集成电路310可以是处理器、微处理器、微控制器或IP核。集成电路310包括互连接口电路312;高速缓存314;指令解码缓冲器320,其被配置为存储从存储器302中取出的指令;指令解码器电路330,其被配置为对来自指令解码缓冲器320的指令进行解码并且将对应微指令传递给一个或多个执行资源电路(340、342、344和346)以供执行;预测器电路350;以及安全域转换检测电路360。例如,预测器电路350可以被实现为图2的预测器电路210。例如,集成电路310可以被配置为实现图4的技术400。

互连接口电路312(例如,总线接口电路)被配置为向包括存储器302的外部设备传输数据以及从其接收数据。例如,互连接口电路312可以被配置为从存储器302提取指令并将它们存储在指令解码缓冲器320,同时指令由集成电路310的流水线架构处理。例如,互连接口电路312可以被配置为在流水线的回写阶段期间,将由执行指令产生的数据写入存储器302。例如,互连接口电路312可以提取数据块(例如,指令)。互连接口电路312可以被配置为使用高速缓存314来优化数据传输。

集成电路310包括指令解码缓冲器320,其被配置为存储从存储器302提取的指令,同时它们被解码用于执行。例如,指令解码缓冲器320可以具有有助于集成电路310的流水线和/或超标量架构的深度(例如,4、8、12、16或24条指令)。指令可以是集成电路310支持的指令集合(例如,RISC V指令集合、x86指令集合、ARM指令集合或MIPS指令集合)的成员。

集成电路310包括一个或多个执行资源电路(340、342、344和346),其被配置为执行指令或微指令以支持指令集合。例如,指令集合可以是RISC V指令集合。例如,一个或多个执行资源电路(340、342、344和346)可以包括加法器、移位器(例如桶形移位器)、乘法器和/或浮点单元。一个或多个执行资源电路(340、342、344和346)可以基于执行指令的结果,更新集成电路310的状态,包括内部寄存器和/或标志或状态位(图3中未明确示出)和微架构状态。指令的执行结果也可以被写入存储器302(例如,在流水线执行的后续阶段期间)。

集成电路310包括指令解码器电路330,其被配置为对指令解码缓冲器320中的指令进行解码。指令解码缓冲器320可以使用一个或多个执行资源电路(340、342、344和346),将指令转换成集成电路310内部执行的对应微指令。指令解码器电路330被配置为使用来自预测器电路350的预测来调度用于执行的指令并且实现推测执行。

集成电路310包括预测器电路350,其被配置为生成预测以使得能够推测执行。预测器电路350的预测器条目可以存储用于确定用于指令(例如,分支指令)的预测的数据(例如,计数器)。例如,预测器电路350可以包括值预测器、存储器依赖预测器、预取预测器、控制流预测器、分支预测器、分支历史表、分支目标缓冲器和/或返回地址堆栈预测器。例如,预测器电路350可以被配置为当在第一模式(例如,标准或正常模式)下操作时,使用存储在从预测器条目集合的任何中选择的一个或多个条目中的数据以生成用于指令的推测执行的预测。预测器电路350可以支持预测器条目集合的重置,当在由集成电路310正在执行的软件中发生安全域转换时可以调用该重置,以防止预测器条目的数据被用作边信道信息泄漏。由于重置操作可能需要一个以上的时钟周期来完成,因此预测器电路350还可以支持限制性模式,该模式防止在为执行重置操作分配的时间间隔期间使用为重置而调度的预测器条目。例如,预测器电路350可以支持禁用预测器电路350并且在为重置预测器状态而分配的时间间隔期间防止生成预测的限制性模式。例如,预测器电路350可以支持限制性模式,该模式使预测器电路350在为重置预测器状态分配的时间间隔期间生成静态预测。例如,预测器电路350可以支持限制性模式,该模式使得预测器电路350仅使用在重置操作的早期阶段期间已经被重置的预测器条目的子集来生成预测。在一些实施方式中,预测器电路350是混合预测器,其被配置为基于预测器条目集合的一个或多个子集生成预测。例如,预测器电路350可以使用多数投票方案、子集的固定层级或优先级、从可用子集选择其中的预测的元预测、或基于用于对使用相应子集生成的预测的预测置信度得分,来组合来自预测器条目的多个相应子集的预测。例如,这些混合方案可以被用来在重置操作期间预测器条目集合的部分不可用时确定合理的预测。

集成电路310包括安全域转换电路360,其被配置为检测由集成电路310正在执行的软件何时从一个安全域改变到另一安全域。例如,当集成电路310执行到不同进程的上下文切换、或接收中断、或从用户进程切换到操作系统、或从操作系统切换到虚拟机管理程序时,安全域转换检测电路360可以检测到转换。在一些实施方式中,安全域转换检测电路360可以基于解码(例如,使用指令解码器电路330)与安全域转换相关联的指令来检测安全域转换。解码的指令可以明确或隐含地与安全域的转换相关联。例如,解码的指令可以是专门的指令,其明确目的是发信号告知软件编写者的意图以强制执行就在指令之前或之后的安全域边界。例如,该指令可以是与安全域转换隐含关联的过程调用或返回指令。在一些实施方式中,安全域转换检测电路360可以基于接收中断信号来检测安全域转换。当检测到安全域转换时,安全域转换检测电路360可以向预测器电路350发出模式选择信号和/或重置信号。

例如,集成电路310可以被配置为使用安全域转换检测电路360,对由集成电路310正在执行的软件检测安全域转换,并且响应于安全域转换,将预测器电路的模式350从第一模式改变到第二模式并调用预测器条目集合的重置。第二模式可以防止预测器电路350使用预测器条目集合中的预测器条目的至少第一子集来生成预测。集成电路310可以被配置为在完成重置之后,将预测器电路的模式改变为第一模式以恢复正常预测。在一些实施方式中,集成电路310可以被配置为响应于重置的部分完成,将预测器电路350的模式改变为第三模式,该第三模式使得预测器电路350能够使用预测器条目集合中的已经被重置的第二子集,同时防止使用预测器条目集合中的尚未被重置的第三子集。第二子集和第三子集可以是非空并且是第一子集的不相交的子集。集成电路310可以被配置为在重置完成之前,基于第二子集中的预测器条目来生成预测。在一些实施方式中,在第二模式下操作防止预测器电路350生成预测。在一些实施方式中,在第二模式下操作防止预测器电路350使用预测器条目集合中的所有并且使预测器电路350生成静态预测。在一些实施方式中,在第二模式下操作使预测器电路350基于预测器条目集合中的与预测器条目的第一子集不相交的第二子集中的预测器条目来生成预测。例如,预测器电路350当在第一模式下操作时,可以基于根据预测器条目集合的第二子集确定的预测与根据预测器条目集合中的与第二集合不相交的一个或多个相应的附加子集确定的一个或多个预测的组合来生成预测。在一些实施方式中,安全域转换检测电路360被配置为基于对与安全域转换相关联的指令进行解码来检测安全域转换。在一些实施方式中,安全域转换检测电路360被配置为基于接收中断信号来检测安全域转换。在一些实施方式中,在调用重置和将预测器电路的模式改变为第一模式之间的时间间隔具有固定的持续时间,这可以防止经由重置操作的定时泄露信息和/或减少或消除抖动。

图4是用于执行具有安全预测的指令的技术400的示例的流程图。技术400包括检测用于由集成电路正执行的软件的安全域转换(410);响应于安全域转换,调用预测器条目集合的重置(420)并且将预测器电路的模式从第一模式改变到第二模式(430);在重置时间间隔期间,继续执行将一种或多种限制模式用于限制对预测器条目的访问的预测器电路(440);以及在完成重置之后,将预测器电路的模式改变到第一模式(450),并且继续使用具有对预测器条目的完全访问的第一模式执行(460)。例如,预测器电路可以包括控制流预测器、值预测器、分支预测器、分支历史表、分支目标缓冲器和/或返回地址堆栈预测器。例如,可以使用图1的集成电路110来实现技术400。例如,可以使用图2的预测器电路210来实现技术400。例如,可以使用图3的系统300来实现技术400。

技术400包括对由集成电路(例如,集成电路310)正执行的软件检测安全域转换(410),该集成电路包括预测器电路,该预测器电路被配置为当在第一模式(例如,标准或正常标准)中操作时,使用存储在从预测器条目集合中的任何选择的一个或多个条目中的数据来生成用于指令的推测执行的预测。在一些实施方式中,可以基于解码与安全域转换相关联的指令来检测安全域转换(410)。例如,可以解码可以被用来明确地指示软件中的安全域边界的特殊指令。例如,服务于另一目的的指令(例如,过程调用或返回指令)可以与安全域转换隐含地相关联,并且可以基于对这些隐含关联指令之一的解码来检测安全域转换(410)。在一些实施方式中,基于接收中断信号来检测安全域转换(410)。例如,某些中断可能与安全域转换相关联,或者所有中断都可能与安全域转换相关联。在一些实施方式中,基于对指令进行解码并且还基于与安全域转换相关联的集成电路(例如,处理器)的内部状态来检测安全域转换(410)。例如,可以基于解码或执行异常返回指令并且基于具有与安全域转换相关联的值的目的地的特权模式来检测安全域转换(410),其中,处理器状态记录将返回哪一特权模式。

当(在操作415)已经检测到安全域转换时,技术400包括响应于安全域转换,将预测器电路的模式从第一模式改变到第二模式(430)并调用预测器条目集合的重置(420)。第二模式可以防止预测器电路使用预测器条目集合中的预测器条目的至少第一子集来生成预测。例如,在第二模式下操作可以防止预测器电路生成预测。例如,在第二模式下操作可以防止预测器电路使用预测器条目集合中的所有并且可以使预测器电路生成静态预测。在一些实施方式中,在第二模式下操作使预测器电路基于预测器条目集合中的与预测器条目的第一子集不相交的第二子集中的预测器条目来生成预测。例如,预测器电路可以包括混合预测器,该混合预测器能够基于包括在其预测器状态中的预测器条目的一个或多个子集来生成预测。例如,预测器电路可以使用多数投票方案、子集的固定层级或优先级、从可用子集选择其中的预测的元预测、或基于对使用相应子集生成的预测的预测置信度得分,来组合来自预测器条目的多个相应子集的预测。在正常模式下,预测器电路可以通过组合基于预测器条目集合的多个子集的预测来生成预测。例如,预测器电路当在第一模式下操作时,可以基于根据预测器条目集合的第二子集确定的预测与根据预测器条目集合中的与第二集合不相交的一个或多个相应的附加子集的一个或多个预测的组合来生成预测。例如,在第二模式(例如,限制模式)中,预测器电路可以被配置为仅基于预测器条目的一个或多个子集来确定预测,因为它们在重置操作期间变得可用。

技术400包括继续执行对预测器电路使用在重置时间间隔期间限制对预测器条目的访问的一种或多种限制模式(440)。例如,继续执行指令(440)可以包括使用由在第二模式下操作的预测器电路确定的预测来促进推测执行。在一些实施方式中,当在第二模式下操作时,预测器电路不生成预测,并且在没有推测执行的益处的情况下执行继续(440),直到重置操作完成。例如,图5的技术500可以被实现以利用预测器条目集合的附加部分,因为它们在重置操作期间变得可用以提高预测器的性能以继续推测执行(440)。

当(在操作445)重置完成时,技术400包括在完成重置之后将预测器电路的模式改变为第一模式(例如,标准或正常模式)(450)。在一些实施方式中,在调用重置(420)和将预测器电路的模式改变为第一模式(450)之间的时间间隔具有固定持续时间。将该时间间隔限制为具有固定的持续时间可以提供益处,诸如防止以定时信息的形式跨越安全域边界泄漏信息和/或防止抖动源(例如,对于实时应用)。

在预测器电路的模式已经改变回到第一模式(例如,标准或正常模式)(450)之后,技术400包括使用具有对预测器条目的完全访问权的第一模式继续执行(460)。在用预测更新(例如,使用预测更新电路250)的继续执行(460)一段时间之后,包括预测器条目集合的预测器状态可以稳定并收敛到调整到新安全域内的条件的有用值。图5是用于在预测器的重置操作期间,基于预测器条目集合的子集,执行具有预测的指令的技术500的示例的流程图。

图5是用于在预测器的重置操作期间,基于预测器条目集合的子集执行具有预测的指令的技术500的示例的流程图。技术500包括响应于重置的部分完成,将预测器电路的模式改变到第三模式(例如,附加的限制较少的模式)(510),这使得预测器电路能够使用预测器条目集合中、已经被重置的第二子集同时阻止使用预测器条目集合中的尚未被重置的第三子集。第二子集和第三子集可以是非空且第一子集的不相交的子集。技术500包括在完成重置之前,基于第二子集中的预测器条目生成预测(520)。例如,当这些子集在重置操作期间变得可用时,技术500可以被用来利用混合预测器中的预测器条目的附加子集。

在第一方面,本说明书中描述的主题可以被体现在用于执行指令的集成电路中,该集成电路包括预测器电路,该预测器电路被配置为当在第一模式下操作时,使用存储在从预测器条目集合中的任何选择的一个或多个条目中的数据来生成用于指令的推测执行的预测,其中,该集成电路被配置为:检测由集成电路正执行的软件的安全域转换;响应于安全域转换,将预测器电路的模式从第一模式改变为第二模式并且调用预测器条目集合的重置,其中,第二模式防止预测器电路使用预测器条目集合中的预测器条目的至少第一子集以生成预测;以及在重置完成后,将预测器电路的模式改变为第一模式。

在第二方面,本说明书中描述的主题可以被体现在包括检测正由集成电路执行的软件的安全域转换的方法中,该集成电路包括预测器电路,该预测器电路被配置为当在第一模式下操作时,使用存储在从预测器条目集合中的任何选择的一个或多个条目中的数据来生成用于指令的推测执行的预测;响应于安全域转换,将预测器电路的模式从第一模式改变为第二模式并且调用预测器条目集合的重置,其中,第二模式防止预测器电路使用预测器条目集中的预测器条目的至少第一子集以生成预测;以及在重置完成后,将预测器电路的模式改变为第一模式。

虽然已经结合某些实施例描述了本公开,但是应当理解到,本公开不限于所公开的实施例,相反,旨在涵盖包括在所附权利要求的范围内的各种修改和等效布置,其范围被赋予最广泛的解释,以涵盖法律允许的所有这类修改和等效结构。

相关技术
  • 用于推测执行的安全预测器
  • 在超越控制分支预测器中的推测历史转递以及相关电路、方法和计算机可读媒体
技术分类

06120113170733