Apparatus and method for assisting exact garbage collection by using a
stack cache of tag bits
    1.
    发明授权
    Apparatus and method for assisting exact garbage collection by using a stack cache of tag bits 失效
    通过使用标签位的堆栈缓存来辅助确切的垃圾收集的装置和方法

    公开(公告)号:US6101580A

    公开(公告)日:2000-08-08

    申请号:US838971

    申请日:1997-04-23

    摘要: In computer systems which do not inherently distinguish between references and primitive values within a program stack a method and apparatus to assist exact garbage collection techniques utilizes a stack tag cache which operates in conjunction with a program stack and supplies a tag item for every entry in the process stack. The value of a tag item indicates whether the stack entry is either a reference to another memory location or a primitive value, i.e. integer or floating point number. The arrangements and values of the tag items are correlated with changes to the program stack. The stack tag cache includes facilities for swapping the contents of the cache in the event of a trap or context switch, as well as means for redundantly verifying the tag value with intended instruction operand types.

    摘要翻译: 在程序堆栈内并不固有地区分参考和原始值的计算机系统中,帮助精确垃圾收集技术的方法和装置利用与程序堆栈一起操作的栈标签高速缓存,并为 进程堆栈 标签项的值指示堆栈条目是对另一存储器位置的引用还是原始值,即整数或浮点数。 标签项的排列和值与程序堆栈的更改相关。 堆栈标签缓存包括用于在陷阱或上下文切换的情况下交换高速缓存的内容的设备,以及用于用期望的指令操作数类型冗余地验证标签值的装置。

    Bounded-pause time garbage collection system and method including write
barrier associated with a source instance of a partially relocated
object
    2.
    发明授权
    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实例。 可选的“多远”指示存储有助于通过写入屏障逻辑在部分重定位的存储器对象的复制部分和未遮盖部分之间进行区分。

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

    公开(公告)号:US5873104A

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

    申请号:US882796

    申请日:1997-06-26

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

    摘要: A partially relocated object identifier store including "copy from" identifier and "copy to" 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 without software trap handler overhead. 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. An optional "mode" indication facilitates differentiation by the write barrier logic between a copy phase and a pointer update phase of relocation by the garbage collector implementation. In some embodiments, pointer update and copying phases may overlap. "Copy to" identifier storage facilitates broadcast of a store-oriented memory access to the FromSpace instance to both FromSpace and ToSpace instances. Similarly, during pointer update, "Copy to" and "Copy From" identifier storage facilitate broadcast of a store-oriented memory access to either the FromSpace instance or the ToSpace instance to both FromSpace and ToSpace instances.

    摘要翻译: 包含“复制”标识符和写入屏障逻辑可访问的“复制到”标识符存储的部分重新定位的对象标识符存储允许写入屏障逻辑在没有软件陷阱处理程序开销的情况下保持部分重新定位的存储器对象的FromSpace和ToSpace实例之间的一致性。 可选的“多远”指示存储有助于通过写入屏障逻辑在部分重定位的存储器对象的复制部分和未遮盖部分之间进行区分。 可选的“模式”指示有助于通过垃圾收集器实现的复制阶段和重新定位的指针更新阶段之间的写屏障逻辑的区分。 在一些实施例中,指针更新和复制阶段可以重叠。 “复制到”标识符存储便于将FromSpace实例的面向存储的存储器访问广播到FromSpace和ToSpace实例。 类似地,在指针更新期间,“复制到”和“复制自”标识符存储便于将FromSpace实例或ToSpace实例的面向存储的存储器访问广播到FromSpace和ToSpace实例。

    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实例 根据存储器对象的部分重定位状态,部分重新定位的存储器对象。 在一些实施例中,障碍物捕获到部分重定位的对象陷阱处理器。 在其他实施例中,写入屏障本身引导访问而不需要软件陷阱处理程序开销。 可选的“多远”指示存储有助于通过屏障逻辑或部分重新定位的对象陷阱处理器在部分重新定位的存储器对象的复制部分和未覆盖部分之间进行区分。

    Array access boundary check by executing BNDCHK instruction with comparison specifiers

    公开(公告)号:US06542990B1

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

    申请号:US10118388

    申请日:2002-04-08

    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.

    Method for storing method frames in multiple stacks
    7.
    发明授权
    Method for storing method frames in multiple stacks 失效
    在多个堆栈中存储方法框架的方法

    公开(公告)号:US6058457A

    公开(公告)日:2000-05-02

    申请号:US880934

    申请日:1997-06-23

    IPC分类号: G06F9/40 G06F9/42 G06F12/08

    摘要: The present invention provides methods for storing method frames in a multi-stack memory architecture to provide access to multiple portions of the method frame. In one embodiment, a first frame component of a first method frame is stored in a first stack. A second component of the first method frame is stored in a second stack. A first component of a second method frame is stored in the second stack and a second frame component of the second method frame is stored in the first stack. In some embodiments, the first frame components of the first and second stacks are operand stacks, while the second frame components are arguments and local variable areas.

    摘要翻译: 本发明提供了用于在多堆栈存储器架构中存储方法帧以提供对方法帧的多个部分的访问的方法。 在一个实施例中,第一方法帧的第一帧分量被存储在第一堆栈中。 第一方法框架的第二组件存储在第二堆栈中。 第二方法帧的第一分量被存储在第二堆栈中,并且第二方法帧的第二帧分量被存储在第一堆栈中。 在一些实施例中,第一和第二堆叠的第一帧组件是操作数堆栈,而第二帧组件是参数和局部可变区域。

    Processor for executing instruction sets received from a network or from
a local memory
    8.
    发明授权
    Processor for executing instruction sets received from a network or from a local memory 失效
    用于执行从网络或本地存储器接收的指令集的处理器

    公开(公告)号:US5925123A

    公开(公告)日:1999-07-20

    申请号:US787618

    申请日:1997-01-23

    摘要: A dual instruction set processor decodes and executes code received from a network and code supplied from a local memory. Thus, the dual instruction set processor is capable of executing instructions in two different instructions sets from two different sources. The dual instruction set processor includes a computer platform independent instruction decoder, another decoder, and an execution unit that executes decoded instructions from both of the decoders. A computer system with the foregoing described dual instruction set processor, a local memory, and a communication interface device, such as a modem, for connection to a network, such as the Internet or an Intranet, can be optimized to execute, for example, JAVA code, in example of one set of computer platform independent instructions, from the network, and to execute non-JAVA code stored locally, or on the network but in a trusted environment or an authorized environment.

    摘要翻译: 双指令集处理器解码并执行从网络接收的代码和从本地存储器提供的代码。 因此,双指令集处理器能够从两个不同的源执行两个不同指令集中的指令。 双指令集处理器包括独立于计算机平台的指令解码器,另一解码器和执行单元,其执行来自两个解码器的解码指令。 可以优化具有上述双指令集处理器,本地存储器和用于连接到诸如因特网或内部网的网络的诸如调制解调器的通信接口设备的计算机系统,以执行例如, 来自网络的一组独立于计算机平台的指令的例子中的JAVA代码,以及执行在本地存储的本地或在网络上存储的可信环境或授权环境中的非JAVA代码。

    Locking of computer resources
    9.
    发明授权
    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
    10.
    发明授权
    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.

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