Sterownik DMA (Direct Memory Access) to naprawdę kluczowy element w architekturze komputerów, jeśli chodzi o sprawne przesyłanie danych. Chodzi tu o to, że urządzenia peryferyjne, jak np. karty sieciowe, dyski twarde czy nawet nowoczesne karty dźwiękowe, mogą przekazywać lub odbierać informacje bezpośrednio do/z pamięci RAM, praktycznie z pominięciem procesora. To bardzo usprawnia pracę systemu, bo CPU nie musi zajmować się każdym bajtem przesyłu — po prostu zleca zadanie kontrolerowi DMA i wraca do swoich głównych zadań. W praktyce, zwłaszcza w systemach typu embedded albo przy intensywnych operacjach na dużych plikach czy transmisjach multimedialnych, DMA skraca czas przesyłu i odciąża procesor. W branży to wręcz standard wykorzystywania DMA, żeby uzyskać wyższą przepustowość i mniejsze opóźnienia, co jest istotne na przykład w systemach czasu rzeczywistego. Moim zdaniem, jak ktoś chce być dobrym technikiem, musi rozumieć, jak działa DMA i kiedy warto go stosować — czasem to po prostu jedyna opcja, bo bezpośredni dostęp do pamięci pozwala uzyskać dużo większą wydajność niż klasyczne rozwiązania programowe. Nawet BIOS i nowoczesne systemy operacyjne korzystają z DMA, żeby efektywnie zarządzać transferami danych. To taki trochę niewidzialny bohater każdej płyty głównej, a jak się to raz zrozumie, to już później łatwiej łapie się koncepcję działania zaawansowanych systemów komputerowych.
Temat sterowników i ich funkcji w architekturze komputerów potrafi trochę namieszać, bo pojęcia bywają podobne, a ich zastosowania się przeplatają. Weźmy PIO (Programmed Input/Output) — to bardzo stare i dość podstawowe rozwiązanie, gdzie procesor samodzielnie, krok po kroku, obsługuje komunikację z urządzeniem, odczytując lub zapisując dane bezpośrednio do rejestrów. To rozwiązanie bardzo obciąża CPU, bo nieodłącznie wiąże się z wykonywaniem wielu instrukcji, które można by przekazać dedykowanemu kontrolerowi. I choć PIO bywa spotykane w prostych urządzeniach lub na etapie uruchamiania sprzętu, w nowoczesnych systemach raczej go się unika na rzecz DMA. Z kolei DMI (Direct Media Interface) to określenie magistrali — takiej jakby „autostrady” łączącej chipset z procesorem w nowszych platformach Intela. DMI nie jest sterownikiem, tylko protokołem komunikacyjnym, który pozwala na szybkie przesyłanie danych pomiędzy mostkiem północnym a południowym lub innymi elementami płyty głównej. No i jeszcze IRQ, czyli Interrupt Request, to już zupełnie inna bajka — to linie sygnałowe, którymi urządzenia zgłaszają przerwania do CPU, żeby zwrócić na siebie uwagę, na przykład gdy skończy się transfer danych. Samo IRQ nie odpowiada jednak za przesył danych. Typowy błąd to mylenie sterowników, przerwań i magistral, bo ich nazwy czy funkcje czasem się zazębiają w praktyce, zwłaszcza jeśli ktoś dopiero wchodzi w temat. W praktyce, jeśli sprzęt ma efektywnie przesyłać dane bez nadmiernego angażowania procesora, to jedynym poprawnym wyborem jest DMA — to właśnie ten sterownik daje możliwość bezpośredniego dostępu do pamięci, zgodnie z obowiązującymi standardami i dobrą praktyką w branży komputerowej.