Method and system performing concurrently mark-sweep garbage collection invoking garbage collection thread to track and mark live objects in heap block using bit vector
    1.
    发明授权
    Method and system performing concurrently mark-sweep garbage collection invoking garbage collection thread to track and mark live objects in heap block using bit vector 有权
    同时执行标记扫描垃圾收集的方法和系统调用垃圾回收线程以使用位向量来跟踪和标记堆块中的活动对象

    公开(公告)号:US07197521B2

    公开(公告)日:2007-03-27

    申请号:US10719443

    申请日:2003-11-21

    CPC classification number: G06F12/0269 Y10S707/99944 Y10S707/99957

    Abstract: An arrangement is provided for using bit vector toggling to achieve concurrent mark-sweep garbage collection in a managed runtime system. A heap may be divided into a number of heap blocks. Each heap block may contain a mark bit vector pointer, a sweep bit vector pointer, and two bit vectors of which one may be initially pointed to by the mark bit vector pointer and used for marking and the other may be initially pointed to by the sweep bit vector pointer and used for sweeping. At the end of the marking phase for a heap block, the bit vector used for marking and the bit vector used for sweeping may be toggled so that marking phase and sweeping phase may proceed concurrently and both phases may proceed concurrently with mutators.

    Abstract translation: 提供了一种使用位向量切换在托管运行时系统中实现同时标记扫描垃圾收集的布置。 堆可以分为多个堆块。 每个堆块可以包含标记位向量指针,扫描位矢量指针和两个位向量,其中可以由标记位向量指针最初指向并用于标记的两个位向量,另一个可以由扫描开始指向 位向量指针并用于扫描。 在堆块的标记阶段结束时,可以切换用于标记的位向量和用于扫描的位向量,以便同时进行标记相位和扫描阶段,并且两个阶段可以与变异器同时进行。

    Dynamic performance monitoring-based approach to memory management
    2.
    发明授权
    Dynamic performance monitoring-based approach to memory management 失效
    基于动态性能监控的内存管理方法

    公开(公告)号:US07490117B2

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

    申请号:US10749425

    申请日:2003-12-31

    Abstract: Techniques are described for optimizing memory management in a processor system. The techniques may be implemented on processors that include on-chip performance monitoring and on systems where an external performance monitor is coupled to a processor. Processors that include a Performance Monitoring Unit (PMU) are examples. The PMU may store data on read and write cache misses, as well as data on translation lookaside buffer (TLB) misses. The data from the PMU is used to determine if any memory regions within a memory heap are delinquent memory regions, i.e., regions exhibiting high numbers of memory problems or stalls. If delinquent memory regions are found, the memory manager, such as a garbage collection routine, can efficiently optimize memory performance as well as the mutators performance by improving the layout of objects in the heap. In this way, memory management routines may be focused based on dynamic and real-time memory performance data.

    Abstract translation: 描述了用于优化处理器系统中的存储器管理的技术。 这些技术可以在包括片上性能监视的处理器以及外部性能监视器耦合到处理器的系统上实现。 包括性能监控单元(PMU)的处理器就是例子。 PMU可以将数据存储在读取和写入高速缓存未命中,以及翻译后备缓冲区(TLB)未命中的数据。 来自PMU的数据用于确定存储器堆中的任何存储器区域是否是过期存储器区域,即表现出大量存储器问题或失速的区域。 如果发现存在不正当的内存区域,诸如垃圾收集例程的存储器管理器可以通过改进堆中对象的布局来有效地优化存储器性能以及突变器的性能。 以这种方式,可以基于动态和实时存储器性能数据来集中存储器管理例程。

    Methods and apparatus to dynamically insert prefetch instructions based on compiler and garbage collector analysis
    4.
    发明申请
    Methods and apparatus to dynamically insert prefetch instructions based on compiler and garbage collector analysis 失效
    基于编译器和垃圾回收器分析动态插入预取指令的方法和装置

    公开(公告)号:US20050138294A1

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

    申请号:US10742009

    申请日:2003-12-19

    CPC classification number: G06F12/0253

    Abstract: Methods and apparatus to insert prefetch instructions based on garbage collector analysis and compiler analysis are disclosed. In an example method, one or more batches of samples associated with cache misses from a performance monitoring unit in a processor system are received. One or more samples from the one or more batches of samples based on delinquent information are selected. A performance impact indicator associated with the one or more samples is generated. Based on the performance indicator, at least one of a garbage collector analysis and a compiler analysis is initiated to identify one or more delinquent paths. Based on the at least one of the garbage collector analysis and the compiler analysis, one or more prefetch points to insert prefetch instructions are identified.

    Abstract translation: 公开了基于垃圾收集器分析和编译器分析来插入预取指令的方法和装置。 在示例性方法中,接收与处理器系统中的来自性能监视单元的高速缓存未命中关联的一个或多个批次的样本。 选择一个或多个基于犯罪信息的样本的一个或多个样本。 产生与一个或多个样本相关联的性能影响指示符。 基于性能指标,启动垃圾回收器分析和编译器分析中的至少一个以识别一个或多个违规路径。 基于垃圾收集器分析和编译器分析中的至少一个,识别插入预取指令的一个或多个预取点。

    Method and system for improving the concurrency and parallelism of mark-sweep-compact garbage collection
    5.
    发明申请
    Method and system for improving the concurrency and parallelism of mark-sweep-compact garbage collection 审中-公开
    改进标记扫描小型垃圾收集的并发性和并行性的方法和系统

    公开(公告)号:US20050198088A1

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

    申请号:US10793707

    申请日:2004-03-03

    CPC classification number: G06F16/2308

    Abstract: An arrangement is provided for using only one bit vector per heap block to improve the concurrency and parallelism of mark-sweep-compact garbage collection in a managed runtime system. A heap may be divided into a number of heap blocks. Each heap block has only one bit vector used for marking, compacting, and sweeping, and in that bit vector only one bit is needed per word or double word in that heap block. Both marking and sweeping phases may proceed concurrently with the execution of applications. Because all information needed for marking, compacting, and sweeping is contained in a bit vector for a heap block, multiple heap blocks may be marked, compacted, or swept in parallel through multiple garbage collection threads. Only a portion of heap blocks may be selected for compaction during each garbage collection to make the compaction incremental to reduce the disruptiveness of compaction to running applications and to achieve a fine load-balance of garbage collection process.

    Abstract translation: 提供了一种仅对每个堆块使用一个位向量来提高被管理的运行时系统中标记扫描紧凑垃圾收集的并发性和并行性的布置。 堆可以分为多个堆块。 每个堆块只有一个位向量用于标记,压缩和扫描,并且在该位向量中,该堆块中每个字或双字只需要一个位。 标记和扫描阶段都可以与应用程序的执行同时进行。 因为标记,压缩和扫描所需的所有信息都包含在堆块的位向量中,所以可以通过多个垃圾回收线程并行地标记,压缩或扫描多个堆块。 在每个垃圾收集期间,只能选择一部分堆块进行压缩,以使压缩增量减少压缩对运行应用程序的破坏性,并实现垃圾收集过程的精细负载平衡。

    Bit vector toggling for concurrent mark-sweep garbage collection
    7.
    发明申请
    Bit vector toggling for concurrent mark-sweep garbage collection 有权
    位矢量切换并发标记扫描垃圾回收

    公开(公告)号:US20050114413A1

    公开(公告)日:2005-05-26

    申请号:US10719443

    申请日:2003-11-21

    CPC classification number: G06F12/0269 Y10S707/99944 Y10S707/99957

    Abstract: An arrangement is provided for using bit vector toggling to achieve concurrent mark-sweep garbage collection in a managed runtime system. A heap may be divided into a number of heap blocks. Each heap block may contain a mark bit vector pointer, a sweep bit vector pointer, and two bit vectors of which one may be initially pointed to by the mark bit vector pointer and used for marking and the other may be initially pointed to by the sweep bit vector pointer and used for sweeping. At the end of the marking phase for a heap block, the bit vector used for marking and the bit vector used for sweeping may be toggled so that marking phase and sweeping phase may proceed concurrently and both phases may proceed concurrently with mutators.

    Abstract translation: 提供了一种使用位向量切换在托管运行时系统中实现同时标记扫描垃圾收集的布置。 堆可以分为多个堆块。 每个堆块可以包含标记位向量指针,扫描位矢量指针和两个位向量,其中可以由标记位向量指针最初指向并用于标记的两个位向量,另一个可以由扫描开始指向 位向量指针并用于扫描。 在堆块的标记阶段结束时,可以切换用于标记的位向量和用于扫描的位向量,以便同时进行标记相位和扫描阶段,并且两个阶段可以与变异器同时进行。

    Method for using cache prefetch feature to improve garbage collection algorithm

    公开(公告)号:US06662274B2

    公开(公告)日:2003-12-09

    申请号:US09886068

    申请日:2001-06-20

    Abstract: A method for creating a mark stack for use in a moving garbage collection algorithm is described. The algorithm of the present invention creates a mark stack to implement a MGCA. The algorithm allows efficient use of cache memory prefetch features to reduce the required time to complete the mark stack and thus reduce the time required for garbage collection. Instructions are issued to prefetch data objects that will be examined in the future, so that by the time the scan pointer reaches the data object, the cache lines for the data object are already filled. At some point after the data object is prefetched, the address location of associated data objects is likewise prefetched. Finally, the associated data objects located at the previously fetched addresses are prefetched. This reduces garbage collection by continually supplying the garbage collector with a stream of preemptively prefetched data objects that require scanning.

Patent Agency Ranking