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(指令集架构)中生成指令。 单独的指令显示它们将要运行的保护域,并且可能交错对应于不同域的指令。

    CROSS-ISA INLINING IN A SYSTEM VIRTUAL MACHINE
    5.
    发明申请
    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内一样执行。

    Accessing memory locations for paged memory objects in an object-addressed memory system
    6.
    发明授权
    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.

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

    Reducing the overhead involved in executing native code in a virtual machine through binary reoptimization
    7.
    发明授权
    Reducing the overhead involved in executing native code in a virtual machine through binary reoptimization 有权
    通过二进制重新优化减少在虚拟机中执行本地代码所涉及的开销

    公开(公告)号:US07840951B1

    公开(公告)日:2010-11-23

    申请号:US10646309

    申请日:2003-08-22

    IPC分类号: G06F9/45

    摘要: One embodiment of the present invention provides a system that reduces the overhead involved in executing a native code method in an application running on a virtual machine. During operation, the system selects a call to a native code method to be optimized within the virtual machine, decompiles at least part of the native code method into an intermediate representation, and obtains an intermediate representation associated with the application. Next, the system combines the intermediate representation for the native code method with the intermediate representation associated with the application running on the virtual machine to form a combined intermediate representation, and generates native code from the combined intermediate representation, wherein the native code generation process optimizes interactions between the application running on the virtual machine and the native code method. A variation on this embodiment involves optimizing callbacks by the native code method into the virtual machine.

    摘要翻译: 本发明的一个实施例提供一种减少在虚拟机上运行的应用中执行本地代码方法所涉及的开销的系统。 在操作期间,系统选择对本机代码方法的调用以在虚拟机内进行优化,将至少部分本地代码方法反编译成中间表示,并获得与应用相关联的中间表示。 接下来,系统将本地代码方法的中间表示与在虚拟机上运行的应用程序相关联的中间表示形成组合的中间表示,并从组合的中间表示生成本地代码,其中本地代码生成过程优化 在虚拟机上运行的应用程序与本地代码方法之间的交互。 该实施例的变体涉及将本地代码方法的回调优化到虚拟机中。

    Method and apparatus for facilitating in-cache reference counting
    8.
    发明授权
    Method and apparatus for facilitating in-cache reference counting 有权
    用于促进缓存中引用计数的方法和装置

    公开(公告)号:US07774546B1

    公开(公告)日:2010-08-10

    申请号:US11155276

    申请日:2005-06-17

    IPC分类号: G06F12/00 G06F13/00 G06F13/28

    CPC分类号: G06F12/0802 G06F12/0253

    摘要: One embodiment of the present invention provides a system that facilitates in-cache reference counting in a cache memory. During operation, the system receives a command to update an old cache line with a new cache line. The system then determines if the new cache line is different than the old cache line. If so, the system determines if the old cache line contains any in-cache references. If so, for each such in-cache reference, the system decrements a reference counter in a cache line containing an object which is referenced by the in-cache reference. The system also determines if the new cache line contains any in-cache references. If so, for each such in-cache reference, the system increments a reference counter in a cache line containing an object which is referenced by the in-cache reference. Note that the reference counter in a cache line indicates a count of references in the cache that refer to an object contained in the cache line.

    摘要翻译: 本发明的一个实施例提供了一种有助于高速缓存存储器中的高速缓存引用计数的系统。 在操作期间,系统接收到使用新的高速缓存行更新旧缓存行的命令。 然后,系统确定新的高速缓存行是否与旧的高速缓存行不同。 如果是这样,系统确定旧的高速缓存行是否包含任何缓存中的引用。 如果是这样,对于每个这样的高速缓存引用,系统递减包含由缓存内引用引用的对象的高速缓存行中的引用计数器。 该系统还确定新的高速缓存行是否包含任何缓存中的引用。 如果是这样,对于每个这样的缓存引用,系统会增加包含由缓存内引用引用的对象的高速缓存行中的引用计数器。 请注意,缓存行中的引用计数器指示缓存中引用包含在高速缓存行中的对象的引用计数。

    Method and apparatus for supporting read-only objects within an object-addressed memory hierarchy
    9.
    发明授权
    Method and apparatus for supporting read-only objects within an object-addressed memory hierarchy 有权
    用于在对象寻址的存储器层级中支持只读对象的方法和装置

    公开(公告)号:US07249225B1

    公开(公告)日:2007-07-24

    申请号:US10698727

    申请日:2003-10-31

    IPC分类号: G06F12/14

    摘要: One embodiment of the present invention provides a system that supports read-only objects within an object-addressed memory hierarchy. During operation, the system receives a request to access an object, wherein the request includes an object identifier for the object that is used to reference the object within the object-addressed memory hierarchy. In response to this request, the system uses the object identifier to retrieve an object table entry associated with the object. If the request is a write request, the system examines a read-only indicator within the object table entry. If this read-only indicator specifies that the object is a read-only object, the system performs a corrective action to deal with the fact that the write request is directed to a read-only object.

    摘要翻译: 本发明的一个实施例提供一种支持对象寻址存储器层级内的只读对象的系统。 在操作期间,系统接收访问对象的请求,其中请求包括用于引用对象寻址的存储器层次结构内的对象的对象的对象标识符。 响应于该请求,系统使用对象标识符来检索与对象相关联的对象表条目。 如果请求是写请求,系统将检查对象表条目中的只读指示符。 如果此只读指示符指定对象是只读对象,则系统将执行纠正措施来处理写入请求被引导到只读对象的事实。

    Method and apparatus for performing concurrent garbage collection
    10.
    发明授权
    Method and apparatus for performing concurrent garbage collection 有权
    执行并发垃圾回收的方法和装置

    公开(公告)号:US08065349B2

    公开(公告)日:2011-11-22

    申请号:US12165024

    申请日:2008-06-30

    IPC分类号: G06F17/30

    CPC分类号: G06F12/0269

    摘要: The present invention provides a system that facilitates performing concurrent garbage collection. During operation, the system executes a first mutator thread. While executing the first mutator thread, the system performs a garbage-collection operation using a garbage-collector thread. Performing the garbage-collection operation involves: discovering a live object in a from-space, which is being collected; creating a copy of the live object to a to-space, where live objects are copied to during garbage collection; and replacing the live object in the from-space with a forwarding pointer which points to a location of the copy of the live object in the to-space.

    摘要翻译: 本发明提供一种便于执行并发垃圾收集的系统。 在运行过程中,系统执行第一个mutator线程。 在执行第一个mutator线程时,系统使用垃圾回收器线程执行垃圾回收操作。 执行垃圾收集操作包括:从正在收集的空间中发现一个活动对象; 将活动对象的副本创建到空间,其中活动对象在垃圾收集期间被复制; 并使用指向空间中的活动对象的副本的位置的转发指针来替换空间中的活动对象。