Majitel | PAŽE |
---|---|
webová stránka | www.arm.com |
Tyto architektury ARM jsou vnější architektura typu RISC 32 bitů (ARMv1 na ARMv7) a 64 bitů ( ARMv8 ) vyvinutý ARM Ltd. od roku 1983 a zavedené z roku 1990 o Acorn počítače . Architektura ARM je výsledkem práce Sophie Wilsonové .
Díky relativně jednodušší architektuře než jiné rodiny procesorů a nízkoenergetických spotřebičů jsou dnes procesory ARM dominantní v oblasti integrovaných výpočetních systémů , zejména mobilních telefonů a tabletů .
Tyto procesory vyrábí na základě licence velký počet výrobců.
Dnes je ARM nejlépe známý pro své systémy na čipu (SoC) , které se integrují na jediném čipu: mikroprocesor , grafický procesor (GPU), DSP , FPU , SIMD a periferní řadič . Ty jsou přítomny ve většině smartphonů a tabletů. ARM nabízí architektury, které se prodávají na základě licencí na duševní vlastnictví návrhářům. Nabízejí různé možnosti, ve kterých si stavitelé mohou vzít cokoli, co je zajímá, a doplnit je vlastními možnostmi návrhářů nebo návrhářů třetích stran. ARM proto nabízí mikroprocesory Cortex pro nejnovější SoC ( Cortex-A pro přenosná zařízení, jako jsou smartphony a tablety, Cortex-M pro připojení k mikrokontroléru , Cortex-R pro mikroprocesory v reálném čase ), grafické procesory ( Mali ), sběrnice AMBA na základě bezplatné licence, stejně jako různé další součásti nezbytné pro složení celého SoC. Někteří výrobci, například Nvidia , dávají přednost výrobě vlastního grafického procesoru, jiní, například Samsung, v některých případech dávají přednost grafickému procesoru od třetí strany nebo ARM v závislosti na modelu a jiní, například Apple, upravují některé mikroprocesory komponenty smícháním několika architektur procesorů ARM (například Apple A6 kombinuje mikroprocesorové technologie Cortex-A9 a Cortex-A15).
Architektura ARM byla původně vyvinuta interně britskou společností Acorn Computers , která ji používala od roku 1987 ve své řadě 32bitových počítačů Archimedes .
ARM pak stál za „Acorn Risc Machine“. Následně byla divize „vytvoření mikroprocesorů“ společnosti Acorn oddělena od mateřské společnosti a stala se společností „Advanced Risc Machine limited“, čímž získala samostatnou nabídku pro trh palubní elektroniky.
Zvláštností procesorů ARM je jejich způsob prodeje. Opravdu, ARM Ltd. nevyrábí ani neprodává své procesory jako integrované obvody . Společnost prodává licence svých procesorů tak, aby byly leptány v křemíku jinými výrobci. Dnes většina hlavních zakladatelů čipů nabízí architekturu ARM.
Prvním vyráběným jádrem je ARM2, prodávaný v řadě Archimedes A310 a poté v řadě A4xx. Představoval 3stupňový plynovod .
Nejznámějším jádrem je ARM7TDMI který má 3stupňové potrubí. Kromě toho má ARM7TDMI druhou sadu instrukcí nazvanou THUMB, která umožňuje kódování instrukcí na 16 bitech, aby se tak dosáhlo významné úspory paměti, zejména pro palubní aplikace.
ARM Ltd. poté vyvinul jádro ARM9, které má pětistupňový kanál. To tedy umožňuje zvýšení počtu logických operací v každém taktu, a tudíž zlepšení výkonu rychlosti.
Architektura ARM se používá v mnoha oborech a vybavuje ji například kalkulačky TI-Nspire a HP-50G . Tato architektura je také velmi rozšířená v mobilním telefonování.
Mnoho operačních systémů je kompatibilní s touto architekturou:
Je také možné aglomerovat jádra různých výkonů, s nejnižší spotřebou a výkonem, který většinu času pracuje, což umožňuje minimalizovat spotřebu energie silnějších jader, která se aktivují pouze v případě vysoké potřeby výpočtu za účelem urychlení zpracování. Tato technologie se nazývá big.LITTLE , používá ji společnost Samsung , její Exynos 5 octo (4 low power cortex-A7 a 4 high power cortex-A15), MediaTek a další. Tegra 3 od Nvidia, používá podobnou techniku s jedním srdcem a několika nízkou spotřebou vysokým výkonem.
Architektura ARM je silně inspirována principy návrhu RISC . Má 16 obecných 32bitových registrů. Pokyny, kódované na 32 bitech až do ARMv7, mohou mít všechny podmíněné provedení; na 64bitové architektuře ( ARMv8 ) může mít podmíněné provedení pouze několik pokynů.
Sada instrukcí v průběhu času obdržela rozšíření, například Palec , pro zlepšení hustoty kódu, NEON , pro poskytování instrukcí SIMD , nebo Jazelle , pro zlepšení provádění kódu Java .
Následující procesory používají níže uvedené technologie:
Jazelle DBX (Direct Bytecode eXecution) je technika pro přímé provádění bajtkódu Java v architekturách ARM jako třetí stav provádění (a sadu provádění), paralelně se stávajícím ARM a v režimu Palec. Podpora tohoto stavu je označena písmenem „ J “ architektury ARMv5TEJ a názvy jádra ARM9EJ-S a ARM7EJ-S. Podpora tohoto stavu je vyžadována z ARMv6 (kromě profilu ARMv7-M). Novější jádra však obsahují pouze triviální implementaci, která neposkytuje hardwarovou akceleraci.
Thumb je 16bitová sada instrukcí, která poskytuje podmnožinu klasických 32bitových instrukcí ARM a šetří spoustu paměti. K získání kompaktnějšího kódování těchto instrukcí jsou určité operandy implicitní a nabízené možnosti jsou omezenější.
V režimu Palec nabízejí 16bitové pokyny méně možností. Pouze připojení mohou být například podmíněná a několik pokynů je omezeno na přístup k malé části obecných registrů procesoru. Tyto omezené možnosti zlepšují celkovou hustotu programu, i když některé operace vyžadují více pokynů. To může zkrátit čas potřebný k načtení kódu do paměti (uvolnění šířky pásma) a zvýšit pravděpodobnost, že zůstane v mezipaměti instrukcí, což výrazně zvýší výkon.
Palubní hardware, jako je Game Boy Advance, má obvykle malé množství paměti RAM přístupné přes 32bitovou datovou sběrnici, ale většina je přístupná přes druhou sběrnici 16 bitů nebo méně. V této situaci je velmi zajímavé zkompilovat váš program v režimu Palec a ručně optimalizovat několik nejnáročnějších sekcí pomocí kompletní 32bitové sady instrukcí ARM, což umožňuje umístění těchto větších instrukcí do sběrnice. .
První procesor obsahující dekodér instrukcí Palec je ARM7TDMI . Všechny ARM9 a vyšší (včetně XScale ) obsahují Thumb dekodér.
Technologie Thumb-2 začíná jádrem ARM1156 ohlášeným v roce 2003. Thumb-2 rozšiřuje omezenou 16bitovou instrukční sadu Thumb o další 32bitové instrukce, které poskytují větší šíři instrukční sady. Výsledkem je sada instrukcí s proměnnou šířkou. Thumb-2 si klade za cíl dosáhnout hustoty kódu blízké Thumb při zachování výkonu podobného ARM instrukční sadě v 32bitové paměti.
Thumb-2 rozšiřuje jak sadu instrukcí Thumb, tak sadu instrukcí ARM, včetně manipulace s bitovým polem, větví tabulky a podmíněných spuštění. Nový Unified Assembly Language (UAL) podporuje simultánní generování instrukčního kódu ARM a Thumb-2 ze stejného zdrojového kódu; Verze Thumb na procesorech ARMv7 jsou také schopné kódu ARM, včetně možnosti zapisovat funkce zpracování přerušení. Je zapotřebí určité opatrnosti a použití nové instrukce „ IT “ (pokud-pak), která umožňuje provedení čtyř po sobě jdoucích instrukcí v závislosti na podmínkách testu. Při kompilaci do kódu ARM je tento případ ignorován, ale při kompilaci do palce 2 je vygenerována skutečná instrukce. Například :
; if (r0 == r1) CMP r0, r1 ITE EQ ; ARM : pas de code ... Thumb : instruction IT ; then r0 = r2; MOVEQ r0, r2 ; ARM : conditionnel ; Thumb : condition via ITE 'T' (then) ; else r0 = r3; MOVNE r0, r3 ; ARM : conditionnel ; Thumb: condition via ITE 'E' (else) ; Se rappeler que l'instruction MOV de Thumb n'a pas de bits pour encoder "EQ" ou "NE"Všechny čipy ARMv7 podporují sadu instrukcí Thumb-2. Ostatní čipy v řadě Cortex a ARM11 podporují všechny stavy instrukce ARM nebo instrukce Thumb-2.
ThumbEE , také nazývaný Thumb-2EE , nebo komerčně Jazelle RCT pro (Runtime Compilation Target, což v angličtině znamená „cíl kompilace za běhu“), je vyhlášen v roce 2005 a objevuje se poprvé v procesoru Cortex-A8 . ThumbEE je čtvrtý stav procesoru a přidává malé změny do rozšířené sady instrukcí Thumb-2. Díky těmto změnám je sada instrukcí zvláště vhodná pro generování kódu za běhu kompilací za běhu v kontrolovaných běhových prostředích. ThumbEE je zaměřen na programovací jazyky jako Limbo , Java, C # , Perl , Python nebo Ruby a umožňuje kompilátorům za běhu generovat méně výstupního kódu bez ovlivnění výkonu.
Mezi nové funkce ThumbEE patří automatická kontrola nulového ukazatele u každé instrukce načítání a ukládání, instrukce kontrolující limity pole, přístup k registrům r8-r15 (kde je udržován virtuální stroj Jazelle / Java DBX) a speciální instrukce, které zavolat funkci zpětného volání . Obslužné rutiny se často nazývají malé části kódu, obvykle se používají k implementaci funkcí programovacího jazyka na vysoké úrovni, jako je přidělení paměti pro nový objekt. Tyto změny byly provedeny, aby přeorientovaly hrstku kódů a věděly, že srdce je v režimu Palec.
Technologie VFP ( vector floating point ) je rozšíření koprocesoru typu FPU v architekturách ARM. Poskytuje výpočet nízkonákladových formátů s plovoucí desetinnou čárkou s jednoduchou přesností a dvojitou přesností s plovoucí desetinnou čárkou splňujících standard ANSI / IEEE Std 754-1985 pro binární aritmetiku s plovoucí desetinnou čárkou . VFP poskytuje výpočty s plovoucí desetinnou čárkou k dosažení širokého spektra aplikací a potřeb, jako jsou PDA , smartphony , komprese a dekomprese hlasu, trojrozměrná grafika nebo digitální zvuk, tiskárny, multimediální skříně a automobilové aplikace. Architektura VFP měla podporovat režimové provádění krátkých vektorových instrukcí, ale fungují postupně na každém vektorovém prvku, a proto nenabízejí výkon skutečného vektorového paralelismu jako SIMD . Tyto vektorové režimy byly po svém zavedení rychle staženy a nahrazeny mnohem výkonnější jednotkou NEON Advanced SIMD.
Některé procesory, například ARM Cortex-A8, byly amputovány modulem VFPLite namísto plného modulu VFP a vyžadují přibližně desetkrát tolik hodinových cyklů na operaci s plovoucí desetinnou čárkou. Mezi další koprocesory s plovoucí desetinnou čárkou nebo SIMD, které lze nalézt v procesorech založených na architektuře ARM, patří NEON , FPA , FPE, iwMMXt . Poskytují některé funkce podobné VFP, ale nejsou s nimi kompatibilní na úrovni opcode .
Pokročilé rozšíření SIMD (také nazývané NEON nebo MPE pro Media Processing Engine ) je SIMD ( Single Instruction, Multiple Data ), kombinující 64 a 128 bitové instrukční sady, které poskytují standardizované výpočetní zrychlení pro aplikace médií, 2D / 3D a zpracování signálu. NEON je součástí všech jader Cortex-A8, u jader Cortex-A9 je však volitelný. NEON dokáže dekódovat MP3 na procesoru pracujícím na 10 MHz a může kódovat / dekódovat audio kodek GSM AMR na 13 MHz a může urychlit dekódování video formátů, jako je h264 nebo Real . Obsahuje sadu instrukcí, samostatný soubor registru a nezávislé provedení hardwaru. Má 32 64bitových registrů s plovoucí desetinnou čárkou, které sdílí s FPU, které lze spojit a vytvořit 16 128bitových registrů s plovoucí desetinnou čárkou, a také přijímá, že tyto registry jsou považovány za podepsaná nebo nepodepsaná celá čísla 8, 16, 32 a 64 bitů. Tato SIMD podporuje až 16 současných operací. Jádra jako ARM Cortex-A8 a Cortex-A9 podporují 128bitové vektory, ale zpracovávají pouze 64 bitů najednou, zatímco od novějšího Cortex-A15 mohou zpracovávat 128 bitů najednou.
Technologie LPAE ( Large Physical Address Extension ) byl realizován poprvé v Cortex A 3 th generace (Cortex-A7, Cortex-A15 a Cortex-A17). Toto rozšíření se používá na 32bitových procesorech ARM, což umožňuje adresování od 32 bitů (maximálně 4 gigabajty) do 40 bitů (maximálně 1 terabajt). Vyžaduje MMU s příponou VMSAv7 . S tímto rozšířením je granularita ovládání MMU 4KiB .
Toto rozšíření funguje v několika krocích:
Registr ID_MMFR3poskytuje velikost podporované fyzické adresy (32 bitů, 36 bitů nebo 40 bitů).
TrustZone je technologie pro šifrování a zabezpečení výměn s platformami třetích stran podle standardů Trusted Execution Environment (TEE). Cílem je zabránit uživatelům nebo aplikacím třetích stran nainstalovaným na terminálu v přístupu k datům vyměňovaným v tomto takzvaném důvěryhodném prostředí. Používá se například v souborovém prostředí chráněném správou digitálních práv (GND), v angličtině se také nazývá DRM .
ARM také nabízí grafické procesory (GPU) zvané Mali, které lze integrovat do architektur ARM SoC . První série, Mali 200, používaná v procesorech, jako je SoC Telechips TCC890x.
Zdá se, že druhá řada, Mali 300, nebyla výrobci použita.
Třetí série, Mali 400 MP, je nabízena na špičkových procesorech, obecně na Cortex A9, jako je ST-Ericsson U8500, Samsung Exynos 4 nebo Amlogic 8726-M, ale také na Cortex A8 AllWinner A1X .
Série Mali 600 je určena pro Cortex A15. Vybavuje zejména řadu Samsung Exynos 5. Prvním modelem byl Mali T604.
Generické API pro přístup k MALI GPU kompatibilní s bezplatnými, otevřenými zdroji EXA / DRI2 (licence Apache a MIT) je k dispozici pro Mali 200, 300, 400 a 600 na platformě Linux, ale nejnižší přístupová část k procesoru, v závislosti na na výrobci zůstává zavřený.
Projekt ovladače Lima byl vytvořen s cílem vyvinout bezplatný ovladač umožňující plné využití těchto procesorů. vzáří 2013, již překračuje výkon proprietárních pilotů řady Mali 400.
Mnoho ARM SoC však obsahuje GPU PowerVR nebo vzácněji jiné grafické procesory ( Qualcomm Adreno , Vivante , Nvidia ), které všechny mají ovladače pro Linux, ale jejich 3D část je proprietární a uzavřený. Projekt Freedreno má pro Adreno stejné cíle jako projekt řidiče v Limě pro sérii Mali.
Architektura | Rodina |
---|---|
ARMv1 | ARM1 |
ARMv2 | ARM2 , skupina 3 |
ARMv3 | ARM6, ARM7 |
ARMv4 | StrongARM , ARM7TDMI , ARM8 , ARM9 TDMI |
ARMv5 | ARM7EJ , ARM9E , ARM10E , XScale , FA626TE, Feroceon, PJ1 / Mohawk |
ARMv6 | ARM11 (cs) |
ARMv6-M | ARM Cortex-M ( ARM Cortex-M0 , ARM Cortex-M0 + , ARM Cortex-M1 ) |
ARMv7-A | ARM Cortex-A (Gen1: ARM Cortex-A8 , Gen2: ARM Cortex-A9 MPCore , ARM Cortex-A5 MPCore , Gen3: ARM Cortex-A7 MPCore , ARM Cortex-A12 MPCore , ARM Cortex-A15 MPCore , adaptace třetích stran : Scorpion, Krait, PJ4 / Sheeva , Swift |
ARMv7-M | ARM Cortex-M ( ARM Cortex-M3 , ARM Cortex-M4 , ARM Cortex-M7 ) |
ARMv7-R | ARM Cortex-R ( ARM Cortex-R4 , ARM Cortex-R5 , ARM Cortex-R7 ) |
ARMv8-A | ARM Cortex-A35 , ARM Cortex-A50 ( ARM Cortex-A53 , ARM Cortex-A57 ), ARM Cortex-A72 , ARM Cortex-A73 , X-Gene , Denver, Cyclone , Exynos M1 / M2 |
ARMv8.2-A | ARM Cortex-A55 , ARM Cortex-A65 , ARM Cortex-A75 , ARM Cortex-A76 |
ARMv8.3-A | ARM Cortex-A65AE (pouze LDAPR, zbytek v 8.2), ARM Cortex-A76AE (stejný jako A65AE) |
ARMv8-M | ARM Cortex-M23 , ARM Cortex-M33 |
ARMv8-R | ARM Cortex-R53 |
Duševní vlastnictví je vlastněno britskou společností, ale licencované procesory jsou licencovány různými společnostmi po celém světě. Mezi společnostmi vyrábějícími modely řady Cortex (nejpokročilejší) je většina v Asii (20), následují Spojené státy (13) a nakonec Evropa (6).