Список архитектур ARM

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Список процессорных и микроконтроллерных микроархитектур семейства ARM, разработанные ARM Holdings, и сторонними группами. Упорядочено по версии набора команд ARM.

Компания ARM предоставляла список фирм, реализовавших архитектуры ARM самостоятельно.[1] Некоторую информацию также предоставляет компания Keil[2].

Список ядер собственной разработки ARM также опубликован на их интернет сайте[3].

Ядра ARM[править | править код]

Разработанные в ARM[править | править код]

Семейство ARM Архитектура ARM Ядро Дополнения Кэши (I / D), MMU Типичные MIPS @ МГц
ARM1 ARMv1 ARM1 Первая реализация Нет
ARM2 ARMv2 ARM2 В ARMv2 была добавлена инструкция MUL (умножение) Нет 4 MIPS @ 8 МГц
0.33 DMIPS/МГц
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, имеет кэш MPU
ARM7EJ ARMv5TEJ ARM7EJ-S 5-стадийный конвейер, Thumb, Jazelle DBX, Расширенные DSP-команды Нет
ARM8 ARMv4 ARM810[4][5] 5-стадийный конвейер, статический предсказатель ветвлений, удвоение пропускной способности памяти 8 КБ, унифицированный, MMU 84 MIPS @ 72 МГц
1.16 DMIPS/МГц
ARM9TDMI ARMv4T ARM9TDMI 5-стадийный конвейер, Thumb Нет
ARM920T Как ARM9TDMI, кэши 16 КБ / 16 КБ, MMU с FCSE (Fast Context Switch Extension)[6] 200 MIPS @ 180 МГц
ARM922T Как ARM9TDMI, кэши 8 КБ / 8 КБ, MMU
ARM940T Как ARM9TDMI, кэши 4 КБ / 4 КБ, MPU
ARM9E 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[7] 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 процессорами[8]
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 Cortex-M0[9] Microcontroller profile, Thumb + Thumb-2 subset (BL, MRS, MSR, ISB, DSB, DМБ),[10] аппаратное умножение, опциональный системный таймер и память «bit-banding» Опциональный кэш, без TCM, без MPU 0.84 DMIPS/МГц
Cortex-M0+[11] Микроконтроллер, подмножество Thumb и Thumb-2 (BL, MRS, MSR, ISB, DSB, DМБ),[10] аппаратное умножение, опциональный системный таймер и память «bit-banding» Опциональный кэш, без TCM, опциональный MPU на 8 регионов 0.93 DMIPS/МГц
Cortex-M1[12] Микроконтроллер, подмножество Thumb и Thumb-2 (BL, MRS, MSR, ISB, DSB, DМБ),[10] аппаратное умножение, опция SVC / банк для указателя стека, опциональный системный таймер, без памяти «bit-banding» Опциональный кэш, 0-1024 КБ I-TCM, 0-1024 КБ D-TCM, без MPU 136 DMIPS @ 170 МГц,[13] (0.8 DMIPS/МГц FPGA-dependent)[14]
ARMv7-M Cortex-M3[15] Микроконтроллер, Thumb / Thumb-2, аппаратные умножение и деление, опциональная память «bit-banding» Опциональный кэш, без TCM, опциональный MPU на 8 регионов 1.25 DMIPS/МГц
ARMv7E-M Cortex-M4[16] Микроконтроллер, Thumb / Thumb-2 / DSP / опциональное расширение FPv4 для одинарной точности, аппаратные умножение и деление, опциональная память «bit-banding» Опциональный кэш, без TCM, опциональный MPU на 8 регионов 1.25 DMIPS/МГц (1.27 с FPU FPv4)
ARMv7E-M Cortex-M7[17] Микроконтроллер, 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/МГц
ARMv8-M Baseline Cortex-M23 ARM TrustZone 0.98 DMIPS/МГц

2.5 CoreMark/МГц

ARMv8-M Mainline Cortex-M33 ARM TrustZone 1.5 DMIPS/МГц

3.86 CoreMark/МГц

Cortex-R ARMv7-R Cortex-R4[18] Профиль реального времени, 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)[19] Профиль реального времени, Thumb / Thumb-2 / DSP / опциональный VFPv3 FPU, аппаратные умножение и опциональное деление, опциональные четность и ECC для внутренних шин, кэша, TCM, 8-стадийный конвейер, два ядра в режиме «lockstep» с логикой обработки ошибок. Опционально допускается работа двух ядер как независимых. Периферийный порт с низкими задержками (LLPP), порт когерентности для ускорителя (ACP)[20] 0-64 КБ / 0-64 КБ, 0-2 из 0-8 МБ TCM, опц. MPU на 12 или 16
Cortex-R7 (MPCore)[21] Профиль реального времени, Thumb / Thumb-2 / DSP / опциональный VFPv3 FPU, аппаратные умножение и опциональное деление, опциональные четность и ECC для внутренних шин, кэша, TCM, 11-стадийный конвейер, два ядра в режиме «lockstep» с логикой обработки ошибок. Ядра out-of-order, с динамическим переименованием регистров. Опционально допускается работа двух ядер как независимых. Периферийный порт с низкими задержками (LLPP), порт когерентности для ускорителя (ACP)[20] 0-64 КБ / 0-64 КБ, ? из 0-128 КБ TCM, опц. MPU на 16
Cortex-A ARMv7-A Cortex-A5[22] Профиль «Application», ARM / Thumb / Thumb-2 / DSP / SIMD / опциональный VFPv4-D16 FPU / опциональный 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[23] Профиль «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 стадий в конвейере, пониженное энергопотребление[24] 32 КБ / 32 КБ L1, 0-4 МБ L2, MMU + TrustZone 1.9 DMIPS/МГц на ядро
Cortex-A8[25] Профиль «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[26] Профиль «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 40G (два ядра)
Cortex-A12[27] позже объединен с 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[28] Профиль «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 стадийный конвейер[24] 32 КБ с четностью / 32 КБ с ECC L1, 0-4 МБ L2 с ECC, MMU + TrustZone Не менее 3.5 DMIPS/МГц на ядро (до 4.01 DMIPS/МГц в зависимости от реализации)[29]
Cortex-A17 MPCore Профиль «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 Cortex-A53[30] Профиль «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/МГц
Cortex-A57[31] Профиль «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/МГц в зависимости от реализации)
Cortex-A72[32]
Семейство 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
Faraday[33] 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 Дополнительно: расширения WMMX, Wireless SpeedStep 32 КБ / 32 КБ, MMU 312-624 МГц
Monahans[34] Дополнительно: расширение 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 ГГц
Snapdragon ARMv7-A Scorpion[35] 1 или 2 ядра. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv3 FPU / NEON (ширина 128-бит) 256 КБ L2 на ядро 2.1 DMIPS/МГц на ядро
Krait[35] 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[36] 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 / TrustZone / AArch64 L1: 64 КБ / 64 КБ, L2: 1 МБ 1.3 ГГц
Apple A8 ARMv8-A Cyclone 2 ядра. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64 L1: (н/у);КБ, L2: (н/у);МБ 1.4 ГГц
X-Gene ARMv8-A X-Gene 64-разрядный, запуск до 4 инструкций за цикл, SMP, 64 ядра[37] кэш, MMU, виртуализация 3 ГГц
Denver 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 ГГц

См. также[править | править код]

Примечания[править | править код]

  1. Line Card (PDF) (2003). Проверено 6 января 2011. (недоступная ссылка)
  2. ARM Ltd and ARM Germany GmbH. Device Database. Keil. Проверено 6 января 2011.
  3. Processors. ARM (2011). Проверено 6 января 2011.
  4. ARM Holdings (7 August 1996), ARM810 – Dancing to the Beat of a Different Drum, Hot Chips, <http://www.dlhoffman.com/publiclibrary/software/hot_chips_papers/hc96/hc8_pdf/4.1.pdf>. Проверено 21 сентября 2013. 
  5. VLSI Technology Now Shipping ARM810, EE Times (26 August 1996). Проверено 21 сентября 2013.
  6. Register 13, FCSE PID register ARM920T Technical Reference Manual
  7. ARM1136J(F)-S – ARM Processor. Arm.com. Проверено 18 апреля 2009. Архивировано 21 марта 2009 года.
  8. ARM11 Processor Family. ARM. Проверено 12 декабря 2010.
  9. Cortex-M0 Specification Summary; ARM Holdings.
  10. 1 2 3 Cortex-M0/M0+/M1 Instruction set; ARM Holding. (недоступная ссылка)
  11. Cortex-M0+ Specification Summary; ARM Holdings.
  12. Cortex-M1 Specification Summary; ARM Holdings.
  13. ARM Holdings (19 March 2007). ARM Extends Cortex Family with First Processor Optimized for FPGA. Пресс-релиз. Проверено 11 April 2007.
  14. ARM Cortex-M1. ARM product website. Проверено 11 апреля 2007.
  15. Cortex-M3 Specification Summary; ARM Holdings.
  16. Cortex-M4 Specification Summary; ARM Holdings.
  17. Cortex-M7 Specification Summary; ARM Holdings.
  18. Cortex-R4 Specification Summary; ARM Holdings.
  19. Cortex-R5 Specification Summary; ARM Holdings.
  20. 1 2 Cortex-R5 & Cortex-R7 Press Release; ARM Holdings; 31 January 2011.
  21. Cortex-R7 Specification Summary; ARM Holdings.
  22. Cortex-A5 Specification Summary; ARM Holdings.
  23. Cortex-A7 Specification Summary; ARM Holdings.
  24. 1 2 Deep inside ARM's new Intel killer, The Register (20 October 2011).
  25. Cortex-A8 Specification Summary; ARM Holdings.
  26. Cortex-A9 Specification Summary; ARM Holdings.
  27. Cortex-A12 Summary; ARM Holdings. Архивировано 7 июня 2013 года.
  28. Cortex-A15 Specification Summary; ARM Holdings.
  29. Exclusive : ARM Cortex-A15 «40 Per Cent» Faster Than Cortex-A9 // ITProPortal.com
  30. Cortex-A53 Processor. ARM Holdings. Проверено 13 октября 2012.
  31. Cortex-A57 Processor. ARM Holdings. Проверено 13 октября 2012.
  32. Cortex-A72 Processor. ARM Holdings. Проверено 13 марта 2016.
  33. [1]
  34. 3rd Generation Intel XScale Microarchitecture: Developer’s Manual. download.intel.com. Intel (May 2007). Проверено 2 декабря 2010.
  35. 1 2 Qualcomm’s New Snapdragon S4: MSM8960 & Krait Architecture Explored; Anandtech.
  36. Lal Shimpi, Anand The iPhone 5's A6 SoC: Not A15 or A9, a Custom Apple Core Instead. AnandTech (15 September 2012). Проверено 15 сентября 2012.
  37. AppliedMicro's 64-core chip could spark off ARM core war | PCWorld

Литература[править | править код]

  • Digital Signal Processing and Applications Using the ARM Cortex M4; 1st Edition; Donald Reay; Wiley; 250 pages; 2014; ISBN 978-1118859049.
  • Assembly Language Programming : ARM Cortex-M3; 1st Edition; Vincent Mahout; Wiley-ISTE; 256 pages; 2012; ISBN 978-1848213296.
  • The Definitive Guide to the ARM Cortex-M3 and Cortex-M4 Processors; 3rd Edition; Joseph Yiu; Newnes; 600 pages; 2013; ISBN 978-0124080829.
  • The Definitive Guide to the ARM Cortex-M0; 1st Edition; Joseph Yiu; Newnes; 552 pages; 2011; ISBN 978-0-12-385477-3. [2]