DMA原則

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にDMAコントローラ発行停止信号を、CPU要件は、アドレスバス、データバス、制御バス及び関連する放棄する使用権をDMAコントローラは、データ転送を開始するためにバスの制御を得た後。データ転送の数が完了した後、CPUに通知DMAコントローラは、メモリ、およびCPUにバス制御バックを使用することができます図は、変速機のこのタイプのタイムチャートです。明らかに、そのようなDMA転送処理において、実質的に非作動状態又は保持状態でCPU。
利点: 単純な制御 高いデータレート伝送装置グループに適しています。
短所は: 訪問ステージDMAコントローラで、 メモリ性能がフルではない 、ワーキングメモリ・サイクルのかなりの部分はアイドル状態です。周辺装置がデータを送信する間の間隔が同様であっても、高速I / Oデバイスの場合は、常に一般的に二つのメモリ保存期間よりも大きいためです。例えば、フロッピーディスクは、8ビットの2進数は32usについてかかり、半導体メモリ保存期間が少ない0.5usよりも、非常に多くのアイドルCPU・メモリ・サイクルを使用することはできませんされて読み出されます。
 
サイクルスチール
  I / OデバイスのDMA要求がない場合、CPUは、手順に従ってアクセスメモリを必要とI / Oデバイスは、I / Oデバイスまたは少数のメモリ・サイクルの転換により、DMA要求を有す​​ると。
以下送信タイムチャートのこの実施例:
二つの例は、I / OデバイスのDMA転送要求を発生することがあります。
  • このとき、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デバイスを盗むサイクルの場合にも適用可能です。
 
交互にDMAとCPUアクセスメモリ
  CPUの作業サイクルは、メモリアクセスサイクル数よりも長い場合、この方法は、交互にCPUとDMA転送が最大効率を達成同時にイネーブルアクセスすることができます。次のように送信タイムチャートのこのタイプは、次のとおりです。
  この図は、代替DMAとCPUアクセスにおける詳細なタイミングチャートです。C1は、DMAコントローラへのアクセスのために意図されていると仮定するCPUの1.2usデューティサイクルは、メモリアクセスサイクルは、以下0.6usより、次にCPUサイクルは、2つのサブサイクルC1及びC2に分割することが可能であり、具体的にはCPUアクセス用C2。
このようにして バスを使用するために、戻りプロセスを確立する権利を適用する必要はなく バス使用権C1及びC2を共有することによって作られます CPUとDMAコントローラはそれぞれ、アドレスレジスタ、データレジスタおよび読出し/書込み制御レジスタ信号に等独自のアクセス権を持っています。 DMAコントローラは、アクセス要求、アドレスを有する場合周期C1においては、データ信号がバス上に送信されてもよいです。C2サイクルでは、CPUなどのアクセス要求を有し、アドレスおよびデータ信号を転送します。実際には、C1であるバス、C2は、マルチプレクサ制御するための コンバータを 、バスのこの変速制御が多少時間を要する、という点でDMA転送 効率が非常に高い です。
この送信はまた「と呼ばれる 透明なDMA 任意感覚または効果なしに、一般的な透明ガラスのようなCPUにそのようなDMA転送の理由である」モードを、。透明DMAモードでの作業は、 CPUは、いずれかのメインプログラムを実行し、待機状態に入らず停止し 、それが作業の効率的な方法です。 もちろん、対応するハードウェアロジックがより複雑になります

おすすめ

転載: www.cnblogs.com/still-smile/p/12148010.html