GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è la differenza tra DMA-Engine e DMA-Controller?

DMA - Accesso diretto alla memoria. L'operazione del tuo driver che legge o scrive da/sulla tua memoria HW senza che la CPU sia coinvolta (liberandola per fare altre cose).

Controller DMA:leggere e scrivere non può essere fatto per magia. se la CPU non lo fa, abbiamo bisogno di un altro HW per farlo. Molti anni fa (ai tempi di ISA/EISA) era comune utilizzare un HW condiviso sulla scheda madre che eseguiva questa operazione. Negli ultimi anni, ogni HW ha il proprio meccanismo DMA HW. Ma in tutti i casi questo HW specifico ottiene l'indirizzo di origine e l'indirizzo di destinazione e passa i dati. Solitamente attivando un'interruzione al termine.

DMA Engine - Ora qui non sono sicuro di cosa intendi. Credo che probabilmente ti riferisci al lato SW che gestisce il DMA.DMA è un po' più complicato del solito I\O poiché tutta la memoria SRC e DST deve essere fisicamente presente in ogni momento durante l'operazione DMA. Se l'indirizzo DST viene scambiato su disco, l'HW scriverà su un indirizzo errato e il sistema andrà in crash. Questo e altri aspetti del DMA sono gestiti dal driver con sezioni di codice che probabilmente chiamerai "Motore DMA"

*Un'altra interpretazione di cosa sia "DMA Engine", potrebbe essere una parte di codice del firmware (o HW) che gestisce il controller DMA HW sul lato HW.


Secondo questo documento, http://www.asprom.com/application/intel_3.pdf:

I controller DMA 82C37 non devono essere confusi con i motori DMA presenti in alcuni componenti MCH (Memory ControllerHub) precedenti. Questi controller DMA sono collegati al bus ISA/LPC e utilizzati principalmente per i trasferimenti a/da dispositivi lenti come i controller per floppy disk.

Quindi sembra che sia un dispositivo trovato su piattaforme precedenti che utilizzavano dispositivi MCH.


Linux
  1. Qual è la differenza tra InnoDB e MyISAM?

  2. Qual è la differenza tra Git Switch e Checkout?

  3. Qual è la differenza tra fsck ed e2fsck?

  4. Qual è la differenza tra `su -` e `su --login`?

  5. Qual è la differenza tra unlink e rm?

Qual è la differenza tra Linux e Unix?

Qual è la differenza tra Login e Non-Login Shell

Qual è la differenza tra il comando apt e apt-get?

Che cos'è un hypervisor? Qual è la differenza tra il tipo 1 e 2?

Qual è la differenza tra curl e Wget?

Qual è la differenza tra DMA e IO mappato in memoria?