Architektura procesoru ARM Bc. Jan Grygerek GRY095
Obsah ARM...3 Historie...3 Charakteristika procesoru ARM...4 Architektura procesoru ARM...5 Specifikace procesoru...6 Instrukční soubor procesoru...6 Závěr...7 Literatura...7
ARM Dříve tato zkratka znamenala Advancet RISC Machine, ale ještě dříve to byla Acorn RISC Mashine. Jedná se o 32 bitovou mikroprocesorovou architekturu, typu RISC, která byla vyvinuta firmou ARM Limited. Procesor je velmi často využíván v mobilních odvětvích díky svým energeticky úsporným vlastnostem, které jsou v tomto odvětví velice důležité. V dnešní době tvoří rodina procesorů ARM 75% všech 32 bitových RISC procesorů. Procesory lze najít ve všech odvětvích spotřební elektroniky od PDA, mobilních telefonů, routerů, kalkulaček, herních konzolí, netboocích a dalších. Nejdůležitější větve této rodiny jsou Marvell XScale a OMAP od Texas Instruments. Historie Architektura ARM byla vyvinuta pod vedením Rogera Wilsona a Steve Furbera firmou Acorn RISC Maschine. Hlavním jejich cílem bylo dosažení co nejrychlejšího zpracování dat za velmi nízkou cenu. V roce 1984 byl uveden první procesor ARM1, a hned o rok později byl na trh uveden procesor s 32b sběrnicí a 32 b adresovým prostorem. Jednalo se o plně funkční model procesoru ARM2. Stal se nejjednodušším a velice funkčním procesorem na světě a měl pouze 30 000 tranzistorů. Slabší výkon byl oproti tehdejšímu procesoru Intel 80286, byl způsoben, že procesor neměl cache. Avšak hned u další verze s označením ARM3 se jí dočkal a měla velikost 4kB. Po velkých úspěších se společnost rozdělila a vznikla nová větev Advanced RISC Maschines. V roce 1991 byl touto firmou vydán další procesor pod názvem ARM6, který byl použit v novém PDA firmy Aplle. O něco později byl vyvinut dodnes populární ARM7, který se v té době objevoval snad v každém druhém elektronickém výrobku, který ke svému chodu potřeboval procesor. Ještě později vznikly další řady procesory v dnešní době známé pod názvy ARM8 ARM11. Obrázek 1 Blokové schéma procesoru s jádrem ARM
Charakteristika procesoru ARM - Jedná se o 32 bitovou vnitřní architekturu - Má 32 bitovou sběrnici s propustností 32 MB/s - 26 bitová adresová sběrnice, která má dostupný lineární prostor 64 MiB - Obsahuje 25 vnitřních 32 bitových registrů - Přístup do paměti se provádí pouze instrukcemi LOAD / STORE - Povoluje částečné překrývání vnitřních registrů - Nejdelší doba na provedení přerušení je 3 milisekundy - Hodinová frekvence je 8MHz - Obsahuje možnost podmíněného vykonání instrukcí - Průměrná rychlost vykonání instrukcí je3 až 4 MIPS - Je zde možnost i připojit standardní paměti DRAM - Obsahuje také jednoduchý instrukční soubor a jednoduše využitelné kompilátory vyšších programovacích jazyku ARM procesory podporují dva adresové módy. Může se adresovat buď to prostřednictvím čítače instrukcí, nebo pomocí bázových adres, které jsou uloženy v jednom z vnitřních registrů. K paměti lze přistupovat pouze dvěma instrukcemi a to LOAD a STORE jedná se tak o Load - Store Architecture, což výrazně zjednodušuje výkonnou jednotku procesoru (Execution Unit). Toto zjednodušení spočívá v tom, že pouze jen pár instrukcí pracuje s pamětí, zatímco zbytek instrukcí pracuje s vnitřními registry. Procesory ARM mají dvě úrovně přerušení se dvěma zaměnitelnými bankami registrů. Jedná se o režim rychlého přerušení, který poskytuje nejkratší dobu na přerušení. Jde o tzv. FIQ (Fast Interupt Request). Druhý, pomalejší typ přerušení, je IRQ (Interupt Request). Využívá se hlavně pro přerušení, která nevyžadují tak extrémně krátké odezvy. Obrázek 2 Blokové schéma jádra ARM7
Architektura procesoru ARM Procesory ARM obsahují 44 základních registrů s jednotnou šířkou 32 b. V jednom jediném taktu se mohou vykonávat, jak instrukce pracující s Aritmeticko-Logickou jednotkou s registry tak i s přímými operandy. Procesory ARM pracují ve čtyřech základních pracovních režimech, které jsou: - 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 Procesor obsahuje 25 částečně se překrývajících se registrů, které mají 32 bitů (15 registrů je univerzálních, a 10 jich má speciální funkci) a z těchto 25 registrů je jich 16 v každém režimu programově přístupných. Obrázek 3 Množina registrů procesoru Pro libovolný účel v uživatelském režimu jsou přístupné registry R0 R13, registr R14 je výhradně určen jen pouze pro uživatelský režim. Pět registrů je určeno pro režim rychlého přerušení, jedná se o registry R10 R14. V registru R14 se ukládá návratová adresa přerušeného programu. Další dva registry jsou určeny pro režim přerušení, jedná se o překrývající se registry R13 a R14 uživatelského režimu. Ale registry R13 a R14 nejsou využitelné pouze jenom po výše psané režimy, ale i pro poslední čtvrtý režim supervizora, jak je vidět na obrázku 3. Poslední z registrů, registr R15, obsahuje stavové slovo a čítač instrukcí, který je sdílen všemi režimy činnosti. Významově 6 nejvyšších bitů PSW obsahuje stav procesoru a dalších 24 bitů, představuje čítač instrukcí. Poslední dva významově nejnižší bity obsahují aktuální režim činnosti procesoru.
Specifikace procesoru Předchozí kapitole bylo uvedeno, že procesor obsahuje množinu 25 částečně se překrývajících se procesorů. To může způsobit problém při náhlém přerušení, kdy registry nemusejí být korektně uklizeny. Tento problém v režimu rychlého přerušení předcházejí 4 lokální univerzální registry a jeden registr s návratovou adresou. Tyto registry obsahují všechny ukazatele a různé čítače požívané v jednoduchých procedurách obsluhy vstupů a výstupů, takže lze velmi 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 dokáže obsloužit následující druhy 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) - Přerušení programovými prostředky (instrukce SW) - Chyba při čtení instrukce z vnější paměti (Instruction Fetch Cyrcle Aborts) - Nedefinovaný kód instrukcí (Undefined Instruction Traps) - Reset procesoru Procesor poskytuje 26 bitovou adresu lineární operační paměti, což umožňuje adresovat 64MiB fyzické paměti. Odkaz na data mimo rozsah paměti způsobí přerušení Chyba v adresování (Address Exception Trap) Obrázek 4 Vektory obsluh jednotlivých přerušení Instrukční soubor procesoru Instrukční soubor procesorů ARM se dá rozdělit hned do několika skupin, těmito skupinami jsou : - 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í do PSW do R14) - Instrukce přechodu do privilegovaného režimu supervizora, které zahrnují i programové přerušení. Všechny instrukce procesorů ARM mají 4 bitový prefix, zajišťující podmíněné vykonání samotné instrukce. Instrukce pro zpracování údajů - pracují pouze nad souborem vnitřních registrů. Každá takováto instrukce obsahuje reference na tři operandy: jedná se o 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). Adresa uložení se efektivně vypočítává součtem obsahu zdrojového registru a posuvu daného 12 b konstantou, nebo obsahem dalšího registru. Instrukce blokového přenosu zabezpečují přenos několika registrů jdoucích za sebou. Instrukce obsahuje pole bitů, v němž jednotlivé registry jsou řazeny takto : 0 odpovídá R0, 1 odpovídá R1, atd. Instrukce programového přerušení používány hlavně pro přechod do privilegovaného režimu supervizora. PSW je ukládáno do registru R14 režimu supervizora a hodnota čítače je dána adresou softwarového přerušení. Závěr V dnešní době mají tyto procesory srovnatelný výkon s obyčejnými procesory, což je velká výhoda. Další jejich výhodou je velice nízká spotřeba, tudíž se velice často používají v mobilních zařízeních, či spotřební elektronice, která ke svému chodu potřebuje mikroprocesor. Nevýhodou je však nekompatibilita s x86 softwarem tudíž i se systémy windows, avšak podporuje aspoň Windows Embedded CE. Operační systémy běžící na procesorech ARM. Operační systémy běžící na procesorech ARM, jsou často odvozeny od linuxu (Simbian, Android). ARM procesory mají velice dobré vyhlídky do budoucna, vzhledem k tomu, že mohou být použity jak v různých smartphonech, tak se začínají osazovat i do netbooků. Literatura [1] - http://cs.wikipedia.org/wiki/arm (16.11.2009) [2] - http://www.arm.com/ (16.11.2009) [3] - http://www.cdr.cz/a/27881 (16.9.2009)