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

    公开(公告)号:US07840951B1

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

    申请号:US10646309

    申请日:2003-08-22

    CPC classification number: G06F8/53 G06F9/45516 G06F9/45533

    Abstract: 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.

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

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

    公开(公告)号:US07774546B1

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

    申请号:US11155276

    申请日:2005-06-17

    CPC classification number: G06F12/0802 G06F12/0253

    Abstract: 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.

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

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

    公开(公告)号:US07249225B1

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

    申请号:US10698727

    申请日:2003-10-31

    CPC classification number: G06F12/0815 G06F12/0875 G06F12/1063 Y10S707/99944

    Abstract: 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.

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

    METHOD AND SYSTEM FOR HARDWARE-BASED SECURITY OF OBJECT REFERENCES
    4.
    发明申请
    METHOD AND SYSTEM FOR HARDWARE-BASED SECURITY OF OBJECT REFERENCES 有权
    用于基于硬件的对象参考安全的方法和系统

    公开(公告)号:US20090327666A1

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

    申请号:US12145657

    申请日:2008-06-25

    Abstract: A method for managing data, including obtaining a first instruction for moving a first data item from a first source to a first destination, determining a data type of the first data item, determining a data type supported by the first destination, comparing the data type of the first data item with the data type supported by the first destination to test a validity of the first instruction, and moving the first data item from the first source to the first destination based on the validity of the first instruction.

    Abstract translation: 一种用于管理数据的方法,包括获得用于将第一数据项从第一源移动到第一目的地的第一指令,确定第一数据项的数据类型,确定由第一目的地支持的数据类型,比较数据类型 具有由第一目的地支持的数据类型的第一数据项以测试第一指令的有效性,以及基于第一指令的有效性将第一数据项从第一源移动到第一目的地。

    Method and apparatus for skewing a bi-directional object layout to improve cache performance
    5.
    发明授权
    Method and apparatus for skewing a bi-directional object layout to improve cache performance 有权
    用于偏斜双向对象布局以提高高速缓存性能的方法和装置

    公开(公告)号:US07246141B2

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

    申请号:US10335621

    申请日:2003-01-02

    CPC classification number: G06F12/0886 Y10S707/99953 Y10S707/99956

    Abstract: One embodiment of the present invention facilitates skewing a bi-directional object layout to provide good cache behavior. During operation, the system receives a request to access an object. This request includes an object identifier and an object offset that specifies the offset of a target field within the object, wherein the object has a bi-directional layout that locates scalar fields at positive offsets and reference fields at negative offsets, so that a reference field can be immediately identified from its object offset. Next, the system determines a skew value for a cache line containing the object, wherein data within the cache line is shifted based upon the skew value, so that reference fields with small negative offsets are likely to be located in the same cache line as scalar fields with small positive offsets. Next, the system uses the skew value in accessing the object.

    Abstract translation: 本发明的一个实施例有助于扭曲双向对象布局以提供良好的缓存行为。 在操作期间,系统接收访问对象的请求。 该请求包括对象标识符和对象偏移量,该对象标识符和对象偏移量指定对象内的目标字段的偏移量,其中对象具有双向布局,其在负偏移处以正偏移量和参考字段定位标量字段,使得参考字段 可以从其对象偏移中立即识别。 接下来,系统确定包含对象的高速缓存行的偏斜值,其中高速缓存行内的数据基于偏差值移位,使得具有小的负偏移的参考字段可能位于与标量相同的高速缓存行中 具有小正偏移的场。 接下来,系统在访问对象时使用偏斜值。

    Object-addressed memory hierarchy that facilitates accessing objects stored outside of main memory
    6.
    发明授权
    Object-addressed memory hierarchy that facilitates accessing objects stored outside of main memory 有权
    对象寻址的存储器层次结构,便于访问存储在主存储器外部的对象

    公开(公告)号:US07171540B1

    公开(公告)日:2007-01-30

    申请号:US10698728

    申请日:2003-10-31

    CPC classification number: G06F12/0897 G06F12/1045 Y10S707/99933

    Abstract: One embodiment of the present invention provides an object-addressed memory hierarchy that is able to access objects stored outside of main memory. 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. Next, the system uses the object identifier to retrieve an object table entry associated with the object. The system then examines a valid bit within the object table entry. If the valid bit indicates the object is located in main memory, the system uses a physical address in the object table entry to access the object in main memory. On the other hand, if the valid bit indicates that the object is not located in main memory, the system relocates the object into memory from a location outside of memory, and then accesses the object in main memory.

    Abstract translation: 本发明的一个实施例提供了一种能够访问存储在主存储器外部的对象的物体寻址存储器层级。 在操作期间,系统接收访问对象的请求,其中请求包括用于引用对象寻址的存储器层次结构内的对象的对象的对象标识符。 接下来,系统使用对象标识符来检索与对象相关联的对象表条目。 然后系统检查对象表条目中的有效位。 如果有效位表示对象位于主存储器中,则系统使用对象表条目中的物理地址访问主内存中的对象。 另一方面,如果有效位指示对象不位于主存储器中,则系统从存储器外部的位置将对象重新定位到存储器中,然后访问主存储器中的对象。

    Method and apparatus for avoiding cache line collisions between an object and corresponding object table entries
    7.
    发明授权
    Method and apparatus for avoiding cache line collisions between an object and corresponding object table entries 有权
    用于避免对象与对应表表项之间的高速缓存行冲突的方法和装置

    公开(公告)号:US06934827B2

    公开(公告)日:2005-08-23

    申请号:US10389629

    申请日:2003-03-13

    CPC classification number: G06F12/0875 G06F12/0292

    Abstract: One embodiment of the present invention provides a system that facilitates avoiding collisions between cache lines containing objects and cache lines containing corresponding object table entries. During operation, the system receives an object identifier for an object, wherein the object identifier is used to address the object in an object-addressed memory hierarchy. The system then applies a mapping function to the object identifier to compute an address for a corresponding object table entry associated with the object, wherein the mapping function ensures that a cache line containing the object table entry does not collide with a cache line containing the object.

    Abstract translation: 本发明的一个实施例提供一种系统,其有助于避免包含对象的高速缓存行和包含对应表表项的高速缓存行之间的冲突。 在操作期间,系统接收对象的对象标识符,其中使用对象标识符来寻址对象寻址存储器层次结构中的对象。 然后,系统将映射函数应用于对象标识符以计算与该对象相关联的相应对象表条目的地址,其中映射功能确保包含对象表条目的高速缓存行不与包含该对象的高速缓存行冲突 。

    Method and apparatus for facilitating mark-sweep garbage collection with reference counting
    8.
    发明授权
    Method and apparatus for facilitating mark-sweep garbage collection with reference counting 有权
    引用计数方法和装置,方便标记扫描垃圾收集

    公开(公告)号:US07631024B2

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

    申请号:US11325381

    申请日:2006-01-03

    Abstract: A method and a system for facilitating garbage collection (GC) operations in a memory-management system that supports both mark-sweep (MS) objects and reference-counted (RC) objects, wherein objects which are frequently modified are classified as MS objects, and objects which are infrequently modified are classified as RC objects. During a marking phase of a GC operation, the system identifies a set of root objects and then marks referents of the root objects. The system then recursively traverses referents of the root objects which are MS objects and while doing so, marks referents of the traversed MS objects. However, if an RC object is encountered during the traversal of an MS object, the system marks the RC object but does not recursively traverse the RC object. In doing so, the system avoids traversing a large number of RC objects which are infrequently modified.

    Abstract translation: 一种用于在支持标记扫描(MS)对象和参考计数(RC)对象的存储器管理系统中促进垃圾回收(GC)操作的方法和系统,其中频繁修改的对象被分类为MS对象, 并且不经常修改的对象被分类为RC对象。 在GC操作的标记阶段,系统识别一组根对象,然后标记根对象的对象。 然后,系统递归地遍历作为MS对象的根对象的对象,并且在这样做时,标记所遍历的MS对象的对象。 然而,如果在遍历MS对象期间遇到RC对象,则系统标记RC对象,但不递归地遍历RC对象。 在这样做时,系统避免遍历不经常修改的大量RC对象。

    Method and system for concurrent garbage collection and mutator execution
    9.
    发明授权
    Method and system for concurrent garbage collection and mutator execution 有权
    并发垃圾收集和变异器执行的方法和系统

    公开(公告)号:US07421539B1

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

    申请号:US10849081

    申请日:2004-05-18

    Abstract: A method for concurrent garbage collection and mutator execution in a computer system includes scanning a first cache line for a non-local bit. The non-local bit is associated with a root object. A done bit associated with the first cache line is set. A second cache line to find a first object that is referenced by the root object is located. A mark bit and the done bit associated with the second cache line are set. The first and second cache lines are scanned for unset done bits. If an unset done bit is detected in either the first or the second cache line, then the cache line associated with the unset done bit is rescanned to determine whether there are any modified object references.

    Abstract translation: 一种用于计算机系统中的并行垃圾收集和突变器执行的方法包括扫描非局部位的第一高速缓存行。 非本地位与根对象相关联。 设置与第一高速缓存行相关联的完成位。 找到由根对象引用的第一个对象的第二个缓存行位于。 设置与第二高速缓存行相关联的标记位和完成位。 第一条和第二条高速缓存行被扫描未设置完成位。 如果在第一或第二高速缓存行中检测到未完成的位,则重新扫描与未设置完成位相关联的高速缓存行,以确定是否存在任何修改的对象引用。

    Memory space management for object-based memory system
    10.
    发明授权
    Memory space management for object-based memory system 有权
    基于对象的内存系统的内存空间管理

    公开(公告)号:US07269705B1

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

    申请号:US10831415

    申请日:2004-04-23

    Abstract: A method for pre-allocating memory for object-based cache data is provided in which request for an object having an associated property parameter that defines the memory requirements for the object. In response, a table of allocation buckets is searched for a bucket having the associated property parameter that can at least meet the memory requirements for the requested object. If an object identifier (OID), having a previously allocated physical address in main memory, is identified in the table of allocation buckets then the identified OID is assigned to the object. The object is stored in the object cache with the assigned OID, and the OID is removed from the bucket. Also included is a table of allocation buckets in a computer system in which each of a plurality of buckets is capable of holding object identifiers (OIDs). Each object identifier (OID) has a pre-allocated physical memory, with buckets of the table of allocation buckets being replenished by recycling a previously used OID when the object associated with the OID is reclaimed.

    Abstract translation: 提供了一种用于为基于对象的高速缓存数据预分配存储器的方法,其中对具有定义对象的存储器需求的关联属性参数的对象的请求。 作为响应,搜索分配桶的表以具有可以至少满足所请求对象的存储器要求的关联属性参数的桶。 如果在主存储器中具有先前分配的物理地址的对象标识符(OID)在分配桶的表中被识别,则将所识别的OID分配给该对象。 对象使用分配的OID存储在对象缓存中,OID从存储桶中删除。 还包括计算机系统中的分配桶的表,其中多个桶中的每一个能够保存对象标识符(OID)。 每个对象标识符(OID)具有预分配的物理内存,当与OID相关联的对象被回收时,通过循环先前使用的OID来补充分配桶的表中的桶。

Patent Agency Ranking