マイクロプログラム方式
マイクロプログラム(マイクロコード)はプログラムの一種として、一般のプログラムと同様に著作権で保護されるものと判示されている。インテルとAMD間の互換CPUに関する争いではマイクロコードのライセンスも争点になっている。尚、ワイヤードロジックの場合、パターンが回路配置利用権で保護される。
マイクロプログラムの設計には水平型と垂直型の2つの方向性がある。ただし、明確に分類できるものではなく、実装により中間的なもの、曖昧なものもある。水平型はマイクロ命令が直接CPU各部の制御を行う方式で、垂直型はマイクロ命令を論理回路で解釈(デコード)して実行する方式である。結果として水平型のマイクロ命令の方がビット幅が大きく、垂直型よりも多くの格納領域を必要とする。以下それぞれ説明する。
書き換え可能なマイクロコードを使っているコンピュータもある。つまり、マイクロコードをROMに格納しているのではなく、WCS (Writable Control Store) と呼ばれるRAMに格納している。そのようなコンピュータをWISC (Writable Instruction Set Computer) と呼ぶこともある。多くの場合、それらのマシンは実験用プロトタイプであったが、商用マシンでも書き換え可能なマイクロコードを採用したものがあった。初期のXeroxワークステーションやDECのVAX 8800(ノーチラス)ファミリ、シンボリックスのLISPマシンの一部、IBMのSystem/360とSystem/370のいくつかの機種、DEC PDP-10 の一部機種、データゼネラルの Eclipse MV/8000 などである。オプションとして書き換え可能なコントロールストアを用意していたマシンはさらに多い(たとえばHP HP 2100(英語版) や DEC PDP-11/60 ミニコンピュータ)。