ARM

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

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. Globálně je v roce 2013 ARM nejpočetněji zastoupenou architekturou mikroprocesorů, 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. 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. +more Její návrh se řídí filosofií 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á od výrobců hardware vybírá licence za jeho použití. +more 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 často používají např. procesory XScale od firmy Marvell, nebo OMAP od firmy Texas Instruments.

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

Rostoucí význam architektury ARM, jejíž nejvýkonnější zástupci 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. ). +more 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

RodinaArchitektonická verzeJádroVlastnostiCache (I/D)/MMUTypický výkon v MIPS @ MHzV použití
ARM1ARMv1 (zastaralá)ARM1NeníARM Evaluation System druhý procesor pro BBC Micro
ARM2ARMv2 (zastaralá)ARM2Architektura 2 přidala 2 MUL (multiply) instrukce. None4 MIPS @ 8 MHz 0. +more33 DMIPS/MHzAcorn Archimedes, Chessmachine
ARM2ARMv2a (zastaralá)ARM250Integrovaný MEMC (MMU), grafický a IO procesor. Architektura 2a přidala instrukce SWP a SWPB (swap). Není, MEMC1a7 MIPS @ 12 MHzAcorn Archimedes
ARM3ARMv2a (zastaralá)ARM2aPrvní použití procesorové cache u ARM. 4KB unifikovaná12 MIPS @ 25 MHz 0. 50 DMIPS/MHzAcorn Archimedes
ARM6ARMv3 (zastaralá)ARM60v3 architektura poprvé podporovala adresování 32 bitů paměti (oproti 26 bitům)Není10 MIPS @ 12 MHz3DO Interactive Multiplayer, Zarlink GPS Receiver
ARM6ARMv3 (zastaralá)ARM600As ARM60, cache a sběrnice koprocesor u (pro FPA10 FPU). 4K unifikovaná28 MIPS @ 33 MHz
ARM6ARMv3 (zastaralá)ARM610As ARM60, cache, žádná sběrnice koprocesoru. 4K unifikovaná17 MIPS @ 20 MHz 0. 65 DMIPS/MHzAcorn Risc PC 600, Apple Newton 100 series
ARM7ARMv3 (zastaralá)ARM7008 KB unifikovaná40 MHzPrototypová CPU karta Acorn Risc PC
ARM7ARMv3 (zastaralá)ARM710As ARM7008 KB unifikovaná40 MHzAcorn Risc PC 700
ARM7ARMv3 (zastaralá)ARM710aAs ARM7008 KB unifikovaná40 MHz 0. 68 DMIPS/MHzAcorn Risc PC 700, Apple eMate 300
ARM7ARMv3 (zastaralá)ARM7100As ARM710a, integrovaný SoC. 8 KB unifikovaná18 MHzPsion Series 5
ARM7ARMv3 (zastaralá)ARM7500As ARM710a, integrovaný SoC. 4 KB unifikovaná40 MHzAcorn A7000
ARM7ARMv3 (zastaralá)ARM7500FEAs ARM7500, "FE" přidaní řadiče FPA a pamětí EDO. 4 KB unifikovaná56 MHz 0. 73 DMIPS/MHzAcorn A7000+ Network Computer
ARM7TDMIARMv4TARM7TDMI(-S)3stupňová pipeline, Thumbnone15 MIPS @ 16. 8 MHz 63 DMIPS @ 70 MHzGame Boy Advance, Nintendo DS, iPod, Lego NXT, Atmel AT91SAM7, Juice Box, NXP Semiconductors LPC2000 a [url=https://web. archive. org/web/20091124220747/http://www. standardics. nxp. com/products/lh7/]LH754xx[/url]
ARM7TDMIARMv4TARM710TAs ARM7TDMI, cache8 KB unifikovaná, MMU36 MIPS @ 40 MHzPsion Series 5mx, Psion Revo/Revo Plus/Diamond Mako
ARM7TDMIARMv4TARM720TAs ARM7TDMI, cache8 KB unifikovaná, MMU s Fast Context Switch Extension60 MIPS @ 59. 8 MHzZipit Wireless Messenger, NXP Semiconductors [url=https://web. archive. org/web/20091124220747/http://www. standardics. nxp. com/products/lh7/]LH7952x[/url]
ARM7TDMIARMv4TARM740TJako ARM7TDMI, cacheMPU
ARM7TDMIARMv5TEJARM7EJ-S5stupňová pipeline, Thumb, Jazelle DBX, Enhanced DSP instrukce
StrongARMARMv4SA-11016 KB/16 KB, MMU203 MHz 1. 0 DMIPS/MHzApple Newton série 2x00, Acorn Risc PC, Rebel/Corel Netwinder, Chalice CATS, Psion Netbook
StrongARMARMv4SA-1110As SA-110, integrovaný SoC16 KB/16 KB, MMU233 MHzLART (počítač), Intel Assabet, Ipaq H36x0, Balloon2, Zaurus SL-5x00, HP Jornada 7xx, Jornada 560, Palm Zire 31
ARM8ARMv4ARM8105stupňová pipeline, statická predikce skoku, paměť s dvojnásobnou propustností8 KB unifikovná, MMU84 MIPS @ 72 MHz 1. 16 DMIPS/MHzPrototyp CPU karty Acorn Risc PC
ARM9TDMIARMv4TARM9TDMI5stupňová pipeline, ThumbNení
ARM9TDMIARMv4TARM920TAs ARM9TDMI, cache16 KB/16 KB, MMU s FCSE (Fast Context Switch Extension)200 MIPS @ 180 MHzArmadillo, 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), Samsung S3C2410 (navigační zařízení TomTom)
ARM9TDMIARMv4TARM922TAs ARM9TDMI, cache8 KB/8 KB, MMUNXP Semiconductors [url=https://web. archive. org/web/20090521212410/http://www. standardics. nxp. com/products/lh7a/]LH7A40x[/url]
ARM9TDMIARMv4TARM940TAs ARM9TDMI, cache4 KB/4 KB, MPUGP2X (druhé jádro), Meizu M6 Mini Player
ARM9EARMv5TEARM946E-SThumb, Enhanced DSP instrukce, cachevariabiln, těsně spřažené paměti, MPUNintendo DS, Nokia N-Gage, Canon PowerShot A470, čipy Conexant 802. 11, Samsung S5L2010
ARM9EARMv5TEARM966E-SThumb, Enhanced DSP instrukcežádná cache, TCMST Micro STR91xF, zahrnuje Ethernet
ARM9EARMv5TEARM968E-SAs ARM966E-Sžádná cache, TCMNXP Semiconductors [url=https://web. archive. org/web/20090612074112/http://www. standardics. nxp. com/products/lpc2000/lpc29xx/]LPC2900[/url]
ARM9EARMv5TEJARM926EJ-SThumb, Jazelle DBX, Enhanced DSP instrukcevariabilní, TCM, MMU220 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 [url=https://web. archive. org/web/20091127231631/http://www. standardics. nxp. com/products/lpc3000/]LPC3000[/url], 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, 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.
ARM9EARMv5TEARM996HSnetaktovaný, jako ARM966E-Sžádná caches, TCM, MPU
ARM10EARMv5TEARM1020E6stupňová pipeline, Thumb, Enhanced DSP instrukce, (VFP)32 KB/32 KB, MMU
ARM10EARMv5TEARM1022EAs ARM1020E16 KB/16 KB, MMU
ARM10EARMv5TEJARM1026EJ-SThumb, Jazelle DBX, Enhanced DSP instrukce, (VFP)variabilní, MMU nebo MPUWestern Digital MyBook II World Edition
XScaleARMv5TE80200/IOP310/IOP315I/O Processor, Thumb, Enhanced DSP instrukce
XScaleARMv5TE80219400/600 MHzThecus N2100
XScaleARMv5TEIOP321600 BogoMips @ 600 MHzIyonix
XScaleARMv5TEIOP33x
XScaleARMv5TEIOP34x1-2 jádra, akcelerace RAID32K/32K L1, 512K L2, MMU
XScaleARMv5TEPXA210/PXA250Aplikační procesor, 7stupňová pipelinePXA210: 133 and 200 MHz, PXA250: 200, 300 a 400 MHzZaurus SL-5600, iPAQ H3900, Sony CLIÉ NX60, NX70V, NZ90
XScaleARMv5TEPXA25532KB/32KB, MMU400 BogoMips @ 400 MHz; 371-533 MIPS @ 400 MHzGumstix basix & connex, Palm Tungsten E2, Zaurus SL-C860, Mentor Ranger & Stryder, iRex ILiad
XScaleARMv5TEPXA263200, 300 and 400 MHzSony CLIÉ NX73V, NX80V
XScaleARMv5TEPXA26xstandardně 400 MHz, schopný provozu do 624 MHzPalm Tungsten T3
XScaleARMv5TEPXA27xAplikační procesor32 KB/32 KB, MMU800 MIPS @ 624 MHzGumstix verdex,[url=http://www. keith-koep. com/produkte/xscale-arm-embedded/trizeps4-pxa270-e. html]"Trizeps-Modules"[/url] 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
XScaleARMv5TEPXA800(E)F
XScaleARMv5TEPXA3XX (kódové jméno "Monahans")32KB/32KB L1, TCM, MMU1000 MIPS @ 1. 25 GHzSamsung Omnia
XScaleARMv5TEPXA900Blackberry 8700, Blackberry Pearl (8100)
XScaleARMv5TEIXC1100Control Plane Processor
XScaleARMv5TEIXP2400/IXP2800
XScaleARMv5TEIXP2850
XScaleARMv5TEIXP2325/IXP2350
XScaleARMv5TEIXP42xNSLU2 IXP460/IXP465
ARM11ARMv6ARM1136J(F)-S8stupňová pipeline, SIMD, Thumb, Jazelle DBX, (VFP), Enhanced DSP instrukcevariabilní, MMU740 @ 532-665 MHz (i. MX31 SoC), 400-528 MHzTexas Instruments OMAP2420 (Nokia E90, Nokia N93, Nokia N95, Nokia N82), Zune, BUGbase[url=http://www. buglabs. net/],][[Nokia N800[/url]], 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)
ARM11ARMv6T2ARM1156T2(F)-S9stupňová pipeline, SIMD, Thumb-2, (VFP), Enhanced DSP instrukcevariabilní, MPU
ARM11ARMv6KZARM1176JZ(F)-SAs ARM1136EJ(F)-Svariabilní, MMU+TrustZoneApple iPhone, Apple iPod touch, Conexant CX2427X, Motorola RIZR Z8, Motorola RIZR Z10, NVIDIA GeForce 6100; Telechips TCC9101, TCC9201, TCC8900, Fujitsu MB86H60, Samsung S3C6410, S3C6430, Broadcom BCM2835 (single core + VideoCore IV GPU) pro Raspberry Pi 1
ARM11ARMv6KARM11 MPCoreAs ARM1136EJ(F)-S, 1-4 SMP jádravariabilní, MMUNvidia APX 2500
CortexARMv7-ACortex-A5VFP, NEON, Jazelle RCT a DBX, Thumb-2, 8stupňová pipeline, 1-4 SMP jádravariabilní (L1), MMU+TrustZonedo 1500 (1. 5 DMIPS/MHz)"Sparrow" (kódové jméno ARM)
CortexARMv7-ACortex-A7VFPv4, NEON, Jazelle RCT, Thumb-2, 8stupňová pipeline, 1-4 SMP jádra1. 9 DMIPS / MHzBroadcom BCM2836 (quad core A7 + VideoCore IV GPU) pro Raspberry Pi 2
CortexARMv7-ACortex-A8VFP, NEON, Jazelle RCT, Thumb-2, 13stupňová superskalární pipelinevariabilní (L1+L2), MMU+TrustZonedo 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
CortexARMv7-ACortex-A9Application profile, (VFP), (NEON), Jazelle RCT and DBX, Thumb-2, superskalární spekulativní provádění instrukcí mimo pořadíMMU+TrustZone2. 5 DMIPS/MHz
CortexARMv7-ACortex-A9 MPCoreJako Cortex-A9, 1-4 SMP jádraMMU+TrustZone2. 5 DMIPS/MHz (na jádro)Apple iPad, Texas Instruments OMAP4430/4440, ST-Ericsson U8500, Nvidia Tegra2
CortexARMv7-A-Cortex-A15Jako Cortex-A9, 1-4 SMP jader s FPU, LPAE (adresuje až 1TB)MMU+TrustZone, hw virtualizace2. 5 DMIPS/MHz (na jádro).
CortexARMv7-RCortex-R4(F)Určené do vestavěných systémů, Thumb-2, (FPU)variabilní cache, volitelné MPU600 DMIPS @ 475 MHzpoužívá Broadcom, TMS570 od Texas Instruments
CortexARMv7-MCortex-M3Určení pro mikrokontroléry, pouze Thumb-. Hardwarově oddělené instrukcežádná cache, volitelné MPU. 125 DMIPS @ 100 MHzEFM32 od Energy Micro, Texas Instruments [url=https://web. archive. org/web/20150222085427/http://www. luminarymicro. com/]Stellaris[/url] microcontroller family, ST Microelectronics [url=http://mcu. st. com]STM32[/url], NXP Semiconductors [url=https://web. archive. org/web/20091221043659/http://www. standardics. nxp. com/products/lpc1000/lpc17xx/]LPC1700[/url], Toshiba [url=http://www. toshiba. com/taec/news/press_releases/2008/mcus_08_542. jsp]TMPM330FDFG[/url] , série EM300 od Ember, Atmel AT91SAM3, Europe Technologies [url=https://web. archive. org/web/20100310191238/http://www. europe-technologies. com/easyBCU. php]EasyBCU[/url]
CortexARMv6-MCortex-M0 (kódové jméno "Swift")Určení pro mikrokontroléry, podmnožina Thumb-2 (16bitové Thumb instrukce & BL, MRS, MSR, ISB, DSB a DMB). Žádná cache. 0. 9 DMIPS/MHzNXP Semiconductors [url=https://web. archive. org/web/20090924184858/http://www. standardics. nxp. com/products/lpc1000/lpc11xx/]NXP LPC1100[/url], Triad Semiconductor , Melfas, Chungbuk Technopark , Nuvoton , austriamicrosystems
CortexARMv6-MCortex-M1Urč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 (0. 8 DMIPS/MHz)[url=http://www. actel.

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

RodinaArchitektonická verzeJádroVlastnostiCache (I/D)/MMUTypický výkon v MIPS @ MHzV použití
Cortex-A50ARMv8-ACortex-A3232bit (ARMv8), výkon podobný 64bitovému A35, energeticky poněkud efektivnější. . +more. IoT
RodinaArchitektonická verzeJádroVlastnostiCache (I/D)/MMUTypický výkon v MIPS @ MHzV použití
.

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

RodinaArchitektonická verzeJádroVlastnostiCache (I/D)/MMUTypický výkon v MIPS @ MHzV použití
Cortex-A50ARMv8-ACortex-A3564/32bit, o 25% energeticky efektivnější než A53. Je o 33% energeticky úspornější a zabírá o 25% menší plochu na čipu než A53. +more. . low end
Cortex-A50ARMv8-ACortex-A5364/32bit, provádění instrukcí v (původním) pořadí - in-order (výkon přibližně na úrovni 32bitového Cortex-A9; dále výkonnostní srovnání s Cortex-A7). . low end/mainstream PC, main stream smartfonů; Samsung Exynos Octa + GPU Mali-T830; Qualcomm Snapdragon 610 (čtyřjádro), Qualcomm Snapdragon 615 (osmijádro), oba používají GPU Adreno 405
Cortex-A50ARMv8-ACortex-A5764/32bit, provádění instrukcí mimo (původní) pořadí - out-of-order (o 56%rychlejší na takt než Cortex-A53). . servery/mainstream PC, též v kombinaci s úsporným Cortex-A53
Cortex-A50ARMv8-ACortex-A7264/32bit, provádění instrukcí mimo (původní) pořadí - out-of-order (o 20-60%rychlejší na takt než Cortex-A57). . servery/mainstream PC, též v kombinaci s úsporným Cortex-A53, GPU Mali-T880.
Cortex-A50ARMv8-ACortex-A7364/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. . 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.
RodinaArchitektonická verzeJádroVlastnostiCache (I/D)/MMUTypický výkon v MIPS @ MHzV použití
.

Přehled procesorů ARMv9

RodinaArchitektonická verzeJádroVlastnostiCache (I/D)/MMUTypický výkon v MIPS @ MHzV použití
Cortex-X2ARMv9-ACortex-A5103x in-order pipeline, trojitý výběr, dekódování a provádění instrukcí; 3x ALU. . +moreNásledovník Cortex-A55, o 35% vyšší výkon, o 20% vyšší energetická efektivita. "LITTLE" - doplněk Cortex-A710
Cortex-X2ARMv9-ACortex-A7105x 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
RodinaArchitektonická verzeJádroVlastnostiCache (I/D)/MMUTypický výkon v MIPS @ MHzV 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ů. +more 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). +more 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.

Uživatelský0R0 až R9R10R11R12R13R14R15 (PSW)
Rychlé přerušení1R10 FIQR11 FIQR12 FIQR13 FIQR14 FIQPrivilegované
Přerušení2R10R11R12R13 IRQR14 IRQ
Supervisor3R10R11R12R13 SVCR14 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. +more 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. +more 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).

000 0000Reset0 (nejvyšší)
000 0014Chyba adresace1
000 0010Abort (datový)2
000 001CRychlé přerušení (FIQ)3
000 0018Přerušení (IRQ)4
000 000CAbort (instrukční)5
000 0004Nedefinovaný instrukční kód6
000 0008Softwarové 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. +more 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. +more 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í.

Literatura

Reference

Související články

ARM big.LITTLE

Externí odkazy

[url=http://www. dsl. +moresk/article. php. article=25049]Predstavené prvé ARMv9 procesory, už iba 64-bitové[/url] - na DSL. sk * [url=http://www. dsl. sk/article. php. article=24883]Arm predstavila novú architektúru ARMv9[/url] - na DSL. sk * [url=http://mobil. idnes. cz/snapdragon-835-0ct-/mob_tech. aspx. c=A170408_195511_mob_tech_ram]Procesor, který mají některé Samsungy S8, drtí konkurenty[/url] * [url=https://www. root. cz/clanky/64bitove-mikroprocesory-s-architekturou-aarch64/]64bitové mikroprocesory s architekturou AArch64[/url] - na Root. cz * [url=https://www. root. cz/clanky/instrukcni-sada-aarch64/]Instrukční sada AArch64[/url] - na Root. cz * [url=https://www. root. cz/zpravicky/arm-predstavil-dva-nove-procesory-cortex-a75-a-a55/]ARM představil dva nové procesory Cortex-A75 a A55[/url] * [http://pandatron. cz/. 542&at91sam7se512_-_schema_zkusebni_desky] * [http://pandatron. cz/. 606&at91sam7s_-_1. dil:_seznameni_s_obvody].

Kategorie:Architektura ARM Kategorie:Instrukční sady Kategorie:Architektura počítače

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top