両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン |
opengl:cpucore [2014/04/14 21:20] – [Group 2] oga | opengl:cpucore [2014/04/15 09:34] – [ARM core] oga |
---|
| |
^ design ^ core ^ DMIPS/MHz ^ ISA ^ core ^ L0 ^ L1 ^ L2 ^ L3 ^ pipe-depth ^ order (int) ^order(fp/simd)^ dec/issue ^ exec ^ FPU ^ SIMD ^ SIMD width ^ sp fp/clock ^ dp/clock ^ | ^ design ^ core ^ DMIPS/MHz ^ ISA ^ core ^ L0 ^ L1 ^ L2 ^ L3 ^ pipe-depth ^ order (int) ^order(fp/simd)^ dec/issue ^ exec ^ FPU ^ SIMD ^ SIMD width ^ sp fp/clock ^ dp/clock ^ |
| ARM | ARM9 (ARM926) | 1.1 | ARMv5TE | 1 | | L1 | L2 | | 5 stage | in-order | | single | 1 | | | | 0 | 0 | | | ARM | ARM9 (ARM926) | 1.1 | ARMv5TE | 1 | | L1 | L2 | | 5 stage | in-order | | single | 1 | (VFP9-S) | -- | | 0 | 0 | |
| ARM | ARM11 (ARM1176) | 1.25 | ARMv6 | 1-4 | | L1 | L2 | | 8 stage | in-order | | single | 1 | (VFPv2) | | | 1 | 1 | | | ARM | ARM11 (ARM1176) | 1.25 | ARMv6 | 1-4 | | L1 | L2 | | 8 stage | in-order | | single | 1 | (VFPv2) | (NEON) | | 1 | 1 | |
^ design ^ core ^ DMIPS/MHz ^ ISA ^ core ^ L0 ^ L1 ^ L2 ^ L3 ^ pipe-depth ^ order (int) ^order(fp/simd)^ dec/issue ^ exec ^ FPU ^ SIMD ^ SIMD width ^ sp fp/clock ^ dp/clock ^ | ^ design ^ core ^ DMIPS/MHz ^ ISA ^ core ^ L0 ^ L1 ^ L2 ^ L3 ^ pipe-depth ^ order (int) ^order(fp/simd)^ dec/issue ^ exec ^ FPU ^ SIMD ^ SIMD width ^ sp fp/clock ^ dp/clock ^ |
| ARM | Cortex-A8 | 2.0 | ARMv7A | 1 | |32K/32K| 0-1M | | 13 stage | in-order | in-order | 2 | 2 | VFPv3-D32 (*1) | NEON | 64bit | 4 | 0.1 | | | ARM | Cortex-A8 | 2.0 | ARMv7A | 1 | |32K/32K| 0-1M | | 13 stage | in-order | in-order | 2 | 2 | VFPv3 (*1) | NEON | 64bit | 4 | 0.1 | |
| ARM | Cortex-A9 | 2.5 | ARMv7A | 1-4 | |16-64K |0.5-8M| | 8 stage | out-of-order | in-order | 2/4? | ? | (VFPv3) | (NEON) | 64bit | 4 | 1 | | | ARM | Cortex-A9 | 2.5 | ARMv7A | 1-4 | |16-64K |0.5-8M| | 8 stage | out-of-order | in-order | 2/4? | ? | (VFPv3) | (NEON) | 64bit | 4 | 1 | |
| ARM | Cortex-A9 R4 | ? | ARMv7A | 1-4 | |16-64K |0.5-8M| | 8 stage | out-of-order | in-order | 2/4? | ? | (VFPv3) | (NEON) | 64bit | 4 | 1 | | | ARM | Cortex-A9 R4 | ? | ARMv7A | 1-4 | |16-64K |0.5-8M| | 8 stage | out-of-order | in-order | 2/4? | ? | (VFPv3) | (NEON) | 64bit | 4 | 1 | |
| ARM | Cortex-A5 | 1.6 | ARMv7A | 1-4 | | L1 | L2 | | 8 stage | in-order | | single | 1 | (VFPv4) | (NEON) | 32bit | 2 | | | | ARM | Cortex-A5 | 1.6 | ARMv7A | 1-4 | | L1 | L2 | | 8 stage | in-order | | single | 1 | (VFPv4) | (NEON) | 32bit | 2 | | |
^ design ^ core ^ DMIPS/MHz ^ ISA ^ core ^ L0 ^ L1 ^ L2 ^ L3 ^ pipe-depth ^ order (int) ^order(fp/simd)^ dec/issue ^ exec ^ FPU ^ SIMD ^ SIMD width ^ sp fp/clock ^ dp/clock ^ | ^ design ^ core ^ DMIPS/MHz ^ ISA ^ core ^ L0 ^ L1 ^ L2 ^ L3 ^ pipe-depth ^ order (int) ^order(fp/simd)^ dec/issue ^ exec ^ FPU ^ SIMD ^ SIMD width ^ sp fp/clock ^ dp/clock ^ |
| ARM | Cortex-A15 | 3.5 | ARMv7A | 1-4X | | L1 | L2 | | 15 stage | out-of-order | out-of-order | 3/8mop | 8mop | VFPv4-D32 | NEON | 64bit x2 | 8 | 1.4 | | | ARM | Cortex-A15 | 3.5 | ARMv7A | 1-4X | | L1 | L2 | | 15 stage | out-of-order | out-of-order | 3/8mop | 8mop | VFPv4 | NEON | 64bit x2 | 8 | 1.4 | |
| ARM | Cortex-A7 | 1.9 | ARMv7A | 1-4X | | L1 | L2 | | 8 stage | in-order | in-order | 2 | 2 | (VFPv4) | (NEON) | 32bit | 2 | 1 | | | ARM | Cortex-A7 | 1.9 | ARMv7A | 1-4X | | L1 | L2 | | 8 stage | in-order | in-order | 2 | 2 | VFPv4 | NEON | 32bit | 2 | 1 | |
| ARM | Cortex-A12 | | ARMv7A | | | | | | | | | | | | | | | | | | ARM | Cortex-A12 | | ARMv7A | | | | | | 11 stage+ | out-of-order | out-of-order | 3? | | VFPv4 | NEON | | | | |
| ARM | Cortex-A17 | | ARMv7A | | | | | | | | | | | | | | | | | | ARM | Cortex-A17 | | ARMv7A | | | | | | | | | | | VFPv4 | NEON | | | | |
| ARM | Cortex-A53 | 2.3 | ARMv8A | 1-4X | |8-64K |0.5-2M| | | in-order | | 2/? | 5 | AArch64 NEON | A64 NEON | | | | | | ARM | Cortex-A53 | 2.3 | ARMv8A | 1-4X | |8-64K |0.5-2M| | | in-order | | 2/? | 5 | AArch64 NEON | A64 NEON | | | | |
| ARM | Cortex-A57 | ? | ARMv8A | 1-4X | |48K/32K|0.5-2M| | | | | 3?/? | 8 | AArch64 NEON | A64 NEON | | | | | | ARM | Cortex-A57 | ? | ARMv8A | 1-4X | |48K/32K|0.5-2M| | | | | 3?/? | 8 | AArch64 NEON | A64 NEON | | | | |
^ design ^ core ^ DMIPS/MHz ^ ISA ^ core ^ L0 ^ L1 ^ L2 ^ L3 ^ pipe-depth ^ order (int) ^order(fp/simd)^ dec/issue ^ exec ^ FPU ^ SIMD ^ SIMD width ^ sp fp/clock ^ dp/clock ^ | ^ design ^ core ^ DMIPS/MHz ^ ISA ^ core ^ L0 ^ L1 ^ L2 ^ L3 ^ pipe-depth ^ order (int) ^order(fp/simd)^ dec/issue ^ exec ^ FPU ^ SIMD ^ SIMD width ^ sp fp/clock ^ dp/clock ^ |
| Qualcomm | Scorpion | 2.1 | ARMv7A | 1-2 | | L1 | L2 | | | out-of-order | in-order | 2/? | ? | VFPv3-D32 | NEON | 128bit | 8 | 1 | | | Qualcomm | Scorpion | 2.1 | ARMv7A | 1-2 | | L1 | L2 | | | out-of-order | in-order | 2/? | ? | VFPv3 | NEON | 128bit | 8 | 1 | |
| Qualcomm | Krait | 3.3 | ARMv7A | 1-4 |4K/4K|16K/16K| L2 | | | out-of-order | out-of-order | 3/? | ? | VFPv4-D32 | NEON | 128bit | 8 | 2 | | | Qualcomm | Krait | 3.3 | ARMv7A | 1-4 |4K/4K|16K/16K| L2 | | | out-of-order | out-of-order | 3/? | ? | VFPv4 | NEON | 128bit | 8 | 2 | |
| Qualcomm | Krait 200 | ? | ARMv7A | ? |4K/4K| L1 | L2 | | | out-of-order | out-of-order | 3/? | ? | VFPv4-D32 | NEON | 128bit | 8 | 2 | | | Qualcomm | Krait 200 | ? | ARMv7A | ? |4K/4K| L1 | L2 | | | out-of-order | out-of-order | 3/? | ? | VFPv4 | NEON | 128bit | 8 | 2 | |
| Qualcomm | Krait 300 | ? | ARMv7A | ? |4K/4K| L1 | L2 | | | out-of-order | out-of-order | 3/? | ? | VFPv4-D32 | NEON | 128bit | 8 | 2 | | | Qualcomm | Krait 300 | ? | ARMv7A | ? |4K/4K| L1 | L2 | | | out-of-order | out-of-order | 3/? | ? | VFPv4 | NEON | 128bit | 8 | 2 | |
| Qualcomm | Krait 400 | ? | ARMv7A | ? |4K/4K| L1 | L2 | | | out-of-order | out-of-order | 3/? | ? | VFPv4-D32 | NEON | 128bit | 8 | 2 | | | Qualcomm | Krait 400 | ? | ARMv7A | ? |4K/4K| L1 | L2 | | | out-of-order | out-of-order | 3/? | ? | VFPv4 | NEON | 128bit | 8 | 2 | |
^ design ^ core ^ DMIPS/MHz ^ ISA ^ core ^ L0 ^ L1 ^ L2 ^ L3 ^ pipe-depth ^ order (int) ^order(fp/simd)^ dec/issue ^ exec ^ FPU ^ SIMD ^ SIMD width ^ sp fp/clock ^ dp/clock ^ | ^ design ^ core ^ DMIPS/MHz ^ ISA ^ core ^ L0 ^ L1 ^ L2 ^ L3 ^ pipe-depth ^ order (int) ^order(fp/simd)^ dec/issue ^ exec ^ FPU ^ SIMD ^ SIMD width ^ sp fp/clock ^ dp/clock ^ |
| Apple | Swift | ? | ARMv7A | ? | | L1 | L2 | | | out-of-order | out-of-order | 3?/? | ? | VFPv4-D32 | NEON | 128bit | 8 | 1 | | | Apple | Swift | ? | ARMv7A | ? | | L1 | L2 | | | out-of-order | out-of-order | 3?/? | ? | VFPv4 | NEON | 128bit | 8 | 1 | |
| Apple | Cyclone | ? | ARMv8A | ? | | | | | | out-of-order | out-of-order | | | AArch64 NEON | A64 NEON | 128bit x2 | 16 | 8 | | | Apple | Cyclone | ? | ARMv8A | ? | | | | | | out-of-order | out-of-order | | | AArch64 NEON | A64 NEON | 128bit x2 | 16 | 8 | |
^ design ^ core ^ DMIPS/MHz ^ ISA ^ core ^ L0 ^ L1 ^ L2 ^ L3 ^ pipe-depth ^ order (int) ^order(fp/simd)^ dec/issue ^ exec ^ FPU ^ SIMD ^ SIMD width ^ sp fp/clock ^ dp/clock ^ | ^ design ^ core ^ DMIPS/MHz ^ ISA ^ core ^ L0 ^ L1 ^ L2 ^ L3 ^ pipe-depth ^ order (int) ^order(fp/simd)^ dec/issue ^ exec ^ FPU ^ SIMD ^ SIMD width ^ sp fp/clock ^ dp/clock ^ |
| |
Multi Core 対応で、Tegra 2 以降急激に採用 SoC が増えました。 | Multi Core 対応で、Tegra 2 以降急激に採用 SoC が増えました。 |
| Smartphone から Tablet まで非常に幅広く用いられています。 |
| |
VFP も pipeline 化されており、Cortex-A8 のような欠点がありません。 | VFP も pipeline 化されており、Cortex-A8 のような欠点がありません。 |
性能的にはすべての面で Cortex-A8 を上回ります。 | 性能的にはすべての面で Cortex-A8 を上回ります。 |
| |
ただし NEON が Option 扱いとなっており、SoC の構成によっては NEON 命令が使えないものがあります。 | ただし NEON が Option 扱いとなっており、SoC の構成によっては NEON 命令が使えないものがあります。 |
NEON 無しの Cortex-A9 で一番メジャーなのが Tegra 2 です。 | NEON 無しの Cortex-A9 で一番有名なのが Tegra 2 です。 |
| |
Cortex-A8 の VFP が遅いので、浮動小数点演算はすべて NEON を使いたいが、Tegra 2 のために NEON を使えないというジレンマがありました。 | Cortex-A8 の VFP が遅いので、浮動小数点演算はすべて NEON を使いたいが、Tegra 2 のために NEON を使えないというジレンマがありました。 |
NEON は 128bit ALU で、ピーク性能では Cortex-A9 の 2倍になります。 | NEON は 128bit ALU で、ピーク性能では Cortex-A9 の 2倍になります。 |
ただし pipeline が深く、高クロック動作する反面、実行効率がわずかに劣ります。 | ただし pipeline が深く、高クロック動作する反面、実行効率がわずかに劣ります。 |
| |
| 2010~2011年の Smartphone の大半が Scorpiopn 搭載 Snapdragon で占められていました。 |
| |
| |
2013-2014 現在のハイエンド Smartphone 向け CPU はほとんど全部 Krait が用いられており、 | 2013-2014 現在のハイエンド Smartphone 向け CPU はほとんど全部 Krait が用いられており、 |
Group 2 で最もメジャーな CPU core となっています。 | Group 2 で最もメジャーな CPU core となっています。 |
| |
| 反面、64bit 化で遅れており Qualcomm 独自の 64bit core はまだ発表されていません。 |
| |
| |
| |
=== Cyclone === | === Cyclone === |
| |
Apple の独自 CPU core で、初の ARM 64bit (ARMv8, AArch64) 対応 CPU。 | Apple の独自 CPU core の 2世代目です。 |
64bit 対応だけでなく性能的にも大きく向上しています。 | 市場に投入された初の ARM 64bit (ARMv8, AArch64) 対応 CPU core でもあります。 |
| 64bit 化だけでなく性能的にも大きく向上しています。 |
| |
Swift 同様、低い動作クロックながら高い IPC が特徴。 | Swift 同様、低い動作クロックながらも高い IPC が特徴。 |
演算ユニットは更に増えて、FP/NEON も実行 2~3pipe 有していることがわかっています。 | 演算ユニットは更に増えて、FP/NEON も実行 2~3pipe 有していることがわかっています。 |
NEON の single precision fp ピーク性能は他の CPU core の 2倍。 | NEON の single precision fp ピーク性能は他の CPU core の 2倍。 |
| |
ARMv8 のお陰で倍精度演算も強化されており、倍精度演算は他の ARM CPU core の 4~8倍 (64bit mode のみ)。 | ARMv8 のお陰で倍精度演算も強化されており、倍精度演算は他の ARM CPU core の 4~8倍 (64bit mode のみ)。 |
新しい命令セットによるメリットが大きく、ARM の 64bit 化が効果的であることを知らしめてくれた CPU 。 | 新しい命令セットによるメリットが大きく、ARM の 64bit 化が非常に効果的であることを知らしめてくれた CPU 。 |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| もちろん上位互換性があるので、ARMv7A 32bit 命令もそのまま走ります。 |
| |
| |