The IHGC architecture for Mixed Criticality Embedded Systems

Lead Research Organisation: University of Bristol
Department Name: Computer Science

Abstract

The Integrated Hardware Garbage Collector (IHGC) is an experimental architecture that introduces hardware support for automatic memory management in embedded systems. IHGC imposes a novel memory model and implements an innovative technique for allocating memory. An early feasibility study found that IHGC offers many benefits over traditional software garbage collection while requiring minimal code changes to existing applications. In particular, IHGC performs automatic bounds checking and prevents memory leakage making it attractive for use in Mixed Criticality Systems (MCS) where safety, reliability and predictability are paramount. The aim of this project is to show that IHGC can be used in Mixed Criticality with real-time requirements. Furthermore, an extension to IHGC will be proposed to guarantee process memory isolation without relying on the traditional Memory Protection Unit (MPU) used in modern embedded systems. The outcome of this project will show the feasibility of IHGC for Mixed Criticality Embedded Systems.

Publications

10 25 50

Studentship Projects

Project Reference Relationship Related To Start End Student Name
EP/N509619/1 01/10/2016 30/09/2021
1939273 Studentship EP/N509619/1 15/10/2017 14/04/2021 Andres Amaya Garcia
 
Description The aim of our work is to investigate hardware garbage collection to better support modern languages, such as Python and Java, in embedded systems. We ask how can hardware garbage collectors be designed to meet the performance, memory and real-time requirements of such embedded systems. Therefore, we designed a hardware garbage collector that is tightly integrated with the processor. It runs continuously in the background performing collection operations whenever the processor is not using the memory. A timing model of our collector can also be used in combination with real-time analysis techniques to ensure that the collector never pauses program execution. Therefore, embedded processors can be fully utilised to run the user's program without missing real-time deadlines due to collection operations. Our main contributions are:

1. An Integrated Hardware Garbage Collector (IHGC) that is suitable for embedded devices. The IHGC is implemented in hardware as a small state machine that runs independently from the processor without pausing. The IHGC is evaluated through a hardware implementation as well as simulation using popular open source software. Compared to a conventional processor, our experiments indicate that the IHGC offers better performance for programs that rely on garbage collection.

2. A hard real-time analysis technique to estimate the system resources needed to guarantee that programs run without pausing on a processor using the IHGC. The analysis relies on information extracted statically from the real-time program and a timing model of the IHGC. Our real-time analysis technique was evaluated through practical use cases showing how the system can be provisioned to meet specific timing requirements.

The project is currently active and we are investigating two important research questions that opened up as a result of our investigation. First, the IHGC can be used with existing processor architectures, such as Arm and x86, but some changes are required to make the transition smoothly. We also observed that these architectures were not designed to work alongside an automatic memory management system, so they do not leverage the full potential of the IHGC. Therefore, we are exploring how is the processor's Instruction Set Architecture, and by extension the software, affected by the IHGC. Second, our collector has so far targeted small embedded devices, but we are now investigating how it can be scaled up to work on slightly larger embedded systems that use caching.
Exploitation Route The accelerating pace of the Internet of Things (IoT) demands ever smarter, secure and reliable embedded systems. But support for modern, garbage collected languages in such systems is still very limited. IoT developers would greatly benefit from the safety and productivity advantages of modern languages. Therefore, we are currently exploring ways to commercialise the IHGC technology for the development of embedded devices; in particular, those in the IoT market.
Sectors Digital/Communication/Information Technologies (including Software)

 
Title Design of an Integrated Hardware Garbage Collector 
Description We developed an Integrated Hardware Garbage Collector (IHGC) that runs in the background reclaiming memory independently from the processor. The IHGC is implemented fully in hardware and operates whenever the processor is not accessing memory. Our design is tailored to small embedded devices and is able to meet real-time constraints. The IHGC is based on an early proposal from Prof. David May. 
Type Of Technology New/Improved Technique/Technology 
Year Produced 2020 
Impact Garbage collectors are components in a computer system that automatically manage the memory on behalf of the programmer. Efficient and reliable collectors are crucial for the implementation of modern programming languages, such as Python and Java, because they rely on automatic memory management. These languages gained popularity --in server, desktop and mobile development-- because they help address two key challenges that programmers face: productivity and safety. However, modern programming languages are rarely (if ever) used in small embedded devices, such as the Internet of Things, because garbage collectors incur high performance and memory overheads. These problems are the result of implementing the collectors in software; conventional architectures are not designed to run collection operations efficiently. We propose a novel garbage collector, the IHGC, to enable the use of modern programming languages in small embedded processors. The IHGC's design responds to the need for low performance and memory overheads related to memory management as well as the real-time requirements of embedded systems. The benefits of the IHGC have been shown in a lab setting, we are currently exploring how the technology can be commercialised and scaled to larger systems. 
 
Title Real-Time Analysis Technique for the Integrated Hardware Garbage Collector 
Description We developed a real-time analysis technique for the Integrated Hardware Garbage Collector (IHGC) that guarantees the complete absence of pauses due to garbage collection. 
Type Of Technology New/Improved Technique/Technology 
Year Produced 2020 
Impact The garbage collector is a crucial component in the implementation of modern programming languages like Python and Java. The collector automatically identifies and reclaims unused memory on behalf of the programmer; a task that is tedious and error prone. But garbage collectors are unsuitable for embedded devices as they impose high overheads. Also, garbage collectors are unsuitable for real-time systems because they introduce unpredictable pauses during program execution. Therefore, the use of modern, garbage collected languages is very limited in real-time embedded systems. The IHGC addresses the need for efficiency with regards to memory and performance. In addition, we developed an analysis technique that enables us to calculate the worst-case amount of memory required to fully eliminate program pauses. Therefore, our research enables the use of modern languages in embedded devices that must meet real-time constraints. 
 
Title Timing Simulator of the Thumb Instruction Set Architecture 
Description A software simulator of the ARMv6-M Instruction Set Architecture (ISA). Only a subset of the Thumb instructions are currently simulated in a timing accurate fashion according to the information in the ARM reference manual for the Cortex-M0 processor. 
Type Of Technology Software 
Year Produced 2018 
Open Source License? Yes  
Impact The simulator was used to evaluate the Integrated Hardware Garbage Collector. It is currently published under the permissive MIT license and distributed through GitHub. It was also used by the University of Bristol's Cryptography and Information Security Group for one of their projects. 
 
Company Name BEYONDRISC LIMITED 
Description BeyondRISC is building an ecosystem for rapid, trustworthy innovation of Internet of Things (IoT) systems. Our aim is to enable developers to use modern programming languages for IoT devices. This will unlock the security and productivity benefits of these languages for IoT systems. Our core technology is a new processor design that solves the key technical challenges preventing modern languages from being used on current processors for IoT devices. Our technology is a new way of designing processors - similar to the shift from CISC to RISC in the 1980s. It must be integrated from the outset of the processor design as it requires deep architectural changes. This is reflected in the different instructions available to the software, through to the physical chip design. As a result, our technology cannot be treated as an add-on or accelerator for existing processors (though it can work alongside them e.g. as a secure enclave). We have developed a new processor that goes beyond traditional RISC design by including features tailored to the needs of modern software applications. These additional features are not part of most computer architectures currently available. However, they became necessary over the last few decades to enable the use of modern programming languages in a broad spectrum of IoT devices. 
Year Established 2019 
Impact The company was recently incorporated and is currently raising funding to finance the necessary product development needed to commercialise the Integrated Hardware Garbage Collection (IHGC).