ユーザ用ツール

サイト用ツール


opengl:cpucore

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


CPU core

ARM core

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 ARM11 (ARM1176) 1.25 ARMv6 1-4 L1 L2 8 stage in-order single 1 (VFPv2) 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
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-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-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
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-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-A17 ARMv7A
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/32K0.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
Qualcomm Scorpion 2.1 ARMv7A 1-2 L1 L2 out-of-order in-order 2/? ? VFPv3-D32 NEON 128bit 8 1
Qualcomm Krait 3.3 ARMv7A 1-4 4K/4K16K/16K 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-D32 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 400 ? ARMv7A ? 4K/4K L1 L2 out-of-order out-of-order 3/? ? VFPv4-D32 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
Apple Swift ? ARMv7A ? L1 L2 out-of-order out-of-order 3?/? ? VFPv4-D32 NEON 128bit 8 1
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
NVIDIA Denver ? ARMv8A ? AArch64 NEON A64 NEON
  • 括弧付きの VFP/NOEN は Option であることを意味しています。
  • (*1) : Cortex-A8 の VFP は pipeline 化されておらず実行完了まで stall します。他の CPU core と比較してスループットは 1/5~1/10
  • Cortex-A7/A15/A53/A57 は 1クラスタあたり最大 4 core まで。4 core 以上のシステムも構成できます。

Group 1

Cortex-A8

ARMv7A 第一世代の Cortex-A8 は Multi Core 非対応なので、採用 SoC はすべて Single Core となります。 Multi Core 対応は Cortex-A9 以降。

NEON を標準搭載しているため、single precision floating-point のピーク演算能力が高いことが特徴。 反面、トレードオフとして VFP が非常に低速です。

VFP の浮動小数点演算が pipeline 化されていないことが原因で、完了するまで次の演算が stall します。 結果、一世代前の ARM11 にもスコアで 1桁負けるくらいの遅さです。(1/5~1/10 くらいの遅さ)

VFP は NEON と違い IEEE754 準拠かつ倍精度対応なので、用途によっては VFP を使わなければなりません。

動的な型付を持つ Script 系言語では、数値型として倍精度実数 (64bit double) を用いるものが多くあります。 例えば JavaScript はその代表といえるでしょう。 bit 演算など整数範囲で収まる場合は 32bit integier ですが、32bit を超える値や除算などの演算により double 型に変換されます。

よって Cortex-A8 は Web 系アプリケーションとの相性が極めて悪い CPU であると言えます。

現役で使われている Cortex-A8 はあまり多くありません。 最新 OS が動く端末としては Apple A4 の iPhone 4 が最後ではないかと思います。

Cortex-A9

Multi Core 対応で、Tegra 2 以降急激に採用 SoC が増えました。 VFP も pipeline 化されており、Cortex-A8 のような欠点がありません。 性能的にはすべての面で Cortex-A8 を上回ります。

ただし NEON が Option 扱いとなっており、SoC の構成によっては NEON 命令が使えないものがあります。 NEON 無しの Cortex-A9 で一番メジャーなのが Tegra 2 です。

Cortex-A8 の VFP が遅いので、浮動小数点演算はすべて NEON を使いたいが、Tegra 2 のために NEON を使えないというジレンマがありました。 Tegra 2 以外では NEON 非対応 Cortex-A9 端末を見たことがないので、今となってはあまり気にする必要がないかもしれません。

NEON 命令は in-order 実行かつ 64bit ALU なので、実行性能で後発 CPU に負けます。

Scorpion

Qualcomm 独自に開発した ARMv7A CPU core で、 ちょうど Cortex-A8/A9 に対向する形となります。

性能的には Cortex-A8 より上で、Cortex-A9 同様 MultiCore 対応ながら Cortex-A8 とほぼ同時期に用いられていました。

NEON も標準搭載で VFP も stall 無し。 NEON は 128bit ALU で、ピーク性能では Cortex-A9 の 2倍になります。 ただし pipeline が深く、高クロック動作する反面、実行効率がわずかに劣ります。

x86 core

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
Intel Atom Saltwell 2.4 IA32/Intel64 1-2 HT 32K/24K 0.5M in-order in-order 2 2 FPU x87 / SSE2 SSSE3 6
Intel Atom Silvermont IA32/Intel64 out-of-order FPU x87 / SSE2
AMD Bobcat ? IA32/AMD64 1-4 32K/32K 0.5M out-of-order 2/? ? FPU x87 / SSE2 SSE4A 64bit 4
AMD Jaguar ? IA32/AMD64 ? out-of-order 2/? ? FPU x87 / SSE2 SSE4A 128bit 8

参考

opengl/cpucore.1397475462.txt.gz · 最終更新: 2014/04/14 20:37 by oga