ARM , tidligere Advanced RISC Machine , opprinnelig Acorn RISC Machines , er en 32-bits RISC - arkitektur ( Reduced Instruction Set Computer ) og, med ankomsten av sin V8-A-versjon, også 64-bit , utviklet av Arm Holdings . ARM-arkitekturen er det mest brukte 32-bits og 64-bits instruksjonssettet i produserte stasjoner. [ 1 ] [ 2 ] Opprinnelig unnfanget av Acorn Computers for bruk ipersonlige datamaskiner , de første ARM-baserte produktene var Acorn Archimedes , utgitt i 1987.
En RISC-basert designtilnærming lar ARM-prosessorer kreve færre transistorer enn x86 CISC-prosessorene som er typiske for de fleste personlige datamaskiner. Denne designtilnærmingen fører derfor til en reduksjon i kostnader, varme og energi. Disse funksjonene er ønskelige for batteridrevne enheter som mobiltelefoner, nettbrett osv.
Den relative enkelheten til ARM-prosessorer gjør dem ideelle for applikasjoner med lav effekt. Som et resultat har de blitt dominerende i markedet for mobil og innebygd elektronikk, nedfelt i små, laveffekts, relativt rimelige mikroprosessorer og mikrokontrollere . I 2005 brukte omtrent 98 % av de mer enn én milliard solgte mobiltelefonene minst én ARM-prosessor. [ 3 ] Fra og med 2009 er ARM-prosessorer omtrent 90 % av alle innebygde 32-biters RISC-prosessorer. Det bør nevnes at det ikke er noen tabell over ytelsesekvivalenser mellom de forskjellige prosessorteknologiene [ 4 ] som vanligvis brukes i forbrukerelektronikk, inkludert PDAer , nettbrett , mobiltelefoner , smarttelefoner , smartklokker , bærbare spillkonsoller , kalkulatorer , digitale mediespillere (bilder, videoer osv.), og periferiutstyr til datamaskiner som harddisker og rutere .
ARM-arkitekturen er lisensiert. Dette betyr at hovedvirksomheten til ARM Holdings er salg av IP-kjerner (intellektuell eiendom), disse lisensene brukes til å lage mikrokontrollere og CPUer basert på denne kjernen. Selskaper som er nåværende eller tidligere ARM-lisensinnehavere inkluderer Alcatel-Lucent , Apple Inc. , AppliedMicro, Atmel , Broadcom , Cirrus Logic , Digital Equipment Corporation , Ember, Energy Micro, Freescale , Intel (via DEC ), LG , Marvell Technology Group , Microsemi, Microsoft , NEC , Nintendo , Nokia, Nuvoton, Nvidia , Sony , MediaTek , NXP (tidligere Philips Semiconductors), Oki, ON Semiconductor, Psion, Qualcomm , Samsung , Sharp , STMicroelectronics , Symbios Logic , Texas Instruments , Yamaha , VLSI , og ZiiLABS.
ARM-prosessorer er utviklet av ARM og ARM-lisenshaverne. Fremtredende familier av ARM-prosessorer utviklet av ARM Holdings inkluderer ARM7, ARM9 V8-A, ARM11 og Cortex . ARM-prosessorer utviklet av lisensieringsfirmaer inkluderer Applied Micro Circuits Corporation X-Gene, DEC StrongARM , Freescale i.MX, Marvell Technology Group XScale , NVIDIA Tegra , Qualcomm Snapdragon , Texas Instruments OMAP , Samsung Exynos , Apple Axe , ST-Ericsson NovaThor , Huawei K3V2 og Intel Medfield .
Design av ARM-arkitekturen begynte i 1983 som et utviklingsprosjekt av selskapet Acorn Computers . Sophie Wilson og Steve Furber ledet teamet, hvis mål opprinnelig var å utvikle en avansert prosessor, men med en arkitektur som ligner på MOS 6502 . Årsaken var at Acorn hadde en lang rekke personlige datamaskiner basert på en slik mikroprosessor, så det var fornuftig å utvikle en som utviklerne ville være komfortable med.
Teamet fullførte den foreløpige designen og de tidlige prototypene av prosessoren i 1985 , som de kalte ARM1. Den første kommersielt brukte versjonen fikk navnet ARM2 og ble utgitt i 1986 .
ARM2-arkitekturen har en 32 - bits databuss og tilbyr et 26-bits adresserom, sammen med 16 32-bits registre. Ett av disse registrene brukes som en programteller, og bruker sine 4 øvre og 2 nedre biter for å inneholde prosessorstatusflaggene.
ARM2 er sannsynligvis den enkleste brukbare 32-bits prosessoren i verden, med bare 30 000 transistorer . Dens enkelhet skyldes det faktum at den ikke er basert på mikrokode (et system som vanligvis opptar rundt en fjerdedel av det totale antallet transistorer som brukes i en prosessor), og at det, som det var vanlig på den tiden, ikke inkluderer cache . Takket være dette er strømforbruket ganske lavt, samtidig som det gir bedre ytelse enn en 286 . Dens etterfølger, ARM3, inkluderer et lite 4 KB cache-minne , som forbedrer gjentatte minnetilganger.
På slutten av 1980-tallet begynte Apple Computer å jobbe med Acorn på nye versjoner av ARM-kjernen. Hos Acorn skjønte de at det faktum at en prosessorprodusent også var en datamaskinprodusent kunne skremme kunder, så det ble besluttet å opprette et nytt selskap kalt Advanced RISC Machines , som skulle stå for design og administrasjon av nye generasjoner av ARM-prosessorer. Dette skjedde i 1990 .
Dette arbeidet førte til ARM6, introdusert i 1991 . Apple brukte ARM 610 (basert på ARM6), som den grunnleggende prosessoren for sin innovative PDA , Apple Newton . På sin side brukte Acorn den i 1994 som hovedprosessor i RiscPC .
Kjernen beholdt sin enkelhet til tross for endringene: i realiteten har ARM2 30 000 transistorer, mens ARM6 bare har 35 000. Tanken var at sluttbrukeren skulle kombinere ARM-kjernen med et valgfritt antall innebygde periferiutstyr og andre elementer, som i stand til å lage en komplett prosessor tilpasset dine behov.
Den største bruken av ARM-teknologi ble oppnådd med ARM7TDMI-prosessoren, med millioner av enheter i mobiltelefoner og håndholdte videospillsystemer .
DEC lisensierte designet, noe som forårsaket en del forvirring siden de allerede produserte DEC Alpha , og laget StrongARM . Klokket til 233 MHz forbrukte denne prosessoren bare 1 W strøm (dette strømforbruket er redusert i nyere versjoner). Denne teknologien gikk senere over i hendene på Intel , som et resultat av en juridisk avtale, som integrerte den i sin serie med Intel i960 -prosessorer og gjorde konkurransen vanskeligere.
Freescale (en 2004 -spin- off fra Motorola ), IBM , Infineon Technologies , OKI , Texas Instruments , Nintendo , Philips , VLSI , Atmel , Sharp , Samsung og STMicroelectronics lisensierte også den grunnleggende utformingen av ARM.
ARM-designen har blitt en av de mest brukte i verden, fra harddisker til leker. I dag har omtrent 75 % av 32-bits prosessorer denne brikken i kjernen.
Familie | Arkitektur versjon | Cellekjernen | Karakteristisk | Cache (L/R)/ MMU | Effektiv MIPS @ MHz | Bruksområder |
---|---|---|---|---|---|---|
ARM1 | ARMv1 (avviklet) | ARM1 | Null | ARM Evaluation System andre prosessor for BBC Micro | ||
ARM2 | ARMv2 (avviklet) | ARM2 | Lagt til MUL (multiplisere) instruksjon | Null | 4 MIPS @ 8 MHz 0,33 DMIPS /MHz |
Acorn Archimedes , sjakkmaskin |
ARMv2a (avviklet) | ARM250 | Integrert MEMC (MMU), grafikk og I/O-prosessor. Lagt til SWP og SWPB (swap) instruksjoner. | Null, MEMC1a | 7MIPS ved 12MHz | Acorn Archimedes | |
ARM3 | ARMv2a (avviklet) | ARM2a | Første integrering av et cache-minne i en ARM. | Samlet 4K | 12 MIPS @ 25 MHz 0,50 DMIPS/MHz |
Acorn Archimedes |
ARM6 | ARMv3 (avviklet) | ARM60 | 32-biters minneadressestøtte (mot 26-biters) | Null | 10 MIPS @ 12 MHz | 3DO Interactive Multiplayer , Zarlink GPS-mottaker |
ARM600 | Som ARM60, cache og en cooprosessor-buss (for FPA10-flytpunkt-enheten). | Samlet 4K | 28 MIPS @ 33 MHz | |||
ARM610 | Som ARM60, cache, ingen koprosessorbuss. | Samlet 4K | 17 MIPS @ 20 MHz 0,65 DMIPS/MHz |
Acorn Risc PC 600 , Apple Newton 100-serien | ||
ARM7 | ARMv3 (avviklet) | ARM700 | 8 KB samlet | 40 MHz | Acorn Risc PC prototype CPU-kort | |
ARM710 | Som ARM700 | 8 KB samlet | 40 MHz | Acorn Risk PC 700 | ||
ARM710a | Som ARM700 | 8 KB samlet | 40 MHz 0,68 DMIPS/ MHz |
Acorn Risc PC 700 , Apple eMate 300 | ||
ARM7100 | Som ARM710a, integrert SoC . | 8 KB samlet | 18MHz | Psion Series 5 | ||
ARM7500 | Som ARM710a, integrert SoC. | 4KB samlet | 40 MHz | Acorn A7000 | ||
ARM7500FE | ARM7500, "FE" la til en FPA og en EDO minnekontroller. | 4KB samlet | 56 MHz 0,73 DMIPS/ MHz |
Acorn A7000+ nettverksdatamaskin | ||
ARM7TDMI | ARMv4T | ARM7TDMI(-S) | 3-trinns segmentering, tommel | null | 15 MIPS @ 16,8 MHz 63 DMIPS @ 70 MHz |
Game Boy Advance , Nintendo DS , Apple iPod , Lego NXT , Atmel AT91SAM 7, Juice Box , NXP Semiconductors LPC2000 og LH754xx , Actels CoreMP7 arkivert 2011-07-18 på Wayback Machine . |
ARM710T | ARM7TDMI, cache | 8 KB samlet, MMU | 36 MIPS @ 40 MHz | Psion Series 5mx , Psion Revo /Revo Plus/Diamond Mako | ||
ARM720T | ARM7TDMI, cache | Samlet 8 KB, MMU med FCSE | 60MIPS@59,8MHz | Zipit Wireless Messenger , NXP Semiconductors LH7952x | ||
ARM740T | ARM7TDMI, cache | MPU | ||||
ARMv5TEJ | ARM7EJ-S | 5-trinns rørledning, tommelen, Jazelle DBX, DSP instruksjonsforbedring | null | |||
Sterk arm | ARMv4 | SA-110 | 16KB/16KB, MMU | 203 MHz 1,0 DMIPS/ MHz |
Apple Newton 2x00-serien, Acorn Risc PC , Rebel/Corel Netwinder, Chalice CATS | |
SA-1100 | SA-110, integrert SoC | 16KB/8KB, MMU | 203MHz | Psion netBook | ||
SA-1110 | SA-110, integrert SoC | 16KB/8KB, MMU | 206MHz | LART (datamaskin) , Intel Assabet, Ipaq H36x0, Balloon2 , Zaurus SL-5x00, HP Jornada 7xx, Jornada 560 series , Palm Zire 31 | ||
ARM8 | ARMv4 | ARM810 [ 5 ] | 5-fase segmentering, statisk hopp forkjærlighet, dobbel båndbredde minne | 8 KB samlet, MMU | 84 MIPS @ 72 MHz 1,16 DMIPS/MHz |
Acorn Risc PC prototype CPU-kort |
ARM9TDMI | ARMv4T | ARM9TDMI | 5-trinns segmentering, tommel | null | ||
ARM920T | ARM9TDMI, cache | 16KB/16KB, MMU med FCSE (Fast Context Switch Extension) [ 6 ] | 200 MIPS @ 180 MHz | Armadillo , Atmel AT91SAM 9, GP32 , GP2X (første kjerne), Tapwave Zodiac ( Motorola i. MX1), Hewlett-Packard HP-49/50 Kalkulatorer , Sun SPOT , Cirrus Logic EP9302, EP9307, EP93312, Samsung EP9315 , EP9312, HTC TyTN , FIC Neo FreeRunner [ 7 ] , Samsung S3C2410 ( TomTom Navigation Devices ) [ 8 ] | ||
ARM922T | ARM9TDMI, cacher | 8KB/8KB, MMU | NXP Semiconductors LH7A40x | |||
ARM940T | ARM9TDMI, cacher | 4KB/4KB, MPU | GP2X (andre kjerne), Meizu M6 Mini Player [ 9 ] [ 10 ] | |||
ARM9E | ARMv5TE | ARM946E-S | Tommel, DSP-instruksjonsforbedring, cache | variabler, tett koblet minne, MPU | Nintendo DS , Nokia N-Gage , Canon PowerShot A470 , Canon EOS 5D Mark II , [ 11 ] Conexant 802.11-brikker, Samsung S5L2010 | |
ARM966E-S | Tommel, DSP-instruksjonsforbedring | ingen cache, TCM-er | ST Micro STR91xF, integrerer Ethernet [ 12 ] | |||
ARM968E-S | ARM966E-S | ingen cache, TCM-er | NXP Semiconductors LPC2900 | |||
ARMv5TEJ | ARM926EJ-S | Thumb, Jazelle DBX, DSP Instruction Enhancement | variabler, TCM-er, MMU-er | 220MIPS ved 200MHz, | Mobiltelefoner: Sony Ericsson (K, W-serien); Siemens og Benq (x65-serien og senere); LG Arena ; Texas Instruments OMAP1710 , OMAP1610 , OMAP1611 , OMAP1612 , OMAP-L137 , OMAP-L138 ; Qualcomm MSM6100, MSM6125, MSM6225, MSM6245, MSM6250, MSM6255A, MSM6260, MSM6275, MSM6280, MSM6300, MSM6500, MSM6800; Freescale i.MX21 , i.MX27, Atmel AT91SAM 9, NXP Semiconductors LPC3000 , GPH Wiz, NEC C10046F5-211-PN2-A SoC – kjerne på ATi Hollywood GPU brukt i Wii, [ 13 ] brukt i Samsung S3 Duettens kontroller. SqueezeboxRadio ; NeoMagic MiMagic Family MM6, MM6+, MM8, MTV; Buffalo TeraStation Live ( NAS ); TCC7801, TCC7901 brikkesett; ZiiLABS ' ZMS-05 SoC; Western Digital MyBook "I World Edition"; Bergbrikke RK2806 og RK2808 . | |
ARMv5TE | ARM996HS | Prosessor uten klokke, for eksempel ARM966E-S | ingen cacher, TCM, MPU | |||
ARM10E | ARMv5TE | ARM1020E | 6-fase rørledning, tommelfinger, DSP Instruction Enhancement, (VFP) | 32KB/32KB, MMU | ||
ARM1022E | ARM1020E | 16KB/16KB, MMU | ||||
ARMv5TEJ | ARM1026EJ-S | Thumb, Jazelle DBX, DSP Instruction Enhancement, (VFP) | variabel, MMU eller MPU | Western Digital MyBook "II World Edition"; Conexant so4610 og so4615 ADSL SoC | ||
XScale | ARMv5TE | 80200/IOP310/IOP315 | I/O-prosessor, tommel, DSP-instruksjonsforbedring | |||
80219 | 400/600MHz | Thecus N2100 | ||||
IOP321 | 600 BogoMips @ 600MHz | Iyonix | ||||
IOP33x | ||||||
IOP34x | 1–2 kjerner, RAID-akselerator | 32K/32K L1, 512K L2, MMU | ||||
PXA210/PXA250 | Applikasjonsbehandler, 7-fasesegmentering | PXA210: 133 og 200 MHz, PXA250: 200, 300 og 400 MHz | Zaurus SL-5600, iPAQ H3900, Sony CLIÉ NX60, NX70V, NZ90 | |||
PXA255 | 32KB/32KB, MMU | 400 BogoMips @ 400MHz; 371–533 MIPS @ 400 MHz [ 14 ] | Gumstix basix & connex , Palm Tungsten E2, Zaurus SL-C860, Mentor Ranger & Stryder , iRex ILiad | |||
PXA263 | 200, 300 og 400 MHz | Sony CLIÉ NX73V, NX80V | ||||
PXA26x | standard 400MHz, mer enn 624MHz | Palm Tungsten T3 | ||||
PXA27x | Søknadsbehandler | 32KB/32KB, MMU | 800 MIPS @ 624 MHz | Gumstix verdex , "Trizeps-Modules" PXA270 COM, HTC Universal, HP hx4700, Zaurus SL-C1000, 3000, 3100, 3200, Dell Axim x30, x50, og x51-serien, Motorola Q, Balloon3 , 2MHz Greenphone 3 , Troll ), Motorola Ezx Platform A728, A780, A910, A1200, E680, E680i, E680g, E690, E895, Rokr E2, Rokr E6, Fujitsu Palm Zire 72 (PXA270), Siemens LOOX N560, 500 Portégé, Toshio, G500, Toshio Zipit Z2 , HP iPaq 614c Business Navigator. | ||
PXA800(E)F | ||||||
PXA3XX (kodenavn "Monahans") | 32KB/32KB L1, TCM, MMU | 1000 MIPS @ 1,25 GHz | Samsung Omnia | |||
PXA900 | BlackBerry 8700, BlackBerry Pearl (8100) | |||||
IXC1100 | flykontrollprosessor | |||||
IXP2400/IXP2800 | ||||||
IXP2850 | ||||||
IXP2325/IXP2350 | ||||||
IXP42x | NSLU2 IXP460/IXP465 | |||||
ARM11 | ARMv6 | ARM1136J(F)-S [ 15 ] | 8-trinns pipelining, SIMD , Thumb, Jazelle DBX, (VFP), DSP Instruction Enhancement | variabel, mmu | 740 @ 532–665 MHz (i.MX31 SoC), 400–528 MHz | Texas Instruments OMAP2420 ( Nokia E90 , Nokia N93 , Nokia N95 , Nokia N82 ), Zune , BUGbase [2] , Nokia N800 , Nokia 500 , Nokia N810 , Qualcomm MSM7200 (med ARM926EJ-S@274 MHz co-prosessor, brukt i 274 MHz co- prosessor HTC TyTN II , HTC Nike ), Freescale i.MX31 (fra den originale Zune 30 GB, Toshiba Gigabeat S og Kindle DX), Freescale MXC300-30 ( Nokia E63 , Nokia E71 , Nokia 5800 , Nokia E51 , Nokia 6700 Classic , Nokia Qualcomm sett på HTC Dream , HTC Magic , Motorola Z6 , HTC Hero og _ _ _ _ _ _ _ _ Samsung SGH-i627 (Propel Pro) , Qualcomm MSM7227 brukt i ZTE Link, [ 16 ] [ 17 ] |
ARMv6T2 | ARM1156T2(F)-S | 9-trinns pipelining, SIMD , Thumb-2, (VFP), DSP Instruction Enhancement | Variabel, MPU | |||
ARMv6KZ | ARM1176JZ(F)-S | ARM1136EJ(F)-S | variabel, MMU+TrustZone | Apple iPhone (EDGE og 3G) , Apple iPod touch (1. og 2. generasjon) , Conexant CX2427X , Motorola RIZR Z8 , Motorola RIZR Z10 , NVIDIA GoForce 6100 ; [ 18 ] Telechips TCC9101, TCC9201, TCC8900, Fujitsu MB86H60 , Samsung S3C6410 (f.eks. Samsung Omnia II , Samsung Moment , SmartQ 5 ), S3C6430, [ 19 ] Raspberry Pi | ||
ARMv6K | ARM11 MPCore | Som ARM1136EJ(F)-S, 1–4 kjerner SMP | variabel, mmu | Nvidia APX 2500 , Nintendo 3DS-familien | ||
Familie | arkitektur versjon | Cellekjernen | Karakteristisk | Cache (L/R)/ MMU | Effektiv MIPS @ MHz | omfang |
cortex | ARMv7-A | Cortex-A5 | VFP, NEON, Jazelle RCT og DBX, Thumb-2, 8-fasesegmentering, 1–4 SMP-kjerner | variabel (L1), MMU+TrustZone | Mer enn 1500 (1,5 DMIPS/MHz) | "Sparrow" (kodenavn) [ 20 ] [ 21 ] [ 22 ] |
Cortex-A8 | VFP, NEON, Jazelle RCT, Thumb-2, 13-trinns superskalarsegmentering | variabel (L1+L2), MMU+TrustZone | 2000+ (2,0 DMIPS/MHz klokke fra 600 MHz til over 1 GHz) | Texas Instruments OMAP3xxx-serien , SBM7000, Oregon State University OSWALD , Gumstix Overo Earth , Pandora , Apple iPhone 3GS , Apple iPod touch (3. generasjon) , Apple iPad ( Apple A4 SoC ), Apple iPhone 4 ( Apple A4 SoC , laget av Samsung og Intrensity), Archos 5 , FreeScale i.MX51- SOC , BeagleBoard , Motorola Milestone , Motorola Milestone X , Palm Pre , Samsung Omnia HD , Samsung Wave S8500 (Hummingbird), Samsung i9000 Galaxy S (Hummingbird), Sony Ericsson Satio , Touch Book , Nokia N900 , Meizu M9 , ZiiLABS ZMS-08 SoC. | ||
Qualcomm Scorpion | GPU Adreno 200, VFPv3, NEON, Jazelle RCT, Thumb-2, 13-trinns superskalarsegmentering, | variabel (L1+L2), MMU+TrustZone | 2000+ (2,0 DMIPS/MHz klokke fra 1 GHz til 1,5+ GHz dual core) | Toshiba TG01 , HTC Desire , Google Nexus One , HTC EVO 4G , HTC Incredible , HTC Scorpion , HTC HD2 , HTC HD7 Sony Ericsson Xperia ARC/ARC S | ||
Cortex-A9 | Applikasjonsprofil, (VFP), (NEON), Jazelle RCT og DBX, Thumb-2, superskalar for spekulativt problem | MMU+TrustZone | 2,5 DMIPS/MHz | Acer Iconia A200, Galaxy Nexus , Motorola RAZR | ||
Cortex-A9 MPCore | Cortex-A9, 1–4 SMP-kjerner | MMU+TrustZone | 10 000 DMIPS @ 2 GHz optimalisert på TSMC 40G (dobbel kjerne) (2,5 DMIPS/MHz per kjerne) | Texas Instruments OMAP4430/4440 , ST-Ericsson U8500, Nvidia Tegra2 , Qualcomm Snapdragon 8X72 PlayStation Vita , Samsung Galaxy S II (Exynos 4210), Samsung Galaxy S III (Exynos 4212) | ||
ARMv7-R | Cortex-R4(F) | Embedded Profile, Thumb-2, (FPU) | variabel cache, valgfri MPU | 600 DMIPS @ 475MHz | Broadcom , TMS570 fra Texas Instruments | |
ARMv7-ME | Cortex-M4 (kodenavn "Merlin") [ 23 ] | Mikrokontrollerprofil, Thumb and Thumb-2, FPU. MAC, SIMD og delte instruksjoner. | Valgfri MPU. | 1,25 DMIPS/MHz | ||
ARMv7-M | Cortex-M3 | Mikrokontrollerprofil, kun Thumb-2. Distribusjon av instruksjoner etter maskinvare. | ingen cache, valgfri MPU. | 125 DMIPS ved 100 MHz | Texas Instruments Stellaris mikrokontrollerfamilie, ST Microelectronics STM32 , NXP Semiconductors LPC1700 , Toshiba TMPM330FDFG Arkivert 14. juni 2011, på Wayback Machine , Ember 's EM3xx Series, Atmel AT91SAM 3 , Europe Technologies 2 EasyBCUs Act , EFM 3 SmartFusion Arkivert 2013-06-18 på Wayback Machine | |
ARMv6-M | Cortex-M0 (kodenavn "Swift") [ 24 ] | Mikrokontrollerprofil, Thumb-2 undersett (16-bits Thumb & BL, MRS, MSR, ISB, DSB og DMB instruksjoner). | Ingen cache. | 0,9 DMIPS/MHz | NXP Semiconductors NXP LPC1100 , [ 25 ] Triad Semiconductor , [ 26 ] Melfas , [ 27 ] Chungbuk Technopark , [ 28 ] Nuvoton , [ 29 ] Austriamicrosystems , [ 30 ] Rohm [ 31 ] | |
Cortex-M1 | FPGA-målrettet, mikrokontrollerprofil, Thumb-2-delsett (16-bits Thumb & BL, MRS, MSR, ISB, DSB og DMB-instruksjoner). | Uten | Mer enn 136 DMIPS @ 170 MHz [ 32 ] (0,8 DMIPS/MHz, [ 33 ] MHz oppnåelig FPGA-avhengig) | Actel ProASIC3, ProASIC3L, IGLOO og Fusion PSC-enheter Arkivert 2011-07-07 på Wayback Machine , Altera Cyclone III , andre FPGA-produkter støttes, f.eks.: Synplicity
[ 34 ] | ||
Familie | Arkitektur versjon | Cellekjernen | Karakteristisk | Cache (L/R)/ MMU | Effektiv MIPS @ MHz | omfang |
ARMs instruksjonssett ligner på MOS 6502 , men inkluderer tilleggsfunksjoner som gjør at den kan oppnå bedre utførelsesytelse. For å opprettholde det tradisjonelle konseptet med RISC , ble utførelsen av en ordre etablert i en tid, generelt, av en syklus. Den mest interessante funksjonen er bruken av de øverste 4 bitene som en tilstandskode, noe som gjør enhver instruksjon betinget. Denne cutoff reduserer plassen for noen forskyvninger i minnetilgang, men lar deg unngå å sløse med klokkesykluser i pipelinen når du utfører små kodebiter med betinget kjøring. Det typiske eksemplet er den største fellesfaktoren , ifølge Euklids algoritme .
Eksempel i C :
while ( i != j ) // Gå inn i loop når i<jo i>j, ikke når i==j { if ( i > j ) // Når i>j gjør følgende i -= j ; else // i en annen cso, gjør følgende j -= i ; }I stedet med ARM -monteringskode kan løkken gjøres mer effektiv ved å gjøre:
loop : // Sammenlign i og j GT = i > j ; LT = i < j ; NE = i != j ; // Forbedrede operasjoner ved å bruke flaggresultater hvis ( GT ) i -= j ; // Trekk *bare* hvis større hvis ( LT ) j -= i ; // Trekk *bare* hvis mindre hvis ( NE ) goto loop ; // Loop *bare* hvis de sammenlignede verdiene ikke er likeog dette er kodet som:
sløyfe: CMP Ri , Rj ; setter betingelsen "NE" hvis (i != j), ; "GT" hvis (i > j), ; eller "LT" hvis (i < j) SUBGT Ri , Ri , Rj ; hvis "GT" (større enn), i = ij; SUBLT Rj , Rj , Ri ; hvis "LT" (mindre enn), j = ji; BNE -løkke ; hvis "NE" (ikke lik), så loopEn annen unik funksjon ved instruksjonssettet er muligheten til å legge til skift og rotasjon i databehandling (aritmetikk, logikk og registerbevegelse), for eksempel C-instruksjonen "a += (j << 2);" kan forbedres som en enkelt instruksjon i ARM, som tillater registerflytting.
Alt dette betyr at færre laste- og lagringsoperasjoner er nødvendig, noe som forbedrer ytelsen.
ARM-prosessoren har også noen funksjoner som er sjeldne i andre arkitekturer som også anses som RISC, for eksempel relativ adressering, og pre- og post-increment i adresseringsmodus.
Den har to driftsmoduser: ARMI med instruksjoner som opptar 4 byte, raskere og kraftigere (det finnes instruksjoner som kun er i denne modusen), men med høyere minne og strømforbruk. Og THUMB-modusen, mer begrenset, med instruksjoner som opptar 2 byte og med mindre strømforbruk.
ARM-familien har 16 registre (brukbare av programmereren) på 32 biter hver, betegnet R0 til R15. I prinsippet er de alle identiske og bare 3 har spesifikke funksjoner, som er R15 (brukes som et program eller PC-teller), og R14 (brukes til å lagre returadressen når en subrutine kalles eller et unntak genereres) og R13 ( stabelpeker).
Nyere prosessorer kommer med et ekstra instruksjonssett kalt Thumb , som er 16 bits (2 byte) langt per instruksjon, i stedet for 32 bits (4 bytes) som standard ARM-settet. Thumb er en undergruppe av de mest brukte instruksjonene. Å være halvparten av lengden reduserer mengden kode og forbedrer tettheten. Ytelsen kan være høyere enn 32-biters kode der minneporten eller kommunikasjonsbussbredden er mindre enn 32 biter. Vanligvis setter applikasjoner inn et lite utvalg minneadresser med en 32-biters databane (for eksempel: Game Boy Advance ), og resten er 16 biter i bred eller smalere modus .
Den første prosessoren med Thumb -teknologi var ARM7TDMI. Hele post-ARM9-familien, inkludert Intel XScale -prosessoren , har teknologien innebygd i kjernen.
ARM har implementert teknologi som gjør at visse typer arkitekturer kan kjøre Java-bytekode på maskinvare . Den første prosessoren som brukte Jazelle var ARM926EJ-S , med alle prosessorer som støttet denne teknologien kalt med en J.
Den første ARM-baserte personlige datamaskinen er Acorn Archimedes som kjørte et midlertidig operativsystem kalt Arthur , som ble RISC OS , brukt i senere modeller fra Acorn og andre leverandører.
ARM-arkitekturen støttes av et stort antall sanntids- og innebygde operativsystemer , inkludert Android , Windows CE , Windows 8 RT , .NET Micro Framework , Symbian , ChibiOS/RT , FreeRTOS , eCos , Integrity , Nucleus PLUS , MicroC/ OS-II , QNX , RTEMS , BRTOS, RTXC Quadros , ThreadX , Unison Operating System , uTasker , VxWorks , MQX og OSE . [ 37 ]
Systemene som akkrediterer UNIX-standardspesifikasjonen og som støtter ARM-arkitekturen er:
De støttede UNIX-variantene er:
LinuxFølgende Linux-distribusjoner støtter ARM-prosessorer:
BSDFølgende BSD-systemer støtter ARM-prosessorer:
Microsoft kunngjorde 5. januar 2011 at den neste store versjonen av Windows NT -familien (nå Windows 8 ) [ 41 ] inkluderer støtte for ARM-prosessorer. Microsoft viste en forhåndsversjon av Windows (versjon 6.2.7867) som kjører på en ARM-basert datamaskin på Consumer Electronics Show i 2011. [ 42 ] ARM-arkitekturen støttes også av Microsofts mobile operativsystemer, Windows Phone og WindowsMobile . ARM støtter også Windows Embedded CE som nå kalles Windows Embedded Compact . Denne siste versjonen støtter ARM 5,6 og 7. Windows CE 5 er det underliggende operativsystemet for Windows Mobile og Windows Embedded Compact 7 er det underliggende operativsystemet for Windows Phone 7. Det lille Microsoft OS.NET Microframework bruker utelukkende ARM.
29. oktober 2012 kom Microsofts Surface- nettbrett i salg, som har en ARM-prosessor og bruker Windows 8 RT som operativsystem, en versjon som ikke kan lastes ned eller kjøpes siden den er installert på nettbrett med ARM-arkitektur. Det er en annen versjon av Windows 8 enn denne som er Windows 8 PRO for x86-datamaskiner.
Nylig har en x86-arkitektur Windows 10-emulator for ARM-prosessorer vært i arbeid for et spesifikt prosessormerke.
Siden utviklingen av iPhone i 2007 har Apple brukt ARM-prosessorer for sine mobiltelefonplattformer ( iPhone ), smartklokker ( Apple Watch ), nettbrett ( iPad ), og i nyere tid i bærbare datamaskiner ( Mac Books ). Apple valgte ARM-prosessorer for disse plattformene på grunn av fordelen de tilbyr i lavt strømforbruk og lite nødvendig kjøling.