GNU/Linux >> Belajar Linux >  >> Linux

Apa perbedaan antara DMA-Engine dan DMA-Controller?

DMA - Akses memori langsung. Pengoperasian driver Anda membaca atau menulis dari/ke memori HW Anda tanpa melibatkan CPU di dalamnya (membebaskannya untuk melakukan hal lain).

Pengontrol DMA - membaca dan menulis tidak dapat dilakukan dengan sihir. jika CPU tidak melakukannya, kita membutuhkan HW lain untuk melakukannya. Bertahun-tahun yang lalu (pada saat ISA/EISA) umum menggunakan HW bersama pada motherboard yang melakukan operasi ini. Dalam beberapa tahun terakhir, setiap HW memiliki mekanisme DMA HW-nya sendiri. Namun dalam semua kasus, HW khusus ini mendapatkan alamat sumber dan alamat tujuan serta meneruskan data. Biasanya memicu interupsi setelah selesai.

Mesin DMA - Sekarang di sini saya tidak yakin apa yang Anda maksud. Saya yakin Anda mungkin merujuk ke sisi SW yang menangani DMA. DMA sedikit lebih rumit daripada biasanya I\O karena semua memori SRC dan DST harus selalu ada secara fisik setiap saat selama operasi DMA. Jika alamat DST ditukar ke disk, HW akan menulis ke alamat yang buruk dan sistem akan macet. Aspek DMA ini dan lainnya ditangani oleh driver dengan bagian kode yang mungkin Anda sebut sebagai "Mesin DMA"

*Interpretasi lain tentang apa itu 'Mesin DMA', mungkin merupakan bagian kode dari Firmware (atau HW) yang menangani pengontrol DMA HW di sisi HW.


Menurut dokumen ini, http://www.asprom.com/application/intel_3.pdf:

Pengontrol DMA 82C37 tidak boleh disamakan dengan mesin DMA yang ditemukan di beberapa komponen MCH (Memory ControllerHub) sebelumnya. Pengontrol DMA ini terkait dengan bus ISA/LPC dan sebagian besar digunakan untuk transfer ke/dari perangkat lambat seperti pengontrol floppy disk.

Jadi sepertinya itu adalah perangkat yang ditemukan di platform sebelumnya yang menggunakan perangkat KIA.


Linux
  1. Apa perbedaan antara insmod dan modprobe

  2. Apa perbedaan antara strtok_r dan strtok_s di C?

  3. Apa perbedaan antara fsck dan e2fsck?

  1. Apa perbedaan antara adduser dan useradd?

  2. Apa perbedaan antara unlink dan rm?

  3. Apa perbedaan antara rute dan rute ip?

  1. Apa perbedaan antara InnoDB dan MyISAM?

  2. Perbedaan Antara [[ $a ==Z* ]] Dan [ $a ==Z* ]?

  3. Apa Perbedaan Antara Git Switch dan Checkout?