ogólne pojęcia struktury Przerwania ogólne pojęcia struktury
Przerwania - pojęcia 1/22 Przerwanie - zdarzenie wewnątrz lub na zewnątrz systemu mikroprocesorowego, wymagające natychmiastowej reakcji ze strony programu wykonywanego przez mikroprocesor.
otwarcie zaworu spustowego Przerwania - pojęcia 2/22 Procedura obsługi przerwania - ciąg rozkazów realizujących pożądaną reakcję na przerwanie. otwarcie zaworu spustowego odczyt wejść obliczenia wysterowanie wyjść
Przerwania - pojęcia 3/22 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/22 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 c.d. programu tła INT
Przerwania - pojęcia 5/22 Przykład niewłaściwej struktury działań procedury obsługi przerwania: 1. zał: odblokowanie przerwań (6) następuje przed skasowaniem przyczyny przerwania (3). 1 2 6 1 2 6 1 2 6 itd. 1 2 6 1 2 6 program tła INT
Przykłady niewłaściwej struktury działań procedury obsługi przerwania: Przerwania - pojęcia 6/22 Przykłady niewłaściwej struktury działań procedury obsługi przerwania: 2 4 5 6 7 1 program tła INT 2. zał: brak skasowania przyczyny przerwania (3): c.d. programu tła 3 2 4 5 7 1 program tła INT 3. zał: brak odblokowania systemu przerwań (6):
Przerwania - pojęcia 7/22 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 8/22 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 9/22 ... 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 10/22 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 11/22 ... 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 12/22 ... 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 13/22 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.
Przerwania - systemy obsługi 14/22 1. Jednopoziomowy bez priorytetów Dt1 2 1 2 3 Dt2 T P2 T P1 P2 P3 Cechy: opóźnienia (Dt1 , Dt2) 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 15/22 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 16/22 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 17/22 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 18/22 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 19/22 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 20/22 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 21/22 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 22/22 Podział zadań pomiędzy program tła a procedury obsługi przerwań