[发明专利]指令转译中的故障检测无效
申请号: | 201310741902.6 | 申请日: | 2013-12-27 |
公开(公告)号: | CN103902251A | 公开(公告)日: | 2014-07-02 |
发明(设计)人: | 纳瑟·塔克;戴维·邓恩;罗斯·泽格尔肯;马杜·斯沃尔那 | 申请(专利权)人: | 辉达公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F11/14 |
代理公司: | 北京市磐华律师事务所 11336 | 代理人: | 谢栒;魏宁 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 指令 转译 中的 故障 检测 | ||
背景技术
一些计算系统实现转译软件以将目标指令集架构(ISA)指令的各部分转译成可通过诸如组合、重新组织以及消除指令的各优化技术来更快和更高效地执行的本地指令。更具体地,在有能力推测和回滚操作的事务性计算系统中,可以以潜在违反目标ISA的语义的方式优化转译。由于这类优化,一旦已生成转译,可能难以区分在执行转译的同时所遭遇的事件(例如诸如页违例的架构故障)是架构有效的还是由转译的过度优化所假创建的。
附图说明
图1示意性地示出根据本公开的实施例的示范性计算系统。
图2示出陷阱机制的示例,该陷阱机制用于暂停执行以确定故障事件是否是由转译所假创建的。
图3示出计数器机制的示例,该计数器机制用于暂停执行以确定故障事件是否是由转译所假创建的。
图4示出根据本公开的实施例的方法的示例,该方法用于对生成假故障事件的代码转译加以标识并替换。
具体实施方式
本公开提供机制用于优化诸如目标指令集架构(ISA)代码部分的相应非本地代码部分的本地转译。转译的智能生成和其优化可由转译软件来处置,其可被包括作为在ISA和处理器核心之间提供接口的软件层的一部分。更具体地,本公开提供故障窄化机制,其对生成假故障事件(例如架构故障)的代码转译加以标识并替换。如上文所讨论的,在一些情况下,转译可能积极地或过度地被优化使得转译生成假故障事件。注意“假(spurious)”的意思是如果相应目标ISA代码或其功能上的等同物被执行,那么将不出现故障事件。在其他情况下,可通过目标ISA代码生成故障事件。该机制确定在转译中所遭遇的故障事件是否是由转译所假生成的,例如由于转译的过度优化,并且,如果确定故障事件是由转译所假引起的,那么其生成不同转译。
在一个示例中,转译软件将由处理器核心进行的执行重定向到本地转译的指令指针(IP)代替相应目标ISA代码。可执行本地转译而不使用位于处理器核心的硬件解码器。注意,当本公开称“不使用硬件解码器”的执行时,该表达仍可能包含在正执行转译的同时的硬件中的解码逻辑的较少或些微的使用。规避硬件解码器(即通过执行转译)在许多情况下将提高执行的速度、减少功耗并提供各种其他益处。在本地转译的执行期间,可能遭遇故障。这时,无法知悉故障是否是实际架构事件或故障是否是已在转译中优化代码的方式的赝像(artifact)。这样,指令回滚到提交状态(例如通过检查点机制),并且执行与不产生赝像事件的转译相对应的不同版本的代码。在一个示例中,与转译相对应的替代版本的代码是由硬件解码器解码成本地指令的目标ISA代码。如果在替代代码的执行期间遭遇故障,那么推断转译自身不是故障的原因。如果在替代代码的执行期间未遭遇故障,那么推断转译生成赝像,并且确定是允许本地转译的将来执行还是防止这类将来执行以有利于形成并执行一个或多个替代本地转译。在一些实施例中,以不同方式重组转译,并随后执行经重组的转译。在一个示例中,采用较少优化来重组转译以便不在执行期间引起故障。
通过使用该机制,转译可被积极地过度优化,随后如果必要的话则使用硬件解码器快速窄化以达到合适地优化的转译以被执行而不生成故障事件。不采用该机制的实现方案将发现窄化或重新优化的开销足够高,以致转译将趋向于过度地保守或优化不足以避免窄化过程。例如,软件翻译器可能足以隔离架构事件或使其缺乏,但将使窄化和重新优化突兀地变慢,因为软件翻译器可能要求数百条本地指令仿真单个目标ISA指令。
图1示出示范性微处理和存储器系统100(例如个人计算机、游戏系统、智能电话等的中央处理单元或图形处理单元)的各方面,其包括处理器核心102。虽然示出的实施例包括仅一个处理器核心,但将理解的是,微处理系统在可称为多核心处理系统的系统中可包括附加的处理器核心。微处理器核心/裸片102在不同情况下包括各存储器和存储位置104和/或可与各存储器和存储位置104通信。在一些情况中,分配存储器的一部分(有时称为“分离部(carveout)”)作为安全和私有的使得其对用户和/或指令集架构(ISA)代码106不可见,这将是符合需要的。各数据和软件可从所述分配中运行和/或存储在所述分配中,所述分配诸如软件层108和相关软件结构。如下文将更详细讨论的,软件层可配置为生成、优化并存储ISA代码106的转译,并进一步管理和与核心102上的相关硬件交互以确定转译是否被合适地优化(例如转译不生成故障或其他赝像)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于辉达公司,未经辉达公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310741902.6/2.html,转载请声明来源钻瓜专利网。