[发明专利]用于指令的快速失败处理的装置和方法有效
申请号: | 201380059899.8 | 申请日: | 2013-06-24 |
公开(公告)号: | CN104813281B | 公开(公告)日: | 2018-08-17 |
发明(设计)人: | O·本-琪琪;I·帕多;R·凡伦天 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/28 | 分类号: | G06F9/28;G06F9/38 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 毛力 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 指令 快速 失败 处理 装置 方法 | ||
描述了处理器,其包括:指令失败逻辑,用于响应于检测到的指令执行失败来执行多个操作,该指令失败逻辑被用于具有复杂的失败模式并且预期具有高于阈值的失败频率的指令,上述操作包括:检测指令执行失败并确定该失败的原因;将指示该失败和指定与该失败相关联的细节的失败数据存储在目的地寄存器中;以及允许应用程序代码响应于该失败读取该失败数据,并且响应性地采取一个或多个动作,其中,指令失败逻辑不调用异常处理程序并且不切换到采用分层的保护域的系统上的低层级域就执行其操作。
背景技术
技术领域
本发明总体涉及计算机处理器领域。更具体地说,本发明涉及用于指令的快速失败处理的装置和方法。
背景技术
如今,调用加速器需要通过驱动器接口。在其中使用层次结构保护域的系统中,这意味着切换到环0,并且将数据复制到不同的地址空间,从而消耗显著的时间和处理资源。由于高等待时间,此类加速器接口固有地也是异步的。可编程加速器要求被加速的代码以其自身的指令集架构(ISA)被实现。
一些当前的处理器架构尝试解决这些顾虑中的一些,但是仅提供具有在被加速的任务请求及其执行之间的高等待时间的、粗粒度的异步机制。此外,当前的架构使用非X86ISA,这需要单独的工具链来生成被加速的任务,并将该被加速任务与主x86程序集成。
此外,当前的异步硬件加速器(例如,GPU)允许被加速的任务执行与触发该被加速的任务的应用线程不相关的任务。这允许该应用线程处理异常和/或中断而不影响被加速的任务,并且甚至允许该应用线程在多个核之间迁移而不影响系统上被加速的任务的位置。
当前的同步硬件加速器需要确保中断、异常、上下文切换和核迁移仍然是功能正确的,并且确保向前进展。这是通过下述之一完成的:(1)确保加速器足够短并且不导致任何异常,使得任何中断被推迟到完成该加速器为止;(2)在现有的架构寄存器(例如,REPMOV)中保持加速器的向前进展;或(3)定义保存加速器状态的新架构寄存器,并且将它们添加到XSAVE/XRESTORE。
附图说明
结合以下附图,从以下具体实施方式中可获得对本发明更好的理解,其中:
图1A是示出根据本发明的多个实施例的示例性有序流水线和示例性的寄存器重命名的无序发布/执行流水线的框图;
图1B是示出根据本发明的各实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图;
图2是根据本发明的多个实施例的具有集成的存储器控制器和图形器件的单核处理器和多核处理器的框图。
图3示出根据本发明的一个实施例的系统的框图;
图4示出根据本发明的实施例的第二系统的框图;
图5示出根据本发明的实施例的第三系统的框图;
图6示出根据本发明的实施例的芯片上系统(SoC)的框图;
图7示出根据本发明的多个实施例的、对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图;
图8A示出可在其中实现本发明的多个实施例的处理器架构;
图8B-C示出存储用于调用加速器并回顾结果的数据的寄存器;
图9A-C示出根据本发明的一个实施例的用于调用加速器的方法;
图10示出用于处理经常失败的复杂指令的方法;
图11示出使用用于存储加速器状态信息的栈的本发明的一个实施例。
图12A和12B是示出根据本发明的多个实施例的通用向量友好指令格式及其指令模板的框图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380059899.8/2.html,转载请声明来源钻瓜专利网。