CISC 【Complex Instruction Set Computer】 複合命令セットコンピュータ
概要
CISC(Complex Instruction Set Computer)とは、CPU(マイクロプロセッサ)の命令語の仕様の設計方針の一つで、複雑で高度な機能を持つ命令語をなるべくたくさん用意する考え方。パソコン向けなどで広く普及している米インテル(Intel)社のx86系やx86-64系プロセッサなどが代表的である。CPUに直接指示を与える機械語(マシン語)を構成する命令の種類や内容を規定する「命令セットアーキテクチャ」(ISA:Instruction Set Architecture)の分類の一つで、様々な機能を持った多種多様な命令語を備えたものを指す。
命令ごとに様々な操作対象の指定方法(アドレッシングモード)を組み合わせることができるという特徴を備え、これを「直交性が高い」という。内部で一つの命令をより細かく単純な「マイクロ命令」(マイクロコード)の列に置き換えてから実行する「マイクロプログラム方式」が用いられる。
命令語長や実行時間が命令によってまちまちであるため、パイプライン処理などで並列度を高めにくい。命令が多く複雑なため回路規模も大きくなりがちで開発期間・コストも増大しがちである。一方、一つの命令で複合的な処理や複雑な処理が可能なため、同じ処理内容ならば機械語のプログラムは短くて済み、コンパイラなどで最適化を行わなくても高速なコードを生成できる。
RISCとの違い
もともとCPUは誕生以来CISC型で設計されており、他と区別する必要がないためCISCという用語は存在しなかった。1970年代後半に対照的な考え方の「RISC」(Reduced Instruction Set Computer)が考案されたとき、従来の方式を区別するためにCISCという用語が産み出された(レトロニム)。
RISCは従来方式の複雑さを排し構成要素を単純化・画一化することで効率を向上させる考え方で、固定長の少数の単純な命令のみを備え、アドレッシングモードも削減されている。マイクロプログラムへ変換せず直に実行し、パイプラインを用いてすべての命令を同じ1クロックで処理することができる。
近年ではCISC型のプロセッサ製品にもRISCの知見から得られた設計が取り込まれ、RISC型にもCISC的な複雑さを増す機能拡張が続いた結果、両者の差異は薄れつつある。現在では歴史的な技術の発展を説明する際にCISCとRISCの違いに言及されることが多い。