Luettelo ARM -perheen prosessorien ja mikro-ohjainten mikroarkkitehtuureista , jotka ovat kehittäneet ARM Holdings ja kolmannet osapuolet. Tilattu ARM-ohjesarjan version mukaan.
ARM toimitti luettelon yrityksistä, jotka ottavat käyttöön ARM-arkkitehtuurit itse [1] . Joitakin tietoja tarjoaa myös Keil [2] .
Luettelo ARM:n omista ytimistä on myös julkaistu heidän verkkosivuillaan [3] .
ARM-perhe | ARM-arkkitehtuuri | Nucleus | Lisäosat | Välimuistit (I/D), MMU | Tyypillinen MIPS @ MHz |
---|---|---|---|---|---|
ARM1 | ARMv1 | ARM1 | Ensimmäinen toteutus | Ei | |
ARM2 | ARMv2 | ARM2 | MUL (multiply) -käsky lisättiin ARMv2:een | Ei | 4 MIPS @ 8 MHz 0,33 DMIPS /MHz |
ARMv2a | ARM250 | Integroitu MEMC (MMU), GPU ja I/O-apuprosessori. SWP- ja SWPB-ohjeet lisätty ARMv2a:han (vaihto) | Ei, MEMC1a | 7 MIPS @ 12 MHz | |
ARM3 | ARMv2a | ARM3 | Ensimmäinen integroitu välimuisti | 4 KB yhtenäinen | 12 MIPS @ 25 MHz 0,50 DMIPS/MHz |
ARM6 | ARMv3 | ARM60 | ARMv3 lisää tuen 32-bittiselle muistiosoitteelle (aiemmin 26-bittinen) | Ei | 10 MIPS @ 12 MHz |
ARM 600 | Kuten ARM60:ssä, lisäksi - välimuisti ja apuprosessoriväylä (FPA10-liukulukuprosessoriyksikköä varten) | 4 KB yhtenäinen | 28 MIPS @ 33 MHz | ||
ARM610 | Kuten ARM60:ssä, välimuisti, ei apuprosessoriväylää | 4 KB yhtenäinen | 17 MIPS @ 20 MHz 0,65 DMIPS/MHz | ||
ARM7 | ARMv3 | ARM 700 | 8 KB yhtenäinen | 40 MHz | |
ARM710 | Kuten ARM700, ei apuprosessoriväylää | 8 KB yhtenäinen | 40 MHz | ||
ARM710a | Kuten ARM710 | 8 KB yhtenäinen | 40MHz 0,68DMIPS /MHz | ||
ARM7TDMI | ARMv4T | ARM7TDMI(-S) | 3-vaiheinen kuljetin, peukalo. ARMv4 hylkäsi 26-bittisen osoitteen | Ei | 15 MIPS @ 16,8 MHz 63 DMIPS @ 70 MHz |
ARM710T | Kuten ARM7TDMI, siinä on lisäksi välimuisti | 8 KB, yhtenäinen, MMU | 36 MIPS @ 40 MHz | ||
ARM720T | Kuten ARM7TDMI, siinä on välimuisti | 8 kt, yhdistetty, MMU ( FCSE :llä - Fast Context Switch Extension ) | 60 MIPS @ 59,8 MHz | ||
ARM740T | Kuten ARM7TDMI, siinä on välimuisti | MPU | |||
ARM7EJ | ARMv5TEJ | ARM7EJ-S | 5 Stage Pipeline, peukalo, Jazelle DBX, Advanced DSP Instructions | Ei | |
ARM8 | ARMv4 | ARM810 [4] [5] | 5-vaiheinen liukuhihna, staattinen haaran ennustaja, kaksinkertaistava muistin kaistanleveys | 8 KB, yhtenäinen, MMU | 84 MIPS @ 72 MHz 1,16 DMIPS/MHz |
ARM9 TDMI | ARMv4T | ARM9TDMI | 5-vaiheinen kuljetin, peukalo | Ei | |
ARM920T | Kuten ARM9TDMI, välimuistit | 16 kt / 16 kt MMU FCSE:llä ( Fast Context Switch Extension ) [6] | 200 MIPS @ 180 MHz | ||
ARM922T | Kuten ARM9TDMI, välimuistit | 8 kt / 8 kt, MMU | |||
ARM940T | Kuten ARM9TDMI, välimuistit | 4 kt / 4 kt MPU | |||
ARM9E | ARMv5TE | ARM946E-S | Peukalo, DSP, välimuistit | Erilaisia, tiiviisti kytkettyjä muistia (TCM), MPU | |
ARM966E-S | Peukalo, DSP | Ilman TCM-välimuistia ja muistia | |||
ARM968E-S | Kuten ARM966E-S | Ilman välimuistia ja TCM:ää | |||
ARMv5TEJ | ARM926EJ-S | Peukalo, Jazelle DBX, DSP | Erilaisia, TCM, MMU | 220 MIPS @ 200 MHz | |
ARMv5TE | ARM996HS | Prosessori ilman kellotaajuutta, loput ovat samat kuin ARM966E-S | Ei välimuistia, TCM, MPU | ||
ARM10E | ARMv5TE | ARM1020E | 6-vaiheinen putkisto, peukalo, DSP, (VFP) | 32 kt / 32 kt MMU | |
ARM1022E | Kuten ARM1020E | 16 kt / 16 kt, MMU | |||
ARMv5TEJ | ARM1026EJ-S | Peukalo, Jazelle DBX, DSP, (VFP) | Erilaisia, MMU tai MPU | ||
ARM11 | ARMv6 | ARM1136J(F)-S [7] | 8-vaiheinen putkisto, SIMD , peukalo, Jazelle DBX, (VFP), DSP | Erilaisia, MMU | 740 @ 532-665MHz (i.MX31 SoC), 400-528MHz |
ARMv6T2 | ARM1156T2(F)-S | 8-vaiheinen putkisto, SIMD , Thumb-2, (VFP), DSP | Erilaisia, MPU | ||
ARMv6Z | ARM1176JZ(F)-S | Kuten ARM1136EJ(F)-S | Erilaisia, MMU + TrustZone | 965 DMIPS @ 772 MHz, jopa 2600 DMIPS 4 prosessorilla [8] | |
ARMv6K | ARM11MPCore | Kuten ARM1136EJ(F)-S, SMP 1-4 ytimellä | Erilaisia, MMU | ||
SecurCore | ARMv6-M | SC000 | 0,9DMIPS/MHz | ||
ARMv4T | SC100 | ||||
ARMv7-M | SC300 | 1.25DMIPS/MHz | |||
Cortex-M | ARMv6-M | Cortex-M0 [9] | Mikro-ohjainprofiili, peukalo + peukalo-2 alijoukko (BL, MRS, MSR, ISB, DSB, DMB), [10] laitteiston kertominen, valinnainen järjestelmäajastin ja bittikaistamuisti | Valinnainen välimuisti, ei TCM:ää, ei MPU:ta | 0,84 DMIPS/MHz |
Cortex-M0+ [11] | Mikro-ohjain, peukalon ja peukalon 2 osajoukko (BL, MRS, MSR, ISB, DSB, DMB), [10] laitteiston kertolasku, valinnainen järjestelmäajastin ja bittikaistamuisti | Valinnainen välimuisti, ei TCM:ää, valinnainen 8 alueen MPU | 0,93 DMIPS/MHz | ||
Cortex-M1 [12] | Mikro-ohjain, peukalon ja peukalon 2 osajoukko (BL, MRS, MSR, ISB, DSB, DMB), [10] laitteistokerroin, SVC-optio/pankki pinoosoittimelle, valinnainen järjestelmäajastin, ei "bittikaistaista" muistia | Valinnainen välimuisti, 0-1024 kt I-TCM, 0-1024 kt D-TCM, ei MPU:ta | 136 DMIPS @ 170 MHz [13] (0,8 DMIPS/MHz FPGA-riippuvainen) [14] | ||
ARMv7-M | Cortex-M3 [15] | Mikro-ohjain, Thumb / Thumb-2, laitteiston kertominen ja jako, valinnainen bittikaistamuisti | Valinnainen välimuisti, ei TCM:ää, valinnainen 8 alueen MPU | 1.25DMIPS/MHz | |
ARMv7E-M | Cortex-M4 [16] | Mikro-ohjain, Thumb / Thumb-2 / DSP / valinnainen FPv4-laajennus yksittäistä tarkkuutta, laitteiston kertomista ja jakoa varten, valinnainen bittikaistamuisti | Valinnainen välimuisti, ei TCM:ää, valinnainen 8 alueen MPU | 1,25 DMIPS/MHz (1,27 FPU FPv4:n kanssa) | |
ARMv7E-M | Cortex-M7 [17] | Mikro-ohjain, Thumb / Thumb-2 / DSP / valinnainen yksi- ja kaksinkertainen tarkkuus FPU, laitteiston kertominen ja jako | 0-64 kt I-välimuisti, 0-64 kt D-välimuisti, 0-16 Mt I-TCM, 0-16 Mt D-TCM (kaikki valinnaisella ECC:llä), valinnainen 8 tai 16 alueen MPU | 2,14 DMIPS/MHz | |
ARMv8-M -perustila | Cortex-M23 | ARM TrustZone | 0,98 DMIPS/MHz
2,5 CoreMark / MHz | ||
ARMv8-M päälinja | Cortex-M33 | ARM TrustZone | 1.5DMIPS/MHz
3,86 CoreMark/MHz | ||
Cortex-R | ARMv7-R | Cortex-R4 [18] | Reaaliaikainen profiili, Thumb / Thumb-2 / DSP / valinnainen VFPv3 FPU, laitteiston kertominen ja valinnainen jako, valinnainen pariteetti ja ECC sisäisille väylille, välimuisti, TCM, 8-vaiheinen liukuhihna, kaksi ydintä lockstep-tilassa virheenkäsittelylogiikalla | 0-64 kt / 0-64 kt, 0-2 / 0-8 MB TCM, valinnainen 8 tai 12 MPU | |
Cortex-R5 (MPCore) [19] | Reaaliaikainen profiili, Thumb / Thumb-2 / DSP / valinnainen VFPv3 FPU, laitteiston kertominen ja valinnainen jako, valinnainen pariteetti ja ECC sisäisille väylille, välimuisti, TCM, 8-vaiheinen liukuhihna, kaksi ydintä lockstep-tilassa virheenkäsittelylogiikalla. Vaihtoehtoisesti kaksi ydintä voi toimia itsenäisinä. Low Latency Peripheral Port (LLPP), Accelerator Coherence Port (ACP) [20] | 0-64 kt / 0-64 kt, 0-2 / 0-8 MB TCM, opt. MPU päällä 12 tai 16 | |||
Cortex-R7 (MPCore) [21] | Reaaliaikainen profiili, Thumb / Thumb-2 / DSP / valinnainen VFPv3 FPU, laitteiston kertominen ja valinnainen jako, valinnainen pariteetti ja ECC sisäisille väylille, välimuisti, TCM, 11-vaiheinen liukuhihna, kaksi ydintä lockstep-tilassa virheenkäsittelylogiikalla. Ytimet epäkunnossa, dynaaminen rekisterin uudelleennimeäminen. Vaihtoehtoisesti kaksi ydintä voi toimia itsenäisinä. Low Latency Peripheral Port (LLPP), Accelerator Coherence Port (ACP) [20] | 0-64 kt / 0-64 kt, ? 0-128 kt TCM, opt. MPU klo 16 | |||
Cortex-A | ARMv7-A | Cortex-A5 [22] | Sovellusprofiili, ARM / Thumb / Thumb-2 / DSP / SIMD / valinnainen VFPv4-D16 FPU / valinnainen NEON / Jazelle RCT ja DBX, 1-4 ydintä, valinnainen MPCore, SCU, snoop-ohjausyksikkö, General Interrupt Controller (GIC), Accelerator Coherence Port (ACP) | 4-64 kt / 4-64 kt L1, MMU + TrustZone | 1,57 DMIPS/MHz per ydin |
Cortex-A7 MPCore [23] | Sovellusprofiili, ARM / Thumb / Thumb-2 / DSP / VFPv4-D16 FPU / NEON / Jazelle RCT ja DBX / laitteiston virtualisointi, järjestyksessä suoritus, superskalaari, SMP 1-4 ytimelle, suuret fyysiset osoitelaajennukset (LPAE), Snooping Control Unit (SCU), General Interrupt Controller (GIC), Accelerator Coherence Port (ACP). Arkkitehtuuri ja laajennussarja ovat samat kuin Cortex-A15. 8-10 vaihetta putkilinjassa, pienempi virrankulutus [24] | 32 kt / 32 kt L1, 0-4 MB L2, MMU + TrustZone | 1,9 DMIPS/MHz per ydin | ||
Cortex-A8 [25] | Sovellusprofiili, ARM / Thumb / Thumb-2 / VFPv3 FPU / NEON / Jazelle RCT ja DAC, 13-vaiheinen superskalaari | 16-32 kt / 16-32 kt L1, 0-1 MB L2 opt. ECC, MMU + TrustZone | jopa 2000 (2,0 DMIPS/MHz 600 MHz:stä yli 1 GHz :iin ) | ||
Cortex-A9 MPCore [26] | Sovellusprofiili, ARM / Thumb / Thumb-2 / DSP / valinnainen VFPv3 FPU / valinnainen NEON / Jazelle RCT ja DBX, epäjärjestyksessä suoritus spekulatiivisella, superskalaarilla, SMP 1-4 ytimellä, ohjausyksikön snooping (SCU), yhteinen keskeytysohjain (GIC), kiihdytinkoherenssiportti (ACP). | 16-64 kt / 16-64 kt L1, 0-8 MB L2 opt. pariteetti, MMU + TrustZone | 2,5 DMIPS/MHz per ydin, 10 000 DMIPS @ 2 GHz TSMC 40G -prosessitekniikalla (kaksi ydintä) | ||
Cortex-A12 [27] yhdistettiin myöhemmin A17:ään | Sovellusprofiili, ARM / Thumb-2 / DSP / VFPv4 FPU / NEON / laitteiston virtualisointi, epäjärjestyksessä spekulatiivinen suoritus, superskalaari, 1-4 ytimen SMP, Large Physical Address Extensions (LPAE), snoop-ohjausyksikkö (SCU), ohjaimen yhteiset keskeytykset (GIC), kiihdytinkoherenssiportti (ACP). | 32–64 KB / 32 KB L1, 256–8 MB L2 | 3,0 DMIPS/MHz per ydin | ||
Cortex-A15 MPCore [28] | Sovellusprofiili, ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / kokonaislukujako / MAC (yhdistetty kerroinlisäys) / Jazelle RCT / laitteiston virtualisointi, epäjärjestyksessä spekulatiivinen suoritus, superskalaari, SMP 1-4 ytimet, Large Physical Address Extensions (LPAE), Snooping Control Unit (SCU), General Interrupt Controller (GIC), Accelerator Coherence Port (ACP). 15-24 vaiheinen putki [24] | 32 kt pariteetti / 32 kt ECC L1, 0-4 MB L2 ECC, MMU + TrustZone | Vähintään 3,5 DMIPS/MHz ydintä kohden (jopa 4,01 DMIPS/MHz toteutuksesta riippuen) [29] | ||
Cortex-A17MPCore | Sovellusprofiili, ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / kokonaislukujako / MAC (yhdistetty kerroinlisäys) / Jazelle RCT / laitteiston virtualisointi, epäjärjestyksessä spekulatiivinen suoritus, superskalaari, SMP 1-4 ytimet, Large Physical Address Extensions (LPAE), Snooping Control Unit (SCU), General Interrupt Controller (GIC), Accelerator Coherence Port (ACP). | MMU + TrustZone | |||
Cortex-A50 | ARMv8-A | Cortex-A53 [30] | Sovellusprofiili, AArch32 ja AArch64, SMP 1-4 ytimelle, Trustzone, parannettu NEON SIMD, VFPv4, laitteiston virtualisointi, jopa kahden käskyn suorittaminen sykliä kohden, järjestyksessä liukuhihnan suoritus | 8-64 kt pariteetti / 8-64 kt ECC L1 ydintä kohti, 128 KB-2 MB jaettu L2, 40-bittiset fyysiset osoitteet | 2.3DMIPS/MHz |
Cortex-A57 [31] | Sovellusprofiili, AArch32 ja AArch64, SMP 1-4 ydintä, Trustzone, parannettu NEON SIMD, VFPv4, laitteiston virtualisointi, usean käskyn silmukka, syvä epäjärjestyksessä suoritus | 48 kt kaksoispariteetti (DED) / 32 kt L1 ECC per ydin, 512 kt-2 MB jaettu L2, 44-bittinen fys. osoitteita | Vähintään 4,1 DMIPS/MHz ydintä kohden (jopa 4,76 DMIPS/MHz toteutuksesta riippuen) | ||
Cortex-A72 [32] | |||||
ARM-perhe | ARM-arkkitehtuuri | Nucleus | Lisäosat | Välimuistit (I/D), MMU | Tyypillinen MIPS @ MHz |
Kolmannen osapuolen kehittämä, jolla oli ARM:n arkkitehtuurilisenssi, joka mahdollisti omistusoikeudellisten ohjeiden toteuttamisen.
Perhe | Komentosarja | mikroarkkitehtuuri | Laajennussarja | Välimuisti I/D), MMU | Tyypillinen Tyypillinen MIPS @ MHz |
---|---|---|---|---|---|
Vahva käsivarsi | ARMv4 | SA-110 | 5-vaiheinen kuljetin | 16 kt / 16 kt, MMU | 100-206MHz 1,0DMIPS /MHz |
SA-1100 | SA-110 kehitys | 16 kt / 8 kt, MMU | |||
Faraday [33] | ARMv4 | FA510 | 6-vaiheinen kuljetin | Jopa 32 kt / 32 kt välimuisti, MPU | 1,26 DMIPS/MHz 100-200 MHz |
FA526 | Jopa 32 kt / 32 kt välimuisti, MMU | 1,26 MIPS/MHz 166-300 MHz | |||
FA626 | 8-vaiheinen kuljetin | 32 kt / 32 kt välimuisti, MMU | 1.35DMIPS/MHz 500MHz | ||
ARMv5TE | FA606TE | 5-vaiheinen kuljetin | Ei välimuistia, ei MMU:ta | 1.22DMIPS/MHz 200MHz | |
FA626TE | 8-vaiheinen kuljetin | 32 kt / 32 kt välimuisti, MMU | 1.43MIPS/MHz 800MHz | ||
FMP626TE | 8-vaiheinen putkisto, SMP | 1.43MIPS/MHz 500MHz | |||
FA726TE | 13-vaiheinen putkisto, joka käyttää kahta käskyä kelloa kohden | 2.4DMIPS/MHz 1000MHz | |||
Xscale | ARMv5TE | Xscale | 7-vaiheinen putkisto, peukalo, DSP | 32 kt / 32 kt MMU | 133-400 MHz |
Bulverde | Valinnainen: W MMX -laajennukset , Wireless SpeedStep | 32 kt / 32 kt MMU | 312-624 MHz | ||
Monahans [34] | Valinnainen: WMMX2-laajennus | 32 kt / 32 kt (L1), valinnainen L2-välimuisti jopa 512 kt, MMU | Jopa 1,25 GHz | ||
Marvell Sheeva | ARMv5 | Feroceon | 5-8 liukuhihnavaihetta, yhden käskyn suorittaminen sykliä kohden | 16 kt / 16 kt, MMU | 600-2000 MHz |
Jolteon | 5-8 liukuhihnavaihetta, kaksi ohjetta sykliä kohden | 32 kt / 32 kt MMU | |||
PJ1 (Mohawk) | 5-8 liukuhihnavaihetta, kaksi käskyä sykliä kohden, WMMX2 | 32 kt / 32 kt MMU | 1,46 DMIPS /MHz 1,06 GHz | ||
ARMv6 / ARMv7-A | PJ4 | 6-9 liukuhihnavaihetta, kaksi käskyä sykliä kohden, WMMX2, SMP | 32 kt / 32 kt MMU | 2,41 DMIPS/MHz 1,6 GHz | |
lohikäärme | ARMv7-A | Skorpioni [35] | 1 tai 2 ydintä. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv3 FPU / NEON (128-bittinen leveä) | 256 KB L2 per ydin | 2,1 DMIPS/MHz per ydin |
[ 35] | 1, 2 tai 4 ydintä. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON (128-bittinen leveä) | 4 kt / 4 kt L0, 16 kt / 16 kt L1, 512 kt L2 per ydin | 3,3 DMIPS/MHz per ydin | ||
Apple A6 , Apple A6X |
ARMv7-A | Swift [36] | 2 ydintä. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON | L1: 32 kt / 32 kt, L2: 1 Mt | 3,5 DMIPS/MHz per ydin |
Apple A7 | ARMv8-A | Sykloni | 2 ydintä. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64 | L1: 64 kt / 64 kt, L2: 1 Mt | 1,3 GHz |
Apple A8 | ARMv8-A | Sykloni | 2 ydintä. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64 | L1: (n/a);KB, L2: (n/a);MB | 1,4 GHz |
X-geeni | ARMv8-A | X-geeni | 64-bittinen, ajaa jopa 4 käskyä sykliä kohden, SMP, 64 ydintä [37] | välimuisti, MMU, virtualisointi | 3 GHz |
Denver | ARMv8-A | Denver | 64-bittinen, 2 SMP-ydintä, laitteistodekooderi jopa 2 käskyä jaksoa kohden tai ohjelmiston dynaaminen uudelleenkääntäminen laajoihin käskyihin | 128 kt I / 64 kt D | 2,5 GHz asti |
ThunderX | ARMv8-A | ThunderX | 64-bittinen, 2 mallia: 8-16 tai 24-48 ydintä (2 piiriä voidaan yhdistää) | Jopa 2,5 GHz |