Hans C-kod tuggar på din C-kod
Tomas Evensens C-kompilator från 80-talet och svenska Diab lever fortfarande på Wind River. Idag tar han fram nya utvecklingsverktyg på Xilinx.TOMAS EVENSEN Aktuell: Hans snart 30-åriga C-kompilator tycks aldrig bli inaktuell Född: 1961. Titel: Forskningschef för mjukvara på Xilinx. Förr: CTO på Wind River, utvecklingschef på Diab. Familj: Fru och tre utflugna barn. Utbildning: Elektroingenjör på KTH. Hobby: Golf och biking. |
Det är vad som pågår hemma hos Tomas Evensen samma dag han talar med Elektroniktidningen.
Den yngsta dottern går i pappas fotspår och ska studera matematik och programmering på MIT på andra sidan USA. Lyckligtvis är storasyster redan där, på fem minuters avstånd vid Harvard.
Just nu pendlar Tomas Evensen en timme åt varje håll till jobbet som mjukvaruforskningschef på Xilinx.
–I teorin skulle vi flytta till en mindre lägenhet nu, men så insåg vi att barnen ju kommer att hälsa på med sina boyfriends.
Tomas Evensen är en del av den svenska datorhistorien.
Han började på Diab Data 1985 strax efter att företagets hemdator ABC80 haft sin glansperiod.
–Istället hade Unix blivit den stora grejen.
Diabs unixdator hette DS90.
–Diab var en större datorleverantör än Sun i Skandinavien. Det var därför Bull köpte företaget – för att få marknadsandelar här.
Den första fråga Tomas Evensen fick när han sökte jobb var om han skrivit ett eget operativsystem.
–Nej, det hade jag inte. Men kompilatorer var jag intresserad av. Och jag lyckades övertyga utvecklingschefen Ingvar Karlsson om att den nya 68020-processorn behövde en bättre kompilator.
–Om du ger mig sex månader så skriver jag en mycket bättre, sade jag till Ingvar Karlsson.
Och det fick Tomas Evensen göra, till sin förvåning.
–Jag vet ingen annan chef som skulle kunna tycka det var okej att jobba med eget projekt i ett halvår. Men Ingvar Karlsson hade den inställningen. Han gav mycket utrymme för egna idéer.
–Jag frågade honom en gång – innan han gick bort – hur han hade tänkt. Ibland måste man gå på känsla, svarade han.
Diab Data hade då ett trettiotal anställda.
–Vi hade faktiskt ett whiskyklubbsmöte nyligen – gänget som upplöstes när Bull köpte företaget.
Kollegorna hamnade på Ericsson, Borland, Frontec, ICL. Några på Enea.
En av dem – Felix Burton – följde Tomas Evensen till Wind River och senare även till Xilinx.
Felix Burton |
En gång på Diab skulle Statskontoret komma på utvärdering inför ett stort avtal. Men systemet var inte stabilt under tung belastning. Hela natten fick ägnas åt felsökning.
–Det kunde ta flera timmar mellan krascherna, så vi hade bara några få chanser att prova idéer och antaganden.
–I de tidiga timmarna fann vi problemet. Jag tror inte vi hunnit i tid utan Tomas förmåga för brainstorming.
–Och jag vet att det inte hade varit lika roligt!
Under tre år var Tomas Evensen ensam utvecklare av kompilatorn på Diab. Han häpnar i efterhand över vad han tog sig an – preprocessor, parser, optimizer, kodgenerator, länkare och C-bibliotek. Allt utom assemblern, som skrevs av Felix Burton.
–Sedan började arbetet växa till en grupp, berättar Tomas Evensen.
Tur var kanske det – att mot betalning utveckla en kompilator i tre år låter som ett drömjobb, men Tomas Evensen hade jobbat så hårt att han spräckt en förlovning.
Grundaren av Diab, Lasse Karlsson, hade flyttat till USA – där han fortfarande bor – med ett Diab-dotterbolag. Det var en lämplig tid i Tomas Evensens liv att byta hemort, och han blev den tredje anställde på kontoret.
Diabs vd Sven Brehmer – också han numera bosatt i Kiseldalen – hade idén att Tomas Evensen skulle licensiera sin kompilator. Det var ett villkor för att han skulle få åka dit.
Första kunden blev Tektronix. Licensierandet gick så bra att det inom ett par år var kontorets enda verksamhet. Kommandot cc startade Tomas Evensens kompilator på 68000-baserade minidatorer från bland annat Unisys och Microdata.
När embeddedmarknaden tog fart blev PowerPC-processorn stor. Då gick det ännu bättre för Diab. Kompilatorn var portabel och hade flyttas till andra arkitekturer.
–Vi hade den första kompilator som var riktigt bra på PowerPC. Då växte vi fem år i rad med 80 procent om året.
–Ändå hade vi inte haft någon tanke alls på embedded när vi flyttade hit.
Tomas Evensen hade titeln utvecklingschef på Bull/Diab när det köptes av ISI 1996. Fyra år senare köptes ISI av Wind River, där Tomas Evensen blev CTO.
Hur mycket finns kvar av din kod i Wind Rivers kompilator idag?
–Det är fortfarande samma kompilator. Mitt namn finns i stort sett i alla källkodsfiler. Jag skrev den 1986 så trevligt nog firar den snart 30-årsjubileum.
–Jag känner förstås dem som utvecklar kompilatorn idag, och pratar med dem ibland.
Koden har inte stått stilla – optimeringsfaser har adderats. Nya arkitekturer stöds.
–Och cpu:ernas pipelines var ganska enkla på min tid. De var inte smarta och kunde flytta om instruktioner. Och min schedulering var enklare, berättar Tomas Evensen.
Wind River är en av världens största leverantörer av verktyg för inbyggda system. Företaget har sugit i sig en hel del produktiv svensk talang genom åren. Tomas Evensen avslöjar att han var drivande när Wind River år 2006 köpte svenska Interpeak.
Med det köpet fick Wind River inte bara en uppdaterad IP-stack utan också Johan Fornaeus, som en gång skapade OSE åt Enea. Åt Wind River tog fram en hypervisor och stuvade om VxWorks till en mikrokärna.
År 2011 köpte Wind River svenska simulatorföretaget Virtutech.
–Vi behövde simuleringsteknik och hade använt Simics internt. Min stora aha-upplevelse var när en inbiten utvecklare motvilligt fick använda simulatorn i brist på hårdvara. Men när hårdvaran kom var han inte intresserad. Han behövde den inte längre. ”Skicka den till testarna”, sade han.
Är Silicon Valley svenskt?
–Nej, det är internationellt. Jag var på ett möte med tio personer, från Irland, Sverige, Indien – vi insåg att vi inte hade någon amerikan! Det är en del av charmen här.
På Xilinx hamnade Tomas Evensen i februari 2012. Här är han forskningschef med ansvar för mjukvarustrategin.
–De hade redan en teknikchef.
Han leder en grupp som utvecklar produkter med nära tidshorisont.
–Inga vifta-med-händerna-i-luften-science-fiction-projekt som ligger tio år fram i tiden, skrattar han.
–Jag vill gärna se det jag jobbar med komma ut till människor och produkter. Och framtiden är för svår att förutsäga. Det har jag lärt mig med åren. Visst gör vi prototyper av saker, men det är ofta bättre att jobba på att försöka få fram produkter tidigt.
Något gruppen tittar på är Xilinx FPGA Zynq som har två integrerade Arm-kärnor.
–Att kombinera FPGA och CPU är framtiden. Men det krävs bra mjukvara.
Frågorna i gruppen handlar exempelvis om operativsystem, utvecklingsverktyg och öppen källkod. Och mycket om att bjuda in mjukvaruutvecklare att utnyttja FPGA:er, som de inte har mycket erfarenhet av.
FPGA:er är inte bara klisterlogik, utan rätt programmerade också extremt kraftfulla massivt parallella DSP:er som exempelvis används för signalbehandling i basstationer och är på väg in i intelligent bildanalys i fordon.
Tomas Evensen vill ge utvecklarna hjälp att automatisera det slitgöra som kan automatiseras – man ska inte behöva bekymra sig över bitfel eller hur man länkar samma moduler.
Det låter inte helt nytt att automat-generera FPGA-kod?
–Det har funnits pie-in-the-sky-visioner om att man ska skriva ett C-program, och sedan sker det lite magi, och så fungerar allting.
–Men parallellism snyter man inte ur näsan! Vår approach är snarare tvärtom, säger Tomas Evensen.
Han beskriver en modell som liknar att programmera i högnivåspråket C, men att assembleroptimera de delar som behöver prestanda. Man får flexibiliteten att själv välja när man vill lämna OpenCL eller C++ och gå ner nära maskinen.
Hans datorkarriär började på hemdatorn TRS-80.
–Jag skrev lite Basic och assembler. Uppgraderade datorn från 4kbyte, till 16kbyte, till 48kbyte.
–Man var tvungen att tänka för att få plats. Jag märker fortfarande att folk i min generation inte gärna slösar med byte. Man har det i ryggmärgen – att prestanda är viktigt, och att inte ta stor plats är viktigt.
–Jag hittade nyligen en laptop från cirka 1993. Den startade inom 30 sekunder. Windows 3.11 på en 33 MHz 386:a. Den är en hundradel så snabb som dagens datorer och har mycket mindre minne. Ändå var jag igång och skrev epost på 30 sekunder!
Embeddedvärlden är fortfarande en nisch där sparsamhet räknas.
–Där är energikonsumtion och prestanda viktigare. Det här gör också att det tar längre tid att ta fram programmen. Så de flesta skriver fortfarande i C.
Också säkerhet kostar per kodrad, när man certifierar ett program.
–Det kan kosta 50 dollar per rad. Då gäller tight kod. Inte lager på lager och miljoner rader. Det blir för dyrt.
Det har blivit mindre av programmering för Tomas Evensen med åren.
–På Diab kom det någon i kvartalet med en bugg – det var ingen som kunde koden på samma sätt som jag.
Men han har kvar programutvecklingen som hobby.
–Det blir lite olika projekt. Ett tag var jag intresserad av HTML och Javascript. Det är lätt att skapa appar – även avancerade – i en webbsida i HTML5.
–Och så är jag ju en kompilatorsnubbe, så jag är intresserad av språk, och jag har laborerat lite med Python. Men det har inte blivit några större projekt.