Voorafgaand aan de afstudeerperiode is er een afstudeeropdracht overeengekomen tussen de
belanghebbende partijen. In dit geval zijn dat de volgende drie partijen:
Altran Netherlands B.V.
Fontys Hogeschool Eindhoven.
Ondergetekende, de Afstudeerder.
Deze scriptie is geschreven in het kader van mijn afstuderen tijdens de opleiding ICT & Technology aan de
Fontys Hogeschool ICT (FHICT) te Eindhoven. De afstudeeropdracht is uitgevoerd bij Altran Netherlands B.V.
en is gemaakt in de laatste fase van mijn studie. Met deze opdracht zal de studie worden afgerond.
Mijn stage bij Altran Netherlands B.V. begon op 1 Maart, waar ik ben begonnen met een onderzoek naar Low-
Power Profiling voor embedded apparaten. Voor de stage heb ik 3,5 jaar gewerkt bij Simac Quadcore B.V.
waar ik in november 2013 ben begonnen als Junior Automation Engineer bij de afdeling Factory Automation.
De functie Junior Automation Engineer was een leuke functie om te starten, maar niet een die ik nog een
lange tijd wilde uitvoeren.
Na 1 jaar ben ik doorgegroeid in de functie Service Engineer en Developer bij de afdeling ID Solutions. Maar
omdat ook deze functie niet helemaal aansloot op mijn ambities heb ik begin 2017 de keuze gemaakt om
voltijd te gaan afstuderen en in het bedrijf waar ik deze stage heb gelopen door te groeien.
Bij Altran Netherlands B.V. vervul ik een rol in de afdeling Intelligent Systems, waar ze werken aan embedded
systemen met hoge connectiviteit en processing-kracht waarop complexe applicaties draaien. Het onderwerp
van mijn afstudeeropdracht, “Ultra Low Power” is ook een aspect waar aan wordt gewerkt.
Tijdens de colleges op het FHICT heb ik nooit eerder te maken gehad met het onderwerp Low-Power. Het is
een onderwerp waarvan de opgedane kennis in de toekomst mogelijk een grote rol gaat spelen. Daarom was
ik erg geïnteresseerd om op dit onderwerp af te studeren bij Altran Netherlands B.V.
De opdracht die in dit onderwerp naar boven was gekomen, was het onderzoeken van een mogelijkheid van
het voorspellen van energieverbruik van embedded apparaten via een emulator op basis van code, wat in
deze scriptie verder is uitgewerkt.
Ik wil graag iedereen bedanken die mij heeft geholpen met mijn studie en afstuderen. In het bijzonder wil ik
Altran Netherlands B.V. en mijn bedrijfsbegeleiders daar, Bas Stottelaar en Herman Roebbers bedanken voor
de goede ondersteuning en coaching tijdens mijn afstuderen. Ook wil ik Renáta Frenken bedanken voor de
goede sturing tijdens het afstudeerproces.
Nikita van Oorschot
Eindhoven, juni 2017
Voor u ligt de scriptie van de afstudeeropdracht “Energy Consumption Profiling”, waarin beschreven staat hoe
voor Altran Netherlands B.V. onderzoek is gedaan naar de mogelijkheid van het voorspellen van
energieverbruik van een embedded apparaat, via een emulator op basis van code. Zodat hiermee deze code
geoptimaliseerd kan worden zodat de microcontroller zo min mogelijk energie verbruikt.
Altran Netherlands B.V. houdt zich bezig met haar expertise in alle aspecten van embedded systemen met
een ultralaag energieverbruik, gericht op energieverbruik en energiebesparing.
De aanleiding voor het project is dan ook de visie van Altran Netherlands B.V. In hun visie worden in de
toekomst vrijwel alle apparaten, verbonden apparaten. Het gevolg hiervan is echter dat apparaten die
voorheen nooit verbonden waren, van elektrische stroom voorzien moeten worden. In veel gevallen is het
gebruik van een stopcontact niet uitvoerbaar en het om de paar weken vervangen van de batterijen is ook
geen optie.
Daarom zou een mogelijkheid om te voorspellen hoeveel energie een embedded apparaat verbruikt op basis
van code, uitkomst kunnen bieden.
In de eerste fase van het project, de “initiatiefase”, is het PID opgesteld en is er literatuuronderzoek gedaan
naar de onderzoeksstrategie die het beste bij dit project zou passen. Dit is uiteindelijk de strategie CMD
(HAN – University of Applied Sciences, 2017) geworden, omdat deze ook behandeld is tijdens de opleiding.
In de tweede fase “Definitiefase” is doormiddel van literatuuronderzoek en overleg met de product owner,
geïnventariseerd welke microcontroller er gebruikt is. Ook is er overlegd welke emulator er gebruikt moest
worden om energie te gaan voorspellen. Dit zijn uiteindelijk de EFM32 Giant Gecko STK3700 Microcontroller
en de Emul8 Emulator geworden, vanwege de ondersteuning van de juiste platformen en de
gebruiksvriendelijkheid. Ook is er onderzocht op welke wijzen er getest en gemeten moest worden. Zo is in
deze fase van het project de informatiebehoefte in kaart gebracht wat heeft geresulteerd in een werkindeling
en planning via de agile ontwikkelmethode “Scrum”.
In de derde fase “Ontwerpfase” is doormiddel van de agile ontwikkelmethode “Scrum” een applicatie
ontwikkeld. Omdat er meerdere embedded apparaten op de markt bestaan is de applicatie alleen tot recht
gebracht op het onderzochte apparaat, omdat tijdsduur een factor was in dit project. De applicatie zorgt dus
ook alleen voor een model: de platformspecificaties en de manier om energieverbruik te kunnen voorspellen,
die zich uit in een berekening, van het onderzochte apparaat.
In de vierde en laatste fase “Realisatiefase” is er een evaluatie van het project uitgevoerd. Het in productie
uitrollen van de applicatie en het in beheer nemen hiervan valt buiten de scope van dit project.
Na het doorlopen van het project is duidelijk geworden dat het voorspellen van energieverbruik van een
embedded apparaat op basis van code, via een emulator mogelijk is. Het bevat de juiste mogelijkheden die
ervoor kunnen zorgen dat de informatiebehoefte kan worden berekend en worden weergeven. Tevens is
ondervonden dat het ‘Tien Stappen Plan’ een zeer geschikte projectmanagementmethode is voor projecten
die via de scrum-methode worden onderhouden, vanwege de mogelijkheid tot structureel werken.
Een van de aanbevelingen voor dit project is om het verder uit te breiden door onderzoek te doen naar
meerdere microcontrollers en emulators. Ook wordt er aangeraden onderzoek te doen naar andere
meetinstrumenten en de nauwkeurigheid hiervan.
Als afstudeeropdracht is door Nikita van Oorschot en de afdeling Intelligent Systems van Altran Netherlands
B.V. gekozen om onderzoek te doen op een low-power embedded apparaat. Zo kunnen de resultaten hierna
in een model van dit apparaat: de platformspecificaties en de manier om zijn energie te kunnen voorspellen,
die zich uit in een berekening, verwerkt worden. Hierna kan dit model geëmuleerd worden en een vergelijking
worden gemaakt tussen de resultaten van de voorspelling van de emulator en het fysieke hardware platform
ook wel embedded apparaat genoemd.
Momenteel is het namelijk niet mogelijk om het energie verbruik van embedded apparaten te voorspellen en
op te vragen. Door dit model te maken, is het mogelijk beter inzicht te krijgen over het energieverbruik van
code op embedded apparaten.
"Energy Consumption is een belangrijk aspect voor embedded systems. Dit omdat embedded apparaten vaak
op locaties terecht komen waar niet direct energievoorzieningen aanwezig zijn, zoals
luchtkwaliteitsensoren langs een snelweg, lichtvervuilingsmeters in de bossen, rookmelders op batterijen of
een weerstation bij iemand in zijn achtertuin. ” (Altran, 2017)
Het voorspellen van energieverbruik is daarom erg belangrijk kunnen voor Altran, om een zo energiezuinig
mogelijk apparaat te kunnen construeren.
Om wat meer te weten te kunnen komen over Altran Netherlands B.V. is er in hoofdstuk 2 een beschrijving
gemaakt van de organisatie van Altran Netherlands B.V.
Daarna is in hoofdstuk 3 de opdracht die is uitgevoerd beknopt beschreven. In hoofdstuk 4 is de uitvoering
van het project te vinden, waarbij de deelvragen worden beantwoord.
Hoofdstuk 5 beschrijft de conclusies en de aanbevelingen en in hoofdstuk 6 is de persoonlijke reflectie
samen met te behaalde competenties te vinden.
In dit hoofdstuk zal de organisatie nader worden toegelicht. Er wordt eerst ingegaan op de algemene info
over de organisatie en erna zal er dieper worden ingegaan op de afdeling Intelligent Systems waar de
afstudeeropdracht is uitgevoerd.
2.1 Algemeen
Altran Netherlands B.V. is wereldwijd leider op het gebied van innovatie en hightech engineering consulting
en ondersteunt bedrijven bij het creëren en ontwikkelen van nieuwe producten en diensten. De Innovation
Makers van Altran verlenen al meer dan dertig jaar diensten aan belangrijke spelers in de sectoren:
Luchtvaart
Automotive
Energie
Spoorwegen
Financiën
Gezondheidszorg
Telecommmunicatie
Altran staat bij in elke fase van projectontwikkeling, van strategische planning tot productie. Bij het leveren
van diensten maken zij gebruik van de technologische kennis van de Altran Group in de volgende vijf
kerngebieden:
Intelligent Systems
Product Development
Lifecycle Experience
Mechanical Engineering
Information Systems
Altran heeft ruim 30.000 werknemers in dienst in meer dan 20 landen. In Nederland telt Altran meer dan
1.000 werknemers.
2.2 Missie en visie
Altran is een internationale consulting groep op het gebied van innovatie en hightech-engineering en is
toonaangevend in Europa. De missie van de Altran Groep is het ondersteunen van bedrijven bij het creëren en
ontwikkelen van nieuwe producten en diensten.
Elke dag brengen ze de meest complexe projecten van hun klanten tot leven en zetten ze de expertise op het
gebied van technologie en innovatieprocessen in om hun prestaties te verbeteren. Creatieve ideeën worden
door de consultants van Altran getransformeerd tot innovatieve oplossingen die technologische vooruitgang
mogelijk maken. Zo heeft Altran bijgedragen aan een aantal van de belangrijkste technologische innovatie
gebieden op basis van applicaties en systemen in de afgelopen decennia:
Snelheid, precisie, veiligheid, communicatie, uitvoerbaarheid, interoperabiliteit, kunstmatige intelligentie, etc.
Voor meer informatie over Altran Netherlands B.V. verwijs ik naar de website www.altran.nl
Intelligent Systems is de naam voor de nieuwe generatie embedded en real-time systemen met een hoge
connectiviteit en een hoge verwerkingscapaciteit die complexe applicaties aankunnen. Doordat deze
systemen overal aanwezig zijn, verandert de dagelijkse praktijk in alle sectoren en ziet Altran een
verschuiving in hoe consumenten communiceren.
Intelligent Systems is de gespecialiseerde afdeling van Altran die pakketoplossingen biedt aan klanten in alle
sectoren. Klanten worden ondersteund bij het creëren van nieuwe zakelijke kansen en gebruikservaringen op
het gebied van applicaties, zoals autonome systemen, smartphones, smartmeters, medische apparatuur,
connected cars, geavanceerde luchtverkeerscontrole en smart sensoren.
Intelligent Systems gelooft dat er drie belangrijke eisen zijn die intelligente systemen moeten vervullen om
succesvol te kunnen zijn in de markt;
Technologie: oplossen van applicatiecomplexiteit, systeemintegratie en de behoefte van de
maatschappij aan veiligheid en beveiliging.
Gebruik: om gebruikersacceptatie en marktaandeel te krijgen, moeten Intelligent Systems
aantrekkelijk en efficiënt zijn en een probleemloze ervaring bieden.
Winstgevendheid: Intelligent Systems moeten kostenefficiënt en duurzaam zijn, en nieuwe
bedrijfsmodellen ondersteunen in een wereld waarin de grenzen tussen spelers in de branche steeds
meer vervagen.
In dit hoofdstuk wordt de afstudeeropdracht in detail beschreven, zodat duidelijk wordt wat de aanleiding is
van de opdracht, wat het doel is van dit afstudeerproject en wat het gerealiseerde eindresultaat is.
3.1 Aanleiding
Zoals eerder aangegeven is energieverbruik een belangrijk aspect voor embedded systemen. Dit omdat
embedded apparaten vaak op locaties terecht komen waar niet direct energievoorzieningen aanwezig zijn,
zoals luchtkwaliteitssensoren langs een snelweg, lichtvervuilingsmeters in de bossen, rookmelders op
batterijen of een weerstation bij iemand in zijn achtertuin. Het meten van energie verbruik is daarom erg
belangrijk voor Altran om een zo energiezuinig mogelijk apparaat te kunnen construeren.
Het idee daarvoor is het energieverbruik van programma’s op embedded apparaten en de mogelijkheid tot
het berekenen hiervan te onderzoeken. Zodat er van dit apparaat en de manier van energie voorspellen, een
model gemaakt kan worden wat aansluit op de werkelijkheid. Met dit model kan dan het energieverbruik via
een emulator, berekend en voorspeld worden.
Als de voorspelde waarden van het energieverbruik op de emulator weinig afwijken van de fysieke hardware,
is het mogelijk energieverbruik van een ander stuk code op een embedded apparaat te voorspellen, zonder
dit apparaat fysiek te gebruiken.
Daardoor is het mogelijk om tijdens de ontwikkeling van code, informatie over het energieverbruik terug te
koppelen naar de ontwikkelaars, door dit proces bijvoorbeeld op te nemen in een bouwstraat.
3.1.1 Hoofdvraag
Binnen deze opdracht staat één vraag centraal, namelijk de hoofdvraag:
“Hoe kom ik aan een model dat de realiteit van het energieverbruik van een embedded device zo goed
mogelijk weerspiegelt?”
Om deze hoofdvraag te kunnen beantwoorden zullen er een aantal deelvragen worden opgesteld die
een bijdrage leveren aan het beantwoorden van de hoofdvraag. De deelvragen luiden als volgt:
Wat is het energieverbruik van het fysieke hardware platform met zijn fabrieks-instellingen?
Een programma op een embedded apparaat verbruikt energie, om te berekenen hoeveel energie dit
programma verbruikt, is het nodig om te weten hoeveel het huidige energieverbruik van het embedded
apparaat is. Dit omdat er een startpunt nodig is voor de berekeningen.
Wat is het energieverbruik van het geëmuleerde hardware platform met zijn fabrieks-instellingen?
Omdat het idee is om het energieverbruik te voorspellen moet ervan uit gegaan kunnen worden dat het
energieverbruik vermenigvuldigd naar mate van een bepaalde tijd en of het reproduceerbaar is. Dit
energieverbruik kan dan gebruikt worden als startpunt voor de emulator.
Wat is het energieverbruik van een baseline van functies?
Om energie te kunnen meten van instructies (zie hieronder), is het nodig om te weten wat het baselineenergieverbruik
is. Het verschil tussen de metingen van de functies en de baseline geven dan aan wat het
verbruik is geweest. Hiervoor is het nodig functies te kiezen die onderzocht kunnen worden, een baseline
van functies dus.
Wat is het energieverbruik van een baseline van één enkele instructie?
Als het mogelijk is om energieverbruik te meten van functies, is het belangrijk te weten of het
energieverbruik van instructies ook gemeten kan worden. En wat voor impact dit heeft op code zodat met
resultaten van dit onderzoek code geoptimaliseerd kan worden.
Wat zijn de gemeten verschillen tussen het energie verbruik van een gegeven programma via een
emulator en een fysiek hardware platform?
Om tot een model te komen om energieverbruik te voorspellen mogen er geen tot weinig verschillen zijn
tussen een voorspelling van het energieverbruik en het daadwerkelijke energieverbruik, daarom wordt er
een tijdsduur van een aantal iteraties gebruikt om de verschillen met de factor tijd te onderzoeken. Als er
veel grote verschillen zijn, kan het energieverbruik namelijk niet worden berekend omdat dit dan niet
overeenkomt met de werkelijkheid.
In het Plan van Aanpak, wat te vinden is in Bijlage A, is te zien in welke stap(pen) in het traject de producten
voor de verschillende deelvragen vergaard zullen worden.
In het hoofdstuk “Conclusies en aanbevelingen” zullen de hoofd- en deelvragen samengevat en uitgewerkt
worden.
3.2 Doelstelling
Samengevat is het doel om, gegeven een programma, een voorspelling te doen van het energieverbruik van
een microcontroller via een emulator zodat hiermee dit programma geoptimaliseerd kan worden en de
microcontroller zo min mogelijk energie verbruikt.
De afstudeeropdracht omtrent low-power heeft een breed spectrum aan onderzoeksrichtingen, derhalve is
hier gekozen voor een bottleneck strategie en heeft zich daarom alleen bezig gehouden met een bepaald
embedded apparaat en onderzoek specificering. De methode die gevolgd is en ook is beschreven in het plan
van aanpak en zal onder anderen het tien stappenplan bevatten en scrum voor de realisatie. Er is hiervoor
gebruik gemaakt van de tool Atlassian Jira.
3.3.1 Methoden en Technieken
Voor de opzet van het project is het tienstappenplan gebruikt:
Het Tienstappenplan is een generieke werkmethode voor afstudeerprojecten en is ontworpen door Piet
Kempen en Jimme Keizer. Het bestaat uit de oriëntatie-, onderzoeks- en invoeringsfase (Kempen & Keizer,
2010). Voor dit project is het voornamelijk in de oriëntatiefase gebruikt, om zo tot een studieovereenkomst
(PID) te komen. Het TSP is daar waar nodig geraadpleegd om te kijken of de richting van het onderzoek nog
juist is.
In de beginfase van het project is voornamelijk het oriëntatie aspect naar voren gekomen. Er is namelijk eerst
een PID opgesteld in samenspraak met de bedrijfsbegeleiders waarin de opdrachtformulering tot stand is
gekomen. Daarna is er literatuuronderzoek dat onder de ‘Bieb’-methode valt, uitgevoerd. Dit, om een kader
te vormen voor het project.
Het literatuuronderzoek is voornamelijk uitgevoerd op het kennisgebied EFM32 Cortex-M3 embedded
apparaten, omdat dit het onderwerp is van de afstudeeropdracht. In het project wordt er dieper ingegaan op
de belangrijkste begrippen die voor dit onderzoek van belang zijn.
Hierdoor ontstaat er een verdieping in de doelstelling van het onderzoek. Vervolgens is tijdens het Tien
Stappen Plan door middel van analyse, die valt onder de ‘Lab’-methode, de informatiebehoefte in kaart
gebracht.
Binnen Altran Netherlands B.V. is er gekozen om de werkmethode Agile te gebruiken om software te
programmeren en te documenteren. Dit houdt in dat het ontwikkelen, oplossen van eventuele bugs en
documenteren gelijklopen. Hier is voor gekozen zodat alleen de informatie die van belangrijk is wordt
gedocumenteerd. Ze doen dit doormiddel van de scrum werkmethode.
Tijdens de ontwikkelfase zal het project overgaan op de systeemontwikkeling, waarbij een deel van de
blauwdruk via ‘Veld’-werk wordt gerealiseerd door het maken van een detailontwerp en het bouwen van de
applicatie voor het model. Daarom is voor het project dezelfde werkmethode aanhouden wat valt onder
‘Werkplaats’-omgeving. Het proces gaat als volgt:
In sprints van twee weken wordt er gewerkt aan een nieuwe iteratie, ofwel story, van het eindproduct. Na
iedere sprint wordt deze story opgeleverd aan de product owner en andere stakeholders. Daarnaast neemt de
opdrachtnemer iedere werkdag deel aan een Daily Scrum Stand Up. Hierbij worden de volgende drie vragen
beantwoord:
Wat is er gedaan voor het behalen van de sprint-doelstelling?
Wat gaat er vandaag gebeuren om de sprint-doelstelling te behalen?
Welke problemen zijn opgedaan tijdens de acties om de sprint-doelstelling te behalen?
Als er andere zaken of problemen zich hebben voorgedaan die geen betrekking hebben op de daily stand up
dan kan dit aan de Scrum Master worden doorgegeven. De Scrum Master zal dan deelnemen aan een
brainstorm met de afstudeerder, hoe het probleem het beste aangepakt en verholpen kan worden.
Het voordeel van deze werkmethode is dat eisen en wensen samen met kleine veranderingen altijd kunnen
worden meegenomen gedurende het project.
De gehele cyclus bestaat uit 4 fasen, waarvan er twee steeds worden herhaald, zoals hieronder te zien:
Omdat de productowner en Altran Netherlands B.V. ook meer wilde weten over het energieverbruik van
assembly-instructies, is deze deelvraag beantwoord om meer verdieping te geven aan de eerder verkregen
informatie van de eerdere deelvragen.
Omdat code uit een programma bestaat uit een aantal assembly-instructies als deze is geconverteerd naar
assembly machinecode is informatie over het energieverbruik van deze machinecode belangrijk om te weten.
Zo kan er gebruik gemaakt worden van deze informatie om software te optimaliseren.
Hiervoor zijn de onderzoekstrategieën Veld, Bieb en Lab gebruikt om te inventariseren wat de baseline scope
van de instructies moet zijn en wat voor effect deze hebben op de microcontroller zodat er een vergelijking
van de resultaten van deze effecten gemaakt kon worden.
De Assembly-code, in dit geval bestaande uit ARM-instructies, is op een logische manier gekozen, namelijk
instructies op basis van hun functionaliteit. De instructies bevinden zich in één categorie:
Rekenkundige en logische gegevens.
Op de volgende instructies is onderzoek gedaan:
Adds
Sdiv
Subs
Mul
Meer informatie over deze functies is te vinden in Bijlage C – Onderzoeksdocument.
Het blijkt dat het energieverbruik van verschillende instructies van de EFM32 Giant Gecko STK3700 bij
logische operaties drastisch kan verschillen.
Het energieverbruik bij de drie logische functies, optellen, aftrekken en delen is nagenoeg gelijk en ligt rond
de 0,20/0,30μ J. Het energieverbruik van het vermenigvuldigen daarentegen is 0,65μ J. Tijdens het
vermenigvuldigen wordt namelijk meer hardware aangesproken dan bij de andere instructies, daarom is het
energieverbruik van deze instructie hoger dan bij de andere instructies. Het energieverbruik voor het delen
blijft gelijk per cyclus maar het aantal cycli van deze instructie kan variëren tussen 2 en 12 afhankelijk van de
operanden.