Method and apparatus for managing access to out-of-frame registers
    1.
    发明授权
    Method and apparatus for managing access to out-of-frame registers 有权
    用于管理对帧外寄存器的访问的方法和装置

    公开(公告)号:US07334112B2

    公开(公告)日:2008-02-19

    申请号:US10702355

    申请日:2003-11-06

    IPC分类号: G06F9/312

    摘要: Method and apparatus for managing access to registers that are outside a current register stack frame are disclosed. An instruction execution unit in a processor receives an instruction to be executed. A processor includes a register stack, the register stack including a plurality of register stack frames. Each of the register stack frames includes zero or more registers. One of the plurality of register stack frames is a current register stack frame. When execution of the instruction requires writing to a register referenced by the instruction, the instruction execution unit determines whether the register referenced by the instruction is within the current register stack frame. If the instruction execution unit determines that the register is not within the current register stack frame, the instruction execution unit does not execute the instruction and may, for example, generate a fault. The instruction execution unit executes the instruction is the instruction execution unit determines that the register is within the current register stack frame. When execution of the instruction requires reading from a register referenced by the instruction, the instruction execution unit executes the instruction whether or not the register referenced by the instruction is within the current register stack frame.

    摘要翻译: 公开了用于管理对当前寄存器堆栈帧之外的寄存器的访问的方法和装置。 处理器中的指令执行单元接收要执行的指令。 处理器包括寄存器堆栈,寄存器堆栈包括多个寄存器堆栈帧。 每个寄存器堆栈帧包括零个或多个寄存器。 多个寄存器堆栈帧中的一个是当前寄存器堆栈帧。 当执行指令需要写入由指令引用的寄存器时,指令执行单元确定该指令引用的寄存器是否在当前寄存器堆栈帧内。 如果指令执行单元确定寄存器不在当前寄存器堆栈帧内,则指令执行单元不执行指令,并且例如可能产生故障。 指令执行单元执行指令是指令执行单元确定寄存器在当前寄存器堆栈帧内。 当指令的执行需要从指令引用的寄存器读取时,指令执行单元执行指令,该指令是否由指令引用的寄存器是否在当前寄存器堆栈帧内。

    Specifying an invariant property (range of addresses) in the annotation in source code of the computer program
    2.
    发明授权
    Specifying an invariant property (range of addresses) in the annotation in source code of the computer program 失效
    在计算机程序的源代码中的注释中指定不变属性(地址范围)

    公开(公告)号:US07013460B2

    公开(公告)日:2006-03-14

    申请号:US09858241

    申请日:2001-05-15

    IPC分类号: G06F9/45

    摘要: Method and apparatus for verifying at runtime an invariant property of a data structure. In various example embodiments, code that verifies whether a runtime value of the data structure is consistent with the invariant property is automatically generated in response to an annotation of the data structure in the source code. In executing the program, the runtime value of the data structure is compared to the invariant property in the automatically generated code. If the runtime property is inconsistent with the invariant property, the program branches to exception handler code.

    摘要翻译: 用于在运行时验证数据结构的不变属性的方法和装置。 在各种示例实施例中,响应于源代码中的数据结构的注释,自动生成验证数据结构的运行时值是否与不变属性一致的代码。 在执行程序时,将数据结构的运行时值与自动生成代码中的不变属性进行比较。 如果运行时属性与不变属性不一致,程序将分支到异常处理程序代码。

    Method and apparatus for performing correctness checks opportunistically
    4.
    发明授权
    Method and apparatus for performing correctness checks opportunistically 失效
    机会性地执行正确性检查的方法和装置

    公开(公告)号:US06883166B1

    公开(公告)日:2005-04-19

    申请号:US09717570

    申请日:2000-11-21

    申请人: Carol L. Thompson

    发明人: Carol L. Thompson

    IPC分类号: G06F9/45 G06F11/36

    摘要: A method and an apparatus that enable spare instruction slots within a code module to be utilized opportunistically for insertion of instructions associated with correctness check functions. The apparatus comprises a compiler that generates code and an initial instruction schedule. During generation of the initial instruction schedule, the compiler ignores code sequences associated with correctness check functions. After the initial instruction schedule has been generated, the compiler examines the initial instruction schedule and determines locations of spare instruction slots in the initial instruction schedule that can potentially be utilized for insertion of the code sequences associated with the correctness checks. The code sequences associated with the correctness checks are then inserted into the instruction schedule to the extent that insertion of the code sequences does not lengthen the final instruction schedule. Consequently, no performance penalty is incurred at run time.

    摘要翻译: 使代码模块中的备用指令槽的机会性地用于插入与正确性检查功能相关联的指令的方法和装置。 该装置包括生成代码和初始指令调度的编译器。 在生成初始指令调度时,编译器忽略与正确性检查功能相关联的代码序列。 在生成初始指令调度之后,编译器检查初始指令调度并确定初始指令调度中备用指令时隙的位置,该位置可能用于插入与正确性检查相关联的代码序列。 然后将与正确性检查相关联的代码序列插入到指令调度中,使得代码序列的插入不会延长最终指令调度。 因此,在运行时不会产生性能损失。

    Method and apparatus for switching between multiple implementations of a routine
    5.
    发明授权
    Method and apparatus for switching between multiple implementations of a routine 失效
    用于在例程的多个实现之间切换的方法和装置

    公开(公告)号:US07065754B1

    公开(公告)日:2006-06-20

    申请号:US09702593

    申请日:2000-10-31

    IPC分类号: G06F9/45

    CPC分类号: G06F9/44547

    摘要: Method and apparatus for switching between multiple implementations of a routine. A plurality of implementations of a routine are compiled into respective object code modules. In one embodiment, each implementation of the routine is adapted for a particular hardware configuration. The different object code modules are associated with respective sets of hardware characteristics and with the name of the routine. When the application program and library are loaded into memory of the computer system, a references to the routine are resolved using the sets of hardware characteristics and the hardware configuration of the system.

    摘要翻译: 用于在例程的多个实现之间切换的方法和装置。 程序的多个实现被编译成各自的目标代码模块。 在一个实施例中,该例程的每个实现适用于特定的硬件配置。 不同的目标代码模块与相应的硬件特征集合以及例程的名称相关联。 当应用程序和库被加载到计算机系统的存储器时,使用硬件特性和系统的硬件配置来解决对该例程的引用。

    Compiler-based checkpointing for support of error recovery
    6.
    发明授权
    Compiler-based checkpointing for support of error recovery 失效
    基于编译器的检查点支持错误恢复

    公开(公告)号:US06708288B1

    公开(公告)日:2004-03-16

    申请号:US09702590

    申请日:2000-10-31

    IPC分类号: G06F1100

    CPC分类号: G06F11/1407 G06F11/1469

    摘要: Compiler-based checkpointing for error recovery. In various embodiments, a compiler is adapted to identify checkpoints in program code. Sets of data objects are associated with the checkpoints, and checkpoint code is generated by the compiler for execution at the checkpoints. The checkpoint code stores state information of the associated data objects for recovery if execution of the program is interrupted.

    摘要翻译: 基于编译器的检查点进行错误恢复。 在各种实施例中,编译器适于识别程序代码中的检查点。 数据对象集合与检查点相关联,检查点代码由编译器生成,以便在检查点执行。 如果程序的执行中断,则检查点代码存储用于恢复的相关联的数据对象的状态信息。

    System and method for enabling efficient processing of a program that includes assertion instructions
    7.
    发明授权
    System and method for enabling efficient processing of a program that includes assertion instructions 失效
    用于实现包括断言指令的程序的有效处理的系统和方法

    公开(公告)号:US06701518B1

    公开(公告)日:2004-03-02

    申请号:US09631552

    申请日:2000-08-03

    IPC分类号: G06F944

    CPC分类号: G06F11/3624 G06F8/52

    摘要: The present invention relates to a system and method for reducing the adverse impact of assertion instructions to processor performance so that programmers will be encouraged to include assertion instructions in computer programs. The system of the present invention includes memory and a compiler. The memory stores a first program to be compiled by the compiler. The compiler, in compiling the first program, translates a first function of the first program into a second function of a second program. The first function has assertion instructions that are translated by the compiler into translated assertion instructions, which are included in the second function. In compiling the first program, the compiler enables selective execution, based on a run time input, of a portion of the translated assertion instructions included in the second function.

    摘要翻译: 本发明涉及一种用于减少断言指令对处理器性能的不利影响的系统和方法,以便鼓励程序员在计算机程序中包括断言指令。 本发明的系统包括存储器和编译器。 内存存储由编译器编译的第一个程序。 编译器在编译第一程序时将第一程序的第一功能转换为第二程序的第二功能。 第一个函数具有由编译器转换成被转换为断言指令的断言指令,这些指令包含在第二个函数中。 在编译第一程序时,编译器使得能够基于运行时间输入来选择性地执行包括在第二功能中的翻译的断言指令的一部分。

    System and method for selectively executing computer code
    8.
    发明授权
    System and method for selectively executing computer code 失效
    有选择地执行计算机代码的系统和方法

    公开(公告)号:US06654877B1

    公开(公告)日:2003-11-25

    申请号:US09644435

    申请日:2000-08-23

    IPC分类号: G06F944

    摘要: A system of the present invention utilizes memory for storing a computer program and processing circuitry for processing and executing instructions of the computer program. In particular, the computer program includes a set of code and an unconditional branch instruction. The processing circuitry, in executing the computer program, receives run time data indicative of whether the set of code is enabled or disabled, and based on the run time data, the processing circuitry sets a value of a mode indicator. While the program is running, the processing circuitry receives and processes the unconditional branch instruction. When the set of code is disabled, the processing circuitry executes the unconditional branch instruction based on the mode indicator, thereby preventing execution of the set of code. However, when the set of code is enabled, the processing circuitry refrains from executing the unconditional branch instruction based on the mode indicator and executes the set of code. Thus, execution of the set of code is selectively enabled based on the status of the mode indicator.

    摘要翻译: 本发明的系统利用存储器来存储用于处理和执行计算机程序指令的计算机程序和处理电路。 特别地,计算机程序包括一组代码和无条件分支指令。 处理电路在执行计算机程序时接收指示代码集是启用还是禁用的运行时间数据,并且基于运行时间数据,处理电路设置模式指示符的值。 当程序运行时,处理电路接收并处理无条件转移指令。 当代码集合被禁用时,处理电路基于模式指示符执行​​无条件转移指令,从而防止代码集的执行。 然而,当代码集合被使能时,处理电路基于模式指示符禁止执行无条件转移指令并执行该代码集。 因此,基于模式指示符的状态来选择性地启用该代码集的执行。

    Method and apparatus for managing access to out-of-frame registers
    9.
    发明授权
    Method and apparatus for managing access to out-of-frame registers 有权
    用于管理对帧外寄存器的访问的方法和装置

    公开(公告)号:US07272702B2

    公开(公告)日:2007-09-18

    申请号:US10702252

    申请日:2003-11-06

    IPC分类号: G06F9/34

    摘要: Method and apparatus for managing access to registers that are outside a current register stack frame are disclosed. An instruction execution unit in a processor receives an instruction to be executed. A processor includes a register stack, the register stack including a plurality of register stack frames. Each of the register stack frames includes zero or more registers. One of the plurality of register stack frames is a current register stack frame. When execution of the instruction requires writing to a register referenced by the instruction, the instruction execution unit determines whether the register referenced by the instruction is within the current register stack frame. If the instruction execution unit determines that the register is not within the current register stack frame, the instruction execution unit does not execute the instruction and may, for example, generate a fault. The instruction execution unit executes the instruction is the instruction execution unit determines that the register is within the current register stack frame. When execution of the instruction requires reading from a register referenced by the instruction, the instruction execution unit executes the instruction whether or not the register referenced by the instruction is within the current register stack frame.

    摘要翻译: 公开了用于管理对当前寄存器堆栈帧之外的寄存器的访问的方法和装置。 处理器中的指令执行单元接收要执行的指令。 处理器包括寄存器堆栈,寄存器堆栈包括多个寄存器堆栈帧。 每个寄存器堆栈帧包括零个或多个寄存器。 多个寄存器堆栈帧中的一个是当前寄存器堆栈帧。 当执行指令需要写入由指令引用的寄存器时,指令执行单元确定该指令引用的寄存器是否在当前寄存器堆栈帧内。 如果指令执行单元确定寄存器不在当前寄存器堆栈帧内,则指令执行单元不执行指令,并且例如可能产生故障。 指令执行单元执行指令是指令执行单元确定寄存器在当前寄存器堆栈帧内。 当指令的执行需要从指令引用的寄存器读取时,指令执行单元执行指令,该指令是否由指令引用的寄存器是否在当前寄存器堆栈帧内。

    Method and apparatus for creating alternative versions of code segments and dynamically substituting execution of the alternative code versions
    10.
    发明授权
    Method and apparatus for creating alternative versions of code segments and dynamically substituting execution of the alternative code versions 失效
    用于创建替代版本的代码段并动态替代替代代码版本的执行的方法和装置

    公开(公告)号:US06658656B1

    公开(公告)日:2003-12-02

    申请号:US09702592

    申请日:2000-10-31

    申请人: Carol L. Thompson

    发明人: Carol L. Thompson

    IPC分类号: G06F945

    摘要: Method and apparatus for creating alternative versions of code segments and dynamically substituting execution of the alternative code versions. Checkpoints in program code are identified by a compiler, and the checkpoints are used to delineate segments of object code. Two sets of segments of object code are generated, where the first and second sets of object code segments are optimized at different levels. In one embodiment, the first set of segments are optimized at a greater level than the second set of segments. Upon detecting a program error in executing the first set of segments, state information of the program is recovered from a checkpoint, and an object code module is selected from either the first set or second set for execution.

    摘要翻译: 用于创建替代版本的代码段并动态替代替代代码版本的执行的方法和装置。 程序代码中的检查点由编译器识别,检查点用于描绘目标代码段。 生成两组目标代码段,其中第一组和第二组目标代码段在不同级别进行优化。 在一个实施例中,第一组段以比第二组段更高的级别进行优化。 在检测到执行第一组段时的程序错误时,从检查点恢复程序的状态信息,并且从第一组或第二组中选择目标代码模块进行执行。