Podstawy techniki cyfrowej Układy wejścia-wyjścia mgr inż. Bogdan Pietrzak ZSR CKP Świdwin 1
Układem wejścia-wyjścia nazywamy układ elektroniczny pośredniczący w wymianie informacji pomiędzy procesorem i pamięcią systemu z jednej strony a urządzeniem peryferyjnym z drugiej. Dla systemu mikroprocesorowego układ wejścia-wyjścia widoczny jest zwykle jako rejestr lub zespół rejestrów o określonych adresach oraz pewien zestaw sygnałów sterujących. 2
Potrzeba pośredniczenia wynika z : ró nic w szybkości działania urządzeń ró nic parametrów elektrycznych urządzeń urządzenie wymaga podania informacji w określonym formacie Przykładem urządzeń wejścia wyjścia są : pamięci dyskowe klawiatura monitor ploter itp. 3
Układy I/O współadresowalne z pamięcią operacyjną W przypadku układów współadresowalnych z pamięcią operacyjną wybieramy obiekt, na którym dokonujemy operacji (komórka pamięci lub rejestr układu wejścia-wyjścia), za pomocą adresu. Sygnały sterujące są wspólne dla pamięci i układów wejściawyjścia. 4
Układy I/O izolowane Dla izolowanych układów wejścia-wyjścia wybiera się obiekt, na którym dokonywana jest operacja (komórka pamięci lub rejestr układu wejściawyjścia), za pomocą sygnałów sterujących. Przestrzenie adresowe pamięci i układów wejściawyjścia nie są rozdzielone. 5
Operacje wejścia-wyjścia Operacjami wejścia-wyjścia nazywa się całokształt działań potrzebnych do realizacji wymiany informacji pomiędzy mikroprocesorem i pamięcią z jednej strony a układem wejścia-wyjścia z drugiej. Operacje wejścia-wyjścia realizują komunikację pomiędzy systemem mikroprocesorowym a otoczeniem. 6
Operacje wejścia-wyjścia z bezpośrednim sterowaniem przez mikroprocesor Operacje tego typu mo na podzielić na trzy podstawowe grupy: operacje bezwarunkowe, operacje z testowaniem stanu układu wejścia-wyjścia, operacje z przerwaniem programu. 7
Bezwarunkowe operacje wejściawyjścia Operacje bezwarunkowe cechują się tym, e procesor nie sprawdza gotowości układu wejściawyjścia do wymiany informacji lecz bezpośrednio nakazuje ich realizację. Jest oczywiste, e w ten sposób mo na sterować jedynie bardzo wąską grupą układów wejścia-wyjścia, stąd zastosowanie tego typu operacji jest bardzo ograniczone. Przykładem mo e tu być sterowanie wyświetlaniem zestawu diod podczas monitorowania określonego obszaru magistrali. 8
Operacje wejścia-wyjścia z testowaniem stanu układu Operacje z testowaniem są związane ze sprawdzeniem stanu gotowości układu wejściawyjścia przed rozpoczęciem wymiany informacji. Dopiero po potwierdzeniu przez układ takiej gotowości następuje wymagana wymiana. Jest to typowy sposób stosowany przy współpracy systemu z przetwornikami analogowo-cyfrowymi. Operacje z testowaniem posiadają istotną wadę polegającą na konieczności zapewnienia stałej pętli przepytywania urządzenia. 9
Operacje wejścia wyjścia z przerwaniem programu Procesor wykonuje pewien program zwany programem głównym, oczekując na sygnał gotowości do wymiany zgłaszany przez układ wejścia-wyjścia (bez programowego testowania układu).je eli taki sygnał nadejdzie (jest to tzw. sygnał zgłoszenia przerwania) wówczas procesor przerywa wykonywanie programu głównego (po zakończeniu realizacji bie ącej instrukcji), zapamiętuje miejsce programu, w którym nadeszło zgłoszenie i przechodzi do realizacji specjalnego programu zwanego programem obsługi przerwań (ISR interrupt service routime) Program obsługi przerwania powinien zrealizować wymianę informacji z układem wejścia-wyjścia zgłaszającym gotowość. Po zakończeniu wymiany procesor powraca do programu głównego i kontynuuje jego wykonywanie. 10
11
Sterownik przerwań pośredniczenie w przyjmowaniu zgłoszeń przerwań pomiędzy mikroprocesorem a innymi układami wejścia-wyjścia, przyjmowanie zgłoszeń przerwań od wielu układów wejściawyjścia, wybór spośród kilku jednocześnie zgłoszonych przerwań tego, które zostanie obsłu one, zasygnalizowanie dokonanego wyboru przez podanie numeru (adresu) układu wejścia-wyjścia, z którym zostanie dokonana wymiana, a dokładniej, adresu programu obsługi przerwania realizującego tą wymianę, po przyjęciu sygnałów zgłoszeń przerwań od układów wejścia-wyjścia i wyborze układu, który będzie obsłu ony, wygenerowanie sygnału zgłoszenia przerwania bezpośrednio do mikroprocesora. 12
Sterownik przerwań 13
Działanie sterownika przerwań W celu umo liwienia przyjmowania kilku przerwań jednocześnie sterownik przerwań dysponuje określoną ilością wejść sygnałów zgłoszenia przerwań od okładów wejścia-wyjścia. Sygnały te trafiają do rejestru zgłoszeń przerwań IRR (Interrupt Request Register). Zgłoszenie przerwania mo e być maskowalne, co oznacza, e mimo ich zgłoszenia nie będą przyjmowane. Bity maski są umieszczane w rejestrze maski IMR ( Interrupt Mask Register). Następnie przyjmowanie przerwań jest poddawane arbitrażowi, co oznacza wybranie spośród 14 zgłoszonych jednocześnie, jednego przerwania.
Ka demu przerwaniu sprzętowemu jest przyporządkowany określony stopień jego wa ności zwany priorytetem przerwania. Ze wszystkich zgłoszonych przerwań jest wybierane to, które posiada najwy szy priorytet. Wynikiem arbitrażu jest numer zgłoszonego, niemaskowalnego przerwania o najwy szym priorytecie. Numer ten jest wpisywany do rejestru przerwań obsługiwanych ISR (in-service-register). 15
Tablica wektorów przerwań Tablica wektorów przerwań jest struktura umieszczoną w pamięci operacyjnej komputera. W komputerach typu IBM PC zaczyna się od adresu 0 i kończy się na adresie 3FFh. Ka da pozycja tablicy jest związana z dokładnie jednym przerwaniem i zawiera adres komórki pamięci, w której znajduje się początek programu obsługującego to przerwanie. 16
Schemat wykonywania przerwania 17
Przerwania sprzętowe a przerwania programowe Przerwania realizowane za pomocą sterownika przerwań noszą nazwę przerwań sprzętowych. Źródłem ich zgłoszenia jest ądanie pochodzące od określonego urządzenia. Dla systemów z mikroprocesorami rodziny Intel 80x86 jest mo liwy inny rodzaj przerwań zwanych przerwaniami programowymi. Są one wynikiem realizowania przez mikroprocesor instrukcji INT n, gdzie n jest heksadecymalnym numerem pozycji w tablicy wektorów przerwań. Trzecim rodzajem przerwań są tzw. wyjątki (exception) generowane przez mikroprocesor przy pojawieniu się powa nych błędów. 18
Operacje wejścia-wyjścia z pośrednim sterowaniem przez mikroprocesor (DMA) DMA direct memory access bezpośredni dostęp do pamięci, typ operacji polegającej na zainicjalizowaniu przez mikroprocesor a następnie sterowanej i wykonywanej przez specjalizowany sterownik DMA. Przy operacji DMA, transmisja informacji przebiega pomiędzy określonym urządzeniem wejścia-wyjścia a wydzielonym obszarem buforowym w pamięci. Przebieg operacji nadzoruje sterownik DMA, co oznacza, e generuje on wszystkie sygnały i adresy potrzebne do realizacji takiego zadania. ądanie przejęcia kontroli nad magistralami polega na zgłoszeniu do mikroprocesora sygnału sterującego 19 HOLD.
W odpowiedzi na sygnał HOLD mikroprocesor przechodzi w tzw. stan zawieszenia, polegający na elektrycznym odseparowaniu od magistral (bramki trójstanowe). Przejście w stan zawieszenia jest sygnalizowane poprzez stan aktywny na wyjściu HLDA ( hold acknowledge). Operacja DMA nie wymaga adnych zmian stanu rejestrów mikroprocesora. W realizacji operacji DMA wyró nia się trzy etapy: inicjacja operacji realizacja operacji zakończenie operacji 20
Inicjacja operacji DMA polega na przekazaniu do sterownika DMA następujących informacji : 1. 2. 3. 4. 5. wielkość bloku do przetransmitowania adres pierwszej komórki bufora w pamięci rodzaj operacji (zapis lub odczyt) sposób realizacji operacji DMA adres urządzenia wejścia-wyjścia 21
Operacja bez u ycia DMA Operacja DMA 22
Realizacja operacji DMA przez sterownik DMA 23
Źródła: 1. Jacek Bartman Architektura komputerów 2. Józef Kalisz Układy mikroelektroniczne.układy cyfrowe. WAT wewn. 634/77 3. Krzysztof Wojtuszkiewicz Urządzenia techniki komputerowej. 24