ARM

ARMje vinformaticeoznačeníarchitekturyprocesorůpoužívaných díky své nízkéspotřeběelektrické energiezejména vmobilní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 vBritániive firměARM Holdingsv80. letech 20. století.
FirmaARM Holdings(dříveARM Limited) používala dříve pro ARM architekturu obchodní názevAdvanced RISC Machine, původně pakAcorn RISC Machine. ARM architektura způsobila v několika směrech revoluci vinformačních technologiích.Je založen na architektuřeRISC, neméně pozoruhodné je, že prvníprocesoryARM byly založeny naGaAspolovodičí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 roce1984.
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ůmhardware. Procesory ARM je dnes možné najít ve všech odvětvích spotřební elektroniky odPDA,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ř. procesoryXScaleod firmyMarvell, neboOMAPod firmyTexas Instruments.
V roce 2006 byla architektura ARM zastoupena v 98 % z více než jedné miliardy každoročně prodanýchmobilů.
Rostoucí význam architektury ARM, jejíž nejvýkonnější zástupcidnes již mají dostatečný výkon i pro použití vosobních počítačíchbyl pravděpodobně jedním z impulsů, které přiměly firmuIntelk vývoji nízkopříkonových procesorůIntel Atom. Podle jiných zdrojů byl Intel Atom odpovědí na úsporné mikroprocesoryAMD Geode.
Architektura ARM se nejvýrazněji uplatňuje vmobilních zařízeních(mobilní telefony,tablety) a vevestavěných systémech(pevný disk,USB flash disk,Wi-Fičipy,routeryapod.). 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í.
Procesory ARM podporují dva adresové módy. Můžemeadresovatbuď 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ě prioritypř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í jeIRQ(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ší.
Procesor ARM obsahuje 44 základních instrukcí s jednotnou šířkou 32 bitů. V jednom taktu se vykonávají pouze instrukce pracující saritmeticko-logickou jednotkou (ALU), s registry nebo s přímýmioperandy.
Procesor pracuje ve čtyřech základních režimech:
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.
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.
Jak bylo uvedeno, procesor obsahuje množinu částečně se překrývajícíchregistrů, 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čepoužívané v jednoduchýchproceduráchobsluhyvstupů 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í:
Procesor poskytuje 26bitovou adresu lineárníoperační paměti, což umožňuje adresovat 64MiBfyzické paměti. Odkaz na data mimo rozsah způsobípřerušeníchyby adresování (Address Exception Trap).
Instrukční soubor můžeme rozdělit na skupiny:
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ýmibyty, 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řenosuzabezpeč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í.
ARMv8 (AArch64) má v64bitovémrežimu volitelnou velikoststránky paměti4, 16 nebo 64 KiB. Standardní velikost je 4 KiB. Větší stránky paměti jsou používány vserverovémaHPCprostředía v systémuAndroid 15,kde 16 KiB stránky poskytují zvýšení výkonu o 5 až 10 % na úkor zvýšení využitíoperační pamětiRAM o asi 9 %.