命令セット
MISCの実装にはチップ面積はごく小さくて済み、FPGA やマルチコアでの実装に適している。コード密度はRISCと同程度である(メモリ当たりの命令密度は増加しているが、命令数が少ないため、より多くの命令実行を必要とする)。例えば、FORTH言語を実装したチップがある。
命令セットの分類方法として、最も複雑な命令のオペランド数で分類する方法がある(以下で、a、b、c はメモリアドレス、reg1 などはレジスタを意味する)。
0オペランド(ゼロアドレスマシン) - スタックマシンとも呼ばれ、全てのオペランドをスタックから取り出して使用する。2つの数を加算する処理は4命令 (push a, push b, add, pop c) で行われる。
1オペランド - 初期のコンピュータでよく使われたモデルで、1つのオペランドを使って処理をし、結果をアキュムレータに格納する。2つの数を加算する処理は3命令 (load a, add b, store c) で行われる。
2オペランド - RISCマシンのほとんどはここに分類される。CISCマシンもここに分類されるものが多い。
命令セット(めいれいせっと、英: instruction set)はプロセッサ命令の集まりである。すなわちコンピュータのハードウェアに対して命令を伝えるための言葉の語彙である。
機械語は個々の命令から構成される。アーキテクチャにもよるが、命令は通常、以下のいずれか(あるいは複数)を指定する。
算術演算、アドレス指定、制御用途にレジスタを指定する。
メモリ位置やオフセットを指定する。
オペランドを解釈するためのアドレッシングモードを指定する。
このような単純な命令を組み合わせてより複雑な操作を構築し、(ノイマン型であれば)これを逐次的に実行したり、制御フロー命令で順序を変えたりする。
多くの命令セットに共通な操作として、以下のものがある。