Kontroler DMA

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Co to jest kontroler DMA?

Kontroler DMA (ang. Direct Memory Access) to układ umożliwiający przesyłanie danych między urządzeniami wejścia/wyjścia a pamięcią RAM bez ciągłego udziału procesora.

DMA stosuje się po to, aby odciążyć procesor. Zamiast tego, żeby CPU kopiował każdy bajt danych, kontroler DMA może samodzielnie wykonać transfer, np. z dysku do pamięci operacyjnej.

Jak działa DMA?

Typowy przebieg działania DMA:

  1. Procesor zleca kontrolerowi DMA wykonanie transferu.
  2. Kontroler DMA przejmuje obsługę przesyłania danych.
  3. Dane są kopiowane między urządzeniem a pamięcią RAM.
  4. Po zakończeniu transferu kontroler informuje procesor, np. przez przerwanie.

Przykładowe zastosowania

DMA może być wykorzystywane przy przesyłaniu danych z:

  • dysku twardego lub SSD,
  • karty dźwiękowej,
  • karty sieciowej,
  • innych urządzeń wejścia/wyjścia.

DMA a mostek północny

Kontroler DMA nie jest poprawną odpowiedzią na pytanie o główny transfer danych między procesorem a pamięcią RAM. Tym zajmuje się w klasycznej architekturze mostek północny.

DMA dotyczy raczej sytuacji, gdy dane są przesyłane między urządzeniem a RAM-em bez bezpośredniego kopiowania ich przez procesor.

Do zapamiętania

DMA odciąża procesor, ale nie jest klasycznym komponentem odpowiedzialnym za komunikację CPU ↔ RAM.