CISC(シスク)とは | 意味や読み方など丁寧でわかりやすい用語解説
CISC(シスク)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
シーアイエスシー (シーアイエスシー)
英語表記
CISC (シスク)
用語解説
CISC(シスク)は、「Complex Instruction Set Computer」(複合命令セットコンピュータ)の略語であり、コンピュータのCPU(中央演算処理装置)が実行できる命令の設計思想の一つを指す。その名の通り、CISCアーキテクチャを持つCPUは、非常に多機能で複雑な命令を豊富に備えている点が最大の特徴である。一つの命令で、メモリからのデータ読み込み、演算処理、そして結果のメモリへの書き込みといった、複数の異なる操作を一度に実行できるような高度な命令を持つことが可能だ。これは、プログラマがより少ない命令で複雑な処理を記述できるように、また、高水準言語の機能を直接的にハードウェアレベルでサポートできるように設計されたためである。現在広く普及しているIntelのx86アーキテクチャのCPUなどがCISCの代表例として知られている。
CISCの設計思想は、コンピュータの黎明期に、限られたメモリ容量とアセンブリ言語プログラミングという制約の中で、プログラムの効率的な記述とメモリ使用量の削減を目指して発展した。プログラマが少ない命令で複雑な処理を記述できるように、また、メモリに格納されるプログラムコードのサイズを小さく抑えられるように、多機能かつ強力な命令をCPUに搭載することを目指した。
CISCアーキテクチャの具体的な特徴は「命令の複雑性」にある。CISCの命令は、データ転送や算術論理演算などの基本的な操作に加え、文字列処理やメモリの読み書きといった複数の処理を一つの命令で実行できる。例えば、メモリ上の2つの値を加算し、結果を別のメモリアドレスに格納する一連の処理を、たった一つのCISC命令で完結させることが可能だ。これは、命令長が可変であることや、多様なアドレッシングモード(メモリ上のデータにアクセスする方法)を持つことによって実現される。可変長命令は命令の種類やオペランドの数に応じてサイズが変わり、アドレッシングモードはデータ参照の柔軟性を高める。
次に重要な特徴は「マイクロコード」の利用である。CISCの複雑な命令は、CPUのハードウェアが直接的に一つのステップで実行できるほど単純ではない。そのため、CISCプロセッサの内部では、一つ一つの複雑なCISC命令が、より単純な一連の「マイクロオペレーション(マイクロコード)」に分解されてから実行される。このマイクロコードは、CPU内部の小さなROM(読み出し専用メモリ)に格納されており、各CISC命令に対応するマイクロコードのシーケンスが、CPUの制御ユニットによって順次実行されることで、元のCISC命令の処理が完了する。このマイクロコード方式は、ハードウェア設計の複雑性を軽減し、命令セットの追加や修正を比較的容易にする利点がある。
CISCの利点の一つは「プログラムサイズの縮小」だ。一つの命令で多機能な処理を実行できるため、必要な命令の総数が減り、プログラムのコードサイズを小さく抑えることが可能だった。これは、特にメモリ容量が限られていた初期のコンピュータにおいて大きな利点だった。また、アセンブリ言語でのプログラミングにおいて、少ない命令で複雑なロジックを記述できるため、「プログラミングの効率化」にも貢献した。
一方で、CISCにはいくつかの欠点も存在する。「CPU設計の複雑性」は避けられない問題である。多機能で複雑な命令セットをサポートするためには、CPU内部の制御回路や実行ユニットも複雑にならざるを得ない。この複雑さは、CPUの開発期間の長期化やコストの増大、さらには消費電力の増加につながる傾向がある。さらに、「命令実行の非効率性」も大きな課題だった。複雑な命令は、その性質上、実行にかかるサイクル数が命令ごとに大きく異なり、また、複数の内部ステップを経て実行されるため、CPUの性能向上に不可欠な「パイプライン処理」(複数の命令を同時に並行して処理する技術)を効率的に適用するのが難しい。パイプライン処理は、命令が均一なステップ数で実行されることで効率を発揮するが、CISCの可変長命令や複雑なアドレッシングモードは、この前提を崩し、パイプラインの効率低下や停止を引き起こす原因となった。結果として、プロセッサの性能を最大限に引き出すのが困難になる場合があった。
現代のコンピュータにおけるCISCの代表例は、IntelやAMDが製造するx86アーキテクチャのCPUだ。しかし、現代のx86系CPUは、純粋なCISCプロセッサとは異なる進化を遂げている。これらのCPUは、外部から見れば依然として複雑なCISC命令セットを実行するが、CPUの内部では、受け取ったCISC命令をより単純で固定長の「マイクロオペレーション(uOPs)」と呼ばれる内部命令に動的に変換してから実行する仕組みを導入している。この技術により、CISCの外部互換性を維持しつつ、内部的にはRISCプロセッサが持つようなパイプライン処理やスーパースケーラ(複数の命令を並列実行する)などの高性能化技術を効率的に適用している。このハイブリッドなアプローチは、CISCの持つ「豊富な命令セットと既存ソフトウェアとの高い互換性」という利点と、RISCが追求する「単純な命令による高速かつ効率的な実行」という利点を両立させ、今日の高性能な汎用CPUの基盤となっている。