[ Pobierz całość w formacie PDF ]
Zastosowane układy scalone.................................................................................................1214
Bibliografia........................................................................................1217
Literatura polskoj¹zyczna .....................................................................................................1217
Literatura angloj¹zyczna.......................................................................................................1221
Wydawnictwa........................................................................................................................1222
Skorowidz .........................................................................................1225
Rozdział 6.
Kanał DMA
DMA (Direct Memory Access) ma na celu usprawnienie dost¹pu do pami¹ci (rysunek 6.1).
Ta forma dost¹pu przewidziana jest dla urzÄ…dzeÅ„ peryferyjnych i nie należy jej mylić
z cyklami realizowanymi przez sam procesor. Tych odwoÅ‚aÅ„ nie da si¹ usprawnić za
pomocÄ… DMA.
Rysunek 6.1.
Układy
Idea bezpośredniej Pamięć
CPU
I/O
komunikacji układów
wejścia-wyjścia
z pamięcią
Kanał
DMA
W IBM PC, b¹dÄ…cym pierwowzorem współczesnych komputerów, zastosowany zostaÅ‚
tzw. 8-bitowy kontroler DMA (w oryginale był to układ typu 8237A). W tamtych czasach
stanowiło to znaczne ułatwienie pracy dla procesorów 8-bitowych, ograniczało bowiem
zakres ich działań. Kontroler DMA brał na siebie obowiązek realizacji transmisji dla
blokowych urzÄ…dzeÅ„ peryferyjnych oraz przeadresowywanie bloków pami¹ci. DoskonaÅ‚a
skÄ…dinÄ…d idea DMA przestaÅ‚a odgrywać rol¹ w momencie wprowadzenia procesorów
i386/486. DysponowaÅ‚y one 32-bitowÄ… szynÄ… danych i staÅ‚y si¹ tak szybkie, iż realizo-
wane w mikrokodzie procesora rozkazy transmisji blokowej typu były bardziej
wydajne niż transmisje blokowe w cyklu DMA. Dodatkowe ograniczenie 8-bitowych
kontrolerów to zbyt wolny zegar 4,77 MHz, który ze wzgl¹du na wymóg kompatybilnoÅ›ci
stosowany był nadal w modelach AT (kilka generacji wzwyż od IBM PC).
Dla ratowania sprawy (począwszy od IBM PC/AT) dodany został drugi kontroler 8237A,
co umożliwiÅ‚o przynajmniej realizacj¹ obsÅ‚ugi urzÄ…dzeÅ„ 16-bitowych. Dopiero jednak
systemy EISA i MCA, o odmiennej filozofii i architekturze, powróciły do stosowania
w peÅ‚nym zakresie idei DMA. Zacz¹to wreszcie stosować 32-bitowe ukÅ‚ady scalone nowej
generacji. W tych warunkach kanał DMA mógł obsługiwać transfery do szybkich urzą-
dzeÅ„ peryferyjnych, takich jak dyski twarde i nap¹dy CD-ROM.
UrzÄ…dzeniem wejÅ›cia-wyjÅ›cia może być kontroler nap¹du dysków (zarówno ten zain-
stalowany na płycie głównej, jak i ten umieszczony na karcie rozszerzeń), kontroler jed-
nostki pami¹ci taÅ›mowej (ang. streamer) lub inne podobne urzÄ…dzenie. Każdemu z nich
przyporządkowany jest jeden z tzw. kanałów DMA, tj. logicznych strumieni danych,
których przepływ jest inicjowany przez procesor.
294 Anatomia PC
Każdy z układów 8237A może obsługiwać cztery takie strumienie. Możliwy jest też ka-
skadowy sposób łączenia kontrolerów 8237A; jedno z wejść układu głównego (Master)
obsÅ‚uguje wtedy nast¹pny kontroler (Slave) i jest tym samym stracone . To rozwiÄ…zanie
stosowane jest w IBM PC/AT i udost¹pnia siedem kanałów DMA.
%7łądające obsługi urządzenie stowarzyszone z danym kanałem DMA wysyła sygnał DREQ
(DMA Request). UkÅ‚ad 8237A reaguje na to przej¹ciem kontroli nad magistralami systemu
i przeprowadzeniem wymaganej transmisji, np. jednego sektora odczytanego z dyskietki
do buforu w pami¹ci operacyjnej (RAM), gdzie odbywa si¹ poÅ‚Ä…czenie sektorów w plik
danych. W tym czasie procesor jest wolny i może, do czasu wystąpienia przerwania po-
chodzÄ…cego od kontrolera nap¹du dysków elastycznych (IRQ 6 odczytano kolejny sek-
tor), zajmować si¹ obróbkÄ… tekstu lub grafiki. Należy tu dodać, że oczywiÅ›cie nie zawsze
oznacza to dalsze wykonywanie programu. Trzeba bowiem pami¹tać, że szyny (danych
i adresowa) sÄ… we wÅ‚adaniu kontrolera DMA, a wi¹c procesor może przetwarzać tylko
to, co ma w swoich rejestrach. Wszelkie odwoÅ‚ania do pami¹ci operacyjnej muszÄ… cze-
kać. Sytuacj¹ ratuje troch¹ pami¹Ä‡ podr¹czna procesora (ang. cache memory) stoso-
wana w procesorze 80486 wewn¹trzna pami¹Ä‡ o wielkoÅ›ci 8 kB. Może w niej być jed-
nak umieszczany tylko kod programu, a nie dane. Dopiero nast¹pca procesora 80486
Pentium ma podr¹cznÄ… pami¹Ä‡ danych.
Ta sama akcja realizowana bez ukÅ‚adu DMA skÅ‚adaÅ‚aby si¹ z kolejnych zapisów i odczytów
portu kontrolera nap¹du dysków. Kolejne etapy to zaÅ‚adowanie akumulatora, przesÅ‚anie za-
wartości akumulatora do portu sterującego, odczyt portu danych do akumulatora, przesłanie
zawartoÅ›ci akumulatora do komórki pami¹ci. To dopiero jeden bajt. OczywiÅ›cie przy każ-
dym z tych kroków procesor jest w peÅ‚ni zaj¹ty i nie ma mowy o wielozadaniowoÅ›ci.
Układ scalony 8237A
[ Pobierz całość w formacie PDF ]