Annons

ARM flyttar fram positionerna

MIPS säljs och ARM befäster sin ställning på embeddedmarknaden. Och allt fler talar om en övergång till ARM för Apples Mac-datorer. Det är inte bara på marknaden för enkapseldatorer som ARM blir allt mer dominerande.

 

I går plockade jag för första gången på många år fram "Den Svenska Mikrodatormarknaden", från 1977. Den skrevs av Ulf Svensson och mig som trebetygsuppsats på Göteborgs Universitet och såldes faktiskt en tid via Modern Elektronik.
Vi lyckades den gången ge en ganska heltäckande bild av vad som fanns tillgängligt och till och med vad man kunde vänta sig de närmast följande åren. Och så här 35 år senare finns det faktiskt all anledning att ta en titt i backspegeln. Speciellt med tanke på de stora omvälvningar som sker just nu.

Explosion på sex år
Det mest imponerande är nog ändå hur fantastiskt mycket som hände under mikroprocessorns första år. Vi som var unga 1977 tyckte förstås att mikroprocessorn hade funnits i evigheter, men Intels 4004-processor kom faktiskt inte förrän 1971. Då handlade det om en ganska patetisk 4-bits-arkitektur, tillverkad i PMOS-teknik. Historien om 4004 har berättats så många gånger att de flesta säkert kan den.
Men, de följande sex åren exploderade utvecklingen. Företag som Intel, Motorola, National Semiconductor, Zilog, MOS Technology, Fairchild, Intersil och flera andra drog igång utvecklingsprocesser som resulterade i allt från enkla fyrbitsprocessorer till avancerade 16-bits-processorer. Redan 1977 fanns faktiskt minst sju processorarkitekturer med 16 bits ordlängd, där x86-processorn inte var den mest avancerade. Det fanns också minst en extremt energisnål CMOS-processor.


Sir Robin Saxby lyckades vända ARM från ett misslyckat datorföretag till världens lönsammaste IP-företag. För det blev han adlad.

Redan 1977 fanns också en rad enkapseldatorer från ett tiotal tillverkare. Texas Instruments hade till exempel storsäljaren TMS-1000, Intel hade 8048-familjen och Motorola hade 6801-familjen. Från att inte ens existera 1971 hade mikrodatormarknaden hunnit växa till en stor, ganska mogen och världsomspännande marknad 1977.

CISC-arkitekturer
De sista åren på sjuttiotalet och under hela åttiotalet fortsatte mikrodatormarknaden att utvecklas åt ganska många olika håll. Intel gjorde sin misslyckade jättesatsning på APX432-arkitekturen, något som höll på att få hela företaget på fall. Den här mycket avancerade objektorienterade processorarkitekturen började utvecklas redan i mitten av sjuttiotalet (före 8086) och sågs av en del inom Intel som något av "the final solution".
Nu blev alltså 432-processorn ett totalt misslyckande och Intel tvingades använda sin x86-arkitektur i stället. Det här var inte lätt, med tanke på att x86 från början inte var avsedd som avancerad processorarkitektur. Den kallades länge för "mid-range" inom Intel och var tänkt att fylla tomrummet fram till 432.


Digital Equipments Alpha-processor var för inte så länge sedan världens snabbaste och mest avancerade RISC-processor.

I stället blev det Motorola som på ett framgångsrikt sätt lanserade en arkitektur där man redan från början tagit hänsyn till kraven från mer avancerade datorer. 68000-processorn och de varianter som följde den blev en hård konkurrent till Intels x86-varianter. Om inte IBM hade valt x86 (8088) till sin PC-dator vete tusan hur det hade gått.
Huvudspåret var i alla fall allt mer avancerade processorarkitekturer med allt mer komplexa instruktioner. De flesta såg nog framför sig en fortsatt utveckling där processorinstruktionerna blev allt mer högnivålika. Idealprocessorn skulle ha många och flexibla register och en ortogonal instruktionsrepertoar. Alla instruktioner skulle fungera på vilka register som helst och kunna utnyttja alla adresseringssätt.


Med Pentium-processorn lyckades Intel göra x86-arkitekturen mera "RISC-lik" och framför allt mycket snabbare.

Processorer som ligger nära det här idealet är till exempel 68000-familjen från Motorola, Z8000 från Zilog och 32000-processorerna från National Semiconductor.
Enkapseldatorerna gick förstås samma väg. Här fanns ännu större anledning att låta processorn göra så mycket som möjligt. De flesta programmerade ju i maskinspråk och ett maskinspråk med komplexa instruktioner gör arbetet lättare.

RISC-kriget
Och så plötsligt vältes allt över ända. Några processortillverkare kunde visa att man kunde öka prestanda dramatiskt genom att optimera på ett annat sätt. Om man låter högnivåkompilatorn göra mer av jobbet kan man rensa upp bland instruktionerna och plocka bort allt som är långt, komplext och kräver mikrokod. I stället kan alla instruktioner bli lika långa, ta lika lång tid och effektivt fylla sin plats i processorns pipeline.
RISC-processorerna var först med att använda avancerade pipelines och parallella exekveringsenheter så att man nådde nära eller över en instruktion per klockcykel. Ändå är det återigen snarare verkan än orsak.
Grundidén med en instruktionspipeline är att instruktioner normalt sett utförs i följd. Om en instruktion tar fyra klockcykler att utföra så kan man dela upp exekveringsenheten i sina grundelement och lägga dem i en kö. Varje steg i kön tar då en klockcykel Resultatet blir att en instruktion utförs per klockcykel så länge som kön är obruten. Visserligen tar det fyra instruktioner från det att en instruktion kommer in tills den är färdigprocessad men så länge som instruktionerna kommer efter varandra så är det tiden för varje steg som anger farten.


Sun Microsystems var en period dominerande tillverkare av arbetsstationer. Sparc-processorn var basen i dem.

RISC-processorernas effektivare arbetssätt innebar både att man kunde få mer gjort per klockcykel och att klockfrekvenserna kunde ökas. Processorarkitekturer som MIPS R3000/4000, PowerPC, SPARC och PA-RISC ledde till att datorprestanda ökade flera gånger om. Och när Digital Equipment lanserade ALPHA-arkitekturen ökades skillnaden ännu mer.

Enkapseldatorn låg kvar
För enkapseldatorerna var det i början svårt att se några större fördelar i att gå över till RISC. Klockfrekvenserna var ändå inte så höga och RISC-processorernas ökade kodmängd var en stor nackdel. Därför sågs länge RISC-processorn som enbart intressant för större system.

Motorola bytte
RISC-kriget skördade i alla fall många offer. Motorola gav till exempel upp och bytte sin extremt framgångsrika 68000-arkitektur mot PowerPC i ett samarbete med IBM. Andra tillverkare, som Zilog, lyckades aldrig ta sig över till "den nya tiden", utan tynade sakta bort.


Chiplayouten för Motorolas PowerPC 602 skiljer sig dramatiskt från PowerPC601.

Intel lanserade i och för sig egna RISC-arkitekturer, men framför allt såg man till att vidareutveckla x86-arkitekturen åt RISC-hållet. Det var ett imponerande steg, även om det också krävde att man hela tiden hade bättre tillverkningsprocesser än konkurrenterna. Att behålla kodkompatibiliteten var inte gratis i kiselarea.
Men det var många som i skiftet mellan åttiotal och nittiotal trodde att Intel skulle misslyckas. Det märktes till exempel på Microsoft, som i första hand utvecklade Windows NT för de nya snabba processorerna. Windows NT levererades länge för Alpha, MIPS R4000 och PowerPC. Och så x86 förstås.

ARM kom från sidan
I mitten av åttiotalet var det inte så många som trodde på den brittiska RISC-processorn ARM. Processorarkitekturen var framtagen för efterföljaren till den brittiska BBC-datorn, en dator som för övrigt misslyckades i konkurrensen.


ARM-processorn var från början enkel och kompakt. Här ARM600-kärnan.

Men ARM-arkitekturen hade sina fördelar. Den var enkel, snabb och gick att implementera på en ovanligt liten kiselarea. Men det hade inte hjälpt, om inte utvecklingen tagit ett mycket speciellt språng just då.

Processor som IP
Mobiltelefonerna kom att bli ARM-arkitekturens välsignelse. Mobiltelefontillverkarna var tvungna att göra kompakta och strömsnåla lösningar. Då gick det inte att bygga på konventionellt sätt, med mikroprocessor och kringkretsa. Så mycket som möjligt måste integreras i systemkretsar och det gällde även mikroprocessorn.
i början räckte det med 8-bits mikroprocessorer som Z80. Z80-processorn gick att köpa som IP-block och användes t ex av Ericsson. Men snart ökade kravet på processorprestanda och urvalet av tänkbara processorer minskade drastiskt. x86-arkitekturen var till exempel inte tänkbar. Intel var inte intresserade av att licensiera arkitekturen och den skulle i vilket fall som helst ta för stor plats i förhållande till prestanda.


Am29040 från AMD var en av många RISC-processorer som inte lyckades "hela vägen"

Vinnare blev i stället ARM. De hade inget att förlora på att licensiera arkitekturen och tekniskt var processorn ovanligt lämplig. ARM lyckades till och med få ordning på problemet med kodstorleken med Thumb-tillägget. Det innebar att man under körning kunde välja mellan den fulla instruktionsuppsättningen och en kraftigt begränsad, men mycket kompaktare, instruktionsuppsättning. På det sättet blev ARM minst lika kodsnål som de konkurrerande CISC-arkitekturerna.

ARM överallt
De senaste femton åren har ARM befäst sin ställning som det självklara valet för tillverkare av systemkomponenter. I stort sett alla tillverkare av mobiltelefoner och handdatorer har gått över till ARM-arkitekturen och företaget ARM Ltd har kunnat satsa stort på att vidareutveckla arkitekturen för att passa i allt fler applikationer. Idag finns allt från små kompakta ARM-kärnor, med bara Thumb-arkitekturen, till stora 64-bits processorkärnor som kan tävla i prestanda med vad som helst. Dessutom finns de heterogena kärnorna, där en liten och strömsnål ARM-kärna arbetar parallellt med en större. På det sättet kan man hålla ner strömförbrukningen, samtidigt som topprestanda hålls höga.


SGS-Thomson hade förstås en egen RISC-arkitektur, här i ST20450-processorn.

Resultatet blev att ARM-arkitekturen sakta men säkert tog sig in överallt där man behövde integrera en processorkärna i en systemkrets. Och när väl ARM-processorn blev allenarådande på marknaden för smarta telefoner var egentligen loppet kört för övriga tillverkare av RISC-kärnor. Varför skulle man välja något annat än ARM, när all infrastruktur i första hand är ARM-baserad. Visst är det jobbigt att ha samma processor som konkurrenterna, men det är ännu värre att hela tiden tvingas att försvara ett processorval som kunderna misstror.

Enkapseldatorer med ARM
Samma sak gällde tillverkarna av enkapseldatorer. Enkapseldatorn är i första hand en systemkrets och när kravet på ökade prestanda blev större blev det också allt vanligare att stoppa in en ARM-kärna. Alla tillverkare av enkapseldatorer hade i och för sig tagit fram egna 16-bits processorarkitekturer, men efter hand som infrastrukturen för ARM ökade blev det allt mindre intressant att fortsätta den "egna" vägen.


Och vem kommer ihåg IDTs ORION-processor?

Resultatet är att de flesta tillverkarna av enkapseldatorer har en familj av ARM-komponenter och att det är de familjerna som växer snabbast. Här ser vi traditionella tillverkare som Freescale, Renesas, Toshiba, Texas Instruments, AVR och Silicon Labs. Vi ser också nya tillverkare som norska Energy Micro, som bara använder ARM-arkitekturen. Det är idag lättare att räkna upp de tillverkare som inte använder ARM-kärnor än de som gör det.
Det innebär i och för sig inte att ARM helt och hållet dominerar på enkapselsidan. Det finns gott om andra arkitekturer, speciellt för enklare konstruktioner eller för extremt strömsnåla konstruktioner. Men det är heller ingen som helst tvekan om vartåt det lutar.

ARM mot x86
Bland de växande 32-bits processorarkitekturerna har ARM-arkitekturen lyckats att tränga undan det mesta utom Intels x86-arkitektur. Den dominerar PC-marknaden och den har fortfarande en stark ställning på den del av embeddedmarknaden där PC-kompatibilitet är viktigt. Intel lyckades också få Apple att byta från PowerPC till x86 i Mac-datorerna.
Men samtidigt har också Intel misslyckats på ett ganska spektakulärt sätt. Alla försök att komma in på marknaden för smarta telefoner har gått snett. Samma sak gäller handdatorerna, där man verkligen har försökt ett antal gånger.


Intels i860-familj är idag glömd. Den var företagets försök att konkurrera på RISC-marknaden.

Grundproblemet är framför allt att man inte har velat/kunnat släppa x86-kärnan som IP-block, samtidigt som Intel inte lyckats framstå som en tillräckligt konkurrenskraftig SoC-tillverkare. Plus förstås de misslyckade försöken till OS-samarbete med till exempel Nokia. I dag är det knappast sannolikt att Intel skall kunna ta sig in på varken telefon- eller handdatormarknaden. Men man vet förstås aldrig med Intel.

ARM och Apple
PC-marknaden minskar nu för första gången och det är naturligtvis dåliga nyheter för Intel. Samtidigt intensifieras ryktena om att Apple är på väg att ännu en gång byta processorarkitektur på Mac-datorerna (68000 – PowerPC – x86 – ARM?). Det här har "legat i luften" sedan ARM lanserade sin mycket avancerade 64-bits processorarkitektur, men senaste veckan har många initierade källor tagit bladet från munnen.
Ytterligare ett tänkbart problem för Intel är att de stora kiselsmedjorna verkar vara så duktiga på att ta fram nya avancerade processer. Från Globalfoundries kommer till exempel en 14 nm finfet-process, som påstås kunna matcha Intels processer.


Motorola bytte till IBMs Power-arkitektur. Första processorn, PowerPC601, tillverkades av IBM.

Det här skulle ge ARM-ekosystemet tillgång till lika bra processer som Intel. SoC-tillverkarna får då möjlighet att integrera processorarkitektur och acceleratorer på ett sätt som inte riktigt är möjligt idag. För att inte tala om fördelarna i prestanda och energiförbrukning med att få in alla snabba periferidelar i samma chip som processorn. Breda och snabba externa bussar är dyrbara och energikrävande.

Processorn får mindre betydelse
Allt det här kan lustigt nog leda till att processorn får mindre betydelse än den har idag. Det kan också på lång sikt leda till att vi får se fler och betydligt mera radikala arkitekturer.


Hyperstones RISC-processor var ytterst kompakt, men lyckades inte ändå.

På kortare sikt får vi nog se fler systemkomponenter, där mikroprocessorn bara är en del (om än en viktig del). Visserligen är det dyrt att konstruera i så avancerade processer som 14 nm, men konkurrensfördelarna är dramatiska. Inte minst slipper systemtillverkaren att "skyffla över" lejonparten av vinsten till processortillverkare som Intel.
För det är naturligtvis Intel som står i skottlinjen. De har i många år haft en unik ställning som tillverkare av "datormotorn". Den positionen är idag hotad på ett sätt som vi inte har sett tidigare. Nu handlar det inte längre om en kamp mellan olika processortillverkare. I stället måste Intel slåss med sina kunder och det kan bli jobbigt.
Men återigen – Intel har varit illa ute tidigare.
Göte Fagerfjäll

Comments are closed.