CPUのブランド名とかISA名とか色々ありすぎてややこしい
from CPU
#wip
ブランド名とかISA名とか色々別名がありすぎて、
他の概念と比較する時の抽象度が捉えられない
例えば、「Apple M3とx86_64ってどっちがすごいの?」という問いがそもそもおかしいことを捉えづらい
JSでいうと、JavaScript, ECMAScript, V8, Chromeとかの立ち位置がわからん感じ(雑)
GPT-4.icon
コンピュータのプロセッサに関する用語は、「抽象度が異なるものが混ざりやすい」ため、適切に分類することが重要です。
そこで、以下の5つのレイヤーに整理します。
ISA
CPUが理解できる命令の仕様。プログラムとCPUのインターフェースを決めるルール。
→ OSやソフトウェアに影響を与える。
table:例
ISA名 分類 主な特徴 代表的なメーカー・採用例
x86(IA-32) CISC 32ビット Intel, AMD(古いPC)
x86_64(AMD64, Intel 64) CISC x86の64ビット拡張 Intel, AMD(PC, サーバー)
AArch64(ARMv8以降) RISC ARMの64ビットISA Apple, Qualcomm, AWS, Samsung
RISC-V(RV64Iなど) RISC オープンISA SiFive, Alibaba, StarFive
Power ISA RISC IBM独自のISA IBM(サーバー向け)
MIPS(MIPS32, MIPS64) RISC 32/64ビットのMIPS系 組み込み用途
SPARC RISC Sun Microsystemsが開発 Oracle, 富士通
ISAはソフトウェアとの互換性を保証するものであり、異なるISAではプログラムの実行ができない
例: x86用のWindowsはARMのMacでは動かない
マイクロアーキテクチャ
同じISAを使うが、CPUの内部設計(パイプライン、キャッシュ、分岐予測、並列実行方式など)を決める。
→ 同じISAでもマイクロアーキテクチャが異なると性能が変わる。
table:table
マイクロアーキテクチャ名 ISA メーカー 特徴
Zen 4 x86_64 AMD Ryzen 7000, EPYC 9004
Alder Lake x86_64 Intel Core 12th Gen(P-core/E-core)
Raptor Lake x86_64 Intel Core 13th Gen
Gracemont x86_64 Intel 省電力向け(Atom系)
Cortex-A76 AArch64 ARM スマホ向け
Apple M3 AArch64 Apple Apple Silicon独自設計
Neoverse V2 AArch64 ARM AWS Graviton 3
Power9 Power ISA IBM IBMサーバー向け
Power10 Power ISA IBM IBMの最新アーキテクチャ
ポイント:
ISAが同じでも、マイクロアーキテクチャが異なると性能や消費電力が変わる
例: Intel Core i9 と AMD Ryzen 9 は同じx86_64だが設計が異なる
Apple MシリーズやAWS GravitonはARMのISAを採用しながら独自マイクロアーキテクチャを持つ。
雑に見れば、プログラミング言語のコンパイラが意識するのはISAのみで良い
x86_64向けにアセンブリを吐けば、
x86_64をサポートしていれば、任意のマイクロアーキテクチャで動作する
マイクロアーキテクチャが何なのかはあまり気にしなくて良い
(実際はそれごとの最適化が入ることもあるらしい)
雑に見れば、
ISAは仕様で、マイクロアーキテクチャは実装ってことかmrsekut.icon
CPU
プロセッサ, 実際の製品
特定のマイクロアーキテクチャを実装した物理的なチップ。
→ ユーザーが実際に購入・使用するハードウェア。
table:table
CPU名 ISA マイクロアーキテクチャ メーカー
----------- -------- ---------------- ----------
Intel Core i9-13900K x86_64 Raptor Lake Intel
AMD Ryzen 9 7950X x86_64 Zen 4 AMD
Apple M3 AArch64 Apple独自設計 Apple
AWS Graviton 3 AArch64 Neoverse V2 Amazon
IBM Power9 Power ISA Power9 IBM
IBM Power10 Power ISA Power10 IBM
SiFive Freedom U740 RISC-V U7シリーズ SiFive
ポイント:
マイクロアーキテクチャが違うと同じISAでも性能が大きく変わる
例: Core i9-13900KとRyzen 9 7950X
プロセッサの世代が違うとマイクロアーキテクチャも異なる
例: Ryzen 5000シリーズ(Zen 3)とRyzen 7000シリーズ(Zen 4))
ブランド名(シリーズ名, マーケティング用名称)
CPUシリーズのマーケティング・製品ラインナップ名。
一般ユーザーが目にするのはこのレイヤー。
table:table
ブランド名 ISA 代表的なCPU メーカー
--------------- -------- -------------- ----------
Intel Core(i3, i5, i7, i9) x86_64 Core i9-13900K Intel
AMD Ryzen(Ryzen 5, 7, 9) x86_64 Ryzen 9 7950X AMD
AMD EPYC x86_64 EPYC 9654 AMD
Intel Xeon x86_64 Xeon Platinum 8380 Intel
Apple Mシリーズ AArch64 M1, M2, M3 Apple
AWS Graviton AArch64 Graviton 3 Amazon
PowerPC(古い) Power ISA PowerPC 970 IBM, Motorola, Apple
UltraSPARC SPARC UltraSPARC T2 Sun Microsystems
SPARC64 SPARC SPARC64 XII 富士通
ポイント:
ブランド名はマーケティング用であり、技術的な仕様を直接示すものではない。
Apple MシリーズはARMベースだが、Intel Coreシリーズとは別のISA。
AWS GravitonやApple Mシリーズは独自のマイクロアーキテクチャを採用している。
企業・団体
ISAの策定者、マイクロアーキテクチャの設計者、CPUメーカーなど。
→ 特定のISAを開発したり、特定のCPUを製造する企業が異なる。
table:table
企業名 主な役割 関係するISA
------------ ---------- -------------
Intel CPU開発・製造 x86, x86_64
AMD CPU開発・製造 x86_64(AMD64を開発)
ARM Ltd. マイクロアーキテクチャ設計 AArch64
Apple ARMベースSoC設計 AArch64
IBM Power ISA開発・CPU製造 Power ISA
SiFive RISC-V CPU開発 RISC-V
Oracle SPARC CPU開発 SPARC
Fujitsu SPARC CPU開発 SPARC