135
Kontroler DMA
DMA jest skrótem od angielskiego określenia Dircct Memory Access, oznaczającego bezpośredni dostęp do pamięci. Mowa tu oczywiście o dostępie do pamięci dla urządzeń peryferyjnych, gdyż kontaktu z nią procesora nic należy już w żaden sposób usprawniać. Ten stosunkowo skąpo opisany element architektury komputera IRM PC wymaga wyjaśnień.
W pierwowzorze nowoczesnych komputerów AT-386 i 486, tj. w IBM PC, zastosowano 8-biiowy kontroler DMA typu 8237A. Stanowiło to w tamtych czasach znaczne ułatwienie pracy procesorów- 8-bitowych przy icalizacji cykli dostępu do pamięci, zdejmując z nich obowiązek bezpośredniej realizacji transmisji między blokowymi urządzeniami peryferyjnymi a pamięcią oraz przeadresowywania bloków pamięci. Obecnie nowoczesne procesory' 80386 i 80486, dysponujące 32-bitową szyną danych, stały się tak szybkie, żc realizowane w mikrokodzic procesora rozkazy transmisji blokowej typu rep movsw są bardziej wydajne niż transmisje blokowe w cyklu DMA. Co gorsza, kilka generacji wzwyż od IBM PC, tj. w nowoczesnych AT, doskonała skądinąd idea DMA napotyka na wąskie gardło 8-bitowych kontrolerów DMA (spowalnianych dodatkowo stosowaniem zegara 4.77 MHz), które powstały dla potrzeb procesorów 8086/88.
Począwszy od IBM PC/AT dodano drugi kontroler 8237A, co pozwoliło na realizację obsługi urządzeń 16 bitowych. Dopiero jednak systemy EISA i MCA, o odmiennej filozofii i architekturze, powróciły do stosowania „na poważnie” idei DMA, wykorzystując szybkie, 32-bitowc układy scalone nowej generacji. Ideę bezpośredniej komunikacji urządzeń wejścia-wyjścia z pamięcią przedstawia rysunek 4.1.
Urządzeniem wejścia-wyjścia jest kontroler napędu dysków elastycznych (zarówno ten zainstalowany na płycie głównej jak i len umieszczony na karcie wkładanej w złącza rozszerzenia), kontroler jednostki pamięci taśmow-ej (ang. streamer) lub inne podobne urządzenie. Każdemu z nich przyporządkowany jest jeden z tzwf. kanałów DMA, tj logicznych strumieni danych, których przepływ jest inicjowany przez procesor.