Układ oznaczony jako sterownik DMA (Direct Memory Access) odpowiada za bezpośredni transfer danych pomiędzy urządzeniami wejścia/wyjścia (np. kontrolerem dysku, kartą sieciową, kontrolerem USB) a pamięcią operacyjną. Kluczową cechą DMA jest to, że przenoszenie danych może zachodzić z minimalnym udziałem procesora: CPU zwykle inicjuje operację (ustawia parametry), a właściwy transfer realizuje kontroler DMA.
To odróżnia DMA od mechanizmu przerwań. Kontroler przerwań nie przenosi danych jako taki, tylko porządkuje i dostarcza do CPU informacje o zdarzeniach (IRQ), aby procesor mógł wykonać procedurę obsługi przerwania. Przerwania są więc mechanizmem sygnalizowania i sterowania przebiegiem obsługi urządzeń, a DMA – mechanizmem transportu danych.
Odpowiedzi z pamięcią podręczną L1 i L2 są niepoprawne, ponieważ cache to element hierarchii pamięci procesora, używany do przyspieszania dostępu do danych i instrukcji. L1 i L2 są w praktyce ściśle związane z CPU (często fizycznie w procesorze) i nie pełnią funkcji "sterownika" obsługującego urządzenia I/O. Na typowych schematach blokowych płyty/chipsetu cache nie jest przedstawiana jako osobny układ pełniący funkcję kontrolera transferu.
Jak rozpoznawać DMA na schematach?
- DMA zwykle ma połączenia zarówno z blokami I/O, jak i z pamięcią/magistralą pamięci.
- Opis funkcjonalny wskazuje na "transfer", "kanały", "obsługę urządzeń" lub mostkowanie danych.
- Nie należy mylić go z blokami odpowiedzialnymi za synchronizację i obsługę zdarzeń (przerwania).
Dlatego poprawną odpowiedzią jest sterownik DMA.