Tulajdonos | KAR |
---|---|
Weboldal | www.arm.com |
A architektúrák ARM vannak külső architektúrák írja RISC 32 bit (ARMv1 hogy ARMv7) és 64 bit ( ARMv8 ) által kifejlesztett ARM Ltd. , mivel 1983 és bevezette a 1990 által Acorn Computers . Az ARM architektúra Sophie Wilson munkájának gyümölcse .
Az ARM processzorok viszonylag egyszerűbb architektúrával rendelkeznek, mint a többi processzorcsalád és alacsony fogyasztású fogyasztók, napjainkban dominánsak a beágyazott számítástechnika , különösen a mobiltelefon és a tabletek területén .
Ezeket a processzorokat számos gyártó licenc alapján gyártja.
Ma az ARM leginkább egy chipen (SoC) működő rendszereiről ismert , amelyek egyetlen chipbe integrálódnak: mikroprocesszor , grafikus processzor (GPU), DSP , FPU , SIMD és perifériás vezérlő . Ezek az okostelefonok és táblagépek többségében vannak . Az ARM olyan architektúrákat kínál, amelyeket szellemi tulajdon licencekkel adnak el a tervezőknek. Különböző lehetőségeket kínálnak, amelyekben az építők bármilyen érdeklődésre számot tarthatnak, kiegészítve saját vagy harmadik féltől származó tervezői lehetőségekkel. ARM ezért kínál Cortex mikroprocesszor a legutóbbi SoCs ( Cortex-A hordozható eszközök, mint például okostelefonok és tabletta, Cortex-M kapcsolására egy mikrovezérlő , Cortex-R a valós idejű mikroprocesszorok ), grafikus processzorok ( Mali ), AMBA buszok ingyenes licenc alapján, valamint a teljes SoC összetételéhez szükséges különféle egyéb alkatrészek. Egyes gyártók, például az Nvidia , inkább saját grafikus processzort állítanak elő, mások, például a Samsung, a modelltől függően bizonyos esetekben inkább egy harmadik féltől származó grafikus processzort vagy ARM-et vesznek, mások, mint az Apple, módosítanak néhány mikroprocesszort alkatrészeket több ARM processzor architektúra összekeverésével (az Apple A6 például a Cortex-A9 és a Cortex-A15 mikroprocesszoros technológiákat keveri).
Az ARM architektúrát eredetileg házon belül fejlesztette ki a brit Acorn Computers , amely 1987-től használta 32 bites Archimedes számítógépek sorában .
Az ARM ekkor az „Acorn Risc Machine” szót jelentette. Ezt követően az Acorn „mikroprocesszorok létrehozása” részlegét leválasztották az anyavállalatról, és az „Advanced Risc Machine limited” lett, független ajánlattal pozícionálva magát a fedélzeti elektronikai piacon.
Az ARM processzorok sajátossága az értékesítés módja. Valóban, az ARM Ltd. nem gyártja vagy értékesíti processzorait integrált áramkörként . A vállalat eladja processzorainak engedélyeit, hogy azokat más gyártók szilíciumba véssék. Ma a legtöbb nagy chip- alapító kínál ARM architektúrát.
Az első gyártott mag az ARM2, amelyet az Archimedes A310, majd az A4xx sorozatban árusítanak. Háromlépcsős csővezeték volt benne .
A leghíresebb mag az ARM7TDMI amelynek 3 fokozatú csővezetéke van. Ezen túlmenően, a ARM7TDMI egy második sor utasítást nevű HÜVELYKUJJA amely lehetővé teszi a kódolási utasítások 16 bites annak érdekében, így, hogy jelentős megtakarítást memória, különösen a fedélzeti alkalmazásokhoz.
ARM Ltd. majd kifejlesztette az ARM9 magot, amely ötfokozatú csővezetéket tartalmaz. Ez lehetővé teszi a logikai műveletek számának növekedését minden óraciklusban, és ezáltal a sebesség teljesítményének javulását.
Az ARM architektúrát számos területen használják, és felszerelik például a TI-Nspire és a HP-50G számológépekkel . Ez az architektúra a mobiltelefonálás terén is nagyon elterjedt.
Számos operációs rendszer kompatibilis ezzel az architektúrával:
Lehetőség van különböző teljesítményű magok agglomerálására is, amelyek fogyasztása és teljesítménye az idő nagy részében a legalacsonyabb, ami lehetővé teszi a nagyobb teljesítményű magok energiafogyasztásának minimalizálását, amelyek csak nagy számítási igény esetén aktiválódnak. a feldolgozás felgyorsítása érdekében. Ezt a technológiát nagynak hívják. KIS , a Samsung használja az 5 októ méretű Exynos- mal (4 alacsony fogyasztású cortex-A7 és 4 nagy teljesítményű cortex-A15), a MediaTek-kel és másokkal. Az Nvidia Tegra 3 hasonló technikát használ, egy szívvel és több kis teljesítményű, nagy teljesítményű.
Az ARM architektúrát erősen a RISC tervezési elvei ihlették . 16 általános 32 bites regiszterrel rendelkezik. Az ARMv7-ig 32 biten kódolt utasítások mindegyike feltételesen végrehajtható; a 64 bites architektúrán ( ARMv8 ) csak néhány utasítás végezhet feltételes végrehajtást.
Az utasításkészlet idővel olyan kiterjesztéseket kapott, mint például a Thumb , a kódsűrűség javítására, a NEON , a SIMD utasítások biztosítására , vagy a Jazelle , a Java- kód végrehajtásának javítására .
A következő processzorok az alábbiakban jelzett technológiákat használják:
A Jazelle DBX (Direct Bytecode eXecution) egy technika a Java bytecode közvetlen végrehajtására ARM architektúrákban, harmadik végrehajtási állapotként (és végrehajtási halmazként ), a meglévő ARM- mel párhuzamosan és Thumb módban. Ennek az állapotnak a támogatását az ARMv5TEJ architektúra " J " jelzi, valamint az ARM9EJ-S és az ARM7EJ-S magnevek. Ehhez az állapothoz az ARMv6 szükséges (kivéve az ARMv7-M profilt). Az újabb magok azonban csak egy triviális megvalósítást tartalmaznak, amely nem nyújt hardveres gyorsítást.
A Thumb egy 16 bites utasításkészlet, amely a klasszikus 32 bites ARM utasítások részhalmazát biztosítja, és sok memóriát takarít meg. Ezen utasítások kompaktabb kódolásához bizonyos operandusok implicitek, és a kínált lehetőségek korlátozottabbak.
Hüvelykujj módban a 16 bites utasítások kevesebb lehetőséget kínálnak. Csak a kapcsolatok lehetnek feltételesek, és számos utasítás csak a processzor általános nyilvántartásainak kis részére való hozzáférésre korlátozódik. Ezek a csökkent lehetőségek javítják a program általános sűrűségét, bár egyes műveletekhez több utasítás szükséges. Ez csökkentheti a kód memóriába töltésének (sávszélesség felszabadításának) idejét, és növelheti annak valószínűségét, hogy az utasítás gyorsítótárában maradjon, jelentősen növelve a teljesítményt.
Az olyan fedélzeti hardverek, mint a Game Boy Advance, általában kis mennyiségű RAM-mal rendelkeznek, amelyek 32 bites adatbuszon keresztül érhetők el, de a többséghez egy második vagy annál kevesebb 16 bites buszon lehet hozzáférni. Ebben a helyzetben nagyon érdekes a Thumb módban lefordítani a programot, és kézzel optimalizálni a néhány legigényesebb részt a teljes 32 bites ARM utasításkészlet használatával, lehetővé téve ezeknek a nagyobb utasításoknak a buszon való elhelyezését. .
Az első processzor, amely Thumb utasítás dekódert tartalmaz, az ARM7TDMI . Minden ARM9 és újabb (beleértve az XScale-t is ) tartalmaz egy Thumb dekódert.
A Thumb-2 technológia a 2003-ban bejelentett ARM1156 maggal kezdődik . A Thumb-2 kibővíti a Thumb korlátozott 16 bites utasításkészletét további 32 bites utasításokkal, hogy nagyobb szélességet nyújtson az utasításkészletnek. Ez változó szélességű utasításkészletet eredményez. A Thumb-2 célja a Thumbhoz közeli kódsűrűség elérése, miközben a 32 bites memóriában lévő ARM utasításkészlethez hasonló teljesítményt tart fenn.
A Thumb-2 kiterjeszti mind a Thumb, mind az ARM utasításkészletet, beleértve a bitmezős manipulációt, a táblaágakat és a feltételes végrehajtásokat. Egy új Unified Assembly Language (UAL) támogatja az ARM és a Thumb-2 utasítás kód egyidejű létrehozását ugyanabból a forráskódból; Az ARMv7 processzorok Thumb verziói szintén képesek ARM kódra, beleértve a megszakításkezelési funkciók írását. Egy kis odafigyelésre és az új " IT " (ha-akkor) utasítás használatára van szükség, amely lehetővé teszi négy egymást követő utasítás végrehajtását a teszt feltételétől függően. ARM kódra történő fordításkor ezt az esetet figyelmen kívül hagyják, de a Thumb-2-re fordítva aktuális utasítás jön létre. Például :
; 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"Minden ARMv7 chip támogatja a Thumb-2 utasításkészletet. A Cortex és ARM11 sorozat többi chipje támogatja az ARM utasítás vagy a Thumb-2 utasítás minden állapotát.
A ThumbEE-t , más néven Thumb-2EE-t , vagy kereskedelmi forgalomban a Jazelle RCT for (Runtime Compilation Target, angolul "menet közbeni összeállítás célja") 2005-ben jelentették be, és először jelenik meg a Cortex-A8 processzorban . A ThumbEE a negyedik processzorállapot, apró változtatásokkal hozzáadva a Thumb-2 kibővített Thumb utasításkészletét. Ezek a változtatások teszik az utasításkészletet különösen alkalmassá a kód generálásához futás közben, menet közbeni fordítással, ellenőrzött futásidejű környezetekben. A ThumbEE olyan programozási nyelvekre irányul, mint a Limbo , a Java, a C # , a Perl , a Python vagy a Ruby, és lehetővé teszi, hogy a fordítók menet közben kevesebb kimeneti kódot generáljanak, anélkül, hogy ez befolyásolná a teljesítményt.
A ThumbEE új szolgáltatásai között szerepel az automatikus nullapont-ellenőrzés minden egyes betöltéskor és mentéskor, egy tömb határait ellenőrző utasítás, az r8-r15 regiszterekhez való hozzáférés (ahol a Jazelle / Java DBX virtuális gép karbantartva van), valamint speciális utasítások, amelyek visszahívási funkció hívása . A kezelőket gyakran kis kódrészleteknek nevezik, amelyeket általában egy olyan magas szintű programozási nyelv funkcionalitásának megvalósítására használnak, mint a memória lefoglalása egy új objektum számára. Ezeket a módosításokat azért hajtották végre, hogy átirányítsanak egy maroknyi opkódot, és tudják, hogy a szív ThumbEE módban van.
A VFP ( vektor lebegőpontos ) technológia egy FPU típusú társprocesszor kiterjesztés az ARM architektúrákban. Kiszámítja az alacsony költségű egypontos lebegőpontos és kettős pontosságú lebegőpontos formátumokat, amelyek megfelelnek az ANSI / IEEE Std 754-1985 szabványnak a bináris lebegőpontos aritmetikához . A VFP lebegőpontos számításokat biztosít az alkalmazások és igények széles skálájának megvalósításához, például PDA-khoz , okostelefonokhoz , hangtömörítéshez és dekompresszióhoz, háromdimenziós grafikához vagy digitális hanghoz, nyomtatókhoz, multimédiás dobozokhoz és autóipari alkalmazásokhoz. A VFP architektúra rövid vektoros utasítások módfuttatását hivatott támogatni, de egymás után működnek az egyes vektorelemeken, és így nem kínálják a valódi vektor-párhuzamosság teljesítményét, mint a SIMD . Ezeket a vektor módokat bevezetésük után gyorsan visszavonták, és egy sokkal erősebb NEON Advanced SIMD egység váltotta fel őket.
Egyes processzorokat, például az ARM Cortex-A8-at egy teljes VFP-modul helyett egy VFPLite- modullal amputáltak , és lebegőpontos műveletenként körülbelül tízszer annyi órajelet igényelnek. Egyéb lebegőpontos vagy SIMD társprocesszorok, amelyek az ARM architektúra alapján megtalálhatók a processzorokban, a NEON , FPA , FPE, iwMMXt . Bizonyos funkciókat biztosítanak, mint a VFP, de nem kompatibilisek vele opcode szinten .
Az Advanced SIMD kiterjesztés (más néven NEON vagy MPE a Media Processing Engine számára ) egy SIMD ( Single Instruction, Multiple Data ), amely 64 és 128 bites utasításkészleteket ötvöz, amelyek szabványosított számítási gyorsítást biztosítanak a média, a 2D / 3D és a jelfeldolgozó alkalmazások számára. A NEON minden Cortex-A8 magban található, de opcionális a Cortex-A9 magokban. A NEON képes MP3 dekódolást végezni egy 10 MHz-en működő processzoron, és képes kódolni / dekódolni a GSM AMR kodek audiót 13 MHz-re, és felgyorsíthatja olyan videoformátumok dekódolását, mint a h264 vagy a Real . Ez tartalmaz egy utasításkészletet, egy külön regisztrációs fájlt és egy független hardver végrehajtást. 32 lebegő 64 bites regisztere van, amelyeket megoszt az FPU-val, amelyek összekapcsolhatók 16 128 bites lebegőpontos regiszterek alkotásával, és elfogadja azt is, hogy ezeket a regisztereket aláírt vagy előjel nélküli egész számként kezelik, 8, 16, 32 és 64 bit. Ez a SIMD legfeljebb 16 egyidejű műveletet támogat. Az olyan magok, mint az ARM Cortex-A8 és a Cortex-A9, támogatják a 128 bites vektorokat, de egyszerre csak 64 bitet dolgoznak fel, míg az újabb Cortex-A15-nél egyszerre 128 bitet képes feldolgozni.
A LPAE technológia ( Large Physical Address Extension ) hajtották végre az első alkalommal a Cortex A 3 th generációs (Cortex-A7, Cortex-A15 és Cortex-A17). Ezt a kiterjesztést 32 bites ARM processzorokon használják, lehetővé téve a 32 bites (maximum 4 gigabájtos) és 40 bites (legfeljebb 1 terabájtos) címzést. Ehhez MMU szükséges VMSAv7 kiterjesztéssel . Ezzel a kiterjesztéssel az MMU kontroll granularitása 4KiB .
Ez a kiterjesztés több szakaszban működik:
A regiszter ID_MMFR3megadja a támogatott fizikai cím méretét (32 bit, 36 bit vagy 40 bit).
A TrustZone egy technológia a harmadik felek platformjaival történő titkosításhoz és biztonsághoz, a Trusted Execution Environment (TEE) szabványainak megfelelően. A cél annak megakadályozása, hogy a terminálra telepített felhasználói vagy harmadik féltől származó alkalmazások hozzáférjenek az úgynevezett megbízható környezetben kicserélt adatokhoz. Például digitális jogkezeléssel (GND) védett fájlkörnyezetben használják, amelyet angolul DRM -nek is neveznek .
Az ARM emellett Mali nevű grafikus processzorokat (GPU-kat) kínál, amelyek integrálhatók az ARM SoC architektúrákba. Az első sorozat, a Mali 200, olyan processzorokban használt, mint az SoC Telechips TCC890x.
Úgy tűnik, hogy a második szériát, a Mali 300-at nem a gyártók használták.
A harmadik szériát, a Mali 400 MP-t több csúcskategóriás processzor, általában a Cortex A9 kínálja, mint az ST-Ericsson U8500, a Samsung Exynos 4 vagy az Amlogic 8726-M, de a Cortex A8 AllWinner A1X is .
A Mali 600-as szériát a Cortex A15-hez tervezték. Különösen a Samsung Exynos 5 szériát szereli fel. Az első modell a Mali T604 volt.
Az ingyenes EXA / DRI2 nyílt forrásokkal (Apache és MIT licencekkel) kompatibilis általános MALI GPU hozzáférési API elérhető a Mali 200, 300, 400 és 600 számára a Linux platformon, de a gyártótól függően a processzor legalacsonyabb hozzáférési része zárva marad.
A Lima meghajtó projektet egy ingyenes illesztőprogram kifejlesztésére hozták létre, amely lehetővé teszi ezen processzorok teljes kihasználását. Ban ben2013 szeptember, már meghaladja a Mali 400 sorozatban a saját pilóták teljesítményét.
Számos ARM SoC tartalmaz azonban egy PowerVR GPU-t vagy ritkábban más grafikus processzorokat ( Qualcomm Adreno , Vivante , Nvidia ), amelyek mindegyike rendelkezik Linux-illesztőprogrammal, de amelynek 3d része saját és zárt forráskódú. A Freedreno projekt ugyanazokat a célokat tűzte ki az Adreno felé, mint a Lima driver projekt a Mali sorozatba.
Építészet | Család (ok) |
---|---|
ARMv1 | ARM1 |
ARMv2 | ARM2 , ARM3 |
ARMv3 | ARM6, ARM7 |
ARMv4 | StrongARM , ARM7TDMI , ARM8 , ARM9 TDMI |
ARMv5 | ARM7EJ , ARM9E , ARM10E , XScale , FA626TE, Feroceon, PJ1 / Mohawk |
ARMv6 | ARM11 (en) |
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 , harmadik fél adaptációja : 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 (csak LDAPR, a többi a 8.2 -esben ), ARM Cortex-A76AE (ugyanaz, mint A65AE) |
ARMv8-M | ARM Cortex-M23 , ARM Cortex-M33 |
ARMv8-R | ARM Cortex-R53 |
A szellemi tulajdon egy brit vállalat tulajdonában van, de az engedélyezett processzorokat a világ különböző vállalatai engedélyezik. A Cortex széria modelljeit gyártó vállalatok közül (a legfejlettebbek) a többség Ázsiában található (20), ezt követi az Egyesült Államok (13), végül Európa (6).