Przerwania
description
Transcript of Przerwania
Przerwania
ogólne pojęciastruktury
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.
Przerwania - pojęcia 2/22
Procedura obsługi przerwania - ciąg rozkazów realizujących pożądaną
reakcję na przerwanie.
odczyt wejść
obliczenia
wysterowaniewyjść
otwarciezaworu
spustowego
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.
...
A:=200
B:=44
A:=A+B
M[201]:=A
...
fragment programu
tła:
...B:=11A:=B*BM[101]:=A
...
fragment procedury
obsługi przerwania:
M[201]=132 M[101]=121
...
A:=200
B:=44
A:=A+B
M[201]:=A
...
fragment programu
tła:
A,Bstos...
B:=11A:=B*BM[101]:=A
...stosB,A
fragment procedury
obsługi przerwania:
M[201]=244 M[101]=121
Ź
L
E
D
O
B
R
Z
E
c.d. programu tła32 4 5 6 71
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.
program tła
INT
2 61
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).
program tła
INT
2 61 2 61 2 61 2 61 itd.
Przerwania - pojęcia 6/22
Przykłady niewłaściwej struktury działań procedury obsługi przerwania:
c.d. programu tła32 4 5 71program tła
INT
3. zał: brak odblokowania systemu przerwań (6):
2 4 5 6 71program tła 2 4 5 6 71 2 4 5 6 71
INT
2. zał: brak skasowania przyczyny przerwania (3):
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ń;
Przerwania - pojęcia 8/22
Priorytetowość przerwań może być zrealizowana:
• sprzętowo - przez odpowiednie kontrolery (MSI, LSI) ...
kontrolerprzerwań
CPU
I/O1 I/O2 I/On
zał: priorytety: n>..>2>1
priorytety: 1>2>...>n
CPU
I/O1 I/O2 I/On
Vcc
Vcc
Przerwania - pojęcia 9/22
... lub odpowiednią strukturę połączeń systemu przerwań
(np. łańcuch urządzeń przerywających);
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
I/O1 I/O2 I/On
Vcc
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
c.d. programu tła4 5 6 71 32PASPprogram tła
INTX
Przerwania - pojęcia 12/22
... programowy arbiter systemu przerwań z grupowym sprawdzaniem urządzeń przerywających
c.d. programu tła4 5 6 71 32PASPprogram tła
INTX
CPU
I/O1 I/O2 I/On
Vcc
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
t1
2 1 2 3
t2
T P2 T P1 P2 P3
1. Jednopoziomowy bez priorytetów
Cechy:
• opóźnienia (t1 , t2) 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
Cechy:• można wskazać ważniejsze przerwania, których obsługa będzie miała pierwszeństwo przed pozostałymi;
• opóźnienia (t1 , t2) 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ń.
t2
2 3 1,2
t1
T P2 T P3 P2 P1
pozorna jednoczesnośćwystąpienia przerwań
priorytety: 3>2>1
Przerwania - systemy obsługi 16/22
3. Wielopoziomowy bez priorytetów
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.
2 1 3 2 1
T P2 P1 T P3 P2 P1 2 P3 T
Przerwania - systemy obsługi 17/22
4. Wielopoziomowy z priorytetami
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ń.
2 1 1 2 3
T P2 P1 T P1 P2 P3 2 P1 T priorytety: 3>2>1
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.
Przerwania 22/22
Podział zadań pomiędzy program tła a procedury obsługi przerwań
I II IIIprogram tła
LOOP: JP LOOP(tzw. martwa pętla)
realizacja zadań o niskiejpilności
realizacja prawie 100%zadań
procedury obsługi przerwańrealizacja 100% realizacja reszty
"ważniejszych" funkcjiograniczone funkcje np.do akwizycji danych ,obsługi stanówalarmowych
cechypełna synchronizacja wczasie działań systemu
konieczny systemwymiany danych międzyobu warstwamioprogramowania
utrudnienia czasowegozsynchronizowaniadziałań