View
44
Download
4
Category
Preview:
DESCRIPTION
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” - PowerPoint PPT Presentation
Citation preview
Zdzisław Stryła wejścia-wyjścia 1
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 2
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 3
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 5
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 6
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 7
magistrale
procesor pamięć I/O
Magistrala adresowa
Magistrala danych
Magistrala sterująca
Urządzenia
zewnętrzne/
otoczenie
Zdzisław Stryła wejścia-wyjścia 8
magistrala multipleksowana
procesor pamięć I/O
Magistrala danych i adresów
Magistrala sterująca
Urządzenia
zewnętrzne/
otoczenie
Zatrzask adresowy
Zdzisław Stryła wejścia-wyjścia 9
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 10
Mikroprocesor z zewnątrz
proce
sor
adresy
dane
memory write (zapis do pamięci)
Memory read (odczyt z pamięci)
i/o write (zapis do WE/WY)
I/O read (odczyt z WE/WY)
DMA request (żądanie dostępu DMA)
DMA acknowledge (potwierdzenie dostępu DMA)
Interrupt acknowledge (potwierdzenie przerwania)
Interrupt request (żądanie obsługi przerwania)
Wait (czekam)
ready (gotów)
Reset (zeruj)
clk (zegar)
Zdzisław Stryła wejścia-wyjścia 11
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 12
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 13
Układ sprzęgający do op. bezwarunkowychMagistrala danych
Magistrala adresów
Magistrala sterująca
Dekoder adresów
Bufor trójstanowy
read
Dane z urządzenia zewnętrznego
Zezwolenie na odczyt
Zdzisław Stryła wejścia-wyjścia 14
Układ wyjściowy do op. bezwarunkowychMagistrala danych
Magistrala adresów
Magistrala sterująca
Dekoder adresów
write
Dane do urządzenia zewnętrznego
Zezwolenie na zapis
Bufor wyjściowy
Zdzisław Stryła wejścia-wyjścia 15
proce
sor
Sprzęg klawiaturyadresy Dekoder
adresów
read
+5V
GND
Bufor trójstanowy
dan
e
Zdzisław Stryła wejścia-wyjścia 16
proce
sor
Sprzęg wyświetlaczaadresy Dekoder
adresów
write
+5V
Diody świecące
dan
e
Bufor trójstanowy
Zdzisław Stryła wejścia-wyjścia 17
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 18
Operacje we –wy z testowaniem statusu urządzenia
Czy układ gotów
do transmisji?
Odczyt rejestru statusowego urz. we/wy
transmisja
nie
tak
Zdzisław Stryła wejścia-wyjścia 19
Przykład – sprzęg przetwornika a/d
STARTENABLEBUSY WYJŚCIE CYFROWE
MIERZONE NAPIĘCIE
START
BUSY
ENABLE
t
Czas przetwarzania
Dane na magistrali
Zdzisław Stryła wejścia-wyjścia 20
proce
sor
Sprzęg przetwornikaadresy
Dekoder adresów
dan
e STARTENABLEBUSY WYJŚCIE CYFROWE
MIERZONE NAPIĘCIE A1 A2 A3
write
read
Zdzisław Stryła wejścia-wyjścia 21
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 22
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 23
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 24
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 25
Cykl rozkazowy z przerwaniami
Pobranie rozkazu
Obliczenie adresu
rozkazu
Dekodo-wanie
rozkazu
Oblicze-nie adresu
argumentu
Operacja na danych
Oblicze-nie adresu wyniku
Sprawdze-nie
przerwań
Wyznaczenie numeru przerwania Zapisanie kontekstu
Pobranie argumentu
Zapisanie wyniku
Następny element wektora
Następny rozkaz
Zdzisław Stryła wejścia-wyjścia 26
Zgłaszanie przerwań –suma „na drucie”
+5V
Int 0 Int n
INTR =
Zdzisław Stryła wejścia-wyjścia 27
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 28
Identyfikacja źródła przerwania
• Wiele linii przerwań;
• Odpytywanie programowe;
• Odpytywanie sprzętowe;
• Arbitraż na magistrali.
Zdzisław Stryła wejścia-wyjścia 29
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 30
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 31
Programowa identyfikacja źródła przerwaniaprzerwanie
INTR1?
INTR2?
INTR n?
procedura
obsługi 1
procedura
obsługi 2
procedura
obsługi n
powrót
T
T
T
N
N
N
Zdzisław Stryła wejścia-wyjścia 32
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 33
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 34
Bezpośredni system przerwańprocesor
Koder priorytetowy
dane
INTR
INTA
UnU1
EI
Zezwolenie
ogólne
Rejestr maski
Zdzisław Stryła wejścia-wyjścia 35
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 36
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 37
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 38
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 39
Obsługa przerwań
reti
Identyfikacja przerwania;Zachowanie kontekstu;
Dezaktywizacja przerwań
odtworzenie kontekstu;aktywizacja przerwań
Program główny
Procedura obsługi
przerwania.
Zdzisław Stryła wejścia-wyjścia 40
Obsługa przerwańsekwencyjna wielopoziomowa
reti
reti
Przerwanie N
Przerwanie M
reti
reti
Przerwanie N
Przerwanie M
Zdzisław Stryła wejścia-wyjścia 41
Obsługa przerwańsekwencyjna
t
1 2 4 2 cd
1 2 4 3 Zgłoszenia przerwań
Procedury obsługi
t
1 4 3 2
wielopoziomowa
1 2 4 3Zgłoszenia przerwań
Procedury obsługi
3 1 cd
Zdzisław Stryła wejścia-wyjścia 42
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 43
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 44
Organizacja pamięci dla
wektorowego systemu
przerwań.
Adr. Puł. 1
Adr. Puł. 2
Adr. Puł. 3
Rozk.1.
Rozk.2.
Pułapka 1
Zdzisław Stryła wejścia-wyjścia 45
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 46
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 47
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.
Recommended