Hvordan ARM tok verden - og vant
NyheterSå lenge de fleste av oss bryr oss om å huske, har kampen for det vanlige prosessormarkedet blitt kjempet mellom to hovedpersoner, Intel og AMD, mens halvlederproducenter som Sun og IBM tradisjonelt konsentrert seg om de mer spesialiserte Unix-server- og arbeidsstasjonsmarkeder.
Ubemerket til mange, et annet selskap har steget til et punkt med dominans, med salg av chips basert på teknologien som langt overgår de av Intel og AMD kombinert.
Det banebrytende selskapet er ARM Holdings, og mens det ikke er et navn som er på alles lepper på samme måte som de "store to" er, tyder indikasjoner på at dette selskapet vil fortsette å gå fra styrke til styrke.
Her legger vi ARM i rampelyset, undersøker fortid og arv, men enda viktigere, ser også på fremtiden for denne uheldige helten av mikroelektronikkrevolusjonen.
Mens det meste av halvlederindustrien er og alltid har vært basert i Californias Silicon Valley, gjør det en forfriskende forandring som ARMs hovedkvarter er her i Storbritannia i det såkalte Silicon Fen-området rundt Cambridge.
Til tross for at ARM ikke er et husstandsnavn, er selskapet ikke Johnny-come-lately. Faktisk, hvis vi sporer ARM tilbake til sine røtter, finner vi et selskap som var en stor styrke i den personlige databehandlingsboomen i de tidlige 80-tallet.
Tilbake i 1980 var IBM PC fortsatt i utvikling, og de personlige datamaskinene som eksisterte var enormt kostbare, og kostet tilsvarende flere tusen pounds i dagens termer. Storbritannia hadde nettopp lagt merke til personlig databehandling med lanseringen av Sinclair ZX80. Dette var den første datamaskinen som skulle selges for mindre enn £ 100 - noe som hjalp Storbritannia til å lede verden i eierskap av eierskap gjennom hele 1980-tallet.
En av de mest innflytelsesrike selskapene å følge i Sinclairs fotspor var Acorn Computers. Bare et år senere tok Acorn ut BBC Micro, som fant veien inn i omtrent enhver skole i Storbritannia, og fortsatte å selge om en og en halv million enheter.
Acorns etterfølger til BBC Micro, Archimedes, var ikke nesten like vellykket som en datamaskin, men var langt mer innflytelsesrik på grunn av Acorns valg av prosessor. Mens BBC Micro brukte en 8-biters 6502 fra MOS Technology, bestemte Archimedes Acorn seg for å designe sin egen høy ytelse 32-bit RISC (redusert instruksjonssett datamaskin) chip, som den kalte en Acorn RISC Machine eller ARM prosessor.
I 1990, i et joint venture med Apple og VLSI Technology (et selskap som designet og produsert egendefinerte og semi-tilpassede chips), strekker Acorn seg fra sin forskningsavdeling som et eget selskap som heter Advanced RISC Machines. I løpet av tiden vil dette offshoot utvikle seg til ARM Holdings vi kjenner i dag.
RISC-filosofien
Etter å ha brukt begrepet RISC for å beskrive ARM-brikken som drev Archimedes, og fordi samme tag kan brukes på dagens ARM-teknologi, er det fornuftig å begynne å undersøke denne tilnærmingen til utformingen av en mikroprosessor. For å gjøre det, må vi begynne med en kort historieleksjon.
Tidlige 8-bits mikroprosessorer som Intel 8080 eller Motorola 6800 hadde bare noen få enkle instruksjoner. De hadde ikke en instruksjon til å formere to heltall tall, for eksempel, slik at dette måtte gjøres ved hjelp av lange programvarerutiner som involverer flere skift og tillegg.
Å jobbe med troen på at maskinvaren var rask, men programvaren var treg, og etterfølgende mikroprosessorutvikling involverte prosessorer flere instruksjoner for å utføre stadig mer kompliserte funksjoner. Kalt CISC (komplisert instruksjonssett datamaskin) tilnærming, dette var filosofien som Intel vedtok, og som mer eller mindre fortsatt følger av dagens nyeste Core i7-prosessorer.
Denne overgangen til stadig mer kompliserte instruksjoner kom til en pris. Selv om de første mikroprosessorene kunne utføre de fleste av sine instruksjoner i bare en håndfull klokkesykler, da prosessorer ble mer kompliserte, var det nødvendig med betydelig flere klokkeslett.
I begynnelsen av 1980-tallet ble det oppfattet en radikalt annen filosofi som heter RISC (redusert instruksjonssett-datamaskin). Ifølge denne modellen av databehandling vil prosessorer bare ha noen få enkle instruksjoner, men som følge av denne enkelheten vil disse instruksjonene være super-raske, de fleste av dem utfører i en enkelt klokke syklus. Så mens mye mer av arbeidet måtte gjøres i programvaren, kunne en samlet gevinst i ytelse oppnås.
Mange RISC-baserte prosessorfamilier vedtok denne tilnærmingen og viste imponerende ytelse i deres niseprogrammering av Unix-baserte servere og engineering arbeidsstasjoner. Noen av disse familiene er nå langt borte, men det faktum at flere - inkludert IBMs POWER, Suns SPARC og, selvfølgelig ARM - gir x86-arkitekturen et løp for pengene sine, antyder at mindre kan faktisk være mer.
Vi snakker virkelig om en minimalistisk tilnærming her. I en klassisk RISC-design utføres alle aritmetiske og logiske operasjoner på data lagret i prosessorens interne registre. De eneste instruksjonene som gir tilgang til minne er en belastningsinstruksjon, som skriver en verdi fra minnet til et prosessorregister, og butikkinstruksjonen som gjør det motsatte.
Et enkelt eksempel vil illustrere hvordan dette resulterer i flere instruksjoner som må utføres. Hvis du noen gang har prøvd hånden din på programmering ved hjelp av et språk på høyt nivå som BASIC, har du sikkert skrevet en instruksjon som A = B + C som legger sammen verdiene i variabler (minnesteder) A og B, og skriver Resultatet til en annen variabel kalt C.
Med en CISC-prosessor, vil denne instruksjonen bli tre som vist i følgende eksempel, som er for en typisk prosessor:
LAST A
Legg til B
Lagre c
I dette eksemplet skriver LOAD-instruksjonen verdien fra minneplass A til prosessorens akkumulator (et spesielt register som brukes til aritmetiske og logiske operasjoner), ADD-instruksjonen legger verdien fra minnestilling B til verdien i akkumulatoren, og STORE instruksjon skriver verdien fra akkumulatoren til minnestedet C.
I en RISC-prosessor vil følgende instruksjoner være nødvendig. Det er viktig å merke seg at en RISC-prosessor har flere registre, ikke bare akkumulatoren, så disse må spesifikt henvises til (som R1 og R2 for eksempel) i instruksjonene.
LAST A, R1
LAST B, R2
Legg til R1, R2
Lagre R2, C
Arkitekturutvikling
Fordi dagens ARM-prosessorer og kjerner (vi skiller mellom disse to begrepene senere) er direkte etterkommere av den originale ARM-brikken som ble designet for Acorns Archimedes tilbake i 1987, blir de referert til som ARM-arkitektur enheter.
Dette ligner dagens Intel- og AMD-chips, som vokste ut av Intel 8086 og dets etterfølgere, og er derfor beskrevet som overholdelse av x86-arkitekturen. Her ser vi på hva som var unikt om ARM-arkitekturen da det viste seg for 25 år siden, hvordan det har utviklet seg gjennom årene, hvorfor denne evolusjonen ikke har parallell med den av arkitekturen, og hva som fortsatt er særegent om det i dag.
De som har fulgt utviklingen av PCen gjennom årene, vil uten tvil være kjent med konseptet av prosessorgenerasjoner innenfor x86-arkitekturen. I de senere år har delelinjene blitt noe mindre tydelig, men i de tidlige dager så vi den første generasjonen 8086 (eller 8088) vei til 80286 og deretter til 80386, 80486, Pentium og så videre.
Det samme gjelder ARM-arkitekturen, men med en viktig forskjell. I rike til x86 har nye generasjoner ved en rekke anledninger vært assosiert med innføringen av en ny overskriftsfigur for bredden på datapassene - noe som har betydelig innvirkning på ytelsen.
Så x86-arkitekturen ble lansert med 16-bits 8086, og den etterfølgende utviklingen har brakt oss 32 bits og til slutt den 64-biters arkitekturen vi nyter i dag. I kontrast til dette, gjorde ARM-arkitekturen sin debut på 32 biter, og har ennå ikke gjort overgangen til 64 biter.
Men det bør ikke tolkes som mangel på innovasjon, som noen få fakta og tall vil avsløre.
Den første ARM-prosessoren så dagens lys i 1985, og mens den aldri ble brukt kommersielt, var ARM 2 som fulgte den, og som drev den første Archimedes PC, ikke altfor annerledes. Selv om den var basert på en 32-bits arkitektur, hadde den en 26-biters adressebuss, noe som medførte at den kunne adressere 64 MB minne. Selv om det ikke var mye i dagens standarder, var dette en stor mengde i midten av 80-tallet.
Klokkefrekvensen på 8MHz høres også frem som en fotgjenger, selv om den som et resultat av RISC-designen kunne gi en hastighet på 4 MIPS (millioner instruksjoner per sekund). For å sette dette inn i en kontekst, Intel 80386, som dukket opp på scenen et år senere, var bare en snakk raskere på 5 MIPS, men for å oppnå dette måtte det bli klokket på 16MHz.
Men for å se fremskrittene som ARM-arkitekturen har hatt i et kvart århundre med utvikling, må vi virkelig trekke noen sammenligninger med dagens tilbud.
Med hensyn til rå ytelse er dagens toppkjernen Cortex-A15, som er basert på den syvende generasjonsarkitekturen, kjent som ARMv7. Selv om klokkehastigheten avhenger av produsenten (ARM Holdings selv produserer ikke noe silisium), betraktes en figur på 2,5 GHz som et sannsynlig tak, og med denne hastigheten ville det klare en ytelse på rundt 35 000 MIPS.
Selv om dette ikke kommer nær den nyeste Intel Core i7, sammenligner vi ikke med like. Når det uttrykkes som MIPS per kjerne per MHz, selv om det fortsatt ikke overtar Core i7, kommer Cortex-A15 nærmere - men selv dette mangler poenget.
Indikasjoner er at Cortex-A15 vil forbruke mindre enn en watt per kjerne sammenlignet med tiere watt per kjerne for Core i7. I denne forbindelse kommer det nærmere Intel Atom, men med mye større ytelse.