Skriv ut

[ECS 2018] Jakob Engblom på Intel har upptäckt ytterligare en fördel med sin gamla käpphäst simulering: att den stöder så kallad agil utveckling.

Det omtalade begreppet ”agil” har många definitioner, men grunden kan enligt Jakob Engblom sägas vara ”small batches” – att stycka upp stora projekt i mindre delprojekt som kan avverkas och testas i snabba cykler.

NÅGRA SPANINGAR FRÅN ECS 2018

Den årliga svenska elektronikkonferensen Embedded Conference Scandinavia utspelade sig 6–7 november på Kistamässan.

80 utställare från 25 länder och ett gediget konferensprogram lockade i år till 1 827 besök. Nästa konferens äger rum den 5–6 november 2019.

Jakob Engblom på Intel var en av föreläsarna på konferensens andra dag.

En fördel med agil utveckling är att du lagt ner mindre onödigt arbete om du hamnar i en återvändsgränd. Dessutom är ditt arbete färskare i minnet, så du har lättare att minnas och förstå vad du gjort. Och så vågar du experimentera. 

Agiliet hindrar till och med prokrastinering – med en kort deadline får konstruktören ändan ur vagnen. 

Jakob Engblom hänvisar till systemtänkaren Thomas Limoncelly vars text ”The small batches principle” ger ännu fler exempel på nyttan med agilitet.

Och kopplingen till simulering? Jo, om du simulerar det du konstruerar behöver du inte vänta på att hårdvaran eller systemet blir färdigt – du kan simulera och testa från början. 

Intel använder simulering på flera nivåer, berättar Jakob Engblom, som är Intels ”simulation evangelist”.

– Man kan inte testa ”en halv hårdvara”. På Intel tar det lång tid innan det finns något som kan testas.

Genom att koppla in simulatorer kan du bygga konstruktionen partiellt. Användare kan testa delar av systemet innan allt är klart, och så vidare.

Du ska inte simulera fler detaljer än vad som verkligen behövs. Designar du ett meshsensornät behöver du inte simulera protokoll och processorer utan kanske bara dra länkar och ange datagenomströmning.

– Simulera exakt så detaljerat att det är meningsfullt – allt annat slöar ner, är Jakob Engbloms råd.

Intels egen simulator Cofluent simulerar större system med kanske tusentals noder. Det låter dig tidigt utforska en konstruktion. Efteråt kan Cofluent användas för konfigurering.

På nästa finare nivå finns Simics, för plattformar, som exempelvis en processor under konstruktion. Simics orkar ladda och köra operativsystem och program på en simulerad cpu.

På den finaste nivån kan Intel simulera mikroarkitekturer och hårdvara. Det är inte Intel ensam om, utan det gör alla processorkonstruktörer. Här finns inget namngivet verktyg utan ett lapptäcke av ad hoc-kod i varierade programspråk. Att försöka skapa ett generellt enhetligt ramverk är ganska hopplös uppgift enligt Jakob Engblom.

En medlem i publiken drar upp den berömda sårbarheten Spectre som utnyttjar egenskaper i mikroarkitekturen. Jo, den skulle i princip ha kunnat upptäckas på den finaste simulatornivån, men ingen letade efter buggar av det slaget.

Jakob Engblom pekar på en annan sårbarhet, Rowhammer, som utnyttjar att det går att ladda minnesceller genom att ihärdigt accessa fysiskt näraliggande minnessceller. För att identfiera Rowhammer skulle det krävts ännu finare simulering, på fysiknivå.

Jakob Engblom ingick i priset när svenska Virtutech och dess simulator Simics år 2009 köptes av amerikanska Windriver, som på den tiden  ägdes av Intel.

I Simics kan du utveckla mjukvara innan hårdvara existerar. Även efteråt ger Simics mer flexibilitet för testautomatisering, till exempel. Och det kan analysera sporadiska fel som är svåra att reproducera på den fysiska hårdvaran.