1.DMA要求
CPUはDMAコントローラを初期化し、I / Oインタフェースの操作コマンドを発行し、DMA要求をI / Oインタフェースを作りました。
2.DMA応答
DMAコントローラDMA要求の優先度と判別、決定論理バスに加えられたバス要求をマスクします。CPUは、バスの制御を解放するために、現在のバスサイクルを完了します。この場合、バス調停ロジック出力バスアクノリッジは、DMA応答がI / Oインターフェースを通知するかどうかを示すDMAコントローラによるDMA転送を開始します。
3.DMA伝送
DMAコントローラは、バス、CPUの制御を取得するか懸濁する直後内部動作のみ、読み取り実行し、書き込みは、DMAコントローラ、RAM及びI / OインタフェースDMA転送を直接制御することによって出力を指示します。
メモリと外部装置との間で直接転送するDMAコントローラが実行するデータの制御の下に、中央プロセッサは、あまりにもの転送に参加する必要はありません。これは、位置と最初に送信するデータのデータ長を開始する必要がありました。
4.DMAエンド
所定のバルクデータ転送が完了すると、即ち、バスのDMAコントローラ解放制御は、終了信号へのインターフェースは、I / Oを送信しました I / Oインタフェース終了信号を受信したとき、一方のI / Oデバイスの動作を停止するために、割り込み要求は、一方のCPUに行われるようにCPU決して関与する解放状態、およびその正しさをチェックDMA転送動作の実装コード。最後に、この操作の結果や状態でオリジナルのプログラムを継続します。
これにより、DMA転送直接CPU制御送信無しモード、割り込み処理、全く予約サイトと復旧サイトが存在しないように、RAMやハードウェアI / Oデバイスは、CPUの効率が大きくなるように、データを転送するための直接経路を開放増加。
DMA(ダイレクトメモリアクセス、ダイレクト・メモリ・アクセス)は 、すべての現代のコンピュータの重要な特徴であり、異なる速度のハードウェアデバイスが割り込み多数のCPU負荷を頼りにすることなく通信することができます。そうでない場合は、各セグメントのソースからコピーするCPUの必要性登録して、新しい場所を記述するために再び戻ってそれらを置きます。このとき、他のタスクのためにCPU、それを使用することはできません。
DMA技術は、周辺機器は、メモリDMAコントローラを介して直接アクセスすることが可能になり、同時に、CPUがプログラムを実行し続けることができる見えます。?DMAコントローラとそれを共有メモリを使用する方法CPUは、通常、三つの方法:(1)停止CPUインタビューメモリ;(2)サイクル盗む;(3)DMAとCPU代替アクセスメモリ。
- このとき、CPUは、CPU等のアクセスは、乗算命令を実行している必要はありません。長い乗算命令実行時以来、その後I / Oアクセスは、アクセスCPUとの競合、すなわち、I / Oデバイス迂回12メモリサイクルCPUには影響は、プログラムを実行しません。
- I /アクセス要件内のOデバイスはまた、訪問に訪問をCPUが必要です。これは、競合を作成し、この場合、優先順位I / Oデバイスへのアクセス、時間がI / Oアクセスを必要とするので、以前のI / O次の要求が来る前に、データ・アクセスが完了する必要があります。明らかに、この場合、I / Oデバイス迂回12メモリサイクルは、CPUは、より具体的には、命令の実行を遅延させる、またはことを意味するCPUアクセスでの命令の実行中には、DMAリクエストに挿入され、流用します二つのメモリ・サイクル。I / O転送の両方を達成する方法を盗むCPU DMAアクセスおよびサイクルを停止させる方法と比較し、CPUとメモリのより良い効率を果たし、広く用いられている方法です。しかし、I / Oデバイスのそれぞれは、サイクルを持っている、それがメモリワードに転送され、復帰時にバスの制御を確立するために、バスの要求制御、及び制御線を盗む1サイクルかかるが、DMAコントローラは、一般に2-5メモリ・サイクル(遅延ロジックに応じてあってもよいです)。したがって、本方法は、読み取りおよび書き込みサイクル時間は、記憶メモリよりも大きいためにI / Oデバイスを盗むサイクルの場合にも適用可能です。