Locking of computer resources
    1.
    发明授权
    Locking of computer resources 有权
    锁定电脑资源

    公开(公告)号:US06725308B2

    公开(公告)日:2004-04-20

    申请号:US10288393

    申请日:2002-11-05

    IPC分类号: G06F946

    摘要: A computer processor includes a number of register pairs LOCKADD/LOCKCOUNT to hold values identifying when a computer resource is locked. The LOCKCOUNT register is incremented or decremented in response to lock or unlock instructions, respectively. The lock is freed when a count associated with the LOCKCOUNT register is decremented to zero. In embodiments without LOCKOUT registers, the lock may be freed on any unlock instruction corresponding to the lock. In some embodiments, a computer object includes a header in which two header LSBs store: (1) a LOCK bit indicating whether the object is locked, and (2) a WANT bit indicating whether a thread is waiting to acquire a lock for the object.

    摘要翻译: 计算机处理器包括多个寄存器对LOCKADD / LOCKCOUNT以保存识别计算机资源何时被锁定的值。 响应锁定或解锁指令,LOCKCOUNT寄存器分别递增或递减。 当与LOCKCOUNT寄存器关联的计数递减为零时,该锁定被释放。 在没有LOCKOUT寄存器的实施例中,锁可以在对应于锁的任何解锁指令上被释放。 在一些实施例中,计算机对象包括头部,其中两个标题LSB存储:(1)指示对象是否被锁定的LOCK位,以及(2)指示线程是否正在等待获取对象的锁的WANT位 。

    Array access boundary check by executing BNDCHK instruction with comparison specifiers
    2.
    发明授权
    Array access boundary check by executing BNDCHK instruction with comparison specifiers 有权
    通过执行BNDCHK指令与比较说明符进行阵列访问边界检查

    公开(公告)号:US06408383B1

    公开(公告)日:2002-06-18

    申请号:US09565625

    申请日:2000-05-04

    IPC分类号: G06F1206

    CPC分类号: G06F9/30021 G06F9/30003

    摘要: The present invention provides a method and apparatus for executing a boundary check instruction that provides accelerated bound checking. The instruction can be used to determine whether an array address represents a null pointer, and whether an array index is less than zero or greater than the size of the array. Three extensions of a boundary check instruction are provided, with each performing a different combination of three boundary check comparisons. One comparison compares a first operand, which may contain the base address of an array, to zero. Another comparison evaluates the value of a second operand, which may contain an index offset, to determine if it is less than zero. The other comparison evaluates whether the value of the second operand is greater than or equal to a third operand. The third operand may indicate the size of an array. A trap is generated if any of the comparisons evaluates to true.

    摘要翻译: 本发明提供了一种用于执行提供加速绑定检查的边界检查指令的方法和装置。 该指令可用于确定阵列地址是否表示空指针,以及数组索引是否小于零或大于数组的大小。 提供了边界检查指令的三个扩展,每个执行三个边界检查比较的不同组合。 一个比较将可能包含数组的基地址的第一个操作数与零进行比较。 另一个比较评估第二个操作数的值,该值可以包含索引偏移量,以确定它是否小于零。 另一个比较评估第二个操作数的值是否大于或等于第三个操作数。 第三个操作数可以指示数组的大小。 如果任何比较评估为true,则会生成陷阱。

    Replicating code to eliminate a level of indirection during execution of
an object oriented computer program
    3.
    发明授权
    Replicating code to eliminate a level of indirection during execution of an object oriented computer program 失效
    在执行面向对象的计算机程序期间复制代码以消除间接级别

    公开(公告)号:US5970242A

    公开(公告)日:1999-10-19

    申请号:US787846

    申请日:1997-01-23

    摘要: A method and apparatus for accelerating the execution of an object oriented computer program having a plurality of objects. In one embodiment, each of the objects includes an object header and object data which are stored in a memory. Moreover, each of the objects is associated with a corresponding set of methods (or functions). A typical object oriented program only maintains one copy of a method which is accessed by more than one object. However, in the present invention, each method is copied and stored in a memory, such that each object has a dedicated set of methods stored in memory. For example, if a first object and a second object require access to the same method, then a first copy of this method is provided for the first object, and a second copy of this method is provided for the second object. Providing each object with a dedicated set of methods minimizes the levels of indirection required to access the methods, and thereby accelerates the execution of instructions which access the objects.

    摘要翻译: 一种用于加速具有多个对象的面向对象的计算机程序的执行的方法和装置。 在一个实施例中,每个对象包括存储在存储器中的对象标题和对象数据。 此外,每个对象与一组相应的方法(或功能)相关联。 一个典型的面向对象程序只保存一个由多个对象访问的方法的一个副本。 然而,在本发明中,将每种方法复制并存储在存储器中,使得每个对象具有存储在存储器中的专用方法集合。 例如,如果第一对象和第二对象需要访问相同的方法,则为第一对象提供该方法的第一副本,并且为第二对象提供该方法的第二副本。 通过专门的方法为每个对象提供访问方法所需的间接级别最小化,从而加速访问对象的指令的执行。

    Bounded-pause time garbage collection system and method including read
and write barriers associated with an instance of a partially relocated
object
    4.
    发明授权
    Bounded-pause time garbage collection system and method including read and write barriers associated with an instance of a partially relocated object 失效
    有界暂停时间垃圾收集系统和方法,包括与部分重定位对象的实例相关联的读写障碍

    公开(公告)号:US5857210A

    公开(公告)日:1999-01-05

    申请号:US882801

    申请日:1997-06-26

    IPC分类号: G06F12/00 G06F9/44 G06F12/02

    摘要: A partially relocated object identifier store including "copy from" and "copy to" identifier storage accessible to write and read barrier logic allows the write and read barrier logic to selectively direct store- and load-oriented accesses to an appropriate FromSpace or ToSpace instance of a partially relocated memory object, in accordance with the memory object's partial relocation state. In some embodiments, the barriers trap to a partially relocated object trap handler. In other embodiments, the write barrier itself directs accesses without software trap handler overheads. Optional "how far" indication storage facilitates differentiation by the barrier logic, or by the partially relocated object trap handler, between a copied portion and an uncopied portion of the partially relocated memory object.

    摘要翻译: 包含从写入和读取屏障逻辑访问的“复制到”和“复制到”标识符存储器的部分重新定位的对象标识符存储允许写入和读取屏障逻辑选择性地将存储和负载导向的访问定向到适当的FromSpace或ToSpace实例 根据存储器对象的部分重定位状态,部分重新定位的存储器对象。 在一些实施例中,障碍物捕获到部分重定位的对象陷阱处理器。 在其他实施例中,写入屏障本身引导访问而不需要软件陷阱处理程序开销。 可选的“多远”指示存储有助于通过屏障逻辑或部分重新定位的对象陷阱处理器在部分重新定位的存储器对象的复制部分和未覆盖部分之间进行区分。

    Locking of computer resources
    5.
    发明授权
    Locking of computer resources 有权
    锁定电脑资源

    公开(公告)号:US06529982B2

    公开(公告)日:2003-03-04

    申请号:US09296705

    申请日:1999-04-21

    IPC分类号: G06F946

    摘要: A computer processor includes a number of register pairs LOCKADDR/LOCKCOUNT. In each pair, the LOCKADDR/LOCKCOUNT register is to hold a value that identifies a lock for a computer resource. When a lock instruction issues, the corresponding LOCKCOUNT register is incremented. When an unlock instruction issues, the corresponding LOCKCOUNT register is decremented. The lock is freed when a count associated with the LOCKCOUNT register is decremented to zero. This scheme provides fast locking and unlocking in many frequently occurring situations. In some embodiments, the LOCKCOUNT registers are omitted, and the lock is freed on any unlock instruction corresponding to the lock. In some embodiments, a computer object includes a header which includes a pointer to a class structure. The class structure is aligned on a 4-byte boundary, and therefore two LSBs of the pointer to the class structure are zero and are not stored in the header. Instead, two header LSBs store: (1) a LOCK bit indicating whether the object is locked, and (2) a WANT bit indicating whether a thread is waiting to acquire a lock for the object.

    摘要翻译: 计算机处理器包括多个寄存器对LOCKADDR / LOCKCOUNT。 在每一对中,LOCKADDR / LOCKCOUNT寄存器将保存标识计算机资源的锁的值。 当锁定指令发生时,相应的LOCKCOUNT寄存器增加。 当解锁指令发生时,相应的LOCKCOUNT寄存器递减。 当与LOCKCOUNT寄存器关联的计数递减为零时,该锁定被释放。 该方案在许多频繁发生的情况下提供快速锁定和解锁。 在一些实施例中,省略LOCKCOUNT寄存器,并且在与锁相对应的任何解锁指令上释放锁。 在一些实施例中,计算机对象包括包括指向类结构的指针的报头。 类结构在4字节边界上对齐,因此指向类结构的指针的两个LSB为零,不存储在标题中。 相反,两个标题LSB存储:(1)指示对象是否被锁定的LOCK位,以及(2)指示线程是否正在等待获取对象的锁的WANT位。

    Process of executing a method on a stack-based processor
    6.
    发明授权
    Process of executing a method on a stack-based processor 失效
    在基于堆栈的处理器上执行方法的过程

    公开(公告)号:US6125439A

    公开(公告)日:2000-09-26

    申请号:US786955

    申请日:1997-01-23

    摘要: In executing a new method, a hardware processor loads the execution environment on a stack in the background and indicates what portion of the execution environment has been loaded so far, e.g., simple one bit scoreboarding. Thus, the hardware processor tracks the information in the execution environment loaded on the stack. The hardware processor tries to execute the bytecodes of the called method as soon as possible, even though the stack is not completely loaded. If accesses are made to variables already loaded, overlapping of execution with loading of the stack is achieved. Thus, execution and loading continue until information in the execution environment needed for the execution is not on said stack as indicated by said tracking.

    摘要翻译: 在执行新方法时,硬件处理器将执行环境加载到后台的堆栈中,并指示执行环境的哪一部分已经加载到目前为止,例如简单的一分记录卡。 因此,硬件处理器跟踪堆栈中加载的执行环境中的信息。 即使堆栈未完全加载,硬件处理器尽快尝试执行被调用方法的字节码。 如果对已经加载的变量进行访问,则实现与堆栈加载的执行重叠。 因此,执行和加载继续,直到执行所需的执行环境中的信息不在所述堆栈上,如所述跟踪所示。

    Locking of computer resources
    7.
    发明授权

    公开(公告)号:US5968157A

    公开(公告)日:1999-10-19

    申请号:US788808

    申请日:1997-01-23

    IPC分类号: G06F9/46

    摘要: A computer processor includes a number of register pairs LOCKADDR/LOCKCOUNT. In each pair, the LOCKADDR/LOCKCOUNT register is to hold a value that identifies a lock for a computer resource. When a lock instruction issues, the corresponding LOCKCOUNT register is incremented. When an unlock instruction issues, the corresponding LOCKCOUNT register is decremented. The lock is freed when a count associated with the LOCKCOUNT register is decremented to zero. This scheme provides fast locking and unlocking in many frequently occurring situations. In some embodiments, the LOCKCOUNT registers are omitted, and the lock is freed on any unlock instruction corresponding to the lock. In some embodiments, a computer object includes a header which includes a pointer to a class structure. The class structure is aligned on a 4-byte boundary, and therefore two LSBs of the pointer to the class structure are zero and are not stored in the header. Instead, two header LSBs store: (1) a LOCK bit indicating whether the object is locked, and (2) a WANT bit indicating whether a thread is waiting to acquire a lock for the object.

    Write barrier system and method including pointer-specific instruction
variant replacement mechanism
    8.
    发明授权
    Write barrier system and method including pointer-specific instruction variant replacement mechanism 失效
    写屏障系统和方法,包括指针特定的指令变体替换机制

    公开(公告)号:US5953736A

    公开(公告)日:1999-09-14

    申请号:US841508

    申请日:1997-04-23

    IPC分类号: G06F12/00 G06F9/46 G06F12/02

    CPC分类号: G06F9/52 G06F12/0276

    摘要: A pointer-specific instruction variant replacement mechanism facilitates an exact write barrier, i.e., a write barrier specific to pointer stores and transparent to non-pointer stores. Pointer store specific instruction replacement allows some implementations to provide an exact barrier specific to the particular set of intergenerational pointer stores that are of interest to a particular garbage collection method or combination of methods. The exact identification of pointer stores herein does not require tags encoded in-line with collected memory storage and does not require non-standard word sizes to support such tags. In one embodiment, a non-quick to quick translator cache provides pointer specific store instruction replacement. In another, self modifying code provides pointer specific store instruction replacement. An exemplary write barrier provided in accordance with the pointer-specific instruction variant replacement mechanism of this invention affords a garbage collector implementer with support for a wide variety of garbage collection methods, including remembered set-based methods, card-marking type methods, write barrier based copying collector methods, mark-sweep methods, etc., as well as combinations thereof and combinations including train algorithm type methods to managing mature portions of a generationally collected memory space. Such a write barrier can eliminate non-pointer stores from the set of stores that are evaluated against, for example, an intergenerational pointer store trap matrix or a garbage collection page mask to determine whether or not to trap. Such a write barrier can also eliminate entries associated with non-pointer stores from remembered set or card table stores for collection time scanning of modified portions of a collected generational space.

    摘要翻译: 特定于指针的指令变体替换机制有助于精确写入屏障,即指针存储专用的写入屏障,并且对非指针存储器是透明的。 指针存储特定指令替换允许一些实现提供特定于特定垃圾收集方法或方法组合感兴趣的特定集合的代际指针存储的精确屏障。 这里的指针存储的确切标识不需要与收集的存储器存储器在线编码的标签,并且不需要非标准字大小来支持这样的标签。 在一个实施例中,非快速到快速的翻译缓存提供指针特定的存储指令替换。 另一方面,自修改代码提供指针特定的存储指令替换。 根据本发明的指针特定指令变式替代机制提供的示例性写入屏障提供了一种垃圾收集器实现器,其支持各种垃圾收集方法,包括记忆基于集合的方法,卡标记类型方法,写入屏障 基于文本的复制收集器方法,标记扫描方法等,以及它们的组合和包括训练算法类型方法的组合,以管理代收收集的存储器空间的成熟部分。 这样的写入障碍可以从针对例如代际指针存储陷阱矩阵或垃圾收集页面掩码进行评估的存储集合中消除非指针存储,以确定是否陷阱。 这种写入障碍还可以从记忆集或卡表存储中消除与非指针存储相关联的条目,以用于收集的世代空间的修改部分的收集时间扫描。

    Bounded-pause time garbage collection system and method including write
barrier associated with a source instance of a partially relocated
object
    9.
    发明授权
    Bounded-pause time garbage collection system and method including write barrier associated with a source instance of a partially relocated object 失效
    有界 - 暂停时间垃圾收集系统和方法,包括与部分重定位对象的源实例相关联的写入障碍

    公开(公告)号:US5873105A

    公开(公告)日:1999-02-16

    申请号:US883291

    申请日:1997-06-26

    CPC分类号: G06F12/0276 Y10S707/99957

    摘要: A write barrier to stores into a partially relocated large or popular memory object facilitates bounded pause time implementations of relocating garbage collectors, including e.g., copying collectors, generational collectors, and collectors providing compaction. Such a write barrier allows a garbage collector implementation to interrupt relocation of large or popular memory objects so as to meet bounded pause time guarantees. A partially relocated object identifier store including "copy from" identifier storage accessible to write barrier logic allows the write barrier logic to maintain consistency between FromSpace and ToSpace instances of a partially relocated memory object. "Copy from" identifier storage allows the write barrier logic, or a trap handler responsive thereto, to broadcast a store-oriented memory access targeting the FromSpace instance to both FromSpace and ToSpace instances. Optional "How far" indication storage facilitates differentiation by the write barrier logic between a copied portion and an uncopied portion of the partially relocated memory object.

    摘要翻译: 将存储到部分重定位的大型或流行的存储器对象中的写入屏障有助于重新定位垃圾收集器的有限暂停时间实现,包括例如复制收集器,代人收集器和提供压缩的收集器。 这样的写屏障允许垃圾回收器实现中断大型或流行的存储器对象的重新定位,以便满足有限的暂停时间保证。 包含写入屏障逻辑可访问的“复制”标识符存储的部分重新定位的对象标识符存储允许写入屏障逻辑保持部分重新定位的存储器对象的FromSpace和ToSpace实例之间的一致性。 从“标识符存储器复制”允许写屏障逻辑或响应于此的陷阱处理器将针对FromSpace实例的面向存储器的存储器访问广播到FromSpace和ToSpace实例。 可选的“多远”指示存储有助于通过写入屏障逻辑在部分重定位的存储器对象的复制部分和未遮盖部分之间进行区分。

    Write barrier system and method for trapping garbage collection page
boundary crossing pointer stores
    10.
    发明授权
    Write barrier system and method for trapping garbage collection page boundary crossing pointer stores 失效
    写入屏障系统和方法,用于捕获垃圾收集页边界指针存储

    公开(公告)号:US5845298A

    公开(公告)日:1998-12-01

    申请号:US841544

    申请日:1997-04-23

    IPC分类号: G06F12/00 G06F12/02 G06F17/30

    摘要: Architectural support is provided for trapping of garbage collection page boundary crossing pointer stores. Identification of pointer stores as boundary crossing is performed by a store barrier responsive to a garbage collection page mask that is programmably encoded to define a garbage collection page size. The write barrier and garbage collection page mask provide a programmably-flexible definition of garbage collection page size and therefore of boundary crossing pointer stores to be trapped, affording a garbage collector implementer with support for a wide variety of generational garbage collection methods, including train algorithm type methods to managing mature portions of a generationally collected memory space. Pointer specific store instruction replacement allows implementations that provide an exact barrier not only to pointer stores, but more particularly to pointer stores crossing programmably defined garbage collection page boundaries.

    摘要翻译: 垃圾收集页边界指针存储器的建筑支持。 通过响应于可编程编码以定义垃圾收集页面大小的垃圾收集页面掩码的存储屏障来执行指针存储器作为边界交叉的识别。 写屏障和垃圾收集页面掩码提供了可编程灵活的垃圾收集页面大小的定义,因此要跨越的跨界指针存储被捕获,提供了一个垃圾收集器实现者,支持各种各样的代代垃圾收集方法,包括列车算法 类型方法来管理代收收集的内存空间的成熟部分。 指针特定存储指令替换允许不仅提供指针存储的精确屏障的实现,更具体地说,涉及可编程定义的垃圾收集页边界的指针存储。