ARM-arkitektur

ARM - arkitekturen (tidligere Advanced RISC Machine, før Acorn RISC Machine), innen elektronikk og databehandling , indikerer en familie av 32 -biters og 64-biters RISC - mikroprosessorer utviklet av ARM Holdings og brukt i en rekke innebygde systemer . Takket være egenskapene til lavt strømforbruk, sammenlignet med ytelse, dominerer ARM-arkitekturen sektoren for mobile enheter der batterisparing er avgjørende.

I 2007 dekket ARM-familien 75 % av verdensmarkedet for 32-bits prosessorer for innebygde applikasjoner [1] , og posisjonerte seg som en av de mest populære 32-bits arkitekturene i verden. ARM-prosessorer brukes i mobiltelefoner , nettbrett , mediespillere, bærbare konsoller , PDAer og periferiutstyr til datamaskiner (som rutere , nettverksharddisker, etc.). Viktige grener av ARM-familien er XScale-prosessorene og OMAP-prosessorene , produsert av Texas Instruments .

Historie

ARM-prosjektet startet i 1983 i forsknings- og utviklingsseksjonen til Acorn Computers Ltd.

Teamet ledet av Sophie Wilson og Steve Furber siktet mot en bedre versjon av MOS Technology 6502 . Acorn brukte på den tiden MOS 6502 for sine datamaskiner, og ledere mente at bruk av interne prosessorer ville gi betydelige fordeler. Teamet fullførte utviklingen av prototypen, kalt ARM1 , i 1985 og den første virkelig produserte prosessoren, ARM2 , ble laget året etter. ARM2 var en prosessor med 32-bits databuss, 26-bits adressebuss, slik at den kunne adressere opptil 64 megabyte og 16/32 bits registre . Ett av registrene ble brukt til å definere justeringen av programtelleren siden de første 6 bitene og de siste 2 ble brukt som flagg av prosessoren for å spesifisere statusen. ARM2, med sine 30 000 transistorer var sannsynligvis den enkleste 32-bits prosessoren. Enklere enn Motorola 68000 som, til tross for å ha 68 000 transistorer, ga sammenlignbar ytelse. Prosessoren skyldte sin enkelhet på grunn av mangelen på mikrokode (i 68000 tok mikrokoden opp en fjerdedel av transistorene), og som de fleste CPU-er på den tiden, hadde den ingen cache . ARM3-etterfølgeren hadde i stedet 4KB cache for å forbedre ytelsen.

På slutten av 1980- tallet begynte Apple Computer å samarbeide med Acorn for å utvikle en ny versjon av ARM-kjernen. Prosjektet var så viktig at Acorn flyttet utviklingsteamet til et nytt selskap kalt Advanced RISC Machines Ltd .. Dette er grunnen til at ARM ofte utvides som Advanced RISC Machine i stedet for Acorn RISC Machine. Advanced RISC Machines ble ARM Ltd da morselskapet ARM Holdings ble børsnotert på London Stock Exchange og NASDAQ i 1998 .

Arbeidet til utviklingsteamet førte til realiseringen av ARM6 . Den første modellen ble produsert i 1991 og Apple brukte den ARM6-kjernebaserte ARM 610-prosessoren for Apple Newton . I 1994 brukte Acorn ARM610 som den sentrale prosessoren til sin RiscPC- datamaskin . Kjernen var nesten uendret fra den originale ARM2: mens ARM2 hadde 30.000 transistorer, hadde ARM6 35.000. Selskapets idé var å la OEM - er ta ARM-kjernen og kombinere den med ulike valgfrie komponenter for å oppnå en kostnadseffektiv komplett cpu med lav effekt, ettersom den var optimalisert for individuelle oppgaver. OEM-ene ville da få halvlederprodusenter til å produsere prosessoren på oppdrag.

Den mest vellykkede implementeringen er utvilsomt ARM7TDMI , brukt i bærbare konsoller, mobiltelefoner og diverse periferiutstyr, og produsert i hundrevis av millioner enheter.

DEC lisensierte ARM -arkitekturen, noe som forårsaket mye forvirring i markedet ettersom DEC selv hadde sin egen linje med DEC Alpha -prosessorer , og produserte StrongARM . Ved 233 MHz bruker prosessoren bare 1 Watt og nyere versjoner bruker enda mindre. Intel , i et forlik med DEC for et søksmål, kjøpte StrongARM-linjen og brukte den sammen med sin i960 -prosessor for å bygge XScale-linjen, som senere ble solgt under en restrukturering av selskapet.

Arkitekturen som vanligvis støttes av Windows Mobile og Android (operativsystemer installert på PDAer , smarttelefoner , nettbrett og andre bærbare enheter) er ARM6. XScale- og ARM926-prosessorene er basert på ARMv5TE mens StrongARMs, ARM925Ts og ARM7TDMIs er basert på ARM4.

Kjernene

Prosjektnotater

For å holde designet rent, enkelt og raskt har prosessoren ingen mikrokode, som MOS 6502-prosessoren som ble brukt i tidlige Acorn-datamaskiner.

ARM-arkitektur er en RISC-arkitektur som gir:

For å kompensere for den enkle designen sammenlignet med prosessorer fra samme tidsalder som Intel 80286 og Motorola 68020 , inkluderte prosessoren noen unike funksjoner som:

En av de mest interessante funksjonene til ARM-prosessorer er 4 ekstra biter som brukes til å lage betingede koder for hver instruksjon.

Disse kodene har redusert adressemulighetene siden prosessoren ikke har mange biter for å kunne spesifisere dem, men den store fordelen er at disse kodene gjør det mulig å unngå hopp ved enkle if. Et klassisk eksempel er i utførelsen av Euklids algoritme for å finne den største felles divisor (GCD) .

C-språk er koden:

int gcd ( int i , int j ) { mens ( i ! = j ) { hvis ( i > j ) i - = j ; / * i klassisk form i = ij; * / ellers j - = i ; / * i klassisk form j = ji; * / } returnere i ; }

I ARM -montering blir løkken:

løkker CMP Ri , Rj ; sett betingelsen "NE" hvis (i! = j) ; "GT" hvis (i> j) ,; eller "LT" hvis (i <j) SUBGT Ri , Ri , Rj ; hvis "GT", i = ij; SUBLT Rj , Rj , Ri ; hvis "LT", j = ji; BNE -løkke ; hvis "NE", så loop

Dette unngår grenene til then og av else.

En annen unik funksjon ved instruksjonssettet er muligheten til å skifte data under normale dataoperasjoner (aritmetikk, logikk og registerkopioperasjoner). For eksempel følgende C-kode

a += (j << 2);

den er oversatt til denne ene monteringsinstruksjonen som kjører i en enkelt sløyfe

ADD Ra, Ra, Rj, LSL #2

Disse funksjonene gjør ARM-programmer normalt tettere enn tilsvarende programmer for andre RISC-prosessorer. I tillegg gir prosessoren færre tilganger til minne og klarer å fylle rørledningene bedre. Derfor kan ARM CPUer bruke lavere frekvenser enn andre prosessorer mens de bruker mindre strøm for å utføre de samme oppgavene.

Videre har en ARM-prosessor andre funksjoner som sjelden sees i RISC-prosessorer, for eksempel PC-relatert adressering ( PC-en i ARMs er register R15), adressering før og etter inkrement.

Et merkelig trekk ved ARM-prosessorer er at instruksjonssettet vokser over tid. Tidlige ARM-prosessorer (før ARM7TDMI) hadde for eksempel ikke instruksjoner for å laste to-byte mengder. Og derfor var den ikke i stand til å håndtere korte typer direkte i C.

Tidlige prosessorer som ARM7s var basert på en 3-trinns pipeline design , hente, dekode og kjøre. Mer moderne prosessorer som ARM9 har byttet til 5-trinns rørledninger for å øke ytelsen. Andre endringer for å øke ytelsen inkluderer en rask adderer og hoppprediksjonssystem .

Tommel

De nyeste ARM-prosessorene kommer med et 16-bits instruksjonssett kalt Thumb som bruker fire byte for hver instruksjon. Tommelkode er lettere, men har mindre funksjonalitet. For eksempel kan bare hopp betinges og noen opkoder kan ikke brukes av alle instruksjoner. Til tross for disse begrensningene gir Thumb bedre ytelse enn hele instruksjonssettet for systemer med begrenset båndbredde. Mange innebygde systemer har en begrenset minnebuss, og selv om prosessoren kan adressere 32-bit, 16-bit eller lignende, brukes ofte adressering – et populært eksempel er Game Boy Advance . I disse situasjonene er det verdt å lage Thumb-kode for det meste av programmet og å optimalisere delene av koden som krever mye datakraft ved å bruke det komplette instruksjonssettet.

Den første prosessoren utstyrt med Thumb var ARM7TDMI. Alle ARM9 og senere familier (inkludert XScale) er utstyrt med Thumb.

Jazelle

ARM har implementert teknologien [2] i noen prosessorer for å tillate prosessoren å kjøre Java - bytekoden . Denne teknologien er interoperabel med standard ARM- og Thumb-kode.

Den første prosessoren utstyrt med Jazelle var ARM926J-S , Jazelle-teknologien ble understreket av J i akronymet. Prosessoren brukes på mobiltelefoner for å få fart på gjennomføringen av Java ME -spill og -applikasjoner. Ideen om å lette utføringen av Java-kode for disse applikasjonene fikk sannsynligvis ARM til å utvikle denne teknologien.

Tommel-2

Thumb-2- teknologien gjorde sin debut i ARM1156-kjernen , introdusert i 2003. Thumb-2 utvider de begrensede 16-bits instruksjonene med ytterligere 32-bits instruksjoner for å gi mer kraft til prosessoren. Thumb 2-teknologi gir kode med tetthet (og derfor båndbreddeopptak) som ligner på Thumb-kode, men med ytelse nærmere 32-biters ARM.

Thumb-2 utvider også ARM- og Thumb-instruksjonene med nye instruksjoner som tillater manipulering av enkeltbiter, betinget utførelse og administrasjon av tabeller med hopp.

Thumb-2EE

Thumb-2EE , solgt som JazelleRCT [3] , er en teknologi kunngjort i 2005 som først ble implementert i Cortex-A8- prosessoren . Thumb-2EE er en utvidelse av Thumb-2-instruksjonene, spesielt designet for å håndtere kode generert i sanntid, for eksempel når du utfører just-in-time kompilert kode . Thumb 2EE-teknologien er designet for språk som Java , C # , Perl og python for å generere kompilert kode med reduserte dimensjoner uten å påvirke ytelsen.

De nye instruksjonene som følger med lar deg automatisk sjekke null-pekere før hver lasting eller lagring, lar deg administrere det mulige gjennombruddet av arrayene , administrasjon av grener og mange andre funksjoner levert av høynivåspråk, som minneforekomsten for nye ting.

NEON

NEON - teknologi er en kombinasjon av 64 og 128 bit SIMD (Single Instruction Multiple Data) instruksjoner for å akselerere og standardisere håndtering og behandling av multimediasignaler. NEON lar deg utføre MP3-dekoding med en 10 Megahertz CPU og lar deg kjøre GSM AMR (Adaptive Multi-Rate) kodeken med en 13 Megahertz CPU. Teknologien hviler på et separat instruksjonssett, uavhengige registre og separat kodeutførelse. NEON administrerer 8/16/32/64 bits heltall, enkeltpresisjonsdata og flyttallsdata. SIMD-teknologi er avgjørende for å utføre vektoroperasjoner, operasjoner som behandler mye data med samme program. NEON lar deg administrere opptil 16 operasjoner samtidig.

VFP

VFP - teknologi er en utvidelse av ARM-arkitekturen som gir en matematisk koprosessor. Teknologien ble laget for å gi operasjoner som er i stand til å behandle enkelt- og dobbelpresisjonsflytpunktdata på en økonomisk måte og fullt kompatibel med ANSI/IEEE Std 754-1985-standarden for binær flytepunktaritmetikk . VFP gir instruksjoner for applikasjoner som komprimering, dekompresjon, tredimensjonal grafikk, lydanalyse og mer. Denne utvidelsen er nyttig for enheter som PDAer, smarttelefoner, set-top-bokser og automatiserings- og kontrollapplikasjoner. VFP-teknologi håndterer også korte databærere med SIMD-teknologi.

ARM-lisenser

ARM Ltd produserer faktisk ikke CPU-ene sine og selger ikke enheter basert på CPU-ene. ARM Ltd lisensierer andre selskaper muligheten til å lage CPUer basert på ARM-kjerner. ARM tilbyr en serie lisenser som varierer avhengig av prosessor, tilpasninger og antall produserte deler. Alle ARM-lisenser inkluderer en maskinvarebeskrivelse av kjernene og det komplette settet med utviklingsverktøy for å bygge programvare for prosessorene. Selskapene, etter å ha kjøpt lisensen fra ARM, henvender seg til et silisiumstøperi som fysisk bygger prosessoren basert på beskrivelsen gitt av ARM. Hvis kjøperen ber om det, leverer ARM også CPU-maskinvaresimulatorer slik at kjøperen kan modifisere CPUen ved å legge til funksjonalitet og deretter teste dens faktiske funksjonalitet uten å måtte bygge brikken fysisk. Noen kjøpere kjøper direkte verilog -beskrivelsen av prosessorene for å optimere selv den enkelt kjernen ved å forbedre ytelsen eller redusere forbruket for spesielle bruksområder. Et eget tilfelle er silisiumstøperiene: de kan gjøre modifikasjoner for én kunde og de samme modifikasjonene kan selges til andre kunder.

Som andre selskaper, selger ARM lisenser basert på deres oppfattede verdi. Langsomme kjerner selges til en lavere pris enn mer moderne og raskere kjerner. Videre har optimaliserte versjoner høyere kostnader enn versjoner laget ved å sette sammen ferdige blokker. Situasjonen kompliseres ytterligere av tilstedeværelsen av støperier som videreselger reduserte versjoner av ARM-lisensene (for eksempel Samsung og Fujitsu), som har tatt grunnleggende kjerner og tilpasset dem for å forbedre ytelsen. Sammenlignet med støperier som jobber med dedikerte prosjekter og derfor laget eksplisitt, tilbyr disse støperiene priser 2 eller 3 ganger lavere med ofte akseptabel ytelse. Ved lave kjøpsvolumer er det vanligvis lurt å kontakte støperiene for lisenser, mens ved høye salgsvolumer er det lurt å kontakte ARM direkte for en spesifikk lisens og deretter kontakte dedikerte støperier som kun fungerer for kunden og ikke liker. Samsung eller Fujitsu som jobber for flere kunder samtidig, kan ikke følge produktet på samme måte.

Store halvledergrupper er lisensiert under ARM. Blant dem: Atmel , Broadcom , Cirrus Logic , Freescale (et spin-off- selskap av Motorola siden 2003), Fujitsu , Intel (gjennom en avtale med DEC ), IBM , Infineon Technologies , Nintendo , OKI , Philips , Samsung , Sharp , STMicroelectronics , Texas Instruments og VLSI . Lisensavtalene er regulert av taushetspliktklausuler slik at kostnadene for ARM-kjernene ikke er kjent med sikkerhet selv om det er kjent at de er blant de dyreste kjernene på markedet med samme ytelse. En enkelt ARM-lisens for et produkt med en ARM-prosessor kan koste opptil $200 000. For store mengder og betydelige arkitektoniske endringer kan lisenskostnaden overstige 10 millioner dollar.

Merknader

  1. ^ Arkivert kopi ( PDF ), på arm.com . Hentet 17. desember 2007 (arkivert fra originalen 3. desember 2007) .
  2. ^ Jazelle arkivert 23. februar 2009 på Internet Archive .
  3. ^ Jazelle RCT

Relaterte elementer

Andre prosjekter

Eksterne lenker