防止针对重排序缓冲器的基于定时的安全攻击制造技术

技术编号:29503151 阅读:18 留言:0更新日期:2021-07-30 19:18
本公开描述了涉及重排序缓冲器并且用于防止基于定时的安全攻击的方法、系统和设备。处理器可具有被配置成用于乱序执行指令的功能单元、被配置成用于缓冲指令的执行结果以按顺序输出的重排序缓冲器、以及被配置成用于随机化所述重排序缓冲器中的数据定时的控制器。例如,所述控制器可以在缓冲和/或分类执行结果时对所述重排序缓冲器的容量进行随机调整,从而随机化所述重排序缓冲器中的数据定时。

【技术实现步骤摘要】
【国外来华专利技术】防止针对重排序缓冲器的基于定时的安全攻击相关申请本申请要求于2018年12月5日提交的、申请序列号为16/210,609、名称为“防止针对重排序缓冲器的基于定时的安全攻击(ProtectionagainstTiming-basedSecurityAttacksonRe-OrderBuffers)”的美国专利申请的优先权,其全部公开内容在此引入作为参考。
本文所公开的至少一些实施例总体上涉及计算机体系结构,并且更具体地但不限于,涉及防止针对重排序缓冲器的安全攻击的技术。
技术介绍
指令通常被编程为按顺序执行。指令的程序顺序是指令被编程用于在处理器中执行的顺序。可以根据替代顺序执行一些指令,并且获得与根据程序顺序执行指令相同的结果。乱序执行已在一些处理器中实现,以提高处理器的处理能力的利用率并提高执行具有指令序列的程序的整体速度。例如,当处理器将要处理被配置成用于对操作数进行操作的指令时,该操作数可处于从高速缓冲存储器或主存储器或存储装置加载的过程中。然而,程序顺序中的下一指令的操作数可能已经准备就绪在处理器中进行处理。因此,处理器可执行下一指令,而非暂停指令的执行以等待正从高速缓冲存储器、主存储器或存储装置加载的操作数。指令的“数据顺序”是指令的数据或操作数在处理器中变得可用于处理的顺序。数据顺序通常不同于当代处理器设计中的程序顺序。处理器可以被配置成用于根据指令的数据顺序而不是指令的程序顺序来执行指令。重排序缓冲器可用于在时间上保持在其程序顺序之外执行的指令的执行结果。例如,可以按照指令的数据顺序来执行指令。存储在重排序缓冲器中的结果可以以相应指令的程序顺序移出重排序缓冲器,就好像通过根据程序顺序执行指令来生成结果一样。例如,3个指令的序列可为用以将操作数A加载到第一寄存器中的第一指令(例如,“加载A,r1”),用以将另一操作数B加载到第二寄存器中的第二指令(例如,“加载B,r2”),以及用以将数字添加到第二寄存器的第三指令(例如,“添加#1,r2”)。可以在执行第一指令(例如“加载A,r1”)之前乱序执行第二指令(例如“加载B,r2”),执行第三指令(例如“添加#1,r2”),然后执行第一指令(例如“加载A,r1”)。当存储器系统可在操作数A之前返回操作数B时,此替代执行序列可为合意的。例如,当数据以B,#1,A的顺序就绪时,指令可以以“加载B,r2”、“添加#1,r2”和“加载A,r1”的顺序执行,这不同于程序顺序“加载A,r1”、“加载B,r2”和“添加#1,r2”。乱序执行的实现可能存在安全漏洞。计算机处理器中的这种安全漏洞的示例包括2018年公开的Meltdown和Spectre。例如,安全漏洞可允许从特权安全边界高速缓存数据,从而导致可被定时以泄漏特权信息的竞争条件。特权安全边界中的数据的实例是位于操作系统内核中的数据。附图说明在附图中以示例而非限制的方式示出了实施例,在附图中相同的附图标记表示相同的元件。图1示出了根据一个实施例被配置成用于防止针对重排序缓冲器的基于定时的安全攻击的缓冲器控制器。图2示出了根据一个实施例由缓冲器容量控制器控制的乱序执行。图3示出了根据一个实施例防止针对重排序缓冲器的基于定时的安全攻击的方法。图4示出了其中可以实现图3的方法的计算系统。具体实施方式本公开包括用于防止针对重排序缓冲器的基于定时的安全攻击的技术。基于定时的安全攻击依赖于重排序缓冲器中的结果的定时模式。通过随机化在重排序缓冲器中结果的定时模式,可以防止和/或使得难以实施这种攻击。例如,重排序缓冲器中的结果的定时模式可以取决于重排序缓冲器的操作容量。可用于对在其程序顺序之外执行的指令的结果重新排序的重排序缓冲器的实际/操作容量可随时间随机改变,使得定时模式随时间改变。这种容量调整可以在时间上随机地执行,或者周期性地执行,以在重排序缓冲器中的结果的定时中引入随机性。图1示出了根据一个实施例被配置成用于防止针对重排序缓冲器(113)的基于定时的安全攻击的缓冲器控制器(115)。例如,缓冲器控制器(115)可以在图4所示的计算机系统的处理器中实现。在图1中,重排序缓冲器(113)被配置成用于以执行指令的顺序接收指令的结果。重排序缓冲器(113)中的结果可移出重排序缓冲器(113)以用于基于“分级顺序”提交到处理器(例如,图4中的181)的寄存器堆、处理器的高速缓冲存储器、和/或处理器外部的存储器中。指令在重排序缓冲器(113)中的结果的分级顺序是指令的结果被提交和指令被引退完成的顺序;并且分级顺序(引退顺序或提交顺序)通常被配置成与指令的程序顺序一致。即将在程序顺序中较早执行的指令的执行结果将较早从重排序缓冲器(113)分级。当在程序顺序中的指令之前编程的指令的结果准备就绪移出重排序缓冲器(113)以供提交时,可将指令的结果移出重排序缓冲器(113)以供提交。在一些示例中,一些指令可以在并行单元、线程或流水线中执行;并且来自重排序缓冲器(113)的分级顺序(引退顺序或提交顺序)保持顺序一致性。通常,顺序一致性要求任何执行的结果与指令按其程序指定的顺序执行的结果相同。对寄存器的提交可称为对寄存器的写入。因此,可通过被配置成用于将结果写入到寄存器的处理器将结果提交到寄存器。重排序缓冲器(113)的容量确定了在结果可以从重排序缓冲器(113)分级之前可以乱序执行的指令序列的深度。使用不同容量的重排序缓冲器(例如,113)执行的同一组指令可以在重排序缓冲器(113)中具有不同的结果缓冲定时。因此,改变重排序缓冲器(113)的容量可以改变乱序执行的模式。使重排序缓冲器(113)的容量的改变随机化可以在重排序缓冲器(113)中的数据定时中引入随机性,并且因此去除重排序缓冲器(113)中的定时的可预测性,并且阻止或防止针对重排序缓冲器(113)的基于定时的安全攻击。在一些示例中,重排序缓冲器(113)具有预定的全容量。缓冲器控制器(115)识别重排序缓冲器(113)的可用容量,用于对按指令的实际执行/完成的顺序提供的输入结果(111)进行排序。当达到由缓冲器控制器(115)识别的可用容量时,防止超出用于每个重排序缓冲器(113)的指令集的指令的乱序执行可以缓冲其结果,直到重排序缓冲器中的一些结果从重排序缓冲器(113)分级。重排序缓冲器(113)的可用容量可以是重排序缓冲器(113)的预定全容量的随机部分。重排序缓冲器(113)的可用容量中的随机性可以破坏或削弱重排序缓冲器(113)的定时的可预测性,从而防止对重排序缓冲器(113)的基于定时的安全攻击。在一些示例中,重排序缓冲器(113)可以具有动态分配的容量,用于将执行顺序(111)中的结果排序为分级顺序(117)中的结果。缓冲器控制器(115)控制重排序缓冲器(113)的容量的动态分配(例如,基于随机数生成器的输出)。在一些示例中,多个处理核心可分别具有多个重排序缓冲器(例如,113)。缓冲器控本文档来自技高网...

【技术保护点】
1.一种方法,其包括:/n根据与指令被编程的顺序不同的顺序在处理器中执行所述指令;/n在所述处理器的重排序缓冲器中缓冲在所述处理器中执行的所述指令的结果;/n根据所述指令被编程的所述顺序从所述重排序缓冲器输出所述指令的所述结果;以及/n在缓冲所述结果时,由所述处理器调整所述重排序缓冲器的容量。/n

【技术特征摘要】
【国外来华专利技术】20181205 US 16/210,6091.一种方法,其包括:
根据与指令被编程的顺序不同的顺序在处理器中执行所述指令;
在所述处理器的重排序缓冲器中缓冲在所述处理器中执行的所述指令的结果;
根据所述指令被编程的所述顺序从所述重排序缓冲器输出所述指令的所述结果;以及
在缓冲所述结果时,由所述处理器调整所述重排序缓冲器的容量。


2.根据权利要求1所述的方法,其进一步包括:
将所述重排序缓冲器的所述容量从预定的全容量调整到调整后的容量,其中,在所述重排序缓冲器的操作时间周期期间,所述调整后的容量限制能够在所述重排序缓冲器中缓冲的结果的量。


3.根据权利要求2所述的方法,其进一步包括:
生成随机数以确定所述调整后的容量。


4.根据权利要求3所述的方法,其进一步包括:
在第一时间周期期间以所述调整后的容量操作所述重排序缓冲器;
确定所述第一时间周期之后的第二时间周期的进一步调整后的容量;以及
在所述第二时间周期期间以所述进一步调整后的容量操作所述重排序缓冲器;
其中,所述第二时间周期和所述第一时间周期具有不同的长度。


5.根据权利要求1所述的方法,其进一步包括:
按照所述指令被编程的所述顺序获取所述指令;
在指令缓冲器中缓冲所述指令;以及
根据所述指令的操作数在所述功能单元中变得可用的顺序向所述处理器的功能单元发出所述指令。


6.根据权利要求1所述的方法,其中,所述调整包括改变所述重排序缓冲器的当前操作容量,其中,所述操作容量从所述重排序缓冲器的全容量减小,所述方法进一步包括:
从随机数确定所述当前操作容量;以及
确定随机时间周期,在所述随机时间周期期间,所述重排序缓冲器以所述当前操作容量操作。


7.根据权利要求6所述的方法,其进一步包括:
按照所述指令被编程的所述顺序获取所述指令;
在指令缓冲器中缓冲所述指令;以及

【专利技术属性】
技术研发人员:S·沃勒克
申请(专利权)人:美光科技公司
类型:发明
国别省市:美国;US

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

1