Synthesized In-BramGarbage Collection for Accelerators with Immutable Memory

Speed and ease of accelerator design is a growing need. High level programming languages have provided significant gains in the software world, but lag for hardware. We present a hardware implementation of a garbage collector that automates memory management, one of the major conveniences of modern software languages. Our garbage collector runs concurrently with the application it serves, using already-idle memory slots to do its work with little to no impact on performance. To achieve this, our collector exploits rapid synchronization that is straightforward in hardware but difficult in software. This synchronization enables the collector to interleave with fine pockets of idleness on a per-cycle, per-heap basis. Our collector typically incurred negligible overhead, only slowing the application to wait for collection to free memory when the heaps were so small that the collector could not keep pace with allocation. We also found that our concurrent collector performs best under an eager collection policy that collects garbage well before the application exhausts the available memory. Although this eager strategy performs more collection operations than strictly necessary, the application never pauses because our collector operates entirely in the background.

[1]  David May,et al.  Integrated Hardware Garbage Collection , 2021, ACM Trans. Embed. Comput. Syst..

[2]  Parthasarathy Ranganathan,et al.  Warehouse-scale video acceleration: co-design and deployment in the wild , 2021, ASPLOS.

[3]  Jae W. Lee,et al.  Charon: Specialized Near-Memory Processing Architecture for Clearing Dead Objects in Memory , 2019, MICRO.

[4]  John Kubiatowicz,et al.  A Hardware Accelerator for Tracing Garbage Collection , 2018, 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA).

[5]  Stephen A. Edwards,et al.  Compositional dataflow circuits , 2017, MEMOCODE.

[6]  Stephen A. Edwards,et al.  From functional programs to pipelined dataflow circuits , 2017, CC.

[7]  Stephen A. Edwards,et al.  Implementing latency-insensitive dataflow blocks , 2015, 2015 ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE).

[8]  David F. Bacon,et al.  Parallel real-time garbage collection of multiple heaps in reconfigurable hardware , 2014, ISMM '14.

[9]  David F. Bacon,et al.  And then there were none: a stall-free real-time garbage collector for reconfigurable hardware , 2012, PLDI.

[10]  Ting Cao,et al.  The Yin and Yang of power and performance for asymmetric hardware and managed software , 2012, 2012 39th Annual International Symposium on Computer Architecture (ISCA).

[11]  J. Gaudiot,et al.  Achieving middleware execution efficiency: hardware-assisted garbage collection operations , 2012, The Journal of Supercomputing.

[12]  Richard E. Jones,et al.  The Garbage Collection Handbook: The art of automatic memory management , 2011, Chapman and Hall / CRC Applied Algorithms and Data Structures Series.

[13]  Onur Mutlu,et al.  Flexible reference-counting-based hardware acceleration for garbage collection , 2009, ISCA '09.

[14]  Matthias Meyer,et al.  A true hardware read barrier , 2006, ISMM '06.

[15]  Matthias Meyer,et al.  An on-chip garbage collection coprocessor for embedded real-time systems , 2005, 11th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA'05).

[16]  Michael Wolf,et al.  The pauseless GC algorithm , 2005, VEE '05.

[17]  J. Morris Chang,et al.  Active Memory Processor: A Hardware Garbage Collector for Real-Time Java Embedded Devices , 2003, IEEE Trans. Mob. Comput..

[18]  Dean M. Tullsen,et al.  Simultaneous multithreading: Maximizing on-chip parallelism , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[19]  Kelvin D. Nilsen,et al.  Performance of a hardware-assisted real-time garbage collector , 1994, ASPLOS VI.

[20]  Leslie Lamport,et al.  Distributed snapshots: determining global states of distributed systems , 1985, TOCS.