ARM (архитектура)
- 1 year ago
- 0
- 0
Список процессорных и микроконтроллерных микроархитектур семейства ARM , разработанных ARM Holdings и сторонними группами. Упорядочено по версии набора команд ARM.
Компания ARM предоставляла список фирм, реализовавших архитектуры ARM самостоятельно . Некоторую информацию также предоставляет компания Keil .
Список ядер собственной разработки ARM также опубликован на их интернет-сайте .
Семейство ARM | Архитектура ARM | Ядро | Дополнения | Кэши (I / D), MMU | Типичные MIPS @ МГц |
---|---|---|---|---|---|
ARM1 | ARMv1 | ARM1 | Первая реализация | Нет | |
ARM2 | ARMv2 | ARM2 | В ARMv2 была добавлена инструкция MUL (умножение) | Нет |
4 MIPS @ 8 МГц
0,33 /МГц |
ARMv2a | ARM250 | Встроенный MEMC (MMU), графический процессор и сопроцессор ввода-вывода. В ARMv2a добавлены инструкции SWP и SWPB (обмен) | Нет, MEMC1a | 7 MIPS @ 12 МГц | |
ARM3 | ARMv2a | ARM3 | Первая интегрированная кэш память | 4 КБ, унифицированный |
12 MIPS @ 25 МГц
0,50 DMIPS/МГц |
ARM6 | ARMv3 | ARM60 | В ARMv3 добавлена поддержка 32-битной адресации памяти (ранее — 26 бит) | Нет | 10 MIPS @ 12 МГц |
ARM600 | Как в ARM60, дополнительно — кэш и шина сопроцессора (для блока FPA10 обработки числе с плавающей запятой) | 4 КБ, унифицированный | 28 MIPS @ 33 МГц | ||
ARM610 | Как в ARM60, кэш, без шины сопроцессора | 4 КБ, унифицированный |
17 MIPS @ 20 МГц
0,65 DMIPS/МГц |
||
ARM7 | ARMv3 | ARM700 | 8 КБ, унифицированный | 40 МГц | |
ARM710 | Как ARM700, без шины сопроцессора | 8 КБ, унифицированный | 40 МГц | ||
ARM710a | Как ARM710 | 8 КБ, унифицированный |
40 МГц
0,68 DMIPS/МГц |
||
ARM7TDMI | ARMv4T | ARM7TDMI(-S) | 3-стадийный конвейер, Thumb. В ARMv4 отказались от 26-битной адресации | Нет |
15 MIPS @ 16,8 МГц
63 DMIPS @ 70 МГц |
ARM710T | Как ARM7TDMI, дополнительно имеет кэш | 8 КБ, унифицированный, MMU | 36 MIPS @ 40 МГц | ||
ARM720T | Как ARM7TDMI, имеет кэш | 8 КБ, унифицированный, MMU (с FCSE — Fast Context Switch Extension ) | 60 MIPS @ 59,8 МГц | ||
ARM740T | Как ARM7TDMI, имеет кэш | ||||
ARMv5TEJ | ARM7EJ-S | 5-стадийный конвейер, Thumb, Jazelle DBX, Расширенные DSP-команды | Нет | ||
ARM8 | ARMv4 | ARM810 | 5-стадийный конвейер, статический предсказатель ветвлений, удвоение пропускной способности памяти | 8 КБ, унифицированный, MMU |
84 MIPS @ 72 МГц
1,16 DMIPS/МГц |
ARM9 TDMI | ARMv4T | ARM9TDMI | 5-стадийный конвейер, Thumb | Нет | |
ARM920T | Как ARM9TDMI, кэши | 16 КБ / 16 КБ, MMU с FCSE ( Fast Context Switch Extension ) | 200 MIPS @ 180 МГц | ||
ARM922T | Как ARM9TDMI, кэши | 8 КБ / 8 КБ, MMU | |||
ARM940T | Как ARM9TDMI, кэши | 4 КБ / 4 КБ, MPU | |||
ARMv5TE | ARM946E-S | Thumb, DSP, кэши | Различные, тесно связанная память (TCM), MPU | ||
ARM966E-S | Thumb, DSP | Без кэша и памяти TCM | |||
ARM968E-S | Как ARM966E-S | Без кэша и TCM | |||
ARMv5TEJ | ARM926EJ-S | Thumb, Jazelle DBX, DSP | Различные, TCM, MMU | 220 MIPS @ 200 МГц | |
ARMv5TE | ARM996HS | Процессор без тактовой частоты, остальное как у ARM966E-S | Без кэша, TCM, MPU | ||
ARM10E | ARMv5TE | ARM1020E | 6-стадийный конвейер, Thumb, DSP, (VFP) | 32 КБ / 32 КБ, MMU | |
ARM1022E | Как ARM1020E | 16 КБ / 16 КБ, MMU | |||
ARMv5TEJ | ARM1026EJ-S | Thumb, Jazelle DBX, DSP, (VFP) | Различные, MMU или MPU | ||
ARM11 | ARMv6 | ARM1136J(F)-S | 8-стадийный конвейер, SIMD , Thumb, Jazelle DBX, (VFP), DSP | Различные, MMU | 740 @ 532—665 МГц (i.MX31 SoC), 400—528 МГц |
ARMv6T2 | ARM1156T2(F)-S | 8-стадийный конвейер, SIMD , Thumb-2, (VFP), DSP | Различные, MPU | ||
ARMv6Z | ARM1176JZ(F)-S | Как ARM1136EJ(F)-S | Различные, MMU + TrustZone | 965 DMIPS @ 772 МГц, до 2600 DMIPS с 4 процессорами | |
ARMv6K | ARM11 MPCore | Как ARM1136EJ(F)-S, SMP с 1-4 ядрами | Различные, MMU | ||
SecurCore | ARMv6-M | SC000 | 0,9 DMIPS/МГц | ||
ARMv4T | SC100 | ||||
ARMv7-M | SC300 | 1,25 DMIPS/МГц | |||
Cortex-M | ARMv6-M | Microcontroller profile, Thumb + Thumb-2 subset (BL, MRS, MSR, ISB, DSB, DМB), аппаратное умножение, опциональный системный таймер и память «bit-banding» | Опциональный кэш, без TCM, без MPU | 0,84 DMIPS/МГц | |
Микроконтроллер, подмножество Thumb и Thumb-2 (BL, MRS, MSR, ISB, DSB, DМB), аппаратное умножение, опциональный системный таймер и память «bit-banding» | Опциональный кэш, без TCM, опциональный MPU на 8 регионов | 0,93 DMIPS/МГц | |||
Микроконтроллер, подмножество Thumb и Thumb-2 (BL, MRS, MSR, ISB, DSB, DMB), аппаратное умножение, опция SVC / банк для указателя стека, опциональный системный таймер, без памяти «bit-banding» | Опциональный кэш, 0-1024 КБ I-TCM, 0-1024 КБ D-TCM, без MPU | 136 DMIPS @ 170 МГц, (0,8 DMIPS/МГц FPGA-dependent) | |||
ARMv7-M | Микроконтроллер, Thumb / Thumb-2, аппаратные умножение и деление, опциональная память «bit-banding» | Опциональный кэш, без TCM, опциональный MPU на 8 регионов | 1,25 DMIPS/МГц | ||
ARMv7E-M | Микроконтроллер, Thumb / Thumb-2 / DSP / опциональное расширение FPv4 для одинарной точности, аппаратные умножение и деление, опциональная память «bit-banding» | Опциональный кэш, без TCM, опциональный MPU на 8 регионов | 1,25 DMIPS/МГц (1,27 с FPU FPv4) | ||
ARMv7E-M | Микроконтроллер, Thumb / Thumb-2 / DSP / опциональный блок FPU для чисел одинарной и двойной точности, аппаратные умножение и деление | 0-64 КБ I-кэш, 0-64 КБ D-кэш, 0-16 МБ I-TCM, 0-16 МБ D-TCM (все — с опциональным ECC), Опциональный MPU на 8 или 16 регионов | 2,14 DMIPS/МГц | ||
Baseline | ARM TrustZone |
0,98 DMIPS/МГц
2,5 CoreMark /МГц |
|||
Mainline | ARM TrustZone |
1,5 DMIPS/МГц
3,86 CoreMark/МГц |
|||
ARMv7-R | Cortex-R4 | Профиль реального времени, Thumb / Thumb-2 / DSP / опциональный VFPv3 FPU, аппаратные умножение и опциональное деление, опциональные четность и ECC для внутренних шин, кэша, TCM, 8-стадийный конвейер, два ядра в режиме «lockstep» с логикой обработки ошибок | 0-64 КБ / 0-64 КБ, 0-2 из 0-8 TCM, опционально MPU на 8 или 12 | ||
Cortex-R5 (MPCore) | Профиль реального времени, Thumb / Thumb-2 / DSP / опциональный VFPv3 FPU, аппаратные умножение и опциональное деление, опциональные четность и ECC для внутренних шин, кэша, TCM, 8-стадийный конвейер, два ядра в режиме «lockstep» с логикой обработки ошибок. Опционально допускается работа двух ядер как независимых. Периферийный порт с низкими задержками (LLPP), порт когерентности для ускорителя (ACP) | 0-64 КБ / 0-64 КБ, 0-2 из 0-8 МБ TCM, опц. MPU на 12 или 16 | |||
Cortex-R7 (MPCore) | Профиль реального времени, Thumb / Thumb-2 / DSP / опциональный VFPv3 FPU, аппаратные умножение и опциональное деление, опциональные четность и ECC для внутренних шин, кэша, TCM, 11-стадийный конвейер, два ядра в режиме «lockstep» с логикой обработки ошибок. Ядра out-of-order, с динамическим переименованием регистров. Опционально допускается работа двух ядер как независимых. Периферийный порт с низкими задержками (LLPP), порт когерентности для ускорителя (ACP) | 0-64 КБ / 0-64 КБ, ? из 0-128 КБ TCM, опц. MPU на 16 | |||
ARMv7-A | Cortex-A5 | Профиль «Application», ARM / Thumb / Thumb-2 / DSP / SIMD / опциональный VFPv4-D16 / опциональный NEON / Jazelle RCT и DBX, 1-4 ядро, опционально MPCore, блок управления снупированием (SCU, snoop control unit), контроллер общих прерываний (GIC), порт когерентности для ускорителя (ACP) | 4-64 КБ / 4-64 КБ L1, MMU + TrustZone | 1,57 DMIPS/МГц на ядро | |
Cortex-A7 MPCore | Профиль «Application», ARM / Thumb / Thumb-2 / DSP / VFPv4-D16 FPU / NEON / Jazelle RCT и DBX / аппаратная виртуализация, очередное исполнение команд (in-order), суперскаляр, SMP на 1-4 ядра, Large Physical Address Extensions (LPAE), блок управления снупированием (SCU), контроллер общих прерываний (GIC), порт когерентности для ускорителя (ACP). Архитектура и набор расширений совпадают с Cortex-A15. 8-10 стадий в конвейере, пониженное энергопотребление | 32 КБ / 32 КБ L1, 0-4 МБ L2, MMU + TrustZone | 1,9 DMIPS/МГц на ядро | ||
Профиль «Application», ARM / Thumb / Thumb-2 / VFPv3 FPU / NEON / Jazelle RCT и DAC, 13-стадийный суперскаляр | 16-32 КБ / 16-32 КБ L1, 0-1 МБ L2 опц. ECC, MMU + TrustZone | до 2000 (2,0 DMIPS/МГц с частотами от 600 МГц до превышающих 1 ГГц ) | |||
Cortex-A9 MPCore | Профиль «Application», ARM / Thumb / Thumb-2 / DSP / опционально VFPv3 FPU / опционально NEON / Jazelle RCT и DBX, внеочередное исполнение (out-of-order) со спекулятивностью, суперскаляр, SMP на 1-4 ядра, блок управления снупированием (SCU), контроллер общих прерываний (GIC), порт когерентности для ускорителя (ACP). | 16-64 КБ / 16-64 КБ L1, 0-8 МБ L2 опц. контроль четности, MMU + TrustZone | 2,5 DMIPS/МГц на ядро, 10,000 DMIPS @ 2 ГГц на техпроцессе TSMC (два ядра) | ||
Cortex-A12 позже объединен с A17 | Профиль «Application», ARM / Thumb-2 / DSP / VFPv4 FPU / NEON / аппаратная виртуализация, внеочередное спекулятивное исполнение, суперскаляр, SMP на 1-4 ядра, Large Physical Address Extensions (LPAE), блок управления снупированием (SCU), контроллер общих прерываний (GIC), порт когерентности для ускорителя (ACP). | 32-64 КБ / 32 КБ L1, 256 КБ-8 МБ L2 | 3,0 DMIPS/МГц на ядро | ||
Cortex-A15 MPCore | Профиль «Application», ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / целочисленное деление / MAC (объединенное умножение-сложение) / Jazelle RCT / аппаратная вирутализация, внеочередное спекулятивное исполнение, суперскаляр, SMP на 1-4 ядра, Large Physical Address Extensions (LPAE), блок управления снупированием (SCU), контроллер общих прерываний (GIC), порт когерентности для ускорителя (ACP). 15-24 стадийный конвейер | 32 КБ с четностью / 32 КБ с L1, 0-4 МБ L2 с ECC, MMU + TrustZone | Не менее 3,5 DMIPS/МГц на ядро (до 4,01 DMIPS/МГц в зависимости от реализации) | ||
Профиль «Application», ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / целочисленное деление / MAC (объединенное умножение-сложение) / Jazelle RCT / аппаратная виртуализация, внеочередное спекулятивное исполнение, суперскаляр, SMP на 1-4 ядра, Large Physical Address Extensions (LPAE), блок управления снупированием (SCU), контроллер общих прерываний (GIC), порт когерентности для ускорителя (ACP). | MMU + TrustZone | ||||
Cortex-A50 | ARMv8-A | Профиль «Application», AArch32 и AArch64, SMP на 1-4 ядра, Trustzone, улучшенный NEON SIMD, VFPv4, аппаратная виртуализация, запуск до двух команд в цикл, очередное (in-order) конвейерное исполнение | 8-64 КБ с четностью / 8-64 КБ с ECC L1 на каждое ядро, 128 КБ-2 МБ общий L2, 40-битные физические адреса | 2,3 DMIPS/МГц | |
Профиль «Application», AArch32 и AArch64, SMP на 1-4 ядра, Trustzone, улучшенный NEON SIMD, VFPv4, аппаратная виртуализация, запуск множества команд в цикл, глубокое внеочередное исполнение | 48 КБ с двойной четностью (DED) / 32 КБ L1 с ECC на ядро, 512 КБ-2 МБ общий L2, 44-битные физ. адреса | Не менее 4,1 DMIPS/МГц на ядро (до 4,76 DMIPS/МГц в зависимости от реализации) | |||
Семейство ARM | Архитектура ARM | Ядро | Дополнения | Кэши (I / D), MMU | Типичные MIPS @ МГц |
Разработаны сторонними компаниями, владевшими архитектурной лицензией от ARM, которая разрешала реализацию запатентованных инструкций.
Семейство | Набор команд | Микроархитектура | Набор расширение | Кэш I / D), MMU | Типичные Typical MIPS @ МГц |
---|---|---|---|---|---|
StrongARM | ARMv4 | SA-110 | 5-стадийный конвейер | 16 КБ / 16 КБ, MMU |
100-206 МГц
1,0 DMIPS/МГц |
SA-1100 | Развитие SA-110 | 16 КБ / 8 КБ, MMU | |||
ARMv4 | FA510 | 6-стадийный конвейер | До 32 КБ / 32 КБ кэш, MPU |
1,26 DMIPS/МГц
100—200 МГц |
|
FA526 | До 32 КБ / 32 КБ кэш, MMU |
1,26 MIPS/МГц
166—300 МГц |
|||
FA626 | 8-стадийный конвейер | 32 КБ / 32 КБ кэш, MMU |
1,35 DMIPS/МГц
500 МГц |
||
ARMv5TE | FA606TE | 5-стадийный конвейер | Без кэша, без MMU |
1,22 DMIPS/МГц
200 МГц |
|
FA626TE | 8-стадийный конвейер | 32 КБ / 32 КБ кэш, MMU |
1,43 MIPS/МГц
800 МГц |
||
FMP626TE | 8-стадийный конвейер, SMP |
1,43 MIPS/МГц
500 МГц |
|||
FA726TE | 13-стадийный конвейер, запуск двух инструкций в такт |
2,4 DMIPS/МГц
1000 МГц |
|||
XScale | ARMv5TE | XScale | 7-стадийный конвейер, Thumb, DSP | 32 КБ / 32 КБ, MMU | 133-400 МГц |
Bulverde | Дополнительно: расширения W , Wireless SpeedStep | 32 КБ / 32 КБ, MMU | 312-624 МГц | ||
Monahans | Дополнительно: расширение WMMX2 | 32 КБ / 32 КБ (L1), опциональный L2 кэш до 512 КБ, MMU | Up to 1,25 ГГц | ||
Marvell Sheeva | ARMv5 | Feroceon | 5-8 стадий конвейера, запуск одной инструкции за цикл | 16 КБ / 16 КБ, MMU | 600-2000 МГц |
Jolteon | 5-8 стадий конвейера, запуск двух инструкций за цикл | 32 КБ / 32 КБ, MMU | |||
PJ1 (Mohawk) | 5-8 стадий конвейера, запуск двух инструкций за цикл, WMMX2 | 32 КБ / 32 КБ, MMU |
1,46 DMIPS/МГц
1,06 ГГц |
||
ARMv6 / ARMv7-A | PJ4 | 6-9 стадий конвейера, запуск двух инструкций за цикл, WMMX2, SMP | 32 КБ / 32 КБ, MMU |
2,41 DMIPS/МГц
1,6 ГГц |
|
ARMv7-A | 1 или 2 ядра. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv3 FPU / NEON (ширина 128-бит) | 256 КБ L2 на ядро | 2,1 DMIPS/МГц на ядро | ||
Krait | 1, 2, или 4 ядра. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON (ширина 128-бит) | 4 КБ / 4 КБ L0, 16 КБ / 16 КБ L1, 512 КБ L2 на ядро | 3,3 DMIPS/МГц на ядро | ||
Apple A6
,
Apple A6X |
ARMv7-A | Swift | 2 ядра. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON | L1: 32 КБ / 32 КБ, L2: 1 МБ | 3,5 DMIPS/МГц на ядро |
Apple A7 | ARMv8-A | Cyclone | 2 ядра. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / / AArch64 | L1: 64 КБ / 64 КБ, L2: 1 МБ | 1,3 ГГц |
Apple A8 | ARMv8-A | Cyclone | 2 ядра. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / / AArch64 | L1: (н/у);КБ, L2: (н/у);МБ | 1,4 ГГц |
ARMv8-A | X-Gene | 64-разрядный, запуск до 4 инструкций за цикл, SMP, 64 ядра | кэш, MMU, виртуализация | 3 ГГц | |
ARMv8-A | Denver | 64-разрядный, 2 ядра SMP, аппаратный декодер до 2 инструкций за цикл, либо программная динамическая рекомпиляция в широкие инструкции | 128 КБ I / 64 КБ D | до 2,5 ГГц | |
ThunderX | ARMv8-A | ThunderX | 64-разрядный, 2 модели: 8-16 или 24-48 ядер (возможно объединение двух чипов) | До 2,5 ГГц |