GNU/Linux >> Linux の 問題 >  >> Linux

DMA-Engine と DMA-Controller の違いは何ですか?

DMA - 直接メモリ アクセス。 CPU が関与することなく、HW メモリとの間で読み取りまたは書き込みを行うドライバーの操作 (他のことを行うために解放します)。

DMA コントローラー - 読み書きは魔法ではできません。 CPU がそれを行わない場合は、それを行う別のハードウェアが必要です。何年も前 (ISA/EISA の時代)、この操作を行うマザーボード上で共有 HW を使用するのが一般的でした。近年では、各 HW に独自の DMA HW メカニズムがありますが、いずれの場合も、この特定の HW が送信元アドレスと宛先アドレスを取得してデータを渡します。通常、完了時に割り込みをトリガーします。

DMA エンジン - ここで、何を言っているのかわかりません。おそらく、DMA を処理する SW 側について言及していると思います。DMA 操作中はすべてのメモリ SRC と DST が常に物理的に存在する必要があるため、DMA は通常の I\O よりも少し複雑です。 DST アドレスがディスクにスワップされると、ハードウェアが不正なアドレスに書き込み、システムがクラッシュします。これと DMA のその他の側面は、おそらく「DMA エンジン」と呼ばれるコード セクションを持つドライバーによって処理されます

*「DMA エンジン」の別の解釈は、ハードウェア側で DMA HW コントローラーを処理するファームウェア (または HW) のコード部分である可能性があります。


このドキュメントによると、http://www.asprom.com/application/intel_3.pdf:

82C37 DMA コントローラを、一部の以前の MCH (メモリ コントローラ ハブ) コンポーネントに見られる DMA エンジンと混同しないでください。これらの DMA コントローラは ISA/LPC バスに接続されており、主にフロッピー ディスク コントローラなどの低速デバイスとの間の転送に使用されます。

つまり、MCH デバイスを使用していた以前のプラットフォームで見つかったデバイスのようです。


Linux
  1. fsck と e2fsck の違いは何ですか?

  2. adduser と useradd の違いは何ですか?

  3. ls と l はどう違いますか?

  1. InnoDBとMyISAMの違いは何ですか?

  2. [[$ a ==Z*]]と[$a==Z *]の違いは?

  3. ルートとIPルートの違いは何ですか?

  1. insmodとmodprobeの違いは何ですか

  2. Cのstrtok_rとstrtok_sの違いは何ですか?

  3. 「su -」と「su --login」の違いは何ですか?