RISCとCISCの違い:命令セットの考え方と代表例を比較
RISC(縮小命令セットコンピュータ)とCISC(複合命令セットコンピュータ)は、命令セットの設計に関する2つの考え方です。RISCは、単純で長さが一定の少数の命令を使い、パイプライン処理がしやすいです。CISCは、複雑で長さが可変の多数の命令を使い、1つの命令でより多くの仕事ができます。今では境界はあいまいで、現代のx86プロセッサは、CISCの命令を内部で単純な演算に変換して実行します。そのため、違いが重要なのは、主に命令セットとソフトウェアの環境の面です。
| 項目 | RISC | CISC |
|---|---|---|
| 考え方 | 少数の単純な命令を使う。1つの命令の仕事は小さく、速く実行できるように作る | 多数の強力な命令を使う。1つの命令で複数のステップを実行するものもある |
| 命令の長さ | 固定(RISC-VやAArch64の基本の命令セットでは32ビットなど) | 可変(x86の命令は1〜15バイト) |
| メモリアクセス | ロード/ストア方式。メモリに触るのはロードとストアの命令だけで、演算はレジスタ同士で行う | 多くの命令で、メモリのデータを直接オペランドにできる |
| レジスタ | 汎用レジスタが多い(RISC-VやAArch64では32個) | 少なめ(x86-64の汎用レジスタは16個) |
| デコード | 単純で、パイプライン処理に向き、ハードウェアも小さくできる | 複雑。現代のx86のコアは、命令を内部のマイクロ命令に変換する |
| コードサイズ | 大きめ。ただし圧縮命令の拡張(ThumbやRISC-VのC拡張)で小さくできる | 1つの命令の仕事が多いので、密になりやすい |
| 代表例 | ARM、RISC-V、MIPS、PowerPC | x86とx86-64(Intel、AMD)、IBM z/Architecture |
| 主な用途 | スマートフォン、組み込み機器、最近はノートPCやサーバーにも | パソコンとサーバー。ソフトウェアの互換性が重要な分野 |
数値は代表的な目安で、世代や製品によって異なります。