2. Maszyna EW
2.2.1.2. Obsługa przerwania w cyklu rozkazowym dla liniowej organizacji systemu przerwań
Obsługa przerwania w cyklu rozkazowym musi zapewnić zapamiętanie stanu procesora w chwili przerwania oraz przejście do realizacji programu obsługi przerwania. Stan procesora maszyny cyfrowej EW jest określony (po zakończeniu realizacji kolejnego rozkazu) zawartością licznika rozkazów L. rejestru akumulatora AK oraz rejestru roboczego X. Przyjmujemy, ic zawartości rejestru akumulatora i rejestru roboczego będą chowane w ramach programu obsługi przerwania (wchodzącym w skład użytkowego oprogramowania komputera). Natomiast w trakcie wykonywanej automatycznie obsługi przerwania, w cyklu rozkazowym, nastąpi wpisanie zawartości licznika rozkazów do komórki pamięci określonej adresem AP (wypracowywanym w układzie generacji adresu przerwania) oraz nastąpi przejście do wykonania rozkazu z komórki następnej, tzn. (AP) + 1 (początek programu obsługi). Czynności realizowane w trakcie obsługi przerwania w cyklu rozkazowym zapiszemy następująco:
a) wykonanie właściwego rozkazu;
b) testowanie sygnałów zgłoszeń przerwań (sygnał cni);
c) jeśli brak zgłoszeń przerwań, przejdź do punktu g);
d) schowanie śladu (zawartości rejestru L) w odpowiednim miejscu w pamięci (L) -* S : wy!, wes;
(AP) -*• A : wyap, wea;
(S) - (A) : pisz;
c) wyznaczenie adresu nowego rozkazu:
(AP) -* L : wyap, wg];
(L) + 1 -* L : ił;
0 kasowanie zgłoszenia przerwania (sygnał rint): g) przygotowanie do pobrania następnego rozkazu:
(L) -* A : wył, wea.
Istotną rolę w tak zorganizowanym cyklu odgrywa sygnał ęni. Pojawiając się, w przedostatnim takcie wykonywanego rozkazu, sygnał ten testuje stan sygnałów zgłoszeń na wyjściu układu hierarchii, co prowadzi (przy wystąpieniu zgłoszenia) do zapalenia sygnału stanu 1NT Aktywny stan sygnału INT powoduje przejście do omówionej obsługi przerwania.
Sygnał gy występuje tylko w programach rozkazów przerywalnych, tzn. takich, po których może nastąpić przerwanie programu.
Sposób włączenia obsługi przerwania dla całego cyklu rozkazowego przedstawiono na przykładzie rozkazu DOD na rysunku 2.4.
Wprowadzenie systemu przerwań do przedstawionego komputera wymaga uzupełnienia jego listy rozkazów o dwa rozkazy. Są to rozkazy maskowania przerwań oraz powrotu z programu obsługi przerwania. Działanie rozkazu maskowania przerwań polega na wpisaniu argumentu (w postaci binarnej) do rejestru maski. Realizacja rozkazu powrotu z przerwania polega na wykonaniu skoku pod adres przechowywany w komórce śladowej.
czyt wy» wgj il wya<3 wea
czyt wya weja dod weak
* 'wtt ”
wyłaś wes plaż ilnll
wył wea
C koniec":
Rys. 2.4. Schemat blokowy mikroprogramu dodawania w wersji przerywalnej
2.2.1.3. System przerwań o organizacji wektoryzowanej (bezwzględny)
W przypadku wyboru tego wariantu pracy układ samoblokady jest włączony, a sygnał przerwania INT wypracowany zostaje na wyjściu układu samoblokady.
Organizacja wektoryzowanego układu przerwań opiera się na następujących zasadach:
- po rozpoznaniu w układzie sterującym aktywnego stanu sygnału INT do obsługi przyjmowane jest zgłoszenie o aktualnie najwyższym priorytecie;
- przyjęcie zgłoszenia do obsługi potwierdzane jest przez zapalenie (sygnałem cm) odpowiedniego bitu rejestru przerwań RP;
* zainicjowany program obsługi zgłoszenia na danym poziomic może być przerwany przez zgłoszenie pojawiające się na poziomie wyższym. Wówczas inicjowany jest program obsługi wyższego poziomu. Zawartość rejestru RP wskazuje wszystkie poziomy, dla których zainicjowane zostały programy obsługi. Po zakończeniu programu obsługi danego poziomu następuje powrót do miejsca przerwania programu obsługi niższego poziomu. Ilustruje to rysunek 2.5.
2.2.1.4. Obsługa przerwania w cyklu rozkazowym dla wektoryzowanej organizacji systemu przerwań
Z przedstawionego harmonogramu realizacji procedur obsługi wynika konieczność utrzymywania informacji o zgłoszeniu przerwania tak długo, aż zostanie zakończona procedura obsługująca to przerwanie. A zatem w rejestrze obsługiwanych przerwań (RP) jedynka na odpowiedniej pozycji powinna być utrzymywana przez cały czas trwania