ARM コア比較

文書の過去の版を表示しています。


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

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-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

情報源

共通