Lista procesorów ARM
To jest lista jednostek centralnych opartych na rodzinie zestawów instrukcji ARM zaprojektowanych przez ARM Ltd. i strony trzecie, posortowana według wersji zestawu instrukcji ARM, wydania i nazwy. W 2005 roku firma ARM przedstawiła podsumowanie wielu dostawców, którzy wdrażają rdzenie ARM w swoich projektach. Keil zapewnia również nieco nowsze zestawienie dostawców procesorów opartych na architekturze ARM. ARM udostępnia ponadto wykres przedstawiający przegląd linii procesorów ARM z wydajnością i funkcjonalnością w porównaniu z możliwościami nowszych rodzin rdzeni ARM.
Procesory
Zaprojektowany przez ARM
Produkt rodzinny | Architektura ARM | Edytor | Funkcja | Pamięć podręczna (I/D), MMU | Typowy MIPS @ MHz | Odniesienie |
---|---|---|---|---|---|---|
ARM1 | ARMv1 | ARM1 | Pierwsza realizacja | Nic | ||
ARM2 | ARMv2 | ARM2 | ARMv2 dodał instrukcję MUL (mnożenie). | Nic |
4 MIPS przy 8 MHz 0,33 DMIPS /MHz |
|
ARMv2a | ARM250 | Zintegrowany MEMC (MMU), grafika i procesor I/O. ARMv2a dodał instrukcje SWP i SWPB (swap). | Brak, MEMC1a | 7 MIPS przy 12 MHz | ||
ARM3 | ARMv2a | ARM3 | Pierwsza zintegrowana pamięć podręczna | 4 KB ujednolicone |
12 MIPS przy 25 MHz 0,50 DMIPS/MHz |
|
ARM6 | ARMv3 | ARM60 |
ARMv3 jako pierwszy obsługuje 32-bitową przestrzeń adresową pamięci (wcześniej 26-bitową). ARMv3M jako pierwszy dodał długie instrukcje mnożenia (32x32=64). |
Nic | 10 MIPS przy 12 MHz | |
ARM600 | Jak ARM60, pamięć podręczna i magistrala koprocesora (dla jednostki zmiennoprzecinkowej FPA10) | 4 KB ujednolicone | 28 MIPS przy 33 MHz | |||
ARM610 | Jak ARM60, pamięć podręczna, brak magistrali koprocesora | 4 KB ujednolicone |
17 MIPS przy 20 MHz 0,65 DMIPS/MHz |
|||
ARM7 | ARMv3 | ARM700 | 8 KB ujednolicone | 40MHz | ||
ARM710 | Jak ARM700, bez magistrali koprocesora | 8 KB ujednolicone | 40MHz | |||
ARM710a | Jako ARM710 | 8 KB ujednolicone |
40 MHz 0,68 DMIPS/MHz |
|||
ARM7T | ARMv4T | ARM7TDMI (-S) | 3-etapowy potok, Thumb, ARMv4 jako pierwszy porzuca starsze 26-bitowe adresowanie ARM | Nic |
15 MIPS przy 16,8 MHz 63 DMIPS przy 70 MHz |
|
ARM710T | Jako ARM7TDMI, pamięć podręczna | Ujednolicone 8 KB, MMU | 36 MIPS przy 40 MHz | |||
ARM720T | Jako ARM7TDMI, pamięć podręczna | Ujednolicone 8 KB, MMU z FCSE (rozszerzenie szybkiego przełączania kontekstu) | 60 MIPS przy 59,8 MHz | |||
ARM740T | Jako ARM7TDMI, pamięć podręczna | MPU | ||||
ARM7EJ | ARMv5TEJ | ARM7EJ-S | 5-etapowy potok, Thumb, Jazelle DBX, ulepszone instrukcje DSP | Nic | ||
ARM8 | ARMv4 | ARM810 | 5-stopniowy potok, statyczne przewidywanie rozgałęzień, pamięć o podwójnej przepustowości | Ujednolicone 8 KB, MMU |
84 MIPS przy 72 MHz 1,16 DMIPS/MHz |
|
ARM9T | ARMv4T | ARM9TDMI | 5-stopniowy rurociąg, Thumb | Nic | ||
ARM920T | Jako ARM9TDMI, pamięć podręczna | 16 KB / 16 KB, MMU z FCSE (rozszerzenie szybkiego przełączania kontekstu) | 200 MIPS przy 180 MHz | |||
ARM922T | Jako ARM9TDMI, buforuje | 8 KB / 8 KB, MMU | ||||
ARM940T | Jako ARM9TDMI, buforuje | 4 KB / 4 KB, MPU | ||||
ARM9E | ARMv5TE | ARM946E-S | Kciuk, ulepszone instrukcje DSP, pamięci podręczne | Zmienne, ściśle sprzężone pamięci, MPU | ||
ARM966E-S | Kciuk, ulepszone instrukcje DSP | Bez pamięci podręcznej, TCM | ||||
ARM968E-S | Jako ARM966E-S | Bez pamięci podręcznej, TCM | ||||
ARMv5TEJ | ARM926EJ-S | Thumb, Jazelle DBX, ulepszone instrukcje DSP | Zmienna, TCM, MMU | 220 MIPS przy 200 MHz | ||
ARMv5TE | ARM996HS | Procesor bez zegara, jak ARM966E-S | Brak pamięci podręcznych, TCM, MPU | |||
ARM10E | ARMv5TE | ARM1020E | 6-etapowy potok, Thumb, ulepszone instrukcje DSP, (VFP) | 32 KB / 32 KB, MMU | ||
ARM1022E | Jako ARM1020E | 16 KB / 16 KB, MMU | ||||
ARMv5TEJ | ARM1026EJ-S | Thumb, Jazelle DBX, ulepszone instrukcje DSP, (VFP) | Zmienna, MMU lub MPU | |||
ARM11 | ARMv6 | ARM1136J(F)-S | 8-etapowy potok, SIMD , Thumb, Jazelle DBX, (VFP), ulepszone instrukcje DSP, niewyrównany dostęp do pamięci | Zmienna, MMU | 740 przy 532–665 MHz (i.MX31 SoC), 400–528 MHz | |
ARMv6T2 | ARM1156T2(F)-S | 9-etapowy potok, SIMD , Thumb-2, (VFP), ulepszone instrukcje DSP | Zmienna, MPU | |||
ARMv6Z | ARM1176JZ(F)-S | Jak ARM1136EJ(F)-S | Zmienna, MMU + TrustZone | 965 DMIPS przy 772 MHz, do 2600 DMIPS z czterema procesorami | ||
ARMv6K | ARM11MPCore | Jak ARM1136EJ(F)-S, 1–4-rdzeniowy SMP | Zmienna, MMU | |||
SecurCore | ARMv6-M | SC000 | Jako Cortex-M0 | 0,9 DMIPS/MHz | ||
ARMv4T | SC100 | Jako ARM7TDMI | ||||
ARMv7-M | SC300 | Jako Cortex-M3 | 1,25 DMIPS/MHz | |||
Cortex-M | ARMv6-M | Kora-M0 | Profil mikrokontrolera, większość Thumb + trochę Thumb-2, sprzętowa instrukcja mnożenia (opcjonalnie mała), opcjonalny zegar systemowy, opcjonalna pamięć pasmowa | Opcjonalna pamięć podręczna, bez TCM, bez MPU | 0,84 DMIPS/MHz | |
Kora-M0+ | Profil mikrokontrolera, większość Thumb + trochę Thumb-2, sprzętowa instrukcja mnożenia (opcjonalnie mała), opcjonalny zegar systemowy, opcjonalna pamięć pasmowa | Opcjonalna pamięć podręczna, bez TCM, opcjonalna jednostka MPU z 8 regionami | 0,93 DMIPS/MHz | |||
Kora-M1 | Profil mikrokontrolera, większość Thumb + trochę Thumb-2, sprzętowa instrukcja mnożenia (opcjonalnie mała), opcja systemu operacyjnego dodaje wskaźnik stosu SVC/banked, opcjonalny zegar systemowy, brak pamięci pasmowej | Opcjonalna pamięć podręczna, 0–1024 KB I-TCM, 0–1024 KB D-TCM, bez MPU | 136 DMIPS przy 170 MHz, (0,8 DMIPS/MHz zależne od FPGA) | |||
ARMv7-M | Kora-M3 | Profil mikrokontrolera, Thumb / Thumb-2, sprzętowe instrukcje mnożenia i dzielenia, opcjonalna pamięć bit-banding | Opcjonalna pamięć podręczna, bez TCM, opcjonalna jednostka MPU z 8 regionami | 1,25 DMIPS/MHz | ||
ARMv7E-M | Kora-M4 | FPU o pojedynczej precyzji VFPv4-SP , sprzętowe instrukcje mnożenia i dzielenia, opcjonalna pamięć pasmowa | Opcjonalna pamięć podręczna, bez TCM, opcjonalna jednostka MPU z 8 regionami | 1,25 DMIPS/MHz (1,27 z FPU) | ||
Kora-M7 | Profil mikrokontrolera, Thumb/Thumb-2/DSP/opcjonalnie VFPv5 pojedyncza i podwójna precyzja FPU , sprzętowe instrukcje mnożenia i dzielenia | 0-64 KB I-cache, 0-64 KB D-cache, 0-16 MB I-TCM, 0-16 MB D-TCM (wszystkie z opcjonalnym ECC), opcjonalnie MPU z 8 lub 16 regionami | 2,14 DMIPS/MHz | |||
Linia bazowa ARMv8-M | Kora-M23 | Profil mikrokontrolera, Thumb-1 (większość), Thumb-2 (niektóre), Divide, TrustZone | Opcjonalna pamięć podręczna, bez TCM, opcjonalna jednostka MPU z 16 regionami | 1,03 DMIPS/MHz | ||
Główna linia ARMv8-M | Kora-M33 | Profil mikrokontrolera, Thumb-1, Thumb-2, Saturated, DSP, Divide, FPU (SP), TrustZone, Koprocesor | Opcjonalna pamięć podręczna, bez TCM, opcjonalna jednostka MPU z 16 regionami | 1,50 DMIPS/MHz | ||
Cortex-M35P | Profil mikrokontrolera, Thumb-1, Thumb-2, Saturated, DSP, Divide, FPU (SP), TrustZone, Koprocesor | Wbudowana pamięć podręczna (z opcją 2–16 KB), I-cache, brak TCM, opcjonalnie MPU z 16 regionami | 1,50 DMIPS/MHz | |||
Główna linia ARMv8.1-M | Kora-M55 | 1,69 DMIPS/MHz | ||||
Główna linia ARMv8.1-M | Kora-M85 | 3,13 DMIPS/MHz | ||||
Cortex-R | ARMv7-R | Cortex-R4 | Profil czasu rzeczywistego, Thumb / Thumb-2 / DSP / opcjonalnie FPU VFPv3 , sprzętowe instrukcje mnożenia i opcjonalnego dzielenia, opcjonalna parzystość i ECC dla magistrali wewnętrznych / pamięci podręcznej / TCM, 8-etapowy potok dwurdzeniowy działający w trybie lockstep z logiką błędów | 0–64 KB / 0–64 KB, 0–2 z 0–8 MB TCM, opt. MPU z 8/12 regionami | 1,67 DMIPS/MHz | |
Cortex-R5 | Profil czasu rzeczywistego, Thumb / Thumb-2 / DSP / opcjonalnie VFPv3 FPU i precyzja, mnożenie sprzętowe i opcjonalne instrukcje dzielenia, opcjonalna parzystość i ECC dla magistrali wewnętrznych / pamięci podręcznej / TCM, 8-etapowy potok dwurdzeniowy działający w trybie lock-step z logika błędów / opcjonalnie jako 2 niezależne rdzenie, port peryferyjny o niskim opóźnieniu (LLPP), port koherencji akceleratora (ACP) | 0–64 KB / 0–64 KB, 0–2 z 0–8 MB TCM, opt. MPU z 12/16 regionami | 1,67 DMIPS/MHz | |||
Kora-R7 | Profil czasu rzeczywistego, Thumb / Thumb-2 / DSP / opcjonalnie VFPv3 FPU i precyzja, mnożenie sprzętowe i opcjonalne instrukcje dzielenia, opcjonalna parzystość i ECC dla magistrali wewnętrznych / pamięci podręcznej / TCM, 11-etapowy potok dwurdzeniowy działający w trybie lock-step z logika błędów / wykonywanie poza kolejnością / dynamiczna zmiana nazw rejestrów / opcjonalnie jako 2 niezależne rdzenie, port peryferyjny o niskim opóźnieniu (LLPP), ACP | 0–64 KB / 0–64 KB, ? 0–128 KB TCM, opt. MPU z 16 regionami | 2,50 DMIPS/MHz | |||
Cortex-R8 | DO USTALENIA | 0–64 KB / 0–64 KB L1, 0–1 / 0–1 MB TCM, opt MPU z 24 regionami | 2,50 DMIPS/MHz | |||
ARMv8-R | Cortex-R52 | DO USTALENIA | 0–32 KB / 0–32 KB L1, 0–1 / 0–1 MB TCM, opcja MPU z 24+24 regionami | 2,16 DMIPS/MHz | ||
Cortex-R82 | DO USTALENIA | 16–128 KB /16–64 KB L1, 64K–1MB L2, 0,16–1 / 0,16–1 MB TCM, opt MPU z 32+32 regionami |
3,41 DMIPS/MHz | |||
Cortex-A (32-bitowy) |
ARMv7-A | Kora-A5 | Profil aplikacji, ARM / Thumb / Thumb-2 / DSP / SIMD / Opcjonalnie VFPv4-D16 FPU / Opcjonalnie NEON / Jazelle RCT i DBX, 1–4 rdzenie / Opcjonalnie MPCore, jednostka sterująca snoop (SCU), ogólny kontroler przerwań (GIC) , port koherencji akceleratora (ACP) | 4-64 KB / 4-64 KB L1, MMU + TrustZone | 1,57 DMIPS/MHz na rdzeń | |
Kora-A7 | Profil aplikacji, ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / Jazelle RCT i DBX / Wirtualizacja sprzętowa, wykonywanie w kolejności, superskalarne, 1–4 rdzenie SMP, MPCore, Large Physical Address Extensions (LPAE), snoop jednostka sterująca (SCU), ogólny kontroler przerwań (GIC), architektura i zestaw funkcji są identyczne jak A15, 8–10-stopniowy potok, konstrukcja o niskim poborze mocy | 8-64 KB / 8-64 KB L1, 0-1 MB L2, MMU + TrustZone | 1,9 DMIPS/MHz na rdzeń | |||
Kora-A8 | Profil aplikacji, ARM / Thumb / Thumb-2 / VFPv3 FPU / NEON / Jazelle RCT i DAC, 13-stopniowy potok superskalarny | 16–32 KB / 16–32 KB L1, 0–1 MB L2 opt. ECC, MMU + TrustZone | Do 2000 (2,0 DMIPS/MHz przy prędkości od 600 MHz do ponad 1 GHz ) | |||
Kora-A9 | Profil aplikacji, ARM / Thumb / Thumb-2 / DSP / Opcjonalnie VFPv3 FPU / Opcjonalnie NEON / Jazelle RCT i DBX, poza kolejnością superskalarny problem spekulacyjny , 1–4 rdzenie SMP, MPCore, snoop control unit (SCU), ogólny kontroler przerwań (GIC), port koherencji akceleratora (ACP) | 16–64 KB / 16–64 KB L1, 0–8 MB L2 opt. parzystość, MMU + strefa zaufania | 2,5 DMIPS/MHz na rdzeń, 10 000 DMIPS przy 2 GHz na zoptymalizowanym pod kątem wydajności TSMC 40G (dwurdzeniowym) | |||
Kora-A12 | Profil aplikacji, ARM / Thumb-2 / DSP / VFPv4 FPU / NEON / Wirtualizacja sprzętowa, niesprawny spekulacyjny problem superskalarny , 1–4 rdzenie SMP, duże rozszerzenia adresów fizycznych (LPAE), jednostka sterująca snoop (SCU), ogólna kontroler przerwań (GIC), port koherencji akceleratora (ACP) | 32-64 KB | 3,0 DMIPS/MHz na rdzeń | |||
Kora-A15 | Profil aplikacji, ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / dzielenie liczb całkowitych / Fused MAC / Jazelle RCT / wirtualizacja sprzętowa, problem spekulatywny poza kolejnością superskalarny , 1–4 rdzenie SMP, MPCore, duży adres fizyczny Rozszerzenia (LPAE), jednostka sterująca Snoop (SCU), ogólny kontroler przerwań (GIC), ACP, potok 15-24 stopni | 32 KB z parzystością / 32 KB z ECC L1, 0–4 MB L2, L2 ma ECC, MMU + TrustZone | Co najmniej 3,5 DMIPS/MHz na rdzeń (do 4,01 DMIPS/MHz w zależności od implementacji) | |||
Kora-A17 | Profil aplikacji, ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / dzielenie liczb całkowitych / Fused MAC / Jazelle RCT / wirtualizacja sprzętowa, superskalarny problem spekulacyjny poza kolejnością, 1–4 rdzenie SMP , MPCore , duży adres fizyczny Rozszerzenia (LPAE), jednostka sterująca Snoop (SCU), ogólny kontroler przerwań (GIC), ACP | 32 KB L1, 256 KB – 8 MB L2 z opcjonalnym ECC | 2,8 DMIPS/MHz | |||
ARMv8-A | Kora-A32 | Profil aplikacji, AArch32, 1–4 rdzenie SMP, TrustZone, zaawansowany SIMD NEON, VFPv4, wirtualizacja sprzętu, podwójny problem, potok w kolejności | 8–64 KB z opcjonalną parzystością / 8–64 KB z opcjonalnym ECC L1 na rdzeń, 128 KB–1 MB L2 z opcjonalnym udostępnionym ECC | |||
Cortex-A (64-bitowy) |
ARMv8-A | Kora-A34 | Profil aplikacji, AArch64, 1–4 rdzenie SMP, TrustZone, zaawansowany SIMD NEON, VFPv4, wirtualizacja sprzętowa, dekodowanie o 2 szerokościach, potok w kolejności | 8-64 KB z parzystością / 8-64 KB z ECC L1 na rdzeń, 128 KB – 1 MB współdzielone L2, 40-bitowe adresy fizyczne | ||
Kora-A35 | Profil aplikacji, AArch32 i AArch64, 1–4 rdzenie SMP, TrustZone, zaawansowany SIMD NEON, VFPv4, wirtualizacja sprzętowa, dekodowanie o 2 szerokościach, potok w kolejności | 8-64 KB z parzystością / 8-64 KB z ECC L1 na rdzeń, 128 KB – 1 MB współdzielone L2, 40-bitowe adresy fizyczne | 1,78 DMIPS/MHz | |||
Kora-A53 | Profil aplikacji, AArch32 i AArch64, 1–4 rdzenie SMP, TrustZone, zaawansowany SIMD NEON, VFPv4, wirtualizacja sprzętowa, dekodowanie o 2 szerokościach, potok w kolejności | 8-64 KB z parzystością / 8-64 KB z ECC L1 na rdzeń, 128 KB – 2 MB L2 współdzielone, 40-bitowe adresy fizyczne | 2,3 DMIPS/MHz | |||
Kora-A57 | Profil aplikacji, AArch32 i AArch64, 1–4 rdzenie SMP, TrustZone, zaawansowany SIMD NEON, VFPv4, wirtualizacja sprzętu, superskalarne dekodowanie o 3 szerokościach, potok głęboko poza kolejnością | 48 KB z parzystością DED / 32 KB z ECC L1 na rdzeń; 512 KB – 2 MB L2 współdzielone z ECC; 44-bitowe adresy fizyczne | 4,1–4,8 DMIPS/MHz | |||
Kora-A72 | Profil aplikacji, AArch32 i AArch64, 1–4 rdzenie SMP, TrustZone, zaawansowany SIMD NEON, VFPv4, wirtualizacja sprzętu, superskalarny o 3 szerokościach, potok głęboko poza kolejnością | 48 KB z parzystością DED / 32 KB z ECC L1 na rdzeń; 512 KB – 2 MB L2 współdzielone z ECC; 44-bitowe adresy fizyczne | 6,3-7,3 DMIPS/MHz | |||
Kora-A73 | Profil aplikacji, AArch32 i AArch64, 1–4 rdzenie SMP, TrustZone, zaawansowany SIMD NEON, VFPv4, wirtualizacja sprzętu, superskalarny o szerokości 2, potok głęboko poza kolejnością | 64 KB / 32-64 KB L1 na rdzeń, 256 KB – 8 MB L2 współdzielone z opcjonalnym ECC, 44-bitowe adresy fizyczne | 7,4-8,5 DMIPS/MHz | |||
ARMv8.2-A | Kora-A55 | Profil aplikacji, AArch32 i AArch64, 1–8 rdzeni SMP, TrustZone, zaawansowany SIMD NEON, VFPv4, wirtualizacja sprzętowa, dekodowanie o 2 szerokościach, potok w kolejności | 16-64 KB / 16-64 KB L1, 256 KB L2 na rdzeń, 4 MB L3 współdzielone | 3 DMIPS/MHz | ||
Kora-A65 | Profil aplikacji, AArch64, 1–8 rdzeni SMP, TrustZone, zaawansowany SIMD NEON, VFPv4, wirtualizacja sprzętowa, superskalarne dekodowanie o szerokości 2, problem z 3 szerokościami, potok poza kolejnością, SMT | |||||
Cortex-A65AE | Jako ARM Cortex-A65 dodaje dwurdzeniowy blokadę do zastosowań związanych z bezpieczeństwem | 64/64 KB L1, 256 KB L2 na rdzeń, 4 MB L3 współdzielone | ||||
Kora-A75 | Profil aplikacji, AArch32 i AArch64, 1–8 rdzeni SMP, TrustZone, zaawansowany SIMD NEON, VFPv4, wirtualizacja sprzętu, superskalarne dekodowanie o 3 szerokościach, potok głęboko poza kolejnością | 64/64 KB L1, 512 KB L2 na rdzeń, 4 MB L3 współdzielone | 8,2-9,5 DMIPS/MHz | |||
Kora-A76 | Profil aplikacji, AArch32 (poziom nieuprzywilejowany lub tylko EL0) i AArch64, 1–4 rdzenie SMP, TrustZone, zaawansowany SIMD NEON, VFPv4, wirtualizacja sprzętowa, superskalarne dekodowanie o 4 szerokościach, problem 8-kierunkowy, 13-etapowy potok, głęboko poza rurociąg na zamówienie | 64/64 KB L1, 256-512 KB L2 na rdzeń, 512 KB-4 MB L3 współdzielone | 10,7-12,4 DMIPS/MHz | |||
Cortex-A76AE | Jako ARM Cortex-A76 dodaje dwurdzeniowy blokadę do zastosowań związanych z bezpieczeństwem | |||||
Kora-A77 | Profil aplikacji, AArch32 (poziom nieuprzywilejowany lub tylko EL0) i AArch64, 1–4 rdzenie SMP, TrustZone, zaawansowany SIMD NEON, VFPv4, wirtualizacja sprzętowa, dekodowanie superskalarne o 4 szerokościach, pobieranie instrukcji o 6 szerokościach, problem 12-kierunkowy, Rurociąg składający się z 13 etapów, rurociąg głęboko niesprawny | Pamięć podręczna L0 MOP 1,5K, 64/64 KB L1, 256-512 KB L2 na rdzeń, 512 KB-4 MB L3 współdzielona | 13-16 DMIPS/MHz | |||
Kora-A78 | ||||||
Cortex-A78AE | Jako ARM Cortex-A78 dodaje dwurdzeniowy blokadę do zastosowań związanych z bezpieczeństwem | |||||
Cortex-A78C | ||||||
ARMv9-A | Cortex-A510 | |||||
Cortex-A710 | ||||||
Cortex-A715 | ||||||
Cortex-X | ARMv8.2-A | Cortex-X1 | Dostosowany do wydajności wariant Cortex-A78 | |||
ARMv9-A | Cortex-X2 | |||||
Cortex-X3 | ||||||
Neoverse | ARMv8.2-A | Neoverse N1 | Profil aplikacji, AArch32 (poziom nieuprzywilejowany lub tylko EL0) i AArch64, 1–4 rdzenie SMP, TrustZone, zaawansowany SIMD NEON, VFPv4, wirtualizacja sprzętu, superskalarne dekodowanie o 4 szerokościach, 8-kierunkowa wysyłka/wydanie, 13-etapowy potok, głęboko uszkodzony rurociąg | 64/64 KB L1, 512-1024 KB L2 na rdzeń, 2-128 MB L3 współdzielone, 128 MB pamięci podręcznej na poziomie systemu | ||
Neoverse E1 | Profil aplikacji, AArch64, 1–8 rdzeni SMP, TrustZone, zaawansowany SIMD NEON, VFPv4, wirtualizacja sprzętu, superskalarne dekodowanie o szerokości 2, problem z 3 szerokościami, potok 10-etapowy, potok poza kolejnością, SMT | 32-64 KB / 32-64 KB L1, 256 KB L2 na rdzeń, 4 MB L3 współdzielone | ||||
ARMv8.4-A | Neoverse V1 | |||||
ARMv9-A | Neoverse N2 | |||||
Rodzina ARMów | Architektura ARM | rdzeń ARM | Funkcja | Pamięć podręczna (I/D), MMU | Typowy MIPS @ MHz | Odniesienie |
Zaprojektowane przez osoby trzecie
Rdzenie te implementują zestaw instrukcji ARM i zostały opracowane niezależnie przez firmy posiadające licencję architektoniczną ARM.
Produkt rodzinny | Architektura ARM | Edytor | Funkcja | Pamięć podręczna (I/D), MMU | Typowy MIPS @ MHz |
---|---|---|---|---|---|
StrongARM ( cyfrowy ) |
ARMv4 | SA-110 | Rurociąg 5-stopniowy | 16 KB / 16 KB, MMU |
100–233 MHz 1,0 DMIPS/MHz |
SA-1100 | pochodna SA-110 | 16 KB / 8 KB, MMU | |||
Faraday ( technologia Faradaya ) |
ARMv4 | FA510 | 6-stopniowy rurociąg | Do 32 KB / 32 KB pamięci podręcznej, MPU |
1,26 DMIPS/MHz 100–200 MHz |
FA526 | Do 32 KB / 32 KB pamięci podręcznej, MMU |
1,26 MIPS/MHz 166–300 MHz |
|||
FA626 | 8-stopniowy rurociąg | Pamięć podręczna 32 KB / 32 KB, MMU |
1,35 DMIPS/MHz 500 MHz |
||
ARMv5TE | FA606TE | Rurociąg 5-stopniowy | Bez pamięci podręcznej, bez MMU |
1,22 DMIPS/MHz 200 MHz |
|
FA626TE | 8-stopniowy rurociąg | Pamięć podręczna 32 KB / 32 KB, MMU |
1,43 MIPS/MHz 800 MHz |
||
FMP626TE | 8-etapowy rurociąg, SMP |
1,43 MIPS/MHz 500 MHz |
|||
FA726TE | 13-etapowy rurociąg, podwójny problem |
2,4 DMIPS/MHz 1000 MHz |
|||
XSskala ( Intel / Marvell ) |
ARMv5TE | XSskala | 7-etapowy potok, Thumb, ulepszone instrukcje DSP | 32 KB / 32 KB, MMU | 133–400 MHz |
Bulverde | Bezprzewodowy MMX , dodano bezprzewodowy SpeedStep | 32 KB / 32 KB, MMU | 312–624 MHz | ||
Monahany | Dodano bezprzewodowy MMX2 | 32 KB / 32 KB L1, opcjonalna pamięć podręczna L2 do 512 KB, MMU | Do 1,25 GHz | ||
Sheeva (Marvell) |
ARMv5 | Feroceon | Rurociąg 5–8 etapów, pojedynczy problem | 16 KB / 16 KB, MMU | 600–2000 MHz |
Jolteona | Rurociąg 5–8 etapów, podwójny problem | 32 KB / 32 KB, MMU | |||
PJ1 (irokez) | Potok 5-8 etapów, pojedyncze wydanie, Wireless MMX2 | 32 KB / 32 KB, MMU |
1,46 DMIPS/MHz 1,06 GHz |
||
ARMv6 / ARMv7-A | PJ4 | Potok 6–9 etapów, podwójny problem, Wireless MMX2, SMP | 32 KB / 32 KB, MMU |
2,41 DMIPS/MHz 1,6 GHz |
|
Snapdragon ( Qualcomm ) |
ARMv7-A | Skorpion | 1 lub 2 rdzenie. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv3 FPU / NEON (szerokość 128 bitów) | 256 KB L2 na rdzeń | 2,1 DMIPS/MHz na rdzeń |
Krait | 1, 2 lub 4 rdzenie. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON (szerokość 128 bitów) | 4 KB / 4 KB L0, 16 KB / 16 KB L1, 512 KB L2 na rdzeń | 3,3 DMIPS/MHz na rdzeń | ||
ARMv8-A | Kryo | 4 rdzenie. | ? | Do 2,2 GHz (6,3 DMIPS/MHz) |
|
Topór ( jabłko ) |
ARMv7-A | Szybki | 2 rdzenie. Ramię / kciuk / kciuk-2 / DSP / SIMD / VFPv4 FPU / NEON | L1: 32 KB / 32 KB, L2: 1 MB udostępnione | 3,5 DMIPS/MHz na rdzeń |
ARMv8-A | Cyklon | 2 rdzenie. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64 . Poza kolejnością, superskalarnie. |
L1: 64 KB / 64 KB, L2: 1 MB udostępniony SLC: 4 MB |
1,3 lub 1,4 GHz | |
ARMv8-A | Tajfun | 2 lub 3 rdzenie. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64 |
L1: 64 KB / 64 KB, L2: 1 MB lub 2 MB udostępnione SLC: 4 MB |
1,4 lub 1,5 GHz | |
ARMv8-A | Tornado | 2 rdzenie. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64 |
L1: 64 KB / 64 KB, L2: 2 MB udostępnione SLC: 4 MB lub 0 MB |
1,85 lub 2,26 GHz | |
ARMv8-A | Huragan i Zefir |
Huragan: 2 lub 3 rdzenie. AArch64, poza kolejnością, superskalarny, 6 dekodowań, 6 numerów, 9 szerokości Zephyr: 2 lub 3 rdzenie. AArch64, poza kolejnością, superskalarny. |
L1: 64 KB / 64 KB, L2: 3 MB lub 8 MB udostępnione L1: 32 KB / 32 KB. L2: brak SLC: 4 MB lub 0 MB |
2,34 lub 2,38 GHz 1,05 GHz |
|
ARMv8.2-A | Monsun i Mistral |
Monsun: 2 rdzenie. AArch64, poza kolejnością, superskalarny, 7-dekodowany, ?-wydanie, 11-szeroki Mistral: 4 rdzenie. AArch64, poza kolejnością, superskalarny. Na podstawie Swifta. |
L1I: 128 KB, L1D: 64 KB, L2: 8 MB udostępnione L1: 32 KB / 32 KB, L2: 1 MB udostępnione SLC: 4 MB |
2,39 GHz 1,70 GHz |
|
ARMv8.3-A | Wir i Burza |
Vortex: 2 lub 4 rdzenie. AArch64, poza kolejnością, superskalarny, 7-dekodowany, ?-wydanie, 11-szeroki Tempest: 4 rdzenie. AArch64, poza kolejnością, superskalarny, 3-dekodowanie. Na podstawie Swifta. |
L1: 128 KB / 128 KB, L2: 8 MB udostępnione L1: 32 KB / 32 KB, L2: 2 MB udostępnione SLC: 8 MB |
2,49 GHz 1,59 GHz |
|
ARMv8.4-A | Błyskawica i grzmot |
Błyskawica: 2 rdzenie. AArch64, poza kolejnością, superskalarny, 7-dekodowany, ?-problem, 11-szeroki Thunder: 4 rdzenie. AArch64, poza kolejnością, superskalarny. |
L1: 128 KB / 128 KB, L2: 8 MB udostępnione L1: 32 KB / 48 KB, L2: 4 MB udostępnione SLC: 16 MB |
2,66 GHz 1,73 GHz |
|
ARMv8.5-A | Burza ogniowa i lodowa |
Burza ognia: 2 rdzenie. AArch64, poza kolejnością, superskalarny, 8-dekodowany, ?-problem, 14-szeroki Icestorm: 4 rdzenie. AArch64, poza kolejnością, superskalarny, 4-dekodowanie, ?-problem, 7-szeroki. |
L1: 192 KB / 128 KB, L2: 8 MB udostępnione L1: 128 KB / 64 KB, L2: 4 MB udostępnione SLC: 16 MB |
3,0 GHz 1,82 GHz |
|
ARMv8.5-A | Lawina i zamieć |
Lawina: 2 rdzenie. AArch64, poza kolejnością, superskalarny, 8-dekodowany, ?-problem, 14-szeroki Blizzard: 4 rdzenie. AArch64, poza kolejnością, superskalarny, 4-dekodowanie, ?-problem, 8-szeroki. |
L1: 192 KB / 128 KB, L2: 12 MB udostępnione L1: 128 KB / 64 KB, L2: 4 MB udostępnione SLC: 32 MB |
2,93 lub 3,23 GHz 2,02 GHz |
|
ARMv8.5-A | Everest i Sawtooth |
Everest: 2 rdzenie. AArch64, poza kolejnością, superskalarny, 8-dekodowany, ?-wydanie, 14-szeroki Sawtooth: 4 rdzenie. AArch64, poza kolejnością, superskalarny, 4-dekodowanie, ?-problem, 8-szeroki. |
L1: 192 KB / 128 KB, L2: 16 MB udostępnione L1: 128 KB / 64 KB, L2: 4 MB udostępnione SLC: 24 MB |
3,46 GHz 2,02 GHz |
|
Mx ( jabłko ) |
ARMv8.5-A | Burza ogniowa i lodowa |
Firestorm: 4, 6, 8 lub 16 rdzeni. AArch64, poza kolejnością, superskalarny, 8-dekodowany, ?-problem, 14-szeroki Icestorm: 2 lub 4 rdzenie. AArch64, poza kolejnością, superskalarny, 4-dekodowanie, ?-problem, 7-szeroki. |
L1: 192 KB / 128 KB, L2: 12, 24 lub 48 MB udostępnione L1: 128 KB / 64 KB, L2: 4 lub 8 MB udostępnione SLC: 8, 24, 48 lub 96 MB |
3,2-3,23 GHz 2,06 GHz |
ARMv8.5-A | Lawina i zamieć |
Lawina: 4, 6 lub 8 rdzeni. AArch64, poza kolejnością, superskalarny, 8-dekodowany, ?-problem, 14-szeroki Blizzard: 4 rdzenie. AArch64, poza kolejnością, superskalarny, 4-dekodowanie, ?-problem, 8-szeroki. |
L1: 192 KB / 128 KB, L2: 16 lub 32 MB udostępnione L1: 128 KB / 64 KB, L2: 4 MB udostępnione SLC: 8, 24 lub 48 MB |
3,49 GHz 2,42 GHz |
|
X-Gene ( stosowane mikro ) |
ARMv8-A | X-Gene | 64-bitowy, czterordzeniowy, SMP, 64 rdzenie | Pamięć podręczna, MMU, wirtualizacja | 3 GHz (4,2 DMIPS/MHz na rdzeń) |
Denver ( Nvidia ) |
ARMv8-A | Denver |
2 rdzenie. AArch64 , 7-szeroki superskalarny , w kolejności, dynamiczna optymalizacja kodu, 128 MB pamięci podręcznej optymalizacji, Denver1: 28 nm, Denver2:16 nm |
128 KB pamięci podręcznej I / 64 KB pamięci podręcznej D | Do 2,5 GHz |
Karmel ( Nvidia ) |
ARMv8.2-A | Karmel |
2 rdzenie. AArch64 , 10-szeroki superskalarny , uporządkowany, dynamiczna optymalizacja kodu, ? Pamięć podręczna optymalizacji MB, bezpieczeństwo funkcjonalne, podwójne wykonanie, parzystość i ECC |
? KB I-pamięć podręczna /? KB pamięci podręcznej D | Aż do ? GHz |
ThunderX ( Cavium ) |
ARMv8-A | ThunderX | 64-bitowy, z dwoma modelami z 8–16 lub 24–48 rdzeniami (× 2 z dwoma chipami) | ? | Do 2,2 GHz |
K12 ( AMD ) |
ARMv8-A | K12 | ? | ? | ? |
Exynos ( Samsung ) |
ARMv8-A | M1 („Mangusta”) | 4 rdzenie. AArch64, 4-szeroki, quad-problem, superskalarny, niesprawny | 64 KB pamięci podręcznej I / 32 KB pamięci podręcznej D, L2: 16-kierunkowe współużytkowane 2 MB | 5,1 DMIPS/MHz (2,6 GHz) |
ARMv8-A | M2 („Mangusta”) | 4 rdzenie. AArch64, 4-szeroki, quad-problem, superskalarny, poza kolejnością | 64 KB pamięci podręcznej I / 32 KB pamięci podręcznej D, L2: 16-kierunkowe współużytkowane 2 MB | 2,3 GHz | |
ARMv8-A | M3 („Surykatka”) | 4 rdzenie, AArch64, 6 dekodowań, 6 wydań, 6 szerokości. superskalarny, poza kolejnością | 64 KB I-cache / 64 KB D-cache, L2: 8-kierunkowy prywatny 512 KB, L3: 16-kierunkowy współdzielony 4 MB | 2,7 GHz | |
ARMv8.2-A | M4 („Gepard”) | 2 rdzenie, AArch64, 6 dekodowań, 6 wydań, 6 szerokości. superskalarny, poza kolejnością | 64 KB pamięci podręcznej I / 64 KB pamięci podręcznej D, L2: 8-kierunkowy prywatny 1 MB, L3: 16-kierunkowy współdzielony 3 MB | 2,73 GHz | |
ARMv8.2-A | M5 („Lew”) | 2 rdzenie, AArch64, 6 dekodowań, 6 wydań, 6 szerokości. superskalarny, poza kolejnością | 64 KB pamięci podręcznej I / 64 KB pamięci podręcznej D, L2: 2 MB współdzielone na 8 sposobów, L3: 3 MB współużytkowane na 12 sposobów | 2,73 GHz |
Oś czasu
W poniższej tabeli wymieniono każdy rdzeń według roku, w którym został ogłoszony.
Rok | Klasyczne rdzenie | Rdzenie kory | Rdzenie Neoverse | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ARM1-6 | ARM7 | ARM8 | ARM9 | ARM10 | ARM11 | mikrokontroler | Czas rzeczywisty |
Aplikacja (32-bitowa) |
Aplikacja (64-bitowa) |
Aplikacja (64-bitowa) |
|
1985 | ARM1 | ||||||||||
1986 | ARM2 | ||||||||||
1989 | ARM3 | ||||||||||
1992 | ARM250 | ||||||||||
1993 |
ARM60 ARM610 |
ARM700 | |||||||||
1994 |
ARM710 ARM7DI ARM7TDMI |
||||||||||
1995 | ARM710a | ||||||||||
1996 | ARM810 | ||||||||||
1997 |
ARM710T ARM720T ARM740T |
||||||||||
1998 |
ARM9TDMI ARM940T |
||||||||||
1999 |
ARM9E-S ARM966E-S |
||||||||||
2000 |
ARM920T ARM922T ARM946E-S |
ARM1020T | |||||||||
2001 |
ARM7TDMI-S ARM7EJ-S |
ARM9EJ-S ARM926EJ-S |
ARM1020E ARM1022E |
||||||||
2002 | ARM1026EJ-S | ARM1136J(F)-S | |||||||||
2003 | ARM968E-S |
ARM1156T2(F)-S ARM1176JZ(F)-S |
|||||||||
2004 | Kora-M3 | ||||||||||
2005 | ARM11MPCore | Kora-A8 | |||||||||
2006 | ARM996HS | ||||||||||
2007 | Kora-M1 | Kora-A9 | |||||||||
2008 | |||||||||||
2009 | Kora-M0 | Kora-A5 | |||||||||
2010 | Rdzeń-M4(F) | Kora-A15 | |||||||||
2011 |
Cortex-R4 Cortex-R5 Cortex-R7 |
Kora-A7 | |||||||||
2012 | Kora-M0+ |
Kora-A53 Kora-A57 |
|||||||||
2013 | Kora-A12 | ||||||||||
2014 | Rdzeń-M7(F) | Kora-A17 | |||||||||
2015 |
Kora-A35 Kora-A72 |
||||||||||
2016 |
Kora-M23 Kora-M33(F) |
Cortex-R8 Cortex-R52 |
Kora-A32 | Kora-A73 | |||||||
2017 |
Kora-A55 Kora-A75 |
||||||||||
2018 | Cortex-M35P(F) |
Cortex-A65AE Cortex-A76 Cortex-A76AE |
|||||||||
2019 | Kora-A77 |
Neoverse E1 Neoverse N1 |
|||||||||
2020 | Cortex-M55(F) | Cortex-R82 |
Cortex-A78 Cortex-X1 |
Neoverse V1 | |||||||
2021 |
Cortex-A510 Cortex-A710 Cortex-X2 |
Neoverse N2 | |||||||||
2022 | Cortex-M85(F) |
Cortex-A715 Cortex-X3 |
Zobacz też
- Porównanie procesorów ARMv7-A
- Porównanie procesorów ARMv8-A
- Lista produktów wykorzystujących procesory ARM