文書の過去の版を表示しています。
ARM コア比較
いわゆる組み込み向け以外が主用途であろうものも纏めて取り扱ってしまいます。分類確認とページ内リンクは目次を利用してください。
いつの間にか Cortex シリーズも種類が増えましたね。コプロセッサとしての組み合わせ可否などは省こうかと思っております。これ以上の詳細は ARM 社の資料をチェック。
数字の類いは、オプションユニットの実装状況や製造プロセス等によって大きく異なる場合があるので、参考程度に。
誤りの指摘、追加情報などあれば、情報ソースを添えて教えて頂けると助かります。
MCU
まいこん!
Von Neumann アーキテクチャ
のいまん!
| Cortex-M0 | Cortex-M0+ | Cortex-M1 | Cortex-M23 | |
|---|---|---|---|---|
| 発表年 | 2009 | 2012 | 2007 | 2016 |
| アーキテクチャ | ARMv6-M 32bit | ARMv6-M 32bit | ARMv6-M 32bit | ARMv8-M Baseline 32bit |
| 命令パイプライン | 3段 | 2段 | 3段 | 2段 |
| 性能 | 0.87DMIPS/MHz | 0.95DMIPS/MHz | 0.8DMIPS/MHz | 0.98DMIPS/MHz |
| 最大クロック周波数 | ? | 753MHz (TSMC 40G) 896MHz (TSMC 28HPM) | ? | 155MHz (TSMC 40LP) |
| 動的電力 (例) | 66uW/MHz (TSMC 180ULL) 12.5uW/MHz (TSMC 90LP) 5.3uW/MHz (TSMC 40LP) | 47.4uW/MHz (TSMC 180ULL) 9.4uW/MHz (TSMC 90LP) 3.8uW/MHz (TSMC 40LP) | - | 3.9uW/MHz (TSMC 40LP) 2.26uW/MHz (TSMC 28HPC+) |
| 32×32=32 MUL | あり | あり | あり | あり |
| 32×32=64 MUL | なし | なし | なし | なし |
| 32×32=32 DIV | なし | なし | なし | あり |
| 飽和演算 | なし | なし | なし | なし |
| FPU | なし | なし | なし | なし |
| DSP命令 (16×16=32 MAC, 32×16=32 MAC, 算術関数など) | なし | なし | なし | なし |
| SIMD | なし | なし | なし | なし |
| SysTick | オプション | オプション | オプション | オプション |
| MPU (メモリ保護) | なし | オプション | なし | オプション |
| キャッシュ | なし | なし | なし | なし |
| TCM | なし | なし | I/D: オプション | なし |
| 割り込み | NMI + 1〜32 物理割込 / 4優先度 | NMI + 1〜32 物理割込 / 4優先度 | NMI + 1〜32 物理割込 / 4優先度 | NMI + 1〜240 物理割込 / 8優先度 |
| バス | AHB Lite | AHB Lite | AHB Lite | AHB5 |
| その他 | FPGAへ実装 |
Harvard アーキテクチャ
| Cortex-M3 | Cortex-M4 | Cortex-M7 | Cortex-M33 | Cortex-M35P | Cortex-M55 | |
|---|---|---|---|---|---|---|
| 発表年 | 2004 | 2010 | 2014 | 2016 | 2018 | 2020 |
| アーキテクチャ | ARMv7-M 32bit | ARMv7E-M 32bit | ARMv7E-M 32bit | ARMv8-M Mainline 32bit | ARMv8-M Mainline 32bit | ARMv8.1-M 32bit |
| 命令パイプライン | 3段 | 3段 | 6段 2並列スーパースカラ、分岐予測 | 3段 | 3段 | 4段 (Helium導入時: 5段) インオーダ、2並列を限定的にサポート |
| 性能 | 1.25DMIPS/MHz | 1.25DMIPS/MHz | 2.14DMIPS/MHz | 1.50DMIPS/MHz | 1.50DMIPS/MHz | 1.6DMIPS/MHz |
| 最大クロック周波数 | 248MHz (TSMC 40LP) 891MHz (TSMC 28HPM) | 223MHz (TSMC 40LP) 822MHz (TSMC 28HPM) | 400MHz (TSMC 40LP) 1.1GHz (TSMC 28HPM) 1.4GHz (TSMC 16FFC) | 235MHz (TSMC 40LP) 614MHz (TSMC 28HT) 1028MHz (TSMC 16FFC) | ? | ? |
| 動的電力 (例) | 141uW/MHz (TSMC 180ULL) 31uW/MHz (TSMC 90LP) 11uW/MHz (TSMC 40LP) | 151uW/MHz (TSMC 180ULL) 32.8uW/MHz (TSMC 90LP) 12.3uW/MHz (TSMC 40LP) | 58.5uW/MHz (TSMC 40LP) 31.8uW/MHz (TSMC 28HT) 18.5uW/MHz (TSMC 16FFC) | 12.0uW/MHz (TSMC 40LP) 3.8uW/MHz (TSMC 28HPC+) 3.9uW/MHz (TSMC 16FFC) | 14.7uW/MHz (TSMC 40LP) 9.2uW/MHz (TSMC 28HPC+) 5.1uW/MHz (TSMC 16FFC) | ? |
| 32×32=32 MUL | あり | あり | あり | あり | あり | あり |
| 32×32=64 MUL | あり | あり | あり | あり | あり | あり |
| 32×32=32 DIV | あり | あり | あり | あり | あり | あり |
| 飽和演算 | 部分的に実装 | あり | あり | あり | あり | あり |
| FPU | なし | オプション (FP32) | VFPv5-D16-M (オプション, FP32, FP64) | オプション (FP32) | オプション (FP32) | FPv5 (オプション, FP16/32/64) |
| DSP命令 (16×16=32 MAC, 32×16=32 MAC, 算術関数など) | なし | あり | あり | オプション (1x MACユニット) | オプション | オプション (4x MACユニット) |
| SIMD | なし | あり | あり | オプション | オプション | Helium (オプション) |
| SysTick | あり | あり | あり | あり | あり | |
| MPU (メモリ保護) | オプション | オプション | オプション | オプション | オプション | オプション |
| キャッシュ | なし | なし | I: 0〜64kB D: 0〜64kB | なし | I: オプション D: なし | I: 0〜64kB D: 0〜64kB |
| TCM | なし | なし | I: 0〜16MB D: 0〜16MB | なし | なし | I: 0〜16MB D: 0〜16MB |
| 割り込み | NMI + 1〜240 物理割込 / 8〜256優先度 | NMI + 1〜240 物理割込 / 8〜256優先度 | NMI + 1〜240 物理割込 / 8〜256優先度 | NMI + 1〜480 物理割込 / 8〜256優先度 | NMI + 1〜480 物理割込 / 8〜256優先度 | NMI + 1〜480 物理割込 / 8〜256優先度 |
| バス | 3x 32b AHB Lite | 3x 32b AHB Lite | 1x 64b AXI4 2x 32b AHB 1× 64b ITCM 2x 32b DTCM | 2x AHB5 | 2x AHB5 | 1x 64b AXI5 1x 64b AHB5 1x 32b ITCM 4x 32b DTCM |
| その他 | Cortexシリーズで最初の製品 |
MPU
Cortex-A
アプリケーションプロセッサ
32bit
| Cortex-A5 | Cortex-A7 | Cortex-A8 | Cortex-A9 | Cortex-A12 | |
|---|---|---|---|---|---|
| 発表年 | 2009 | 2011 | 2005 | 2007 | 2013 |
| アーキテクチャ | ARMv7-A | ARMv7-A | ARMv7-A | ARMv7-A | ARMv7-A |
| big.LITTLE | - | LITTLE | - | コンパニオン | - |
| デコード幅 / 実行ポート数 | 1 / ? | 2 / 5 | 2 / 2 | 2 / 3 | 3 / ? |
| 命令パイプライン | 8段 インオーダ、動的分岐予測 | 8段 インオーダ、動的分岐予測 | 13段 インオーダ、動的分岐予測 | 8段 部分的アウトオブオーダ | 11段 (完全)アウトオブオーダ |
| コア構成 | 1〜4 | 1〜8 | 1 | 1〜4 | 1〜4 |
| コアあたりの性能 | 1.57DMIPS/MHz | 1.9DMIPS/MHz | 2.0DMIPS/MHz | 2.5DMIPS/MHz | 3.0DMIPS/MHz |
| 最大クロック周波数 | 500MHz (TSMC 40LP) 1GHz (TSMC 40LP/40LP-HS) | 1.2G~1.6GHz (28nm) | 450MHz〜1.1GHz (65nm) 600MHz (TSMC 65LP) 1GHz (TSMC 90nm HP) | >1GHz (TSMC 65nm) 1.4GHz (TSMC 40LP) 2GHz (TSMC 40G) 3.1GHz (TSMC 28HPM) | ? |
| 動的電力 (例) | 0.13mW/MHz (TSMC 40LP) 0.08mW/MHz (TSMC 40G) | <0.1mW/MHz? (TSMC 28LP) | <0.5mW/MHz? (TSMC 65LP) | <0.25mW/MHz? (TSMC 65LP) | ? |
| FPU | VFPv4 (オプション) 16x 64b レジスタ | VFPv4 (パイプライン化) 16x 64b レジスタ | VFPv3 32x 64b レジスタ | VFPv3 (オプション、パイプライン化) 16x or 32x 64b レジスタ | VFPv4 (パイプライン化) 32x 64b レジスタ |
| NEON (SIMD) | 64bit (オプション) | 64bit | 64bit (オプション、10段パイプライン) | 64bit (オプション) | 128bit (16段?パイプライン) |
| DSP命令 (MAC, 算術関数など) | オプション | あり | なし? | あり | ? |
| L1キャッシュ | I: 4k〜64kB/core D: 4k〜64kB/core | I: 8k〜64kB/core D: 8k〜64kB/core | I: 16k〜32kB/core D: 16k〜32kB/core | I: 16k〜64kB/core D: 16k〜64kB/core | I: 32k〜64kB/core D: 32kB/core |
| L2キャッシュ | 外部に設置可能 | 0〜1MB | 0〜1MB | 0〜4MB? (外部に設置可能) | 0〜8MB |
| L3キャッシュ | なし | なし | なし | なし | なし |
| 仮想化 | なし | あり | なし | なし | あり |
| バス | 2x 64b AXI3 ACP (マルチプロセッサのみ) | 1x 128b AXI4+ACE | 1x 64b or 128b AXI3 | 1〜2x 64b AXI3 1x 64b ACP (オプション) | 1x 128b AXI4 1x 128b ACP (オプション) |
| その他 | 採用例: Qualcomm Snapdragon S4 Play/200 | 部分的なスーパースカラ 対応するbigコア: A15 採用例: Qualcomm Snapdragon 200/400, Samsung Exynos 5, Broadcom BCM2836 (RPi2) | 採用例: Apple A4、Samsung S5PC100 | 採用例: Apple A5/A5X, NVIDIA Tegra2/3/4i, Samsung Exynos 4, Sony PS Vita, Altera Arria 10/Arria V/Cyclone V SoC FPGA, Xilinx Zynq | Rev. 2 から A17 のバリエーションとして統合 A9の後継、性能向上の大部分は分岐予測の強化による コードネーム: Owl |
| Cortex-A15 | Cortex-A17 | Cortex-A32 | |
|---|---|---|---|
| 発表年 | 2010 | 2014 | 2016 |
| アーキテクチャ | ARMv7-A | ARMv7-A | ARMv8.0-A |
| big.LITTLE | big | big | LITTLE? |
| デコード幅 / 実行ポート数 | 3 / 8 | 2 / ? | 2 / ? |
| 命令パイプライン | 15段 (Int) / 17〜25段 (FP) “高度に”アウトオブオーダ | 11段以上 (完全)アウトオブオーダ、動的/静的分岐予測 | 8段 インオーダ |
| コア構成 | 2〜8/チップ (〜4/クラスタ) | 1〜4 | 1〜4 |
| コアあたりの性能 | 3.5〜4.0DMIPS/MHz | 4.0DMIPS/MHz | 2.0〜2.1DMIPS/MHz |
| 最大クロック周波数 | 2.5GHz (TSMC 28HPM) | ?GHz (TSMC 28HPM) | >1GHz (TSMC 28HPC, 性能) |
| 動的電力 (例) | ? | ? | 0.04mW/MHz (TSMC 28HPC, 最小) 0.07mW/MHz (TSMC 28HPC, 性能) |
| FPU | VFPv4 (パイプライン化) 32x 64b レジスタ | VFPv4 (パイプライン化) 32x 64b レジスタ | VFPv4 (FP32, FP64) |
| NEON (SIMD) | 128bit | v2, 128bit | 128bit? |
| DSP命令 (MAC, 算術関数など) | あり | あり | あり |
| L1キャッシュ | I: 32kB/core D: 32kB/core | I: 32k〜64kB/core D: 32kB/core | I: 8k〜64kB/core D: 8k〜64kB/core |
| L2キャッシュ | 512k〜8MB/チップ (512k〜4MB/クラスタ) | 256k〜8MB | 128k〜1MB |
| L3キャッシュ | なし | なし | なし |
| 仮想化 | あり | あり | あり |
| バス | 1x 64b or 128b AXI4+ACE 1x 64b or 128b ACP as AXI3 (オプション) | 1x 64b or 128b AXI4+ACE 1x 64b or 128b ACP as AXI3 (オプション) | 1x 128b AXI4 or ACE or AMBA5 CHI 1x 128b ACP as AXI4 (オプション) |
| その他 | 対応するLITTLEコア: A7 採用例: NVIDIA Tegra4/K1, Samsung Exynos 5 | 対応するLITTLEコア: A7 採用例: | 部分的なスーパースカラ 対応するbigコア: ? |
64bit
The Armv8-A architecture does not define a separate version number for its Advanced SIMD and floating-point support in the AArch64 execution state because the instructions are always implicitly present.
| Cortex-A34 | Cortex-A35 | Cortex-A53 | Cortex-A55 | Cortex-A57 | |
|---|---|---|---|---|---|
| 発表年 | 2016 | 2015 | 2012 | 2017 | 2012 |
| アーキテクチャ | ARMv8.0-A (64bitのみ) | ARMv8.0-A | ARMv8.0-A | ARMv8.2-A +v8.3/v8.4のごく一部の命令 | ARMv8.0-A |
| big.LITTLE | LITTLE | LITTLE | big/LITTLE | LITTLE (DynamIQ) | big |
| デコード幅 / 実行ポート数 | 2 / ? | 2 / ? | 2 / 2 | 2 / 2 | 3 / 3 |
| 命令パイプライン | 8段 インオーダ | 8段 インオーダ、直接/間接分岐予測 | 8段 インオーダ | 8段 インオーダ、直接/間接分岐予測 (0サイクル) | 15段 アウトオブオーダ |
| コア構成 | 1〜4 | 1〜4 | 1〜4 | 1〜8/クラスタ | 1〜4/クラスタ |
| コアあたりの性能 | ?DMIPS/MHz | 1.78DMIPS/MHz | 2.24DMIPS/MHz | 2.65DMIPS/MHz | 4.6DMIPS/MHz |
| 最大クロック周波数 | ?GHz (?nm) | >1.5GHz (TSMC 28HPM) >2.0GHz (TSMC 10FF) | >1.7GHz (28nm) >2.6GHz (16nm) >2.3GHz (TSMC 12nm) | 2.0〜2.6GHz (10nm) | |
| 動的電力 (例) | ? | 0.06mW/MHz (?nm, 最小) 0.09mW/MHz (?nm, 標準的) | ? | ? | |
| FPU | VFPv4 (パイプライン化?) ?x ?b レジスタ | VFPv4 (FP32, FP64) ?x ?b レジスタ | VFPv4 (パイプライン化?) ?x ?b レジスタ | VFPv? (FP32、FP64) ?x ?b レジスタ | VFPv4 (FP32、FP64) ?x ?b レジスタ |
| NEON (SIMD) | 128bit? | 128bit? | 128bit? | ? | ? |
| DSP命令 (MAC, 算術関数など) | あり | あり | あり | あり | あり |
| L1キャッシュ | I: 8k〜64kB/core D: 8k〜64kB/core | I: 8k〜64kB/core D: 8k〜64kB/core | I: 8k〜64kB/core D: 8k〜64kB/core | I: 16k〜64kB/core D: 16k〜64kB/core | I: 48kB/core D: 32kB/core |
| L2キャッシュ | 128k〜1MB | 0〜1MB | 0〜2MB | 0〜256KB | 512kB〜2MB/クラスタ |
| L3キャッシュ | なし | なし | なし | 0〜4MB | なし |
| 仮想化 | あり | あり | あり | あり? | あり |
| バス | 1x 128b AXI4 or ACE or AMBA5 CHI 1x 128b ACP as AXI4 (オプション) | 1x 128b AXI4 or ACE or AMBA5 CHI 1x 128b ACP as AXI4 (オプション) | 1x 128b AXI4 or ACE or AMBA5 CHI 1x 128b ACP as AXI4 (オプション) | ACE or CHI ACP (オプション) | 1x 128b? AXI4 or ACE or AMBA5 CHI 1x 128b ACP as AXI4 (オプション) |
| その他 | 部分的なスーパースカラ 対応するbigコア: ? 採用例: | 部分的なスーパースカラ 対応するbigコア: ? 採用例: MediaTek Helio X30 | 対応するbigコア: A57 コードネーム: Apollo 採用例: Qualcomm Snapdragon 4xx/6xx/8xx, Broadcom BCM2837 (RPi3), MediaTek Helio X/G/P/Aシリーズ, Samsung Exynos 7, HiSilicon Kirin 6xx/9xx, Intel Agilex/Stratix 10 SoC FPGA, Xilinx Zynq UltraScale+ MPSoC/RFSoC | 対応するbigコア: A7xシリーズ コードネーム: Ananke 採用例: MediaTek Dimensity 1000, Samsung Exynos 9, Huawei Kirin 980 | 対応するLITTLEコア: A53 コードネーム: Atlas 採用例: Qualcomm Snapdragon 810, NVIDIA Tegra X1, Samsung Exynos Octa 5433, AMD Opteron A1100 |
| Cortex-A65 | Cortex-A72 | Cortex-A73 | Cortex-A75 | Cortex-A76 | |
|---|---|---|---|---|---|
| 発表年 | 2018 (AE) | 2015 | |||
| アーキテクチャ | ARMv8.2-A +ごく一部のv8.3/v8.4命令 (64bitのみ) | ARMv8.0-A | |||
| big.LITTLE | (DynamIQ) | big | |||
| デコード幅 / 実行ポート数 | 2 / 2 | 3 / 8 | |||
| 命令パイプライン | ?段 アウトオブオーダ | 15段+ アウトオブオーダ、動的分岐予測 | |||
| コア構成 | 1〜8/クラスタ | 1〜4/クラスタ | |||
| コアあたりの性能 | |||||
| 最大クロック周波数 | 3GHz (TSMC 16FF+) 4GHz (TSMC N7) | ||||
| 動的電力 (例) | |||||
| FPU | FP32, FP64, オプション | VFP4 (FP32, FP64) | |||
| NEON (SIMD) | あり | あり | |||
| DSP命令 (MAC, 算術関数など) | あり | あり | |||
| L1キャッシュ | I: 32k〜64kB/core D: 32k〜64kB/core | I: 48kB/core D: 32kB/core | |||
| L2キャッシュ | 0〜256kB/core | 0?〜4MB/クラスタ | |||
| L3キャッシュ | なし | なし | |||
| 仮想化 | ? | あり | |||
| バス | ACE or CHI ACP (オプション) | 1x 128b AMBA4 ACE or AMBA5 CHI 1x ACP as AXI4 (オプション) | |||
| その他 | 2スレッド/core 車載向けバージョン (AE) あり | コードネーム: Maya 採用例: Qualcomm Snapdragon 65x, Broadcom BCM2711 (RPi4) |
Cortex-X
Cortex-X Custom (CXC) program
| Cortex-X1 | |||||
|---|---|---|---|---|---|
| 発表年 | 2020 | ||||
| アーキテクチャ | ARMv8.2-A | ||||
| big.LITTLE | DynamIQ (high perf.) | ||||
| デコード幅 / 実行ポート数 | 5 / 15 | ||||
| 命令パイプライン | 13 アウトオブオーダ | ||||
| コア構成 | 1〜4 | ||||
| コアあたりの性能 | |||||
| 最大クロック周波数 | |||||
| 動的電力 (例) | |||||
| FPU | |||||
| NEON (SIMD) | 4x128b | ||||
| DSP命令 (MAC, 算術関数など) | |||||
| L1キャッシュ | I: 64kB/core D: 64kB/core | ||||
| L2キャッシュ | 512kB~1MB | ||||
| L3キャッシュ | 512kB~8MB | ||||
| 仮想化 | |||||
| バス | |||||
| その他 | 性能>効率 Based on A78 コードネーム: Hera 対応する Mid コア: A78 対応する Little コア: A55 採用例: Qualcomm Snapdragon 875 |
Cortex-R
リアルタイムプロセッサ
32bit
| Cortex-R4 | ||||||
|---|---|---|---|---|---|---|
| 発表年 | 2011 | |||||
| アーキテクチャ | ||||||
| 命令パイプライン | ||||||
| 性能 | ||||||
| 最大クロック周波数 | ||||||
| 動的電力 (例) | ||||||
| 32×32=32 MUL | ||||||
| 32×32=64 MUL | ||||||
| 32×32=32 DIV | ||||||
| 飽和演算 | ||||||
| FP32 | ||||||
| FP64 | ||||||
| FP16 | ||||||
| DSP命令 (16×16=32 MAC, 32×16=32 MAC, SIMD, 算術関数など) | ||||||
| SysTick | ||||||
| MPU (メモリ保護) | ||||||
| キャッシュ | ||||||
| TCM | ||||||
| 割り込み | ||||||
| バス | ||||||
| その他 |
64bit
NPU
Neural Processing Unit
Ethos-U (microNPU)
| Ethos-U55 | |||
|---|---|---|---|
| 発表年 | 2020 | ||
| 搭載演算エンジン | 32~256ユニットのMAC | ||
| 搭載SRAM | ? (圧縮して格納) | ||
| 対応コア | Cortex-M4 Cortex-M7 Cortex-M33 Cortex-M55 | ||
| その他 | あり |
Ethos-N
その他の ARM ベースプロセッサ
アプリケーションプロセッサ
| 32bit | 64bit | |
|---|---|---|
| ARMv7-A | Apple A6, A6X, S1, S1P, S2, S3, T1 Qualcomm Snapdragon S1, S2, S3, S4 Plus, S4 Pro, 600, 800 | - |
| ARMv8.0-A | Apple A7, A8, A8X, A9, A9X Qualcomm Kyro, Kyro 2 NVIDIA Denver (K1), Denver 2 (X2) Samsung M1, M2 |
|
| ARMv8.1-A | Apple A10, A10X, T2? Qualcomm Falkor |
|
| ARMv8.2-A | Apple A11 Qualcomm Kyro 3, Kyro 4 NVIDIA Carmel (Xavier) Samsung M3, M4 Fujitsu A64FX |
|
| ARMv8.3-A | Apple A12, A12X, A12Z, S4 | |
| ARMv8.4-A | Apple A13, A14, A14X | |
| ARMv8.5-A | ||
| ARMv8.6-A |