Cross-ISA inlining in a system virtual machine
    1.
    发明授权
    Cross-ISA inlining in a system virtual machine 有权
    跨系统内联的系统虚拟机

    公开(公告)号:US08281296B2

    公开(公告)日:2012-10-02

    申请号:US12190490

    申请日:2008-08-12

    IPC分类号: G06F9/45

    CPC分类号: G06F9/45516 G06F9/45533

    摘要: A system and method are provided for inlining a program call between processes executing under separate ISAs (Instruction Set Architectures) within a system virtual machine. The system virtual machine hosts any number of virtual operating system instances, each of which may execute any number of applications. The system virtual machine interprets or dynamically compiles not only application code executing under virtual operating systems, but also the virtual operating systems. For a program call that crosses ISA boundaries, the virtual machine assembles an intermediate representation (IR) graph that spans the boundary. Region nodes corresponding to code on both sides of the call are enhanced with information identifying the virtual ISA of the code. The IR is optimized and used to generate instructions in a native ISA (Instruction Set Architecture) of the virtual machine. Individual instructions are configured and executed (or emulated) to perform as they would within the virtual ISA.

    摘要翻译: 提供了一种系统和方法,用于在系统虚拟机内的单独的ISA(指令集架构)下执行的进程之间内联程序调用。 系统虚拟机托管任何数量的虚拟操作系统实例,每个虚拟操作系统实例可以执行任意数量的应用程序。 系统虚拟机不仅解释或动态编译在虚拟操作系统下运行的应用程序代码,还可以动态地编译虚拟操作系统。 对于跨越ISA边界的程序调用,虚拟机组装跨越边界的中间表示(IR)图。 通过识别代码的虚拟ISA的信息来增强对应于呼叫两侧的代码的区域节点。 IR被优化并用于在虚拟机的本机ISA(指令集架构)中生成指令。 单独的指令被配置和执行(或仿真)以像在虚拟ISA内一样执行。

    ACCESSING MEMORY LOCATIONS FOR PAGED MEMORY OBJECTS IN AN OBJECT-ADDRESSED MEMORY SYSTEM
    2.
    发明申请
    ACCESSING MEMORY LOCATIONS FOR PAGED MEMORY OBJECTS IN AN OBJECT-ADDRESSED MEMORY SYSTEM 有权
    在对象存储器系统中访问存储器对象的存储器位置

    公开(公告)号:US20100228936A1

    公开(公告)日:2010-09-09

    申请号:US12398724

    申请日:2009-03-05

    IPC分类号: G06F12/00 G06F12/14 G06F12/08

    CPC分类号: G06F12/1009 G06F12/1027

    摘要: One embodiment of the present invention provides a system that accesses memory locations in an object-addressed memory system. During a memory access in the object-addressed memory system, the system receives an object identifier and an address. The system then uses the object identifier to identify a paged memory object associated with the memory access. Next, the system uses the address and a page table associated with the paged memory object to identify a memory page associated with the memory access. After determining the memory page, the system uses the address to access a memory location in the memory page.

    摘要翻译: 本发明的一个实施例提供一种访问对象寻址存储器系统中的存储器位置的系统。 在对象寻址存储器系统中的存储器访问期间,系统接收对象标识符和地址。 然后,系统使用对象标识符来标识与存储器访问相关联的分页存储器对象。 接下来,系统使用地址和与分页存储器对象相关联的页表来识别与存储器访问相关联的存储器页面。 确定内存页后,系统会使用该地址访问内存页中的内存位置。

    Cross-domain inlining in a system virtual machine
    3.
    发明授权
    Cross-domain inlining in a system virtual machine 有权
    跨域内联系统虚拟机

    公开(公告)号:US08307353B2

    公开(公告)日:2012-11-06

    申请号:US12190498

    申请日:2008-08-12

    IPC分类号: G06F9/45

    CPC分类号: G06F8/4443

    摘要: A system and method are provided for inlining across protection domain boundaries with a system virtual machine. A protection domain comprises a unique combination of a privilege level and a memory address space. The system virtual machine interprets or dynamically compiles not only application code executing under guest operating systems, but also the guest operating systems. For a program call that crosses a protection domain boundary, the virtual machine assembles an intermediate representation (IR) graph that spans the boundary. Region nodes corresponding to code on both sides of the call are enhanced with information identifying the applicable protection domains. The IR is optimized and used to generate instructions in a native ISA (Instruction Set Architecture) of the virtual machine. Individual instructions reveal the protection domain in which they are to operate, and instructions corresponding to different domains may be interleaved.

    摘要翻译: 提供了一种系统和方法,用于通过系统虚拟机跨越保护域边界进行内联。 保护域包括权限级别和存储器地址空间的唯一组合。 系统虚拟机不仅可以解释或动态编译在客户机操作系统下执行的应用程序代码,还可以对客户机操作系统进行动态编译。 对于跨越保护域边界的程序调用,虚拟机组合跨越边界的中间表示(IR)图。 通过识别适用的保护域的信息增强与呼叫两侧的代码相对应的区域节点。 IR被优化并用于在虚拟机的本机ISA(指令集架构)中生成指令。 单独的指令显示它们将要运行的保护域,并且可能交错对应于不同域的指令。

    CROSS-DOMAIN INLINING IN A SYSTEM VIRTUAL MACHINE
    4.
    发明申请
    CROSS-DOMAIN INLINING IN A SYSTEM VIRTUAL MACHINE 有权
    系统虚拟机中的跨域插入

    公开(公告)号:US20100042980A1

    公开(公告)日:2010-02-18

    申请号:US12190498

    申请日:2008-08-12

    IPC分类号: G06F9/45

    CPC分类号: G06F8/4443

    摘要: A system and method are provided for inlining across protection domain boundaries with a system virtual machine. A protection domain comprises a unique combination of a privilege level and a memory address space. The system virtual machine interprets or dynamically compiles not only application code executing under guest operating systems, but also the guest operating systems. For a program call that crosses a protection domain boundary, the virtual machine assembles an intermediate representation (IR) graph that spans the boundary. Region nodes corresponding to code on both sides of the call are enhanced with information identifying the applicable protection domains. The IR is optimized and used to generate instructions in a native ISA (Instruction Set Architecture) of the virtual machine. Individual instructions reveal the protection domain in which they are to operate, and instructions corresponding to different domains may be interleaved.

    摘要翻译: 提供了一种系统和方法,用于通过系统虚拟机跨越保护域边界进行内联。 保护域包括权限级别和存储器地址空间的唯一组合。 系统虚拟机不仅可以解释或动态编译在客户机操作系统下执行的应用程序代码,还可以对客户机操作系统进行动态编译。 对于跨越保护域边界的程序调用,虚拟机组合跨越边界的中间表示(IR)图。 通过识别适用的保护域的信息增强与呼叫两侧的代码相对应的区域节点。 IR被优化并用于在虚拟机的本机ISA(指令集架构)中生成指令。 单独的指令显示它们将要运行的保护域,并且可能交错对应于不同域的指令。

    Accessing memory locations for paged memory objects in an object-addressed memory system
    5.
    发明授权
    Accessing memory locations for paged memory objects in an object-addressed memory system 有权
    访问对象寻址的存储系统中分页的内存对象的内存位置

    公开(公告)号:US08375195B2

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

    申请号:US12398724

    申请日:2009-03-05

    IPC分类号: G06F12/10

    CPC分类号: G06F12/1009 G06F12/1027

    摘要: One embodiment of the present invention provides a system that accesses memory locations in an object-addressed memory system. During a memory access in the object-addressed memory system, the system receives an object identifier and an address. The system then uses the object identifier to identify a paged memory object associated with the memory access. Next, the system uses the address and a page table associated with the paged memory object to identify a memory page associated with the memory access. After determining the memory page, the system uses the address to access a memory location in the memory page.

    摘要翻译: 本发明的一个实施例提供一种访问对象寻址存储器系统中的存储器位置的系统。 在对象寻址存储器系统中的存储器访问期间,系统接收对象标识符和地址。 然后,系统使用对象标识符来标识与存储器访问相关联的分页存储器对象。 接下来,系统使用地址和与分页存储器对象相关联的页表来识别与存储器访问相关联的存储器页面。 确定内存页后,系统会使用该地址访问内存页中的内存位置。

    CROSS-ISA INLINING IN A SYSTEM VIRTUAL MACHINE
    6.
    发明申请
    CROSS-ISA INLINING IN A SYSTEM VIRTUAL MACHINE 有权
    在系统虚拟机中进行交叉加载

    公开(公告)号:US20100042983A1

    公开(公告)日:2010-02-18

    申请号:US12190490

    申请日:2008-08-12

    IPC分类号: G06F9/45

    CPC分类号: G06F9/45516 G06F9/45533

    摘要: A system and method are provided for inlining a program call between processes executing under separate ISAs (Instruction Set Architectures) within a system virtual machine. The system virtual machine hosts any number of virtual operating system instances, each of which may execute any number of applications. The system virtual machine interprets or dynamically compiles not only application code executing under virtual operating systems, but also the virtual operating systems. For a program call that crosses ISA boundaries, the virtual machine assembles an intermediate representation (IR) graph that spans the boundary. Region nodes corresponding to code on both sides of the call are enhanced with information identifying the virtual ISA of the code. The IR is optimized and used to generate instructions in a native ISA (Instruction Set Architecture) of the virtual machine. Individual instructions are configured and executed (or emulated) to perform as they would within the virtual ISA.

    摘要翻译: 提供了一种系统和方法,用于在系统虚拟机内的单独的ISA(指令集架构)下执行的进程之间内联程序调用。 系统虚拟机托管任何数量的虚拟操作系统实例,每个虚拟操作系统实例可以执行任意数量的应用程序。 系统虚拟机不仅解释或动态编译在虚拟操作系统下运行的应用程序代码,还可以动态地编译虚拟操作系统。 对于跨越ISA边界的程序调用,虚拟机组装跨越边界的中间表示(IR)图。 通过识别代码的虚拟ISA的信息来增强对应于呼叫两侧的代码的区域节点。 IR被优化并用于在虚拟机的本机ISA(指令集架构)中生成指令。 单独的指令被配置和执行(或仿真)以像在虚拟ISA内一样执行。

    METHOD AND APPARATUS FOR TRACKING ENREGISTERED MEMORY LOCATIONS
    7.
    发明申请
    METHOD AND APPARATUS FOR TRACKING ENREGISTERED MEMORY LOCATIONS 有权
    跟踪已记录存储位置的方法和装置

    公开(公告)号:US20100250870A1

    公开(公告)日:2010-09-30

    申请号:US12415905

    申请日:2009-03-31

    IPC分类号: G06F12/00

    CPC分类号: G06F12/1027 G06F12/084

    摘要: One embodiment of the present invention provides a system that tracks enregistered memory locations. During operation, the system receives program object code that enregisters a memory location (e.g., a set of data at a given memory address). Next, the system executes this program object code using a thread. After enregistering the memory location, the system tracks the associated memory address and a thread identifier for the thread in a table that identifies enregistered memory locations. The system checks this table during memory accesses to ensure that other threads attempting to access an enregistered memory location receive a current value for the enregistered memory location.

    摘要翻译: 本发明的一个实施例提供了一种跟踪登记的存储器位置的系统。 在操作期间,系统接收记录存储器位置的程序对象代码(例如,给定存储器地址处的一组数据)。 接下来,系统使用线程执行该程序对象代码。 在注册存储器位置之后,系统跟踪相关联的存储器地址和用于标识注册的存储器位置的表中的线程的线程标识符。 在内存访问期间,系统会检查此表,以确保尝试访问注册内存位置的其他线程接收注册内存位置的当前值。

    USING REGISTER RENAME MAPS TO FACILITATE PRECISE EXCEPTION SEMANTICS
    8.
    发明申请
    USING REGISTER RENAME MAPS TO FACILITATE PRECISE EXCEPTION SEMANTICS 有权
    使用注册名称可能会促进精简例外语言

    公开(公告)号:US20100153690A1

    公开(公告)日:2010-06-17

    申请号:US12334183

    申请日:2008-12-12

    IPC分类号: G06F9/30

    摘要: One embodiment of the present invention provides a system that facilitates precise exception semantics. The system includes a processor that uses register rename maps to support out-of-order execution, where the register rename maps track mappings between native architectural registers and physical registers for a program executing on the processor. These register rename maps include: 1) a working rename map that maps architectural registers associated with a decoded instruction to corresponding physical registers; 2) a retire rename map that tracks and preserves a set of physical registers that are associated with retired instructions; and 3) a checkpoint rename map that stores a mapping between a set of architectural registers and a set of physical registers for a preceding checkpoint in the program. When the program signals an exception, the processor uses the checkpoint rename map to roll back program execution to the preceding checkpoint.

    摘要翻译: 本发明的一个实施例提供了一种有助于精确异常语义的系统。 该系统包括一个使用寄存器重命名映射来支持无序执行的处理器,其中寄存器重命名映射本机结构寄存器和物理寄存器之间的跟踪映射,以便在处理器上执行的程序。 这些寄存器重命名映射包括:1)将与解码指令相关联的架构寄存器映射到对应的物理寄存器的工作重命名映射; 2)一个退休重命名映射,用于跟踪和保留与退休指令相关联的一组物理寄存器; 以及3)检查点重命名映射,其存储在一组结构寄存器和用于程序中前一检查点的一组物理寄存器之间的映射。 当程序发出异常时,处理器使用检查点重命名映射将程序执行回滚到上一个检查点。

    METHOD AND APPARATUS FOR ENREGISTERING MEMORY LOCATIONS
    9.
    发明申请
    METHOD AND APPARATUS FOR ENREGISTERING MEMORY LOCATIONS 有权
    用于加密存储器位置的方法和装置

    公开(公告)号:US20090313612A1

    公开(公告)日:2009-12-17

    申请号:US12138088

    申请日:2008-06-12

    IPC分类号: G06F9/45

    摘要: One embodiment of the present invention provides a system that improves program performance by enregistering memory locations. During operation, the system receives program object code which has been generated for a given hardware implementation, and hence is optimized to use a specified number of registers that are available in that hardware implementation. Next, the system translates this object code to execute on a second hardware implementation which includes more registers than the first hardware implementation. The system makes use of these additional registers to improve the performance of the translated object code for the second hardware implementation. More specifically, the system identifies a memory access in the object code, where the memory access is associated with a memory location. The system then rewrites an instruction associated with this memory access to access the available register instead of the memory location. To preserve program semantics, the system subsequently moderates accesses to the memory location to ensure that no threads access a stale value in the enregistered memory location.

    摘要翻译: 本发明的一个实施例提供了一种通过注册存储器位置来改进程序性能的系统。 在操作期间,系统接收为给定硬件实现而生成的程序对象代码,因此被优化为使用在该硬件实现中可用的指定数量的寄存器。 接下来,系统将该目标代码转换为在第二硬件实现上执行,该第二硬件实现包括比第一硬件实现更多的寄存器。 系统利用这些附加寄存器来提高第二个硬件实现的转换目标代码的性能。 更具体地,系统识别目标代码中的存储器访问,其中存储器访问与存储器位置相关联。 然后,系统重写与该存储器访问相关联的指令以访问可用寄存器而不是存储器位置。 为了保存程序语义,系统随后缓和对存储器位置的访问,以确保没有线程访问注册内存位置中的陈旧值。

    Method and apparatus for protecting translated code in a virtual machine
    10.
    发明授权
    Method and apparatus for protecting translated code in a virtual machine 有权
    用于保护虚拟机中的翻译代码的方法和装置

    公开(公告)号:US08799879B2

    公开(公告)日:2014-08-05

    申请号:US12495367

    申请日:2009-06-30

    IPC分类号: G06F9/45

    摘要: One embodiment provides a system that protects translated guest program code in a virtual machine that supports self-modifying program code. While executing a guest program in the virtual machine, the system uses a guest shadow page table associated with the guest program and the virtual machine to map a virtual memory page for the guest program to a physical memory page on the host computing device. The system then uses a dynamic compiler to translate guest program code in the virtual memory page into translated guest program code (e.g., native program instructions for the computing device). During compilation, the dynamic compiler stores in a compiler shadow page table and the guest shadow page table information that tracks whether the guest program code in the virtual memory page has been translated. The compiler subsequently uses the information stored in the guest shadow page table to detect attempts to modify the contents of the virtual memory page. Upon detecting such an attempt, the system invalidates the translated guest program code associated with the virtual memory page.

    摘要翻译: 一个实施例提供一种保护支持自修改程序代码的虚拟机中的翻译的客户机程序代码的系统。 当在虚拟机中执行访客程序时,系统使用与访客程序和虚拟机相关联的来宾影子页面表将客机程序的虚拟存储器页面映射到主计算设备上的物理存储器页面。 然后,系统使用动态编译器将虚拟存储器页面中的客户程序代码翻译成客户程序代码(例如,用于计算设备的本地程序指令)。 在编译期间,动态编译器存储在编译器影子页表中,并且客户影子页表信息跟踪虚拟内存页中的访客程序代码是否已被翻译。 编译器随后使用存储在客人影子页表中的信息来检测修改虚拟内存页面内容的尝试。 在检测到这样的尝试时,系统使与虚拟存储器页面相关联的经翻译的访客程序代码无效。