Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Odpytywanie - Polling Program czeka na nadejście danych z urządzenia i nie może wykonywać innych zadań. Urządzenie zewnętrzne dostarcza dane w trudnym.

Podobne prezentacje


Prezentacja na temat: "Odpytywanie - Polling Program czeka na nadejście danych z urządzenia i nie może wykonywać innych zadań. Urządzenie zewnętrzne dostarcza dane w trudnym."— Zapis prezentacji:

1 Odpytywanie - Polling Program czeka na nadejście danych z urządzenia i nie może wykonywać innych zadań. Urządzenie zewnętrzne dostarcza dane w trudnym do przewidzenia momencie, ale program jest gotowy w każdej chwili na ich odbiór Program odbiera dane z urządzenia... i natychmiast musi się nimi zająć... aby jak najszybciej być gotowym na odbiór następnych danych. Ale nie wiadomo kiedy nadejdą dane, więc program znów czeka i nie może wykonywać innych zadań.

2 Sytuacja wyjątkowa / przerwanie Exception / Interrupt Program nie czeka na nadejście danych z urządzenia i może wykonywać inne zadania. Urządzenie zewnętrzne dostarcza dane w trudnym do przewidzenia momencie, ale signalizuje ten fakt do programu i jest on gotowy na ich odbiór właśnie wtedy, gdy dane się pojawiają. Program odbiera dane z urządzenia... i musi się nimi zająć... aby po chwili powrócić do poprzednio wykonywanych zadań.

3 Sytuacje wyjątkowe Exceptions Sprzętowe Hardware Programowe Software Sytuacje wyjątkowe μP Motorola 680x0 Sytuacja wyjątkowa - odstępstwo od normalnego wykonywania ciągu instrukcji programu w celu obsługi nieprzewidzianego lub/i krytycznego zdarzenia w systemie mikroprocesorowym Sytuacje wyjątkowe powstają na skutek: zdarzenia powstałego na zewnątrz mikroprocesora nieprzewidzianego błędu podczas wykonywania programu celowego wywołania za pomocą specjalnych instrukcji np. inicjalizacja systemu, błąd dostępu do pamięci, sygnały z urządzeń zewnętrznych... np. nieistniejący kod instrucji, dzielenie przez 0, praca krokowa, instrukcje TRAP #n...

4 Inicjalizacja Reset Przerwania Interrupts Błąd magistrali Bus error Sprzętowe Hardware Wektorowe Vectored Autowektorowe Autovectored Normalne Normal Nieautentyczne Spurious Niezainicjowane Uninitialized Normalne Normal Niezainicjowane Uninitialized

5 Reset - sytuacja wyjątkowa polegająca na rozpoczęciu pracy systemu (np. po włączeniu zasilania lub przycisku Reset). Bit S i T rejestru SR ustawiane są na 1 i 0, a maska przerwań na 111, a następnie z pamięci ładowane są zawartości rejestrów: SP (spod adresu 0) i PC (spod adresu 4) Bus error - sytuacja wyjątkowa występująca przy próbie odwołanie się procesora do obszaru pamięci nieistniejącego fizycznie w systemie. Może być wykorzystywane do realizacji pamięci wirtualnej. Interrupt - sytuacja wyjątkowa służąca do komunikacji z urządzeniami zewnętrznymi, jeśli dane z urządzenia napływają bardzo wolno lub/i w niemożliwych do przewidzenia momentach. Przerwania wektorowe polegają na tym, że urządzenie identyfikuje się do procesora podając, po zgłoszeniu i przyjęciu przerwania, swój unikalny numer. Przerwania autowektorowe polegają na tym, że identyfikacja urządzenia do procesora, po zgłoszeniu i przyjęciu przerwania, określona jest bezpośrednio na podstawie priorytetu zgłaszającego się przerwania

6 Normal interrupt - przerwanie, którego cykl zgłoszenia, przyjęcia i identyfikacji przebiega bez zakłóceń. Spurious interrupt - przerwanie, które zostaje zgłoszone i przyjęte, ale procesor nie otrzymuje jego numeru (np. z powodu przerwania sygnalizacji przerwania przez urządzenie lub jego uszkodzenia) Uninitialized - przerwanie, które może być zgłoszone przez niezainicjowane urządznie. Przerwanie może być wówczas zgłoszone i przyjęte, ale jako numer przesyłana jest wartość $0F, pozwalająca na odpowiednia reakcję systemu

7 Śledzenie Trace Błędy Errors Koprocesor Coprocessor Wywołane przez instrukcje Programmer initiated Programowe Software Błąd adresu Address errors Naruszenie uprzywilejowania Privilage violation Nieistniejąca instrukcja Illegal instruction Dzielenie przez zero DIVU, DIVS TRAPV TRAP #n TRAPcc (68020+) CHK, CHK2 (68020+) Line 1010 emulator Line 1111 emulator

8 Trace - sytuacja wyjątowa wywoływana po wykonywaniu każdej instrucji programu użytkowanika, pozwalająca na uruchaniamia programów w trybie pracy krokowej. Oczywiście program obsługi tej sytuacji (już w trybie nadzorcy) przerywany nie jest. Address error - sytuacja wyjątowa wywoływana przy próbie odwołania do 16 lub 32 bitowych danych z pamięci spod nieparzystego adresu np..: LEA$40000,A0 MOVE.B(A0)+,D0 MOVE.W(A0)+,D0*błąd adresu !!! Privilage violation - sytuacja wyjątowa wywoływana przy próbie wykonywania przez program w trybie użytkownika instrucji zastrzeżone dla trybu nadzorcy Illegal instruction - sytuacja wyjątowa wywoływana przy próbie wykonywania instrucji, której kod nie odpowiada żadnej istniejącej instrukcji DIVS,DIVU / Divide by Zero - sytuacja wyjątowa wywoływana przy próbie wykonania instrukcji dzielenia DIVS, DIVU, jeśli dzielnik jest równy 0.

9 TRAPV, TRAPcc - sytuacja wyjątowa wywoływana przez instrukcję TRAPV (ogólnie TRAPcc dla 68020+), jeśli testowany warunek cc jest spełniony. TRAP #n - sytuacja wyjątowa wywoływana przez instrukcję TRAP #n (n=0..15). Pozwala na poszerzenie listy instrukcji o 16 nowych pozycji. Wykorzystywane np. do pisania programów przenośnych pomiędzy różnymi systemami (z tym samym procesorem ale różnymi urządzeniami we/wy) CHK, CHK2 - sytuacja wyjątowa wywoływana przez instrukcję CHK (i CHK2 dla 68020+), która porównuje operand z podaną watrością, ( CHK,Dn ). Jeśli operand w Dn.W jest wartością spoza zakresu 0 -, wywoływana jest sytuacja wyjątkowa. Line 1010 (A) emulator - sytuacja wyjątowa wywoływana przy próbie wykonania instrukcji, której kod zaczyna się od wzorca 1010. Pozwala to na zdefiniowanie grupy nowych instrucji, np. emulujących możliwości nowszych procesorów tej rodziny. Line 1111 (F) emulator - sytuacja wyjątowa wywoływana przy próbie wykonania instrukcji, której kod zaczyna się od wzorca 1111. Wykorzytywana zwykle do emulacji instrukcji koprocesora arytmetycznego w systemie z procesorem 68000.

10 Program w trybie użytkowanika Program w trybie nadzorcy Normalne wykonywanie programu Wykonywanie procedury obsługi sytuacji wyjątkowej Sytuacja wyjątkowa Powrót z procedury obsługi Obsługa sytuacji wyjątkowej: Dokończenie aktualnie wykonywanej instrukcji, Wewnętrzne wygenerowanie numeru sytuacji wyjątkowej, rozstrzygnięcie priorytetu, Odłożenie na stos zawartości rejestrów procesora (zawsze SP i PC, dodatkowe rejestry odkładane są w zależności od typu sytuacji wyjątkowej) tzw. ramka stosu, Odczytanie z tablicy wektorów adresu procedury obsługi dla danego numeru sytuacji wyjątkowej, Skok, wykonanie procedury obsługi i powrót z odtworzeniem ramki stosu.

11 Priorytety sytuacji wyjątkowych Sytuacja wyjątkowa o priorytecie niższym może być przerwana przez sytuację o priorytecie wyższym (np. obsługa błędu programowego może być przerwana przez przerwanie zewnętrzne). PriorytetSytuacja wyjątkowa najwyższyReset Bus error Addres error średniTrace Interrupt Illegal instruction Privilege violation najniższyTRAPcc, TRAP #n Divide by Zero, CHK

12 Status Register I2I1I0 interrupt MASK IPL2 IPL1 IPL0 interrupt REQUEST 0..7 REQUEST > MASK ? Przerwania - Interrupts Linie zewnętrzne mikroprocesora Przerwanie jest przyjęte jeśli priorytet zgłaszanego przerwania (IPL2-0) jest większy od wartości maski przerwań (I2-0) Przerwanie o priorytecie (IPL2-0) równym 7 nazywane jest przerwaniem niemaskowalnym i jest zawsze przyjęte przez mikroprocesor.

13 Tablica wektorów sytuacji wyjątkowych - Vector Table 256 x 4B = 1kB

14 Sieć działań dla obsługi sytuacja wyjątkowych

15 Sytuacja wyjątkowa - Reset

16

17 Vector Table (68020+)

18 Układ dekodera priorytetu przerwań


Pobierz ppt "Odpytywanie - Polling Program czeka na nadejście danych z urządzenia i nie może wykonywać innych zadań. Urządzenie zewnętrzne dostarcza dane w trudnym."

Podobne prezentacje


Reklamy Google