Energy Transparency for Deeply Embedded Programs

Kyriakos Georgiou, Steven Kerrison, Zbigniew Chamski, Kerstin Eder

Research output: Contribution to journalArticle (Academic Journal)peer-review

15 Citations (Scopus)
367 Downloads (Pure)


Energy transparency is a concept that makes a program’s energy consumption visible, from hardware up to software, through the different system layers. Such transparency can enable energy optimizations at each layer and between layers, as well as help both programmers and operating systems make energy-aware decisions. In this article, we focus on deeply embedded devices, typically used for Internet of Things (IoT) applications, and demonstrate how to enable energy transparency through existing static resource analysis (SRA) techniques and a new target-agnostic profiling technique, without hardware energy measurements. Our novel mapping technique enables software energy consumption estimations at a higher level than the Instruction Set Architecture (ISA), namely the LLVM intermediate representation (IR) level, and therefore introduces energy transparency directly to the LLVM optimizer. We apply our energy estimation techniques to a comprehensive set of benchmarks, including single- and multithreaded embedded programs from two commonly used concurrency patterns: task farms and pipelines. Using SRA, our LLVM IR results demonstrate a high accuracy with a deviation in the range of 1% from the ISA SRA. Our profiling technique captures the actual energy consumption at the LLVM IR level with an average error of 3%.
Original languageEnglish
Article number8
Number of pages26
JournalACM Transactions on Architecture and Code Optimization
Issue number1
Early online date1 Mar 2017
Publication statusPublished - 1 Mar 2017


  • IoT
  • LLVM
  • Static analysis
  • WCET
  • deeply embedded systems
  • profiling

Fingerprint Dive into the research topics of 'Energy Transparency for Deeply Embedded Programs'. Together they form a unique fingerprint.

Cite this