【技术实现步骤摘要】
【国外来华专利技术】间接控制流指令和禁止进行数据值推测相关申请的交叉引用本申请引用了由RichardEarnshaw、KristofBeyls、JamesGreenhalgh和ScottDouglass专利技术并转让给ArmLimited的、于2018年7月6日提交的、GB1811154的“利用间接控制流指令进行推测(SPECULATIONWITHINDIRECTCONTROLFLOWINSTRUCTIONS)”,其内容通过引用合并于此。
本技术涉及数据处理。具体地,本技术与推测执行(speculativeexecution)领域相关。
技术介绍
推测执行是一种在知道是否应当执行一系列指令之前执行这些指令的技术。在稍后的某个时间点,确定是否应当执行推测执行的指令。如果是,则过程继续。如果否,则执行“倒退”。这种推测形式称为控制流推测。在某些情况下,已经发现这种推测执行会导致安全漏洞。例如,可以使处理器推测性地执行特权代码以将受保护的数据不必要地加载到缓存中。由于在倒退之后,可能无法清除缓存,因此可以使用边信道攻击来探查请求的数据。推测的另一种形式是数据值推测,其中在已知指令的所有输入之前推测指令产生的结果值。本技术认识到期望在发生控制流推测的地方保持数据安全。
技术实现思路
从第一示例配置的角度来看,提供了一种装置,包括:输入电路,用于接收输入数据;输出电路,用于输出要由数据处理电路执行的指令序列;以及生成电路,用于执行生成过程以使用输入数据生成指令序列,其中,指令序列包括间接控制流指令,该间 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。