マイクロプログラム方式
IBMのSystem/360やDECのVAXファミリーは複雑なマイクロプログラムを使用している。
その後、キャッシュメモリの活用や、複雑な命令を排除してその分をレジスタに充てることでより高性能にできるという考えが生まれ、マイクロプログラムによる複雑な命令を廃したRISCにつながる。
IBM 801など初期のRISCではコンパイラは複雑な命令を活用できない、という観察から命令の単純化、という発想が生まれ、後にコンパイラ技術の進歩によりコンパイラがより高性能な、単純な命令を組み合わせたコードを生成できるように命令セットも工夫された。一方でTRONCHIPなど、コンパイラが活用しやすいような複雑な命令を揃えるという方向もあった。
ただし、CISCであるインテルのx86系CPUも、i486以後でワイヤードロジックなどRISCの技術を徐々に取り入れた。またRISCであるサン・マイクロシステムズのSPARC、IBMのPOWERも必要に応じて命令セットの追加を繰り返しているため、現在ではCISC、RISCという分類の意義は薄れている。
ウィルクスの当初の実装は、ダイオード格子回路を2つ使うもので、1つ目はWhirlwindのコントロールストアと同じように制御信号を生成し、もう1つの格子回路で次に実行すべき列(1つ目の格子回路に格納されたマイクロ命令)を選択する。条件判断は、1つ目の格子回路で選択した列の一部のビット群の値で2つ目の格子回路の列を選択できるようにすることで実装した。これを従来の単純なコントロールストアを区別するため、「マイクロプログラム方式」と名付けた。
1958年、IBM 709はマイクロコードによる商用初の別アーキテクチャのエミュレータを提供した。
1964年 IBM System/360は、マイクロコードによる互換性の確保により、コンピュータのファミリー化を実現。これにより、実装に依存しない共通仕様としてのコンピュータ・アーキテクチャを確立した。
初期のマイクロプロセッサの命令セットはそれほど複雑なものではなかったが、命令デコード部の回路設計を単純化するためにPLA(英語版)やROMを使用してCPU内の制御を行っていた。例えば MOS 6502 はPLAを使用して命令デコードと制御を行っていた。
チャールズ・バベッジの解析機関は一連のカムで演算を制御する方式で、それらが言わばリードオンリーのコントロールストアである。そのため、世界初のマイクロプログラム方式の設計ともいわれる。
EMIDEC 1100(英語版)は、フェライトコア群に導線を通す形の固定結線のコントロールストアを採用しており、それを 'the laces' と呼んだ。
IBM System/360 シリーズの多くの機種はマイクロプログラム方式である。 モデル25は中でも独特で、主記憶である磁気コアメモリの先頭16kバイトにマイクロプログラムを格納していた。2025は16ビットのマイクロアーキテクチャで、マイクロ命令は7ワードで構成されている。電源投入時やシステムリセット時にカードリーダーからマイクロコードを読み込む方式だった。IBM 1410 のエミュレーションも同じ方式でロードする。 モデル30は8ビットのマイクロアーキテクチャでハードウェアで実装したレジスタ数も少ない。プログラマから見たアーキテクチャはマイクロプログラムでエミュレートされたものである。このモデルでも専用パンチカードリーダーからマイクロコードを読み込み、CROS (Capacitor Read-Only Storage) と呼ばれる専用記憶装置に格納する。 モデル40は56ビットのマイクロ命令を使用する。CROSによく似たTROS (Transformer Read-only Store) にマイクロプログラムを格納する。