Memory Allocation in Intermittent Computing
Allocation mémoire pour le Calcul Intermittent
Résumé
Energy harvesting technologies can drastically improves the lifetime of cyber-physical systems by collecting energy from their environment. Those systems then don't rely on batteries, allowing for smaller systems with low maintenance needs. This opens a new range of application in health, spacial and sensing fields where the deployed system are usually hard to access.
However, since the energy scavenged is usually not sufficient to power the platform continuously, a capacitor is used to store energy. The platform then executes computation bursts interleaved with power outages.
The intermittent execution of the program compromises its forward progress by resetting the volatile state of the platform at each power outage. Thus, checkpoints must be inserted into the program code to save the volatile data in non-volatile memory.
Those intermittent platforms are often equipped with two memory banks: a volatile memory (VM) and a non-volatile memory (NVM).
The choice of the program variables memory allocation (VM or NVM) is often left to the programmer. However, manually analyzing the trade-off between the low energy consumption of the VM and the absence of restoration/save cost for the NVM is extremely complex and error-prone.
Placing checkpoints and deciding memory allocation manually is time consuming and often result in unnecessary high energy consumption.
To this extent we present SCHEMATIC, a compile-time technique for checkpoint placement and memory allocation for intermittent systems which frees the programmer from this burden. SCHEMATIC safely places checkpoints in a program and chooses the most energy-efficient memory allocation for the variables accessed between two checkpoints. Unlike existing work, memory allocation and checkpoint placement are done jointly, so that the memory allocation benefit from the checkpoint placement and vice-versa. SCHEMATIC aims at reducing the energy consumption of an intermittent program in the average case while taking into account the platform constraints such as the capacitor size and the memory size.
Origine | Fichiers produits par l'(les) auteur(s) |
---|