ogólne pojęcia struktury Przerwania ogólne pojęcia struktury
Przerwania - pojęcia 1/25 Przerwanie - zdarzenie wewnątrz lub na zewnątrz systemu mikroprocesorowego, wymagające natychmiastowej reakcji ze strony programu wykonywanego przez mikroprocesor.
otwarcie zaworu zrzutowego Przerwania - pojęcia 2/25 Procedura obsługi przerwania - ciąg rozkazów realizujących pożądaną reakcję na przerwanie. otwarcie zaworu zrzutowego odczyt wejść obliczenia wysterowanie wyjść
Przerwania - pojęcia 3/25 Program tła (program główny) - sekwencja działań (rozkazów) mikroprocesora realizowanych gdy nie ma przerwań UWAGA: program ten nie może “odczuć” faktu, że został czasowo zawieszony przez obsługę przerwania. Ź L E D O B R Z E A,Bstos ... B:=11 A:=B*B M[101]:=A stosB,A fragment procedury obsługi przerwania: ... A:=200 B:=44 A:=A+B M[201]:=A fragment programu tła: ... A:=200 B:=44 A:=A+B M[201]:=A fragment programu tła: ... B:=11 A:=B*B M[101]:=A fragment procedury obsługi przerwania: M[201]=132 M[101]=121 M[201]=244 M[101]=121
Typowa struktura procedury obsługi przerwania: Przerwania - pojęcia 4/25 Typowa struktura procedury obsługi przerwania: 1. Składowanie na stosie rejestrów roboczych. 2. Rozpoznanie (dokładne) przyczyny przerwania. 3. Skasowanie przyczyny przerwania. 4. Dodatkowa obróbka informacji. 5. Odtworzenie rejestrów roboczych ze stosu. 6. Odblokowanie przerwań. 7. Powrót do zawieszonego programu. 1 2 3 4 5 6 7 program tła INT IE c.d. programu tła
Przerwania - pojęcia 5/25 Przykład niewłaściwej struktury działań procedury obsługi przerwania: 1. zał: odblokowanie przerwań (6) następuje przed skasowaniem przyczyny przerwania (3). 2 6 1 program tła itd. INT IE
Przykłady niewłaściwej struktury działań procedury obsługi przerwania: Przerwania - pojęcia 6/25 Przykłady niewłaściwej struktury działań procedury obsługi przerwania: 2. zał: brak skasowania przyczyny przerwania (3): 2 4 5 6 7 1 program tła INT IE ciągłe, cykliczne wykonywanie obsługi przerwania program tła 2 4 5 6 7 1 INT IE albo z pojedynczym rozkazem z programu tła
Przykłady niewłaściwej struktury działań procedury obsługi przerwania: Przerwania - pojęcia 7/25 Przykłady niewłaściwej struktury działań procedury obsługi przerwania: c.d. programu tła 3 2 4 5 7 1 program tła 3. zał: brak odblokowania systemu przerwań (6): INT IE
Przykłady niewłaściwej struktury działań procedury obsługi przerwania: Przerwania - pojęcia 7/25 Przykłady niewłaściwej struktury działań procedury obsługi przerwania: 4. zał: błędne odtworzenie rejestrów ze stosu (nie bilansujące się zapisy i odczyty na stosie): program tła INT IE 1 wykonanie przypadkowych kodów 3 2 4 5 7 6 adres powrotu Rejestr A Rejestr B Rejestr C stos : PC adres powrotu Rejestr A Rejestr B Rejestr C stos : PC
Przerwania - pojęcia 8/25 Priorytetowość (przerwań) - zróżnicowanie co do ważności (pilności) zadań realizowanych przez system mikroprocesorowy; w szczególności zadaniami tymi mogą być procedury obsługi przerwań - różnicując ich pilność dokonuje się określenia priorytetów poszczególnych przerwań;
Priorytetowość przerwań może być zrealizowana: Przerwania - pojęcia 9/25 Priorytetowość przerwań może być zrealizowana: sprzętowo - przez odpowiednie kontrolery (MSI, LSI) ... kontroler przerwań CPU I/O1 I/O2 I/On zał: priorytety: n>..>2>1
Przerwania - pojęcia 10/25 ... lub odpowiednią strukturę połączeń systemu przerwań (np. łańcuch urządzeń przerywających); priorytety: 1>2>...>n CPU I/O1 I/O2 I/On Vcc
Priorytetowość przerwań może być zrealizowana: Przerwania - pojęcia 11/25 Priorytetowość przerwań może być zrealizowana: programowo - poprzez wspólny początek procedur obsługi przerwań będący arbitrem systemu przerwań (rozpoznaje źródła aktualnych przerwań i decyduje o kolejności ich obsługi) ... CPU Vcc I/O1 I/O2 I/On
Przerwania - pojęcia 12/25 ... programowy arbiter systemu przerwań z indywidualnym sprawdzaniem (pooling) urządzeń przerywających CPU I/O1 I/O2 I/On Vcc 1 PASP 3 2 4 5 6 7 program tła INTX c.d. programu tła
Przerwania - pojęcia 13/25 ... programowy arbiter systemu przerwań z grupowym sprawdzaniem urządzeń przerywających CPU I/O1 I/O2 I/On Vcc 1 PA SP 3 2 4 5 6 7 program tła INTX c.d. programu tła
Przerwania - pojęcia 14/25 Wielopoziomowość systemu przerwań - dopuszczenie do zawieszenia aktualnie realizowanej procedury obsługi przerwania w celu realizacji innej, zwykle o wyższym priorytecie, procedury obsługi nowozgłoszonego przerwania.
Wektorowość można uzyskać: Przerwania - pojęcia 15/25 Wektorowość systemu przerwań - przypisanie każdemu źródłu przerwania odrębnej procedury jego obsługi, uruchamianej bezpośrednio w reakcji na zgłoszenie tego przerwania. Wektorowość można uzyskać: przez specjalizowane kontrolery systemów przerwań, np. 8259A; w niektórych rodzinach mikroprocesorowych, np. Z80. Brak wektorowości = programowy arbiter systemu przerwań. Wektorowość przerwań - typowe rozwiązanie w mikrokontrolerach.
chwila testowania wejścia przerwań przez CPU Przerwania - pojęcia 16/25 Asynchroniczność przerwań jako zdarzeń - przerwania z różnych źródeł pojawiają się w dowolnych chwilach czasu, zupełnie niezależnie od siebie CPU I/O1 I/O2 I/O3 Vcc INT INT1 INT2 INT3 INT cykl rozkazowy #n-1 chwila testowania wejścia przerwań przez CPU cykl rozkazowy #n cykl rozkazowy #n+1 kolejność pojawienia się przerwań (“z pkt.widzenia CPU”): 1 i 3 (“jednocześnie”), 2
Przerwania - systemy obsługi 17/25 1. Jednopoziomowy bez priorytetów Dt2 2 1 2 3 Dt3 T P2 T P1 P2 P3 Cechy: opóźnienia (Dt2 , Dt3) w reakcji na przerwanie; możliwość zgubienia przerwania podczas tych opóźnień; maks. czas zwłoki w obsłudze danego przerwania może być równy sumie czasów obsługi pozostałych przerwań w systemie. System stosowany w małych systemach mikroprocesorowych przy 1..2 źródłach przerwań.
Przerwania - systemy obsługi 18/25 2. Jednopoziomowy z priorytetami Dt2 2 3 1,2 Dt1 T P2 T P3 P2 P1 priorytety: 3>2>1 pozorna jednoczesność wystąpienia przerwań Cechy: można wskazać ważniejsze przerwania, których obsługa będzie miała pierwszeństwo przed pozostałymi; opóźnienia (Dt1 , Dt2) w reakcji na przerwanie; przerwania o niższych priorytetach mogą długo czekać na obsługę; możliwość zgubienia przerwania podczas tych opóźnień. System stosowany przy niewielkiej liczbie źródeł przerwań.
Przerwania - systemy obsługi 19/25 3. Wielopoziomowy bez priorytetów 2 1 3 2 1 T P2 P1 T P3 P2 P1 2 P3 T Cechy: każde przerwanie jest natychmiast obsługiwane; proces obsługi dowolnego przerwania może zostać zawieszony na dość długo - przez procedury obsługi pozostałych przerwań. System bardzo rzadko stosowany.
Przerwania - systemy obsługi 20/25 4. Wielopoziomowy z priorytetami 2 1 1 2 3 T P2 P1 T P1 P2 P3 2 P1 T priorytety: 3>2>1 Cechy: przerwania o niskich priorytetach dłużej czekają na obsługę; można przyśpieszyć obsługę ważniejszych przerwań. System zalecany przy większej liczbie źródeł przerwań.
Rodzaje przerwań - ich zastosowania Przerwania - rodzaje 21/25 Rodzaje przerwań - ich zastosowania 1. Przerwania zegarowe - regularne, o f > 1Hz: odmierzanie odcinków czasu (np. w ms); pomiar czasu astronomicznego; w małych systemach mikroprocesorowych: obsługa urządzeń zewnętrznych (klawiatur, wyświetlaczy, itd.).
Przerwania - rodzaje 22/25 2. Przerwania od urządzeń zewnętrznych (komputerowych) - nieregularne: informują mikroprocesor o: gotowości urządzenia do nowej transmisji informacji; zakończeniu dotychczasowej transmisji.
Przerwania - rodzaje 23/25 3. Przerwania od układów kontrolujących pracę systemu - sporadyczne, zwykle o wysokim priorytecie: sygnalizują szczególne stan pracy: zanik zasilania; błąd parzystości w bloku pamięci; załamanie się cyklu pracy oprogramowania; błąd/wyjątek procesora/koprocesora.
Przerwania - rodzaje 24/25 4. Przerwania od układów sprzężenia z obiektem - nieregularne: informują mikroprocesor o różnych zdarzeniach w kontrolowanym obiekcie: zadziałanie krańcówek alarmowych; przekroczenie poziomów alarmowych, itp.
Podział zadań pomiędzy program tła a procedury obsługi przerwań Przerwania 25/25 Podział zadań pomiędzy program tła a procedury obsługi przerwań