RISCとCISC
RISCとCISCは、命令セットの設計思想における対照的な2つのアプローチを指します。RISC(Reduced Instruction Set Computer)は、シンプルで均一なレジスタ間命令の小さなセットを好み、CISC(Complex Instruction Set Computer)は、1つの命令でより多くの処理を実行できる、強力で可変長の命令を多数提供します。
Definition
RISC(reduced instruction set computer)は、ロードストアモデルで実行されるシンプルで固定長の命令の小さなセットを重視する設計思想です。CISC(complex instruction set computer)は、より強力で、しばしば可変長の、メモリ間操作を含むより大きな命令セットを重視します。
Scope
このトピックでは、これら2つの設計思想とそのトレードオフについて扱います。命令の単純さと規則性対豊富さとコード密度、RISCのロードストア規律、単純な命令によるパイプライン処理の利点、そして現代の高性能CISC実装が複雑な命令を内部的にRISCライクなマイクロオペレーションに変換する方法について説明します。ビットレベルのエンコーディング(命令フォーマットとエンコーディング)およびパイプライン実装の詳細(パイプライン処理とハザード)は対象外とします。
Core questions
- 命令セットをシンプルで均一な操作に削減する動機となる設計目標は何ですか?
- ロードストア規律はRISCをCISCとどのように区別しますか?
- なぜシンプルで規則的な命令はより容易にパイプライン処理できるのですか?
- 現代のx86プロセッサは、CISC命令セットとRISCライクな内部実行をどのように両立させているのですか?
Key concepts
- 縮小命令セット
- 複雑命令セット
- ロードストアアーキテクチャ
- 固定長命令と可変長命令
- マイクロオペレーション
- コンパイラとハードウェアの協調設計
- コード密度
Key theories
- RISCの主張
- PattersonとDitzelは、シンプルな命令の小さなセットを、優れたコンパイラサポートによって迅速かつ効率的にパイプライン処理することで、複雑な命令セットよりも優れた性能を発揮できると主張しました。複雑な命令セットの精巧な命令はめったに使用されず、高速な実装が困難であるためです。
Mechanisms
RISC設計では、命令はシンプルで固定長、レジスタ間操作に限定され、メモリへのアクセスには個別のロード命令とストア命令を使用します。この規則性により、デコードとパイプライン処理が容易になります。CISC設計では、メモリに直接アクセスし、多段階の操作を実行できる複雑な可変長命令が提供されます。現代のCISC実装では、複雑な命令をよりシンプルな内部マイクロオペレーションのシーケンスにデコードし、それをRISCライクなコアが実行します。
Clinical relevance
RISC/CISCの区別は、主要なコンピューティングプラットフォームを形成してきました。ARMとRISC-VはRISCの原則を具現化し、モバイル、組み込み、そしてますますサーバーおよびラップトップ市場をリードしています。一方、x86(RISCライクな内部構造を持つCISC ISA)は長らくPCとサーバーを支配してきました。この議論は、エネルギー効率、性能、およびソフトウェアエコシステムに関する現在の選択に影響を与えています。
History
RISCの概念は、1980年代初頭のIBM 801の研究、バークレーRISCプロジェクト、スタンフォードMIPSプロジェクトから生まれ、1980年のPattersonとDitzelの論文で明確にされました。RISCのアイデアは、SPARC、MIPS、PowerPC、ARMなどの商用設計を通じて広まりました。一方、x86はRISCライクな内部マイクロオペレーションを採用することで生き残り、オープンなRISC-V ISAはクリーンなRISC設計に新たな勢いをもたらしました。
Debates
- RISCとCISCの区別はまだ重要ですか?
- 現代のCISCチップは内部的にRISCライクなマイクロオペレーションとして実行され、両陣営がパイプライン処理とキャッシングを共有しているため、元の区別は解消されたと主張する人もいます。しかし、命令セットの規則性がデコード効率、電力、検証に依然として影響を与えると主張する人もいます。
Key figures
- David A. Patterson
- David R. Ditzel
- John L. Hennessy
- John Cocke
Related topics
Seminal works
- patterson1980risc
- hennessy2019
- patterson2020
Frequently asked questions
- RISCは常にCISCより高速ですか?
- 本質的にそうとは限りません。RISCの単純さはパイプライン処理と高いクロックレートを容易にしますが、CISC命令は1つの命令でより多くの作業を実行できます。実際には、高性能CISCプロセッサは命令をRISCライクな操作に変換するため、実際の性能はISAのラベルだけでなく、マイクロアーキテクチャ全体に依存します。
- ARMとRISC-VはなぜRISCアーキテクチャと呼ばれるのですか?
- どちらも、ロードストアメモリモデルと少ないアドレッシングモードを持つ、シンプルでほとんどが固定長の命令の小さなセットを使用しています。これらはRISC思想の決定的な特徴であり、効率的な実装と、エネルギー制約のある設計や高スループット設計に適しています。