Proceedings of the 5th international symposium on Memory management
Proceedings of the 2007 ACM symposium on Applied computing
Proceedings of the 6th international symposium on Memory management
A Garbage Collection Technique for Embedded Multithreaded Multicore Processors
ARCS '09 Proceedings of the 22nd International Conference on Architecture of Computing Systems
Flexible reference-counting-based hardware acceleration for garbage collection
Proceedings of the 36th annual international symposium on Computer architecture
An embedded GC module with support for multiple mutators and weak references
ARCS'10 Proceedings of the 23rd international conference on Architecture of Computing Systems
And then there were none: a stall-free real-time garbage collector for reconfigurable hardware
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
And then there were none: a stall-free real-time garbage collector for reconfigurable hardware
Communications of the ACM
Hi-index | 0.02 |
Garbage collection considerably increases programmer productivity and software quality. However, it is difficult to implement garbage collection both efficiently and suitably for real-time systems. Today, garbage collection is exclusively realized in software and either fails to guarantee a small upper bound for pause times or suffers from considerable synchronization overhead. In this paper, we present the design and implementation of an on-chip garbage collection coprocessor that closely cooperates with the main processor. The benefits of thisconfiguration include low garbage collection overhead, low-cost synchronization of collector and application programs, and hard real-time capabilities. We successfully realized the garbage collection coprocessor along with a pipelined RISC processor on a single FPGA. Performance measurements on the prototype show that the longest pauses caused by the garbage collector are less than 500 clock cycles and that the total runtime overhead is as little as a few percent if the application is provided with a reasonable amount of memory headroom.