ARM

Conexant ARM (procesor používaný hlavně v routerech)

ARM je v informatice označení architektury procesorů používaných díky své nízké spotřebě elektrické energie zejména v mobilních zařízeních (mobilní telefony, tablety), nyní však proniká i do PC[1]. Globálně je v roce 2013 ARM nejpočetněji zastoupenou architekturou mikroprocesorů,[2][3][4] přičemž 60 % mobilních zařízení na světě obsahuje ARM čip. V roce 2013 bylo vyrobeno 10 miliard ARM procesorů, v roce 2014 už 50 miliard.[5] Vývoj ARM architektury započal v Británii ve firmě ARM Holdings v 80. letech 20. století.

Historie

Firma ARM Holdings (dříve ARM Limited) používala dříve pro ARM architekturu obchodní název Advanced RISC Machine, původně pak Acorn RISC Machine. ARM architektura způsobila v několika směrech revoluci v informačních technologiích.[zdroj?] Je založen na architektuře RISC, neméně pozoruhodné je, že první procesory ARM byly založeny na GaAs polovodičích, které dovolily na tehdejší dobu velmi vysoké taktovací frekvence. Rovněž použitá 32bitová šířka slova nebyla v době vzniku ARMu samozřejmostí. První mikroprocesor s architekturou ARM byl navržen firmou ARM Limited v roce 1984.

Firma ARM Holdings časem ustoupila od výroby procesorů a místo toho se soustředila pouze na jejich vývoj. Schéma procesorů ARM je tedy „intelektuálním vlastnictvím“ firmy ARM, která jej licencuje výrobcům hardware. Procesory ARM je dnes možné najít ve všech odvětvích spotřební elektroniky od PDA, mobilních telefonů, multimediálních přehrávačů, přenosných herních konzolí, kalkulaček až po počítačové periferie (pevné disky, routery). Procesory ARM mají ve svém výrobním programu desítky výrobců, ve spotřební elektronice se používají např. procesory XScale od firmy Marvell, nebo OMAP od firmy Texas Instruments.

V roce 2006 byla architektura ARM zastoupena v 98 % z více než jedné miliardy každoročně prodaných mobilů.[6]

Rostoucí význam architektury ARM, jejíž nejvýkonnější zástupci[7] dnes již mají dostatečný výkon i pro použití v osobních počítačích byl pravděpodobně jedním z impulsů, které přiměly firmu Intel k vývoji nízkopříkonových procesorů Intel Atom. Podle jiných zdrojů byl Intel Atom odpovědí na úsporné mikroprocesory AMD Geode.

Charakteristika

Architektura ARM se nejvýrazněji uplatňuje v mobilních zařízeních (mobilní telefony, tablety) a ve vestavěných systémech (pevný disk, USB flash disk, Wi-Fi čipy, routery apod.). Nízká spotřeba energie při vysokém výpočetním výkonu má zásadní význam hlavně v zařízeních napájených bateriemi, avšak je velkou výhodou také u zařízení pracujících v náročných tepelných podmínkách. Nízkopříkonové procesory totiž nepotřebují složité a přitom relativně nespolehlivé chlazení.

Přehled 32bitových procesorů ARM

Rodina Architektonická verze Jádro Vlastnosti Cache (I/D)/MMU Typický výkon v MIPS @ MHz V použití
ARM1 ARMv1 (zastaralá) ARM1 Není ARM Evaluation System druhý procesor pro BBC Micro
ARM2 ARMv2 (zastaralá) ARM2 Architektura 2 přidala 2 MUL (multiply) instrukce. None 4 MIPS @ 8 MHz
0.33 DMIPS/MHz
Acorn Archimedes, Chessmachine
ARMv2a (zastaralá) ARM250 Integrovaný MEMC (MMU), grafický a IO procesor. Architektura 2a přidala instrukce SWP a SWPB (swap). Není, MEMC1a 7 MIPS @ 12 MHz Acorn Archimedes
ARM3 ARMv2a (zastaralá) ARM2a První použití procesorové cache u ARM. 4KB unifikovaná 12 MIPS @ 25 MHz
0.50 DMIPS/MHz
Acorn Archimedes
ARM6 ARMv3 (zastaralá) ARM60 v3 architektura poprvé podporovala adresování 32 bitů paměti (oproti 26 bitům) Není 10 MIPS @ 12 MHz 3DO Interactive Multiplayer, Zarlink GPS Receiver
ARM600 As ARM60, cache a sběrnice koprocesor u (pro FPA10 FPU). 4K unifikovaná 28 MIPS @ 33 MHz
ARM610 As ARM60, cache, žádná sběrnice koprocesoru. 4K unifikovaná 17 MIPS @ 20 MHz
0.65 DMIPS/MHz
Acorn Risc PC 600, Apple Newton 100 series
ARM7 ARMv3 (zastaralá) ARM700 8 KB unifikovaná 40 MHz Prototypová CPU karta Acorn Risc PC
ARM710 As ARM700 8 KB unifikovaná 40 MHz Acorn Risc PC 700
ARM710a As ARM700 8 KB unifikovaná 40 MHz
0.68 DMIPS/MHz
Acorn Risc PC 700, Apple eMate 300
ARM7100 As ARM710a, integrovaný SoC. 8 KB unifikovaná 18 MHz Psion Series 5
ARM7500 As ARM710a, integrovaný SoC. 4 KB unifikovaná 40 MHz Acorn A7000
ARM7500FE As ARM7500, "FE" přidaní řadiče FPA a pamětí EDO. 4 KB unifikovaná 56 MHz
0.73 DMIPS/MHz
Acorn A7000+ Network Computer
ARM7TDMI ARMv4T ARM7TDMI(-S) 3stupňová pipeline, Thumb none 15 MIPS @ 16.8 MHz
63 DMIPS @ 70 MHz
Game Boy Advance, Nintendo DS, iPod, Lego NXT, Atmel AT91SAM7, Juice Box, NXP Semiconductors LPC2000 a LH754xx
ARM710T As ARM7TDMI, cache 8 KB unifikovaná, MMU 36 MIPS @ 40 MHz Psion Series 5mx, Psion Revo/Revo Plus/Diamond Mako
ARM720T As ARM7TDMI, cache 8 KB unifikovaná, MMU s Fast Context Switch Extension 60 MIPS @ 59.8 MHz Zipit Wireless Messenger, NXP Semiconductors LH7952x
ARM740T Jako ARM7TDMI, cache MPU
ARMv5TEJ ARM7EJ-S 5stupňová pipeline, Thumb, Jazelle DBX, Enhanced DSP instrukce
StrongARM ARMv4 SA-110 16 KB/16 KB, MMU 203 MHz
1.0 DMIPS/MHz
Apple Newton série 2x00, Acorn Risc PC, Rebel/Corel Netwinder, Chalice CATS, Psion Netbook
SA-1110 As SA-110, integrovaný SoC 16 KB/16 KB, MMU 233 MHz LART (počítač), Intel Assabet, Ipaq H36x0, Balloon2, Zaurus SL-5x00, HP Jornada 7xx, Jornada 560, Palm Zire 31
ARM8 ARMv4 ARM810[8] 5stupňová pipeline, statická predikce skoku, paměť s dvojnásobnou propustností 8 KB unifikovná, MMU 84 MIPS @ 72 MHz
1.16 DMIPS/MHz
Prototyp CPU karty Acorn Risc PC
ARM9TDMI ARMv4T ARM9TDMI 5stupňová pipeline, Thumb Není
ARM920T As ARM9TDMI, cache 16 KB/16 KB, MMU s FCSE (Fast Context Switch Extension)[9] 200 MIPS @ 180 MHz Armadillo, Atmel AT91SAM9, GP32,GP2X (první jádro), Tapwave Zodiac (Motorola i. MX1), Hewlet Packard kalkulátory HP-49/50, Sun SPOT, Cirrus Logic EP9302, EP9307, EP9312, EP9315, Samsung S3C2442 (HTC TyTN, FIC Neo FreeRunner[10]), Samsung S3C2410 (navigační zařízení TomTom)[11]
ARM922T As ARM9TDMI, cache 8 KB/8 KB, MMU NXP Semiconductors LH7A40x
ARM940T As ARM9TDMI, cache 4 KB/4 KB, MPU GP2X (druhé jádro), Meizu M6 Mini Player[12][13]
ARM9E ARMv5TE ARM946E-S Thumb, Enhanced DSP instrukce, cache variabiln, těsně spřažené paměti, MPU Nintendo DS, Nokia N-Gage, Canon PowerShot A470, čipy Conexant 802.11, Samsung S5L2010
ARM966E-S Thumb, Enhanced DSP instrukce žádná cache, TCM ST Micro STR91xF, zahrnuje Ethernet[14]
ARM968E-S As ARM966E-S žádná cache, TCM NXP Semiconductors LPC2900
ARMv5TEJ ARM926EJ-S Thumb, Jazelle DBX, Enhanced DSP instrukce variabilní, TCM, MMU 220 MIPS @ 200 MHz, Mobilní telefony: Sony Ericsson série K a W; Siemens a Benq (série x65 a novější); Texas Instruments OMAP1710, OMAP1610, OMAP1611, OMAP1612, OMAP-L137, OMAP-L138; Qualcomm MSM6100, MSM6125, MSM6225, MSM6245, MSM6250, MSM6255A, MSM6260, MSM6275, MSM6280, MSM6300, MSM6500, MSM6800; Freescale i.MX21, i.MX27, Atmel AT91SAM9, NXP Semiconductors LPC3000, GPH Wiz, Marvell Feroceon (ex.: SheevaPlug), NEC C10046F5-211-PN2-A SoC – nezdokumentované jádro v ATi Hollywood, grafickém čipu použitém ve Wii,[15] Samsung S3C2412 použitý v ovladači Squeezebox Duet. NeoMagic MiMagic Family MM6, MM6+, MM8, MTV; Buffalo TeraStation Live (NAS); Telechips TCC7801, TCC7901;ZiiLABS' ZMS-05 SoC.
ARMv5TE ARM996HS netaktovaný, jako ARM966E-S žádná caches, TCM, MPU
ARM10E ARMv5TE ARM1020E 6stupňová pipeline, Thumb, Enhanced DSP instrukce, (VFP) 32 KB/32 KB, MMU
ARM1022E As ARM1020E 16 KB/16 KB, MMU
ARMv5TEJ ARM1026EJ-S Thumb, Jazelle DBX, Enhanced DSP instrukce, (VFP) variabilní, MMU nebo MPU Western Digital MyBook II World Edition
XScale ARMv5TE 80200/IOP310/IOP315 I/O Processor, Thumb, Enhanced DSP instrukce
80219 400/600 MHz Thecus N2100
IOP321 600 BogoMips @ 600 MHz Iyonix
IOP33x
IOP34x 1–2 jádra, akcelerace RAID 32K/32K L1, 512K L2, MMU
PXA210/PXA250 Aplikační procesor, 7stupňová pipeline PXA210: 133 and 200 MHz, PXA250: 200, 300 a 400 MHz Zaurus SL-5600, iPAQ H3900, Sony CLIÉ NX60, NX70V, NZ90
PXA255 32KB/32KB, MMU 400 BogoMips @ 400 MHz; 371–533 MIPS @ 400 MHz[16] Gumstix basix & connex, Palm Tungsten E2, Zaurus SL-C860, Mentor Ranger & Stryder, iRex ILiad
PXA263 200, 300 and 400 MHz Sony CLIÉ NX73V, NX80V
PXA26x standardně 400 MHz, schopný provozu do 624 MHz Palm Tungsten T3
PXA27x Aplikační procesor 32 KB/32 KB, MMU 800 MIPS @ 624 MHz Gumstix verdex,"Trizeps-Modules" Archivováno 28. 7. 2011 na Wayback Machine. PXA270 COM, HTC Universal, HP hx4700, Zaurus SL-C1000, 3000, 3100, 3200, Dell Axim série x30, x50 a x51, Motorola Q, Balloon3, Trolltech Greenphone, Palm TX, Motorola Ezx Platform A728, A780, A910, A1200, E680, E680i, E680g, E690, E895, Rokr E2, Rokr E6, Fujitsu Siemens LOOX N560, Toshiba Portégé G500, Trēo 650-755p, Zipit Z2
PXA800(E)F
PXA3XX (kódové jméno "Monahans") 32KB/32KB L1, TCM, MMU 1000 MIPS @ 1.25 GHz Samsung Omnia
PXA900 Blackberry 8700, Blackberry Pearl (8100)
IXC1100 Control Plane Processor
IXP2400/IXP2800
IXP2850
IXP2325/IXP2350
IXP42x NSLU2 IXP460/IXP465
ARM11 ARMv6 ARM1136J(F)-S[17] 8stupňová pipeline, SIMD, Thumb, Jazelle DBX, (VFP), Enhanced DSP instrukce variabilní, MMU 740 @ 532–665 MHz (i.MX31 SoC), 400–528 MHz Texas Instruments OMAP2420 (Nokia E90, Nokia N93, Nokia N95, Nokia N82), Zune, BUGbase[1], Nokia N800, Nokia N810, Qualcomm MSM7200 (s integrovaným koprocesorem ARM926EJ-S na frekvenci @274 MHz, použitým ve Eten Glofiish, HTC TyTN II, HTC Nike), Freescale i.MX31 (použitý v originálním Zune 30gb a Toshiba Gigabeat S), Freescale MXC300-30 (Nokia E63, Nokia E71, Nokia 5800, Nokia E51, Nokia E75, Nokia N97,Nokia 5530, Nokia N81), Qualcomm MSM7201A viděn v HTC Dreamu, HTC Magic, Motorola Z6, HTC Hero, & Samsung SGH-i627 (Propel Pro)
ARMv6T2 ARM1156T2(F)-S 9stupňová pipeline, SIMD, Thumb-2, (VFP), Enhanced DSP instrukce variabilní, MPU
ARMv6KZ ARM1176JZ(F)-S As ARM1136EJ(F)-S variabilní, MMU+TrustZone Apple iPhone, Apple iPod touch, Conexant CX2427X, Motorola RIZR Z8, Motorola RIZR Z10, NVIDIA GeForce 6100[18]; Telechips TCC9101, TCC9201, TCC8900, Fujitsu MB86H60, Samsung S3C6410, S3C6430[19], Broadcom BCM2835 (single core + VideoCore IV GPU) pro Raspberry Pi 1 (též Raspberry Pi Zero)
ARMv6K ARM11 MPCore As ARM1136EJ(F)-S, 1–4 SMP jádra variabilní, MMU Nvidia APX 2500
Cortex ARMv7-A Cortex-A5 VFP, NEON, Jazelle RCT a DBX, Thumb-2, 8stupňová pipeline, 1–4 SMP jádra variabilní (L1), MMU+TrustZone do 1500 (1.5 DMIPS/MHz) "Sparrow" (kódové jméno ARM)[20][21][22]
Cortex-A7 VFPv4, NEON, Jazelle RCT, Thumb-2, 8stupňová pipeline, 1–4 SMP jádra 1.9 DMIPS / MHz Broadcom BCM2836 (quad core A7 + VideoCore IV GPU) pro Raspberry Pi 2
Cortex-A8 VFP, NEON, Jazelle RCT, Thumb-2, 13stupňová superskalární pipeline variabilní (L1+L2), MMU+TrustZone do 2000 (2.0 DMIPS/MHz v rychlostech od 600 MHz do větších než 1 GHz) Texas Instruments OMAP3xxx, SBM7000, Oregon State University OSWALD, Gumstix Overo Earth, Pandora, Apple iPod touch (třetí generace), Archos 5, FreeScale i.MX51-SOC, BeagleBoard, Apple iPhone 3GS, Motorola Droid, Palm Pre, Samsung i8910, Sony Ericsson Satio, Touch Book, Nokia N900, ZiiLABS ZMS-08 SoC
Cortex-A9 Application profile, (VFP), (NEON), Jazelle RCT and DBX, Thumb-2, superskalární spekulativní provádění instrukcí mimo pořadí MMU+TrustZone 2.5 DMIPS/MHz
Cortex-A9 MPCore Jako Cortex-A9, 1–4 SMP jádra MMU+TrustZone 2.5 DMIPS/MHz (na jádro) Apple iPad, Texas Instruments OMAP4430/4440, ST-Ericsson U8500, Nvidia Tegra2
Cortex-A15 Jako Cortex-A9, 1–4 SMP jader s FPU, LPAE (adresuje až 1TB) MMU+TrustZone, hw virtualizace 2.5 DMIPS/MHz (na jádro)? ?
ARMv7-R Cortex-R4(F) Určené do vestavěných systémů, Thumb-2, (FPU) variabilní cache, volitelné MPU 600 DMIPS @ 475 MHz používá Broadcom, TMS570 od Texas Instruments
ARMv7-M Cortex-M3 Určení pro mikrokontroléry, pouze Thumb-. Hardwarově oddělené instrukce žádná cache, volitelné MPU. 125 DMIPS @ 100 MHz EFM32 od Energy Micro, Texas Instruments Stellaris microcontroller family, ST Microelectronics STM32, NXP Semiconductors LPC1700, Toshiba TMPM330FDFG Archivováno 14. 6. 2011 na Wayback Machine., série EM300 od Ember, Atmel AT91SAM3, Europe Technologies EasyBCU
ARMv6-M Cortex-M0 (kódové jméno "Swift")[23] Určení pro mikrokontroléry, podmnožina Thumb-2 (16bitové Thumb instrukce & BL, MRS, MSR, ISB, DSB a DMB). Žádná cache. 0.9 DMIPS/MHz NXP Semiconductors NXP LPC1100[24], Triad Semiconductor [25], Melfas[26], Chungbuk Technopark [27], Nuvoton [28], austriamicrosystems [29]
Cortex-M1 Určené do FPGA, profil pro mikrokontroléry, podmnožina Thumb-2 (16bitové Thumb instrukce & BL, MRS, MSR, ISB, DSB a DMB). Žádná, těsně spřažená paměť je volitelná. Do 136 DMIPS @ 170 MHz[30] (0.8 DMIPS/MHz,[31]) Actel ProASIC3, ProASIC3L, IGLOO a Fusion PSC devices, Altera Cyclone III, další FPGA produkty jsou také podporovány např. Synplicity

[32]

Rodina Architektonická verze Jádro Vlastnosti Cache (I/D)/MMU Typický výkon v MIPS @ MHz V použití

Přehled 32bitových procesorů ARM (ARMv8)

Rodina Architektonická verze Jádro Vlastnosti Cache (I/D)/MMU Typický výkon v MIPS @ MHz V použití
Cortex-A50 ARMv8-A Cortex-A32 32bit (ARMv8), výkon podobný 64bitovému A35, energeticky poněkud efektivnější.[33] ? ? IoT
Rodina Architektonická verze Jádro Vlastnosti Cache (I/D)/MMU Typický výkon v MIPS @ MHz V použití

Přehled 64bitových procesorů ARM (ARMv8)

Rodina Architektonická verze Jádro Vlastnosti Cache (I/D)/MMU Typický výkon v MIPS @ MHz V použití
Cortex-A50 ARMv8-A Cortex-A35 64/32bit, o 25% energeticky efektivnější než A53.[34] Je o 33% energeticky úspornější a zabírá o 25% menší plochu na čipu než A53.[35] ? ? low end
Cortex-A53 64/32bit, provádění instrukcí v (původním) pořadí – in-order (výkon přibližně na úrovni 32bitového Cortex-A9[36]; dále výkonnostní srovnání s Cortex-A7[37]) ? ? low end/mainstream PC, main stream smartfonů; Samsung Exynos Octa + GPU Mali-T830[38]; Qualcomm Snapdragon 610 (čtyřjádro), Qualcomm Snapdragon 615 (osmijádro), oba používají GPU Adreno 405[39] Viz též Rasperry Pi 3.[40]
Cortex-A57 64/32bit, provádění instrukcí mimo (původní) pořadí – out-of-order (o 56%rychlejší na takt než Cortex-A53)[41][42][43] ? ? servery/mainstream PC, též v kombinaci s úsporným Cortex-A53
Cortex-A72 64/32bit, provádění instrukcí mimo (původní) pořadí – out-of-order (o 20-60%rychlejší na takt než Cortex-A57)[44] ? ? servery/mainstream PC, též v kombinaci s úsporným Cortex-A53[45][46][47][48], GPU Mali-T880. Viz též Raspberry Pi 4.[49]
Cortex-A73 64/32bit, provádění instrukcí mimo (původní) pořadí – out-of-order; jeho jednovláknový výkon je při přepočtu na plochu čipu momentálně nejvyšší, a až o 30% vyšší než Cortex-A72, při zachování příkonu a zmenšení "otisku" CPU na čipu.[50][51][52][53] ? ? Prémiová až mainstreamová mobilní zařízení. Virtuální realita. Možno použít s CPU jádry Cortex-A53 nebo Cortex-A35; a GPU jádry Mali-G71.[50][51][52]
ARMv8.2-A Cortex-A76 64/32bit, provádění instrukcí mimo (původní) pořadí – out-of-order.[54] L1 I-cache/D-cache 64KiB; L2 cache 128 až 512KiB; L3 cache volitelná, 512KiB až 4MiB. Výkon jednojádrově Raspberry Pi 5 774, čtyřjádrově 1588; oproti Raspberry Pi 4, které má jednojádrově 340, čtyřjádrově 723.[55][56] Viz též Broadcom BCM2712: Raspberry Pi 5; s GPU jádry VideoCore VII GPU, podporující OpenGL ES 3.1, Vulkan 1.2.[57]
Rodina Architektonická verze Jádro Vlastnosti Cache (I/D)/MMU Typický výkon v MIPS @ MHz V použití

Přehled procesorů ARMv9

Rodina Architektonická verze Jádro Vlastnosti Cache (I/D)/MMU Typický výkon v MIPS @ MHz V použití
Cortex-X2 ARMv9-A Cortex-A510 3x in-order pipeline, trojitý výběr, dekódování a provádění instrukcí; 3x ALU ? ? Následovník Cortex-A55, o 35% vyšší výkon, o 20% vyšší energetická efektivita. "LITTLE" - doplněk Cortex-A710[58][59]
Cortex-A710 5x out-of-order pipeline, pětinásobný výběr, dekódování a provádění instrukcí; 4x ALU ? ? Následovník Cortex-A78, o 10% vyšší výkon, o 30% vyšší energetická efektivita, 2x strojové učení. "big" - doplněk Cortex-A510[58][59][60]
Rodina Architektonická verze Jádro Vlastnosti Cache (I/D)/MMU Typický výkon v MIPS @ MHz V použití

Charakteristika architektury ARM

  • přístup do paměti pouze instrukcemi Load/Store
  • částečné překrývání vnitřních registrů
  • možnost podmíněného vykonání instrukcí
  • jednoduchý a výkonný instrukční soubor, jednoduše využitelné kompilátory vyšších programovacích jazyků

Procesory ARM podporují dva adresové módy. Můžeme adresovat buď prostřednictvím čítače instrukcí, nebo pomocí bázové adresy uložené v jednom z vnitřních registrů. Do paměti lze přistupovat pouze instrukcemi Load/Store (Load-Store Architecture) výrazně zjednodušuje výkonnou jednotku (Execution Unit) procesoru, protože pouze několik instrukcí pracuje přímo s pamětí. Většina instrukcí pracuje s vnitřními registry.

ARM procesory podporují dvě úrovně priority přerušení s dvěma zaměnitelnými bankami registrů. Nejkratší doba provedení požadavku na přerušení je poskytována režimem rychlého přerušení FIQ (Fast Interrupt Request). Druhý typ přerušení je IRQ (Interrupt Request), který se používá pro obsluhu přerušení nevyžadujících extrémně krátké doby odezvy nebo v případě, že vlastní obsluha přerušení je oproti době reakce procesoru mnohonásobně delší.

Architektura procesoru ARM

Procesor ARM obsahuje 44 základních instrukcí s jednotnou šířkou 32 bitů. V jednom taktu se vykonávají pouze instrukce pracující s aritmeticko-logickou jednotkou (ALU), s registry nebo s přímými operandy.

Procesor pracuje ve čtyřech základních režimech:

  • uživatelský režim USR
  • privilegovaný režim supervizora SUP
  • privilegovaný režim přerušení IRQ
  • privilegovaný režim rychlého přerušení FIQ

V procesoru je obsaženo 25 částečně se překrývajících 32bitových registrů (15 registrů je univerzálních a zbývajících 10 má speciální funkce), z toho 16 registrů je v každém režimu činnosti programově přístupných.

Množina registrů procesoru
Režim Mód Registry Poznámka
Uživatelský 0 R0 až R9 R10 R11 R12 R13 R14 R15
(PSW)
Rychlé přerušení 1 R10
FIQ
R11
FIQ
R12
FIQ
R13
FIQ
R14
FIQ
Privilegované
Přerušení 2 R10 R11 R12 R13
IRQ
R14
IRQ
Supervisor 3 R10 R11 R12 R13
SVC
R14
SVC

Registry R0 až R13 jsou přístupné v uživatelském režimu pro libovolný účel. Registr R14 je určen výhradně pro uživatelský režim. Pět registrů je speciálně určeno pro režim rychlého přerušení (FIQ). Je-li procesor v režimu FIQ, je těchto pět registrů mapováno do registrů R10 až R14. V registru R14 je uložena návratová adresa do přerušeného programu. Další dva registry jsou určeny pro režim přerušení (IRQ) a v tomto režimu překrývají registry R13 a R14 uživatelského režimu. Další dva registry jsou určeny pro privilegovaný režim supervizora. Poslední registr R15 obsahuje stavové slovo procesoru a čítač instrukcí, který je sdílen všemi režimy činnosti. Významově nejvyšších 6 bitů PSW obsahuje stav procesoru, dalších 24 bitů představuje čítač instrukcí a významově nejnižší dva bity obsahují aktuální režim činnosti procesoru.

Specifika procesoru ARM

Jak bylo uvedeno, procesor obsahuje množinu částečně se překrývajících registrů, takže v případě přerušení nemusí být proveden kompletní úklid registrů. V případě režimu rychlého přerušení FIQ je zkrácení doby odezvy procesoru dosaženo použitím čtyř lokálních univerzálních registrů a jednoho registru s návratovou adresou. Tyto registry mohou obsahovat všechny ukazatele a různé čítače používané v jednoduchých procedurách obsluhy vstupů a výstupů, takže lze dobře dosáhnout velmi rychlého opakovaného přepínání procesoru mezi uživatelským režimem a režimem „rychlého přerušení“.

Procesor je dále schopen obsloužit následující přerušení:

  • chyba v adresování (Address Exception Trap)
  • chyba při čtení, nebo zápisu dat do vnější paměti (Data Fetch Cyrcle Aborts)
  • chyba při čtení instrukce z vnější paměti (Instruction Fetch Cyrcle Aborts)
  • přerušení programovými prostředky (instrukce SWI)
  • nedefinovaný kód instrukcí (Undefined Instruction Traps)
  • reset procesoru

Procesor poskytuje 26bitovou adresu lineární operační paměti, což umožňuje adresovat 64 MiB fyzické paměti. Odkaz na data mimo rozsah způsobí přerušení chyby adresování (Address Exception Trap).

Vektory obsluh jednotlivých přerušení
Adresa Funkce Priorita
000 0000 Reset 0 (nejvyšší)
000 0014 Chyba adresace 1
000 0010 Abort (datový) 2
000 001C Rychlé přerušení (FIQ) 3
000 0018 Přerušení (IRQ) 4
000 000C Abort (instrukční) 5
000 0004 Nedefinovaný instrukční kód 6
000 0008 Softwarové přerušení 7 (nejnižší)

Instrukční soubor procesoru ARM

Instrukční soubor můžeme rozdělit na skupiny:

  • instrukce zpracování údajů – zpracování registrových operandů, zpracování přímých operandů, nastavení podmínkového kódu a instrukce aritmeticko-logické
  • instrukce jednoduchého přenosu údajů
  • instrukce blokového přenosu údajů – instrukce vykonávají přenos mezi skupinou registrů a spojitou oblastí paměti, přičemž jeden registr je použit jako směrník
  • instrukce větvení a větvení s uchováním návratové adresy (tyto instrukce odkládají PSW do R14)
  • instrukce přechodu do privilegovaného režimu supervizora, které zahrnují i programové přerušení

Všechny instrukce mají čtyřbitový prefix, který zajišťuje podmíněné vykonání samotné instrukce. Instrukce zpracování údajů pracují pouze nad souborem vnitřních registrů a každá z těchto instrukcí obsahuje reference na tři operandy: jeden cílový a dva zdrojové.

Instrukce přenosu údajů jsou použity k přenosu dat mezi pamětí a souborem registrů (Load) a naopak (Store). Efektivní adresa je vypočtena součtem obsahu zdrojového registru a posuvu (offset) daného 12bitovou konstantou nebo obsahem dalšího registru. Posuv (offset) může být přičítán k indexovému registru nebo od něj odčítán. Instrukce přenosu údajů mohou pracovat jak s jednotlivými byty, tak s dvojitým slovem (Double Word, 32bitů). Byte přečtený z paměti je uložen do významově nejnižších 8bitů cílového registru a zbytek obsahu je zaplněn nulami.

Instrukce blokového přenosu zabezpečují přenos několika registrů jednou instrukcí. Instrukce obsahuje pole bitů, z nichž každý odpovídá jednomu registru viditelnému v daném režimu. Bit 0 odpovídá R0, bit 1 odpovídá R1, atd.

Instrukce programového přerušení jsou použity především pro přechod do privilegovaného režimu supervizora. PSW je ukládáno do registru R14 režimu supervizora a hodnota čítače instrukcí je dána adresou softwarového přerušení.

Velikost stránky paměti

ARMv8 (AArch64) má v 64bitovém režimu volitelnou velikost stránky paměti 4, 16 nebo 64 KiB. Standardní velikost je 4 KiB. Větší stránky paměti jsou používány v serverovém a HPC prostředí[61] a v systému Android 15,[62] kde 16 KiB stránky poskytují zvýšení výkonu o 5 až 10 % na úkor zvýšení využití operační paměti RAM o asi 9 %.

Odkazy

Reference

  1. Qualcomm Announces Always Connected Platform for Windows Devices. xda-developers. 2017-12-05. Dostupné online [cit. 2017-12-07]. (anglicky) 
  2. MCU Market on Migration Path to 32-bit and ARM-based Devices: 32-bit tops in sales; 16-bit leads in unit shipments [online]. IC Insights, 25 April 2013 [cit. 2014-07-01]. Dostupné v archivu pořízeném dne 2017-08-18. 
  3. ARM Holdings eager for PC and server expansion. [s.l.]: [s.n.], 1 February 2011. Dostupné online. 
  4. Kerry McGuire Balanza. ARM from zero to billions in 25 short years. [s.l.]: ARM Holdings, 11 May 2010. Dostupné online. 
  5. ARM 50 Billion Chips [online]. [cit. 2014-04-01]. Dostupné v archivu pořízeném dne 2014-04-07. 
  6. ARMed for the living room. CNET [online]. [cit. 2024-10-13]. Dostupné online. (anglicky) 
  7. "ARM's new brain". www.eetimes.com [online]. [cit. 2010-09-15]. Dostupné v archivu pořízeném dne 2010-10-03. 
  8. "ARM810 – Dancing to the Beat of a Different Drum" Archivováno 23. 7. 2011 na Wayback Machine. ARM Holdings presentation at Hot Chips 1996-08-07.
  9. Register 13, FCSE PID register ARM920T Technical Reference Manual
  10. Neo1973: GTA01Bv4 versus GTA02 comparison [online]. [cit. 2007-11-15]. Dostupné v archivu pořízeném dne 2012-03-18. 
  11. S3C2410 [online]. [cit. 2010-01-13]. Dostupné online. 
  12. Rockbox Samsung SA58xxx series [online]. [cit. 2008-02-22]. Dostupné online. 
  13. Rockbox Meizu M6 Port – Hardware Information [online]. [cit. 2008-02-22]. Dostupné online. 
  14. STR9 – STR912 – STR912FW44 microcontroller – documents and files download page [online]. Mcu.st.com [cit. 2009-04-18]. Dostupné v archivu pořízeném dne 2007-02-10. 
  15. Starlet.
  16. Benchmarks – Albatross [online]. Albatross-uav.org, 2005-06-18 [cit. 2009-04-18]. Dostupné v archivu pořízeném dne 2009-08-02. 
  17. ARM1136J(F)-S – ARM Processor [online]. Arm.com [cit. 2009-04-18]. Dostupné online. 
  18. GoForce 6100 [online]. Nvidia.com [cit. 2009-04-18]. Dostupné online. 
  19. Samsung S3C6410 and S3C6430 Series ARM Proccessors [online]. Samsung [cit. 2009-10-08]. Dostupné v archivu pořízeném dne 2009-09-01. 
  20. MERRIT, Rick. "ARM stretches out with A5 core, graphics, FPGAs" [online]. EE Times, 2009-10-21 [cit. 2009-10-28]. Dostupné v archivu pořízeném dne 2012-03-13. 
  21. CLARKE, Peter. ARM tips plans for Swift and Sparrow processor cores [online]. EE Times, 2009-02-03 [cit. 2009-04-18]. Dostupné v archivu pořízeném dne 2012-03-13. 
  22. SEGAN, Sascha. ARM's Multicore Chips Aim for Netbooks [online]. PC Magazine, 2009-04-09 [cit. 2009-04-18]. Dostupné online. 
  23. CLARKE, Peter. ARM preps tiny core for low-power microcontrollers [online]. EE Times, 2009-02-23 [cit. 2009-11-30]. Dostupné v archivu pořízeném dne 2012-03-13. 
  24. WALKO, John. NXP first to demo ARM Cortex-M0 silicon [online]. EE Times, 2009-03-23 [cit. 2009-06-29]. Dostupné v archivu pořízeném dne 2012-03-13. 
  25. www.triadsemi.com [online]. [cit. 29-01-2010]. Dostupné v archivu pořízeném dne 16-07-2011. 
  26. http://www.electronicsweekly.com/Articles/2009/06/10/46252/cortex-m0-used-in-low-power-touch-controller.htm
  27. http://www.design-reuse.com/news/22137/arm-cortex-m0-processor.html
  28. Archivovaná kopie. translate.google.co.uk [online]. [cit. 2010-01-29]. Dostupné v archivu pořízeném z originálu dne 2011-09-26. 
  29. http://www10.edacafe.com/nbc/articles/view_article.php?articleid=752000
  30. "ARM Extends Cortex Family with First Processor Optimized for FPGA", ARM press release, March 19, 2007. Retrieved April 11, 2007.
  31. "ARM Cortex-M1", ARM product website. Retrieved April 11, 2007.
  32. ARM Extends Cortex Family with First Processor Optimized for FPGA.
  33. OLŠAN, Jan. ARM uvádí jádro Cortex-A32. Architektura ARMv8 bez 64 bitů pro IoT či hodinky. http://www.cnews.cz [online]. 2016-02-25 [cit. 2016-02-25]. Dostupné online. 
  34. ARM představil ultra-miniaturní 64bit jádro Cortex-A35
  35. New ARM Cortex-A35 Processor Extends the ARMv8-A Architecture Deeper Into Mobile and Embedded Markets [online]. ARM, 10.11.2015 [cit. 2015-11-13]. Dostupné online. 
  36. ARM's Cortex A57 and Cortex A53: The First 64-bit ARMv8 CPU Cores [online]. http://www.anandtech.com/. Dostupné online. 
  37. BY. Hackaday [online]. [cit. 2016-05-15]. Dostupné online. 
  38. VÁCLAVÍK, Lukáš. Exynos 7 Octa 7870 je stvořen pro střední třídu. Samsung snížil spotřebu o třetinu. http://www.cnews.cz/ [online]. 2016-02-17 [cit. 2016-02-17]. Dostupné online. 
  39. http://www.zive.cz/clanky/nove-mobilni-procesory-qualcomm-intel-i-mediatek/sc-3-a-172665/default.aspx Nové mobilní procesory: Qualcomm, Intel i MediaTek
  40. Raspberry Pi Documentation - Processors. www.raspberrypi.com [online]. [cit. 2024-01-12]. Dostupné online. (anglicky) 
  41. ARMASU, Lucian. Huawei Kirin 930 Chip Uses High Frequency Cortex-A53 For High-End Performance [online]. http://www.tomshardware.com/. Dostupné online. 
  42. SOUČEK, Jiří. Osmijádrový Opteron A1100 Seattle konečně vydán. http://diit.cz/ [online]. 2016-01-15 [cit. 2016-01-15]. Dostupné online. 
  43. AMD odštartovala výrobu ARM procesorov. http://dsl.sk/ [online]. 2016-01-15 [cit. 2016-01-15]. Dostupné online. (slovensky) 
  44. JAVŮREK, Karel. Cortex-A72: útok ARMu na 14nm čip Core M. Http://www.zive.cz/. Zive.cz [online]. [cit. 2015-08-09]. Dostupné online. 
  45. Cortex-A72 Processor [online]. ARM [cit. 2015-08-09]. Dostupné online. (anglicky) 
  46. http://diit.cz/clanek/arm-predstavil-cpu-cortex-a72-gpu-mali-t880-pro-smartphony-roku-2016 ARM představil Cortex-A72 a GPU Mali-T880, platformu pro smartphony roku 2016
  47. http://www.abclinuxu.cz/clanky/hw-novinky-raspberry-pi-2-je-tu ARM odhalil inovované architektury Cortex-A72 a Mali-T880
  48. http://pctuning.tyden.cz/component/content/article/1-aktualni-zpravy/32919-prvni-cipy-vyuzivajici-novou-architekturu-arm-cortex-a72-dorazi-na-trh-v-roce-2016 První čipy využívající novou architekturu ARM Cortex-A72 dorazí na trh v roce 2016
  49. Raspberry Pi Documentation - Processors. www.raspberrypi.com [online]. [cit. 2024-01-12]. Dostupné online. (anglicky) 
  50. a b LAWSON, Stephen. The company's new CPU and GPU designs aim for high efficiency and sustained performance. Http://www.computerworld.com/. www.ComputerWorld.com [online]. 2016-05-29 [cit. 2016-05-30]. Dostupné v archivu pořízeném z originálu dne 2016-05-31. (anglický) 
  51. a b LARABEL, Michail. ARM Announces the Mali-G71 Graphics Processor, Cortex-A73. Http://www.phoronix.com. Phoronix.com [online]. 2016-05-30 [cit. 2016-05-30]. Dostupné online. (anglicky) 
  52. a b Cortex-A73 Processor [online]. ARM Ltd. [cit. 2016-05-30]. Dostupné online. (anglicky) 
  53. DSL.sk [online]. DSL.sk [cit. 2016-05-30]. Dostupné online. 
  54. Cortex-A76. developer.arm.com [online]. [cit. 2024-04-07]. Dostupné online. 
  55. ALASDAIR, Allan. Benchmarking Raspberry Pi 5. www.raspberrypi.com [online]. www.raspberrypi.com [cit. 2024-04-07]. Dostupné online. 
  56. LEE, David. Raspberry Pi 5 CPU Performance [online]. 2023-11-14 [cit. 2024-04-07]. Dostupné online. (anglicky) 
  57. UPTON, Eben. Introducing: Raspberry Pi 5!. www.raspberrypi.com [online]. www.raspberrypi.com [cit. 2024-04-07]. Dostupné online. (anglicky) 
  58. a b OLŠAN, Jan. Architektury CPU ARM Cortex-X2, Cortex-A710 a Cortex-A510 [online]. 2021-05-26 [cit. 2022-04-19]. Dostupné online. 
  59. a b OLŠAN, Jan. ARMv9, SVE, SVE2: nová generace CPU architektury ARM [online]. 2021-04-07 [cit. 2022-04-02]. Dostupné online. 
  60. LTD, Arm. Cortex-A710. Arm | The Architecture for the Digital World [online]. [cit. 2022-04-19]. Dostupné online. (anglicky) 
  61. LARABEL, Michael. 64K Kernel Page Size Performance Benefits For HPC Shown With NVIDIA's GH200 Grace CPU. Phoronix.com [online]. 2024-02-27 [cit. 2024-06-12]. Dostupné online. (anglicky) 
  62. LARABEL, Michael. Google Making Progress On 16KB Page Size For Android. Phoronix.com [online]. 2024-08-23 [cit. 2024-08-24]. Dostupné online. (anglicky) 

Literatura

  • LIČEV, Lačezar; MORKES, David. Procesory – architektura, funkce, použití. Praha: Computer Press, 1999. ISBN 80-7226-172-X. 
  • VÁŇA, Vladimír. ARM pro začátečníky. Praha: BEN, 2009. ISBN 978-80-7300-246-6. 

Související články

Externí odkazy