CISC ( Complex Instruction Set Computer:複合命令セットコンピューター ) は、以下のような特徴がある。
CISCの特徴は、コンピュータの歴史に由来する。CISCが産まれた時点ではアセンブラコーディングが前提で、プログラマの生産性を高めやすいISA(Instruction Set Architecture:命令セットアーキテクチャ )を定義する必要があった。そのため、人間が扱いやすいように命令の種類を増やし、コーディングの際の命令ステップ数を減らした。
そして、CISCの特徴は、当時のハードにも向いていた。命令ステップ数の削減によるプログラムのコードサイズの削減は、高価だったメモリの節約にもなった。また、CPUのフェッチ帯域の節約にもなった。つまり、CISCは元々、ハードウェアリソースが限られていた時代に適合していた。
RISC ( Reduced Instruction Set Computer:縮小命令セットコンピューター ) は、以下のような特徴がある。
RISCは「パイプラインを高速に動作させる」ことを主眼にした設計である。この目的を考えると、可変命令長ではデコードに手間が掛かるので、固定命令長の方が有利である。また演算対象がメモリーだったり、間接アドレスだったりと異なるのは、処理の際に余分な時間が掛かることになるので、演算対象はすべてレジスターのみに限った。もちろん、それではレジスターしか触れないので、メモリーとレジスター間でのロード/ストア命令は別に用意する。レジスター間演算のみに限ると、当然必要となるレジスターの数が増えるので、これにあわせて利用できるレジスターを大幅に増やす。
マイクロコードを廃するのも同じ理由だ。マイクロコード経由でのデコードでは時間が掛かるので、デコーダーはすべてハードワイヤードで構成されている。
また、ロード/ストア命令は当然メモリーアクセスが発生するので、処理が遅くなる。これを通常のパイプライン処理で行なうとパイプラインストールが発生してしまうので、これを避けるために遅延スロットを用意。処理に時間が掛かる命令は別に進行させて、パイプラインの動きを阻害しないようにした。
内容 | CISC | RISC |
命令語数 | 多い | 少ない |
命令語長 | 可変長 | 固定長 |
命令の種類 | 多くて複雑 | 基本のみ |
レジスタ数 | 少ない | 多い |
メモリへのアクセス | 多様 | ロード・ストア命令のみ |
制御方式(デコード) | マイクロプログラム(ソフトウェア) | ワイヤードロジック(ハードウェア) |
パイプライン処理 | 適さない | 適する |
www.it-shikaku.jp