マイクロシーケンサ
Digital Scientific Corp. の Meta 4シリーズ16コンピュータシステムは、1970年に最初に利用可能になったユーザー・マイクロプログラム可能なシステムであった。 マイクロコードシーケンスの分岐は、3つの方法のいずれかで発生した。
分岐マイクロ命令は、条件付きまたは無条件で次の命令のアドレスを指定する。 論理インデックス(logical index) (IX) オプションを指定すると、16ビットのリンクレジスタが分岐アドレスに論理和され、単純なインデックス付き分岐機能が提供される。
すべての算術/論理命令はジャンプ (J) 修飾子を許可しており、これはリンクレジスタでアドレスされたマイクロ命令に実行をリダイレクトする。
すべての算術/ 論理命令はデクリメントカウンタ (D) とジャンプ (J) 修飾子の両方を許可する。 この場合、8ビットのループ・カウンタ・レジスタはデクリメントされる。 それがゼロでない場合は、リンクレジスタの内容に分岐する。 ゼロであれば、実行は次の命令へと続く。
分岐命令で許可されているもう一つのシーケンスオプションは、実行(execute) (XQ) オプションである。 このオプションを指定すると、分岐アドレスの単一命令が実行されるが、実行は元の分岐命令の後で続行される。 IXオプションはXQオプションと一緒に使用することができる。
IBM System/360は、1964年に発売された互換性のある一連のコンピュータで、その多くはマイクロプログラミングされていた。 System/360モデル40は、複雑なマイクロシーケンスを持つマイクロプログラムマシンの良い例である。
マイクロストアは、水平マイクロプログラミングスタイルで動作する4,096個の56ビット・マイクロ命令で構成されている。 ストアのアドレスは、12ビットのリードオンリー・アドレスレジスタ(ROAR)によって指定される。 S/360アーキテクチャのほとんどのレジスタとは異なり、ROARのビットは右のビット0から左のビット11までの番号が付けられている。
モデル40は、マイクロ命令の逐次実行を行わないので、マイクロシーケンサは、従来の意味では実際に分岐しない。 代わりに、各マイクロ命令は、次に実行されるマイクロ命令のアドレスを指定する。 マイクロ命令内の4つのフィールドが新しいアドレスに寄与する。
CA, 4 bits: 他のフィールドに応じ、次のアドレスの一部。
CB, 4 bits: 次のアドレスのビット1を決定する。
CC, 4 bits: 次のアドレスのビット0を決定する。
CD, 2 bits: 次のアドレスがどのように組み立てられるかを制御する(CBフィールドが15を含む場合を除く)。
これらのフィールドには、基本的に3つの組み合わせ、またはフォーマットがある。