Rys. 2.2. Układ przerwań
- układ generacji sygnału przerwania INT - wypracowuje sygnał przerwania INT jako sumę wyjść rejestru przerwań lub (zależnie od wybranego wariantu pracy) sumę sygnałów wychodzących z układu saraoblokady. Sygnał INT dochodzi do układu sterującego komputera jako sygnał stanu sygnalizujący fakt zgłoszenia przerwania;
- układ hierachii przerwań przyjętych do obsługi - wybiera najstarsze spośród przerwań przyjętych do obsługi;
- układ generacji adresu przerwania - wypracowuje adres przerwania na podstawie numeru poziomu ustalonego na wyjściu układu hierarchii przerwań przyjętych do obsługi. Adres ten przesyłany jest na magistralę A procesora przez układ bramek sterowanych sygnałem wyap.
2.2.1. Warianty pracy systemu przerwań
W strukturze systemu przerwań przewidziano dwa warianty pracy. Wybór wariantu rzutuje na organizację obsługi przerwania w cyklu rozkazowym.
2.2. System przerwań
23
2.2.1.1. System przerwań o organizacji liniowej (względny)
W wypadku wyboru tego wariantu pracy działanie układu samoblokady zostaje wy łączone. Sygnał przerwania INT wypracowywany jest jako suma wyjść rejestru przerwań. Ponieważ w danej chwili może być obsługiwane tylko jedno przerwanie, więc rola układu hierarchii przerwań przyjętych do obsługi nie jest istotna.
Liniowa organizacja systemu przerwań opiera sic na następujących zasadach:
- w danym momencie do obsługi przyjmowane jest zgłoszenie o aktualnie najwyższym priorytecie spośród zgłoszeń zapamiętanych w rejestrze RZ (i nie podlegających maskowaniu);
- wybrane zgłoszenie wprowadzane jest (sygnałem goj) do rejestru RP powodując wygenerowanie sygnału przerwania INT;
- aktywny stan sygnału INT powoduje przejście do obsługi przerwania w danym cyklu rozkazowym. Chowany jest wtedy ślad programu przerwanego (zawartość licznika rozkazów), a adres przerwania jest ładowany do licznika rozkazów;
- w trakcie obsługi przerwania w cyklu rozkazowym generowany jest sygnał rint powodując wyzerowanie przyjętego do obsługi poziomu w rejestrze zgłoszeń i rejestrze przerwań;
- przedstawiony sposób obsługi stwarza niebezpieczeństwo powtórnego przyjęcia zgłoszenia, na danym poziomie, w trakcie trwającej jeszcze obsługi zgłoszenia poprzedniego. Na początku każdego programu obsługi przerwania niezbędne jest zamaskow'anie przerwań tego poziomu.
Bardziej szczegółowa analiza działania systemu przerwań pokazuje, że zainicjowany raz program obsługi zgłoszenia nie może być przerwany przez pojawiające się zgłoszenie u wyższym priorytecie. Wymaga to zamaskowania, na początku programu obsługi, wszystkich poziomów systemu przerwań.
W systemie o organizacji liniowej zgłoszenia są więc obsługiwane kolejno według ustalonej hierarchii (rys. 2.3; przyjęto, że najwyższy priorytet ma zgłoszenie ZO, a najniższy' 23).
poziot obsługi przerwania
Obsługa zgłoszenia 20 | |||
— |
Obsługa zgłoszeni* Z1 | ||
obsługa zgłoszenia ----1 — 22 Obu. zgłoaz. ZJ 1 | |||
♦ ł * t 1 1 1 11 23 Zi 20 |
Rys. 2.3. Harmonogram realizacji programów obsługi przerwań dla liniowej organizacji systemu przerwań