[发明专利]数据处理系统中的安全推测性指令执行在审
申请号: | 201910264813.4 | 申请日: | 2019-04-02 |
公开(公告)号: | CN110348207A | 公开(公告)日: | 2019-10-18 |
发明(设计)人: | 尼基塔·韦希科夫 | 申请(专利权)人: | 恩智浦有限公司 |
主分类号: | G06F21/55 | 分类号: | G06F21/55;G06F21/71 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 纪雯 |
地址: | 荷兰埃因霍温高科*** | 国省代码: | 荷兰;NL |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 处理器 高速缓冲存储器 数据处理系统 推测性指令 高速缓存 控制电路 推测性 耦合到 存储 指令 推测性执行 响应 安全 | ||
数据处理系统包括处理器、高速缓冲存储器、推测性高速缓冲存储器和控制电路。所述处理器用于执行指令。所述高速缓冲存储器耦合到所述处理器且用于存储所述指令和相关数据。推测性高速缓存耦合到所述处理器且用于仅存储推测性指令和相关数据。所述控制电路耦合到所述处理器、所述高速缓冲存储器和所述推测性高速缓存。所述控制电路用于响应于从所述处理器接收到指示而使推测性指令存储在所述高速缓存中。并且,提供一种用于所述数据处理系统中的推测性执行的方法。
技术领域
本公开大体上涉及数据处理,且更具体地说,涉及在数据处理系统中安全地执行推测性指令执行。
背景技术
为了实现更快的指令执行,处理器可使用例如分支预测和推测性执行。分支指令允许根据条件执行不同代码部分。可能的情况是评估条件所必需的所有数据尚不可用。举例来说,可能需要计算数据或可能需要从存储器提取数据。在此情况下,接下来将执行哪一程序部分可能并不确定。为了取得速度优势,处理器可启动执行程序的可能路径中的一个。处理器通过预测接下来可能执行哪一路径而启动且开始执行。此类执行可被称为推测性执行。
许多系统中的高速缓存设计以不安全方式与推测性执行的指令交互。不幸的是,在被称为Spectre和Meltdown的最新一类攻击中,攻击者已得知如何采用高速缓冲存储器与推测性执行之间的交互。通常,此类攻击使用各种技术来通过测量贯穿推测性执行的访问时序恢复高速缓存中存储的机密。对这些攻击的现有对策不会抵抗每个变化。而且,现有对策通常实施于会降低处理器性能的软件中。
因此,需要一种防止推测性执行用于从高速缓存发现机密数据,同时仍提供推测性执行的性能优点的对策。
发明内容
根据本发明的第一方面,提供一种用于数据处理系统中的推测性执行的方法,所述方法包括:
接收待由所述数据处理系统的处理器执行的指令,其中所述指令用于访问存储器以根据所述指令读取或写入数据;
确定访问是推测性的;
确定所述数据不在所述数据处理系统的高速缓冲存储器中;
从主存储器检索所述数据;
将所述数据存储在推测性高速缓存中,其中所述推测性高速缓存用于仅存储推测性指令和与所述推测性指令相关的数据;和
执行所述推测性指令。
在一个或多个实施例中,访问存储器以读取或写入进一步包括访问所述存储器以读取数据,且进一步包括将所述数据传送到寄存器。
在一个或多个实施例中,访问存储器以读取或写入进一步包括访问所述存储器以写入数据,且进一步包括通过来自寄存器的新数据覆写所述推测性高速缓存中的所述数据。
在一个或多个实施例中,所述方法进一步包括收回所述推测性指令。
在一个或多个实施例中,所述方法进一步包括:
收回所述推测性指令;
确定所述推测性高速缓存存在改变;和
将数据从所述推测性高速缓存传送到所述高速缓冲存储器。
在一个或多个实施例中,访问存储器以读取或写入进一步包括访问所述存储器以读取数据,且其中确定所述数据不在高速缓冲存储器中进一步包括确定所述数据不在所述高速缓冲存储器或所述推测性高速缓存中。
在一个或多个实施例中,所述方法进一步包括防止在所述推测性执行期间对所述高速缓冲存储器的写入操作。
根据本发明的第二方面,提供一种数据处理系统,包括:
处理器,其用于执行指令;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于恩智浦有限公司,未经恩智浦有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910264813.4/2.html,转载请声明来源钻瓜专利网。