[发明专利]用于在程序代码转换过程中准确地处理异常的方法和设备有效
申请号: | 200680013311.5 | 申请日: | 2006-04-07 |
公开(公告)号: | CN101164041A | 公开(公告)日: | 2008-04-16 |
发明(设计)人: | 加文·巴勒克拉夫;万奇曼;阿贝杜尔·R·胡梅达 | 申请(专利权)人: | 可递有限公司 |
主分类号: | G06F9/318 | 分类号: | G06F9/318;G06F9/38 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 | 代理人: | 付建军 |
地址: | 英国*** | 国省代码: | 英国;GB |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 程序代码 转换 过程 准确 处理 异常 方法 设备 | ||
本发明一般涉及计算机和计算机软件的领域,具体来说,涉及用于例如转换程序代码的代码转换器,仿真器和加速器中的程序代码转换方法和设备。
在嵌入式和非嵌入式CPU中,有占主导地位的指令集体系结构(ISA),对于这些指令集体系结构,存在大量的为了性能而可以被“加速”的软件,或“转换”为无数的可能提供更好的开销/性能优点的处理器,假设它们可以透明地访问有关的软件。也会找到主导的CPU体系结构,它们在时间上锁定于ISA,并且在性能或市场销售方面不能有所发展。这样的CPU将受益于面向软件的处理器共同体系结构。
PCT申请WO00/22521说明了有助于这样的加速、转换和共同体系结构功能的程序代码转换方法和设备。
与主体程序在主体处理器上的本机执行相比,执行程序代码转换会在转换过程中带来开销。相对于异常的处理,会产生特定困难。
异常是指改变程序中的正常的控制流的状况。异常表明,在系统内的某处发生了需要处理器注意并且通常需要在处理过程可以继续之前加以处理的状况。异常可以细分为各种不同类型,如中断、错误、陷阱或中止。术语在不同体系结构之间有所不同,特定的异常类型或类别可以是特定体系结构所特有的。
可以由硬件或软件生成(“引发”)异常。硬件异常包括诸如重置、中断之类的信号,或来自存储器管理单元的信号。作为示例,异常可以由算术逻辑单元或浮点单元为诸如“除以零”之类的数值错误,为溢出或下溢,或为诸如有特权的、预留的,陷阱或未定义指令之类的指令解码错误来生成异常。
软件异常在各种软件程序之间也有所不同,并可以应用于修改了程序的正常行为的任何类型的错误检查。作为说明性示例,如果一个寄存器的值大于第二个寄存器的值,主体代码中的指令导致异常被报告。
异常处理器是当在执行程序的过程中发生异常时调用的特殊代码。如果主体程序不为给定异常提供处理器,则将调用默认系统异常处理器,通常导致正在运行的程序中止,并返回错误指示。
异常信号是用于在许多操作系统上引发异常的常见的机制。被许多操作系统(特别是类似于Unix的系统)遵循的POSIX标准,说明了此机制应该如何运转以便异常信号在许多系统之间都类似。触发异常的最常见的事件是当由程序实现的进程试图(i)访问取消映射的存储器区域或(ii)操纵它没有正确的权限的存储器区域。触发异常信号的其他常见的事件是(iii)接收到从另一个进程发送的信号,(iv)由一个进程执行该进程没有特权来执行的指令,或(v)硬件中的I/O事件。
本发明主要讨论对异常的准确的处理,常常还简称为“准确的异常”。在主体代码指令之间的边界上报告准确的异常。当报告了准确的异常时,所有以前的主体指令的效果都是完整的,异常指向主体代码的没有执行的第一指令,该主体指令或任何后续指令的效果还没有产生。
在二进制转换的上下文中,显然,当在目标处理器上执行目标指令并导致异常被报告时,目标指令一般将不会满足将准确的异常报告给以主体代码编写的异常处理器的条件。指令通常按照与指令在对应的主体代码块中的顺序不同的顺序来在目标处理器上执行,首先由于编写主体代码所针对的主体处理器的指令集和目标代码在其上面运行的目标处理器之间的区别,其次由于通常在程序代码转换过程中发生的优化。
一个已知方法是使用“恢复点”,它们将虚拟主体机器返回到在进入到正在被转换或执行的一部分代码时应用的状况,即,通过将虚拟主体机器返回到进入到正在被转换或执行的当前主体代码指令块时占优势的状况。
US 5832205(Kelly等)公开了一种仿真器,该仿真器使用一组“工作”寄存器,然后,使用栅极存储缓冲器,将该组“工作”寄存器复制到主体代码的每一部分的末尾处的一组“正式”虚拟主体寄存器。如果发生异常,这将只影响工作寄存器,可以从进入点处的“正式”寄存器中将虚拟主体机器的状况恢复到主体代码的那一部分。然而,使用“工作”和“正式”寄存器将会使目标处理器中的模拟进程的开销显著增大。
作为另一个示例,已发表的PCT申请WO-A-00/65440说明了在A和B寄存器组之间交替,以提供程序代码转换过程中的历史恢复点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于可递有限公司,未经可递有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680013311.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:具有指标器功能的键盘
- 下一篇:一种太阳能灯