Omistaja | ARM |
---|---|
Verkkosivusto | www.arm.com |
Arkkitehtuurit ARM ovat ulkoisia arkkitehtuurit tyypin RISC 32 bittiä (ARMv1 on ARMv7) ja 64 bittiä ( ARMv8 ) kehittämä ARM Ltd vuodesta 1983 ja tuotu 1990 mukaan Acorn Computers . ARM-arkkitehtuuri on seurausta Sophie Wilsonin työstä .
ARM-prosessorit ovat suhteellisen yksinkertaisemman arkkitehtuurin kuin muut prosessoriperheet ja vähän virtaa kuluttavia, ja ne ovat nykyään hallitsevia sulautetun tietojenkäsittelyn , erityisesti matkapuhelinten ja tablettien alalla .
Näitä prosessoreita valmistaa suuri määrä valmistajia lisenssillä .
Nykyään ARM tunnetaan parhaiten sirulla olevista järjestelmistä (SoC) , jotka integroituvat yhteen siruun: mikroprosessori , grafiikkasuoritin (GPU), DSP , FPU , SIMD ja oheislaiteohjain . Näitä on useimmissa älypuhelimissa ja tableteissa. ARM tarjoaa arkkitehtuureja, joita myydään immateriaalioikeuksien lisenssillä suunnittelijoille. Ne tarjoavat erilaisia vaihtoehtoja, joissa rakentajat voivat tehdä mitä tahansa kiinnostavaa täydentääkseen omia tai kolmannen osapuolen suunnittelijavaihtoehtoja. ARM tarjoaa siksi Cortex-mikroprosessoreita uusimmille SoC: ille ( Cortex-A kannettaville laitteille, kuten älypuhelimille ja tableteille, Cortex-M mikrokontrolleriin kytkemistä varten , Cortex-R reaaliaikaisille mikroprosessoreille ), grafiikkaprosessoreita ( Mali ), AMBA- väyliä ilmaisella lisenssillä sekä muut SoC: n kokoamiseen tarvittavat komponentit. Jotkut valmistajat, kuten Nvidia , tuottavat mieluummin oman grafiikkasuorittimensa, toiset, kuten Samsung, haluavat joissakin tapauksissa ottaa grafiikkaprosessorin kolmannelta osapuolelta tai ARM-mallista mallista riippuen, ja toiset, kuten Apple, muokkaavat jotakin mikroprosessoria komponentteja sekoittamalla useita ARM-prosessoriarkkitehtuureja (esimerkiksi Apple A6 sekoittaa Cortex-A9- ja Cortex-A15-mikroprosessoriteknologiat).
ARM-arkkitehtuurin kehitti alun perin brittiläinen yritys Acorn Computers , joka käytti sitä vuodesta 1987 lähtien 32-bittisten Archimedes-tietokoneiden tuotevalikoimassaan .
ARM edusti sitten 'Acorn Risc Machine'. Myöhemmin Acornin "mikroprosessoreiden luominen" -divisioona erotettiin emoyhtiöstä ja siitä tuli "Advanced Risc Machine limited", joka tarjosi itsenäisen tarjouksen aluksen elektroniikkamarkkinoille.
ARM-prosessorien erityispiirre on niiden myynti. Todellakin, ARM Ltd. ei valmista tai myy prosessoreitaan integroituina piireinä . Yritys myy jalostajiensa lisenssit siten, että muut valmistajat syövyttävät ne piihin. Nykyään suurin osa suurimmista sirujen perustajista tarjoaa ARM-arkkitehtuuria.
Ensimmäinen valmistettu ydin on ARM2, jota myydään Archimedes A310: ssä ja sitten A4xx-sarjassa. Siinä oli 3-vaiheinen putki .
Tunnetuin ydin on ARM7TDMI jolla on 3-vaiheinen putki. Lisäksi ARM7TDMI: llä on toinen joukko käskyjä, nimeltään THUMB, joka sallii ohjeiden koodaamisen 16 bitille, jotta voidaan saavuttaa merkittävä muistisäästö, erityisesti junan sovelluksissa.
ARM Ltd. kehitti sitten ARM9- ytimen, jossa on 5-vaiheinen putki. Tämä mahdollistaa siten logiikkatoimintojen määrän kasvun jokaisessa kellojaksossa ja siten nopeuden suorituskyvyn parantamisen.
ARM-arkkitehtuuria käytetään monissa kentissä, ja se varustaa esimerkiksi TI-Nspire- ja HP-50G- laskimet . Tämä arkkitehtuuri on hyvin yleistä myös matkapuhelimissa.
Monet käyttöjärjestelmät ovat yhteensopivia tämän arkkitehtuurin kanssa:
On myös mahdollista agglomeroida ytimiä, joilla on eri tehot, pienin kulutus ja suurin osa ajasta työskentelevän tehon, mikä tekee mahdolliseksi minimoida tehokkaampien ytimien virrankulutus, jotka aktivoituvat vain suuren laskentatarpeen sattuessa käsittelyn nopeuttamiseksi. Tätä tekniikkaa kutsutaan suureksi.LITTLE , Samsung käyttää sitä Exynos 5 octo (4 pienitehoinen aivokuori-A7 ja 4 suuritehoinen aivokuori-A15), MediaTek ja muut. Tegra 3 Nvidia, käyttää samanlaista tekniikkaa, jossa yksi sydän ja useita pienen tehon suuri teho.
ARM-arkkitehtuuri on innoittamana vahvasti RISC- suunnitteluperiaatteista . Siinä on 16 yleistä 32-bittistä rekisteriä. Käskyt, jotka on koodattu 32 bitille ARMv7: een saakka, voivat kaikki suorittaa ehdollisen suorituksen; 64-bittisessä arkkitehtuurissa ( ARMv8 ) vain muutama käsky voi suorittaa ehdollisen suorituksen.
Käskykannan on saanut laajennuksia ajan, kuten peukalo , parantaa koodia tiheys, NEON , tarjota SIMD ohjeita tai Jazelle , parantamiseksi Java koodin suorittamiseen .
Seuraavat suorittimet käyttävät alla mainittuja tekniikoita:
Jazelle DBX (Direct Bytecode eXecution) on tekniikka Java-tavukoodin suorittamiseksi suoraan ARM-arkkitehtuureissa kolmantena suoritustilana (ja suoritussarjana) rinnakkain nykyisen ARM: n kanssa ja Thumb-tilassa. Tämän tilan tuen ilmaisee ARMv5TEJ-arkkitehtuurin " J " ja ydinnimet ARM9EJ-S ja ARM7EJ-S. Tämän tilan tuki vaaditaan ARMv6: lta (paitsi ARMv7-M-profiili). Uudemmat ytimet sisältävät kuitenkin vain triviaalin toteutuksen, joka ei tarjoa laitteistokiihdytystä.
Thumb on 16-bittinen komentojoukko, joka tarjoaa osajoukon klassisista 32-bittisistä ARM-ohjeista ja säästää paljon muistia. Näiden ohjeiden kompaktimman koodauksen saamiseksi tietyt operandit ovat implisiittisiä ja tarjotut mahdollisuudet ovat rajallisemmat.
Peukalotilassa 16-bittiset ohjeet tarjoavat vähemmän mahdollisuuksia. Vain yhteydet voivat olla esimerkiksi ehdollisia, ja useat ohjeet rajoittuvat pieneen osaan pääsyä prosessorin yleisrekistereistä. Nämä rajoitetut mahdollisuudet parantavat ohjelman kokonaistiheyttä, vaikka jotkut toiminnot vaativat enemmän ohjeita. Tämä voi lyhentää koodin lataamiseen muistiin kuluvaa aikaa (vapauttaa kaistanleveyttä) ja lisätä todennäköisyyttä jäädä käskyvälimuistiin, mikä lisää suorituskykyä merkittävästi.
Laitelaitteistoissa, kuten Game Boy Advancessa, on tyypillisesti pieni määrä RAM-muistia, johon pääsee 32-bittisen tietoväylän kautta, mutta suurin osa pääsee toiseen tai vähemmän 16-bittiseen väylään. Tässä tilanteessa on erittäin mielenkiintoista koota ohjelma Thumb-tilassa ja optimoida käsin muutama eniten kuluttava osa käyttämällä täydellistä 32-bittistä ARM-käskysarjaa, jolloin nämä suuremmat ohjeet voidaan sijoittaa väylään. 32-bittinen muisti .
Ensimmäinen prosessori, joka sisältää Thumb-käskydekooderin, on ARM7TDMI . Kaikissa ARM9: ssä ja uudemmissa (mukaan lukien XScale ) on Thumb-dekooderi.
Thumb-2- tekniikka alkaa ARM1156- ytimestä, joka julkistettiin vuonna 2003. Thumb-2 laajentaa Thumbin rajoitettua 16-bittistä käskysarjaa 32-bittisillä lisäohjeilla, jotta käskyjoukolle annetaan enemmän leveyttä. Tämä johtaa muuttuvan leveyden käskyjoukkoon. Thumb-2 pyrkii saavuttamaan lähellä Thumbia olevan kooditiheyden säilyttäen samalla suorituskyvyn kuin 32-bittisessä muistissa olevat ARM-käskyt.
Thumb-2 laajentaa sekä Thumb-käskysarjaa että ARM-käskysarjaa, mukaan lukien bittikentän manipulointi, taulukon haarat ja ehdolliset suoritukset. Uusi Unified Assembly Language (UAL) tukee ARM- ja Thumb-2-käskykoodien samanaikaista tuottamista samasta lähdekoodista; Thumbin versiot ARMv7-prosessoreilla pystyvät myös ARM-koodiin, mukaan lukien kyky kirjoittaa keskeytysten käsittelytoimintoja. Tarvitaan vähän varovaisuutta ja uuden " IT " (jos "sitten") -käskyn käyttöä, jonka avulla voidaan suorittaa neljä peräkkäistä käskyä testiolosuhteista riippuen. ARM-koodiin käännettäessä tämä tapaus jätetään huomiotta, mutta Thumb-2: een käännettäessä todellinen käsky generoidaan. Esimerkiksi :
; 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"Kaikki ARMv7-sirut tukevat Thumb-2-käskysarjaa. Muut Cortex- ja ARM11-sarjan sirut tukevat kaikkia ARM-käskyn tai Thumb-2-käskyn tiloja.
ThumbEE , jota kutsutaan myös Thumb-2EE: ksi , tai kaupallisesti Jazelle RCT for (Runtime Compilation Target, joka tarkoittaa englanniksi "lennon kokoamisen kohde"), ilmoitettiin vuonna 2005 ja ilmestyy ensimmäisen kerran Cortex-A8- prosessorissa . ThumbEE on neljäs prosessoritila, joka lisää pieniä muutoksia Thumb-2: n laajennettuun Thumb-käskysarjaan. Nämä muutokset tekevät käskyjoukosta erityisen sopivan koodin luomiseen ajon aikana, kääntämällä lennossa, hallituissa ajo-ympäristöissä. ThumbEE on suunnattu ohjelmointikielille, kuten Limbo , Java, C # , Perl , Python tai Ruby, ja sallii kääntäjien lennon aikana tuottaa vähemmän lähtökoodia vaikuttamatta suorituskykyyn.
ThumbEEn uusiin ominaisuuksiin kuuluvat jokaisen kuorman ja tallennuksen käskyjen automaattinen nollaosoittimen tarkistus, matriisin rajojen tarkistava käsky, pääsy rekistereihin r8-r15 (joissa ylläpidetään Jazelle / Java DBX-virtuaalikone) ja erityisohjeet, jotka soita takaisinsoittotoiminto . Käsittelijöitä kutsutaan usein pieniksi koodiosioiksi, joita käytetään tyypillisesti korkean tason ohjelmointikielitoimintojen toteuttamiseen, kuten muistin varaamiseen uudelle objektille. Nämä muutokset tehtiin muutaman opkoodin suuntaamiseksi uudelleen ja tietämään, että sydän on ThumbEE-tilassa.
VFP ( vector floating point ) -tekniikka on FPU- tyyppinen rinnakkaisprosessorilaajennus ARM-arkkitehtuureissa. Se tarjoaa halpojen yhden tarkkuuden liukuluku- ja kaksoistarkkuuksisten liukulukuformaattien laskennan, jotka täyttävät ANSI / IEEE Std 754-1985 -standardin binaaristen liukulukuaritmeettisten vaatimusten suhteen . VFP tarjoaa liukulukulaskelmia laajan kirjon sovelluksia ja tarpeita varten, kuten kämmentietokoneet , älypuhelimet , äänen pakkaus ja purku, kolmiulotteinen grafiikka tai digitaalinen ääni, tulostimet, multimedialaatikot ja autoteollisuuden sovellukset. VFP-arkkitehtuurin oli tarkoitus tukea lyhyiden vektori-käskyjen toimintatapaa, mutta ne toimivat peräkkäin kullakin vektori-elementillä eivätkä siten tarjoa todellisen vektori-rinnakkaisuuden suorituskykyä, kuten SIMD tekee . Nämä vektoritilat poistettiin nopeasti käyttöönoton jälkeen, ja ne korvattiin paljon tehokkaammalla NEON Advanced SIMD -yksiköllä.
Jotkut prosessorit, kuten ARM Cortex-A8, on amputoitu VFPLite- moduulilla täydellisen VFP-moduulin sijaan, ja ne vaativat noin kymmenen kertaa niin monta kellojaksoa liukulukutoimintoa kohden. Muita liukuluku- tai SIMD-prosessoreita, jotka löytyvät prosessoreista ARM-arkkitehtuurin perusteella, ovat NEON , FPA , FPE, iwMMXt . Ne tarjoavat joitain toimintoja, jotka ovat samanlaisia kuin VFP: t, mutta eivät ole yhteensopivia sen kanssa opcode-tasolla .
Advanced SIMD -laajennus (jota kutsutaan myös nimellä NEON tai MPE for Media Processing Engine ) on SIMD ( Single Instruction, Multiple Data ), joka yhdistää 64- ja 128-bittiset käskyjoukot, jotka tarjoavat standardoidun laskennallisen kiihdytyksen media-, 2D / 3D- ja signaalinkäsittelysovelluksille. NEON sisältyy kaikkiin Cortex-A8-ytimiin, mutta on valinnainen Cortex-A9-ytimiin. NEON voi tehdä MP3-dekoodauksen prosessorin käyttöjärjestelmä 10 MHz: n ja voi koodata / dekoodata koodekki ääni GSM AMR 13 MHz ja voi nopeuttaa dekoodauksen video formaatteja, kuten H264 tai Real . Se sisältää käskyjoukon, erillisen rekisteritiedoston ja itsenäisen laitteiston suorituksen. Siinä on 32 kelluvaa 64-bittistä rekisteriä, jotka se jakaa FPU: n kanssa, jotka voidaan kytkeä muodostamaan 16 rekisteriä 128 kelluvasta bitistä, ja hyväksyy myös, että näitä rekistereitä käsitellään allekirjoitetuina tai allekirjoittamattomina kokonaislukuina 8, 16, 32 ja 64 bittiä. Tämä SIMD tukee jopa 16 samanaikaista toimintaa. Ytimet, kuten ARM Cortex-A8 ja Cortex-A9, tukevat 128-bittisiä vektoreita, mutta käsittelevät vain 64 bittiä kerrallaan, kun taas uudemmasta Cortex-A15: stä se pystyy käsittelemään 128 bittiä kerrallaan.
LPAE tekniikka ( Large Physical Address Extension ) on toteutettu ensimmäisen kerran Cortex 3 : nnen sukupolven (Cortex-A7, Cortex-A15 ja Cortex-A17). Tätä laajennusta käytetään 32-bittisissä ARM-prosessoreissa, jolloin osoite voidaan antaa 32 bitistä (enintään 4 gigatavua) 40 bittiin (enintään 1 teratavu). Se vaatii MMU: n VMSAv7- laajennuksella . Tällä laajennuksella MMU: n kontrollirakeisuus on 4 kt .
Tämä laajennus toimii useissa vaiheissa:
Rekisteri ID_MMFR3antaa tuetun fyysisen osoitteen koon (32 bittiä, 36 bittiä tai 40 bittiä).
TrustZone on tekniikka salaukseen ja vaihdon turvallisuuteen kolmansien osapuolten alustojen kanssa Trusted Execution Environment (TEE) -standardien mukaisesti. Tavoitteena on estää päätelaitteeseen asennettuja käyttäjiä tai kolmannen osapuolen sovelluksia pääsemästä tässä ns. Luotetussa ympäristössä vaihdettuihin tietoihin. Sitä käytetään esimerkiksi tiedostoympäristöissä, joita suojaa digitaalinen oikeuksien hallinta (GND), jota kutsutaan myös englanniksi DRM : ksi.
ARM tarjoaa myös grafiikkaprosessoreita (GPU) nimeltä Mali, jotka voidaan integroida ARM SoC -arkkitehtuureihin. Ensimmäistä sarjaa, Mali 200, käytetään prosessoreissa, kuten SoC Telechips TCC890x.
Valmistajat eivät tunnu käyttäneen toista sarjaa, Mali 300.
Kolmas sarja, Mali 400 MP, tarjotaan huippuluokan prosessoreille, yleensä Cortex A9: lle, kuten ST-Ericsson U8500, Samsung Exynos 4 tai Amlogic 8726-M, mutta myös Cortex A8 AllWinner A1X: lle .
Mali 600 -sarja on tarkoitettu Cortex A15: lle. Se varustaa erityisesti Samsung Exynos 5. -sarjan. Ensimmäinen malli oli Mali T604.
Yleinen sovellusliittymä MALI GPU: n käyttämiseen, joka on yhteensopiva ilmaisen, avoimen lähdekoodin EXA / DRI2 (Apache- ja MIT-lisenssit) kanssa, on saatavana Mali 200: lle, 300: lle, 400: lle ja 600: lle Linux-alustalla, mutta prosessorin alin käyttöosa riippuen valmistajan kohdalla pysyy suljettuna.
Lima kuljettaja Hanke luotiin kehittämään vapaa kuljettaja mahdollistaa täysin hyödyntää näiden prosessorien. SisäänSyyskuu 2013, se ylittää jo omien lentäjien suorituskyvyn Mali 400 -sarjassa.
Monissa ARM SoC: issa on kuitenkin PowerVR- grafiikkasuoritin tai harvemmin muut grafiikkaprosessorit ( Qualcomm Adreno , Vivante , Nvidia ), joissa kaikilla on ohjaimet Linuxille, mutta joiden kolmiulotteinen osa on oma ja suljettu lähdekoodi. Freedreno- projektilla on samat tavoitteet Adrenolle kuin Mali-sarjan Lima-kuljettajahankkeelle.
Arkkitehtuuri | Perhe (t) |
---|---|
ARMv1 | VARSI1 |
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 , kolmannen osapuolen mukautus : 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 (vain LDAPR, loput 8.2), ARM Cortex-A76AE (sama kuin A65AE) |
ARMv8-M | ARM Cortex-M23 , ARM Cortex-M33 |
ARMv8-R | ARM Cortex-R53 |
Teollis- ja tekijänoikeudet omistaa brittiläinen yritys, mutta lisensoidut jalostajat ovat lisensoineet useita yrityksiä ympäri maailmaa. Cortex-sarjan malleja valmistavista yrityksistä (edistyneimmät) suurin osa on Aasiassa (20), seuraavana Yhdysvallat (13) ja lopuksi Eurooppa (6).