Optimizing the flash-RAM energy trade-off in deeply embedded systems
James Pallister, Kerstin Eder, Simon Hollis

TL;DR
This paper presents a compiler optimization that moves selected code blocks from flash to RAM in embedded systems, significantly reducing energy consumption and extending battery life despite increased execution time.
Contribution
It introduces a novel integer linear programming-based method to optimize code placement for energy efficiency in embedded systems.
Findings
Up to 41% reduction in power consumption
Up to 22% reduction in energy consumption
Battery life extension of up to 32% in case studies
Abstract
Deeply embedded systems often have the tightest constraints on energy consumption, requiring that they consume tiny amounts of current and run on batteries for years. However, they typically execute code directly from flash, instead of the more energy efficient RAM. We implement a novel compiler optimization that exploits the relative efficiency of RAM by statically moving carefully selected basic blocks from flash to RAM. Our technique uses integer linear programming, with an energy cost model to select a good set of basic blocks to place into RAM, without impacting stack or data storage. We evaluate our optimization on a common ARM microcontroller and succeed in reducing the average power consumption by up to 41% and reducing energy consumption by up to 22%, while increasing execution time. A case study is presented, where an application executes code then sleeps for a period of…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
