Processorer om 25 år

Den nya DSP-arkitekturen Vision C5 från Tensilica (Cadence) visar att det händer en del på processorfronten. Många av funderingarna har många år på nacken, men kanske det äntligen är dags för lite nya arkitekturer. Eller kommer vi att fortsätta med invanda arkitekturer, kombinerade med en rad acceleratorer. Jag fortsätter en vända till med mina 25-årsfunderingar.

Egentligen tog jag upp en hel del av processorutvecklingen redan i en av förra veckans krönikor (25 år sedan starten). 1992 var ju ett intressant år, då det såg ut som om många av grundförutsättningarna skulle förändras. Väldigt mycket handlade om arkitekturer för massivt parallella processorer och nya sätt att programmera.

Problemet var då som nu att ökade prestanda är svåra att nå enbart med ökade klockfrekvenser. Dubblad frekvens ger mer än dubblad energiförbrukning, samtidigt som konventionella processorer och konventionella sätt att programmera har svårt att utnyttja parallella processorer. Dubbelt så många processorer ger inte dubbla prestanda.

Bättre än man trodde
För 25 år sedan trodde många att gränsen började närma sig på allvar. På många sätt hade de faktiskt rätt.

Men steget från CISC till RISC gjorde det möjligt att öka antalet effektiva instruktioner per klockcykel och förbättrade tillverkningsprocesser gjorde det möjligt att öka klockfrekvensen ytterligare några varv. Det slog undan fötterna för nya arkitekturer som Transputer och andra som försökte introducera nya generella processorer. Med Intels nya Pentium-processorer blev det dessutom möjligt att hålla kvar kompatibiliteten och ändå öka prestanda dramatiskt.

Från knappt 100 MHz och långt mindre än en instruktion per klockcykel ökades förvånansvärt snabbt maximala klockfrekvensen till ett par GHz och arkitekterna klämde in bortåt två instruktioner per klockcykel. Vi blev bortskämda och programmerarna såg gärna att det mesta fortsatte i gamla spår.

Nådde gränsen
Men redan efter några år var ett par av gränserna nådda. I praktiken är det inte särskilt ”lönsamt” att försöka skrämma upp en mikroprocessor särskilt mycket över 3 GHz. Energiförbrukningen ökar dramatiskt och det blir svårt att kyla komponenterna. De senaste åren har vi egentligen inte sett några ökade klockfrekvenser.

Samma sak gäller antal instruktioner per klockcykel. De traditionella processorarkitekturerna nådde sin gräns för ganska länge sedan och en processorkärna är ungefär lika snabb idag som för tio år sedan. Redan 2005 fanns det Pentium-processorer (Pentium 4) med klockfrekvenser upp till 3,8 GHz.

Sedan dess har processortillverkarna ägnat sig åt att lägga in fler processorkärnor (både fysiskt och virtuellt) på samma chip. Det har ökat möjligheterna att snabbt köra flera program samtidigt, men ganska få enskilda program är konstruerade för att dra nytta av många parallella processorer.

Acceleratorer för grafik
I stället har vi fått se slavprocessorer och acceleratorer för att hantera de mest prestandakrävande uppgifterna. Genom att låta en specialutvecklad slavenhet ta hand om grafikhanteringen kunde datorerna till synes bli dramatiskt mycket snabbare.

Efter hand har processortillverkarna byggt in avancerade grafikprocessorer på samma chip som standardprocessorerna och i praktiken består nu en standarprocessor av den ”gamla vanliga” processorarkitekturen plus en rad acceleratorer för video, grafik och aritmetik.

Grafikprocessorerna (GPUer) är betydligt bättre än standardprocessorerna när det gäller massivt parallella system. Därför användes GPUerna allt oftare också för annat än grafikhantering, trots att de är ganska hopplösa att programmera.

FPGA för telekom
I framför allt telekomsystem har det blivit vanligt att kombinera generella processorer med stora mängder programmerbar logik. Den programmerbara logiken gör det möjligt att skapa acceleratorer i hårdvara med en arkitektur som är helt anpassad till ändamålet.

Genom att kombinera generella processorer, GPUer och programmerbar logik i serversystem blir det möjligt att delvis sudda ut gränserna mellan klassisk telekomhårdvara och generella serversystem.

Artificiell intelligens
De flesta är överens om att artificiell intelligens är nästa stora steg för alla typer av datorer. Det kräver massor av beräkningskapacitet och helst specialarkitekturer för AI. Google har tagit fram en egen hårdvaruaccelerator för AI, medan många andra fortfarande litar till GPU-lösningar.

I serverdatorer lär bägge de här teknikerna (och kanske FPGA) få stort genomslag de närmaste åren, men det blir betydligt svårare i framför allt fordonstillämpningarna. Där krävs betydligt mera energisnåla lösningar.

Förändring i grunden?
Är det då äntligen dags för en stor och genomgripande förändring på processorsidan? Dagens generella processorer är ju faktiskt inte särskilt mycket bättre på parallellarbete än de som fanns för 25 år sedan.

I praktiken har vi nått gränsen för de generella processorerna för flera år sedan. Det finns ett fåtal program som kan dra nytta av hundratals processorer och skala prestanda närmast linjärt, men för de flesta applikationer går gränsen vid ett fåtal parallella kärnor. Därefter blir vinsten liten.

Problemet är förstås att kompatibilitet är minst lika viktigt idag som för 25 år sedan. Ingen vill ta det stora steget ut i det okända utan att det är verkligt otroligt nödvändigt.

Att lägga mer jobb på GPUer, AI-acceleratorer och FPGAer innebär att programmerarnas jobb blir svårare, men man kan kanske fortsätta att skjuta de nödvändiga förändringarna framåt ytterligare en tid. Frågan är bara hur länge det går.

Om 25 år
Om 25 år har vi nog optimerade arkitekturer för fordonstillämpningar och batteridrivna AI-prylar. Robotarna hänger förmodligen med på samma tåg.

Det är inte omöjligt att den här teknikutvecklingen vid det laget har nått datorer, mobiltelefoner och servrar också, men jag skulle nog ändå tro att x86 och ARM är kvar som spindlar i nätet. Acceleratorerna gör det mesta av jobbet, medan huvudprocessorn syns utåt. Att ta steget från åttiotalsarkitekturer och sjuttiotalsoperativsystem är inte lätt.

Men förhoppningsvis har jag fel. Om 25 år kanske allt det där som vi hoppades på för 25 år sedan faktiskt har blivit verklighet.

Det skulle i så fall vara på tiden.

Leave a Reply