マイクロプログラム方式
マイクロコードによるプログラムをマイクロプログラム (Microprogram) という。非常に特殊なコンピュータプログラムであり、あるコンピュータアーキテクチャ上でより複雑なアーキテクチャをエミュレートするものである。マイクロプログラムは一般的なプログラムに比較して非常に小さいため、マイクロプログラムと呼ばれる。可能な限り実行速度を上げるよう注意深く最適化して設計される。
他のコンピュータプログラムと同様、マイクロプログラムはマイクロ命令の列からなる。マイクロ命令はコンピュータのCPUを最も基本的なレベルで制御するものである。 例えば典型的なマイクロ命令は以下のような処理を行う。
レジスタ1をALUの入力"A"に接続する
レジスタ7をALUの入力"B"に接続する
ALUに2つの入力の足し算を実行するようセットする
ALUのキャリー入力にゼロをセットする
結果をレジスタ8に格納する
フラグレジスタ ("condition codes") をALUのステータスフラグ ("Negative", "Zero", "Overflow", "Carry") にしたがってセットする
IBM System/370 ではそのためのファシリティとして IML (Initial-Microprogram Load, IMPL) を用意し、電源投入時にコンソールから起動したり、密結合マルチプロセッサシステムでもう一方のシステムから起動したりできた。
IBM 360/85 などの商用マシンでは、リードオンリーと書き換え可能の両方のコントロールストアを備えていた。
WCSの利点はマイクロプログラムに対するパッチを可能にするだけでなく、ある年代のハードウェアにとってはROMよりも高速なアクセスができるという利点もあった。ユーザがプログラム可能なWCSは、特定用途向けにマシンを最適化することができる。
インテルのx86アーキテクチャのCPUでもWCSを使っているものがある。これにより Intel Core 2 や Intel Xeon のマイクロコードのバグ修正をソフトウェアのみで実施できた。