En kompilator för kompilatorn

Vad kommer efter ARM? Blir det äntligen dags för arkitekturer som genereras ”on the fly” för att vara så optimala som möjligt för det speciella användningsområdet?

Det här är frågor som kommer upp med jämna mellanrum och ärligt talat har det väl inte hänt särskilt mycket – åtminstone inte kommersiellt. För sådär tjugo år sedan trodde nog många att utvecklingen skulle gå betydligt snabbare än vad som blev fallet.

– Det är inte så konstigt att det tar tid, säger Marco Roodzant från holländska ACE. Vi har helt olika kultur på hårdvarusidan och mjukvarusidan och inte särskilt mycket som tyder på att det skall komma att ändras snabbt.

Nittiotalet
Jag pratade senast med Marco för två veckor sedan, men jag kommer faktiskt inte ihåg när vi träffades första gången. Enligt min elektroniska agenda var det i februari år 2000, men i den icke-elektroniska verkligheten får vi nog gå bakåt ytterligare några år till mitten av nittiotalet. Hans företag, ACE, startade redan 1975 och företagets huvudprodukt, ”kompilatorkompilatorn” CoSy, har funnits med sedan början av nittiotalet.

För så är det förvånansvärt ofta. Saker och ting tar mycket längre tid än man tror. Den otroliga utvecklingen på elektroniksidan beror sällan på nya fantastiska uppfinningar, utan på massor av ganska små vidareutvecklingar som tillsammans blir något väldigt stort. CoSy har funnits i nästan tjugo år, men det är fortfarande ny och banbrytande teknik.

Mer applikationsspecifikt
Då, på nittiotalet, trodde nog många med mig att CoSy och andra liknande projekt skulle resultera i den där gemensamma hård/mjukvarugeneratorn. Riktigt så blev det alltså inte.
Men ACE fortsatte att arbeta och fortsatte att vidareutveckla och optimera CoSy. Idag är verktyget stabilt och effektivt och används av många verktygsföretag för att generera kompilatorer till diverse standardprocessorer och signalprocessorer.

Och på vägen har vi också fått se en ökad användning av applikationsspecifika arkitekturer. Kanske inte så att hård- och mjukvara genereras tillsammans och med automatik, men idag ser vi massor av grafikprocessorer och processorer som är framtagna enbart för att vara fantastiskt bra på en mycket speciell tillämpning (inte minst i telefonsammanhang). De här specialprocessorerna behöver kompilatorer och där kommer CoSy in.

Energi och prestanda
Att de applikationsspecifika processorerna blir vanligare beror på två saker – energiförbrukning och prestanda. Och kanske vi inte skall glömma de stora programmerbara logikkretsarna.

Men störst av dem alla är energiförbrukningen. Ingen vill köpa en smartphone som gör slut på batteriet på en halvtimme och dessutom ger brännsår i handen. Och ingen vill ha en kvartskilos handdator med ett tvåkilosbatteri. Samtidigt vill alla ha bra prestanda, snabb grafik och stora displayer. Den ekvationen är inte enkel.

Därför avlägsnar vi oss allt mer från den halvgamla tanken att göra så mycket som möjligt med en snabb generell processor. I stället går vi tillbaka till ”hårdvirade” lösningar och framför allt applikationsspecifika hjälpprocessorer. Visst är det enklare att utgå från generella processorer, men till syvende och sist är det pengarna som räknas. Och i det här fallet går pengarna till den som kan göra den energieffektivaste lösningen.

Framtidens processor?
Och vart vill jag komma med det här? Tja – kanske efterföljaren till x86 och ARM inte finns i någon ny smart arkitektur. Kanske det någon gång blir dags för de gemensamma hård/mjukvarulösningarna. Eller kanske jag är helt ute och cyklar.

Det var förresten ingen dum idé. Jag tror jag lägger av här och plockar fram cykeln i stället.

Leave a Reply