命令セットアーキテクチャ
概 要

命令セットアーキテクチャとは、CPUの回路を直接動作させるために2進数で書かれた機械語の命令や内部構造などの仕様を規格化することで、プログラミング言語から抽象的に扱いやすくしたもの。
命令セットアーキテクチャが同じであれば、集積化が進んでCPU内部の構造が変わってしまっても同じソフトウェアを実行できる。
解 説
命令セットアーキテクチャは、CPUの動作について「こうすればこう動く」ということを定めたものです。ソフトウェア側から見たCPUの動かし方とその結果について仕様を定めたもので、実際のCPU内部をどのように実装するかには触れていません。入力と出力が規定通りならば中身の処理は何でもOKというわけです。このように仕様と切り離された内部実装のことをマイクロアーキテクチャと呼びます。

ハードウェア全体の規格にもよるので絶対ではありませんが、基本的に命令セットアーキテクチャが同一のCPUであれば、同じソフトウェアをそのまま実行できます。同一または後方互換性を持たせた命令セットアーキテクチャでソフトウェアの互換性を維持しつつ、マイクロアーキテクチャを発展させて高性能化してきたのが今日までのCPUの歴史です。
現在広く利用されている命令セットアーキテクチャとしては「x86系(現行x64)」と「Arm v◯(現行Arm v8)」が挙げられます。
「x86系」は主にPCやサーバー分野で用いられるIntelとAMDのCPUが備える命令セットアーキテクチャです。初出の1978年から後方互換性を保ったまま拡張されてきた命令セットアーキテクチャで、膨大なソフトウェア資産を利用できる点が特徴です。
「Arm v◯」はArm社が開発した命令セットアーキテクチャです。Arm社自身はCPUを製造せず、命令セットアーキテクチャやマイクロアーキテクチャをライセンス供与し、さまざまなメーカーが「Arm v〇」互換のCPUを製造しています。主にスマートフォンなどのモバイル機器や、組み込み機器などの分野で圧倒的なシェアをもっていて、近年はPCやサーバー分野に進出を始めています。
x86系(x64) | Arm v◯ | |||
命令セット アーキテクチャ |
Intel 64(Intel版x64) | AMD64(AMD版x64) | Arm v8(現行アーキテクチャ) | |
マイクロ アーキテクチャ |
Tiger Lake Rocket Lakeなど |
Zen3 Zen2など |
Cortexシリーズ | 独自マイクロアーキテクチャ Apple Samsungなど |
プロセッサ シリーズ |
Intel Coreシリーズなど | AMD Ryzenシリーズなど | Qualcomm Snapdragonシリーズ Mediatek Helioシリーズ Hisilicon Kirinシリーズなど |
Apple A/Mシリーズ Samsung Exynosシリーズなど |
実現できること
- ・ソフトウェア資産の維持。命令セットアーキテクチャの互換性が維持されていれば、同じソフトウェアをずっと実行できます。「x86系」は40年前のソフトウェアも実行可能。
- ・互換CPUの製造。命令セットアーキテクチャが同一であれば、さまざまなメーカーで互換性のあるCPUを製造してシェアを伸ばせます。こうしたライセンスビジネスを行っているのがArm社です。
- ・後方互換性を維持した改良。過去の資産を残したまま命令セットを拡張していくことができます。「x86系」は16bit、32bit、64bitと拡張してきました。また、特殊用途向けに拡張命令セット(SSE、AVX等)という形での拡張も行っています。
- ・マイクロアーキテクチャの改良。命令セットアーキテクチャとマイクロアーキテクチャが分離されているので、マイクロアーキテクチャには大幅な改良を加えて高性能化できます。
- ・命令セットアーキテクチャが異なるCPU間でのソフトウェア互換。昨今ではCPUの高性能化によって、本来互換性の無い命令セットアーキテクチャ向けのソフトウェアもエミュレータや仮想化技術で実用的に動かせるようになりました。
将来の展開
これまで、命令セットアーキテクチャは「x86系」が圧倒的なソフトウェア資産を背景に市場シェアを伸ばしてきましたが、スマートフォンの普及に伴ってモバイル分野を制した「Arm v◯」は全体の出荷量で「x86系」を大幅に超える規模にまで成長しました。
また、近年はオープンソースの命令セットアーキテクチャ「RISC-V(リスクファイブ)」が注目を集めています。次なる大きな市場はIoT分野と考えられていて、ライセンスフリーの「RISC-V」が猛威を振るうのではという予想も立てられています。今後注目していきたい分野です。