Temat nr 10: System przerwań Dr inż.. T. Popkowski Architektura komputerów Sem. II: studia stacjonarne i niestacjonarne Temat nr 10: System przerwań Rola stosu systemowego Priorytety Maskowanie Tablice wektorów
Materiały źródłowe: http://pl.wikipedia.org Biernat J., Architektura komputerów, Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław 2002 Wojtuszkiewicz K., Jak działa komputer, Mikom, W-a 1999
Przerwania Komunikację procesora z otoczeniem przy użyciu rozkazów WE-WY całkowicie kontroluje program (system operacyjny) i odbywa się ona w chwilach z góry zaplanowanych przez programistę. W wielu przypadkach potrzebne jest jednak wejście, za pomocą którego urządzenie zewnętrzne może zażądać obsługi w dowolnej chwili, niezależnie od stanu aktualnie wykonywanego programu. Definicja: Przerwaniem nazywamy zawieszenie realizacji programu zasadniczego spowodowane sygnałem przerywającym. Może to być sygnał wewnętrzny - generowany rozkazem zawartym w programie lub (i tak bywa najczęściej) sygnał zewnętrzny wywołujący rozwidlenie programu.
Rodzaje przerwań: Zewnętrzne – sygnał przerwania pochodzi z zewnętrznego układu obsługującego przerwania sprzętowe; przerwania te służą do komunikacji z urządzeniami zewnętrznymi, np. z klawiaturą, napędami dysków itp. Wewnętrzne - nazywane wyjątkami (ang. exceptions) – zgłaszane przez procesor dla sygnalizowania sytuacji wyjątkowych (np. dzielenie przez zero); dzielą się na trzy grupy: faults (niepowodzenie) – sytuacje, w których aktualnie wykonywana instrukcja powoduje błąd; gdy procesor powraca do wykonywania przerwanego kodu wykonuje następną, po tej która wywołała wyjątek, instrukcję; traps (pułapki) – sytuacja, która nie jest błędem, jej wystąpienie ma na celu wykonanie określonego kodu; wykorzystywane przede wszystkim w debugerach; gdy procesor powraca do wykonywania przerwanego kodu tę samą instrukcję która wywołała wyjątek; aborts – błędy, których nie można naprawić. Programowe – z kodu programu wywoływana jest procedura obsługi przerwania; najczęściej wykorzystywane do komunikacji z systemem operacyjnym, który w procedurze obsługi przerwania umieszcza kod wywołujący odpowiednie funkcje systemowe w zależności od zawartości rejestrów ustawionych przez program wywołujący, lub oprogramowaniem wbudowanym jak procedury BIOS lub firmware.
Realizacja przerwania: pobranie rozkazu z pamięci spod adresu zawartego w rejestrze PC i przekazanie go magistralą danych do dekodera rozkazów. zwiększenie licznika rozkazów o jeden. żądanie obsługi ze strony urządzenia zewnętrznego rozpoczęcie procedury obsługi przerwania. (do procesora nadawany jest kod przerwania)
Realizacja przerwania, cd. zwiększenie licznika rozkazów o jeden. żądanie obsługi ze strony urządzenia zewnętrznego rozpoczęcie procedury obsługi przerwania. (do procesora nadawany jest kod przerwania)
realizacja przerwania cd. na stos odkładany jest starszy bajt licznika rozkazów komórkę pamięci do której zostaną wpisane dane wskazuje zawartość rejestru SP na stos odkładany jest młodszy bajt licznika rozkazów komórkę pamięci do której zostaną wpisane dane wskazuje zawartość SP - 1
realizacja przerwania cd. ustalenie nowej zawartości rejestru PC na podstawie numeru restartu wykonanie rozkazów z obszaru pamięci należącego do RST6 - lokalizację rozkazu wskazuje rejestr PC (licznik rozkazów) (po wykonaniu rozkazu RET) następuje powrót do miejsca w którym został przerwany główny program
realizacja przerwania cd. do licznika rozkazów ładowana jest wartość wcześniej odłożona na stos - (komórki stosu wskazuje rejestr SP) ładowanie młodszego bajtu licznika rozkazów, później starszego bajtu pobranie kolejnego rozkazu z programu głównego wskazanego zawartością rejestru PC.
Operacje wejścia / wyjścia z przerwaniem programu STEROWNIK PRZERWAŃ: Pośredniczenie w przyjmowaniu zgłoszeń przerwań pomiędzy mikroprocesorem, a innymi układami wejścia / wyjścia Przyjmowanie zgłoszeń przerwań od wielu układów wejścia / wyjścia Wybór z pośród kilku jednocześnie zgłoszonych przerwań tego, które zostanie obsłużony Zasygnalizowanie dokonanego wyboru przez podanie numeru (adresu) układu wejścia / wyjścia, z którym zostanie dokonana wymiana, a dokładniej, adresu programów obsługi przerwania realizującego tą wymianę Po przyjęciu sygnałów zgłoszeń przerwań od układów wejścia / wyjścia i wyborze układów, który będzie obsłużony, wygenerowanie sygnału zgłoszenia przerwania bezpośrednio do mikroprocesora.
Wykonanie operacji wejścia / wyjścia z przerwaniem programu
Schemat blokowy sterownika przerwań
Operacja maskowania sygnałów przerwań
Koniec!