Vad händer med ARM och RISC-V?

ARM har haft en hel del problem de senaste par åren, samtidigt som RISC-V tar marknadsandelar och skapar en allt mer heltäckande infrastruktur. Den stora frågan är kanske inte varför detta händer nu, utan snarare varför något liknande inte hänt under de 30 år som ”ARM-sagan” pågått.

Hela havet stormar
Men låt oss backa tillbaka några år. Närmare bestämt till slutet av åttiotalet, då processorarkitekturerna gick igenom en period av ”hela havet stormar”.

Det här var nu inte första gången. Drygt tio år tidigare hade halvledarföretagen gjort sitt bästa för att lansera mer eller mindre vettiga arkitekturer. Alla hade åtminstone ett par egna arkitekturer på programmet.

Men framåt början av åttiotalet hade antalet krympt ganska ordentligt och i praktiken användes kanske tio åttabitsarkitekturer och tre eller fyra sextonbitsarkitekturer. Alla var CISC-baserade och i ledningen fanns 8086-arkitekturen från Intel och 68000-arkitekturen från Motorola. Mellan dem stod kampen trodde många.

Åttiotalet och RISC
Men det blir sällan som man tror. De befintliga CISC-baserade arkitekturerna var visserligen lätta att maskinkodsprogrammera och bra på att hålla kodmängden kompakt, men de var ganska hopplösa när man behövde öka klockfrekvensen. Redan att gå från 5 till 8 MHz var svårt nog.

Det här gick att komma runt genom att backa tillbaka och skapa en registerbaserad arkitektur med all exekvering mellan register och enkla load/store-instruktioner för att arbeta mot minnet. Den här typen av arkitektur gick också lätt att kombinera med interna och snabba cacheminnen.

De första att utnyttja det här var datortillverkarna. Plötsligt kom en hel rad med RISC-baserade arbetsstationer. Alla hade sin egen arkitektur och alla kunde öka klockfrekvensen drastiskt.

ARM
En av de här datortillverkarna var brittiska Acorn Computers. De hade tillverkat den (i Storbritannien) populära lilla datorn BBC Micro och ville gå vidare med något mera avancerat. Den begränsade 6502-processorn byttes mot en egenutvecklad RISC-processor som kallades Acorn Risc Processor. ARM-arkitekturen var född, även om framgångarna till att börja med var ytterst begränsade.

Kiselsmedjor och EDA
De flesta av de nya datorföretagen (utom IBM) var ointresserade av att bygga upp egna halvledarfabriker och egna konstruktionsverktyg. De föredrog att samarbeta med EDA-företag för verktygen och kiselsmedjor för produktionen. Däremot höll de hårt i sina processorarkitekturer.

De traditionella halvledarföretagen fortsatte ytterligare några år med sina egna verktyg och sina egna produktionsanläggningar. Också de höll hårt i sina arkitekturer.

Mobiltelefoner och systemkomponenter
Så när tillverkare av mobiltelefoner och andra avancerade elektroniska prylar behövde specialkomponenter fanns det inte mycket att välja på. Antingen kunde man be halvledartillverkarna att göra en specialkomponent eller så tvingades man att ta fram en egen processor och egna periferienheter.

Att ta fram en egen processor kan verka oöverstigligt, men för företag som Axis Communications var det ett lyckokast. Deras ETRAX-arkitektur innebar att de kunde ta fram systemkomponenter som var mycket billigare och bättre än konkurrenternas.

För tillverkare av mera datorlika apparater, till exempel mobiltelefoner, framstod däremot inte egenutvecklade processorer som någon särskilt attraktiv väg framåt. Att tvingas förlita sig på halvledartillverkarnas godtycke var heller inte kul.

ARM som IP
Och där skapades historia. Det ganska misslyckade Acorn Computer blev Advanced Risc Machines, med affärsidén att utveckla och licensiera processorkärnor, periferienheter och en infrastruktur av verktyg. Det blev en succé.

Själv satt jag lite vid sidan av och såg allt hända. Jag försökte få svenska företag att tillverka ASIC-kretsar hos VLSI Technology och ES2 och det slumpade sig så att VLSI Technology var först ut med en implementerbar ARM-kärna, samtidigt som min kontaktman hos ES2, Robin Saxby, kom att bli vd för ARM och den drivande bakom IP-projektet (och adlad på kuppen).

Det här var 30 år sedan och framgångssagan för ARM har hållit i sig sedan dess.

Datorföretagen försvann
Ett lustigt sidospår är att de egentliga RISC-pionjärerna försvunnit nästan mangrant. Datortillverkare som Sun, Apollo, Digital Equipment, MIPS och flera andra är borta och det är egentligen bara MIPS-arkitekturen som överlevt som en skugga av ARM.

IBM lyckades väl på sitt sätt, men till priset av att i stort sett överge sin egen RISC-arkitektur. Den finns fortfarande kvar i en del embeddedprocessorer.

I stället lyckades Intel inkorporera RISC-tekniken i sina x86-processorer. En sjuttiotalsarkitektur blev vinnare på datorsidan. Efter 40 år är fortfarande x86 ledande bland PC-datorer och servrar.

30 år!
Men egentligen är framgångarna för ARM ännu märkligare. Här talar vi ju om en i grunden (ganska) öppen arkitektur och en infrastruktur som också den baseras på öppenhet. Nog borde det ha kommit fram konkurrenter under 30 år.

Och visst har många försökt och en del till och med lyckats i någon mån. MIPS-arkitekturen finns här och där och flera andra kommersiella CPU-kärnor har hittat sin nisch. Det finns förstås också en rad signalprocessorer, både fasta och konfigurerbara. Och vi skall inte glömma OpenRISC, den öppna RISC-kärnan.

Ändå borde någon rimligen ha lyckats att utmana ARM på allvar under en så lång tid. I början var vi ju vana vid att hela havet stormade vart tionde år.

RISC-V
RISC-V-projektet drogs igång 2010 på University of California, Berkeley. Till att börja med var det väl inte mycket som tydde på att projektet skulle bli en jätteframgång, men sådant vet man aldrig säkert.

Uppenbarligen var i alla fall tiden mogen för en ny arkitektur. Många trogna ARM-användare är inte längre så trogna och de många andra har länge hoppats på ett alternativ.

Så RISC-V har smugit sig in lite överallt. Företag som SiFive, Syntacore och Andes utvecklar allt mer avancerade RISC-V-implementationer för licensiering. En rad tillverkare av styrprocessorer, t ex Microsemi och Microchip, satsar på RISC-V i en hel del nya komponenter. Verktygstillverkare som IAR och många andra tar fram verktyg för RISC-V. Det hela påminner om situationen för ARM i början av nittiotalet.

ARM har problem
En stor fördel för RISC-V-företagen är förstås att ARM de senaste åren haft en hel del problem. Inte minst har Softbanks köp av ARM Holdings för två år lett till en del mindre lyckade förändringar.

Det spelar egentligen mindre roll om det är framgångarna för RISC-V eller missnöje med ARM som lett till det snabbt ökade intresset för RISC-V. Det märkliga är som sagt att ARM har lyckats bibehålla en så dominerande position i så många år. Att RISC-V ser ut att fylla den vakanta platsen som förstakonkurrent – tja det är väl bara att gratulera.

Och att en öppen arkitektur ser ut att ta andraplatsen bland IP-processorkärnorna – det är något att återkomma om många gånger.

Klicka här för att se mer om RISC-V-symposiet i Kista 17 maj.

6 Responses to “Vad händer med ARM och RISC-V?”

  1. Risc-V är öppen källkod, som Linux. Det är massor av fördelar med detta:

    • frihet att innovera kring arkitekturen
    • möjlighet för vem som helst att vara med och bestämma utvecklingen av arkitekturen
    • att det är intellektuella argument och inte plånböcker som bestämmer hur arkitekturen utvecklas
    • öppenhet i vad som är på gång i utvecklingen av arkitekturen
    • sist men inte minst, förstås, att det finns implementationer som är gratis och att det inte finns några licenskostnader

    Arm ger inte någon av dessa friheter.

    Men allt detta gäller även Openrisc, Leon och andra – så varför blev de aldrig stora?

    • Risc-V kommer från samma professorer på Berkeley som en gång uppfann risc-konceptet. Så den har hög kredibilitet från start. Risc-V framstår som den nyaste modernaste risc:en med alla de gamla risc:arnas erfarenheter inkorporerade.
    • Risc-V fick ett snabbt stöd av tunga namn som Google.
    • Berkeleyprofessorerna satsade på att marknadsföra den.

    Så Risc-V tillhörde så att säga etablissemanget från start. Medan Openrisc fanns mer i hackerkulturen. Linux klev från hackerkultur till marknad när IBM gjorde sin miljardsatsning.

    Dessutom finns förstås en självförstärkande spiral. Jag tror att alla insåg direkt så fort Risc-V började marknadsföras (vilket var 2014, innan dess var den bara internt undervisningsmaterial) att den hade en enorm potential. Och i och med att alla trodde detta så blev det en självförstärkande sanning. För varje år sedan dess har den blivit större vilket i sin tur lett till att ännu fler fått upp ögonen.

    Det är också troligt att ”nu” har ett värde. Just nu vill vi helst ha en cpu-arkitektur som börjar från scratch utan bagage, för IoT och ännu mer för AI. Där förlorar både Openrisc och Arm mot Risc-V.

  2. Hej Jan

    Visst är det fantastiskt mycket enklare att vara efterklok än att vara ”förklok”. Förklaringar och historiebeskrivningar blir så härligt självklara när man har facit att utgå från.

    För naturligtvis har du rätt i fördelarna med öppen arkitektur och allt det andra som är själva basen för RISC-V. Men det innebar inte på något sätt att RISC-V var en självklar vinnare. Slump, timing och tillräckligt många som var sura på ARM var nog minst lika viktiga.

    Vi skall heller inte glömma att branschen med stor sannolikhet är på väg mot ännu en tid av ”hela havet stormar”. Redan nu ser vi en rad applikationsspecifika arkitekturer för AI, signalbehandling, grafik och annat som kräver höga prestanda och hög energieffektivitet. De närmaste åren lär den utvecklingen accelerera ytterligare.

    I det läget får nog både ARM och RISC-V ta platsen som övervakare. En viktig roll, om än kanske inte fullt så glamorös som hittills.

    Men säker kan man inte vara förrän man har facit – då kan man till och med kosta på sig att vara tvärsäker.

    /göte

  3. Vart tog AMD (Nvidia numera) vägen i beskrivningen?

    När AMD skulle slå Intel fick de enligt dåtidens rykte sätta 500 personer på att bara göra den optimala layouten. Vet inte om de verkligen satt så många, men normalt för den tiden var endast en person som gjorde hela layoutarbetet.

    Jag satt också med ett gäng som gjorde en egengjord processor på ASIC för 20 år sedan. Vi kom inte i närheten av de frekvenser som intel och AMD kom upp i. Vi hade bara en person som gjorde layout. Dvs verktygen fick routa fritt och layoutaren fick flytta enstaka celler som hamnat lite tokigt. Något knep hade AMD och Intel att komma upp i sina höga frekvenser och om det krävdes dessa enorma resurser att nå detta resultat så är det förklaringen till deras dominans.

    Att ARM skulle varit allenarådande är inte heller något jag sett, även fast det har varit det vanligaste alternativet. Men visst, tittar du i en Xilinx så är det ARM-kärnor som sitter där och det finns program som kan generera AXI-bussarna automatiskt. Jag tror snarare en de-facto-standard skapas på grund av flera led av förenklingar.

    Tänk efter själv hur svårt det blir att komma in med något nytt. Förutom själva konstruktionen skall du även gå från okänd till känd, kompilatorer och annan mjukvara skall skrivas, hårdvaruinterfacet kräver i tex FPGA/ASIC-världen något slags genereringsproram och övergångar till redan kända interface måste göras. Använder du andra IP-block är de antagligen gjorda med AXI-interface.

    Jan, skulle vilja lägga till en punkt till din lista:

    – En nackdel med köpta IP-block är att dessa numera ofta kommer i form av en krypterad nätlista och det är inte speciellt roligt att ha sådana i ens flöde.

  4. Hej Anders

    Nej, det är sannerligen inte lätt att nå drömgränserna i klockfrekvens. Åtminstone inte om man samtidigt vill ha rimlig energiförbrukning. Du minns säkert när Intel tvingades dumpa hela sin utvecklingsinsats för x86 i USA och i stället byta till det som gruppen i Tel Aviv hade tagit fram. Det sved nog.

    ARM har naturligtvis inte varit allenarådande bland processorer och enkapseldatorer. Men de tog den viktiga SoC-marknaden och det innebar att de med automatik har arbetat sig in på de gamla processormarknaderna också.

    Alla ”låsta” arkitekturer har förstås det problem som du pekar på. Konstruktörerna tvingas sitta med krypterade nätlistor och gränssnitt som man inte har någon ordentlig koll på. Så om en öppen arkitektur kan ta sig hela den långa vägen till att ha en komplett infrastruktur kan framgången komma snabbt. Men enkelt är det sannerligen inte.

    /göte

  5. Jag tror att när något kommit över en viss tröskel i storlek så att det blir nån form av industristandard så är det svårt att bryta helt ny mark. Dvs grundidén håller sig kvar men bättras på.
    Det krävs till exempel ganska mycket för att en biltillverkare skulle sätta blinkerkontrollen som pedal och byta plats på gas och broms.

    Som hårdvarukille som dock skriver en del enklare program så vet jag hur det tar emot att byta till en helt ny processor när man jobbat med en familj i typ 20 år. Även om man vet att det tekniskt skulle vara bättre att välja en annan så trixar man sig förbi problemen för att det går snabbare än att sätta sig in i en helt ny arkitektur.

    Så som sagt det krävs något som blir så pass mycket bättre att folk i stort sett måste lämna sin bekvämlighetszon.
    Människor är i grunden lata, man känner andra genom sig själv ni vet 🙂

  6. Hej Mikael

    Så sant. Ingen skiftar arkitektur bara för att det är kul. ARM lyckades för att mobilerna behövde en processor-IP och ändå tog det ett par årtionden för att på allvar komma in som standardprocessor.

    Ändå tror jag nog att RISC-V kommer att lyckas, även om framgången knappast blir så stor och snabb som många tycks tro. Trots allt saknas ett verkligt stort argument som kräver ett skifte. RISC-V är inte snabbare eller energisnålare än ARM.

    Så tekniskt sett är nog ändå steget mot applikationsspecifika processorer intressantare. Där finns ett riktigt bra argument för ett skifte (eller snarare ett tillägg). Ingen av de konventionella arkitekturerna klarar AI eller grafik på ett rimligt sätt. Vi ser redan hur många acceleratorer som finns i dagens avancerade SoC-komponenter.

    Sedan kommer den intressanta frågan om vad det innebär för framtiden. Kan vi ta steget uppåt i abstraktionsnivå och frigöra oss från basarkitekturerna? Det har misslyckats tidigare, men kanske kravet blir stort nog när programmerarna får tillräckligt många olika acceleratorer att ta hänsyn till.

    Vi får väl se.Tills dess – låt oss hålla koll och samtidigt luta oss tillbaka och ta det lugnt. Lättja är inte dumt.

    /göte