マイクロプログラミングは、コンピューターの制御ユニットを体系的に実装する方法です。 簡単に言えば、マイクロプロセッサ用のマイクロコードを作成するプロセスです。
マイクロコードは、マイクロプロセッサが機械語命令を実行するときにマイクロプロセッサがどのように動作するかを指示する補助コードであり、特定の操作で使用される場合、マイクロコードはマイクロプログラムと呼ばれることがあります。
一方、マイクロプログラムされた制御ユニットは、バイナリ制御値をワードとしてメモリに保存します。
主要な取り組み
- 水平マイクロプログラミングでは、各制御信号は制御ワードのビット位置に対応しますが、垂直マイクロプログラミングでは、各制御信号は制御ストアの行に対応します。
- 水平マイクロプログラミングは、制御ワードを変更することでより簡単に変更できるため、垂直マイクロプログラミングよりも柔軟です。 対照的に、バーティカル マイクロプログラミングでは、コントロール ストア内の行全体を変更する必要があります。
- 垂直マイクロプログラミングは、制御信号に並列にアクセスできるため、水平マイクロプログラミングよりも高速ですが、水平マイクロプログラミングでは信号に順次アクセスする必要があります。
水平マイクロプログラミングと垂直マイクロプログラミング
マイクロプログラミングでは、水平マイクロプログラミングは制御信号ごとに XNUMX ビットの幅広いマイクロ命令フォーマットを使用し、より優れた柔軟性と速度を提供します。垂直マイクロプログラミングはデコードを必要とする狭いマイクロ命令フォーマットを使用するため、速度は遅くなりますが、必要なメモリ容量は少なくなります。

水平マイクロプログラム制御ユニットの制御信号は、デコードされたバイナリ形式で表されます。
水平マイクロプログラミングの各ビットは、単一の制御点に関連付けられており、適用可能なマイクロ操作が実行されることを示しています。
各マイクロ命令は複数のリソースに同時に命令できるため、マイクロプログラムごとに必要なマイクロ命令の数を減らしながら、ハードウェアの使用を改善できる可能性があります。
垂直マイクロプログラム制御ユニットの制御信号は、バイナリ形式でエンコードされます。 各マイクロ操作には独自のコードがあり、デコーダーはそれを個別の制御信号に変換します。
実行されるマイクロ操作だけが定義されているため、マイクロ命令フィールドは完全に利用されます。 さらに、縦型マイクロプログラムは、横型マイクロプログラムよりも簡単に記述できます。
比較表
比較のパラメータ | 水平マイクロプログラミング | 垂直マイクロプログラミング |
---|---|---|
並列度 | 高度な並列処理 | 並列度が低い |
柔軟性 | 柔軟性が低い | より柔軟です |
エンコーディング | 垂直マイクロプログラミングよりも ROM エンコーディングの使用が少ない | ROMエンコーディングをより活用する |
追加のハードウェア | 追加のハードウェアは必要ありません | 追加のハードウェアはデコーダーの形式です |
シーケンス | 水平マイクロ命令を使用します | 垂直マイクロ命令を使用します |
水平マイクロプログラミングとは?
水平マイクロ プログラム制御ユニットでは、制御信号はデコードされたバイナリ フォーマットで表示されます。
水平マイクロプログラミングの各ビットは、関連するマイクロ操作が実行されることを示す単一の制御点に関連付けられています。
各マイクロ命令は同時に多くのリゾートを管理できるため、ハードウェアの使用率を向上させると同時に、マイクロプログラムあたりのマイクロ命令数を減らすことができます。
一方、水平方向のマイクロプログラムは、同時に実行される一連のマイクロ操作を表します。
これにより、使用するエンコードを減らして制御フィールドを分離しながら、より多くの並列処理が可能になります。 一方、リソースを最適または効率的に使用するマイクロプログラムを開発することは困難な課題です。
各制御ビットは他の制御ビットから独立しているため、水平マイクロプログラミングでは大きな自由度が得られます。 縦型のマイクロ命令よりも長いため、より多くの情報が提供されます。
従来の機械語と同様に、水平マイクロプログラミングは、合理的なソフトウェアで次の仕様を表現するために順次的な方法を使用します。
各ビットは XNUMX つのコマンド ポストにリンクされており、関連するコントロール ポイントに対応していることを示します。 マイクロオペレーションが実行されます。 条件付きおよび無条件の分岐。 次に、制御機能を使用してシーケンスを中断する必要があります。
垂直マイクロプログラミングとは?
制御信号は、垂直マイクロプログラム制御ユニットでエンコードされたバイナリ形式で定義され、「n」個の制御信号には log2n ビットのエンコードが必要です。
水平マイクロプログラミングとは対照的に、垂直マイクロプログラミングは、柔軟なフォーマットと高度なエンコーディングを使用します。
これにより、マイクロ命令の長さが短縮され、メモリ容量の増加によってマイクロ命令の長さが直接影響を受けることがなくなります。 ほとんどの場合、各垂直マイクロ命令は単一のマイクロ操作を表します。
垂直マイクロプログラムはコード密度が高く、コントロール ストアのサイズにメリットがあります。垂直マイクロ命令は、1 つの操作といくつかのオペランドのみで構成される従来のマシン言語スタイルに似ています。
垂直マイクロプログラムの作成は、水平マイクロプログラムの作成よりも簡単です。垂直マイクロ命令は、1 つのアクションと少数のオペランドのみを持つ従来のマシン言語に似ています。
その結果、マイクロプログラミングは簡単に実装できます。 これは 16 ~ 32 つのフィールドで構成され、各フィールドは命令ごとに XNUMX ~ XNUMX ビットを必要とします。
バーティカル マイクロプログラムはコードの飽和度が高く、コントロール ストアの容量にメリットがあります。 垂直マイクロ命令は、XNUMX つの関数といくつかの処理要素のみで構成される従来の機械語スタイルに似ています。
各垂直マイクロ命令は、データのソースとシンクを示すオペランドを使用して、特定のマイクロ操作を定義します。
水平マイクロプログラミングと垂直マイクロプログラミングの主な違い
- 水平マイクロプログラミングにより、高度な並列処理が可能になります。 次数が n の場合、n 個の制御信号が同時に有効になります。 一方、水平マイクロプログラミングでは、並列処理の程度が低くなります。 次数が 0 または 1 の場合、一度に XNUMX つの制御信号のみが有効になります。
- 水平マイクロプログラミングは、垂直マイクロプログラミング制御ユニットよりも柔軟性が低くなります。
- 水平マイクロプログラミングは RaoM エンコーディングをあまり使用しませんが、垂直マイクロプログラミングは ROM エンコーディングを多く使用して、制御ワードの長さを短縮します。
- 水平方向のマイクロプログラミングには追加のハードウェアは必要ありませんが、垂直方向のマイクロプログラミングでは、制御信号を生成するために必要なデコーダーの形で追加のハードウェアが必要になります。
- 水平マイクロプログラミングは、制御フィールドの各ビットが制御ラインに関連付けられる水平マイクロ命令を使用します。 一方、垂直マイクロプログラミングは垂直マイクロ命令を採用しており、各アクションにコードが割り当てられ、デコーダによって個々の制御信号に変換されます。
水平マイクロプログラミングと垂直マイクロプログラミングの説明は、それぞれの特性とメカニズムを明らかにする上で優れています。並列度に関する議論は特に注目に値します。
水平マイクロプログラミングと垂直マイクロプログラミングの詳細な説明では、それらの特性と動作の違いの包括的な概要が提供されます。コンピュータ アーキテクチャを勉強している人にとっては非常に有益です。
マイクロプログラミングは、コンピューターの制御ユニットがどのように構成されるかについての重要な側面です。水平マイクロプログラミングと垂直マイクロプログラミングの説明により、それらの違いが明確に理解できます。
比較表は、水平マイクロプログラミングと垂直マイクロプログラミングの違いを説明するのに非常に役立ちます。柔軟性、エンコーディング、追加ハードウェアなどのパラメーターの分析は非常に徹底的です。
これは複雑ですが、マイクロプログラミングに関する非常に有益な記事です。水平マイクロプログラミングと垂直マイクロプログラミングの違いを深く掘り下げ、技術的な詳細が詰め込まれています。
この記事の重要なポイントは、特に並列処理とエンコードの程度に関して、水平マイクロプログラミングと垂直マイクロプログラミングの間の微妙な違いについての貴重な洞察を提供します。
水平マイクロプログラミングと垂直マイクロプログラミングの詳細な説明は非常にわかりやすくなっています。どちらの方法にもそれぞれ特有の利点と複雑さがあり、それらについては適切に説明されています。
水平マイクロプログラミングと垂直マイクロプログラミングの主な違いに関する詳細な説明は啓発的です。それぞれの点が正確に説明されているため、2 つの方法の相違点が理解しやすくなっています。