En arkitektur för allt

Under årens lopp har vi sett mikroprocessorarkitekturer komma och gå. Men framför allt har vi sett olika arkitekturer för olika segment av marknaden: enkla arkitekturer för enkapseldatorer, mera komplexa arkitekturer för embeddedprocessorer och avancerade arkitekturer för datorer. Idag ser vi plötsligt en datorarkitektur som spänner över hela fältet och det är något helt nytt.

 

Framgången för ARM är utan tvekan till stor del beroende på skicklighet och framsynthet och det är säkert vad man kan läsa i företagets historiebeskrivning.
Men det finns förstås fler orsaker än så. Inte minst är konkurrenternas misstag viktiga. ARM har haft gott om egna framgångar, men utan konkurrenternas misstag hade det knappast gått så bra.
Som de flesta nog känner till vid det här laget började ARM-historien med ett försök att skapa en bättre persondator. I Storbritannien introducerades 1981 den 6502-baserade BBC Microcomputer. Datorn blev mycket framgångsrik, framför allt i brittiska skolor, och uppgraderades i två omgångar, fortfarande med 6502-processorn som bas.
Acorn Computers, som byggde datorerna, insåg efter några år att man behövde en kraftfullare mikroprocessor, men valde att inte använda någon av de "stora", t ex Intels 8086, Motorolas Z8000, Motorolas 68000 eller National Semiconductors 32000. Redan vid den här tiden hade man på allvar börjat diskutera om inte en förenklad arkitektur med färre instruktioner skulle kunna ge bättre prestanda och bland annat ett projekt hos Berkley (Berkley RISC) visade att idéerna fungerade.
Så Steve Furber och Sophie Wilson lyckades få Acorn-chefen Herman Hauser att acceptera att företaget utvecklade en egen mikroprocessor, baserad på en egen 32-bits RISC-arkitektur (Acorn Risc Machine). Den första versionen, ARM-1, producerades 1985 av VLSI Technology och fungerade. Den andra versionen, ARM-2, gick i produktion året efter och blev basen för Acorns nya dator, BBC Archimedes, eller Acorn Archimedes som den senare kom att kallas.


På Embedded World-mässan i Nürnberg var ARM noga med att visa sin bredd, från enkla enkapseldatorer upp till avancerade multiprocessorer.

Archimedes-datorn genomgick en rad uppdateringar, med flera nya versioner av ARM-processorn. Men den blev egentligen aldrig någon större framgång. Den sista versionen kom i början av nittiotalet och använde då en ARM250-processor. Normalt sett skulle väl historien ha slutat där.

Kärna till mobiltelefoner
Men, idén om en snabb processor som gick att implementera på en liten kiselarea var intressant för fler än Acorn. Redan i slutet av åttiotalet blev Apple intresserade av att använda processorn och arkitekturutvecklingen lades på ett separat företag: Advanced Risc Machines, ARM. ARM utvecklade arkitekturen och licensierade ut den till företag som ville tillverka komponenter baserad på arkitekturen. Apple använde till exempel ARM-processorn i handdatorn Newton och Digital Equipment licensierade arkitekturen till sin StrongARM-serie.
Men den stora revolutionen kom när mobiltelefontillverkarna behövde bättre och snabbare processorer. Plötsligt framstod ARMs affärsmodell som överlägsen de flesta konkurrenternas. Processortillverkare som Intel och Motorola, var inte särskilt intresserade av låta någon annan bygga komponenter baserade på deras processorer och mobiltelefontillverkarna var inte överdrivet intresserade av att låsa in sig hos en enda halvledartillverkare. Dessutom var faktiskt ARM-processorn bättre än konkurrenterna vad gäller prestanda i förhållande till energiförbrukning.


ARM Cortex-M0+ är en uppgraderad variant av ARMs minsta processorkärna. Den finns i små och billiga enkapseldatorer.

Det viktigaste var väl ändå att ARM existerade som licensierbar kärna vid det tillfälle när mobiltelefontillverkarna behövde en sådan. ARM varken kunde eller ville ställa lika hårda krav som de stora processortillverkarna och därför vann man, trots att det saknades en infrastruktur. Att arkitekturen var modernare än de andras var säkert ett bra argument, men frågan är väl om det hade räckt om de stora processortillverkarna spelat sina kort rätt.

Många processer
Tja, åren gick och de stora processortillverkarna missade en rad möjligheter att sätta stopp för ARM. Intel hoppade faktiskt en tid på ARM-tåget (Strong-ARM – från köpet av Digital Equipments halvledarverksamhet), men det höll inte i internkonkurrensen.
Idag står vi i ett intressant läge, där de problem som ARM tvingades att hantera under åren visade sig bli deras största konkurrensfördelar. De kunde (eller ville) inte optimera sin arkitektur på transistornivå, utan tvingades arbeta på RTL-nivå med standard-EDA-verktyg. De kunde inte optimera utifrån en egen CMOS-process, utan tvingades anpassa sig till standardprocesser. Och de var hela tiden tvungna att tänka på energiförbrukningen i förhållande till prestanda.


Genom att kombinera den stora Cortex A15 MPCore-kärnan med den nya A7 MPCore-kärnan kan man få en heterogen processor, med energiförbrukning som varierar nästan linjärt med belastningen.

Det här passar tillverkare av SoC-kretsar till mobiltelefoner och konsumentelektronik. De stora kiselsmedjorna (t ex TSMC och GlobalFoundries) har visat att vanlig (billig) bulk-CMOS går att vidareutveckla förbluffande långt, samtidigt som ARM visar att deras processorer och IP-byggblock får höga prestanda på standardprocesser hos olika kiselsmedjor och med olika konstruktionsflöden. Företag som Broadcom klarar att konstruera extremt avancerade SoC-komponenter utan att ha egen produktion eller ens egna grundmoduler. Den här ”delaminerade” modellen används numera av de flesta, även om många av de större halvledartillverkarna också använder en kombination av egen produktion och yttre kiselsmedjor. Genom att pressa priset i alla led har de olika tillverkarna kunnat konkurrera med ständigt sänkta priser.
Motpolen till det här är Intel. Man skulle till och med kunna säga att det handlar om ett krig mellan två helt olika modeller där bägge har haft stor framgång. Intel har kunnat behålla mjukvarukompatibiliteten bakåt genom att använda en vertikalintegrerad modell där man behärskar hela kedjan, från konstruktion till produktion. Företaget ligger på processteknologins absoluta framkant och kan optimera sina konstruktioner mot sina processer maximalt. Intel satsar nu hårt på FinFet och kan på det sättet ”piska” x86-arkitekturen till höjder som man tidigare knappast kunde ha trott vara möjliga. Intels senaste försäljnings- och vinstsiffror visar också att modellen fungerar, även om (eller kanske på grund av att) komponenterna blir dyra.

Mjukvara på plats
Mobiltelefontillverkarna kunde välja ARM-processorn, trots att det saknades en ordentlig mjukvaruinfrastruktur. De hade kapacitet att utveckla den på egen hand och pengar nog att betala för det man inte ville utveckla själva. Här ligger nog nyckeln till ARMs fortsatta framgång. Inte minst eftersom mobiltelefontillverkarna valde att utveckla mycket av mjukvaran under öppna standarder.
Efter ett antal år har därför ARM en imponerande mjukvaruinfrastruktur, som naturligtvis mobiltelefontillverkarna till stor del har betalat. Det finns gott om realtidsoperativsystem (t ex Enea OSE och QNX), men framför allt har ARM med åren kommit att kopplas till Linux. Den utvecklingen har tagit tid, men idag finns allt på plats, inklusive användargränssnitt som Android (och snart Tizen). Andra Unix-varianter ligger till grund för till exempel Apples iOS.


Enkapseldatorer använder oftast någon av kärnorna från Cortex-M0 till Cortex-M4.

Det mesta finns alltså på plats och ännu viktigare – det finns en ordentlig motorväg framåt. Alla verktygstillverkare satsar hårt på ARM och kombinationen ARM/Linux ser ut att kunna fungera som bas, från de allra minsta tumnagelstora systemen upp till jättelika serveranläggningar. Det har vi inte sett tidigare.

Väldig bredd
För, det som idag skiljer ARM från alla andra processorarkitekturer är just bredden. Vi har idag en processorarkitektur med en bredd som sträcker sig från de allra minsta och billigaste enkapseldatorerna till avancerade multiprocessorer. Snart kommer vi dessutom att få se en rad kraftfulla 64-bits-processorer, som utmanar Intel och andra på serversidan. Den här typen av bredd har vi aldrig sett tidigare och vi har definitivt aldrig sett en enda processorarkitektur från nästan alla halvledartillverkare.
Vad varje enskild halvledartillverkare gör kanske inte spelar så stor roll, men totalt sett ser vi något som kan liknas vid en flodvåg. Och det är en flodvåg som påverkar marknaden från flera håll. Vi ser till exempel idag ett skifte från relativt enkla åtta- och sextonbitars processorarkitekturer upp till den ganska komplexa 32-bitars ARM-arkitekturen. Det innebär ett skifte från traditionell, ganska enkel, mjukvara upp till en helt annan nivå. Steget är inte enkelt och normalt sett skulle säkert många ha skjutit upp det länge än, men idag “tvingas” konstruktörerna att “byta upp sig”. Man måste helt enkelt göra det förr eller senare och då är det lika bra att ta tjuren vid hornen med en gång.
För alla de konstruktörer som i åratal arbetat med 32-bitars processorarkitekturer borde det kanske inte betyda så mycket att ARM tar större plats på marknaden. Men, också här ser vi en stark ARM-trend. När det är dags att välja tittar man på vilken arkitektur som har det bästa ekosystemet och där har mycket hänt bara på det senaste året. I stort sett alla verktygstillverkare har antingen ARM eller x86 som förstaval och först därefter allt annat. ARM upplevs idag som “det säkra valet”, både på grund av de våldsamma volymerna i telekomvärlden och för att man inte riskerar att låsa in sig hos en enda tillverkare. Alltsammans rullar på av egen kraft.

Kodsnåla enkapseldatorer
De enklaste enkapseldatorerna är idag baserade på Cortex M0-arkitekturen. Den blev i sin tur möjlig på grund av en tidigare innovation, nämligen den förenklade instruktionsuppsättningen Thumb.
Ett problem med RISC-arkitekturer är ju att de tenderar att generera ganska mycket kod. En snabb 32-bits RISC-arkitektur bör ha samma längd på alla instruktioner och det rimmar illa med kodsnålhet.
Det här löstes man hos ARM på ett elegant sätt. Man implementerade "helt enkelt" ett subset av instruktionerna som rymdes i 16 bit. De enkla instruktionerna expanderades sedan till vanliga instruktioner och genom att byta mellan de bägge uppsättningarna kunde man nå maximala prestanda eller maximal kodsnålhet i olika delar av programmet.


ARM Cortex-M4 har DSP-funktioner och möjlighet till flyttalsberäkning.

Nästa steg var ganska självklart. Man tog helt enkelt fram en serie processorkärnor som bara använde Thumb-instruktionerna och se – plötsligt hade man en programkompatibel, kodsnål och kompakt kärna för små enkapseldatorer.
De allra billigaste enkapseldatorerna är alltså baserade på ARM Cortex-M0-kärnan eller den nyare ARM Cortex-M0+-kärnan. Men vi ser också allt fler tillverka billiga enkapseldatorer baserade på Cortex M-4-kärnan. Då får man inbyggd flyttalshanterare och framför allt inbyggda signalprocessorfunktioner. Ändå kan priset för en sådan enkapseldator landa under tre dollar i stora volymer. Och energiförbrukningen är extremt låg.

Stor och liten
Från de allra minsta ARM-kärnorna finns en rad olika kärnor hela vägen upp till den mycket avancerade och snabba Cortex-A15 MPCore, avsedd för multiprocessorsystem. Med några parallella Cortex-A15-kärnor kan man nå mycket höga prestanda.
Under året kommer också den nya 64-bits ARM-arkitekturen, ARMv8. Den innebär att ARM på allvar tar steget upp till server-världen, men också att dator- och telefontillverkare inser att det finns gott om svängrum. Den som vill utveckla en 64-bits handdator kan göra det.
Men ännu intressantare är nog ändå att ARM har fått sin idé om en heterogen datormodell att fungera på allvar. En ny mycket strömsnål Cortex-A7-kärna har fått samma virtualisering och adressering som den stora Cortex-A15-kärnan. Kombinationen av de två gör det möjligt att få energiförbrukningen att variera närmast linjärt, från en mycket låg nivå. Det är något som stått på telefon- och datortillverkarnas önskelista länge.
Om man dessutom kastar in flera sådana här processorkombinationer blir arbetsområdet ännu större. En kombination av till exempel två A-15-kärnor och två A-7-kärnor passar för en mycket avancerad smart telefon eller en snabb handdator. Med ännu fler processorer blir prestanda förstås högre. Och i framtiden lär vi få se kombinationer med den nya 64-bits processorkärnan och lågeffektsprocessorer. ARM kallar kombinationen av A-15 och A-7 för big.LITTLE. Det står för ”stor hund/liten hund” och A-7-processorn kallas också ofta för ”little dog”.

Strömförbrukning
Alla olika varianter av processorkärnorna ställer förstås till problem för verktygs- och mjukvarutillverkarna. Att hålla ordning på heterogena kärnor är till exempel en utmaning och en ny processortillverkare skulle nog ha fantastiskt svårt att skapa en tillräcklig infrastruktur.


ARM Cortex-M0+-kärnan kan vara så liten som 0,01 mm² i en 40 nm-process.

Men för ARM är problemet löst. Arkitekturen finns i nästan alla moderna mobiltelefoner och volymerna är fantastiska. Det innebär att i stort sett alla verktygs- och mjukvarutillverkare ser till att ha full support för ARM. Något annat är helt enkelt inte möjligt.
ARM-världen är dessutom oerhört starkt inriktad på låg energiförbrukning och det innebär att man accepterar lite extra mjukvaruproblem. Mobiltelefonföretagens krav på höga prestanda, extremt låg energiförbrukning och mycket lågt pris har varit en svår nöt att knäcka, men idag är det svårt att se hur någon skall kunna hota ARM på sin kärnmarknad. Då är det betydligt lättare att se ARM hota andra, både uppåt och nedåt.

Hotar x86?
Att ARM är betydligt starkare på konstruktionssidan än i dagens befintliga elektronikprodukter innebär rimligen att ARM-tillväxten fortsätter. Hittills har den tillväxten mest skett på bekostnad av andra processorarkitekturer än x86, men nu går det knappast att hålla de två ”världarna” isär längre. ARM är på väg in i x86-lägret och x86 måste in i ARM-lägret.
Och den här gången är det Intel som tvingas slåss ur ett underläge. Det är svårt att hävda att x86-arkitekturen i grunden är effektivare, billigare eller mera strömsnål än ARM-arkitekturen. Intel kan/vill dessutom inte sälja x86 i IP-form (för ASIC/ASSP). Och vad värre är – på de nya marknader där Intel vill in är ARM betydligt bättre etablerad på mjukvarusidan. Mobiltelefonmjukvara skrivs i första hand för ARM.
För ARM-lägret är det betydligt lättare att glida in på områden som normalt sett är x86-dominerade. I de klassiska embeddedtillämpningarna blir det allt intressantare att kunna använda samma arkitektur från billiga ASIC/ASSP-lösningar och hela vägen upp till prestandamaskiner. Och Apples val av ARM för iPAD visar att x86 inte ”sitter säkert” på datorsidan heller.
För Intel handlar idag mycket om att ha den bästa processteknologin (t ex FinFET) och den bästa kopplingen mellan processorkonstruktion och processteknologi. På det sättet säger man sig kunna tillverka strömsnålare och effektivare processorer än om man tvingades konstruera på ett mera generellt sätt.


Implementeringsdata för ARM Cortex-M4.

Ett problem är bara att ”bagaget” i form av en ganska gammal processorarkitektur äter upp mycket av det man vinner på processidan. Det märktes i Atom-satsningen, där man inte kom ner i samma energiförbrukning som ARM-lösningarna. Efter flera år har Atom inte alls fått den marknadsposition som var tänkt. Den senaste Atom-versionen är visserligen bra mycket bättre än de tidigare, men frågan är om det inte är i senaste laget.
Intel har alltså en rad utmaningar framför sig. Android för x86 (Google/Intel) och Windows för ARM (Microsoft) innebär att ARM och x86 blir likställda på ett sätt som inte nödvändigtvis är till fördel för x86. Framför allt tvingas Intel in i ett priskrig som man hittills (delvis) sluppit.
För en tid sedan kom förresten  beskedet att ARM/Cadence/TSMC har lyckats att ta fram ett testchip i 20 nm av den nya Cortex-A15 MPCore-processorn. Det innebär inte att någon av de här tre företagen kommer att sälja processorer i konkurrens med Intel. Men det innebär att företag som Freescale, Apple och alla de andra kan konstruera snabba multicore-processorer som förmodligen mycket väl kan konkurrera med Intels värstingar. Det kan bli nog så intressant.
Göte Fagerfjäll

Comments are closed.