460 likes | 711 Views
Mikroprocesory w technice. W4 – urządzenia wejścia - wyjścia. Zdzisław Stryła Instytut Fizyki UAM. Projekt „STUDIA PODYPLOMOWE DLA NAUCZYCIELI W ZAKRESIE ICT, JĘZYKÓW OBCYCH ORAZ DRUGIEGO PRZEDMIOTU”
E N D
Mikroprocesory w technice.W4 – urządzenia wejścia - wyjścia Zdzisław Stryła Instytut Fizyki UAM Zdzisław Stryła wejścia-wyjścia
Projekt „STUDIA PODYPLOMOWE DLA NAUCZYCIELI W ZAKRESIE ICT, JĘZYKÓW OBCYCH ORAZ DRUGIEGO PRZEDMIOTU” realizowany zgodnie zSEKTOROWYM PROGRAMEM OPERACYJNYM - ROZWÓJ ZASOBÓW LUDZKICHi współfinansowany ze środków BUDŻETU PAŃSTWA i środków UNII EUROPEJSKIEJ w ramach EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO. Zdzisław Stryła wejścia-wyjścia
Układy wejścia/wyjścia • Urządzenia wejścia – wyjścia służą do wymiany informacji między systemem komputerowym, a urządzeniami zewnętrznymi (światem zewnętrznym). Zdzisław Stryła wejścia-wyjścia
Układy wejścia/wyjścia • Podział ze względu na przeznaczenie: • Układy wejść cyfrowych (równoległe, szeregowe) do wprowadzanie informacji w postaci wektorów binarnych; • Układy wyjść cyfrowych; • Układy wejść analogowych, przetwarzające sygnały z przetworników analogowych na postać cyfrową ; • Układy wyjść (kwazi- ) analogowych; Zdzisław Stryła wejścia-wyjścia
Magistrale Typowy system komputerowy zawiera jednokierunkową magistralę adresową, dwukierunkową magistralę danych i dwukierunkową magistralę sterującą. W przypadku prostszych systemów, gdzie głównym parametrem jest cena, a nie szybkość przetwarzania, ogranicza się liczbę wyprowadzeń procesora przez multipleksację magistrali danych i adresów. Zdzisław Stryła wejścia-wyjścia
magistrale Magistrala adresowa procesor pamięć I/O Urządzenia zewnętrzne/ otoczenie Magistrala danych Magistrala sterująca Zdzisław Stryła wejścia-wyjścia
magistrala multipleksowana procesor pamięć I/O Urządzenia zewnętrzne/ otoczenie Zatrzask adresowy Magistrala danych i adresów Magistrala sterująca Zdzisław Stryła wejścia-wyjścia
Adresowanie wejść i wyjść – podział ze względu na sposób współpracy z procesorem. • Układy we/wy współadresowane (memory mapped I/O) z pamięcią, widziane przez procesor, tak jak komórki pamięci: • lista rozkazów nie zawiera rozkazów we/wy; • wszystkie rozkazy dotyczące operacji na pamięci muszą być wykonalne na rejestrach we/wy. • Układy we –wy izolowane (isolated I/O) : • Lista rozkazów zawiera specjalne rozkazy wejścia i wyjścia; • Magistrala sterująca musi mieć odrębne linie do sterowania pamięci i odrębne do sterowania we/wy. Zdzisław Stryła wejścia-wyjścia
Mikroprocesor z zewnątrz procesor adresy dane memory write (zapis do pamięci) Memory read (odczyt z pamięci) Wait (czekam) ready (gotów) i/o write (zapis do WE/WY) I/O read (odczyt z WE/WY) Interrupt request (żądanie obsługi przerwania) Interrupt acknowledge (potwierdzenie przerwania) DMA request (żądanie dostępu DMA) DMA acknowledge (potwierdzenie dostępu DMA) Reset (zeruj) clk (zegar) Zdzisław Stryła wejścia-wyjścia
Operacje we –wy programowo • Operacje we –wy bezwarunkowe; • z testowaniem statusu urządzenia; • z przerwaniem wykonywania programu; • z przekazaniem sterowania (tryb DMA); Zdzisław Stryła wejścia-wyjścia
Operacje we –wy bezwarunkowe; • Polegają na wpisie danej do rejestru urządzenia we/wy (lub odczycie z) bez kontroli gotowości urządzenia do wymiany danych. • Moment transmisji jest określony przez lokalizację rozkazu we/wy w programie. • Prostota układowa i programowa; • Niebezpieczeństwo utraty danych. Zdzisław Stryła wejścia-wyjścia
Układ sprzęgający do op. bezwarunkowych Magistrala danych Bufor trójstanowy Magistrala adresów Magistrala sterująca read Dekoder adresów F Zezwolenie na odczyt Dane z urządzenia zewnętrznego Zdzisław Stryła wejścia-wyjścia
Układ wyjściowy do op. bezwarunkowych Magistrala danych Magistrala adresów Magistrala sterująca write Dekoder adresów Zezwolenie na zapis F Bufor wyjściowy Dane do urządzenia zewnętrznego Zdzisław Stryła wejścia-wyjścia
Sprzęg klawiatury procesor adresy Dekoder adresów Bufor trójstanowy F dane read GND +5V Zdzisław Stryła wejścia-wyjścia
Sprzęg wyświetlacza procesor adresy Dekoder adresów F dane Bufor trójstanowy write Diody świecące +5V Zdzisław Stryła wejścia-wyjścia
Operacje we –wy z testowaniem stanu urządzenia we/wy • Wymiana danych poprzedzana jest sprawdzeniem gotowości urządzenia we/wy do transmisji przez sprawdzenie jego rejestru statusowego. • Tworzona jest programowa pętla przepytywania: • Prostota programowa; • Straty czasu w oczekiwaniu na gotowość; Zdzisław Stryła wejścia-wyjścia
Operacje we –wy z testowaniem statusu urządzenia Odczyt rejestru statusowego urz. we/wy Czy układ gotów do transmisji? nie tak transmisja Zdzisław Stryła wejścia-wyjścia
START ENABLE BUSY Przykład – sprzęg przetwornika a/d MIERZONE NAPIĘCIE WYJŚCIE CYFROWE START Czas przetwarzania BUSY ENABLE Dane na magistrali t Zdzisław Stryła wejścia-wyjścia
Dekoder adresów Sprzęg przetwornika procesor adresy F A1 A3 MIERZONE NAPIĘCIE A2 START dane ENABLE write BUSY WYJŚCIE CYFROWE read Zdzisław Stryła wejścia-wyjścia
Przerwania • Przerwania umożliwiają reakcję systemu na zdarzenia zewnętrzne, zdarzenia istotne dla wykonywanego programu i efektywne wykorzystanie zasobów. • Ich cechą charakterystyczną jest przerwanie wykonywania aktualnego zadania, zapamiętanie kontekstu (stanu procesora, itd..), przejście do procedury obsługi przerwania, a po jej zakończeniu powrót do przerwanego zadania. Zdzisław Stryła wejścia-wyjścia
przerwania • Przerwania sprzętowe (zewnętrzne). • Urządzenie we/wy zgłasza żądanie obsługi. • Przerwania wewnętrzne (wyjątki). • Obsługa sytuacji, w których program nie może być kontynuowany (np. zdekodowanie nieistniejącego rozkazu, niedopuszczalnego trybu adresowania, naruszenie ochrony pamięci). • Przerwania programowe (pułapki) • Metoda komunikacji z systemem operacyjnym dla wykonania działań (usług) zastrzeżonych dla S.O. Zdzisław Stryła wejścia-wyjścia
Przerwania sprzętowe • Urządzenie zewnętrzne zgłasza żądanie obsługi: • W niektórych procesorach każde źródło przerwań ma swoją linię zgłoszeń, dzięki czemu jego identyfikacja jest bezproblemowa; • znacznie częściej jest jedna linia zgłoszenia przerwań, co wymaga dodatkowych czynności dla identyfikacji źródła. Zdzisław Stryła wejścia-wyjścia
Obsługa przerwania • Na końcu cyklu rozkazowego sprawdzana jest linia żądania przerwań; • W przypadku wystąpienia żądania przerwania należy: • Zidentyfikować zgłoszenie; • Zapamiętać stan przerywanego programu; • Zablokować zgłoszenia; • Wywołać odpowiedni program obsługi. • Po wykonaniu obsługi należy odtworzyć kontekst i powrócić do przerwanego programu. Zdzisław Stryła wejścia-wyjścia
Cykl rozkazowy z przerwaniami Pobranie rozkazu Pobranie argumentu Zapisanie wyniku Obliczenie adresu rozkazu Dekodo-wanie rozkazu Oblicze-nie adresu argumentu Operacja na danych Oblicze-nie adresu wyniku Następny rozkaz Wyznaczenie numeru przerwania Zapisanie kontekstu Sprawdze-nie przerwań Następny element wektora Zdzisław Stryła wejścia-wyjścia
Zgłaszanie przerwań –suma „na drucie” +5V INTR = å INT I Int 0 Int n Zdzisław Stryła wejścia-wyjścia
Maskowanie przerwań • Niektóre przerwania są czynne zawsze – niemaskowalne; • Większość można programowo blokować – maskować; • Ponadto można programowo wyłączyć cały system przerwań maskowalnych. Zdzisław Stryła wejścia-wyjścia
Identyfikacja źródła przerwania • Wiele linii przerwań; • Odpytywanie programowe; • Odpytywanie sprzętowe; • Arbitraż na magistrali. Zdzisław Stryła wejścia-wyjścia
Wiele linii przerwań; • Stosuje się, gdy liczba urządzeń przerywających jest niewielka; • Przede wszystkim w niewielkich systemach „zamkniętych” . Zdzisław Stryła wejścia-wyjścia
Odpytywanie programowe; • Po wykryciu zgłoszenia wywoływana jest procedura, która sprawdza, który moduł we/wy zgłosił przerwanie, przepytując wszystkie wszystkie po kolei : • Przy użyciu specjalnej linii sterującej i kolejnym adresowaniu modułów; • Lub przez odczytanie rejestrów statusowych; • Po zidentyfikowaniu urządzenia przerywającego uruchamiana jest procedura obsługi przerwania. • Wadą jest czasochłonność. Zdzisław Stryła wejścia-wyjścia
Programowa identyfikacja źródła przerwania przerwanie procedura obsługi 1 T INTR1? N procedura obsługi 2 T INTR2? N procedura obsługi n T INTR n? N powrót Zdzisław Stryła wejścia-wyjścia
Odpytywanie sprzętowe – przerwania wektorowe • System łańcuchowy – sygnał potwierdzenia przerwania przechodzi po kolei przez moduły we/wy, aż natrafi na ten, który zgłaszał przerwanie. Moduł odpowiada ustawiając na magistrali danych swój identyfikator (np. adres wskaźnika pułapki lub adres pułapki); • Moduł jednocześnie blokuje przejście sygnału potwierdzenia przerwania do następnych modułów; • Kolejność ustawienia modułów w łańcuchu decyduje o ich priorytecie. Zdzisław Stryła wejścia-wyjścia
Odpytywanie sprzętowe II; • Koder priorytetowy – na jego wyjściu pojawia się numer urządzenia o najwyższym priorytecie spośród zgłaszających. • Jest to metoda arbitrażu równoległego. Zdzisław Stryła wejścia-wyjścia
Bezpośredni system przerwań procesor dane INTA Rejestr maski INTR Koder priorytetowy EI U1 Un Zezwolenie ogólne Zdzisław Stryła wejścia-wyjścia
Zapamiętanie kontekstu • Przed przejściem do procedury obsługi przerwania należy zapamiętać informacje niezbędne do kontynuacji programu: • Zawartość licznika programu, czyli adres następnego rozkazu; • Słowo stanu procesora; • Zawartość innych rejestrów procesora, które będą używane w trakcie obsługi przerwania. Zdzisław Stryła wejścia-wyjścia
Użycie stosu systemowego • Licznik programu i słowo stanu procesora są zwykle odkładane na stos automatycznie; • Pozostałe rejestry należy odłożyć na stos programowo na początku procedury obsługi przerwania. • Przed powrotem z procedury obsługi przerwania odtwarzamy zawartość rejestrów. • Rozkaz powrotu z przerwania (RETI) powoduje zdjęcie ze stosu zawartości rejestru stanu procesora i licznika programu. Zdzisław Stryła wejścia-wyjścia
Przełączanie kontekstu • Zamiast czasochłonnego odkładania zawartości rejestrów na stos można wyposażyć procesor w dodatkowe zestawy rejestrów, podstawiane w miejsce podstawowych przy wejściu w obsługę przerwania. • Metoda ta jest szybka, ale utrudnia stosowanie wielopoziomowego systemu przerwań; Zdzisław Stryła wejścia-wyjścia
Blokada zgłoszeń • Zapewnia niezakłócone wykonanie procedury obsługi przerwania. • Ponowna aktywizacja następuje przy powrocie z przerwania; • W przypadku, gdy wymagamy, aby przerwanie o wyższym priorytecie od aktualnie obsługiwanego zostało natychmiast obsłużone, nie możemy blokować zgłoszeń. • dla rozwiązań z przełączaniem kontekstu dależy kontrolować stopień zagnieżdżenia. Zdzisław Stryła wejścia-wyjścia
Program główny Obsługa przerwań Identyfikacja przerwania; Zachowanie kontekstu; Dezaktywizacja przerwań Procedura obsługi przerwania. odtworzenie kontekstu; aktywizacja przerwań Zdzisław Stryła wejścia-wyjścia
Obsługa przerwańsekwencyjna wielopoziomowa Przerwanie N Przerwanie N Przerwanie M Przerwanie M Zdzisław Stryła wejścia-wyjścia
sekwencyjna Obsługa przerwań 1 2 4 3 Zgłoszenia przerwań Procedury obsługi 1 4 3 2 t wielopoziomowa 1 2 4 3 Zgłoszenia przerwań 4 Procedury obsługi 2 3 2 cd 1 1 cd t Zdzisław Stryła wejścia-wyjścia
Organizacja pamięci dla wektorowego systemu przerwań. • Identyfikacja źródła przerwania polegająca na podaniu adresu początkowego procedury obsługi nie jest wygodna. • Znacznie częściej identyfikacja następuje wg numeru przerwania. • W dolnej części pamięci rezerwuje się obszar na wektor adresów. Dana komórka wektora adresów jest identyfikowana przez numer przerwania (z ew. mnożnikiem). Zdzisław Stryła wejścia-wyjścia
Organizacja pamięci dla wektorowego systemu przerwań. • Wektor adresów (wskaźników pułapek) zawiera adresy początków procedur obsługi poszczególnych przerwań. • Metoda ta umożliwia łatwą relokację procedur obsługi przerwań. Zdzisław Stryła wejścia-wyjścia
Organizacja pamięci dla wektorowego systemu przerwań. Pułapka 1 Zdzisław Stryła wejścia-wyjścia
Operacje we/wy z przekazaniem sterowania (tryb DMA) • Przesłania dużych bloków danych między między pamięcią, a urządzeniem we/wy z pośrednictwem procesora prowadzi do spowolnienia wymiany. Zdzisław Stryła wejścia-wyjścia
Operacje we/wy z przekazaniem sterowania (tryb DMA) • Operacje bezpośredniego dostępu do pamięci polegają na tym, że: • Transmisja następuje pomiędzy wyznaczonym obszarem pamięci (buforem), a rejestrami układu we/wy z pominięciem procesora. • Procesor zawiesza swe działanie na czas transmisji bez naruszania kontekstu (hold). • Kontrolę nad magistralami przejmuje układ sprzęgający urządzenia we/wy. Zdzisław Stryła wejścia-wyjścia
Układ DMA • Układ sprzęgu DMA winien być wyposażony w licznik adresów i licznik słów, które umożliwiają sterowanie transmisją bloku. • Wartości początkowe układ DMA otrzymuje z procesora. • Transmisja blokowa; • Transmisja z wykradaniem cykli. Zdzisław Stryła wejścia-wyjścia