Designing a Concurrent Hardware Garbage Collector for Small Embedded Systems

@inproceedings{Gruian2005DesigningAC,
  title={Designing a Concurrent Hardware Garbage Collector for Small Embedded Systems},
  author={Flavius Gruian and Zoran A. Salcic},
  booktitle={Asia-Pacific Computer Systems Architecture Conference},
  year={2005}
}
  • F. Gruian, Z. Salcic
  • Published in
    Asia-Pacific Computer Systems…
    24 October 2005
  • Computer Science
Today more and more functionality is packed into all kinds of embedded systems, making high-level languages, such as Java, increasingly attractive as implementation languages. However, certain aspects, essential to high-level languages are much harder to address in a low performance, small embedded system than on a desktop computer. One of these aspects is memory management with garbage collection. This paper describes the design process behind a concurrent, garbage collector unit (GCU), a… 
Integrated Hardware Garbage Collection
TLDR
The Integrated Hardware Garbage Collector (IHGC) is proposed; a garbage collector tightly coupled with the processor that runs continuously in the background, and introduces a static analysis technique to guarantee that real-time programs are never paused by the collector.
Scheduling of Hard Real-Time Garbage
TLDR
It is shown that the restricted execution model of the Safety Critical Java standard simplifies root scanning and reduces copying of static data and an upper bound for the collector period is provided so that the application threads will never run out of memory.
Scheduling of hard real-time garbage collection
TLDR
It is shown that the restricted execution model of the Safety Critical Java standard simplifies root scanning and reduces copying of static data and an upper bound for the collector period is provided so that the application threads will never run out of memory.
A Dynamic Memory Management Unit for Real Time Systems
TLDR
A novel solution whereby a separate reference counting unit replaces the garbage collector and its use for garbage collection is proposed and an implementation that includes a specialized memory arrangement that allows for object management transactions to occur concurrently with program execution, with no resultant impact upon program performance is presented.
BluEJAMM: A Bluespec Embedded Java Architecture with Memory Management
  • F. Gruian, M. Westmijze
  • Computer Science
    Ninth International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC 2007)
  • 2007
TLDR
BLUEJAMM, a prototype architecture suitable for embedded systems based on a Java native processor, is presented, and is currently used to evaluate a number of interesting Java specific techniques, such as runtime bytecode folding and real-time garbage collection.
BlueJEP: a flexible and high-performance Java embedded processor
TLDR
This paper presents BLUEJEP, a novel Java embedded processor, developed using the relatively new Bluespec System Verilog (BSV) environment, which features a number of design choices that make the design more flexible, maintainable and high-performance.
An Embedded GC Module with Support for Multiple Mutators and Weak References
TLDR
The proposed GC architecture has been practically implemented and proven using the embedded bytecode processor SHAP as a sample testbed, and the synthesis results for settings up to three SHAP mutator cores are given.
An Embedded Garbage Collection Module with Support for Multiple Mutators and Weak References
TLDR
The proposed GC architecture has been practically implemented and proven using the embedded bytecode processor SHAP as a sample testbed and online functional measurements are presented.
Time-Predictable Computer Architecture
TLDR
The issues of current architectures with respect to WCET analysis are evaluated and a proposed solution for a time-predictable computer architecture is proposed with implementation of some features in a Java processor.
Exact roots for a real-time garbage collector
TLDR
This paper proposes a method to add information on the stack layout to the runtime data structure in order to find the roots exactly and interpreting this information during the collection process is implemented to be worst-case execution time analyzable.
...
...

References

SHOWING 1-10 OF 20 REFERENCES
Active Memory Processor: A Hardware Garbage Collector for Real-Time Java Embedded Devices
TLDR
3-bit reference counting can eliminate the need to invoke the garbage collector in all tested applications and reduces the amount of memory usage by 77 percent, and the hardware cost of the proposed design is very modest.
Towards an embedded real-time Java virtual machine
TLDR
It was found that the IVM can be easily integrated in typical systems today and the mentioned requirements are fulfilled, and there are reasons to believe that the proposed approach is very promising for future flexible embedded systems.
A generational mostly-concurrent garbage collector
TLDR
This paper reports the experiences with a mostly-concurrent incremental garbage collector, implemented in the context of a high performance virtual machine for the Java#8482; programming language, which minimises maximum garbage collection pause times, while having only a small impact on the average garbage collectionpause time and overall execution time.
Performance of a hardware-assisted real-time garbage collector
Hardware-assisted real-time garbage collection offers high throughput and small worst-case bounds on the times required to allocate dynamic objects and to access the memory contained within
JOP: A Java Optimized Processor
TLDR
This paper describes the architecture of JOP and proposes a simple real-time extension of Java for JOP, a hardware implementation of the Java Virtual Machine with focus on real- time applications.
Mostly parallel garbage collection
TLDR
A method for adapting garbage collectors designed to run sequentially with the client, so that they may run concurrently with it, has been used to construct a mostly parallel trace-and-sweep collector that exhibits very short pause times.
REMIC - design of a reactive embedded microprocessor core
TLDR
The rationale for REMIC design, its novel features with the design details and some performance figures are presented to demonstrate its suitability for embedded systems.
Multiprocessing compactifying garbage collection
TLDR
Algorithms for a multiprocessing compactifying garbage collector are presented and discussed and particular attention is given to the problems of marking and relocating list cells while another processor may be operating on them.
List Processing in Real Time on a Serial Computer
TLDR
A real-time list processing system is presented which continuously reclaims garbage, including directed cycles, while linearizing and compacting the accessible cells into contiguous locations to avoid fragmenting the free storage pool.
Time-triggered garbage collection: robust and adaptive real-time GC scheduling for embedded systems
TLDR
Time-triggered GC allows a more high-level view on GC scheduling; it looks at the GC cycle level rather than at the individual work increments, which makes it possible to schedule GC as any other thread.
...
...