マイクロプログラミングは、コンピュータの制御装置を体系的に実装する方法です。一言で言えば、それはマイクロプロセッサ用のマイクロコードを作成するプロセスです。マイクロコードは、マイクロプロセッサが機械語命令を実行するときにどのように動作するかを指示する補助コードであり、マイクロコードは、特定の操作で使用される場合、マイクロプログラムと呼ばれることもあります。一方、マイクロプログラムされた制御ユニットは、バイナリ制御値をワードとしてメモリに保存します。
水平マイクロプログラミングと垂直マイクロプログラミング
水平マイクロプログラミングと垂直マイクロプログラミングの違いは、それらのサポート、マイクロプログラミングの並列処理の程度、および柔軟性です。ビットを使用したエンコードに関しては、どちらも互いに異なります。また、データを見つけることができるように設計と処理も異なります。
水平マイクロプログラム制御ユニットの制御信号は、デコードされたバイナリ形式で表されます。水平マイクロプログラミングの各ビットは単一の制御点に関連しており、該当するマイクロ操作が実行されることを示しています。各マイクロ命令は同時に複数のリソースに命令できるため、マイクロプログラムごとに必要なマイクロ命令の数を減らしながら、ハードウェアの使用を改善する可能性があります。
垂直マイクロプログラム制御ユニットの制御信号は、バイナリ形式でエンコードされます。各マイクロオペレーションにはコードがあり、デコーダーによって個別の制御信号に変換されます。実行するマイクロオペレーションのみが定義されているため、マイクロ命令フィールドは完全に利用されます。さらに、垂直マイクロプログラムは、水平マイクロプログラムよりも簡単に作成できます。
水平マイクロプログラミングと垂直マイクロプログラミングの比較表
比較のパラメータ | 水平マイクロプログラミング | 垂直マイクロプログラミング |
並列度 | 高度な並列処理 | 並列度が低い |
フレキシブル | 柔軟性が低い | より柔軟です |
エンコーディング | 垂直マイクロプログラミングよりもROMエンコーディングをあまり使用しません | ROMエンコーディングをより活用します |
追加のハードウェア | 追加のハードウェアは必要ありません | 追加のハードウェアはデコーダーの形式です |
順序 | 水平マイクロインストラクションを使用しています | 垂直マイクロインストラクションを使用します |
水平マイクロプログラミングとは何ですか?
水平マイクロプログラム制御ユニットでは、制御信号はデコードされたバイナリ形式で表示されます。つまり、1but / CSであり、「n」個の制御信号にはn個のエンコードが必要です。
水平マイクロプログラミングの各ビットは、単一の制御点に関連しており、関連するマイクロ操作が実行されることを示しています。各マイクロ命令は同時に多くのリゾートを管理できるため、マイクロプログラムごとに必要なマイクロ命令を減らしながら、ハードウェアの使用を改善できる可能性があります。一方、水平マイクロプログラムは、通常、同時に実行される一連のマイクロ操作を表します。
これにより、より少ないエンコードと制御フィールドの分離を利用しながら、より多くの並列処理が可能になります。一方、リソースを最適または効率的に使用するマイクロプログラムを開発することは困難な課題です。各制御ビットは他の制御ビットから独立しているため、水平マイクロプログラミングは多くの自由を提供します。垂直方向のマイクロ命令よりも長いため、通常はより多くの情報を提供します。
水平方向のマイクロプログラミングは、従来の機械語と同様に、シーケンシャルな方法を使用して、合理的なソフトウェアで次の仕様を表現します。各ビットは単一のコマンドポストにリンクされており、関連するコントロールポイントに対応していることを示します。マイクロオペレーションが実行されます。条件付きと無条件の両方のブランチ。次に、制御機能を使用してシーケンスを中断する必要があります。
垂直マイクロプログラミングとは何ですか?
制御信号は、垂直マイクロプログラム制御ユニットでエンコードされたバイナリ形式で定義され、「n」制御信号にはlog2nビットエンコードが必要です。水平マイクロプログラミングとは対照的に、垂直マイクロプログラミングは、柔軟なフォーマットと高度なエンコーディングを使用します。マイクロ命令の長さを短縮するだけでなく、メモリ容量の増加によってマイクロ命令の長さが直接影響を受けるのを防ぎます。ほとんどの場合、各垂直マイクロ命令は単一のマイクロ操作を表します。
垂直マイクロプログラムはコード密度が高いため、コントロールストアのサイズにメリットがあります。垂直マイクロ命令は、1つの演算といくつかのオペランドのみで構成される従来の機械語スタイルに似ています。垂直マイクロプログラムの記述は、水平マイクロプログラムの記述よりも簡単です。垂直マイクロ命令は、1つのアクションといくつかのオペランドしかない古典的な機械語に似ています。その結果、マイクロプログラミングは簡単に実装できます。通常、4〜6個のフィールドで構成され、各フィールドには1命令あたり16〜32ビットが必要です。
垂直マイクロプログラムはコード飽和度が高く、コントロールストアの容量にメリットがあります。垂直マイクロ命令は、1つの関数といくつかの処理要素のみで構成される従来の機械語スタイルに似ています。各垂直マイクロ命令は、データのソースとシンクを示すオペランドを使用して、特定のマイクロオペレーションを定義します。
水平マイクロプログラミングと垂直マイクロプログラミングの主な違い
- 水平マイクロプログラミングにより、より高度な並列処理が可能になります。次数がnの場合、n個の制御信号が同時に有効になります。一方、水平マイクロプログラミングでは、並列度を低くすることができます。次数が0または1の場合、一度に1つの制御信号のみが有効になります。
- 水平マイクロプログラミングは、垂直マイクロプログラミングコントロールユニットよりも柔軟性がありません。
- 水平マイクロプログラミングはRaoMエンコーディングをあまり使用しませんが、垂直マイクロプログラミングはROMエンコーディングをより多く使用して制御ワードの長さを短縮します。
- 水平マイクロプログラミングには追加のハードウェアは必要ありませんが、垂直マイクロプログラミングでは、追加のハードウェアは制御信号を生成するために必要なデコーダーの形式になっています。
- 水平マイクロプログラミングは、制御フィールドの各ビットが制御ラインに関連付けられている水平マイクロ命令を採用しています。一方、垂直マイクロプログラミングは垂直マイクロ命令を採用しており、各アクションにコードが割り当てられ、デコーダによって個々の制御信号に変換されます。
結論
マイクロプログラミングは、コントローラーを体系的に構築するという課題に対する非常に効果的なソリューションであり、1960年代半ばから1980年代後半にかけて、大多数のプロセッサー(わずかな変更を加えたもの)で利用されました。
水平方向のマイクロ命令とは対照的に、垂直方向のマイクロ命令は、単一のマイクロ操作を表します。垂直マイクロプログラムは制御ビットをエンコードしますが、水平マイクロプログラムは、低いエンコードと個別の制御フィールドで高度な並列処理を可能にします。水平方向のマイクロプログラミングは、垂直方向のマイクロプログラムされたコントロールユニットよりも高速です。
水平マイクロプログラミングは長い制御ワードをサポートしますが、垂直マイクロプログラミングは短い制御ワードをサポートします。 2つの方法のどちらを選択するかは、考慮して行う必要があります。ただし、実際には、設計者は水平および垂直のマイクロ命令タイプを組み合わせて、コンパクトで効率的な構造を作成します。