Kontroler DMA
Transkrypt
Kontroler DMA
Architektura Systemów Komputerowych Bezpośredni dostęp do pamięci Realizacja zależności czasowych 1 Bezpośredni dostęp do pamięci Bezpośredni dostęp do pamięci (ang: direct memory access - DMA) to transfer danych pomiędzy pamięcią systemu mikroprocesorowego i urządzeniem peryferyjnym bez udziału mikroprocesora Tego typu transfer musi być realizowany przez samodzielną jednostkę, przejmującą od mikroprocesora sterowanie magistralami mikrokomputera – kontroler DMA 2 Bezpośredni dostęp do pamięci – architektura Magistrala danych Magistrala adresowa Mikroprocesor HRQ HLDA Magistrala sterująca IOR IOW MEMR MEMW Kontroler DMA DREQ DACK Pamięć Układy wejścia – wyjścia 3 Bezpośredni dostęp do pamięci Cechy: Transfer danych odbywa się na żądanie urządzenia I/O w tzw. kanale DMA Kontroler DMA wytwarza adresy komórek pamięci i sygnały odczytu/zapisu zarówno dla pamięci jak i urządzenia I/O Transfer pojedynczego słowa odbywa się w jednym cyklu dostępu do pamięci Podczas transferu DMA mikroprocesor może wykonywać program z wewnętrznej pamięci podręcznej (CACHE) 4 Bezpośredni dostęp do pamięci Zalety: Transfer pojedynczego słowa jest dwa razy szybszy, niż z udziałem mikroprocesora, gdyż nie wymaga dwóch dostępów do pamięci Transmisja w trybie DMA przynosi znaczącą oszczędność czasu w przypadku przesyłania większych bloków danych 5 Bezpośredni dostęp do pamięci: transfer pamięć - I/O Magistrala danych Magistrala adresowa WR DREQ DACK RD IOR IOW MEMR MEMW Kontroler DMA Pamięć Układy wejścia – wyjścia 6 Bezpośredni dostęp do pamięci: transfer I/O - pamięć Magistrala danych Magistrala adresowa RD DREQ DACK WR IOR IOW MEMR MEMW Kontroler DMA Pamięć Układy wejścia – wyjścia 7 Bezpośredni dostęp do pamięci Cykl: otwarcie kanału DMA, transfer, zamknięcie Urządzenie I/O zgłasza żądanie transferu danych kontrolerowi DMA sygnałem DREQ Kontroler DMA żąda zwolnienia magistral przez mikroprocesor sygnałem HRQ Mikroprocesor zwalnia magistrale i informuje o tym kontroler sygnałem HLDA Kontroler DMA potwierdza otwarcie kanału DMA sygnałem DACK Kontroler DMA steruje przesłaniem bloku danych pomiędzy pamięcią i urządzeniem I/O Kontroler zamyka kanał przez zwolnienie sygnałów HOLD i DACK po przesłaniu założonego bloku danych lub zwolnieniu DREQ 8 Kontroler DMA Cechy kontrolera DMA: Kontroler DMA jest samodzielnym procesorem mogącym przejąć sterowanie magistral systemu mikroprocesorowego. Kontroler DMA zazwyczaj posiada zwielokrotnione zasoby pozwalające na realizację kilku kanałów DMA o różnym priorytecie. Każdy kanał jest obsługiwany przez oddzielną, wewnętrzną logikę w kontrolerze połączoną z rejestrem adresującym pamięć i licznikiem słów pozostałych do przesłania. 9 Kontroler DMA Cechy kontrolera DMA, cd: Kontroler jest układem programowalnym, pozwala na zaprogramowanie: - początkowego adresu bloku danych w pamięci - wielkości transferowanego bloku danych – liczby słów - trybu transmisji - priorytetu kanału DMA Programowanie kontrolera DMA jest realizowane przez mikroprocesor i polega na zapisaniu odpowiednich wartości do jego wewnętrznych rejestrów, widzianych jako rejestry w przestrzeni I/O. 10 Kontroler DMA Schemat blokowy IOR IOW MEMR MEMW Kontroler DMA DREQ0 DACK0 D A DREQ1 DACK2 … HRQ HLDA DREQn DACKn 11 Kontroler DMA – symbol i logika kontrolera 8237 12 Kontroler DMA – tryby pracy Tryby pracy na przykładzie kontrolera Intel82C37 Idle – brak transferu, obserwacja linii DREQ Single – wykonanie pojedynczego przesłania po każdym zgłoszeniu przerwania Block – przesłanie bloku danych aż do wyzerowania licznika słów Demand – tryb podobny do Block, ale przerywany zaniknięciem sygnału DRQ albo zgłoszeniem o wyższym priorytecie Cascade – tryb używany przez kontroler podrzędny w kaskadowym połączeniu kontrolerów Verify – wewnętrzna diagnostyka układu 13 Przykład współpracy kontrolera DMA z kontrolerem dźwięku Magistrala danych Magistrala adresowa Dane dźwiękowe WR RD IOR IOW MEMR MEMW Kontroler DMA Pamięć Kontroler dźwięku Bufor DREQ DACK DAC 14 Realizacja zależności czasowych – układ czasowy Zadania układu czasowego: Generowanie precyzyjnych opóźnień czasowych Generowanie sygnałów o zadanej częstotliwości Historyczne wykorzystanie: - inicjalizacja cyklu odświeżania pamięci DRAM - realizacja zegara czasu rzeczywistego Generowanie sygnału PWM (realizowane w mikrokontrolerach do sterowania urządzeniami) 15 Realizacja zależności czasowych – układ czasowy Cechy układu czasowego: Zawiera zbiór liczników taktowanych sygnałem zegarowym pochodzącym z zewnętrznego źródła lub wewnętrznego oscylatora Zazwyczaj zapewnia różne tryby zliczania: NBC, BCD, w górę, w dół Jest układem programowalnym, pozwala na: - wybór źródła sygnału zegarowego i ew. podziału preskalera - zaprogramowanie stanu początkowego liczników - konfigurację trybu pracy liczników 16 Przykład układu czasowego Widok i schemat blokowy układu Intel82C54 17 Przykładowe zastosowanie układu czasowego Generowanie sygnału dźwiękowego o zaprogramowanej częstotliwości dla głośnika systemowego w komputerze klasy PC Filtr dolnoprzepustowy Wzmacniacz audio 18