ARM (arkitektur)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 10 februari 2020; kontroller kräver 77 redigeringar .
ÄRM

A.R.M.-logotyp
Utvecklaren ARM Limited
Lite djup ARMv7 64/32 bitar, upp till ARMv8 endast 64 bitar
Presenteras 1985
Arkitektur RISC
Sorts register-register
SK-kodning ARMv8: fast (64 bitar), förutom i ARMv7-kodkompatibilitetsläge
ARMv7/6: blandat (32 och 16 bitar justerade)
ARMv3/2: fast (32 bitar)
Övergångsimplementering genom tillståndsflaggor
Byte-ordning Växlingsbar (big-endian), vanligtvis från låg till hög (little-endian)
Tillägg NEON, Thumb-2 (obligatoriskt sedan ARMv7), Jazelle, VFPv4-D16, VFPv4 (alla obligatoriska i ARMv8)
På mikrokontroller: FPv4-SP
 Mediafiler på Wikimedia Commons

ARM-arkitektur (från engelska  Advanced RISC Machine  - en avancerad RISC-maskin; ibland - Acorn RISC Machine ) - ett system av kommandon och en familj av beskrivningar och färdiga topologier av 32-bitars och 64-bitars mikroprocessor / mikrokontrollerkärnor utvecklade av ARM Limited [1] .

Bland licenstagarna av färdiga ARM-kärntopologier finns AMD , Apple , Analog Devices , Atmel , Xilinx , Cirrus Logic , Intel (till 27 juni 2006), Marvell , NXP , STMicroelectronics , Samsung , LG , Mediacommek , Qual , Sony , Texas Instruments , Nvidia , Freescale , Milandr , ELVIS [2] , HiSilicon , Baikal Electronics .

Betydande processorfamiljer: ARM7 , ARM9 , ARM11 och Cortex [3] [4] .

Många licenstagare designar sina egna kärntopologier baserat på ARM-instruktionsuppsättningen: DEC StrongARM , Freescale i.MX, Intel XScale , NVIDIA Tegra , ST-Ericsson Nomadik , Krait och Kryo i Qualcomm Snapdragon , Texas Instruments OMAP , Samsung Hummingbird , LG H13 , Apple A6 och HiSilicon K3 .

Popularitet

2006 var cirka 98 % av de mer än en miljard mobiltelefoner som säljs årligen utrustade med minst en ARM-processor [5] . Från och med 2009 stod ARM-processorer för upp till 90 % av alla inbäddade 32-bitarsprocessorer [6] . ARM-processorer används ofta inom hemelektronik, inklusive smartphones, mobiltelefoner och spelare, handhållna spelkonsoler, miniräknare, smarta klockor och kringutrustning som hårddiskar eller routrar.

Dessa processorer har låg strömförbrukning, så de används ofta i inbyggda system och dominerar marknaden för mobila enheter, för vilken denna faktor är avgörande.

Historik

Efter att ha nått viss framgång med BBC Micro -datorn funderade det brittiska företaget Acorn Computers på att gå från de relativt svaga MOS Technology 6502-processorerna till mer kraftfulla lösningar och gå in på affärsdatormarknaden med samma BBC Micro- plattform . Processorer som Motorola 68000 och 32016 från National Semiconductor var olämpliga för detta, och 6502:an var inte tillräckligt kraftfull för att stödja ett grafiskt användargränssnitt [7] .

Företaget behövde en helt ny arkitektur efter att det hade testat alla tillgängliga processorer och funnit dem ineffektiva. Acorn menade allvar med att utveckla sin egen processor, och deras ingenjörer började studera dokumentationen av RISC-projektet , utvecklat vid University of California i Berkeley . De trodde att eftersom en grupp studenter lyckades skapa en helt konkurrenskraftig processor, skulle deras ingenjörer inte vara svåra. En resa till Western Design Center (Arizona) visade ingenjörerna Steve Ferber och Sophie Wilson (då känd som Roger [8] ) att de inte skulle behöva otroliga resurser för att genomföra denna plan.

Wilson började utveckla instruktionsuppsättningen genom att bygga en simulering av den nya processorn på en BBC Micro-dator. Hennes framgång i detta övertygade Acorns ingenjörer om att de var på rätt väg. Men innan de kunde gå längre behövde de mer resurser, så det var dags för Wilson att gå till Acorns vd Herman Hauser och förklara vad som pågick. Efter att han gett klartecken samlades ett litet team för att implementera Wilson-modellen i hårdvara.

Acorn RISC Machine: ARM2

Det officiella Acorn RISC Machine-projektet startade i oktober 1983. VLSI Technology eftersom det redan hade försett Acorn med ROM -chips och några anpassade integrerade kretsar Utvecklingen leddes av Wilson och Ferber . Deras huvudsakliga mål var att uppnå låg latensavbrottshantering av MOS Technology 6502. Minnesaccessarkitekturen hämtad från 6502 gjorde det möjligt för utvecklarna att uppnå bra prestanda utan den kostsamma implementeringen av DMA -modulen . Den första processorn producerades av VLSI den 26 april 1985 - det var då den började fungera och fick namnet ARM1. De första massproducerade processorerna, kallade ARM2, blev tillgängliga året efter.

Dess första användning var som en andra processor på BBC Micro , där den användes i utvecklingen av simuleringsprogram, som kompletterade datorns stödchips, samt påskyndade CAD -mjukvaran som användes vid utvecklingen av ARM2. Wilson optimerade ARM-instruktionsuppsättningen för att köra BBC BASIC . Det ursprungliga målet med en helt ARM-dator uppnåddes 1987 med släppet av Acorn Archimedes.

Atmosfären kring ARM-projektet var så hemlig att när Olivetti förhandlade om att köpa en majoritetsandel i Acorn 1985, pratade de inte om utvecklingen av projektet förrän i slutet av förhandlingarna. 1992 vann Acorn återigen Queen's Award for Enterprise för ARM.

ARM2 hade en 32-bitars databuss, ett 26-bitars adressutrymme och 16 32-bitars register. Programkoden måste ligga i de första 64 megabyte av minne, och programräknaren var begränsad till 26 bitar, eftersom de översta 4 och 2 nedre bitarna i ett 32-bitars register fungerade som flaggor. ARM2 har blivit kanske den enklaste av de populära 32-bitarsprocessorerna i världen, med bara 30 tusen transistorer (som jämförelse hade Motorola 68000- processorn, tillverkad 6 år tidigare, 68 tusen transistorer). Mycket av denna enkelhet beror på bristen på mikrokod (som i 68000 tar upp mellan en fjärdedel och en tredjedel av tärningsytan) och bristen på cache , vilket var fallet med många dåtidens processorer. Denna enkelhet ledde till låga energikostnader, medan ARM var mycket mer produktiv än Intel 80286 . Dess efterträdare, ARM3-processorn, hade redan en cache på 4 KB, vilket ökade prestandan ännu mer.

Apple, DEC, Intel: ARM6, StrongARM, XScale

I slutet av 1980-talet började Apple Computer och VLSI Technology arbeta med Acorn Computers på nya versioner av ARM-kärnan. Arbetet var så viktigt att Acorn slog ihop utvecklingsteamet 1990 till ett nytt företag kallat Advanced RISC Machines . Av denna anledning förkortas ARM ibland som Advanced RISC Machines istället för Acorn RISC Machine . Advanced RISC Machines blev ARM när dess moderbolag ARM Holdings noterades på London Stock Exchange och NASDAQ 1998.

Det nya Apple-ARM-arbetet utvecklades så småningom till ARM6, som först släpptes 1992. Apple använde den ARM6-baserade ARM610-processorn som grund för sin Apple Newton PDA-produkt. 1994 började Acorn använda ARM610 som huvudprocessor i sina RISC PC-datorer . DEC köpte också en licens för ARM6- arkitekturen (orsakade lite förvirring eftersom de också gjorde Alpha- processorer ) och började tillverka StrongARM. Vid 233 MHz krävde denna processor endast 1 watt effekt (senare versioner krävde mycket mindre). Intel fick senare rättigheterna till detta verk som ett resultat av en rättegång. Intel passade på att komplettera sin gamla I960-linje med StrongARM-processorn och utvecklade senare sin version av kärnan under varumärket XScale , som de sedan sålde till Marvell .

ARM-kärnan behöll samma storlek efter alla dessa förändringar. ARM2 hade 30 000 transistorer.

Effekten av ARM-teknik på marknaden

I grund och botten har processorerna i familjen erövrat segmentet av massmobilprodukter (mobiltelefoner, handdatorer) och inbyggda system med medelhög och hög prestanda (från nätverksroutrar och åtkomstpunkter till TV-apparater). Vissa företag tillkännager utvecklingen av effektiva servrar baserade på kluster av ARM-processorer [10] , men än så länge är dessa endast experimentella projekt med en 32-bitars arkitektur [11] .

Listans tidigare ledare, Summit-superdatorn (OLCF-4) , utvecklad gemensamt av IBM (servernoder), Mellanox (interconnect) och Nvidia (grafiska acceleratorer), och installerad vid Oak Ridge National Laboratory  , blev den andra och förlorade hedervärd förstaplats till det nya japanska toppsystemet Fugaku ( rus. Fugaku ), som visade ett High Performance / Highly Parallel Linpack (HPL) resultat på 415,5 petaflops. Denna indikator överstiger Summits kapacitet med 2,8 gånger. Fugaku drivs av Fujitsus 48-kärniga A64FX SoC, vilket gör det till det första någonsin #1-systemet på TOP500-listan med ARM-processorer. Med enkel eller lägre precision, som ofta används för maskininlärning och artificiell intelligens, når Fugaku över 1 000 petaflops (1 exaflops). Det nya systemet är installerat på RIKEN Computational Science Center (R-CCS) i Kobe, Japan.

ARM-processorer

Flera familjer av ARM-processorer är för närvarande betydande:

2010 tillkännagav tillverkaren Cortex-A15-processorer med kodnamnet Eagle, ARM hävdar att Cortex A15-kärnan är 40 procent snabbare vid samma frekvens än Cortex-A9- kärnan med samma antal kärnor per chip [12] . Produkten, tillverkad med en 28-nm processteknik, har 4 kärnor, kan arbeta med en frekvens på upp till 2,5 GHz och kommer att stödjas av många moderna operativsystem [13] [14] .

Marvells populära xScale- familj av mikroprocessorer (till 27 juni 2007 - Intel [15] ) är faktiskt en förlängning av ARM9- arkitekturen , kompletterad med Wireless MMX- instruktionsuppsättningen , speciellt utvecklad av Intel för att stödja multimediaapplikationer.

ARM-kärnversioner (tabell)
Kärnfamilj Arkitektur version Kärna Funktioner Cache (I/D)/ MMU Typiska MIPS @ MHz Användande
ARM1 ARMv1 (utfasad) ARM1 Inte ARM Evaluation System BBC Micro- processor
ARM2 ARMv2 (utfasad) ARM2 Lade till MUL-kommando (multiplicera) Inte 4 MIPS @ 8 MHz
0,33 DMIPS /MHz
Acorn Archimedes , schackmaskin
ARMv2a (utfasad) ARM250 Integrerad MEMC (MMU), GPU, tillagda SWP och SWPB (swap) kommandon Nej, MEMC1a 7 MIPS @ 12 MHz Acorn Archimedes
ARM3 ARMv2a (utfasad) ARM2a Första använda cachen 4 KB totalt 12 MIPS @ 25 MHz
0,50 DMIPS/MHz
Acorn Archimedes
ARM6 ARMv3 (utfasad) ARM60 32-bitars (snarare än 26-bitars) minnesadressutrymme infördes för första gången Inte 10 MIPS @ 12 MHz 3DO Interactive Multiplayer , Zarlink GPS-mottagare
ARM600 Liksom ARM60, FPA10 flyttalsmatematisk coprocessor 4 KB totalt 28 MIPS @ 33 MHz
ARM610 Som ARM60, cache, ingen samprocessorbuss 4 KB totalt 17 MIPS @ 20 MHz
0,65 DMIPS/MHz
Acorn Risc PC 600 , Apple Newton 100-serien
ARM7 ARMv3 (utfasad) ARM700 8 KB totalt 40 MHz Acorn Risc PC Prototyp CPU-kort
ARM710 Som ARM700 8 KB totalt 40 MHz Acorn Risc PC 700
ARM710a Som ARM700 8 KB totalt 40 MHz 0,68 DMIPS
/MHz
Acorn Risc PC 700 , Apple eMate 300
ARM7100 Som ARM710a, integrerad SoC 8 KB totalt 18 MHz Psion Series 5
ARM7500 Som ARM710a, integrerad SoC. 4 KB totalt 40 MHz Acorn A7000
ARM7500FE Precis som ARM7500 lade "FE" till FPA- och EDO-minneskontroller 4 KB totalt
56 MHz 0,73 DMIPS/ MHz
Acorn A7000+ nätverksdator
ARM7TDMI ARMv4T ARM7TDMI(-S) 3-stegs transportör, tumläge Inte 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 och LH754xx , Actels CoreMP7
ARM710T Som ARM7TDMI, cache 8 KB delad, MMU 36 MIPS @ 40 MHz Psion Series 5mx , Psion Revo /Revo Plus/Diamond Mako
ARM720T Som ARM7TDMI, cache 8 KB delad , MMU med Fast Context Switch  Extension 60 MIPS @ 59,8 MHz Zipit Wireless Messenger , NXP Semiconductors LH7952x
ARM740T Som ARM7TDMI, cache MPU
ARMv5TEJ ARM7EJ-S 5-stegs pipeline, Thumb, Jazelle DBX, avancerade DSP-kommandon ingen
Stark arm ARMv4 SA-110 16KB/16KB MMU 203 MHz 1,0 DMIPS
/MHz
Apple Newton 2x00-serien, Acorn Risc PC , Rebel/Corel Netwinder, Chalice CATS
SA-1100 Som SA-110, integrerad SoC 16KB/8KB MMU 203MHz Psion netBook
SA-1110 Som SA-110, integrerad SoC 16KB/8KB MMU 206MHz LART (dator) , Intel Assabet, Ipaq H36x0, Balloon2 , Zaurus SL-5x00, HP Jornada 7xx, Jornada 560 series , Palm Zire 31
ARM8 ARMv4 ARM810 [16] 5-stegs pipeline, statisk grenprediktion, dubbelbandbreddsminne 8 KB unified, MMU 84 MIPS @ 72 MHz
1,16 DMIPS/MHz
Acorn Risc PC Prototyp CPU-kort
ARM9TDMI ARMv4T ARM9TDMI 5-stegs transportör, tumme ingen
ARM920T Som 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örsta kärnan), Tapwave Zodiac ( Motorola i. MX1), Hewlett Packard HP-49/50 Miniräknare , Sun SPOT , Cirrus Logic EP9302, EP9307, EP9312, 42 EP9312 , Samsung Ty2CTN , FIC Neo FreeRunner [18] ), Samsung S3C2410 ( TomTom navigationsenheter) [19]
ARM922T Som ARM9TDMI, cache 8KB/8KB MMU NXP Semiconductors LH7A40x
ARM940T Som ARM9TDMI, cache 4 KB/4 KB MPU GP2X (andra kärnan), Meizu M6 Mini Player [20] [21]
ARM9E ARMv5TE ARM946E-S Tumme, förbättrade DSP-instruktioner, cachar variabla, tätt kopplade minnen, MPU Nintendo DS , Nokia N-Gage , Canon PowerShot A470 , Canon EOS 5D Mark II [22] , Conexant 802.11 chips, Samsung S5L2010
ARM966E-S Tumme, förbättrade DSP-instruktioner ingen cache, TCM STM STR91xF, inkluderar Ethernet [23]
ARM968E-S Som ARM966E-S ingen cache, TCM NXP Semiconductors LPC2900
ARMv5TEJ ARM926EJ-S Tummen, Jazelle DBX, Enhanced DSP instruktioner variabler, TCM, MMU 220 MIPS @ 200 MHz Mobiltelefoner: Sony Ericsson (K, W-serien); Siemens och Benq (x65-serien och nyare); 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 — odokumenterad kärna i ATi Hollywood -grafikkretsen som används i Wii, [24] Samsung S23 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å ett chip; Western Digital MyBook I World Edition
ARMv5TE ARM996HS Klocklös processor som ARM966E-S inga cacher, TCM, MPU:er
ARM10E ARMv5TE ARM1020E 6-stegs pipeline, tumme, förbättrade DSP-instruktioner, (VFP) 32KB/32KB MMU
ARM1022E Som 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 och so4615 ADSL SoCs
Xscale ARMv5TE 80200/IOP310/IOP315 Instruktioner för I/O-processor, tumme, förbättrad DSP
80219 400/600 MHz Thecus N2100
  • Intel 80219-processorn inkluderar en höghastighets 32-bitars XScale -kärna på 400 eller 600 MHz med ett 64-bitars PCI-X-gränssnitt
  • PCI/ PCI-X-bussen tillåter anslutning av Gigabit Ethernet-kontroller
IOP321 600 Bogo Mips @ 600 MHz Iyonix
IOP33x
IOP34x 1-2 kärnor, RAID-acceleration 32K/32K L1, 512K L2, MMU
PXA210/PXA250 Applikationsprocessor, 7-stegs pipeline PXA210: 133 och 200 MHz, PXA250: 200, 300 och 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 och 400 MHz Sony CLIÉ NX73V, NX80V
PXA26x standard 400 MHz, upp till 624 MHz Palm Tungsten T3
PXA27x Applikationsprocessor 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 och x51-serien, Motorola Q, Balloon3 , 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-Pit 500, Z 650, Z 650, Z 650 affärsnavigator
PXA800(E)F
PXA3XX (kodnamnet "Monahans") PXA31x har en grafikaccelerator för hårdvara 32KB/32KB L1, TCM, MMU 800 MIPS @ 624 MHz högskärm alex
PXA900 Blackberry 8700, Blackberry Pearl (8100)
IXC1100 Styrplansprocessor
IXP2400/IXP2800
IXP2850
IXP2325/IXP2350
IXP42x NSLU2 IXP460/IXP465
ARM11 ARMv6 ARM1136J(F)-S [26] 8-stegs pipeline, SIMD , Thumb, Jazelle DBX, (VFP), förbättrade 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 integrerad ARM926EJ-S Coprocessor@274 MHz, används i Eten Glofi IIish , HTC TyTN IIish , HTC Nike ), Freescale i.MX31 (används i original Zune 30gb och 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 ses 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-stegs pipeline, SIMD , Thumb-2, (VFP), förbättrade DSP-instruktioner variabel, MPU
ARMv6KZ ARM1176JZ(F)-S Som ARM1136EJ(F)-S variabel, MMU+TrustZone Apple iPhone (original och 3G) , Apple iPod touch (1:a och 2:a generationen) , Conexant CX2427X , Motorola RIZR Z8 , Motorola RIZR Z10 , NVIDIA GoForce 6100 [29] ; Mediatek MT6573 [30] ; Telechips TCC9101, TCC9201, TCC8900, Fujitsu MB86H60 , Samsung S3C6410 (t.ex. Samsung Moment ), S3C6430 [31]
ARMv6K ARM11MPCore Som ARM1136EJ(F)-S, 1-4 kärnor SMP variabel, MMU Nvidia APX 2500
Kärnfamilj Arkitektur version Kärna Funktioner Cache (I/D)/MMU Typiska MIPS @ MHz Ansökningar
Bark ARMv7-A Cortex-A5 VFP, NEON, Jazelle RCT och DBX, Thumb-2, 8-stegs pipeline, i ordning, 1-4 kärna SMP variabel (L1), MMU+TrustZone upp till 1500 (1,5 DMIPS/MHz) "Sparrow" (ARM-kodnamn) [32] [33] [34]
Cortex-A8 VFP, NEON, Jazelle RCT, Thumb-2; 13-stegs pipeline, i ordning, 2 dekodrar [35] variabel (L1+L2), MMU+TrustZone upp till 2000 (2,0 DMIPS/MHz i hastighet från 600 MHz till mer än 1 GHz) TI OMAP3xxx series , SBM7000, Oregon State University OSWALD , Gumstix Overo Earth , Pandora , Apple iPhone 3GS , Apple iPod touch (3:e generationen) , 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å ett chip, Boxchip A13
Cortex-A9 Applikationsprofil, (VFP), (NEON), Jazelle RCT och DBX, Thumb-2, Superskalär för spekulativa problem i ur ordning (2 avkodare); 9-12 [35] rörledningssteg MMU+TrustZone 2,5 DMIPS/MHz Apple iPhone 4S , Apple iPad 2 ( Apple A5 ), MediaTek MT6575/6515M, iconBIT NetTAB SKY 3G
Cortex-A9 MPCore Som Cortex-A9, 1-4 kärnor SMP MMU+TrustZone 10 000 DMIPS @ 2 GHz på prestandaoptimerad TSMC 40G (fyrkärnig?) (2,5 DMIPS/MHz per kärna) PlayStation® Vita , TI OMAP4430/4440 , ST-Ericsson U8500, Nvidia Tegra2 , Samsung Exynos 4210, MediaTek MT6577/6517
Cortex-A15 MPCore 1-32 kärna SMP; Out-of-order superskalär (3 avkodare); 15+ transportörsteg [35] ; VFPv4, NEON [36] MMU, LPAE 3,5 DMIPS/MHz/Kärna; 1,0 GHz - 2,5 GHz (@ 28 nm [35] )
Cortex-A7 MPCore [37] FPU,NEON; I ordning (1 dekoder); 8 stegs 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) Inbäddad profil, Thumb-2, (FPU) variabel cache, valfri MPU 600 DMIPS @ 475 MHz Broadcom är en användare, TI TMS570
ARMv7-ME Cortex-M4 (kodnamnet "Merlin") [38] Mikrokontrollerprofil, både Thumb och Thumb-2, FPU. Hårdvara MAC, SIMD och dela instruktioner MPU tillval 1,25 DMIPS/MHz NXP Semiconductors , STM32 , TI Stellaris LM4F
ARMv7-M Cortex-M3 Mikrokontrollerprofil, endast Thumb-2. maskinvarudelningsinstruktion ingen cache, valfri MPU 125 DMIPS @ 100 MHz TI Stellaris , STM STM32 , NXP LPC1700 , Toshiba TMPM330FDFG , Embers EM3xx Series, Atmel AT91SAM 3, Europe Technologies EasyBCU , Energy Micros EFM32 , Actels SmartFusion , Milandre 1986 ]
ARMv6-M Cortex-M0 (kodnamnet "Swift") [39] Mikrokontrollerprofil, Thumb-2 subset (16-bitars tuminstruktioner & BL, MRS, MSR, ISB, DSB och 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-inriktad, mikrokontrollerprofil, Thumb-2-delmängd (16-bitars tuminstruktioner & BL, MRS, MSR, ISB, DSB och DMB) Inget, tätt kopplat minne tillval Upp till 136 DMIPS @ 170 MHz [46] (0,8 DMIPS/MHz, [47] MHz uppnåbar FPGA-beroende) Actel ProASIC3, ProASIC3L, IGLOO och Fusion PSC-enheter , Altera Cyclone III , andra FPGA-produkter stöds också, t.ex. Synplicity

[48]

Kärnfamilj Arkitektur version Kärna Funktioner Cache (I/D)/ MMU Typiska MIPS @ MHz Ansökningar

Arkitektur

Det har länge funnits en ARM-arkitekturreferensguide som avgränsar alla typer av gränssnitt som ARM stöder, eftersom implementeringsdetaljerna för varje processortyp kan variera. Arkitekturen har utvecklats över tiden och sedan ARMv7 har 3 profiler definierats:

Profiler kan stödja färre kommandon (kommandon av en viss typ).

Lägen

Processorn kan vara i ett av följande driftslägen:

Växling av processorläge sker när ett lämpligt undantag inträffar eller genom att modifiera statusregistret.

Kommandouppsättning

För att hålla enheten ren, enkel och snabb gjordes den ursprungliga ARM-tillverkningen utan mikrokod , som den enklare 8-bitars 6502-processorn som användes i tidigare mikrodatorer från Acorn Computers .

ARM-instruktionsuppsättning

Läget i vilket 32-bitars instruktionsuppsättningen exekveras.

ARM-basinstruktionsuppsättning: [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

Tumkommandouppsättning

För att förbättra koddensiteten är processorer som börjar med ARM7TDMI utrustade med ett "tumme"-läge. I detta läge exekverar processorn en alternativ uppsättning 16-bitars instruktioner. De flesta av dessa 16-bitars instruktioner översätts till normala ARM-instruktioner. Minskningen av instruktionslängden uppnås genom att dölja vissa operander och begränsa adresserbarheten jämfört med fullt ARM-instruktionsuppsättningsläge.

I tumläge har mindre opkoder mindre funktionalitet. Till exempel kan bara grenar vara villkorade, och många opkoder är begränsade till att bara komma åt hälften av huvudprocessorregistren. Kortare opkoder resulterar i allmänhet i större koddensitet, även om vissa opkoder kräver ytterligare instruktioner. I situationer där minnesporten eller bussbredden är begränsad till 16 bitar är de kortare tumlägesopkoderna mycket snabbare än vanliga 32-bitars ARM-opkoder, eftersom mindre kod måste laddas in i processorn med begränsad minnesbandbredd.

Hårdvara som Game Boy Advance har vanligtvis en liten mängd RAM tillgängligt med en fullständig 32-bitars datakanal. Men de flesta operationer utförs genom en 16-bitars eller smalare informationskanal. I det här fallet är det vettigt att använda tumkod och manuellt optimera vissa tunga kodsektioner genom att byta till fullständiga 32-bitars ARM-instruktioner.

Den första processorn med en tumkommandoavkodare var ARM7TDMI. Alla processorer i ARM9 -familjen , såväl som XScale , hade en inbyggd tumkommandoavkodare.

Thumb-2 instruktionsuppsättning

Thumb-2 är en teknik som introducerades i ARM1156-kärnan, som tillkännagavs 2003. Den utökar den begränsade 16-bitars tuminstruktionsuppsättningen med ytterligare 32-bitars instruktioner för att ge instruktionsuppsättningen extra bredd. Målet med Thumb-2 är att uppnå tumliknande koddensitet och 32-bitars ARM-instruktionsuppsättningsprestanda. Vi kan säga att i ARMv7 uppnåddes detta mål.

Thumb-2 utökar både ARM- och Thumb-instruktioner med ännu fler instruktioner, inklusive bitfältsmanipulation, tabellgrening, villkorad exekvering. Det nya "Unified Assembly Language" (UAL) stöder byggkommandon för både ARM och Thumb från samma källkod. ARMv7-versionerna av Thumb ser ut som ARM-kod. Detta kräver försiktighet och användning av det nya if-then-kommandot, som stöder exekvering av upp till 4 på varandra följande testtillståndskommandon. Den ignoreras under kompilering till ARM-kod, men genererar kommandon under kompilering till ARM-kod. Till exempel:

; om (r0 == rl) CMP r0 , rl ITE EQ ; ARM: ingen kod ... Tumme: IT-instruktion ; då r0 = r2; MOVEQ r0 , r2 ; ARM: villkorlig; Thumb: condition via ITE 'T' (då) ; annars r0 = r3; MOVNE r0 , r3 ; ARM: villkorlig; Tummen: tillstånd via ITE 'E' (annat) ; kom ihåg att Thumb MOV-instruktionen inte har några bitar för att koda "EQ" eller "NE"

Alla ARMv7-matriser stöder Thumb-2-instruktionsuppsättningen, medan vissa dies, som Cortex-m3, bara stöder Thumb-2. De återstående Cortex- och ARM11-matriserna stöder både Thumb-2 och ARM-instruktionsuppsättningar.

Jazelle kommandouppsättning

Jazelle  är en teknologi som gör att Java-bytekod kan exekveras direkt på ARM-arkitekturen som ett 3:e exekveringsläge (och instruktionsuppsättning) tillsammans med vanliga ARM-instruktioner och tumläge. Stöd för Jazelle-teknik indikeras med bokstaven "J" i processornamnet - till exempel ARMv5TEJ. Denna teknik har stöds sedan ARMv6-arkitekturen, även om nyare kärnor endast innehåller begränsade implementeringar som inte stöder hårdvaruacceleration.

ARMv8 och ARM 64-bitars instruktionsuppsättning

I slutet av 2011 publicerades en ny version av arkitekturen, ARMv8. Den introducerade definitionen av AArch64-arkitekturen, där 64-bitars A64-instruktionsuppsättningen exekveras. Stöd för 32-bitars kommandon kallas A32 och exekveras på AArch32-arkitekturer. Tuminstruktioner stöds i T32-läge, endast när du använder 32-bitars arkitekturer. Det är tillåtet att köra 32-bitars applikationer i ett 64-bitars operativsystem och köra ett virtualiserat 32-bitars operativsystem med en 64-bitars hypervisor [50] . Applied Micro, AMD, Broadcom, Calxeda, HiSilicon, Samsung, STM och andra har meddelat planer på att använda ARMv8. Cortex-A53- och Cortex-A57-kärnorna som stöder ARMv8 introducerades av ARM den 30 oktober 2012 [51] .

Både AArch32 och AArch64 stöder VFPv3, VFPv4 och avancerad SIMD (NEON). Lade även till kryptografiska instruktioner för att arbeta med AES , SHA-1 och SHA-256 .

AArch64 funktioner:

  • Ny A64 instruktionssats
  • 31 allmänna register, vart och ett 64 bitar långt
  • Separata SP- och PC-register
  • Instruktioner är 32 bitar stora och många är desamma som A32-instruktioner
  • De flesta instruktioner fungerar med både 32-bitars och 64-bitars argument
  • Adresserna är 64 bitar stora
  • Avancerad SIMD (NEON) förbättrad
  • Ökade antalet 128-bitars register tillgängliga via NEON, VFPv4, AES kryptoinstruktioner, SHA från 16 till 32
  • Stöder beräkningar med dubbla precisionsflyttal (64-bitars dubbel)
  • Fullständig IEEE 754-överensstämmelse
  • Nytt uteslutningssystem
  • Virtuell adressöversättning från 48-bitarsformat fungerar med befintliga LPAE-mekanismer

RISC-funktioner

ARM-arkitekturen har följande RISC-funktioner:

  • Last-/lagringsarkitektur
  • Inget stöd för icke-linjär (icke-ordjusterad) minnesåtkomst (stöds nu i ARMv6-processorer, med vissa undantag, och helt i ARMv7)
  • Enhetlig 16x32-bitars registerfil
  • Fast instruktionslängd (32 bitar) för att förenkla avkodningen genom att minska koddensiteten. Senare ökade tumläget kodtäthet.
  • Utförande av en cykel

För att kompensera för den enkla designen har vissa designfunktioner använts i jämförelse med moderna processorer som Intel 80286 eller Motorola 68020:

  • Aritmetiska instruktioner ersätter endast villkorliga koder när det behövs
  • En 32-bitars cyklisk växling med flera register som kan användas utan prestandaförlust i de flesta aritmetiska instruktioner och adressberäkningar.
  • Kraftfulla indexerade adresslägen
  • Referensregister för snabb anrop av lövfunktioner
  • Enkelt men snabbt, med två prioritetsnivåer för avbrottsundersystemet med aktiverade registerbanker.

Villkorlig körning

En av de betydande skillnaderna mellan ARM-arkitekturen (originalarkitektur) och andra CPU-arkitekturer är den så kallade predikationen  - förmågan att villkorligt exekvera instruktioner. Med "villkorlig exekvering" menar vi här att instruktionen kommer att exekveras eller ignoreras beroende på det aktuella tillståndet för processorstatusflaggorna. I Thumb and Arm 64 används inte predikation - i det första läget finns det ingen plats för det i kommandot (endast 16 bitar), och i det andra - predikation är meningslöst och svår att implementera på superskalära arkitekturer .

Medan för andra arkitekturer, som regel, endast villkorliga hoppinstruktioner har denna egenskap, designades ARM-arkitekturen för att villkorligt exekvera nästan vilken instruktion som helst. Detta uppnåddes genom att lägga till ett speciellt 4-bitarsfält ( predikat ) till deras instruktionskoder. Ett av dess värden är reserverat för det faktum att instruktionen måste utföras ovillkorligt, och resten kodar en eller annan kombination av villkor (flaggor). Å ena sidan, med tanke på instruktionens begränsade totala längd, minskade detta antalet tillgängliga bitar för kodning av förskjutningar i minnesåtkomstkommandon, men å andra sidan gjorde det det möjligt att bli av med förgreningsinstruktioner vid generering av kod för små om-block.

Ett exempel som vanligtvis betraktas som illustration är Euclids subtraktionsbaserade algoritm . I C-språket ser det ut så här:

medan ( i != j ) { if ( i > j ) { i -= j ; } annat { j -= i ; } }

Och i ARM assembler - så här:

loop CMP Ri , Rj ; ange villkor "NE" om (i != j), ; "GT" om (i > j), ; eller "LT" om (i < j) SUBGT Ri , Ri , Rj ; om "GT" (större än), i = ij; SUBLT Rj , Rj , Ri ; om "LT" (mindre än), j = ji; BNEloop ; _ om "NE" (inte lika), sedan loop

Det framgår av koden att användningen av predikation gjorde det möjligt att helt undvika förgrening i else- och sedan-satserna. Observera att om Ri och Rj är lika, så kommer ingen av SUB-instruktionerna att exekveras, vilket helt eliminerar behovet av en gren som implementerar en stundskontroll vid varje start av slingan, vilket kan implementeras, till exempel med hjälp av SUBLE ( mindre än eller lika med) instruktion .

Ett sätt som Thumb code uppnår större utrymmesbesparingar är just genom att ta bort 4-bitars predikatet från alla instruktioner utom grenar.

Andra funktioner

En annan egenskap hos instruktionsuppsättningen är möjligheten att kombinera skift och rotationer i en "informationsbearbetnings"-instruktion (aritmetisk, logisk, register-registerrörelse) så att till exempel uttrycket C:

a += ( j << 2 );

kan konverteras till en instruktion med ett ord och en cykel i ARM:

ADD Ra , Ra , Rj , LSL #2

Detta gör att typiska ARM-program blir tätare än vanligt med mindre minnesåtkomst. Därmed används rörledningen mycket mer effektivt. Även om ARM körs i hastigheter som många skulle anse vara långsamma, konkurrerar den ganska lätt med många mer sofistikerade CPU-arkitekturer.

ARM-processorn har också vissa funktioner som sällan finns i andra RISC-arkitekturer, såsom adressering i förhållande till programräknaren (i själva verket är ARM-programräknaren ett av 16 register), såväl som adresseringslägen före och efter inkrement.

En annan funktion som är värd att notera är att vissa tidiga ARM-processorer (före ARM7TDMI), till exempel, inte har instruktioner för att lagra 2-byte-nummer. Det är alltså strängt taget omöjligt för dem att generera effektiv kod som beter sig som förväntat av C-objekt av typen "volatile int16_t".

Pipelinen och andra implementeringsaspekter

ARM7 och tidigare har en pipeline i tre steg. Dessa är stadierna av överföring, avkodning och utförande. Arkitekturer med högre prestanda som ARM9 har mer komplexa pipelines. Cortex-a8 har en 13-stegs pipeline.

Medprocessorer

Arkitekturen tillhandahåller ett sätt att utöka instruktionsuppsättningen med hjälp av samprocessorer som kan adresseras med MCR, MRC, MRRC, MCRR och liknande instruktioner. Samprocessorutrymmet är logiskt uppdelat i 16 samprocessorer numrerade 0 till 15, där den 15:e är reserverad för vissa typiska hanteringsfunktioner såsom cachehantering och drift av minneshanteringsenheter ( på processorer som har dem).

På ARM-baserade maskiner är kringutrustning vanligtvis ansluten till processorn genom att mappa deras fysiska register i ARM-minne eller samprocessorminne, eller genom att ansluta dem till bussar, som i sin tur är anslutna till processorn. Åtkomst till samprocessorer har en längre latens, så vissa kringutrustningar är utformade för att nås åt båda hållen. I andra fall använder chiputvecklare endast samprocessorintegreringsmekanismen. Till exempel bör en bildbehandlingsmotor bestå av en liten ARM7TDMI-kärna kopplad med en samprocessor som stöder primitiva operationer för bearbetning av elementära HDTV-kodningar.

Förbättrad SIMD (NEON)

En förlängning av avancerad SIMD, även kallad NEON-teknik, är en kombinerad 64-bitars och 128-bitars enkelinstruktionsmultipeldata ( SIMD ) instruktionsuppsättning som tillhandahåller standardiserad acceleration för media- och signalbehandlingstillämpningar. NEON kan avkoda mp3 -ljudformat vid 10 MHz processorfrekvens och kan arbeta med GSM AMR (adaptive multi-rate) talcodec vid max 13 MHz. Den har en imponerande uppsättning instruktioner, separata registerfiler och ett oberoende exekveringssystem på hårdvarunivå. NEON stöder 8-, 16-, 32-, 64-bitars heltal, enkel precision och flyttalsinformation, och fungerar i SIMD-operationer för ljud- och videobehandling (grafik och spel). I NEON stöder SIMD upp till 16 operationer åt gången.

En av nackdelarna (eller, säg, en funktion) med den förbättrade SIMD:n är att samprocessorn exekverar instruktionerna för den förbättrade SIMD:n med en ganska betydande fördröjning i förhållande till huvudprocessorkoden, fördröjningen når två dussin cykler eller mer (beroende på arkitekturen och specifika förhållanden). Av denna anledning, när huvudprocessorn försöker använda resultaten av samprocessorns beräkning, kommer exekveringen att frysas under en betydande tid.

VFP

VFP-teknik (Vector Floating Point) är en förlängning av samprocessorn i ARM-arkitekturen. Den utför lågkostnadsberäkningar på enkla/dubbla precisionsflyttal som är helt kompatibla med ANSI/IEEE Std 754-1985 Standard for Binary Floating-Point Arithmetic . VFP utför flyttalsberäkningar lämpliga för ett brett spektrum av applikationer som handdatorer, smartphones, ljudkomprimering, 3D-grafik och digitalt ljud, samt skrivare och set-top-boxar. VFP-arkitekturen stöder även exekvering av korta vektorinstruktioner. Men eftersom processorn utför operationer sekventiellt på varje element i vektorn, kan VFP inte kallas en sann SIMD-instruktionsuppsättning. Detta läge kan vara användbart i grafik- och signalbehandlingsapplikationer eftersom det minskar kodstorlek och instruktionsgenerering.

Andra flyttals- och/eller SIMD-samprocessorer som finns på ARM-processorer inkluderar FPA , FPE , iwMMXt . De tillhandahåller samma funktionalitet som VFP, men är inte kompatibla med den på opcodenivå .

Säkerhetstillägg

Säkerhetstillägg som marknadsförs som TrustZone Technology finns i ARMv6KZ och andra nyare applikationsprofilerade arkitekturer. Det ger ett billigt alternativ till att lägga till en dedikerad säkerhetsmotor genom att tillhandahålla 2 vCPU:er som stöds av maskinvaruåtkomstkontroll. Detta gör att applikationskärnan kan växla mellan två tillstånd som kallas "världar" (för att undvika förväxling med möjliga domännamn) för att förhindra att information läcker från den viktigare världen till den mindre viktiga. Denna världsomkopplare är vanligtvis ortogonal mot alla andra processorfunktioner. Således kan varje värld köras oberoende av andra världar med samma kärna. Minne respektive kringutrustning är gjorda för att passa kärnans värld och kan använda detta för att få åtkomstkontroll till kärnans hemligheter och koder. Typiska TrustZone Technology-applikationer bör köra ett komplett operativsystem i den mindre viktiga världen och kompakt, säkerhetsspecifik kod i den viktigare världen, vilket ger Digital Rights Management mycket mer kontroll över medieanvändning på ARM-baserade enheter och förhindrar obehörig åtkomst till enheten..

I praktiken, eftersom de specifika detaljerna för implementeringen av TrustZone förblir företagets egendom och inte avslöjas, är det fortfarande oklart vilken säkerhetsnivå som garanteras för denna hotmodell.

Felsökning

Alla moderna ARM-processorer har felsökningshårdvara, för utan dem skulle programvarufelsökare inte kunna utföra de mest grundläggande operationerna som att stoppa, indraga, ställa in brytpunkter efter omstart.

ARMv7-arkitekturen definierar grundläggande felsökningsfunktioner på arkitekturnivå. Dessa inkluderar brytpunkter, bevakningspunkter och att utföra kommandon i felsökningsläge. Sådana verktyg var också tillgängliga med EmbeddedICE-felsökningsmodulen. Båda lägena stöds - stoppa och granska. Den faktiska transportmekanismen som används för att komma åt felsökningsverktygen är inte arkitektoniskt specificerad, men implementeringen inkluderar vanligtvis JTAG- stöd .

Det finns en separat "kärnvy"-felsökningsarkitektur som inte krävs arkitektoniskt av ARMv7-processorer.

Register

ARM tillhandahåller 31 32-bitars register för allmänna ändamål . Beroende på processorns läge och tillstånd har användaren endast tillgång till en strikt definierad uppsättning register. I ARM-läge är 17 register ständigt tillgängliga för utvecklaren:

  • 13 allmänna register (r0..r12).
  • Stackpekare (r13) - innehåller stackpekaren för programmet som körs.
  • Länkregister (r14) - innehåller returadressen i greninstruktioner.
  • Programräknare (r15) - bitar [31:1] innehåller adressen till instruktionen som exekveras.
  • Aktuellt programstatusregister (CPSR) - innehåller flaggor som beskriver processorns aktuella tillstånd. Det ändras när många instruktioner utförs: logiska, aritmetiska, etc.

I alla lägen utom användarläge och systemläge, finns även SPSR (Save Program Status Register) tillgängligt. Efter att ett undantag inträffat, lagras CPSR-registret i SPSR. Processorns tillstånd (läge, tillstånd; aritmetiska flaggor, logiska operationer, avbrottsaktivering) är alltså fixerat vid ögonblicket omedelbart före avbrottet [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
R15
CPSR
SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq

Registrera alias:

reg. funkt. args vars GCC Kommentar
R0 a1 ett N - funktionsargument
R1 a2
R2 a3
R3 a4
R4 v1 vN - registervariabel
R5 v2
R6 v3
R7 v4
R8 v5
R9 SB v6 SB - Statiskt Basregister
R10 v7 SL SL-?
R11 v8 FP FP - Stack ramadress  ?
R12 IP IP - Intra-procedur call scratch register
R13 SP stackpekare
R14 LR Länkregister
R15 PC Programräknare

Arbeta med minne

ARM-arkitekturen använder ett enda adressutrymme [53] . I praktiken innebär detta schema att en adress kan peka på minne ( RAM eller ROM ) eller I/O-portar, i motsats till ett schema där I/O-portar har sitt eget adressutrymme.

I/O-system som stöds

De flesta av de befintliga produkterna som använder ARM-arkitekturen är kompletta system på ett chip som har förmågan att arbeta med externt dynamiskt random access memory ( DRAM ) och innehåller kontroller för många perifera bussar, i synnerhet USB , IIC (I2C), ljudenheter, kontroller för att arbeta med flashmedia av SD- och MMC -standarder , displaykontroller och digitalkameror (MIPI).

Alla processorer har GPIO-linjer (general purpose input/output). I konsumentenheter kan "snabbstart" och volymkontrollknappar, signallysdioder, ett tangentbord etc. anslutas till dem.

OS-startprocess på ARM-maskiner

Efter att ha slagit på systemet baserat på ARM-processorn, laddas starthanteraren och adressen till dess ingångspunkt från ROM-minnet. Starthanteraren förinitierar systemet och fyller därmed samma roll som BIOS utför på x86-system, varefter den kan ladda antingen systemladdaren eller operativsystemet direkt.

Det finns ingen enskild standard för bootloadern. En U-Boot bootloader kan användas och UEFI används ofta för 64-bitars ARMv8. Många applikationer använder sina egna lastare.

OS som stöder ARM

ARM-arkitekturen stöds av många operativsystem. Mest använda: Linux (inklusive Android ), iOS , Windows Phone .

Olika Unix- och Unix-liknande operativsystem kan fungera på system med en ARM-processor: Linux (många distributioner), iOS , Android , BSD ( FreeBSD , NetBSD , OpenBSD ), QNX , Plan 9 , Inferno , OpenSolaris (2008—2009 [54 ) ] ), Firefox OS , macOS Big Sur .

Plattformen lanserar även separata varianter av Windows- familjen : Windows CE , Windows Phone , Windows RT , Windows 10 .

Dessutom stöds ARM av: A2 , FreeRTOS , Nucleus , Symbian OS , RISC OS , RISC iX .

Se även

  • OpenRISC  - 2000-arkitektur med GPL-implementering av or1k
  • LEON  - fria implementeringar (GPL, LGPL) av SPARC V8-arkitekturen som dök upp 1997
  • OpenSPARC  är en gratis (GPL) implementering av SPARC V9-arkitekturen från 2005
  • OpenPOWER  - IBM Power -arkitektur , grundad 2013 av IBM, Google, Mellanox, NVIDIA
  • RISC-V  är en fri och öppen arkitektur och instruktionsuppsättning för mikroprocessorer och mikrokontroller skapad 2010
  • MIPS  - Instruktionsuppsättningar och MIPS-arkitektur

Anteckningar

  1. ARM Limited är uteslutande engagerad i utvecklingen av kärnor och verktyg för dem ( kompilatorer , felsökningsverktyg , etc.), och tjänar pengar på att licensiera arkitekturen till tredjepartstillverkare.
  2. System på ett chip 1892VM14Ya . multicore.ru Hämtad 28 december 2018. Arkiverad från originalet 29 december 2018.
  3. 1 2 D. Kozlov-Kononov. Processorkärnor i Cortex-familjen. Kombination av hög prestanda och låg strömförbrukning Arkiverad 24 november 2013 på Wayback Machine , Electronics Magazine, nr. #8/2010
  4. Introduktionsguide till ARM Cortex-M3-mikrokontroller . Hämtad 29 september 2013. Arkiverad från originalet 27 september 2013.
  5. "Beväpnad för vardagsrummet" Arkiverad 9 november 2012 på Wayback Machine .
  6. "En intervju med Steve Furber" Arkiverad 27 juli 2011 på Wayback Machine // Communications of the ACM, May 2011, Vol. 54 nr. 5, sidorna 34-39, doi:10.1145/1941487.1941501
  7. Manners, David . ARM's way , Electronics Weekly  (29 april 1998). Arkiverad från originalet den 29 juli 2012. Hämtad 26 oktober 2012.
  8. Sophie Wilson-CHM . Hämtad 4 april 2019. Arkiverad från originalet 4 april 2019.
  9. Apache-riktmärken för Calxedas 5-watts webbserver - ARM-servrar, nu! (inte tillgänglig länk) . Hämtad 26 november 2012. Arkiverad från originalet 30 oktober 2012. 
  10. Molnigt med risk för ARM. Vad mikroservermarknaden betyder för halvledarleverantörer Arkiverad 2 december 2012 på Wayback Machine // Oppenheimer & Co. Inc, 30 mars 2012
  11. Exklusivt: ARM Cortex-A15 "40 procent" snabbare än Cortex-A9 . Hämtad 5 oktober 2013. Arkiverad från originalet 21 juli 2011.
  12. Cortex-A15-  processor . ÄRM. — Presentation av processorer i ARM CortexA15 MPCore-familjen på tillverkarens webbplats. Hämtad 20 april 2012. Arkiverad från originalet 30 maj 2012.
  13. ARM Cortex-A15 - Processor upp till 2,5 GHz, inte bara för smartphones . Ferra.ru (10 september 2010). Hämtad 20 april 2012. Arkiverad från originalet 26 april 2012.
  14. Intel Newsroom | Topprubriker, senaste nyheterna och aktuella händelser från Intel (länk ej tillgänglig) . Hämtad 4 oktober 2013. Arkiverad från originalet 6 mars 2009. 
  15. "ARM810 - Dancing to the Beat of a Different Drum" Arkiverad 10 september 2008 på Wayback Machine Arkiverad 23 juli 2011. ARM Holdings presentation på Hot Chips 1996-08-07.
  16. Register 13, FCSE PID-register Arkiverad 7 juli 2011 på Wayback Machine ARM920T Technical Reference Manual
  17. Neo1973: Jämförelse mellan GTA01Bv4 och GTA02 . Hämtad 15 november 2007. Arkiverad från originalet 13 mars 2012.
  18. S3C2410 . Datum för åtkomst: 13 januari 2010. Arkiverad från originalet den 13 mars 2012.
  19. Rockbox Samsung SA58xxx-serien . Hämtad 22 februari 2008. Arkiverad från originalet 13 mars 2012.
  20. Rockbox Meizu M6 Port - Hårdvaruinformation . Hämtad 22 februari 2008. Arkiverad från originalet 13 mars 2012.
  21. Datablad - Magic Lantern Firmware Wiki . Hämtad 6 juni 2010. Arkiverad från originalet 18 juli 2011.
  22. STR9 - STR912 - STR912FW44 mikrokontroller - sida för nedladdning av dokument och filer (inte tillgänglig länk) . mcu.st.com. Hämtad 18 april 2009. Arkiverad från originalet 10 februari 2007. 
  23. Starlet Arkiverad 10 oktober 2018 på Wayback Machine .
  24. Benchmarks - Albatross (länk ej tillgänglig) . Albatross-uav.org (18 juni 2005). Hämtad 18 april 2009. Arkiverad från originalet 16 oktober 2008. 
  25. ARM1136J(F)-S - ARM-processor . arm.com. Hämtad 18 april 2009. Arkiverad från originalet 13 mars 2012.
  26. Qualcomm-chips kärna ARM - från telefoner till bärbara datorer . xi0.info. Hämtad 8 maj 2010. Arkiverad från originalet 13 mars 2012.
  27. Qualcomm MSM7227 RISC Chipset . pdadb.net. Hämtad 8 maj 2010. Arkiverad från originalet 13 mars 2012.
  28. GoForce 6100 . Nvidia.com. Hämtad 18 april 2009. Arkiverad från originalet 13 mars 2012.
  29. Mediatek MT6573 . http://www.mediatek.com.+ Hämtad 18 april 2009. Arkiverad från originalet 6 juni 2012.
  30. Samsung S3C6410 och S3C6430 Series ARM-processorer (inte tillgänglig länk) . Samsung. Hämtad 8 oktober 2009. Arkiverad från originalet 1 september 2009.   , och Qualcomm MSM7627 som ses i Palm Pixi och Motorola Calgary/Devour
  31. Merrit, Rick "ARM sträcker ut sig med A5-kärna, grafik, FPGA" . EE Times (21 oktober 2009). Hämtad 28 oktober 2009. Arkiverad från originalet 13 mars 2012.
  32. Clarke, Peter ARM tipsar om planer för Swift- och Sparrow-processorkärnor . EE Times (3 februari 2009). Hämtad 18 april 2009. Arkiverad från originalet 13 mars 2012.
  33. Segan, Sascha ARM:s flerkärniga chip mål för Netbooks . PC Magazine (9 april 2009). Hämtad 18 april 2009. Arkiverad från originalet 13 mars 2012.
  34. 1 2 3 4 標æº- Arkiverad 29 juli 2013 på Wayback Machine Arkiverad 29 juli 2013.
  35. Cortex-A15-processor - ARM . Hämtad 24 oktober 2012. Arkiverad från originalet 30 maj 2012.
  36. Cortex-A7-processor - ARM . Hämtad 24 oktober 2012. Arkiverad från originalet 31 maj 2016.
  37. Benz, Benjamin Cortex Nachwuchs bei ARM . Heise.de (2 februari 2010). Hämtad 3 maj 2010. Arkiverad från originalet 13 mars 2012.
  38. Clarke, Peter ARM förbereder en liten kärna för lågeffektmikrokontroller . EE Times (23 februari 2009). Hämtad 30 november 2009. Arkiverad från originalet 13 mars 2012.
  39. Walko, John NXP först med att demonstrera ARM Cortex-M0 silicon . EE Times (23 mars 2009). Hämtad 29 juni 2009. Arkiverad från originalet 13 mars 2012.
  40. ARM Powered VCAs " Triad Semiconductor Arkiverad 16 juli 2011 på Wayback Machine Arkiverad 16 juli 2011.
  41. Cortex-M0 används i pekkontroller med låg effekt - 06/10/2009 - Electronics Weekly . Hämtad 6 juni 2010. Arkiverad från originalet 16 augusti 2011.
  42. Chungbuk Technopark väljer ARM Cortex-M0-processor . Hämtad 6 juni 2010. Arkiverad från originalet 7 oktober 2010.
  43. Google översätt . Hämtad 3 maj 2022. Arkiverad från originalet 22 januari 2020.
  44. Austriamicrosystems väljer ARM Cortex-M0-processor för blandade signalapplikationer . Hämtad 6 juni 2010. Arkiverad från originalet 22 juli 2011.
  45. "ARM utökar Cortex-familjen med den första processorn optimerad för FPGA" Arkiverad 5 maj 2007 på Wayback Machine , ARM pressmeddelande, 19 mars 2007. Hämtad 11 april 2007.
  46. "ARM Cortex-M1" Arkiverad 1 april 2007 på Wayback Machine , ARMs produktwebbplats. Hämtad 11 april 2007.
  47. ARM utökar Cortex-familjen med den första processorn optimerad för FPGA Arkiverad 5 maj 2007 på Wayback Machine .
  48. Kategori:Opcodes -  ARMwiki . www.heyrick.co.uk. Hämtad 6 augusti 2018. Arkiverad från originalet 6 augusti 2018.
  49. ARM (nedlänk) . Hämtad 15 april 2013. Arkiverad från originalet 10 juni 2018. 
  50. ARM lanserar Cortex-A50-serien, världens mest... - ARM . Hämtad 17 april 2013. Arkiverad från originalet 20 april 2013.
  51. ARM7TDMI (rev 3) Teknisk  referensmanual . Hämtad 22 augusti 2009. Arkiverad från originalet 13 mars 2012.
  52. http://www.peter-cockerell.net/aalp/html/ch-2.html Arkiverad 8 december 2015 på Wayback Machine "Inmatnings- och utdataenheter är minnesmappade. Det finns inget koncept med ett separat I/O-adressutrymme. Perifera chips läses och skrivs som om de vore minnesområden. Detta betyder att i praktiska ARM-system är minneskartan uppdelad i tre områden: RAM, ROM och in-/utgångsenheter (förmodligen i fallande storleksordning)."
  53. OpenSolaris Project: ARM-plattformsport . Sun Microsystems . Arkiverad från originalet den 13 mars 2012.

Länkar