[发明专利]用于保护有条件的推测性指令执行的影子缓存在审
申请号: | 201811036866.2 | 申请日: | 2018-09-06 |
公开(公告)号: | CN110442381A | 公开(公告)日: | 2019-11-12 |
发明(设计)人: | 史蒂文·杰弗里·瓦拉赫 | 申请(专利权)人: | 美光科技公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F12/0875 |
代理公司: | 北京律盟知识产权代理有限责任公司 11287 | 代理人: | 王龙 |
地址: | 美国爱*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 缓存 存储器 处理器 推测性执行 耦合 推测性指令 计算装置 影子 指令 | ||
一种计算装置,具有:处理器;存储器;第一缓存,被耦合在存储器和处理器之间;以及第二缓存,被耦合在存储器和处理器之间。在推测性执行一个或多个指令期间,推测性执行的影响被包含在第二缓存中。
相关申请
本申请要求于2018年5月2日提交的美国临时专利申请序列号62/665,803并且题为“Shadow Cache for Securing Conditional Speculative Instruction Execution”的申请日的权益,其申请的全部公开通过引用并入本文。
技术领域
本文所公开的至少一些实施例一般涉及计算机架构,并且更具体地但不限于涉及计算机处理器中的有条件的推测性指令执行。
背景技术
计算系统中的存储器地址标识了计算系统中的存储器位置。存储器地址是通常被显示和被操作为无符号整数的固定长度的数字序列。数字或位的序列的长度可以被认为是存储器地址的宽度。存储器地址可以在中央处理单元(CPU)的某些结构(诸如指令指针(或程序计数器)和存储器地址寄存器)中被使用。CPU的这种结构的大小或宽度通常确定了在这种CPU中所使用的存储器地址的长度。
推测性执行是一种其中处理器基于在关于一个或多个指令是否应该被执行的确定结果是可用之前在某些情况下需要执行这样的指令的推测来执行一个或多个指令的计算技术。推测性执行可能导致安全漏洞,诸如在2018年进行公开的Meltdown和Spectre。
附图说明
实施例借由示例的方式被示出而在附图中不受限制,在附图中相同的附图标记表示类似的元件。
图1示出了根据一个实施例的使用地址系统的计算机系统。
图2示出了图1的地址系统中的静态对象标识。
图3和4示出了使用静态对象标识来映射不同地址空间的地址。
图5示出了在存储器地址中使用对象标识以保护条件推测性指令执行的方法。
图6示出了被用于保护条件推测性指令执行的影子缓存。
具体实施方式
本公开包括使用影子缓存来包含和隔离指令的推测性执行的影响的技术。在确定需要执行指令之后,影子缓存中的结果被合并到主缓存中。如果确定实际执行路径不涉及指令的推测性执行,则丢弃影子缓存中的结果。在影子缓存中的推测性执行的影响的隔离可以防止基于主缓存中的推测性执行的影响的可用性的安全攻击。
本公开还包括在指令集(例如,128位指令)的预定宽度(例如,128位)的地址中使用静态对象标识号来表示某些类型的对象的技术,所述对象诸如内核对象、使用由其他指令集(例如,64位指令、32位指令)生成和/或使用的较小宽度(例如,64位、32位)的地址的对象等等。通常,可以使用各种处理器中的各种指令集(例如,128位指令、64位指令、32位指令)来生成预定宽度(例如,128位)的地址,这些处理器可以使用这样的指令集来生成和/或使用预定宽度(例如,128位)的地址。因此,预定宽度(例如,128位)不限于特定类型的指令集和/或特定宽度的指令。
本公开还包括在存储器地址中使用对象标识号来保护条件推测性指令执行的技术。例如,当存储器地址的静态对象标识号标识了操作系统的内核对象时,处理器可以避免对内核对象的推测性执行,并因此提高计算系统的安全性并防止经由推测性执行攻击操作系统的内核的潜在安全威胁。例如,当与推测时要被执行的后续指令相关联的存储器地址的对象标识号与在后续指令之前执行的先前指令相关联的对象标识号不同时,处理器可以中止执行随后指令的推测性执行的尝试以用于改进安全性。
图1示出了根据一个实施例的使用地址系统的计算机系统。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于美光科技公司,未经美光科技公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811036866.2/2.html,转载请声明来源钻瓜专利网。