CISC(複合命令セットコンピュータ)とは
CISC(Complex Instruction Set Computer)は、
コンピュータの命令セットアーキテクチャ(ISA)における設計思想の一つです。複雑な命令セットを持つことが特徴で、単一の命令で複数の処理を実行したり、メモリ上で直接演算を行ったりすることが可能です。このアーキテクチャは、特に初期の
コンピュータにおいて、限られたハードウェア資源で効率的な処理を実現するために採用されました。
CISCの主な特徴
複雑な命令セット: 単一の命令で複数の処理ステップを実行できるため、プログラムのコード量を削減できます。
可変長命令: 命令の長さが可変であるため、効率的なメモリ利用が可能です。
直交性: 演算命令とアドレッシングモードの組み合わせが自由で、柔軟なプログラミングが可能です。
メモリオペランド: 演算対象としてメモリ上のデータを直接指定できます。
CISCプロセッサの例
CISCアーキテクチャを採用したプロセッサとしては、以下のようなものがあります。
System/360, PDP-11, VAX: マイクロプログラム方式を採用したミニコンピュータ、メインフレーム
680x0, x86:
マイクロプロセッサ
特にx86プロセッサは、現在でもパーソナル
コンピュータ市場で広く使用されています。
CISCの構造
CISCプロセッサは、柔軟な構成が可能な実行ユニットを持ちます。演算器の幅を調整することで、実行速度と回路資源のバランスを取ることができます。また、
マイクロプログラム方式を採用することで、命令セットを維持したまま内部アーキテクチャを改良することが可能です。
マイクロプログラム方式とは、内部の
CPUが万能チューリングマシンとして外部の
CPUをシミュレートする仕組みです。これにより、実装技術の進歩に合わせて最適な内部
CPUを構築し、後方互換性を維持しながら性能向上を実現できます。
CISCの歴史
初期の
CPUは、半導体の集積度が低かったため、演算器のビット幅がワード長よりも短く、複数のステップで演算を行う必要がありました。集積度の向上に伴い、演算器のビット幅が増加し、
マイクロプログラム方式が採用されるようになりました。CISCは、当初からこの
マイクロプログラム方式を活用し、シンプルなアーキテクチャで豊富な機能を実現していました。
一方で、
RISC(Reduced Instruction Set Computer)は、1チップに集積された
マイクロプロセッサが
32ビット1ワード実行ユニットで固定されるという前提で、より単純化された構造で最適化することで、CISCよりも高性能を目指していました。しかし、半導体の集積度の向上により、
CPUの内部クロックが高速化し、相対的にオンチップキャッシュのメモリレイテンシが増大したため、
RISCの前提は崩れました。
CISCは、半導体の集積度の向上に伴い、単一
CPUのパイプラインを拡張し、複数の実行ユニットで並列処理を行うスーパースケーラやアウトオブオーダ実行、投機的実行といった技術を導入しました。これにより、メモリレイテンシの影響を軽減し、性能向上を維持しました。
CISCの現状
1990年代には、
RISCがCISCに置き換わるという予測もありましたが、実際にはCISCプロセッサの多くは内部的に
RISCの技術を採用し、一方で
RISCプロセッサも命令数の追加を続けたため、
2000年代には技術的な相違はほぼなくなりました。現在では、CISCと
RISCは、技術的な用語よりも、各プロセッサの歴史的な総称として使われることが多くなっています。
各市場での採用傾向
パーソナルコンピュータ: x86(CISC)がほぼ独占。
UNIXサーバー: ローエンドはx86(CISC)、ハイエンドは各社
RISC(
SPARC、POWERなど)が多い。
メインフレーム: CISC(z/Architecture、ACOSなど)が大多数。
スーパーコンピュータ: x86(CISC)が約9割、
RISC(POWERなど)が約1割。
組み込み市場: RISCが優勢。
携帯電話市場: RISC(主にARM)がほぼ独占。
ゲーム機市場: 据え置き型はx86(CISC)が主流、携帯型はRISCが主流。
代表的なCISCプロセッサ
x86 (
IA-32)
System/360
IBM z/Architecture
富士通 GS21/PRIMEFORCE
日立 APシリーズ
* 680x0 (Coldfire)
まとめ
CISCは、複雑な命令セットを持つ
コンピュータアーキテクチャであり、初期の
コンピュータから現代に至るまで、その進化は
コンピュータ技術の発展と深く結びついています。
マイクロプログラム方式やパイプライン処理といった技術革新を経て、性能向上を続けてきました。現在では、
RISCとの技術的な差異はほぼ解消され、それぞれのアーキテクチャが持つ歴史的な背景や市場での立ち位置が重要になっています。CISCは、特にx86アーキテクチャとして、パーソナル
コンピュータや
サーバー市場で重要な役割を果たし続けています。