ARM (architektura)

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 10. února 2020; kontroly vyžadují 77 úprav .
PAŽE

Logo A.R.M
Vývojář ARM Limited
Bitová hloubka ARMv7 64/32 bit, do ARMv8 pouze 64 bit
Prezentováno 1985
Architektura RISC
Typ registrovat-registrovat
SK kódování ARMv8: pevná (64 bitů), kromě režimu kompatibility kódu
ARMv7 ARMv7/6: smíšená (32 a 16 bitů zarovnána)
ARMv3/2: pevná (32 bitů)
Implementace přechodu podle příznaků stavu
Pořadí bajtů Přepínatelné (big-endian), obvykle z nízké na vysokou (little-endian)
Rozšíření NEON, Thumb-2 (povinné od ARMv7), Jazelle, VFPv4-D16, VFPv4 (vše povinné v ARMv8)
Na mikrokontrolérech: FPv4-SP
 Mediální soubory na Wikimedia Commons

Architektura ARM (z anglického  Advanced RISC Machine  - pokročilý RISC stroj; někdy - Acorn RISC Machine ) - systém příkazů a rodina popisů a hotových topologií 32bitových a 64bitových mikroprocesorových / mikrokontrolérových jader vyvinutých společností ARM Limited [1] .

Mezi držitele licencí hotových topologií jádra ARM patří AMD , Apple , Analog Devices , Atmel , Xilinx , Cirrus Logic , Intel (do 27. června 2006), Marvell , NXP , STMicroelectronics , Samsung , LG , MediaTek , Qualcomm , Sony , Texas Instruments , Nvidia , Freescale , Milandr , ELVIS [2] , HiSilicon , Baikal Electronics .

Významné rodiny procesorů: ARM7 , ARM9 , ARM11 a Cortex [3] [4] .

Mnoho držitelů licence navrhuje své vlastní základní topologie založené na instrukční sadě ARM: DEC StrongARM , Freescale i.MX, Intel XScale , NVIDIA Tegra , ST-Ericsson Nomadik , Krait a Kryo v Qualcomm Snapdragon , Texas Instruments OMAP , Samsung Hummingbird , LG H13 , Apple A6 a HiSilicon K3 .

Popularita

V roce 2006 bylo asi 98 % z více než jedné miliardy mobilních telefonů prodaných ročně vybaveno alespoň jedním procesorem ARM [5] . Od roku 2009 tvořily procesory ARM až 90 % všech vestavěných 32bitových procesorů [6] . Procesory ARM jsou široce používány ve spotřební elektronice, včetně smartphonů, mobilních telefonů a přehrávačů, kapesních herních konzolí, kalkulaček, chytrých hodinek a počítačových periferií, jako jsou pevné disky nebo routery.

Tyto procesory mají nízkou spotřebu energie, takže jsou široce používány ve vestavěných systémech a dominují trhu mobilních zařízení, pro který je tento faktor kritický.

Historie

Po dosažení určitého úspěchu s počítačem BBC Micro přemýšlela britská společnost Acorn Computers o přechodu od relativně slabých procesorů MOS Technology 6502 k výkonnějším řešením a vstupu na trh podnikových počítačů se stejnou platformou BBC Micro . Procesory jako Motorola 68000 a 32016 od National Semiconductor k tomu nebyly vhodné a 6502 nebyl dostatečně výkonný, aby podporoval grafické uživatelské rozhraní [7] .

Společnost potřebovala zcela novou architekturu poté, co otestovala všechny procesory, které měla k dispozici, a zjistila, že jsou neefektivní. Acorn to s vývojem vlastního procesoru myslel vážně a jejich inženýři začali studovat dokumentaci projektu RISC , vyvinutého na Kalifornské univerzitě v Berkeley . Mysleli si, že když se skupině studentů podařilo vytvořit zcela konkurenceschopný procesor, jejich inženýři nebudou mít potíže. Výlet do Western Design Center (Arizona) ukázal inženýrům Stevu Ferberovi a Sophie Wilsonové (tehdy známé jako Roger [8] ), že k uskutečnění tohoto plánu nebudou potřebovat neuvěřitelné zdroje.

Wilson se pustil do vývoje instrukční sady vytvořením simulace nového procesoru na počítači BBC Micro. Její úspěch v tomto přesvědčil inženýry Acorn, že jsou na správné cestě. Ale než mohli jít dál, potřebovali více zdrojů, takže nastal čas, aby Wilson zašel za generálním ředitelem společnosti Acorn Hermanem Hauserem a vysvětlil mu, co se děje. Poté, co dal souhlas, se sešel malý tým, aby implementoval Wilsonův model do hardwaru.

Acorn RISC Machine: ARM2

Oficiální projekt Acorn RISC Machine začal v říjnu 1983. Společnost VLSI Technology křemíku, protože již dodala Acornu ROM čipy a některé zakázkové integrované obvody Vývoj vedli Wilson a Ferber . Jejich hlavním cílem bylo dosáhnout zpracování přerušení s nízkou latencí u technologie MOS Technology 6502. Architektura přístupu do paměti převzatá z 6502 umožnila vývojářům dosáhnout dobrého výkonu bez nákladné implementace modulu DMA . První procesor vyrobila společnost VLSI 26. dubna 1985 – tehdy poprvé začal pracovat a dostal název ARM1. První sériově vyráběné procesory, nazvané ARM2, byly dostupné v následujícím roce.

Jeho první použití bylo jako druhý procesor v BBC Micro , kde byl použit při vývoji simulačního softwaru, který doplnil podpůrné čipy počítače, a také urychlil CAD software používaný při vývoji ARM2. Wilson optimalizoval instrukční sadu ARM pro běh BBC BASIC . Původního cíle all-ARM počítače bylo dosaženo v roce 1987 s vydáním Acorn Archimedes.

Atmosféra kolem projektu ARM byla tak tajná, že když Olivetti v roce 1985 vyjednával o koupi většinového podílu v Acornu, až do konce vyjednávání o vývoji projektu nemluvili. V roce 1992 Acorn opět vyhrál Queen's Award for Enterprise za ARM.

ARM2 měl 32bitovou datovou sběrnici, 26bitový adresní prostor a 16 32bitových registrů. Programový kód musel ležet v prvních 64 megabajtech paměti a počítadlo programu bylo omezeno na 26 bitů, protože horní 4 a spodní 2 bity 32bitového registru sloužily jako příznaky. ARM2 se stal snad nejjednodušším z populárních 32bitových procesorů na světě, má pouze 30 tisíc tranzistorů (pro srovnání procesor Motorola 68000 vyrobený o 6 let dříve měl 68 tisíc tranzistorů). Velká část této jednoduchosti je způsobena nedostatkem mikrokódu (který u 68000 zabírá jednu čtvrtinu až jednu třetinu plochy matrice) a nedostatkem mezipaměti , jak tomu bylo u mnoha procesorů té doby. Tato jednoduchost vedla k nízkým nákladům na energii, zatímco ARM byl mnohem produktivnější než Intel 80286 . Jeho nástupce, procesor ARM3, měl již 4 KB cache, což výkon ještě zvýšilo.

Apple, DEC, Intel: ARM6, StrongARM, XScale

Koncem 80. let začaly Apple Computer a VLSI Technology spolupracovat s Acorn Computers na nových verzích jádra ARM. Práce byla tak důležitá, že Acorn v roce 1990 složil vývojový tým do nové společnosti s názvem Advanced RISC Machines . Z tohoto důvodu je ARM někdy zkracován jako Advanced RISC Machines namísto Acorn RISC Machine . Advanced RISC Machines se stala ARM, když její mateřská společnost ARM Holdings byla kotována na londýnské burze cenných papírů a NASDAQ v roce 1998.

Z nové práce Apple-ARM se nakonec vyvinul ARM6, poprvé vydaný v roce 1992. Apple použil procesor ARM610 založený na ARM6 jako základ pro svůj produkt Apple Newton PDA. V roce 1994 Acorn začal používat ARM610 jako hlavní procesor ve svých počítačích RISC PC . DEC také koupil licenci na architekturu ARM6 (což způsobilo trochu zmatku, protože také vyráběli procesory Alpha ) a začali vyrábět StrongARM. Při 233 MHz tento procesor vyžadoval pouze 1 watt energie (pozdější verze vyžadovaly mnohem méně). Intel později získal práva na toto dílo v důsledku soudního sporu. Intel využil příležitosti a doplnil svou starší řadu I960 o procesor StrongARM a později vyvinul jejich verzi jádra pod značkou XScale , kterou následně prodal společnosti Marvell .

Jádro ARM si po všech těchto změnách zachovalo stejnou velikost. ARM2 měl 30 000 tranzistorů.

Vliv technologie ARM na trh

Procesory rodiny v podstatě dobyly segment masových mobilních produktů (mobilní telefony, PDA) a vestavěných systémů středního a vysokého výkonu (od síťových směrovačů a přístupových bodů až po televizory). Některé společnosti oznamují vývoj výkonných serverů založených na clusterech procesorů ARM [10] , ale zatím se jedná pouze o experimentální projekty s 32bitovou architekturou [11] .

Předchozí vedoucí žebříčku, superpočítač Summit (OLCF-4) , vyvinutý společně IBM (serverové uzly), Mellanox (propojení) a Nvidia (grafické akcelerátory) a instalovaný v Oak Ridge National Laboratory  , se stal druhým a ztratil čestné první místo novému japonskému špičkovému systému Fugaku ( rus. Fugaku ), který ukázal výsledek High Performance / Highly Parallel Linpack (HPL) 415,5 petaflops. Tento ukazatel převyšuje možnosti Summitu 2,8krát. Fugaku je poháněn 48jádrovým A64FX SoC od Fujitsu, což z něj dělá vůbec první systém číslo 1 v seznamu TOP500 s procesory ARM. Při jednoduché nebo nižší přesnosti, která se často používá pro strojové učení a úkoly umělé inteligence, dosahuje Fugaku více než 1 000 petaflopů (1 exaflop). Nový systém je instalován v RIKEN Computational Science Center (R-CCS) v Kobe v Japonsku.

Procesory ARM

V současné době je významných několik rodin procesorů ARM:

V roce 2010 výrobce oznámil procesory Cortex-A15 s kódovým označením Eagle, ARM tvrdí, že jádro Cortex A15 je o 40 procent rychlejší na stejné frekvenci než jádro Cortex-A9 se stejným počtem jader na čip [12] . Produkt vyrobený 28nm procesní technologií má 4 jádra, může pracovat na frekvenci až 2,5 GHz a bude podporován mnoha moderními operačními systémy [13] [14] .

Populární rodina mikroprocesorů xScale společnosti Marvell (do 27. června 2007 - Intel [15] ) je ve skutečnosti rozšířením architektury ARM9 doplněné o sadu instrukcí Wireless MMX , speciálně vyvinutou společností Intel pro podporu multimediálních aplikací.

Verze jádra ARM (tabulka)
Rodina jádra Verze architektury Jádro Funkce Mezipaměť (I/D)/ MMU Typický MIPS @ MHz Používání
ARM1 ARMv1 (zastaralé) ARM1 Ne Procesor ARM Evaluation System BBC Micro
ARM2 ARMv2 (zastaralé) ARM2 Přidán příkaz MUL (násobit) Ne 4 MIPS při 8 MHz
0,33 DMIPS /MHz
Žalud Archimedes , šachový stroj
ARMv2a (zastaralé) ARM250 Integrované MEMC (MMU), GPU, přidané příkazy SWP a SWPB (swap). Ne, MEMC1a 7 MIPS při 12 MHz Žalud Archimedes
ARM3 ARMv2a (zastaralé) ARM2a Poprvé použitá cache celkem 4 kB 12 MIPS @ 25 MHz
0,50 DMIPS/MHz
Žalud Archimedes
ARM6 ARMv3 (zastaralé) ARM60 Poprvé zaveden 32bitový (spíše než 26bitový) adresní prostor paměti Ne 10 MIPS při 12 MHz 3DO interaktivní multiplayer , GPS přijímač Zarlink
ARM600 Stejně jako ARM60, FPA10 matematický koprocesor s plovoucí desetinnou čárkou celkem 4 kB 28 MIPS při 33 MHz
ARM610 Stejně jako ARM60, mezipaměť, žádná sběrnice koprocesoru celkem 4 kB 17 MIPS při 20 MHz
0,65 DMIPS/MHz
Acorn Risc PC 600 , řada Apple Newton 100
ARM7 ARMv3 (zastaralé) ARM700 celkem 8 kB 40 MHz Prototyp CPU karty Acorn Risc PC
ARM710 Jako ARM700 celkem 8 kB 40 MHz Acorn Risc PC 700
ARM710a Jako ARM700 celkem 8 kB 40 MHz 0,68 DMIPS
/MHz
Acorn Risc PC 700 , Apple eMate 300
ARM7100 Stejně jako ARM710a, integrovaný SoC celkem 8 kB 18 MHz Psion Series 5
ARM7500 Stejně jako ARM710a, integrovaný SoC. celkem 4 kB 40 MHz Žalud A7000
ARM7500FE Stejně jako ARM7500, "FE" přidal FPA a EDO paměťové řadiče celkem 4 kB
56 MHz 0,73 DMIPS/ MHz
Síťový počítač Acorn A7000+
ARM7TDMI ARMv4T ARM7TDMI(-S) 3-stupňový dopravník, režim palce Ne 15 MIPS při 16,8 MHz
63 DMIPS při 70 MHz
Game Boy Advance , Nintendo DS , Apple iPod , Lego NXT , Atmel AT91SAM 7, Juice Box , NXP Semiconductors LPC2000 a LH754xx , Actel 's CoreMP7
ARM710T Jako ARM7TDMI, mezipaměť Sdíleno 8 KB, MMU 36 MIPS při 40 MHz Psion Series 5mx , Psion Revo /Revo Plus/Diamond Mako
ARM720T Jako ARM7TDMI, mezipaměť 8 KB sdílené , MMU s rozšířením Fast Context Switch  Extension 60 MIPS při 59,8 MHz Zipit Wireless Messenger , NXP Semiconductors LH7952x
ARM740T Jako ARM7TDMI, mezipaměť MPU
ARMv5TEJ ARM7EJ-S 5-stupňové potrubí, Thumb, Jazelle DBX, pokročilé příkazy DSP žádný
StrongARM ARMv4 SA-110 16KB/16KB MMU 203 MHz 1,0
DMIPS/MHz
Apple Newton série 2x00, Acorn Risc PC , Rebel/Corel Netwinder, Chalice CATS
SA-1100 Stejně jako SA-110, integrovaný SoC 16KB/8KB MMU 203 MHz Netbook Psion
SA-1110 Stejně jako SA-110, integrovaný SoC 16KB/8KB MMU 206 MHz LART (počítač) , Intel Assabet, Ipaq H36x0, Balloon2 , Zaurus SL-5x00, HP Jornada 7xx, Jornada 560 series , Palm Zire 31
ARM8 ARMv4 ARM810 [16] 5-stupňové potrubí, predikce statické větve, dvoupásmová paměť 8 KB unifikovaných, MMU 84 MIPS při 72 MHz
1,16 DMIPS/MHz
Prototyp CPU karty Acorn Risc PC
ARM9TDMI ARMv4T ARM9TDMI 5-stupňový dopravník, Palec žádný
ARM920T Jako ARM9TDMI, mezipaměť 16 KB/16 KB, MMU s FCSE (Fast Context Switch Extension) [17] 200 MIPS @ 180 MHz Armadillo , Atmel AT91SAM 9, GP32 , GP2X (první jádro), Tapwave Zodiac ( Motorola i. MX1), Hewlett Packard HP-49/50 Calculators , Sun SPOT , Cirrus Logic EP9302, EP9307, EP9312, EP9345, S9345 , EP9315 , FIC Neo FreeRunner [18] ), Samsung S3C2410 ( navigační zařízení TomTom ) [19]
ARM922T Jako ARM9TDMI, mezipaměť 8KB/8KB MMU NXP Semiconductors LH7A40x
ARM940T Jako ARM9TDMI, mezipaměť 4 KB/4 KB MPU GP2X (druhé jádro), Meizu M6 Mini Player [20] [21]
ARM9E ARMv5TE ARM946E-S Thumb, Enhanced DSP instrukce, cache variabilní, pevně spojené paměti, MPU Nintendo DS , Nokia N-Gage , Canon PowerShot A470 , Canon EOS 5D Mark II [22] , čipy Conexant 802.11, Samsung S5L2010
ARM966E-S Palec, vylepšené instrukce DSP žádná mezipaměť, TCM STM STR91xF, zahrnuje Ethernet [23]
ARM968E-S Jako ARM966E-S žádná mezipaměť, TCM NXP Semiconductors LPC2900
ARMv5TEJ ARM926EJ-S Thumb, Jazelle DBX, instrukce Enhanced DSP proměnné, TCM, MMU 220 MIPS @ 200 MHz Mobilní telefony: Sony Ericsson (řada K, W); Siemens a Benq (řada x65 a novější); 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 — nezdokumentované jádro v grafickém čipu ATi Hollywood používaném ve Wii, [24] Samsung S3C použitý v Ovladač Squeezebox Duet . Rádio Squeezebox ; NeoMagic MiMagic Family MM6, MM6+, MM8, MTV; Buffalo TeraStation Live ( NAS ); Telečipy TCC7801, TCC7901; systém ZiiLABS ' ZMS-05 na čipu; Western Digital MyBook I World Edition
ARMv5TE ARM996HS Bezhodinový procesor jako ARM966E-S žádné mezipaměti, TCM, MPU
ARM10E ARMv5TE ARM1020E 6stupňový kanál, Thumb, vylepšené instrukce DSP, (VFP) 32KB/32KB MMU
ARM1022E Jako ARM1020E 16KB/16KB MMU
ARMv5TEJ ARM1026EJ-S Thumb, Jazelle DBX, Enhanced DSP instrukce, (VFP) variabilní, MMU nebo MPU Western Digital MyBook II World Edition; Conexant so4610 a so4615 ADSL SoC
Xscale ARMv5TE 80200/IOP310/IOP315 I/O procesor, palec, instrukce Enhanced DSP
80219 400/600 MHz Thecus N2100
  • Procesor Intel 80219 obsahuje vysokorychlostní 32bitové jádro XScale na 400 nebo 600 MHz s 64bitovým rozhraním PCI-X
  • Sběrnice PCI/ PCI-X umožňuje připojení řadičů Gigabit Ethernet
IOP321 600 Bogo Mips při 600 MHz Iyonix
IOP 33x
IOP 34x 1-2 jádro, RAID Acceleration 32K/32K L1, 512K L2, MMU
PXA210/PXA250 Aplikační procesor, 7-stupňová pipeline PXA210: 133 a 200 MHz, PXA250: 200, 300 a 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 a 400 MHz Sony CLIÉ NX73V, NX80V
PXA26x výchozí 400 MHz, až 624 MHz Palm Tungsten T3
PXA27x Aplikační procesor 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 a x51 řada, Motorola Q, Balloon3 , Palmola TX , 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égé, Tregé iPa60, Toshiba Portégé iG550 obchodní navigátor
PXA800(E)F
PXA3XX (kódové označení "Monahans") PXA31x má hardwarový grafický akcelerátor 32KB/32KB L1, TCM, MMU 800 MIPS @ 624 MHz highscreen alex
PXA900 Blackberry 8700, Blackberry Pearl (8100)
IXC1100 Řídicí rovinný procesor
IXP2400/IXP2800
IXP2850
IXP2325/IXP2350
IXP42x NSLU2 IXP460/IXP465
ARM11 ARMv6 ARM1136J(F)-S [26] 8stupňové potrubí, SIMD , Thumb, Jazelle DBX, (VFP), vylepšené instrukce DSP proměnná, 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 (s integrovaným ARM926EJ-S koprocesorem@274 MHz, použitý v E HTCten Glofish , TyTN II , HTC Nike ), Freescale i.MX31 (použito v originále Zune 30gb a Toshiba Gigabeat S), Freescale MXC300-30 ( Nokia E63 , Nokia E71 , Nokia E72 , Nokia 5800 , Nokia E51 , Nokia 6700 Classic , Nokia 6120 Qualcomm MSM7201A, jak je vidět v 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 , Motorola Z6 i627 (Propel Pro) , Qualcomm MSM7227 / MSM7227T, HTC Legend , HTC Wildfire S , LG P500, LG GT540, [27] [28]
ARMv6T2 ARM1156T2(F)-S 9-stupňové potrubí, SIMD , Thumb-2, (VFP), vylepšené instrukce DSP variabilní, MPU
ARMv6KZ ARM1176JZ(F)-S Jako ARM1136EJ(F)-S variabilní, MMU+TrustZone Apple iPhone (originální a 3G) , Apple iPod touch (1. a 2. generace) , Conexant CX2427X , Motorola RIZR Z8 , Motorola RIZR Z10 , NVIDIA GoForce 6100 [29] ; Mediatek MT6573 [30] ; Telečipy TCC9101, TCC9201, TCC8900, Fujitsu MB86H60 , Samsung S3C6410 (např. Samsung Moment ), S3C6430 [31]
ARMv6K ARM11MPCore Jako ARM1136EJ(F)-S, 1-4 jádrový SMP proměnná, MMU Nvidia APX 2500
Rodina jádra Verze architektury Jádro Funkce Mezipaměť (I/D)/MMU Typický MIPS @ MHz Aplikace
Kůra ARMv7-A Cortex-A5 VFP, NEON, Jazelle RCT a DBX, Thumb-2, 8stupňové potrubí, In-order, 1-4 jádrové SMP proměnná (L1), MMU+TrustZone až 1500 (1,5 DMIPS/MHz) "Vrabec" (kódové jméno ARM) [32] [33] [34]
Cortex-A8 VFP, NEON, Jazelle RCT, Thumb-2; 13-stupňové potrubí, In-order, 2 dekodéry [35] variabilní (L1+L2), MMU+TrustZone až 2000 (2,0 DMIPS/MHz při rychlosti od 600 MHz do více než 1 GHz) Řada TI OMAP3xxx , SBM7000, Oregon State University OSWALD , Gumstix Overo Earth , Pandora , Apple iPhone 3GS , Apple iPod touch (3. generace) , Apple iPad ( procesor Apple A4 ), Apple iPhone 4 ( procesor Apple A4 ), 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 na čipu, Boxchip A13
Cortex-A9 Aplikační profil, (VFP), (NEON), Jazelle RCT a DBX, Thumb-2, Superskalární spekulativní emise mimo pořadí (2 dekodéry); 9-12 [35] stupně potrubí MMU+TrustZone 2,5 DMIPS/MHz Apple iPhone 4S , Apple iPad 2 ( Apple A5 ), MediaTek MT6575/6515M, iconBIT NetTAB SKY 3G
Cortex-A9 MPCore Stejně jako Cortex-A9, 1-4 jádrový SMP MMU+TrustZone 10 000 DMIPS @ 2 GHz na TSMC 40G s optimalizovaným výkonem (čtyřjádro?) (2,5 DMIPS/MHz na jádro) PlayStation® Vita , TI OMAP4430/4440 , ST-Ericsson U8500, Nvidia Tegra2 , Samsung Exynos 4210, MediaTek MT6577/6517
Cortex-A15 MPCore 1-32 jádrové SMP; Mimořádný superskalární (3 dekodéry); 15+ dopravníkových stupňů [35] ; VFPv4, NEON [36] MMU, LPAE 3,5 DMIPS/MHz/jádro; 1,0 GHz – 2,5 GHz (@ 28 nm [35] )
Cortex-A7 MPCore [37] FPU, NEON; V pořadí (1 dekodér); 8stupňový dopravník. 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) Vestavěný profil, Thumb-2, (FPU) variabilní mezipaměť, volitelný MPU 600 DMIPS @ 475 MHz Broadcom je uživatel, TI TMS570
ARMv7-ME Cortex-M4 (kódové označení "Merlin") [38] Profil mikrokontroléru, Thumb i Thumb-2, FPU. Hardwarové instrukce MAC, SIMD a rozdělení MPU volitelný 1,25 DMIPS/MHz NXP Semiconductors , STM32 , TI Stellaris LM4F
ARMv7-M Cortex-M3 Profil mikrokontroléru, pouze Thumb-2. instrukce rozdělení hardwaru žádná mezipaměť, volitelný MPU 125 DMIPS při 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, Actel [ SmartFusion , Milandre ]
ARMv6-M Cortex-M0 (kódové označení "Swift") [39] Profil mikrokontroléru, podmnožina Thumb-2 (16bitové instrukce Thumb & BL, MRS, MSR, ISB, DSB a DMB) Žádná mezipaměť 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 Zacíleno na FPGA, profil mikrořadiče, podmnožina Thumb-2 (16bitové instrukce palce a BL, MRS, MSR, ISB, DSB a DMB) Žádné, pevně spojená paměť volitelná Až 136 DMIPS při 170 MHz [46] (0,8 DMIPS/MHz, [47] MHz dosažitelné v závislosti na FPGA) Actel ProASIC3, ProASIC3L, IGLOO a Fusion PSC zařízení , Altera Cyclone III , další produkty FPGA jsou také podporovány, např. Synplicity

[48]

Rodina jádra Verze architektury Jádro Funkce Mezipaměť (I/D)/ MMU Typický MIPS @ MHz Aplikace

Architektura

Již dlouho existuje referenční příručka k architektuře ARM, která vymezuje všechny typy rozhraní, které ARM podporuje, protože detaily implementace každého typu procesoru se mohou lišit. Architektura se postupem času vyvíjela a od ARMv7 byly definovány 3 profily:

Profily mohou podporovat méně příkazů (příkazů určitého typu).

Režimy

Procesor může být v jednom z následujících provozních režimů:

K přepnutí režimu procesoru dojde při výskytu příslušné výjimky nebo úpravou stavového registru.

Sada příkazů

Aby bylo zařízení čisté, jednoduché a rychlé, byla původní výroba ARM provedena bez mikrokódu , jako je jednodušší 8bitový procesor 6502 používaný v předchozích mikropočítačích od Acorn Computers .

Instrukční sada ARM

Režim, ve kterém se provádí 32bitová instrukční sada.

Základní instrukční sada ARM: [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

Palec příkazů set

Pro zlepšení hustoty kódu jsou procesory počínaje ARM7TDMI vybaveny režimem „palec“. V tomto režimu procesor vykonává alternativní sadu 16bitových instrukcí. Většina těchto 16bitových instrukcí je přeložena do normálních instrukcí ARM. Snížení délky instrukce je dosaženo skrytím některých operandů a omezením adresovatelnosti ve srovnání s režimem plné instrukční sady ARM.

V režimu Thumb mají menší operační kódy menší funkčnost. Například pouze větve mohou být podmíněné a mnoho operačních kódů je omezeno na přístup pouze k polovině registrů hlavního procesoru. Kratší operační kódy obecně vedou k větší hustotě kódu, ačkoli některé operační kódy vyžadují další instrukce. V situacích, kdy je šířka paměťového portu nebo sběrnice omezena na 16 bitů, jsou kratší operační kódy v režimu Thumb mnohem rychlejší než běžné 32bitové operační kódy ARM, protože s omezenou šířkou pásma paměti musí být do procesoru nahráno méně kódu.

Hardware jako Game Boy Advance má obvykle k dispozici malé množství paměti RAM s plným 32bitovým datovým kanálem. Většina operací se však provádí prostřednictvím 16bitového nebo užšího informačního kanálu. V tomto případě má smysl použít Thumb kód a ručně optimalizovat některé těžké části kódu pomocí přepnutí na plné 32bitové instrukce ARM.

První procesor s dekodérem příkazů Thumb byl ARM7TDMI. Všechny procesory rodiny ARM9 , stejně jako XScale , měly vestavěný dekodér příkazů Thumb.

Instrukční sada Thumb-2

Thumb-2 je technologie představená v jádře ARM1156, která byla oznámena v roce 2003. Rozšiřuje omezenou 16bitovou sadu instrukcí Thumb o další 32bitové instrukce, aby instrukční sada získala větší šířku. Cílem Thumb-2 je dosáhnout hustoty kódu podobné Thumb a výkonu 32bitové instrukční sady ARM. Dá se říci, že v ARMv7 byl tento cíl splněn.

Thumb-2 rozšiřuje instrukce ARM i Thumb o ještě více instrukcí, včetně manipulace s bitovým polem, větvení tabulek, podmíněného provádění. Nový „Unified Assembly Language“ (UAL) podporuje vytváření příkazů pro ARM i Thumb ze stejného zdrojového kódu. Verze Thumb ARMv7 vypadají jako kód ARM. To vyžaduje opatrnost a použití nového příkazu if-then, který podporuje provedení až 4 po sobě jdoucích příkazů testovacího stavu. Během kompilace do kódu ARM je ignorován, ale generuje příkazy během kompilace do kódu ARM. Například:

; if (ro == r1) CMP r0 , r1 ITE EQ ; ARM: žádný kód ... Palec: IT instrukce ; pak r0 = r2; MOVEQ r0 , r2 ; ARM: podmíněné; Palec: podmínka přes ITE 'T' (pak) ; jinak r0 = r3; MOVNE r0 , r3 ; ARM: podmíněné; Palec: podmínka přes ITE 'E' (jinak) ; připomeňte si, že instrukce Thumb MOV nemá žádné bity pro kódování "EQ" nebo "NE"

Všechny nástroje ARMv7 podporují sadu instrukcí Thumb-2, zatímco některé nástroje, jako například Cortex-m3, podporují pouze Thumb-2. Zbývající matrice Cortex a ARM11 podporují sady instrukcí Thumb-2 i ARM.

Sada příkazů Jazelle

Jazelle  je technologie, která umožňuje bajtovému kódu Java spouštět se přímo na architektuře ARM jako 3. stav provádění (a instrukční sada) spolu s běžnými instrukcemi ARM a režimem Thumb. Podpora technologie Jazelle je označena písmenem „J“ v názvu procesoru – například ARMv5TEJ. Tato technologie je podporována již od architektury ARMv6, i když novější jádra obsahují pouze omezené implementace, které nepodporují hardwarovou akceleraci.

ARMv8 a 64bitová instrukční sada ARM

Na konci roku 2011 byla zveřejněna nová verze architektury ARMv8. Představila definici architektury AArch64, ve které se provádí 64bitová instrukční sada A64. Podpora 32bitových příkazů se nazývá A32 a je prováděna na architekturách AArch32. Instrukce palce jsou podporovány v režimu T32 pouze při použití 32bitových architektur. Je povoleno spouštět 32bitové aplikace v 64bitovém OS a provozovat virtualizovaný 32bitový OS pomocí 64bitového hypervizoru [50] . Applied Micro, AMD, Broadcom, Calxeda, HiSilicon, Samsung, STM a další oznámily plány na použití ARMv8. Jádra Cortex-A53 a Cortex-A57 podporující ARMv8 představil ARM 30. října 2012 [51] .

AArch32 i AArch64 podporují VFPv3, VFPv4 a pokročilé SIMD (NEON). Také přidány kryptografické instrukce pro práci s AES , SHA-1 a SHA-256 .

Vlastnosti AArch64:

  • Nová instrukční sada A64
  • 31 obecných registrů, každý o délce 64 bitů
  • Samostatné registry SP a PC
  • Instrukce mají velikost 32 bitů a mnohé jsou stejné jako instrukce A32
  • Většina instrukcí pracuje s 32bitovými i 64bitovými argumenty
  • Adresy mají velikost 64 bitů
  • Rozšířené pokročilé SIMD (NEON).
  • Zvýšil se počet 128bitových registrů dostupných přes NEON, VFPv4, AES kryptografické instrukce, SHA z 16 na 32
  • Podporuje výpočty s dvojitou přesností čísel s plovoucí desetinnou čárkou (64bitová dvojitá)
  • Plná shoda IEEE 754
  • Nový systém vyloučení
  • Překlad virtuálních adres ze 48bitového formátu funguje pomocí existujících mechanismů LPAE

RISC funkce

Architektura ARM má následující vlastnosti RISC:

  • Architektura načítání/úložiště
  • Žádná podpora pro nelineární (nezarovnaný) přístup k paměti (nyní podporováno v procesorech ARMv6, s některými výjimkami, a plně v ARMv7)
  • Jednotný 16x32bitový registrový soubor
  • Pevná délka instrukce (32 bitů) pro zjednodušení dekódování snížením hustoty kódu. Později režim Thumb zvýšil hustotu kódu.
  • Provedení jednoho cyklu

Pro kompenzaci jednoduchého designu byly ve srovnání s moderními procesory, jako je Intel 80286 nebo Motorola 68020, použity některé konstrukční prvky:

  • Aritmetické instrukce nahrazují podmíněné kódy pouze v případě potřeby
  • 32bitový víceregistrový cyklický posuvník, který lze použít bez ztráty výkonu ve většině aritmetických instrukcí a výpočtů adres.
  • Výkonné režimy indexovaných adres
  • Referenční registr pro rychlé volání funkcí listu
  • Jednoduché, ale rychlé, se dvěma úrovněmi priority subsystému přerušení s povolenými bankami registrů.

Podmíněné provedení

Jedním z podstatných rozdílů mezi architekturou ARM (original architecture) a ostatními architekturami CPU je tzv. predikace  – schopnost podmíněně provádět instrukce. Pod pojmem "podmíněné provedení" zde rozumíme, že instrukce bude provedena nebo ignorována v závislosti na aktuálním stavu příznaků stavu procesoru. V Thumb and Arm 64 se predikace nepoužívá - v prvním režimu pro ni v příkazu není místo (pouze 16 bitů) a ve druhém - predikace je nesmyslná a obtížně implementovatelný na superskalárních architekturách .

Zatímco pro jiné architektury mají tuto vlastnost zpravidla pouze instrukce podmíněného skoku, architektura ARM byla navržena tak, aby podmíněně provedla téměř jakoukoli instrukci. Toho bylo dosaženo přidáním speciálního 4bitového pole ( predikátu ) do jejich instrukčních kódů. Jedna z jeho hodnot je vyhrazena pro to, že instrukce musí být provedena bezpodmínečně, a zbytek kóduje jednu nebo jinou kombinaci podmínek (příznaků). Na jednu stranu to s ohledem na omezenou celkovou délku instrukce snížilo počet bitů dostupných pro kódování offsetů v příkazech pro přístup do paměti, ale na druhou stranu to umožnilo zbavit se větvených instrukcí při generování kódu pro malé if-bloky.

Příklad běžně zvažovaný pro ilustraci je Euklidův algoritmus založený na odčítání . V jazyce C to vypadá takto:

zatímco ( i != j ) { if ( i > j ) { i- = j ; } jinak { j- = i ; } }

A v assembleru ARM - takto:

smyčka CMP Ri , Rj ; nastavit podmínku "NE" if (i != j), ; "GT" if (i > j), ; nebo "LT", pokud (i < j) SUBGT Ri , Ri , Rj ; pokud "GT" (větší než), i = ij; SUBLT Rj , Rj , Ri ; pokud "LT" (menší než), j = ji; BNEloop ; _ pokud "NE" (není rovno), pak smyčka

Z kódu je vidět, že použití predikace umožnilo zcela se vyhnout větvení v příkazech else a then. Všimněte si, že pokud jsou Ri a Rj stejné, nebude provedena žádná z instrukcí SUB, což zcela eliminuje potřebu větve, která implementuje kontrolu while při každém začátku smyčky, což by mohlo být implementováno například pomocí SUBLE ( menší nebo rovno) instrukce .

Jedním ze způsobů, jak Thumb kód dosahuje větší úspory místa, je právě odstranění 4bitového predikátu ze všech instrukcí kromě větví.

Další vlastnosti

Další vlastností instrukční sady je schopnost kombinovat posuny a rotace v instrukci "zpracování informací" (aritmetický, logický, pohyb registr-registr), takže například výraz C:

a += ( j << 2 );

lze v ARM převést na jednoslovnou a cyklickou instrukci:

PŘIDAT Ra , Ra , Rj , LSL #2

To způsobuje, že typické programy ARM jsou hustší než obvykle s menším přístupem do paměti. Potrubí je tak využíváno mnohem efektivněji. I když ARM běží rychlostí, kterou by mnozí považovali za pomalé, poměrně snadno konkuruje mnoha sofistikovanějším architekturám CPU.

Procesor ARM má také některé funkce, které se zřídka vyskytují v jiných architekturách RISC, jako je adresování vzhledem k programovému čítači (ve skutečnosti je programový čítač ARM jedním ze 16 registrů), stejně jako režimy adresování před a po přírůstku.

Další funkcí, která stojí za zmínku, je, že některé rané procesory ARM (před ARM7TDMI) například nemají instrukce pro ukládání 2bajtových čísel. Tedy, přísně vzato, je pro ně nemožné vygenerovat efektivní kód, který se chová tak, jak se očekává od C objektů typu "volatile int16_t".

Potrubí a další aspekty implementace

ARM7 a starší mají třístupňové potrubí. Jedná se o fáze přenosu, dekódování a provádění. Architektury s vyšším výkonem jako ARM9 mají složitější potrubí. Cortex-a8 má 13stupňové potrubí.

Koprocesory

Architektura poskytuje způsob, jak rozšířit instrukční sadu pomocí koprocesorů, které mohou být adresovány pomocí MCR, MRC, MRRC, MCRR a podobných instrukcí. Prostor koprocesoru je logicky rozdělen na 16 koprocesorů očíslovaných 0 až 15, přičemž 15. je vyhrazen pro některé typické funkce správy, jako je správa mezipaměti a provoz jednotky správy paměti (u procesorů, které jimi disponují).

Na strojích založených na ARM jsou periferie obvykle připojeny k procesoru mapováním jejich fyzických registrů v paměti ARM nebo koprocesorové paměti nebo jejich připojením ke sběrnicím, které jsou zase připojeny k procesoru. Přístup ke koprocesorům má delší latenci, takže některé periferie jsou navrženy tak, aby byly přístupné oběma směry. V ostatních případech používají vývojáři čipů pouze mechanismus integrace koprocesoru. Například engine pro zpracování obrazu by se měl skládat z malého jádra ARM7TDMI spojeného s koprocesorem, který podporuje primitivní operace pro zpracování elementárních HDTV kódování.

Enhanced SIMD (NEON)

Rozšířením pokročilé SIMD, označované také jako technologie NEON, je kombinovaná 64bitová a 128bitová instrukční sada s jednou instrukcí s více daty ( SIMD ) , která poskytuje standardizovanou akceleraci pro aplikace pro zpracování médií a signálů. NEON umí dekódovat audio formát mp3 na frekvenci procesoru 10 MHz a může pracovat s kodekem řeči GSM AMR (adaptive multi-rate) na maximálně 13 MHz. Má působivou sadu instrukcí, samostatné soubory registrů a nezávislý systém provádění na úrovni hardwaru. NEON podporuje 8-, 16-, 32-, 64-bitové celé číslo, informace s jednou přesností a plovoucí desetinnou čárkou a pracuje v operacích SIMD pro zpracování zvuku a videa (grafika a hry). V NEON SIMD podporuje až 16 operací najednou.

Jednou z nevýhod (nebo řekněme vlastností) vylepšeného SIMD je, že koprocesor provádí instrukce vylepšeného SIMD s poměrně výrazným zpožděním vzhledem ke kódu hlavního procesoru, zpoždění dosahuje dvou tuctů cyklů nebo více (v závislosti na architektura a specifické podmínky). Z tohoto důvodu, když se hlavní procesor pokusí použít výsledky výpočtu koprocesoru, provádění bude na značnou dobu zmrazeno.

VFP

Technologie VFP (Vector Floating Point) je rozšířením koprocesoru v architektuře ARM. Provádí nízkonákladové výpočty na číslech s pohyblivou řádovou čárkou s jednoduchou/dvojitou přesností, která jsou plně v souladu se standardem ANSI/IEEE Std 754-1985 pro binární aritmetiku s pohyblivou řádovou čárkou . VFP provádí výpočty s pohyblivou řádovou čárkou vhodné pro širokou škálu aplikací, jako jsou PDA, chytré telefony, audio komprese, 3D grafika a digitální zvuk, stejně jako tiskárny a set-top boxy. Architektura VFP také podporuje provádění krátkých vektorových instrukcí. Ale protože procesor provádí operace sekvenčně na každém prvku vektoru, nelze VFP nazvat skutečnou sadou instrukcí SIMD. Tento režim může být užitečný v grafických aplikacích a aplikacích pro zpracování signálu, protože snižuje velikost kódu a generování instrukcí.

Další koprocesory s pohyblivou řádovou čárkou a/nebo SIMD koprocesory, které se nacházejí na procesorech ARM, zahrnují FPA , FPE , iwMMXt . Poskytují stejné funkce jako VFP, ale nejsou s ním kompatibilní na úrovni operačních kódů .

Bezpečnostní rozšíření

Bezpečnostní rozšíření uváděná na trh jako TrustZone Technology se nacházejí v ARMv6KZ a dalších novějších architekturách profilovaných aplikací. Poskytuje levnou alternativu k přidání vyhrazeného bezpečnostního jádra tím, že poskytuje 2 vCPU podporované řízením přístupu k hardwaru. To umožňuje jádru aplikace přepínat mezi dvěma stavy nazývanými „světy“ (aby nedošlo k záměně s případnými názvy domén), aby se zabránilo úniku informací z důležitějšího světa do méně důležitého. Tento přepínač světa je obvykle ortogonální ke všem ostatním schopnostem procesoru. Každý svět tak může běžet nezávisle na ostatních světech pomocí stejného jádra. Paměť a periferie jsou vyrobeny tak, aby vyhovovaly světu jádra, a lze je použít k získání kontroly přístupu k tajemstvím a kódům jádra. Typické aplikace TrustZone Technology by měly provozovat plný operační systém v méně důležitém světě a kompaktní, pro zabezpečení specifický kód v důležitějším světě, což umožňuje správě digitálních práv mnohem větší kontrolu nad používáním médií na zařízeních založených na ARM a brání neoprávněnému přístupu k zařízení..

V praxi, protože konkrétní detaily implementace TrustZone zůstávají majetkem společnosti a nejsou zveřejněny, zůstává nejasné, jaká úroveň zabezpečení je pro tento model hrozby zaručena.

Ladění

Všechny moderní procesory ARM mají ladicí hardware, protože bez nich by softwarové debuggery nemohly provádět ty nejzákladnější operace, jako je zastavení, odsazení, nastavení bodů přerušení po restartu.

Architektura ARMv7 definuje základní funkce ladění na architektonické úrovni. Patří mezi ně body přerušení, sledovací body a provádění příkazů v režimu ladění. Takové nástroje byly k dispozici také s modulem ladění EmbeddedICE. Podporovány jsou oba režimy – zastavení a kontrola. Skutečný transportní mechanismus, který se používá pro přístup k ladicím nástrojům, není architektonicky specifikován, ale implementace obvykle zahrnuje podporu JTAG .

Existuje samostatná architektura ladění "kernel view", která není architektonicky vyžadována procesory ARMv7.

Registry

ARM poskytuje 31 32bitových obecných registrů . V závislosti na režimu a stavu procesoru má uživatel přístup pouze k přesně definované sadě registrů. Ve stavu ARM má vývojář neustále k dispozici 17 registrů:

  • 13 univerzálních registrů (r0..r12).
  • Ukazatel zásobníku (r13) - obsahuje ukazatel zásobníku právě prováděného programu.
  • Link registr (r14) - obsahuje návratovou adresu v pokynech větve.
  • Program Counter (r15) - bity [31:1] obsahují adresu prováděné instrukce.
  • Aktuální registr stavu programu (CPSR) – obsahuje příznaky, které popisují aktuální stav procesoru. Je modifikován při provádění mnoha instrukcí: logických, aritmetických atd.

Ve všech režimech kromě uživatelského a systémového režimu je k dispozici také registr stavu uloženého programu (SPSR). Po výskytu výjimky se registr CPSR uloží do SPSR. Stav procesoru (režim, stav; příznaky aritmetiky, logické operace, povolení přerušení) je tedy pevně stanoven v okamžiku bezprostředně před přerušením [52] .

usr sys svc abt a 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
R15
CPSR
SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq

Registrovat aliasy:

reg. funkt. argumenty vars GCC Komentář
R0 a1 aN - argument funkce
R1 a2
R2 a3
R3 a4
R4 v1 vN - proměnná registru
R5 v2
R6 v3
R7 v4
R8 v5
R9 SB v6 SB - Statický základní registr
R10 v7 SL SL-?
R11 v8 FP FP - adresa rámce zásobníku  ?
R12 IP IP - Registr stíracích volání v rámci procedury
R13 SP ukazatel zásobníku
R14 LR Odkaz na registr
R15 PC Počítadlo programů

Práce s pamětí

Architektura ARM používá jediný adresní prostor [53] . V praxi toto schéma znamená, že adresa může ukazovat na paměť ( RAM nebo ROM ) nebo I/O porty, na rozdíl od schématu, ve kterém I/O porty mají svůj vlastní adresní prostor.

Podporované I/O systémy

Většina stávajících produktů využívajících architekturu ARM jsou kompletní systémy na čipu, které mají schopnost pracovat s externí dynamickou pamětí s náhodným přístupem ( DRAM ) a obsahují řadiče pro mnoho periferních sběrnic, zejména USB , IIC (I2C), zvuková zařízení, řadiče pro práci s flash médii standardů SD a MMC , řadiče zobrazení a digitální fotoaparáty (MIPI).

Všechny procesory mají obecné vstupní/výstupní (GPIO) linky. Ve spotřebitelských zařízeních k nim lze připojit tlačítka „rychlého startu“ a ovládání hlasitosti, signální LED diody, klávesnici atd.

Proces spouštění OS na strojích ARM

Po zapnutí systému založeného na procesoru ARM se z paměti ROM načte bootloader a adresa jeho vstupního bodu. Zavaděč předinicializuje systém, čímž plní stejnou roli, jakou plní BIOS na systémech x86, poté může načíst buď zavaděč systému nebo přímo OS.

Neexistuje jediný standard pro zavaděč. Lze použít zavaděč U-Boot a pro 64bitové ARMv8 se často používá UEFI. Mnoho aplikací používá své vlastní zavaděče.

OS podporující ARM

Architektura ARM je podporována mnoha operačními systémy. Nejpoužívanější: Linux (včetně Androidu ), iOS , Windows Phone .

Na systémech s procesorem ARM mohou pracovat různé operační systémy Unix a Unixu: Linux (mnoho distribucí), iOS , Android , BSD ( FreeBSD , NetBSD , OpenBSD ), QNX , Plan 9 , Inferno , OpenSolaris (2008—2009 [54 ] ), Firefox OS , macOS Big Sur .

Platforma také uvádí na trh samostatné varianty rodiny Windows : Windows CE , Windows Phone , Windows RT , Windows 10 .

ARM navíc podporují: A2 , FreeRTOS , Nucleus , Symbian OS , RISC OS , RISC iX .

Viz také

  • OpenRISC  - architektura 2000 s GPL implementací or1k
  • LEON  - bezplatné implementace (GPL, LGPL) architektury SPARC V8, které se objevily v roce 1997
  • OpenSPARC  je bezplatná (GPL) implementace architektury SPARC V9 z roku 2005
  • OpenPOWER  - architektura IBM Power , založená v roce 2013 společnostmi IBM, Google, Mellanox, NVIDIA
  • RISC-V  je bezplatná a otevřená architektura a instrukční sada pro mikroprocesory a mikrokontroléry vytvořená v roce 2010
  • MIPS  - Instrukční sady a architektura MIPS

Poznámky

  1. ARM Limited se výhradně zabývá vývojem jader a nástrojů pro ně ( kompilátory , ladicí nástroje atd.), přičemž vydělává na licencování architektury výrobcům třetích stran.
  2. Systém na čipu 1892VM14Ya . multicore.ru Získáno 28. prosince 2018. Archivováno z originálu dne 29. prosince 2018.
  3. 1 2 D. Kozlov-Kononov. Procesorová jádra rodiny Cortex. Kombinace vysokého výkonu a nízké spotřeby energie Archivováno 24. listopadu 2013 na Wayback Machine , Electronics Magazine, no. #8/2010
  4. Úvodní příručka k mikrokontrolérům ARM Cortex-M3 . Získáno 29. září 2013. Archivováno z originálu 27. září 2013.
  5. „ARMed for the living room“ Archivováno 9. listopadu 2012 na Wayback Machine .
  6. „Rozhovor se Stevem Furberem“ Archivováno 27. července 2011 na Wayback Machine // Communications of the ACM, květen 2011, sv. 54 č. 5, strany 34–39, doi:10.1145/1941487.1941501
  7. Manners, David . ARM's way , Electronics Weekly  (29. dubna 1998). Archivováno z originálu 29. července 2012. Staženo 26. října 2012.
  8. Sophie Wilson-CHM . Staženo 4. dubna 2019. Archivováno z originálu 4. dubna 2019.
  9. Srovnávací testy Apache pro 5wattový webový server Calxeda – ARM servery, nyní! (nedostupný odkaz) . Získáno 26. listopadu 2012. Archivováno z originálu 30. října 2012. 
  10. Zataženo s možností ARM. Co znamená trh s mikroservery pro dodavatele polovodičů Archivováno 2. prosince 2012 na Wayback Machine // Oppenheimer & Co. Inc, 30. března 2012
  11. Exkluzivně: ARM Cortex-A15 „40 procent“ rychlejší než Cortex-A9 . Získáno 5. října 2013. Archivováno z originálu dne 21. července 2011.
  12. Procesor Cortex-A15  . PAŽE. — Prezentace procesorů rodiny ARM CortexA15 MPCore na stránkách výrobce. Získáno 20. dubna 2012. Archivováno z originálu 30. května 2012.
  13. ARM Cortex-A15 - Procesor až 2,5 GHz, nejen pro chytré telefony . Ferra.ru (10. září 2010). Získáno 20. dubna 2012. Archivováno z originálu 26. dubna 2012.
  14. Intel Newsroom | Hlavní titulky, nejnovější zprávy a aktuální události od společnosti Intel (odkaz není k dispozici) . Získáno 4. října 2013. Archivováno z originálu 6. března 2009. 
  15. „ARM810 – Tanec do rytmu jiného bubnu“ Archivováno 10. září 2008 na Wayback Machine Archivováno 23. července 2011. Prezentace ARM Holdings na Hot Chips 1996-08-07.
  16. Registr 13, registr FCSE PID Archivováno 7. července 2011 v technickém referenčním manuálu Wayback Machine ARM920T
  17. Neo1973: Srovnání GTA01Bv4 versus GTA02 . Získáno 15. listopadu 2007. Archivováno z originálu 13. března 2012.
  18. S3C2410 . Datum přístupu: 13. ledna 2010. Archivováno z originálu 13. března 2012.
  19. Řada Rockbox Samsung SA58xxx . Získáno 22. února 2008. Archivováno z originálu 13. března 2012.
  20. Rockbox Meizu M6 Port - Informace o hardwaru . Získáno 22. února 2008. Archivováno z originálu 13. března 2012.
  21. Datasheets - Magic Lantern Firmware Wiki . Získáno 6. června 2010. Archivováno z originálu 18. července 2011.
  22. Mikrokontrolér STR9 - STR912 - STR912FW44 - stránka pro stahování dokumentů a souborů (nedostupný odkaz) . mcu.st.com. Získáno 18. dubna 2009. Archivováno z originálu 10. února 2007. 
  23. Starlet Archived 10. října 2018 na Wayback Machine .
  24. Benchmarks - Albatros (odkaz není k dispozici) . Albatross-uav.org (18. června 2005). Získáno 18. dubna 2009. Archivováno z originálu dne 16. října 2008. 
  25. ARM1136J(F)-S - Procesor ARM . arm.com. Získáno 18. dubna 2009. Archivováno z originálu 13. března 2012.
  26. Jádro čipů Qualcomm ARM - od telefonů po notebooky . xi0.info. Získáno 8. května 2010. Archivováno z originálu dne 13. března 2012.
  27. Čipová sada Qualcomm MSM7227 RISC . pdadb.net. Získáno 8. května 2010. Archivováno z originálu dne 13. března 2012.
  28. GoForce 6100 . Nvidia.com. Získáno 18. dubna 2009. Archivováno z originálu 13. března 2012.
  29. Mediatek MT6573 . http://www.mediatek.com.+ Získáno 18. dubna 2009. Archivováno z originálu 6. června 2012.
  30. Procesory ARM řady Samsung S3C6410 a S3C6430 (nedostupný odkaz) . Samsung. Získáno 8. října 2009. Archivováno z originálu 1. září 2009.   a Qualcomm MSM7627, jak je vidět v Palm Pixi a Motorola Calgary/Devour
  31. Merrit, Rick "ARM se natahuje s jádrem A5, grafikou, FPGA" . EE Times (21. října 2009). Získáno 28. října 2009. Archivováno z originálu 13. března 2012.
  32. Clarke, Peter ARM tipy na plány pro procesorová jádra Swift a Sparrow . EE Times (3. února 2009). Získáno 18. dubna 2009. Archivováno z originálu 13. března 2012.
  33. Segan, vícejádrové čipy Sascha ARM zaměřené na netbooky . PC Magazine (9. dubna 2009). Získáno 18. dubna 2009. Archivováno z originálu 13. března 2012.
  34. 1 2 3 4 標æº- Archivováno 29. července 2013 na Wayback Machine Archivováno 29. července 2013.
  35. Procesor Cortex-A15 - ARM . Získáno 24. října 2012. Archivováno z originálu 30. května 2012.
  36. Procesor Cortex-A7 - ARM . Získáno 24. října 2012. Archivováno z originálu 31. května 2016.
  37. Benz, Benjamin Cortex Nachwuchs bei ARM . Heise.de (2. února 2010). Získáno 3. května 2010. Archivováno z originálu dne 13. března 2012.
  38. Clarke, Peter ARM připravuje malé jádro pro mikrokontroléry s nízkou spotřebou . EE Times (23. února 2009). Získáno 30. listopadu 2009. Archivováno z originálu 13. března 2012.
  39. Walko, John NXP jako první demo ARM Cortex-M0 silikon . EE Times (23. března 2009). Získáno 29. června 2009. Archivováno z originálu 13. března 2012.
  40. ARM Powered VCAs " Triad Semiconductor Archived 16. července 2011 na Wayback Machine Archived 16. července 2011.
  41. Cortex-M0 použitý v nízkoenergetickém dotykovém ovladači - 6. 10. 2009 - Electronics Weekly . Získáno 6. června 2010. Archivováno z originálu 16. srpna 2011.
  42. Chungbuk Technopark si vybral procesor ARM Cortex-M0 . Získáno 6. června 2010. Archivováno z originálu dne 7. října 2010.
  43. Překladač Google . Získáno 3. května 2022. Archivováno z originálu dne 22. ledna 2020.
  44. Austriamicrosystems si vybral procesor ARM Cortex-M0 pro aplikace se smíšeným signálem . Získáno 6. června 2010. Archivováno z originálu dne 22. července 2011.
  45. „ARM rozšiřuje rodinu Cortex s prvním procesorem optimalizovaným pro FPGA“ Archivováno 5. května 2007 na Wayback Machine , tisková zpráva ARM, 19. března 2007. Staženo 11. dubna 2007.
  46. „ARM Cortex-M1“ Archivováno 1. dubna 2007 na webu Wayback Machine , produkt ARM. Staženo 11. dubna 2007.
  47. ARM rozšiřuje rodinu Cortex o první procesor optimalizovaný pro FPGA Archivováno 5. května 2007 na Wayback Machine .
  48. Kategorie:Opcodes -  ARMwiki . www.heyrick.co.uk. Získáno 6. srpna 2018. Archivováno z originálu dne 6. srpna 2018.
  49. ARM (downlink) . Získáno 15. dubna 2013. Archivováno z originálu 10. června 2018. 
  50. ARM uvádí na trh Cortex-A50 Series, světově nejvíce… - ARM . Získáno 17. dubna 2013. Archivováno z originálu 20. dubna 2013.
  51. ↑ Technický referenční manuál ARM7TDMI (rev 3)  . Získáno 22. srpna 2009. Archivováno z originálu 13. března 2012.
  52. http://www.peter-cockerell.net/aalp/html/ch-2.html Archivováno 8. prosince 2015 na Wayback Machine „Vstupní a výstupní zařízení jsou mapována v paměti. Neexistuje žádný koncept samostatného I/O adresního prostoru. Periferní čipy se čtou a zapisují, jako by to byly oblasti paměti. To znamená, že v praktických systémech ARM je paměťová mapa rozdělena do tří oblastí: RAM, ROM a vstupní/výstupní zařízení (pravděpodobně v sestupném pořadí podle velikosti).
  53. Projekt OpenSolaris: Port platformy ARM . Sun Microsystems . Archivováno z originálu 13. března 2012.

Odkazy