136 Anatomia PC
136 Anatomia PC
Rysunek 4.1.
Idea
bezpośredniej komunikacji układów wejścia- wyjścia z pamięcią
Każdy /. układów 8237A może obsługiwać cztery takie strumienie. Możliwy jest też kaskadowy 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.
Żądające obsługi urządzenie, stowarzyszone / danym kanałem DMA, wysyła sygnał DRRQ {DMA Rec/uest). Układ 8237A reaguje na to przejęciem kontroli nad magistralami systemu i przeprowadzeniem wymaganej transmisji, np. jednego sektora odczytanego z dyskietki do bufora w' pamięci operacyjnej (RAM), gdzie odbywła się połączenie sektorów w plik danych. W tym czasie procesor jest wolny i może, do czasu wystąpienia przerwania od kontrolera napędu dysków elastycznych (IRQ 6 - odczytano kolejny sektor), zajmować się obróbką tekstu lub giafiki. Należy tu dodać, że oczywiście nie zaws/e 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 muszą czekać. Sytuację ratuje trochę pamięć podręczna procesora (ang. cache memory) — stosowana w procesorze 80486 wewnętrzna pamięć o wielkości 8 kB. Może w niej być jednak umieszczany tylko kod programu, a nie dane. Dopiero następca procesora 80486 -Pentium - posiada 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 elastycznych. Kolejne etapy to: załadowanie akumulatora, przesłanie zawartoś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 ma „pełne ręce roboty” i nie ma mow'y o wielozadamowości.
Rysunek 4.2 przedstawia wyprowadzenia układu scalonego typu 8237A. Jak wiele innych układów-, jest on obecnie zawarty w' jednym z kilku układów scalonych wysokiej skali integracji, które znajdują się na nowoczesnej płycie głównej. Przykładowo układ 82C206 zawiera programowalne generatory przebiegów czasowych, kontroler DMA, kontroler przerwań i pamięć nieułotną CMOS. Jednak funkcje i znaczenie poszczególnych układów pozostały, ze względu na zachowanie kompatybilności w dół, te same.