Interleaved Hardware Garbage Collector

The Interleaved Hardware Garbage Collector (IHGC) is an innovative design that is deeply integrated with the processor. It delivers efficient dynamic memory management, enabling modern programming languages such as C#, JavaScript and Python to be used to develop secure, reliable and robust embedded systems. In addition, the real-time and correctness properties of the IHGC are mathematically proven, so it can be used to construct high-trust systems more quickly.

A garbage collector is a critical component underlying modern high-level languages such as C#, JavaScript and Python. However, it is normally provided in software, resulting in high and unpredictable processing overheads, making these languages unsuitable for embedded or real-time devices. In desktop and server software, these languages have become dominant because they improve developer productivity and provide software security, reliability and robustness; there is a large and growing ecosystem of developers using them, and all universities teach them. By overcoming the drawbacks of software GCs, the IHGC will enable this ecosystem to address the rapidly growing and emerging IoT applications.

The IHGC runs continuously in the background reclaiming unused memory. It shares memory cycles with the processor and does not require locks or memory barriers to operate correctly. As a result, the IHGC does not normally pause the user’s program and has been proven suitable for real-time systems. The IHGC also checks that memory accesses are valid without impacting performance; dangling pointers and buffer overflows are detected by the hardware. Compared to a conventional processor, our experiments indicate that the IHGC offers similar performance for programs that rely on explicit memory management and better performance for those that rely on dynamic memory management.

Trust is of paramount importance in the design of the IHGC. We have worked over the last 2.5 years to develop proofs that show the correctness of our design using formal mathematical methods. Unlike most traditional GCs, the timing properties of the IHGC are predictable and we have developed techniques to write real-time programs. Both of these features reinforce our commitment to trust and allow programmers to easily develop more efficient and secure software in less time, with the help of modern programming languages.

At this stage of the project, we have finalized a specification of the IHGC and conducted extensive simulation experimentation. We are currently working to understand the impact of the IHGC for security, reliability and performance in a broader embedded system. We are also exploring the commercial potential of this technology in emerging markets and applications, such as IoT.

Please contact DavidEd or Andres if you are interested in this project and would like to know more. We are happy to provide more information, discuss opportunities for collaboration or simply exchange ideas.

Feasibility of the IHGC

Ed Nutting's undergraduate thesis is available here. It is a feasbility study of an implementation of an early version of the IHGC. A Verilog implementation of the design was developed and integrated with the PicoRV32 implementation of a RISC-V processor. The conclusion was that the design could provide hard real-time performance for single-core processors and may be scaled to multi-threaded/multi-core real-time and embedded processors. 

Edit this page