ARM-arkitektur

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 .

Historikk

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.

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.

Familier

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-18Wayback 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 settHTC 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

Design

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 like

og 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å loop

En 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.

Records

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).

Fordeler

  • Bredt spekter av produsenter: Som nevnt før, tillater ARM kjøp av lisensen fra tredjeparter, noe som gir opphav til et stort antall merker som produserer denne arkitekturen, og hver av dem tilbyr nye forbedringer, fremskritt og generelt et større utvalg av alternativer for forbrukeren.
  • Instruksjonsenkelhet: Vi finner oss selv med et mye mindre sett med instruksjoner, men mye mer atomære; dette betyr at instruksjonene praktisk talt kan endres til maskin-type instruksjoner, og sparer både tid og energi i oversettelsen.
  • Lavt energibruk: Vi finner RISC, og dens "enkelhet". Disse søker den høyeste effektiviteten per syklus; i tillegg fører de til mindre og enklere flis og derfor til en betydelig forbedring når det gjelder energieffektivitet.
  • Akseptabel og forbedret ytelse: Som nevnt ovenfor, gir kjøp fra tredjeparter nye forbedringer og fremskritt i ytelse.

Teknologier

tommelen

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.

Jazelle

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.

Operativsystemer

Acorn systemer

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.

Innebygde operativsystemer

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 ]

UNIX

Systemene som akkrediterer UNIX-standardspesifikasjonen og som støtter ARM-arkitekturen er:

UNIX-type

De støttede UNIX-variantene er:

Linux

Følgende Linux-distribusjoner støtter ARM-prosessorer:

BSD

Følgende BSD-systemer støtter ARM-prosessorer:

Windows

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.

iOS og macOS

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.

Se også

Referanser

  1. "ARM Cores Climb Into 3G Territory" av Mark Hachman, 2002.
  2. ^ "The Two Percent Solution" Arkivert 2007-09-26Wayback Machine av Jim Turley 2002.
  3. "Bevæpnet for stuen" .
  4. ^ Fitzpatrick, J. (2011). "Et intervju med Steve Furber" . Kommunikasjon til ACM 54 (5): 34. doi : 10.1145/1941487.1941501 . 
  5. "ARM810 – Dancing to the Beat of a Different Drum" ARM Holdings-presentasjon på Hot Chips 1996-08-07.
  6. Register 13, FCSE PID-register ARM920T Technical Reference Manual
  7. ^ "Neo1973: GTA01Bv4 versus GTA02 sammenligning" . Hentet 15. november 2007 . 
  8. ^ "S3C2410" . Hentet 13. januar 2010 . 
  9. ^ "Rockbox Samsung SA58xxx-serien" . Hentet 22. februar 2008 . 
  10. ^ "Rockbox Meizu M6 Port - Maskinvareinformasjon" . Hentet 22. februar 2008 . 
  11. [1]
  12. ^ "STR9 - STR912 - STR912FW44 mikrokontroller - nedlastingsside for dokumenter og filer" . mcu.st.com. Arkivert fra originalen 10. februar 2007 . Hentet 18. april 2009 . 
  13. Stjernelett .
  14. ^ "Referansemål - Albatross" . Albatross-uav.org. 18. juni 2005. Arkivert fra originalen 2. august 2009 . Hentet 18. april 2009 . 
  15. ^ "ARM1136J(F)-S – ARM-prosessor" . Arm.com . Hentet 18. april 2009 . 
  16. ^ "Qualcomm ARM-kjernebrikker - fra telefoner til bærbare datamaskiner" . xi0.info. Arkivert fra originalen 13. mars 2012 . Hentet 8. mai 2010 . 
  17. ^ "Qualcomm MSM7227 RISC-brikkesett" . pdadb.net . Hentet 8. mai 2010 . 
  18. ^ "GoForce 6100" . Nvidia.com . Hentet 18. april 2009 . 
  19. ^ "Samsung S3C6410- og S3C6430-seriens ARM-prosessorer" . Samsung. Arkivert fra originalen 1. september 2009 . Hentet 8. oktober 2009 .  , og Qualcomm MSM7627 sett på Palm Pixi og Motorola Calgary/Devour
  20. Merritt, Rick (21. oktober 2009). « " ARM strekker seg ut med A5-kjerne, grafikk, FPGA-er " » . EE Times . Arkivert fra originalen 13. mars 2012 . Hentet 28. oktober 2009 . 
  21. Clarke, Peter (3. februar 2009). "ARM-tipsplaner for Swift- og Sparrow-prosessorkjerner" . EE Times . Arkivert fra originalen 13. mars 2012 . Hentet 18. april 2009 . 
  22. Segan, Sascha (9. april 2009). "ARMs flerkjernebrikker sikter mot netbooks" . PC-magasinet . Hentet 18. april 2009 . 
  23. Benz, Benjamin (2. februar 2010). "Cortex Nachwuchs bei ARM" . Heise.de . Hentet 3. mai 2010 . 
  24. Clarke, Peter (23. februar 2009). "ARM forbereder en liten kjerne for laveffekts mikrokontrollere" . EE Times . Arkivert fra originalen 13. mars 2012 . Hentet 30. november 2009 . 
  25. ^ Walko, John (23. mars 2009). "NXP først til å demonstrere ARM Cortex-M0 silisium" . EE Times . Arkivert fra originalen 13. mars 2012 . Hentet 29. juni 2009 . 
  26. https://web.archive.org/web/20110716112427/http://www.triadsemi.com/services/arm-powered-vcas/
  27. Cortex-M0 brukt i berøringskontroller med lav effekt
  28. http://www.design-reuse.com/news/22137/arm-cortex-m0-processor.html
  29. ^ "Arkiveret kopi" . Arkivert fra originalen 22. januar 2020 . Hentet 18. mai 2022 . 
  30. http://www10.edacafe.com/nbc/articles/view_article.php?articleid=752000
  31. http://www.arm.com/about/newsroom/rohm-licenses-arm-cortex-m0-processor.php
  32. "ARM utvider Cortex Family with First Processor Optimized for FPGA" , ARM pressemelding, 19. mars 2007. Hentet 11. april 2007.
  33. "ARM Cortex-M1" , ARMs produktnettsted. Hentet 11. april 2007.
  34. ARM utvider Cortex-familien med første prosessor optimalisert for FPGA .
  35. Richard Stallmann . "Android og brukernes frihet" . www.gnu.org . Hentet 24. desember 2016 . 
  36. Richard Stallmann . "Ofte stilte spørsmål om GNU/Linux" . www.gnu.org . Hentet 24. desember 2016 . 
  37. "Programvareaktivering" . www.arm.com . ARM Ltd. Arkivert fra originalen 2010-11-16 . Hentet 18. november 2010 . 
  38. "FreeBSD/ARM-prosjekt" . Hentet 1. juni 2009 . 
  39. "Maskinvare støttet av NetBSD" . Hentet 1. juni 2009 . 
  40. "OpenBSD/armish" . Hentet 1. juni 2009 . 
  41. ^ "Microsoft sier at raskere ARM-brikker gjør Windows 8 'Natural Fit ' " . San Francisco Chronicle . 2. juni 2011. Arkivert fra originalen 6. juni 2011 . Hentet 2. juni 2011 . 
  42. Microsoft demonstrerer tidlig utbygging av Windows 8 Arkivert 1. november 2012 på Wayback Machine

Eksterne lenker