支持非正规输入处理机制的动态二进制翻译的设备、系统和方法

文档序号:6567946阅读:210来源:国知局
专利名称:支持非正规输入处理机制的动态二进制翻译的设备、系统和方法
支持非正规输入处理机制的动态二进制翻译的设备、系统和方法
背景技术
一些符合例如Intd⑧体系结构-32(IA-32)的计算机平台可以支持 称为反常值为零(Denormals-Are-Zeroes)(DAZ)的、用于在程序代码执 行期间处理非正规(denormal)输入或操作数的特征。这些平台可以包 括控制位,本文中称为DAZ位,它控制对浮点(FP)非正规异常状态 下的单指令多数据(SIMD)指令的响应。程序代码可以具有控制平台 中的DAZ位的一个或多个控制指令。这些控制指令可以将DAZ位 设置为两个值(例如"1"和"0")的其中之一。例如,当DAZ位被 设置为"1"时,运行在支持DAZ特征的平台上的处理器可以检测 在代码执行期间产生非正规异常状况的指令,并以预定值(例如带初 始操作数的符号的零)对该指令(发生异常的指令)的非正规操作数赋 值。然后,处理器就可以利用l喿作数的这些新值来执行该发生异常 的指令。在本文中,可以将上述的对非正规操作数的处理称为非正 规输入处理机制或DAZ机制。
动态二进制翻译器可以将源代码(如符合支持DAZ特征的源体 系结构的IA-32代码)翻译成将在目标平台上执行的目标代码。目标 平台可以具有浮点模型,因此能够产生诸如非正规异常的流SIMD 扩展(SSE)异常。但是,在处理非正规异常的非正规输入时,目标平 台可能不支持DAZ特征。 一种这样的目标平台可以是,例如,符合 Intel ItaniumTM处理器族的体系结构的平台。


并明确地要求了该主题的权利。然而,通过结合附图阅读以下的详细说明,可以最好地理解有关本发明的组织方式和操作方法,以及
本发明的目标、特征和优点。在这些附图中
图1是根据本发明的某些说明性实施例的、能够执行支持DAZ 机制的动态二进制翻译的装置的框图2是根据本发明的说明性实施例的、支持DAZ机制的动态二 进制翻译方法的流程图3是根据本发明的说明性实施例的、用于在所有不属于非正 规异常的异常均被屏蔽时在程序代码执行期间处理非正规异常的方 法的流程图4是根据本发明的说明性实施例的、用于在一个或多个不属 于非正规异常的异常被取消屏蔽时在程序代码执行期间处理非正规 异常的方法的示意图5是根据本发明的说明性实施例的、用于处理从对应的故障 目标指令恢复的异常源指令的方法的示意图6是^f艮据本发明的说明性实施例的、用于构建具有大量非正 规异常的翻译后目标代码块的方法的示意图7是根据本发明的说明性实施例的、用于执行目标指令块的 方法的示意图。
可以懂得,为了使图示变得简单和清楚,不必按比例绘制图中 示出的各要素。例如,为清楚起见,可能将某些要素的尺寸相对于 其他要素进行放大。
具体实施例方式
在以下的详细描述中,阐述了许多具体细节,以便使读者透彻 地理解本发明的实施例。但是,本领域的技术人员将懂得,即便没 有这些具体细节,也可以实施本发明的实施例。在其他实例中,未 详细描述众所周知的方法和流程,以避免干扰对本发明实施例的描述。
通过利用算法和与计算机存储器中的数据位或二进制数字信号 的操作有关的符号表现形式,给出了以下的详细说明中的一些部分。 这些算法描述和表现形式可以是数据处理技术领域的技术人员用以 将他们的工作内容传达给其他同行的表示方式。
在本文中和一般情况下,将算法视为产生期望结果的自相容的 动作或操作序列。它们包括对物理量的物理处理。通常(虽然并非必 要),这些量呈现为电信号或磁信号的形式,这些电信号或磁信号能 够被存储、传输、组合、比较和进行其他处理。已经证明,将这些 信号称为位、值、元素、符号、字符、项、数字等等时常被证明是 方便的,主要是因为这些称呼常用。然而,应当懂得,所有这些和 类似术语均与合适的物理量相关联,它们仅仅是应用于这些量的便 捷标记。
除非另外进行具体说明,否则从以下讨论中明显可以看到,在 整个说明书中,采用诸如"处理"、"计算"、"计算"、"确定"等术 语的讨论是指计算机或计算系统或类似的电子计算设备的动作和/或 过程,这些动作和/或过程处理计算系统的寄存器和/或存储器内的表 示为物理(如电子的)量的数据,和/或将这些数据变换为计算系统的存 储器、寄存器或其他这类信息存储装置、传输或显示设备内的被类 似地表示为物理量的其他数据。.f、'、
可以采用存储指令或指令集的机器可读介质或制品来实施本发 明的某些实施例,当所述指令或指令集被机器执行时,会引起所述 机器执行依照本发明的实施例的方法和/或操作。这类机器可以包括, 例如,任何合适的处理平台、计算平台、计算设备、处理设备、计 算系统、处理系统、计算机、处理器,等等,并可以用硬件和/或软 件的任何合适的组合来实施。所述机器可读介质或制品可以包括, 例如,任何适合类型的存储器单元、存储器设备、存储器制品、存 储器介质、存储装置、存储制品、存储介质和/或存储单元(如存储器、 可拆卸或不可拆卸介质、可擦除或不可擦除介质、可写或可重写介 质、数字或模拟介质、硬盘、软盘、只读致密盘(CD-ROM)、可记录 致密盘(CD-R)、可重写致密盘(CD-RW)、光盘、磁介质、各种类型 的数字多功能光盘(DVD)、磁带、盒式磁带,等等)。所述指令可以 包括任何类型的代码,例如源-代码、经过编译的代码、经过解释的 代码、可执行代码、静态代码、动态代码,等等,并可以用任何适 合的高级、低级、面向对象的、可视的、编译和/或解释型编程语言(如 C、 C++、 Java、 BASIC、 Pascal、 Fortran、 Cobol、汇编语言、机器 码等等)来实现。
本发明的实施例可包括用于执行本文中的操作的装置。这些装 置可以是专为期望的目的而特意制造的,或者,它们可以包括由计 算机程序有选择地进行激活或重新配置的通用计算机,所述计算机 程序存储在该计算机中。这类计算机程序可以存储在计算机可读存
盘,包括软盘、光盘、CD-ROM、磁光盘、只读存储器(ROM)、随机 存取存储器(RAM)、电可编程只读存储器(EPROM)、电可擦除可编 程只读存储器(EEPROM)、磁或光卡或适于存储电子指令并且能够耦 合到计算机系统总线的任何其他类型的介质。
本文阐述的过程和显示本质上并不与任何特定计算机或其他装 置相关。可以将根据本文教导的程序与各种通用系统一起使用,或 者,制造更专门的装置来执行期望的方法可能比较方便。从以下的 描述中可以看出用于多种这类系统的期望结构。此外,并没有结合
任何特定的编程语言来描述本发明的实施例。将会懂得,可以使用 多种编程语言来实现本文描述的发明原理。
在以下的描述中,提供了作为不同手段的多种附图、图表、流 程图、模型和描述来有效地表达实质内容以及示出本申请中建议的 本发明的不同实施例。本领域才支术人员应当懂得,它们仅作为示范 样本而提供,且不应被理解为对本发明的限制。
图1是根据本发明的某些说明性实施例的、能够执行支持DAZ
机制的动态二进制翻译的装置100的框图。装置100可以是计算平 台,本文称为目标平台,并且,装置100可以包括操作地连接到存 储器106的处理器102。
根据本发明的实施例,存储器106适于存储源指令100(本文中 也称为"源代码")的集合和目标指令120(本文中也称为"目标代码") 的集合。存储器106也可以存储动态二进制翻译器108的指令。处 理器102可以执行动态二进制翻译器108,以将源指令集110翻译成 目标指令集120。然后,处理器102可以通过应用输入103来执行目 标指令集120,并且可以在目标代码执行期间应用算法104来取消目 标平台上的非正规输入控制位的屏蔽,以下将结合图2对此进行详 细描述。动态二进制翻译器108可以包括异常处理程序109,以处理 诸如非正规异常的异常,以下将结合自3-7对此进行详细描述。
源指令集110可以符合例々。IA-32的源体系结构,该源体系结 构能够支持非正规输入处理机制(本文中也称为DAZ机制)。源指令 集IIO可以包括一个或多个控制指令,当在源平台上执行时,这些控 制指令决定源代码是否应使用由源平台支持的DAZ机制。如果源代 码使用DAZ机制,则该源体系结构可以通过将非正规操作数转换成 带初始操作数的符号的零来响应发生异常的指令的SIMD浮点非正 规操作数状况,然后使用非正^L操作数的新值来执行上述发生异常 的指令。
处理器120可以与目标体舉结构(如Intel ItaniumTM处理器系列的 体系结构)相符。根据本发明的溪施例,处理器102可以不需要源体 系结构中所需的硬件来支持DAZ机剁。相反,根据本发明的说明性 实施例,可以在目标指令集120的执行期间通过动态二进制翻译来 模拟DAZ机制,如以下的详细i兌明所述。
关于装置100的非穷尽例子的列表可包括台式个人计算机、工 作站、服务器计算机、膝上型计算机、笔记本计算机、手持式计算 机、个人数字助理(PDA)、移动电话、游戏控制台等等。
关于处理器102的非穷尽例子的列表可包括中央处理单元 (CPU)、数字信号处理器(DSP)、精简指令集计算机(RISC)、复杂指 令集计算机(CISC)等等。而且,处理器102可以是专用集成电路(ASIC) 的一部分,或者,可以是专用标准产品(ASSP)的一部分。
存储器106可以固定在装置100内或可以从设备100上卸下。 关于存储器106的非穷尽例子的列表可包括以下器件的其中一种或 任何组合半导体器件,同步动态随机存取存储器(SDRAM)器件、 RAMBUS动态随机存取存储器(RDRAM)器件、双数据速率(DDR)存 储器器件、静态随机存取存储器(SRAM)器件、闪速存储器(FM)器件、 电可擦除可编程只读存储器(EEPROM)器件、非易失性随机存取存储 器(NVRAM)器件、通用串行总线(USB)可拆卸存储器等等;光器件, 如致密盘只读存储器(CD-ROM)等等;以及磁器件,如硬盘、软盘、 磁带等等。
在源代码执行期间,源代码中的指令可能产生各种异常。例如, 符合Inte胸IA-32体系结构的源指令可支持二进制浮点算法的 ANSI/IEEE标准754-1985中定义和要求的如下特定异常"无效操 作"、"除以零"、"溢出"、"下溢"和"不精确计算"浮点异常。以 上异常一般称为SSE异常。目标平台可包括一个或多个控制位,这 些控制位包括非正规输入控制位,可以对非正规输入控制位设置或 取消屏蔽来控制对SSE异常的处理。如以下结合图2的详细说明所 述,可以由处理器102通过算法104来控制这些控制位。此外,源 代码可以包括一个或多个控制指令,这些控制指令用于控制源平台 中的DAZ位的设置,以确定源代码是否使用DAZ机制。
根据本发明的说明性实施例,可以由动态二进制翻译器108通 过在目标平台上执行,目标代码.120来模拟源平台支持的和源代码110 使用的DAZ机制。处理器102适于运行动态二进制翻译器108,以 将包括例如源指令112和/或113的源指令集110翻译成包括例如目 标指令122和/或123的目标指令集120。在目标代码执行期间,处
理器102可以执行算法104,以对目标平台上的非正规输入控制位取 消屏蔽,这样,通过执行一个或多个对应的故障目标指令(如目标指 令122),可以检测一个或多个发i异常的源指令(如源指令112)。
根据本发明的说明性实施例,当^r测到非正规异常时,可以由 动态二进制翻译器108来模拟DAZ机制。可以通过动态二进制翻译 器108以预定值(例如带初始操作数的符号的零)对目标指令的非正规 操作数赋值来执行这种模拟,该目标指令是对应于非正规异常的故 障目标指令。然后,处理器120可以用非正规4喿作数的新赋的值来
执行上述故障目标指令。
根据本发明的某些说明性实施例,当在故障目标指令122处检 测到非正规异常时,可以重新翻译对应的发生异常的源指令112来生 成新的目标指令122。此外,可以生成前缀代码121,并将其附于新 生成的目标指令122。前缀代码121可以识别源指令112的所有非正 规操作数,以及识别源代码110,申的控制指令执行的控制,以确定源 代码是否使用DAZ机制。如果源代码使用DAZ机制,则如以上的 详细说明所述,前缀代码121可以模拟DAZ机制。
根据本发明的说明性实施例,处理器102可以包括计数器,例 如基于高速緩存的计数器105,该计数器用于对目标指令块中的非正 规异常的数目计数。如果非正规异常的数目超过预定阈值,则动态 二进制翻译器108可以如以下结合图6详细说明的那样模拟DAZ机制。
图2是根据本发明的说明性实施例的、支持DAZ机制的动态二 进制翻译方法的流程图。
根据本发明的说明性实施例,动态二进制翻译器108可以接收 源代码(例如源代码110),如框202所示。然后,动态二进制翻译器 108可以翻译源代码110,以生成对应的目标代码120,如框204所 示,并执行目标代码120,如框206所示。源代码110可以包括一个 或多个控制指令,这些控制指令可以更改源平台中的DAZ位的设置 来决定源代码是否使用DAZ机制。在执行期间,如框208所示,如 果确定源代码中的控制指令执4亍的控制指示源代码中使用DAZ机 制,则处理器102可以对目标平台中的非正规输入控制位取消屏蔽, 如框212所示,以便可以在DAZ处理的代码执行期间4全测非正规异 常。可以由处理器102执行取消屏蔽算法(如算法104(图l))来对非正 规输入控制位取消屏蔽。
根据本发明的说明性实施例,可能有两种需要单独处理目标代 码执行期间检测到的非正规异常的情况。如框214所示,第一种情 况是在源代码中屏蔽了不包括非正规异常的所有SSE异常,并因此 在对应的目标代码中屏蔽了相同的不属于非正规异常的异常。在这 种情况下,处理器102可以执4于目标代码、检测非正规异常,并应 用DAZ机制,如框216所示,以下将结合图3对此进行详细说明。
第二种情况是在源代码中对一个或多个不属于非正规异常的异
常取消屏蔽,并因此在对应的目标代码中对上述异常取消屏蔽。在 这种情况下,处理器102可以:执行目标代码、检测非正规异常,并 应用状态恢复机制来处理该异常,如框218所示,以下将结合图4 对此进行详细说明。
如框208所示,如果确定源代码中的控制指令执行的控制未指 示源代码使用DAZ机制,则处理器102可以如框210所示继续执行 目标代码。
图3是根据本发明的说明性实施例的、用于在所有不属于非正 规异常的异常均被屏蔽时在程序代码执行期间处理非正规异常的方 法的流程图。对目标平台中的非正规输入控制位取消屏蔽,这样处 理器102可以在目标代码执行期间检测非正规异常。
根据本发明的说明性实施例,处理器102可以开始执行目标指 令的集合(如目标指令集120),如框302所示。目标指令的该集合可 以对应于使用DAZ机制的源指令的集合(如源指令集110)。在执行期 间,处理器102可以检测产生非正规异常的故障目标指令(如目标指
令122),如框304所示。该异常是非正规异常,因为所有不属于非 正规异常的异常,即不同于非正规异常的SSE异常均已被屏蔽从而 无法被检测到。如框306所示,当检测到该非正规异常时,处理器102 可以将非正规操作数识别为非正规异常,并且可以用预定值(例如带 初始搡作数的符号的零)对非正失见操作数赋值。然后,处理器102可 以利用非正规操作数的新值来执行目标指令122,如框308所示。可 以从目标指令122的执行得到结果,如框310所示,并将其保存在 例如与上述处理器相关的指令高速緩存中,以在随后将其应用于后 续目标指令的执行。在框312处,可以移动目标代码执行中使用的 指令指针,或将其递增,以指向新的目标指令,例如指向故障目标 指令122之后的指令。可以在该指令指针所指的新目标指令处恢复 对剩余的目标指令的执行,如框314所示,并且,如框310所示, 可以将从故障目标指令122的执行获得的结果应用于该执行。
图4是根据本发明的说明性实施例的、用于在一个或多个不属
异常的方法的示意图。对目标平台中的非正规输入控制位取消屏蔽, 这样处理器102可以在目标代码执行期间检测非正规异常。
根据本发明的说明性实施例,处理器102可以如框402所示执 行目标指令,并且可以如框404所示检测产生非正规异常的故障目 标指令。但是,在这种情况下,故障目标指令也可能产生其他不属 于非正规异常的异常,因为一个或多个不属于非正规控制位的控制 位未被屏蔽。例如,故障目标指令可能产生另一种SSE异常(如"溢 出,,或"下溢"异常)。在不知道故障目标指令可能产生的所有其他 异常的情况下,处理器102可能需要使用状态恢复机制来处理非正
规异常,以下将对此进行详细描述。
根据本发明的说明性实施例,二进弗;l翻译器108的异常处理程 序109可以恢复源指令.,该源指令是从其中翻译出上述故障目标指 令的发生故障的源指令,如框406所示。然而,本发明不限于此,
可以通过其他方式或异常处理程序来恢复该源指令。可以重新翻译
和重新执行该恢复的源指令,如框408所示,且以下将结合图5对 此进行详细说明。在执行该恢复的源指令之后,处理器102可以恢 复剩余的目标指令的执行,如框410所示。
图5是根据本发明的说明性实施例的、用于处理从故障目标指 令恢复的发生异常的源指令的方法的示意图。
根据本发明的说明性实施例,可以将恢复的源指令重新翻译成 重新生成的目标指令,如框502所示。可以将该翻译与其他指令的 翻译分开执行,以避免由于其他异常所导致的潜在影响。在框504 处,可以将前缀代码(如前缀代石马121)附于重新生成的目标指令(如目 标指令122)。随后,处理器102可以执行前缀代码,如框506所示, 以确定源代码是否使用DAZ机制。如果源代码中的控制指令将DAZ 位设置为'T,(这指示源代码使用DAZ机制),则该前缀代码可以继 续将一个或多个输入识别为非正规异常,并将属于非正规操作数的 那些输入更改为零,如框508所示。然后,处理器102可以继续执 行重新生成的目标指令(如目标指令122),如框510所示。
图6是根据本发明的说明性实施例的、用于构建具有大量非正 规异常的翻译后的代码块的方法的示意图。
根据本发明的说明性实施例,可以将目标指令集(如目标指令集 120)分成多个指令块,可以按这些指令块中的第 一个指令的地址来区
分这些指令块。通过确定在可能的故障目标指令的每一轮执行期间 是否存在非正规操作数情形,可以进一步改进对在执行期间产生大
量非正规异常的目标指令块的执行。
根据本发明的说明性实施例,可以创建用于对目标指令块的非 正规异常计数的计数器(如计数器105(图l)),如框602所示。计数器 105可以是基于高速緩存的计数器和/或可以是任何其他计数机制。 计数器105可以在每次产生非正规异常时对目标指令块(如目标代码 120的目标指令122和123)的非正规异常的数目进行计数,如框604
所示。可以将由上述目标指令块产生的非正规异常的数目与预定的
阈值进行比较,如框606所示。如果该数目达到该阈值,则可以重 写该目标指令块以包括一个或多个内置指令(如内置指令124(图l)), 如框608所示。在执行时,这些内置指令可能识别块中的每个SIMD 指令的内嵌的(in-line)非正规状况,并在检测到非正规异常时将非正 规异常的非正规操作数设置为零,以下将结合图7对此进行详细说 明。然后,可以执行重写的目标指令块,如框610所示。
图7是根据本发明的某些说明性实施例的、用于执行目标指令 块的方法的示意图。
根据本发明的说明性实施例,在执行目标指令(如指令123)之前, 处理器102可以执行内置指令(例如指令124)来确定指令123是否产 生非正规异常,如框702所示。如果未4企测到或未产生非正规异常, 如框704所示,便可以像任何其他指令一样执行目标指令123,如框 706所示。但是,如果检测到非正规异常状况,则处理器102可以识 别属于非正规操作数的目标指令123的输入,并将零值赋予这些非 正规操作数,如框708所示。随后,可以利用非正规操作数的该新 赋值来执行目标指令123,如框710所示。
虽然本文已经示出并描述了本发明的某些特征,但是,本领域 技术人员现在仍可以得到有关这些特征的许多修改、替换、变更和 等同物。因此,应当懂得,期望附录的权利要求涵盖落在本发明的 要旨之内的所有此类修改和变更。
权利要求
1.一种方法,包括将源指令的集合翻译成目标指令的集合;执行目标指令的所述集合;以及如果源指令的所述集合使用非正规(denormal)输入处理机制,则对非正规输入控制位取消屏蔽。
2. 如权利要求l所述的方法,其特征在于,包括 通过执行目标指令的所述集合来检测故障目标指令的至少一个非正规异常;如果屏蔽了对应于一个或多个不属于非正规异常的异常的一个 或多个控制位,则将预定值赋予所述故障目标指令的一个或多个非 正规操作数;以及利用所述一个或多个非正规操作数的所述预定值来执行所述故 障目标指令。
3. 如权利要求2所述的方法,其特征在于,包括述故障目标指令之后的目'标指令的执行。
4. 如权利要求3所述的方法,其特征在于,恢复所述故障目标 指令之后的目标指令的执行包括将指令指针从指向所述故障目标指令移到指向要执行的后续目 标指令;以及执行所述后续目标指令。
5. 如权利要求2所述的方法,其特征在于,所述预定值是零。
6. 如权利要求l所述的方法,其特征在于,包括 通过执行目标指令的所述集合来检测故障目标指令的至少一个非正规异常;如果对对应于一个或多个不属于非正规异常的异常的一个或多 个控制位取消屏蔽,则恢复从其中翻译出所述故障目标指令的源指令;以及将所述源指令重新翻译成重新生成的目标指令。
7. 如权利要求6所述的方法,其特征在于,包括 确定源指令的所述集合是否使用所述非正规输入处理机制; 如果使用所述非正规输入处理机制,则识别作为所述非正规异常的输入的一个或多个非正规#:作数;以及将预定值赋予所述一个或多个非正规操作数。
8. 如权利要求7所述的方法,其特征在于,所述预定值是零。
9. 如权利要求l所述的方法,其特征在于,还包括 对执行目标指令块期间的非正规异常的数目计数;以及 如果非正规异常的所述数目达到预定的阈值,则重写所述目标指令块以包括一个或多个内置指令。
10. 如权利要求9所述的方法,其特征在于,还包括 执行所述一个或多个内置指令的至少其中之一 ,以确定目标指令是否产生非正规异常;如果所述目标指令产生非正规异常,则识别所述目标指令的一个或多个非正规操作数;将零值赋予所述卄个或多,今非正规操作数;以及 利用非正规操作数的所赋零值执行所述目标指令。
11. 如权利要求1所述的方法,其特征在于,所述非正规输入处 理机制是DAZ机制。
12. —种i殳备,包括动态二进制翻译器,所述动态二进制翻译器将源指令的集合翻 译成目标指令的集合,并且如果源指令的所述集合使用非正规输入 处理机制,则对非正规输入控制位取消屏蔽;以及处理器,所述处理器用于执行目标指令的所述集合,以检测故障目标指令的至少一个非正规异常。
13. 如权利要求12所述的设备,其特征在于,所述动态二进制 翻译器包括异常处理程序,所述异常处理程序用于将预定值赋予所 述故障目标指令的一个或多个非正规操作数,以及所述处理器用于 利用所述一个或多个非正规操作数的所述预定值来执行所述故障目 标指令。
14. 如权利要求13所述的设备,其特征在于,所述处理器通过 应用从所述故障目标指令的所述执行获得的结果来恢复所述故障目 标指令之后的目标指令的执行。
15. 如权利要求14所述的设备,其特征在于,所述处理器通过 将指令指针从指向所述故障目标指令移到指向要执行的后续目标指 令来恢复所述故障目标指令之后的目标指令的执行。
16. 如权利要求12所述的设备,其特征在于,所述动态二进制 翻译器包括异常处理'程序,所述异常处理程序恢复从其中翻译出所 述故障目标指令的源指令,并将所述源指令重新翻译成重新生成的 目标指令。
17. 如权利要求16所述的设备,其特征在于,所述处理器确定 源指令的所述集合是否使用所述非正规输入处理机制;识别作为所 述非正规异常的输入的一个或多个非正规操作数;以及如果使用了 所述非正规输入处理机制,则将预定值赋予所述一个或多个非正规 操作数。 .,
18. 如权利要求12,所述的设备,其特征在于,所述处理器对执行目标指令块期间的非正规异常的数目计数;以及如果非正规异常 的所述数目达到预定阈值,则重写所述目标指令块以包括一个或多 个内置指令。
19. 如权利要求18所述的设备,其特征在于,所述处理器执行 所述内置指令的至少其中之一以确定目标指令是否产生非正规异 常;识别所述故障目标指令的一个或多个非正规操作数;以及如果所述目标指令产生非正规异常,则将预定值赋予所述一个或多个非 正规操作数。
20. —种系统,包括存储器,所述存储器存储源指令的集合、目标指令的集合以及 动态二进制翻译器,其中所述动态二进制翻译器适于将源指令的所 述集合翻译成目标指令的所述集合,并且如果源指令的所述集合使 用非正规输入处理机制,则对非正规输入控制位取消屏蔽;以及处理器,所述处理器用于执行目标指令的所述集合,以检测故 障目标指令的至少一个非正规异常。
21. 如权利要求20所述的系统,其特征在于,所述动态二进制 翻译器包括异常处理程序,所述异常处理程序将预定值赋予所述故 障目标指令的一个或多介非j^规攝作数;以及所述处理器利用所述一个或多个非正规操作数的所述预定值来执行所述故障目标指令。
22. 如权利要求;21所述的系统,其特征在于,所述处理器通过 应用从所述故障目标指令的所述执行获得的结果来恢复所述故障目 标指令之后的目标指令的执行。
23. 如权利要求20所述的系统,其特征在于,所述动态二进制 翻译器包括异常处理程序,所述异常处理程序恢复从其中翻译出所 述故障目标指令的源指令,并将所述源指令重新翻译成重新生成的 目标指令。
24. 如权利要求23所述的系统,其特征在于,所述处理器确定 源指令的所述集合是否使用所述非正规输入处理机制;识别作为所 述非正规异常的输入的十个或炎个非正规操作数;以及如果使用了 所述非正规输入处理机制,则将预定值赋予所述一个或多个非正规 操作数。
25. 如权利要求20所述的系统,其特征在于,所述处理器对执 行目标指令块期间的非正规异常的数目计数,以及如果非正规异常的 所述数目达到预定阔值,则重写所述目标指令块以包括一个或多个内置指令。
26. 如权利要求25所述的系统,其特征在于,所述处理器执行 所述内置指令的至少其中之一以确定目标指令是否产生非正规异 常;识别所述故障目标指令的一个或多个非正规操作数;以及如果 所述目标指令产生非正规异常,则将预定值赋予所述一个或多个非 正规操作数。
27. —种其上存储了指令集的机器可读介质,所述指令集被机器 执行时,导致将源指令的集合翻译成目标指令的集合,并且如果源 指令的所述集合使用非正规输入处理机制,则对非正规输入控制位 取消屏蔽。
28. 如权利要求27所述的机器可读介质,其特征在于,所述指 令导致通过执行目标指令的所述集合来检测故障目标指令的至少一 个非正规异常;如果屏蔽了对应.于一个或多个不属于非正规异常的 异常的 一个或多个控制我,购蒋预定值赋予所述故障目标指令的一 个或多个非正规操作数;以及利用所'k一个或多个非正规操作数的 所述预定值来执行所述故障目标指令。
29. 如权利要求27所述的机器可读介质,其特征在于,所述指 令导致通过执行目标指令的所述集合来检测故障目标指令的至少一 个非正规异常;如果未屏蔽对应于一个或多个不属于非正规异常的 异常的一个或多个控制位,则恢复从其中翻译出所述故障目标指令 的源指令;以及将所述源指令重新翻译成重新生成的目标指令。
全文摘要
本发明的一个实施例提供一种方法,该方法用于将源指令的集合翻译成目标指令的集合,执行该目标指令的集合,并且如果源指令的集合使用非正规(denormal)输入处理机制,则对非正规输入控制位取消屏蔽。本发明的另一个实施例提供一种方法,该方法通过执行目标指令的集合来检测故障目标指令的至少一个非正规异常;将预定值赋予故障目标指令的一个或多个非正规操作数;以及利用一个或多个非正规操作数的预定值来执行故障目标指令。本发明的实施例也提供了其设备、系统和机器可读介质。
文档编号G06F9/455GK101208661SQ200680022982
公开日2008年6月25日 申请日期2006年6月27日 优先权日2005年6月27日
发明者J·李, O·埃茨昂, S·伯科维茨 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1