ARM (arkitektur)

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 10. februar 2020; kontroller kræver 77 redigeringer .
ARM

A.R.M.-logo
Udvikler ARM Limited
Lidt dybde ARMv7 64/32 bit, op til ARMv8 kun 64 bit
Fremlagde 1985
Arkitektur RISC
Type register-register
SK kodning ARMv8: fast (64 bit), undtagen i ARMv7-
kodekompatibilitetstilstand ARMv7/6: blandet (32 og 16 bit justeret)
ARMv3/2: fast (32 bit)
Transition Implementering ved tilstandsflag
Byte rækkefølge Skiftbar (big-endian), normalt fra lav til høj (little-endian)
Udvidelser NEON, Thumb-2 (obligatorisk siden ARMv7), Jazelle, VFPv4-D16, VFPv4 (alle obligatoriske i ARMv8)
På mikrocontrollere: FPv4-SP
 Mediefiler på Wikimedia Commons

ARM-arkitektur (fra engelsk  Advanced RISC Machine  - en avanceret RISC-maskine; nogle gange - Acorn RISC Machine ) - et system af kommandoer og en familie af beskrivelser og færdiglavede topologier af 32-bit og 64-bit mikroprocessor / mikrocontroller - kerner udviklet af ARM Limited [1] .

Blandt licenstagerne af færdiglavede ARM-kernetopologier er AMD , Apple , Analog Devices , Atmel , Xilinx , Cirrus Logic , Intel (indtil 27. juni 2006), Marvell , NXP , STMicroelectronics , Samsung , LG , MediacommTek , Qual , Sony , Texas Instruments , Nvidia , Freescale , Milandr , ELVIS [2] , HiSilicon , Baikal Electronics .

Væsentlige processorfamilier: ARM7 , ARM9 , ARM11 og Cortex [3] [4] .

Mange licenstagere designer deres egne kernetopologier baseret på ARM-instruktionssættet: DEC StrongARM , Freescale i.MX, Intel XScale , NVIDIA Tegra , ST-Ericsson Nomadik , Krait og Kryo i Qualcomm Snapdragon , Texas Instruments OMAP , Samsung Hummingbird , LG H13 , Apple A6 og HiSilicon K3 .

Popularitet

I 2006 var omkring 98 % af de mere end én milliard mobiltelefoner, der sælges årligt, udstyret med mindst én ARM-processor [5] . Fra 2009 udgjorde ARM-processorer op til 90% af alle indlejrede 32-bit-processorer [6] . ARM-processorer er meget udbredt i forbrugerelektronik, herunder smartphones, mobiltelefoner og afspillere, håndholdte spillekonsoller, lommeregnere, smarture og computerudstyr såsom harddiske eller routere.

Disse processorer har lavt strømforbrug, så de er meget udbredt i indlejrede systemer og dominerer markedet for mobilenheder, hvor denne faktor er kritisk.

Historie

Efter at have opnået en vis succes med BBC Micro -computeren, overvejede det britiske firma Acorn Computers at gå fra de relativt svage MOS Technology 6502-processorer til mere kraftfulde løsninger og gå ind på erhvervscomputermarkedet med den samme BBC Micro -platform . Processorer som Motorola 68000 og 32016 fra National Semiconductor var uegnede til dette, og 6502'eren var ikke kraftig nok til at understøtte en grafisk brugergrænseflade [7] .

Virksomheden havde brug for en helt ny arkitektur, efter at den havde testet alle de tilgængelige processorer og fundet dem ineffektive. Acorn var seriøs med at udvikle sin egen processor, og deres ingeniører begyndte at studere dokumentationen af ​​RISC-projektet , udviklet ved University of California i Berkeley . De troede, at siden en gruppe studerende formåede at skabe en fuldstændig konkurrencedygtig processor, så ville deres ingeniører ikke være vanskelige. En tur til Western Design Center (Arizona) viste ingeniørerne Steve Ferber og Sophie Wilson (dengang kendt som Roger [8] ), at de ikke ville have brug for utrolige ressourcer til at udføre denne plan.

Wilson gik i gang med at udvikle instruktionssættet ved at bygge en simulering af den nye processor på en BBC Micro-computer. Hendes succes med dette overbeviste Acorn-ingeniørerne om, at de var på rette vej. Men før de kunne gå længere, havde de brug for flere ressourcer, så det var tid for Wilson at gå til Acorn CEO Herman Hauser og forklare, hvad der foregik. Efter at han gav grønt lys, samledes et lille team for at implementere Wilson-modellen i hardware.

Acorn RISC Machine: ARM2

Det officielle Acorn RISC Machine-projekt startede i oktober 1983. VLSI Technology siliciumleverandør, da det allerede havde leveret Acorn med ROM- chips og nogle tilpassede integrerede kredsløb Udviklingen blev ledet af Wilson og Ferber . Deres hovedmål var at opnå den lave latens afbrydelseshåndtering af MOS Technology 6502. Hukommelsesadgangsarkitekturen taget fra 6502 gjorde det muligt for udviklerne at opnå god ydeevne uden den dyre implementering af DMA- modulet . Den første processor blev produceret af VLSI den 26. april 1985 - det var da den først begyndte at virke og fik navnet ARM1. De første masseproducerede processorer, kaldet ARM2, blev tilgængelige året efter.

Dens første brug var som en anden processor hos BBC Micro , hvor den blev brugt i udviklingen af ​​simuleringssoftware, som fuldendte computerens supportchips, samt fremskyndede CAD -softwaren , der blev brugt i udviklingen af ​​ARM2. Wilson optimerede ARM-instruktionssættet til at køre BBC BASIC . Det oprindelige mål med en all-ARM-computer blev opnået i 1987 med udgivelsen af ​​Acorn Archimedes.

Stemningen omkring ARM-projektet var så hemmelighedsfuld, at da Olivetti forhandlede om at købe en majoritetsandel i Acorn i 1985, talte de ikke om udviklingen af ​​projektet før forhandlingernes afslutning. I 1992 vandt Acorn igen Queen's Award for Enterprise for ARM.

ARM2 havde en 32-bit databus, et 26-bit adresserum og 16 32-bit registre. Programkoden skulle ligge i de første 64 megabyte hukommelse, og programtælleren var begrænset til 26 bit, da de øverste 4 og de nederste 2 bits i et 32-bit register fungerede som flag. ARM2 er blevet måske den enkleste af de populære 32-bit processorer i verden med kun 30 tusinde transistorer (til sammenligning havde Motorola 68000 processoren, lavet 6 år tidligere, 68 tusinde transistorer). Meget af denne enkelhed skyldes manglen på mikrokode (som i 68000'eren fylder mellem en fjerdedel og en tredjedel af matricearealet) og manglen på cache , som det var tilfældet med mange datidens processorer. Denne enkelhed førte til lave energiomkostninger, mens ARM var meget mere produktiv end Intel 80286 . Dens efterfølger, ARM3-processoren, havde allerede en 4 KB cache, hvilket øgede ydeevnen endnu mere.

Apple, DEC, Intel: ARM6, StrongARM, XScale

I slutningen af ​​1980'erne begyndte Apple Computer og VLSI Technology at arbejde med Acorn Computers på nye versioner af ARM-kernen. Arbejdet var så vigtigt, at Acorn i 1990 foldede udviklingsteamet sammen til et nyt firma kaldet Advanced RISC Machines . Af denne grund forkortes ARM nogle gange som Advanced RISC Machines i stedet for Acorn RISC Machine . Advanced RISC Machines blev til ARM, da dets moderselskab ARM Holdings blev noteret på London Stock Exchange og NASDAQ i 1998.

Det nye Apple-ARM-værk udviklede sig til sidst til ARM6, som først blev udgivet i 1992. Apple brugte den ARM6-baserede ARM610-processor som grundlag for sit Apple Newton PDA-produkt. I 1994 begyndte Acorn at bruge ARM610 som hovedprocessor i sine RISC pc-computere . DEC købte også en licens til ARM6- arkitekturen (skabte lidt forvirring, da de også lavede Alpha -processorer ) og begyndte at lave StrongARM. Ved 233 MHz krævede denne processor kun 1 watt strøm (senere versioner krævede meget mindre). Intel fik senere rettighederne til dette værk som følge af en retssag. Intel benyttede lejligheden til at supplere deres gamle I960-serie med StrongARM-processoren og udviklede senere deres version af kernen under mærkenavnet XScale , som de efterfølgende solgte til Marvell .

ARM-kernen holdt den samme størrelse efter alle disse ændringer. ARM2 havde 30.000 transistorer.

Indvirkning af ARM-teknologi på markedet

Grundlæggende har familiens processorer erobret segmentet af massemobilprodukter (mobiltelefoner, PDA'er) og indlejrede systemer med medium og høj ydeevne (fra netværksroutere og adgangspunkter til tv'er). Nogle virksomheder annoncerer udviklingen af ​​effektive servere baseret på klynger af ARM-processorer [10] , men indtil videre er der kun tale om eksperimentelle projekter med en 32-bit arkitektur [11] .

Den tidligere leder af listen, Summit-supercomputeren (OLCF-4) , udviklet i fællesskab af IBM (serverknudepunkter), Mellanox (sammenkobling) og Nvidia (grafikacceleratorer), og installeret på Oak Ridge National Laboratory  , blev den anden og mistede hæderlig førsteplads til det nye japanske topsystem Fugaku ( rus. Fugaku ), som viste et High Performance / Highly Parallel Linpack (HPL) resultat på 415,5 petaflops. Denne indikator overstiger Summits muligheder med 2,8 gange. Fugaku er drevet af Fujitsus 48-core A64FX SoC, hvilket gør det til det første #1-system nogensinde på TOP500-listen med ARM-processorer. Ved enkelt eller lavere præcision, som ofte bruges til maskinlæring og kunstig intelligens opgaver, topper Fugaku med over 1.000 petaflops (1 exaflops). Det nye system er installeret på RIKEN Computational Science Center (R-CCS) i Kobe, Japan.

ARM-processorer

Flere familier af ARM-processorer er i øjeblikket betydelige:

I 2010 annoncerede producenten Cortex-A15-processorer med kodenavnet Eagle, ARM hævder, at Cortex A15-kernen er 40 procent hurtigere ved samme frekvens end Cortex-A9- kernen med det samme antal kerner pr. chip [12] . Produktet, der er fremstillet ved hjælp af en 28-nm procesteknologi, har 4 kerner, kan fungere ved en frekvens på op til 2,5 GHz og vil blive understøttet af mange moderne operativsystemer [13] [14] .

Marvells populære xScale - familie af mikroprocessorer (indtil 27. juni 2007 - Intel [15] ) er faktisk en udvidelse af ARM9 -arkitekturen , suppleret med det trådløse MMX- instruktionssæt , specielt udviklet af Intel til at understøtte multimedieapplikationer.

ARM-kerneversioner (tabel)
Kernel familie Arkitektur version Nucleus Funktioner Cache (I/D)/ MMU Typisk MIPS @ MHz Brug
ARM1 ARMv1 (udfaset) ARM1 Ikke ARM Evaluation System BBC Micro processor
ARM2 ARMv2 (udfaset) ARM2 Tilføjet MUL-kommando (multiplicer) Ikke 4 MIPS @ 8 MHz
0,33 DMIPS /MHz
Acorn Archimedes , skakmaskine
ARMv2a (udfaset) ARM250 Integreret MEMC (MMU), GPU, tilføjede SWP og SWPB (swap) kommandoer Nej, MEMC1a 7 MIPS @ 12 MHz Acorn Archimedes
ARM3 ARMv2a (udfaset) ARM2a Første brugte cache 4 KB i alt 12 MIPS @ 25 MHz
0,50 DMIPS/MHz
Acorn Archimedes
ARM6 ARMv3 (udfaset) ARM60 32-bit (i stedet for 26-bit) hukommelsesadresserum introduceret for første gang Ikke 10 MIPS @ 12 MHz 3DO Interactive Multiplayer , Zarlink GPS-modtager
ARM600 Ligesom ARM60, FPA10 matematisk coprocessor med flydende komma 4 KB i alt 28 MIPS @ 33 MHz
ARM610 Ligesom ARM60, cache, ingen coprocessor bus 4 KB i alt 17 MIPS @ 20 MHz
0,65 DMIPS/MHz
Acorn Risc PC 600 , Apple Newton 100-serien
ARM7 ARMv3 (udfaset) ARM700 8 KB i alt 40 MHz Acorn Risc PC Prototype CPU-kort
ARM710 Ligesom ARM700 8 KB i alt 40 MHz Acorn Risc PC 700
ARM710a Ligesom ARM700 8 KB i alt 40 MHz 0,68 DMIPS
/MHz
Acorn Risc PC 700 , Apple eMate 300
ARM7100 Ligesom ARM710a, integreret SoC 8 KB i alt 18 MHz Psion Series 5
ARM7500 Ligesom ARM710a, integreret SoC. 4 KB i alt 40 MHz Acorn A7000
ARM7500FE Ligesom ARM7500 tilføjede "FE" FPA- og EDO-hukommelsescontrollere 4 KB i alt
56 MHz 0,73 DMIPS/ MHz
Acorn A7000+ netværkscomputer
ARM7TDMI ARMv4T ARM7TDMI(-S) 3-trins transportbånd, tommelfinger-tilstand Ikke 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
ARM710T Ligesom ARM7TDMI, cache 8 KB delt, MMU 36 MIPS @ 40 MHz Psion Series 5mx , Psion Revo /Revo Plus/Diamond Mako
ARM720T Ligesom ARM7TDMI, cache 8 KB delt , MMU med Fast Context Switch  Extension 60 MIPS @ 59,8 MHz Zipit Wireless Messenger , NXP Semiconductors LH7952x
ARM740T Ligesom ARM7TDMI, cache MPU
ARMv5TEJ ARM7EJ-S 5-trins pipeline, Thumb, Jazelle DBX, avancerede DSP-kommandoer ingen
StærkARM 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 Ligesom SA-110, integreret SoC 16KB/8KB MMU 203MHz Psion netbook
SA-1110 Ligesom SA-110, integreret SoC 16KB/8KB MMU 206MHz LART (computer) , Intel Assabet, Ipaq H36x0, Balloon2 , Zaurus SL-5x00, HP Jornada 7xx, Jornada 560 series , Palm Zire 31
ARM8 ARMv4 ARM810 [16] 5-trins pipeline, statisk gren forudsigelse, dobbelt-båndbredde hukommelse 8 KB samlet, MMU 84 MIPS @ 72 MHz
1,16 DMIPS/MHz
Acorn Risc PC Prototype CPU-kort
ARM9TDMI ARMv4T ARM9TDMI 5-trins transportbånd, tommelfinger ingen
ARM920T Ligesom ARM9TDMI, cache 16 KB/16 KB, MMU med FCSE (Fast Context Switch Extension) [17] 200 MIPS @ 180 MHz Armadillo , Atmel AT91SAM 9, GP32 , GP2X (første kerne), Tapwave Zodiac ( Motorola i. MX1), Hewlett Packard HP-49/50 lommeregnere , Sun SPOT , Cirrus Logic EP9302, EP9307, EP9312, 42 EP9312 , 429 HTCN , FIC Neo FreeRunner [18] ), Samsung S3C2410 ( TomTom navigationsenheder) [19]
ARM922T Ligesom ARM9TDMI, cache 8KB/8KB MMU NXP Semiconductors LH7A40x
ARM940T Ligesom ARM9TDMI, cache 4 KB/4 KB MPU GP2X (anden kerne), Meizu M6 Mini Player [20] [21]
ARM9E ARMv5TE ARM946E-S Tommelfinger, Forbedrede DSP-instruktioner, caches variable, tæt koblede hukommelser, MPU Nintendo DS , Nokia N-Gage , Canon PowerShot A470 , Canon EOS 5D Mark II [22] , Conexant 802.11 chips, Samsung S5L2010
ARM966E-S Tommelfinger, Enhanced DSP instruktioner ingen cache, TCM'er STM STR91xF, inklusive Ethernet [23]
ARM968E-S Ligesom ARM966E-S ingen cache, TCM'er NXP Semiconductors LPC2900
ARMv5TEJ ARM926EJ-S Tommelfinger, Jazelle DBX, Enhanced DSP instruktioner variabler, TCM'er, MMU'er 220 MIPS @ 200 MHz Mobiltelefoner: Sony Ericsson (K, W-serien); Siemens og Benq (x65-serien og nyere); LG Arena , LG Cookie Fresh ; TI OMAP1710 ... OMAP1612 , OMAP-L137 , OMAP-L138 ; Qualcomm MSM6100…MSM6800; Freescale i.MX21 , i.MX27, Atmel AT91SAM 9, NXP Semiconductors LPC3000 , GPH Wiz, NEC C10046F5-211-PN2-A SoC — udokumenteret kerne i ATi Hollywood -grafikchippen brugt i Wii, [24] Samsung S23 brugt iC241 Squeezebox Duet 's controller. Squeezebox Radio ; NeoMagic MiMagic Family MM6, MM6+, MM8, MTV; Buffalo TeraStation Live ( NAS ); Telechips TCC7801, TCC7901; ZiiLABS ' ZMS-05 system på en chip; Western Digital MyBook I World Edition
ARMv5TE ARM996HS Urløs processor som ARM966E-S ingen caches, TCM'er, MPU'er
ARM10E ARMv5TE ARM1020E 6-trins pipeline, tommelfinger, forbedrede DSP instruktioner, (VFP) 32KB/32KB MMU
ARM1022E Ligesom ARM1020E 16KB/16KB MMU
ARMv5TEJ ARM1026EJ-S Thumb, Jazelle DBX, Enhanced DSP instruktioner, (VFP) variabel, MMU eller MPU Western Digital MyBook II World Edition; Conexant so4610 og so4615 ADSL SoCs
Xscale ARMv5TE 80200/IOP310/IOP315 I/O-processor, tommelfinger, forbedret DSP-instruktioner
80219 400/600 MHz Thecus N2100
  • Intel 80219-processoren inkluderer en højhastigheds 32-bit XScale -kerne på 400 eller 600 MHz med et 64-bit PCI-X-interface
  • PCI/ PCI-X-bus tillader tilslutning af Gigabit Ethernet-controllere
IOP321 600 Bogo Mips @ 600 MHz Iyonix
IOP33x
IOP34x 1-2 kerner, RAID-acceleration 32K/32K L1, 512K L2, MMU
PXA210/PXA250 Applikationsprocessor, 7-trins pipeline 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 Bogo Mips @ 400 MHz; 371-533 MIPS @ 400 MHz [25] 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 400 MHz, op til 624 MHz Palm Tungsten T3
PXA27x Applikationsbehandler 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 series, Motorola Q, Balloon 3 , Motorola TX Greenphone , Troll Ezx Platform A728, A780, A910, A1200, E680, E680i, E680g, E690, E895, Rokr E2, Rokr E6, Fujitsu Siemens LOOX N560, Toshiba Portégé G500, Toshiba Porté Tregé G900, i-Papit G500, Z-Papit 500, i HP forretningsnavigator
PXA800(E)F
PXA3XX (kodenavnet "Monahans") PXA31x har en hardware-grafikaccelerator 32KB/32KB L1, TCM, MMU 800 MIPS @ 624 MHz highscreen alex
PXA900 Blackberry 8700, Blackberry Pearl (8100)
IXC1100 Control Plane Processor
IXP2400/IXP2800
IXP2850
IXP2325/IXP2350
IXP42x NSLU2 IXP460/IXP465
ARM11 ARMv6 ARM1136J(F)-S [26] 8-trins pipeline, SIMD , Thumb, Jazelle DBX, (VFP), forbedrede DSP instruktioner variabel, MMU 740 @ 532-665 MHz (i.MX31 SoC), 400-528 MHz TI OMAP2420 ( Nokia E90 , Nokia N93 , Nokia N95 , Nokia N82 ), Zune , BUGbase [1] , Nokia N800 , Nokia N810 , Qualcomm MSM7200 (med integreret ARM926EJ-S Coprocessor@274 MHz, brugt i Eten Glofiish , HTC TyTN IIish , HTC Nike ), Freescale i.MX31 (brugt i den originale Zune 30gb og Toshiba Gigabeat S), Freescale MXC300-30 ( Nokia E63 , Nokia E71 , Nokia E72 , Nokia 5800 , Nokia E51 , Nokia 6700 Classic , Nokia 6120 Classic , Nokia 6120 Classic Qualcomm MSM7201A som set i HTC Dream , HTC Magic , Motorola ZN5 , Motorola E8 , Motorola VE66 , Nokia 6210 Navigator , Nokia 6220 Classic , Nokia 6290 , Nokia 6710 Navigator , Nokia 6720 Classic , Motorola Z6 , HTC SGH - Z6 i627 (Propel Pro) , Qualcomm MSM7227 / MSM7227T, HTC Legend , HTC Wildfire S , LG P500, LG GT540, [27] [28]
ARMv6T2 ARM1156T2(F)-S 9-trins pipeline, SIMD , Thumb-2, (VFP), forbedrede DSP-instruktioner variabel, MPU
ARMv6KZ ARM1176JZ(F)-S Ligesom ARM1136EJ(F)-S variabel, MMU+TrustZone Apple iPhone (original og 3G) , Apple iPod touch (1. og 2. generation) , Conexant CX2427X , Motorola RIZR Z8 , Motorola RIZR Z10 , NVIDIA GoForce 6100 [29] ; Mediatek MT6573 [30] ; Telechips TCC9101, TCC9201, TCC8900, Fujitsu MB86H60 , Samsung S3C6410 (f.eks. Samsung Moment ), S3C6430 [31]
ARMv6K ARM11MPCore Ligesom ARM1136EJ(F)-S, 1-4 kerne SMP variabel, MMU Nvidia APX 2500
Kernel familie Arkitektur version Nucleus Funktioner Cache (I/D)/MMU Typisk MIPS @ MHz Ansøgninger
Cortex ARMv7-A Cortex-A5 VFP, NEON, Jazelle RCT og DBX, Thumb-2, 8-trins pipeline, i orden, 1-4 kerne SMP variabel (L1), MMU+TrustZone op til 1500 (1,5 DMIPS/MHz) "Sparrow" (ARM-kodenavn) [32] [33] [34]
Cortex-A8 VFP, NEON, Jazelle RCT, Thumb-2; 13-trins pipeline, i orden, 2 dekodere [35] variabel (L1+L2), MMU+TrustZone op til 2000 (2,0 DMIPS/MHz i hastighed fra 600 MHz til mere end 1 GHz) TI OMAP3xxx-serien , SBM7000, Oregon State University OSWALD , Gumstix Overo Earth , Pandora , Apple iPhone 3GS , Apple iPod touch (3. generation) , Apple iPad ( Apple A4- processor), Apple iPhone 4 ( Apple A4- processor), Archos 5 , Archos 101 , FreeScale i.MX51- SOC , BeagleBoard , Motorola Droid , Motorola Droid X , Palm Pre , Samsung Omnia HD , Samsung Wave S8500 , Nexus S , Sony Ericsson Satio , Touch Book , Nokia N900 , Meizu M9 , ZiiLABS ZMS-08 system på en chip, Boxchip A13
Cortex-A9 Applikationsprofil, (VFP), (NEON), Jazelle RCT og DBX, Thumb-2, Superskalar for spekulativt spørgsmål uden for orden (2 dekodere); 9-12 [35] rørledningstrin MMU+TrustZone 2,5 DMIPS/MHz Apple iPhone 4S , Apple iPad 2 ( Apple A5 ), MediaTek MT6575/6515M, iconBIT NetTAB SKY 3G
Cortex-A9 MPCore Ligesom Cortex-A9, 1-4 kerne SMP MMU+TrustZone 10.000 DMIPS @ 2 GHz på ydeevneoptimeret TSMC 40G (quad core?) (2,5 DMIPS/MHz pr. kerne) PlayStation® Vita , TI OMAP4430/4440 , ST-Ericsson U8500 , Nvidia Tegra2 , Samsung Exynos 4210, MediaTek MT6577/6517
Cortex-A15 MPCore 1-32 kerne SMP; Ude af drift superskalar (3 dekodere); 15+ transportørtrin [35] ; VFPv4, NEON [36] MMU, LPAE 3,5 DMIPS/MHz/kerne; 1,0 GHz - 2,5 GHz (@ 28 nm [35] )
Cortex-A7 MPCore [37] FPU,NEON; I rækkefølge (1 dekoder); 8 trins transportør. MMU, LPAE 1,9 DMIPS/MHz/CPU; 0,8-1,5 GHz (@28nm) (Broadcom, Freescale, HiSilicon, LG, Samsung, STERicsson, Texas Instruments, MediaTek)
ARMv7-R Cortex-R4(F) Indlejret profil, Thumb-2, (FPU) variabel cache, valgfri MPU 600 DMIPS @ 475 MHz Broadcom er en bruger, TI TMS570
ARMv7-ME Cortex-M4 (kodenavnet "Merlin") [38] Mikrocontroller profil, både Thumb og Thumb-2, FPU. Hardware MAC, SIMD og opdeling instruktioner MPU valgfri 1,25 DMIPS/MHz NXP Semiconductors , STM32 , TI Stellaris LM4F
ARMv7-M Cortex-M3 Mikrocontroller-profil, kun Thumb-2. hardwareopdelingsinstruktioner ingen cache, valgfri MPU 125 DMIPS @ 100 MHz TI Stellaris , STM STM32 , NXP LPC1700 , Toshiba TMPM330FDFG , Ember 's EM3xx Series, Atmel AT91SAM 3, Europe Technologies EasyBCU , Energy Micro 's EFM32 , Actel 's SmartFusion , Milandre 1986 ]
ARMv6-M Cortex-M0 (kodenavnet "Swift") [39] Mikrocontrollerprofil, Thumb-2-undersæt (16-bit Thumb-instruktioner & BL, MRS, MSR, ISB, DSB og DMB) Ingen cache 0,9 DMIPS/MHz NXP Semiconductors NXP LPC1100 [40] , Triad Semiconductor [41] , Melfas [42] , Chungbuk Technopark [43] , Nuvoton [44] , austriamicrosystems [45] , Milandre K1986BE2T [3]
Cortex-M1 FPGA-målrettet, mikrocontrollerprofil, Thumb-2-undersæt (16-bit tommelfingerinstruktioner & BL, MRS, MSR, ISB, DSB og DMB) Ingen, tæt koblet hukommelse valgfri Op til 136 DMIPS @ 170 MHz [46] (0,8 DMIPS/MHz, [47] MHz opnåelig FPGA-afhængig) Actel ProASIC3, ProASIC3L, IGLOO og Fusion PSC-enheder , Altera Cyclone III , andre FPGA-produkter understøttes også, f.eks. Synplicity

[48]

Kernel familie Arkitektur version Nucleus Funktioner Cache (I/D)/ MMU Typisk MIPS @ MHz Ansøgninger

Arkitektur

Der har længe været en ARM-arkitektur-referenceguide, der afgrænser alle de typer interfaces, som ARM understøtter, da implementeringsdetaljerne for hver processortype kan variere. Arkitekturen har udviklet sig over tid, og siden ARMv7 er 3 profiler blevet defineret:

Profiler understøtter muligvis færre kommandoer (kommandoer af en bestemt type).

Tilstande

Processoren kan være i en af ​​følgende driftstilstande:

Skift af processortilstand sker, når der opstår en passende undtagelse eller ved at ændre statusregistret.

Kommandosæt

For at holde enheden ren, enkel og hurtig blev den originale ARM-fremstilling udført uden mikrokode , ligesom den enklere 8-bit 6502-processor, der blev brugt i tidligere mikrocomputere fra Acorn Computers .

ARM instruktionssæt

Den tilstand, hvori 32-bit instruktionssættet udføres.

ARM-basisinstruktionssæt: [49]

ADC, ADD, AND, B/BL, BIC, CMN, CMP, EOR, LDM, LDR/LDRB, MLA, MOV, MUL, MVN, ORR, RSB, RSC, SBC, STM, STR/STRB, SUB, SWI, SWP, TEQ, TST

Thumb-kommandosæt

For at forbedre kodetætheden er processorer, der starter med ARM7TDMI, udstyret med en "thumb"-tilstand. I denne tilstand udfører processoren et alternativt sæt 16-bit instruktioner. De fleste af disse 16-bit instruktioner er oversat til normale ARM instruktioner. Reduktionen i instruktionslængden opnås ved at skjule nogle operander og begrænse adresserbarheden sammenlignet med fuld ARM-instruktionssættilstand.

I Thumb-tilstand har mindre opkoder mindre funktionalitet. For eksempel kan kun grene være betingede, og mange opkoder er begrænset til kun at få adgang til halvdelen af ​​hovedprocessorregistrene. Kortere opkoder resulterer generelt i større kodetæthed, selvom nogle opkoder kræver yderligere instruktioner. I situationer, hvor hukommelsesporten eller busbredden er begrænset til 16 bit, er de kortere Thumb-tilstand opkoder meget hurtigere end almindelige 32-bit ARM-opkoder, da mindre kode skal indlæses i processoren med begrænset hukommelsesbåndbredde.

Hardware som Game Boy Advance har typisk en lille mængde RAM tilgængelig med en fuld 32-bit datakanal. Men de fleste operationer udføres gennem en 16-bit eller smallere informationskanal. I dette tilfælde giver det mening at bruge Thumb-kode og manuelt optimere nogle tunge kodesektioner ved at skifte til fulde 32-bit ARM-instruktioner.

Den første processor med en Thumb-kommandodekoder var ARM7TDMI. Alle processorer i ARM9 -familien , såvel som XScale , havde en indbygget Thumb-kommando-dekoder.

Thumb-2 instruktionssæt

Thumb-2 er en teknologi introduceret i ARM1156-kernen, som blev annonceret i 2003. Den udvider det begrænsede 16-bit Thumb-instruktionssæt med yderligere 32-bit instruktioner for at give instruktionssættet ekstra bredde. Målet med Thumb-2 er at opnå Thumb-lignende kodetæthed og 32-bit ARM instruktionssæt ydeevne. Vi kan sige, at i ARMv7 blev dette mål nået.

Thumb-2 udvider både ARM- og Thumb-instruktioner med endnu flere instruktioner, inklusive bitfeltmanipulation, tabelforgrening, betinget udførelse. Det nye "Unified Assembly Language" (UAL) understøtter byggekommandoer til både ARM og Thumb fra den samme kildekode. ARMv7-versionerne af Thumb ligner ARM-kode. Dette kræver forsigtighed og brug af den nye if-then-kommando, som understøtter udførelse af op til 4 på hinanden følgende testtilstandskommandoer. Den ignoreres under kompilering til ARM-kode, men genererer kommandoer under kompilering til ARM-kode. For eksempel:

; hvis (r0 == r1) CMP r0 , r1 ITE EQ ; ARM: ingen kode ... Tommelfinger: IT-instruktion ; så er r0 = r2; MOVEQ r0 , r2 ; ARM: betinget; Tommelfinger: tilstand via ITE 'T' (derefter) ; ellers r0 = r3; MOVNE r0 , r3 ; ARM: betinget; Tommelfinger: tilstand via ITE 'E' (andet) ; huske på, at Thumb MOV-instruktionen ikke har nogen bits til at kode "EQ" eller "NE"

Alle ARMv7 dies understøtter Thumb-2 instruktionssættet, mens nogle dies, som Cortex-m3, kun understøtter Thumb-2. De resterende Cortex og ARM11 dies understøtter både Thumb-2 og ARM instruktionssæt.

Jazelle kommandosæt

Jazelle  er en teknologi, der gør det muligt for Java-bytekode at køre direkte på ARM-arkitekturen som en 3. udførelsestilstand (og instruktionssæt) sammen med almindelige ARM-instruktioner og Thumb-tilstand. Understøttelse af Jazelle-teknologi er angivet med bogstavet "J" i processornavnet - for eksempel ARMv5TEJ. Denne teknologi er blevet understøttet siden ARMv6-arkitekturen, selvom nyere kerner kun indeholder begrænsede implementeringer, der ikke understøtter hardwareacceleration.

ARMv8 og ARM 64-bit instruktionssættet

I slutningen af ​​2011 udkom en ny version af arkitekturen, ARMv8. Det introducerede definitionen af ​​AArch64-arkitekturen, hvor 64-bit A64-instruktionssættet udføres. Understøttelse af 32-bit kommandoer kaldes A32 og udføres på AArch32 arkitekturer. Tommelfingerinstruktioner understøttes i T32-tilstand, kun ved brug af 32-bit arkitekturer. Det er tilladt at køre 32-bit applikationer i et 64-bit OS og køre et virtualiseret 32-bit OS ved hjælp af en 64-bit hypervisor [50] . Applied Micro, AMD, Broadcom, Calxeda, HiSilicon, Samsung, STM og andre har annonceret planer om at bruge ARMv8. Cortex-A53- og Cortex-A57-kernerne, der understøtter ARMv8, blev introduceret af ARM den 30. oktober 2012 [51] .

Både AArch32 og AArch64 understøtter VFPv3, VFPv4 og avanceret SIMD (NEON). Også tilføjet kryptografiske instruktioner til at arbejde med AES , SHA-1 og SHA-256 .

AArch64 funktioner:

  • Nyt A64 instruktionssæt
  • 31 registre til generelle formål, hver 64 bit lange
  • Separate SP- og PC-registre
  • Instruktioner er 32 bit store og mange er de samme som A32 instruktioner
  • De fleste instruktioner fungerer med både 32-bit og 64-bit argumenter
  • Adresser er 64 bit store
  • Avanceret SIMD (NEON) forbedret
  • Øgede antallet af 128-bit registre tilgængelige via NEON, VFPv4, AES kryptoinstruktioner, SHA fra 16 til 32
  • Understøtter beregninger med dobbelt præcision flydende kommatal (64-bit dobbelt)
  • Fuld IEEE 754-overensstemmelse
  • Nyt udelukkelsessystem
  • Virtuel adresseoversættelse fra 48-bit format fungerer ved hjælp af eksisterende LPAE-mekanismer

RISC-funktioner

ARM-arkitekturen har følgende RISC-funktioner:

  • Indlæsnings-/opbevaringsarkitektur
  • Ingen understøttelse af ikke-lineær (ikke-ordjusteret) hukommelsesadgang (nu understøttet i ARMv6-processorer, med nogle undtagelser, og fuldt ud i ARMv7)
  • Ensartet 16x32-bit registerfil
  • Fast instruktionslængde (32 bit) for at forenkle afkodningen ved at reducere kodetætheden. Senere øgede Thumb-tilstand kodetætheden.
  • Enkeltcyklus udførelse

For at kompensere for det enkle design er nogle designfunktioner blevet brugt i sammenligning med moderne processorer som Intel 80286 eller Motorola 68020:

  • Aritmetiske instruktioner erstatter kun betingede koder, når det er nødvendigt
  • En 32-bit multi-register cyklisk skifter, der kan bruges uden tab af ydeevne i de fleste aritmetiske instruktioner og adresseberegninger.
  • Kraftige indekserede adressetilstande
  • Referenceregister til hurtig opkald af bladfunktioner
  • Enkel, men hurtig, med to prioritetsniveauer af interrupt-undersystemet med aktiverede registerbanker.

Betinget udførelse

En af de væsentlige forskelle mellem ARM-arkitekturen (original arkitektur) og andre CPU-arkitekturer er den såkaldte prædikation  - evnen til at betinget udføre instruktioner. Med "betinget udførelse" mener vi her, at instruktionen vil blive eksekveret eller ignoreret afhængigt af den aktuelle tilstand af processorstatusflag. I Thumb and Arm 64 bruges forudsigelse ikke - i den første tilstand er der ingen plads til det i kommandoen (kun 16 bit), og i den anden - forudsigelse er meningsløs og vanskelig at implementere på superskalære arkitekturer .

Mens det for andre arkitekturer som regel kun er betingede springinstruktioner, der har denne egenskab, er ARM-arkitekturen designet til betinget at udføre næsten enhver instruktion. Dette blev opnået ved at tilføje et særligt 4-bit felt ( prædikat ) til deres instruktionskoder. En af dens værdier er forbeholdt det faktum, at instruktionen skal udføres ubetinget, og resten koder for en eller anden kombination af betingelser (flag). På den ene side, givet den begrænsede samlede længde af instruktionen, reducerede dette antallet af tilgængelige bits til kodning af forskydninger i hukommelsesadgangskommandoer, men på den anden side gjorde det det muligt at slippe af med forgreningsinstruktioner ved generering af kode til små hvis-blokke.

Et eksempel, der almindeligvis betragtes som illustration, er Euclids subtraktionsbaserede algoritme . I C-sprog ser det sådan ud:

mens ( i != j ) { if ( i > j ) { i -= j ; } andet { j -= i ; } }

Og i ARM assembler - sådan her:

loop CMP Ri , Rj ; sæt betingelsen "NE" hvis (i != j), ; "GT" hvis (i > j), ; eller "LT" hvis (i < j) SUBGT Ri , Ri , Rj ; hvis "GT" (større end), i = ij; SUBLT Rj , Rj , Ri ; hvis "LT" (mindre end), j = ji; BNEloop ; _ hvis "NE" (ikke lig), så loop

Det kan ses af koden, at brugen af ​​prædikation gjorde det muligt helt at undgå at forgrene sig i else and then statements. Bemærk, at hvis Ri og Rj er ens, vil ingen af ​​SUB-instruktionerne blive eksekveret, hvilket fuldstændigt eliminerer behovet for en gren, der implementerer et mens-tjek ved hver start af sløjfen, som kunne implementeres, for eksempel ved hjælp af SUBLE ( mindre end eller lig med) instruktion.

En måde, hvorpå Thumb-kode opnår større pladsbesparelser, er netop ved at fjerne 4-bit prædikatet fra alle instruktioner undtagen grene.

Andre funktioner

Et andet træk ved instruktionssættet er evnen til at kombinere forskydninger og rotationer i en "informationsbehandlings"-instruktion (aritmetisk, logisk, register-register-bevægelse), således at for eksempel udtrykket C:

a += ( j << 2 );

kan konverteres til et ord og en cyklus instruktion i ARM:

ADD Ra , Ra , Rj , LSL #2

Dette får typiske ARM-programmer til at være tættere end normalt med mindre hukommelsesadgang. Dermed bliver rørledningen brugt meget mere effektivt. Selvom ARM kører med hastigheder, som mange ville betragte som langsomme, konkurrerer den forholdsvis let med mange mere sofistikerede CPU-arkitekturer.

ARM-processoren har også nogle funktioner, der sjældent findes i andre RISC-arkitekturer, såsom adressering i forhold til programtælleren (faktisk er ARM-programtælleren en af ​​16 registre), såvel som før- og post-inkrement-adresseringstilstande.

En anden funktion, der er værd at bemærke, er, at nogle tidlige ARM-processorer (før ARM7TDMI), for eksempel, ikke har instruktioner til lagring af 2-byte-numre. Det er således strengt taget umuligt for dem at generere effektiv kode, der opfører sig som forventet fra C-objekter af typen "volatile int16_t".

Pipeline og andre implementeringsaspekter

ARM7 og tidligere har en tre-trins pipeline. Dette er stadierne af overførsel, afkodning og udførelse. Højere ydeevne arkitekturer som ARM9 har mere komplekse pipelines. Cortex-a8 har en 13-trins pipeline.

Koprocessorer

Arkitekturen giver mulighed for at udvide instruktionssættet ved hjælp af coprocessorer, der kan adresseres ved hjælp af MCR, MRC, MRRC, MCRR og lignende instruktioner. Coprocessorpladsen er logisk opdelt i 16 coprocessorer nummereret fra 0 til 15, hvor den 15. er reserveret til nogle typiske administrationsfunktioner såsom cache-styring og hukommelsesstyringsenhed ( på processorer, der har dem).

På ARM-baserede maskiner forbindes periferiudstyr typisk til processoren ved at kortlægge deres fysiske registre i ARM-hukommelse eller coprocessor-hukommelse, eller ved at tilslutte dem til busser, som igen er forbundet til processoren. Adgang til coprocessorer har en længere latenstid, så nogle perifere enheder er designet til at blive tilgået i begge retninger. I andre tilfælde bruger chipudviklere kun coprocessorintegrationsmekanismen. For eksempel bør en billedbehandlingsmotor bestå af en lille ARM7TDMI-kerne koblet med en coprocessor, der understøtter primitive operationer til behandling af elementære HDTV-kodninger.

Forbedret SIMD (NEON)

En udvidelse af avanceret SIMD, også kaldet NEON-teknologi, er et kombineret 64-bit og 128-bit single instruction multiple data ( SIMD ) instruktionssæt, der giver standardiseret acceleration til medie- og signalbehandlingsapplikationer. NEON kan afkode mp3 -lydformat ved 10 MHz processorfrekvens og kan arbejde med GSM AMR (adaptive multi-rate) tale-codec ved maksimalt 13 MHz. Det har et imponerende sæt instruktioner, separate registerfiler og et uafhængigt eksekveringssystem på hardwareniveau. NEON understøtter 8-, 16-, 32-, 64-bit heltal, enkelt præcision og information om flydende komma og fungerer i SIMD-operationer til lyd- og videobehandling (grafik og spil). I NEON understøtter SIMD op til 16 operationer ad gangen.

En af ulemperne (eller f.eks. en funktion) ved den forbedrede SIMD er, at coprocessoren udfører instruktionerne fra den forbedrede SIMD med en ret betydelig forsinkelse i forhold til hovedprocessorkoden, forsinkelsen når to dusin cyklusser eller mere (afhængigt af arkitekturen og specifikke forhold). Af denne grund, når hovedprocessoren forsøger at bruge resultaterne af coprocessorens beregning, vil udførelsen blive fastfrosset i et betydeligt tidsrum.

VFP

VFP (Vector Floating Point) teknologi er en udvidelse af coprocessoren i ARM-arkitekturen. Den udfører lavprisberegninger på enkelt/dobbelt præcision flydende kommatal, der er fuldt kompatible med ANSI/IEEE Std 754-1985 Standard for binær flydende kommaaritmetik . VFP udfører flydende kommaberegninger, der er velegnede til en lang række applikationer såsom PDA'er, smartphones, lydkomprimering, 3D-grafik og digital lyd, samt printere og set-top-bokse. VFP-arkitekturen understøtter også udførelse af korte vektorinstruktioner. Men da processoren udfører operationer sekventielt på hvert element i vektoren, kan VFP ikke kaldes et ægte SIMD-instruktionssæt. Denne tilstand kan være nyttig i grafik- og signalbehandlingsapplikationer, da den reducerer kodestørrelse og instruktionsgenerering.

Andre flydende komma- og/eller SIMD-coprocessorer, der findes på ARM-processorer, omfatter FPA , FPE , iwMMXt . De giver samme funktionalitet som VFP, men er ikke kompatible med det på opcode -niveau .

Sikkerhedsudvidelser

Sikkerhedsudvidelser markedsført som TrustZone Technology findes i ARMv6KZ og andre nyere applikationsprofilerede arkitekturer. Det giver et billigt alternativ til at tilføje en dedikeret sikkerhedsmotor ved at levere 2 vCPU'er understøttet af hardwareadgangskontrol. Dette gør det muligt for applikationskernen at skifte mellem to tilstande kaldet "verdener" (for at undgå forveksling med mulige domænenavne) for at forhindre information i at lække fra den vigtigere verden til den mindre vigtige. Denne verdensomskifter er normalt ortogonal i forhold til alle andre processorfunktioner. Således kan hver verden køre uafhængigt af andre verdener ved hjælp af den samme kerne. Henholdsvis hukommelse og periferiudstyr er lavet til at passe til kernens verden, og kan bruge dette til at få adgangskontrol til kernehemmeligheder og koder. Typiske TrustZone Technology-applikationer bør køre et komplet operativsystem i den mindre vigtige verden og kompakt, sikkerhedsspecifik kode i den vigtigere verden, hvilket giver Digital Rights Management meget mere kontrol over mediebrug på ARM-baserede enheder og forhindrer uautoriseret adgang til enheden..

I praksis, da de specifikke detaljer om implementeringen af ​​TrustZone forbliver virksomhedens ejendom og ikke afsløres, er det fortsat uklart, hvilket sikkerhedsniveau der er garanteret for denne trusselsmodel.

Debugging

Alle moderne ARM-processorer har debugging-hardware, for uden dem ville software-debuggere ikke være i stand til at udføre de mest basale operationer såsom stop, indrykning, indstilling af breakpoints efter genstart.

ARMv7-arkitekturen definerer grundlæggende fejlfindingsfunktioner på arkitektonisk niveau. Disse inkluderer pausepunkter, overvågningspunkter og udførelse af kommandoer i fejlretningstilstand. Sådanne værktøjer var også tilgængelige med EmbeddedICE debug-modulet. Begge tilstande understøttes - stop og gennemse. Den faktiske transportmekanisme, der bruges til at få adgang til debugging-værktøjerne, er ikke arkitektonisk specificeret, men implementeringen inkluderer typisk JTAG- understøttelse .

Der er en separat "kerne-visning"-fejlretningsarkitektur, som ikke er arkitektonisk påkrævet af ARMv7-processorer.

Registre

ARM leverer 31 32-bit registre til generelle formål . Afhængigt af processorens tilstand og tilstand har brugeren kun adgang til et strengt defineret sæt registre. I ARM-tilstand er 17 registre konstant tilgængelige for udvikleren:

  • 13 registre til generelle formål (r0..r12).
  • Stack Pointer (r13) - indeholder stakmarkøren for det program, der udføres.
  • Linkregister (r14) - indeholder returadressen i filialvejledning.
  • Programtæller (r15) - bit [31:1] indeholder adressen på den instruktion, der udføres.
  • Current Program Status Register (CPSR) - indeholder flag, der beskriver processorens aktuelle tilstand. Det ændres, når der udføres mange instruktioner: logisk, aritmetisk osv.

I alle tilstande undtagen brugertilstand og systemtilstand er SPSR (Save Program Status Register) også tilgængelig. Efter en undtagelse opstår, lagres CPSR-registret i SPSR. Processorens tilstand (tilstand, tilstand; aritmetiske flag, logiske operationer, afbrydelsesaktivering) er således fast i øjeblikket umiddelbart før afbrydelsen [52] .

usr sys svc ca und irq fiq
R0
R1
R2
R3
R4
R5
R6
R7
R8 R8_fiq
R9 R9_fiq
R10 R10_fiq
R11 R11_fiq
R12 R12_fiq
R13 R13_svc R13_abt R13_und R13_irq R13_fiq
R14 R14_svc R14_abt R14_und R14_irq R14_fiq
15 kr
CPSR
SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq

Registrer aliaser:

reg. funkt. args vars GCC Kommentar
R0 a1 et N - funktionsargument
R1 a2
R2 a3
R3 a4
R4 v1 vN - registervariabel
R5 v2
R6 v3
R7 v4
R8 v5
R9 SB v6 SB - Statisk Basisregister
R10 v7 SL SL-?
R11 v8 FP FP - Stack frame adresse  ?
R12 IP IP - Intra-procedure call scratch register
R13 SP stak pointer
R14 LR Link register
15 kr PC Program tæller

Arbejde med hukommelse

ARM-arkitekturen bruger et enkelt adresserum [53] . I praksis betyder dette skema, at en adresse kan pege på hukommelse ( RAM eller ROM ) eller I/O-porte, i modsætning til et skema, hvor I/O-porte har deres eget adresserum.

Understøttede I/O-systemer

De fleste af de eksisterende produkter, der anvender ARM-arkitekturen, er komplette systemer på en chip, der har evnen til at arbejde med eksternt dynamisk random access memory ( DRAM ) og indeholder controllere til mange perifere busser, især USB , IIC (I2C), lydenheder, controllere til at arbejde med flash-medier af SD- og MMC -standarder , display-controllere og digitale kameraer (MIPI).

Alle processorer har generelle input/output (GPIO) linjer. I forbrugerenheder kan "hurtig start" og lydstyrkekontrolknapper, signal-LED'er, et tastatur osv. tilsluttes dem.

OS-startproces på ARM-maskiner

Efter at have tændt for systemet baseret på ARM-processoren, indlæses bootloaderen og adressen på dets indgangspunkt fra ROM-hukommelsen. Opstartsindlæseren præ-initialiserer systemet og udfylder dermed den samme rolle, som BIOS'en udfører på x86-systemer, hvorefter den kan indlæse enten systemindlæseren eller OS direkte.

Der er ingen enkelt standard for boot-loaderen. En U-Boot bootloader kan bruges , og UEFI bruges ofte til 64-bit ARMv8. Mange applikationer bruger deres egne læssere.

OS understøtter ARM

ARM-arkitekturen understøttes af mange operativsystemer. Mest brugt: Linux (inklusive Android ), iOS , Windows Phone .

Forskellige Unix- og Unix-lignende operativsystemer kan arbejde på systemer med en ARM-processor: Linux (mange distributioner), iOS , Android , BSD ( FreeBSD , NetBSD , OpenBSD ), QNX , Plan 9 , Inferno , OpenSolaris (2008—2009 [54) ] ), Firefox OS , macOS Big Sur .

Platformen lancerer også separate varianter af Windows -familien : Windows CE , Windows Phone , Windows RT , Windows 10 .

Derudover understøttes ARM af: A2 , FreeRTOS , Nucleus , Symbian OS , RISC OS , RISC iX .

Se også

  • OpenRISC  - 2000 arkitektur med GPL implementering af or1k
  • LEON  - gratis implementeringer (GPL, LGPL) af SPARC V8-arkitekturen, der dukkede op i 1997
  • OpenSPARC  er en gratis (GPL) implementering af SPARC V9-arkitekturen fra 2005
  • OpenPOWER  - IBM Power- arkitektur , grundlagt i 2013 af IBM, Google, Mellanox, NVIDIA
  • RISC-V  er et gratis og åbent arkitektur- og instruktionssæt til mikroprocessorer og mikrocontrollere skabt i 2010
  • MIPS  - Instruktionssæt og MIPS-arkitektur

Noter

  1. ARM Limited beskæftiger sig udelukkende med udvikling af kerner og værktøjer til dem ( kompilere , fejlfindingsværktøjer osv.), og tjener penge på at licensere arkitekturen til tredjepartsproducenter.
  2. System på en chip 1892VM14Ya . multicore.ru Hentet 28. december 2018. Arkiveret fra originalen 29. december 2018.
  3. 1 2 D. Kozlov-Kononov. Processorkerner fra Cortex-familien. Kombination af høj ydeevne og lavt strømforbrug Arkiveret 24. november 2013 på Wayback Machine , Electronics Magazine, nr. #8/2010
  4. Introduktionsvejledning til ARM Cortex-M3 mikrocontrollere . Hentet 29. september 2013. Arkiveret fra originalen 27. september 2013.
  5. "Væbnet til stuen" Arkiveret 9. november 2012 på Wayback Machine .
  6. "An interview with Steve Furber" Arkiveret 27. juli 2011 på Wayback Machine // Communications of the ACM, May 2011, Vol. 54 nr. 5, side 34-39, doi:10.1145/1941487.1941501
  7. Manners, David . ARM's way , Electronics Weekly  (29. april 1998). Arkiveret fra originalen den 29. juli 2012. Hentet 26. oktober 2012.
  8. Sophie Wilson-CHM . Hentet 4. april 2019. Arkiveret fra originalen 4. april 2019.
  9. Apache-benchmarks for Calxedas 5-Watt webserver - ARM-servere, nu! (utilgængeligt link) . Hentet 26. november 2012. Arkiveret fra originalen 30. oktober 2012. 
  10. Overskyet med mulighed for ARM. Hvad mikroservermarkedet betyder for halvlederleverandører Arkiveret 2. december 2012 på Wayback Machine // Oppenheimer & Co. Inc., 30. marts 2012
  11. Eksklusivt: ARM Cortex-A15 "40 Per Cent" hurtigere end Cortex-A9 . Hentet 5. oktober 2013. Arkiveret fra originalen 21. juli 2011.
  12. Cortex-A15-  processor . ARM. — Præsentation af processorer i ARM CortexA15 MPCore-familien på producentens hjemmeside. Hentet 20. april 2012. Arkiveret fra originalen 30. maj 2012.
  13. ARM Cortex-A15 - Processor op til 2,5 GHz, ikke kun til smartphones . Ferra.ru (10. september 2010). Hentet 20. april 2012. Arkiveret fra originalen 26. april 2012.
  14. Intel Newsroom | Topoverskrifter, seneste nyheder og aktuelle begivenheder fra Intel (link ikke tilgængeligt) . Hentet 4. oktober 2013. Arkiveret fra originalen 6. marts 2009. 
  15. "ARM810 - Dancing to the Beat of a Different Drum" Arkiveret 10. september 2008 på Wayback Machine Arkiveret 23. juli 2011. ARM Holdings præsentation på Hot Chips 1996-08-07.
  16. Register 13, FCSE PID-register Arkiveret 7. juli 2011 på Wayback Machine ARM920T Technical Reference Manual
  17. Neo1973: GTA01Bv4 versus GTA02 sammenligning . Hentet 15. november 2007. Arkiveret fra originalen 13. marts 2012.
  18. S3C2410 . Dato for adgang: 13. januar 2010. Arkiveret fra originalen 13. marts 2012.
  19. Rockbox Samsung SA58xxx-serien . Hentet 22. februar 2008. Arkiveret fra originalen 13. marts 2012.
  20. Rockbox Meizu M6 Port - Hardwareoplysninger . Hentet 22. februar 2008. Arkiveret fra originalen 13. marts 2012.
  21. Dataark - Magic Lantern Firmware Wiki . Hentet 6. juni 2010. Arkiveret fra originalen 18. juli 2011.
  22. STR9 - STR912 - STR912FW44 mikrocontroller - downloadside for dokumenter og filer (utilgængeligt link) . mcu.st.com. Hentet 18. april 2009. Arkiveret fra originalen 10. februar 2007. 
  23. Starlet Arkiveret 10. oktober 2018 på Wayback Machine .
  24. Benchmarks - Albatross (link utilgængeligt) . Albatross-uav.org (18. juni 2005). Hentet 18. april 2009. Arkiveret fra originalen 16. oktober 2008. 
  25. ARM1136J(F)-S - ARM-processor . arm.com. Hentet 18. april 2009. Arkiveret fra originalen 13. marts 2012.
  26. Qualcomm chips kerne ARM - fra telefoner til bærbare computere . xi0.info. Hentet 8. maj 2010. Arkiveret fra originalen 13. marts 2012.
  27. Qualcomm MSM7227 RISC-chipsæt . pdadb.net. Hentet 8. maj 2010. Arkiveret fra originalen 13. marts 2012.
  28. GoForce 6100 . Nvidia.com. Hentet 18. april 2009. Arkiveret fra originalen 13. marts 2012.
  29. Mediatek MT6573 . http://www.mediatek.com.+ Hentet 18. april 2009. Arkiveret fra originalen 6. juni 2012.
  30. Samsung S3C6410 og S3C6430 Series ARM-processorer (utilgængeligt link) . Samsung. Hentet 8. oktober 2009. Arkiveret fra originalen 1. september 2009.   , og Qualcomm MSM7627 som set i Palm Pixi og Motorola Calgary/Devour
  31. Merrit, Rick "ARM strækker sig ud med A5-kerne, grafik, FPGA'er" . EE Times (21. oktober 2009). Hentet 28. oktober 2009. Arkiveret fra originalen 13. marts 2012.
  32. Clarke, Peter ARM tipper planer for Swift- og Sparrow-processorkerner . EE Times (3. februar 2009). Hentet 18. april 2009. Arkiveret fra originalen 13. marts 2012.
  33. Segan, Sascha ARM's Multicore Chips Aim for Netbooks . PC Magazine (9. april 2009). Hentet 18. april 2009. Arkiveret fra originalen 13. marts 2012.
  34. 1 2 3 4 標æº- Arkiveret 29. juli 2013 på Wayback Machine Arkiveret 29. juli 2013.
  35. Cortex-A15-processor - ARM . Hentet 24. oktober 2012. Arkiveret fra originalen 30. maj 2012.
  36. Cortex-A7-processor - ARM . Hentet 24. oktober 2012. Arkiveret fra originalen 31. maj 2016.
  37. Benz, Benjamin Cortex Nachwuchs bei ARM . Heise.de (2. februar 2010). Hentet 3. maj 2010. Arkiveret fra originalen 13. marts 2012.
  38. Clarke, Peter ARM forbereder en lille kerne til mikrocontrollere med lav effekt . EE Times (23. februar 2009). Hentet 30. november 2009. Arkiveret fra originalen 13. marts 2012.
  39. Walko, John NXP først til at demonstrere ARM Cortex-M0 silicium . EE Times (23. marts 2009). Hentet 29. juni 2009. Arkiveret fra originalen 13. marts 2012.
  40. ARM Powered VCA'er " Triad Semiconductor Arkiveret 16. juli 2011 på Wayback Machine Arkiveret 16. juli 2011.
  41. Cortex-M0 brugt i laveffekt touch-controller - 06/10/2009 - Electronics Weekly . Hentet 6. juni 2010. Arkiveret fra originalen 16. august 2011.
  42. Chungbuk Technopark vælger ARM Cortex-M0-processor . Hentet 6. juni 2010. Arkiveret fra originalen 7. oktober 2010.
  43. Google oversæt . Hentet 3. maj 2022. Arkiveret fra originalen 22. januar 2020.
  44. Austriamicrosystems vælger ARM Cortex-M0-processor til blandede signalapplikationer . Hentet 6. juni 2010. Arkiveret fra originalen 22. juli 2011.
  45. "ARM udvider Cortex-familien med første processor optimeret til FPGA" Arkiveret 5. maj 2007 på Wayback Machine , ARM-pressemeddelelse, 19. marts 2007. Hentet 11. april 2007.
  46. "ARM Cortex-M1" Arkiveret 1. april 2007 på Wayback Machine , ARMs produktwebsted. Hentet 11. april 2007.
  47. ARM udvider Cortex-familien med første processor optimeret til FPGA Arkiveret 5. maj 2007 på Wayback Machine .
  48. Kategori:Opkoder -  ARMwiki . www.heyrick.co.uk. Hentet 6. august 2018. Arkiveret fra originalen 6. august 2018.
  49. ARM (downlink) . Hentet 15. april 2013. Arkiveret fra originalen 10. juni 2018. 
  50. ARM lancerer Cortex-A50-serien, verdens mest... - ARM . Hentet 17. april 2013. Arkiveret fra originalen 20. april 2013.
  51. ARM7TDMI (rev 3) Teknisk  referencemanual . Hentet 22. august 2009. Arkiveret fra originalen 13. marts 2012.
  52. http://www.peter-cockerell.net/aalp/html/ch-2.html Arkiveret 8. december 2015 på Wayback Machine "Input- og outputenheder er hukommelseskortlagt. Der er ikke noget koncept med et separat I/O-adresserum. Perifere chips læses og skrives, som om de var hukommelsesområder. Dette betyder, at i praktiske ARM-systemer er hukommelseskortet opdelt i tre områder: RAM, ROM og input/output-enheder (sandsynligvis i faldende størrelsesorden)."
  53. OpenSolaris Project: ARM Platform Port . Sun Microsystems . Arkiveret fra originalen den 13. marts 2012.

Links