Abstrakt. Energitransparens är ett koncept som gör ett programs energiförbrukning synlig, från hårdvara till programvara, genom de olika systemlagren. Sådan transparens kan möjliggöra energioptimering vid varje lager och mellan lager, och hjälpa både programmerare och operativsystem att fatta energimedvetna beslut. I detta dokument fokuserar vi på djupt inbäddade enheter, vanligtvis används för Internet of Things (IoT) applikationer, och visar hur man möjliggör energitransparens genom befintliga Static Resource Analysis (SRA) tekniker och en ny mål-agnostic profilering teknik, utan hårdvara energimätningar. Vår nya kartteknik möjliggör beräkningar av energiförbrukning på en högre nivå än Instruction Set Architecture (ISA), nämligen LLVM Intermediate Representation (IR), och introducerar därför energitransparens direkt till LLVM optimizer. Vi tillämpar våra tekniker för energiuppskattning på en omfattande uppsättning riktmärken, inklusive enkel-och även multi-trådade inbäddade program från två vanligt använda konvergensmönster, uppgift gårdar och rörledningar. Med SRA visar våra LLVM IR-resultat en hög noggrannhet med en avvikelse i intervallet 1 % från ISA SRA. Vår profileringsteknik fångar upp den faktiska energiförbrukningen på LLVM IR-nivå med ett genomsnittligt fel på 3%.
I en nyligen genomförd studie REF presenterades en teknik för att göra ett programs energiförbrukning synlig på olika abstraktionsnivåer i LLVM-kompilatorns verktygskedja.
Energy Transparency for Deeply Embedded Programs