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 Mikroprocesor HRQ HLDA Magistrala adresowa 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 IOR IOW MEMR MEMW Pamięć RD WR Kontroler DMA DREQ DACK Układy wejścia wyjścia 6
Bezpośredni dostęp do pamięci: transfer I/O - pamięć Magistrala danych Magistrala adresowa IOR IOW MEMR MEMW Kontroler DMA DREQ DACK WR Pamięć RD 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 D A HRQ HLDA IOR IOW MEMR MEMW Kontroler DMA DREQ0 DACK0 DREQ1 DACK2 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 IOR IOW MEMR MEMW Kontroler DMA DREQ DACK Pamięć Dane dźwiękowe RD WR Kontroler dźwięku Bufor 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