mazurkiewicz,Technika Cyfrowa, system przerwań procesora

background image

6

SYSTEM PRZERWAŃ PROCESORA

System przerwań – „skrzynka pierwszej pomocy”. Zjawiska nieprzewidziane:

1) zagrożenie natury sprzętowej (awarie elementów);

2) zagrożenie programowe (np. dzielenie przez zero);
3) usługi dla użytkownika.


Jak sobie poradzić?

1) wyłączenie sprzętu, zapisanie danych

2)
3) użytkownik zleca systemowi wykonanie czegoś.


„Recepty” – procedura, procesor porzuca to co robił i ją wykonuje:

- napisana przez twórców, konstruktorów, nie można jej zmieniać;
- napisana przez twórców, konstruktorów, można dołączyć własną

(zmodyfikować);

- miejsce puste, można stworzyć własny system przerwań.


Działanie systemu przerwań:

- procesor sprawdza stabilność systemu przerwań po wykonaniu rozkazu

(dość często),

- urządzenie zgłasza usterkę, wtedy procesor reaguje;
- zgłoszenie przerwania – procesory mają:

 linie zgłoszenia przerwania (jest ich kilka): Int Req (interrupt

request),

 albo rejestry ze znacznikami, że są zgłoszone przerwania.


Kiedy jest przerwanie, to:

1) procesor sprawdza zgłoszenie przerwania;


2) wyłącznie systemu przerwań (opcjonalnie) – procesor przyjmuje

jedno przerwanie do obsługi (i tylko 1), inne nie są realizowane – muszą
poczekać. Jest to funkcja opcjonalna, ponieważ jeśli pojawi się sprawa

poważniejsza to procesor się nią zajmuje;

3) zachowanie stanu procesora (zapamiętanie tego co się to tej pory

działo):

 przełączanie danych – istotne dane są w bezpiecznym miejscu (na

stosie) – rejestry PC i inne ważne rejestry,

 przełączanie kontekstu – jeśli procesor ma kilka zestawów rejestrów –

wykorzystywany jest ten wolny (szybsze, nie ma transmisji danych).

Zachowanie stanu może być realizowane:
 automatycznie – procesor bierze na siebie zachowanie danych;
 programowo – programista musi zachować to co może być

zniszczone, procesor nie wykona tego automatycznie

background image

7

 kombinowane – automatycznie: licznik rozkazów, rejestry specjalne;

programista: rejestry wspólnego przeznaczenia.

4) identyfikacja przerwania – procesor uaktywnia linie odpowiedzi na
przerwanie (Int Ack – interrupt acknowledge).

Do procesora:

– numer przerwania (procesor prześle go magistralą danych),
– adres przerwania.

ARBITRAŻ PRZERWAŃ (określa kolejność wykonywania przerwań).

- sprzętowy

1. równoległy

2. szeregowy

3. równoległo -

szeregowy


1. – wszystkie urządzenia są przypięte do dekodera przerwań, który ustala

kolejność zgłoszenia przerwania do procesora. Numeracja wejść decyduje o
priorytecie przerwań. Priorytet może być wędrujący – obsłużony idzie na

koniec kolejki

2. – podaj dalej – urządzenia zgłaszające Int Req są łączone w jeden sygnał

3. – połączenie 1. i 2. – dekodery przerwań są przypięte w sposób szeregowy –
rozwiązanie dobre dla wielu urządzeń.

- programowy

5) skok do procedury obsługi przerwania,


6) powrót z obsługi przerwania – to co w 2) i 3), tylko w odwrotnej

kolejności:

 odtworzenie stanu procesora,
 włączenie systemu przerwań.


SYSTEM PRZERWAŃ W 8051

1) 5-6 źródeł przerwań:

 2 zewnętrzne INT0, INT1 (linie typu Int Req),

background image

8

 2 od układów czasowo – licznikowych #0, #1,
 1 przerwanie od portu szeregowego
 szóste przerwanie od dodatkowego układu czasowo – licznikowego #2

2) przerwania mogą być maskowane (wyłączane) – w 8051 w sposób

programowy (w 8-bitowym rejestrze IE)

EA - ET2 ES ET1 EX1 ET0 EX0

Nr

bitu

7 6 5 4 3

2

1

0

EA – pozwala zamaskować wszystkie przerwania (1=wszystko włączone,
0=wszystko wyłączone)

ET2 - WŁ/WYŁ #2
ES – port szeregowy

ET1 - #1
EX1 – przerwania zewnętrzne zgłaszane linią INT1

ET0 - #0
EX0 - INTO


Słowa sterujące i kontrolne SFR

Maska przerwań

Nr bitu
(hex)

AF AE AD AC AB AA A9 A8

EA - ET2 ES ET1 EX1 ET0 EX0

MSB

LSB

Przerwania od:

- portu szeregowego – rejestr SCON (obsługuje port szeregowy), bity TI,

RI (najmłodsze). TI – przerwanie od nadajnika – nadajnik wyśle i to

sygnalizuje; RI – przerwanie od odbiornika (odebranie bajtu = zgłoszenie
przerwania)

- licznika #2 – w rejestrze T2CON (tylko dla 8051). TF2 – najstarszy – ślad

o zgłoszeniu przerwania.


PRIORYTET PRZERWAŃ – dwuetapowy:

1) użytkownik może ustalić – definiuje programowo posługując się

rejestrem IP:

-

- PT2 PS PT1 PX1 PT0 PX0

MSB

LSB

PT2, PT1, PT0 – od układów czasowo – licznikowych

background image

9

PS – od portu szeregowego
PX1 – priorytet przerwania zewnętrznego zgłaszanego linią INT1
PX0 – priorytet przerwania zewnętrznego zgłaszanego linią INT0


Dwa poziomy – wyższy i niższy. Użytkownik może ustawić priorytety

dowolnie.
Przyjście przerwania o wyższym priorytecie powoduje przerwanie

przerwania o niższym priorytecie :).
Przyjście przerwania o niższym priorytecie nie powoduje przerwania

przerwania o wyższym priorytecie :)).
Jak przyjdą 2 przerwania o tym samym priorytecie, to wtedy obowiązuje

następująca kolejność:

1) INT0
2) #0

3) INT1
4) #1

5) PS
6) #2


Ta sekwencja jest niezmienna, spadek priorytetu uaktywnia się wtedy, gdy

przychodzi kilka przerwań o tym samym priorytecie.

PROCEDURY OBSŁUGI PRZERWAŃ

Adresy stałe:

INT0 -> 3 hex
INT1 -> 13 hex

#0 -> B hex
#1 -> 1B hex

PS -> 23 hex
#2 -> 2B hex


Gdy był dostęp do rejestrów IE, IP to system nie sprawdza przerwań

(dopiero po wykonaniu następnego rozkazu).
Gdy procesor wraca z procedury przerwania – odtwarza swój stan i powraca

do wykonania programu zaleconego, wtedy też nie sprawdza przerwań –
dopiero po wykonaniu następnej instrukcji w programie.

DMA – układ bezpośredniego dostępu do pamięci (Direct Memory Access)

Kiedy procesor za bardzo zajmuje się obsługą urządzeń WE/WY ,a nie
programem, DMA ma odciążyć procesor, czyli pobiera od układu WEJ do

pamięci i z pamięci do układu WYJ. Można też skopiować fragment pamięci z
jednego miejsca w drugie.

background image

10

Komunikacja za pomocą magistral -> procesor zarządza magistralami, ale
DMA też potrzebuje do nich dostępu na poziomie procesora.

Zarządzanie magistralami – tryby pracy DMA:

1) blokowy
2) z wykradaniem taktów.


1. Tryb blokowy – jak DMA przejmie magistralę od procesora, to prowadzi

transmisję od początku do końca – jest właścicielem magistrali na cały czas
trwania transmisji.

DMA upora się tak szybko jak to możliwe – cenne, gdy układ WE przesyła dużo
danych (np. skaner).

Procesor nie ma wtedy dostępu do magistrali – nie może pobierać
argumentów, nie może wysyłać rezultatów, nie może pobrać następnego

rozkazu, itp.
Wniosek – DMA działa sprawnie, procesor nie.


2. Tryb z wykradaniem taktów – właścicielem magistrali jest procesor, DMA

dostaje magistralę tylko wtedy, gdy procesor jej nie potrzebuje.
Wniosek – DMA przesyła dane „kawałek po kawałku”, procesor działa bez

zakłóceń.

To procesor programuje układy DMA.

Rejestry DMA:

1) adresowy – RA – procesor zapisuje początek adresu pamięci

wykorzystywany przez DMA

2) licznika – RL – ilość słów, które DMA ma przyjąć albo wysłać, czyli

system „początek i ile”

3) sterujący – RS – definiowane parametry transmisji: czy to odczyt, zapis

czy kopiowanie pamięci

4) statusowy – RStat. – raport z działania DMA. Jeśli DMA zgłosi przerwanie

– jak jest błąd lub problem, RStat. podpowie rodzaj błędu.


PROCESOR:

RD, WR (aktywne poziomem niskim) – linie odczytu i zapisu
MREQ, IOREQ – linie żądań dostępu do pamięci i układów WE/WY

BUSRQ – żądanie dostępu do magistrali

background image

11

BUSACK – potwierdzenie zwolnienia magistrali

DMA:

Adres

bo mamy magistralę, czyli = procesor

IOREQ bo układ wejściowy w trybie programowania

INT zgłoszenie przerwania do procesora
HOLDRQ – linie WYJ – chce się skontaktować z BUSACK

HOLDACK – kontakt z BUSACK
DMARQ – wejściowa linia

DMAACK – linia wyjściowa

Przykład układu DMA – INTEL
8257 (8237A)


- ma 4 niezależne kanały DMA

(możliwe są 4 transmisje przez
kanały DMA),


- układ wyboru priorytetu (bo są 4

kanały): #0 ma najwyższy priorytet



.......... #3



; obsłużony na

koniec kolejki,

- umożliwia hierarchiczne podłączanie kilku układów DMA,

- układ może pracować w trybie zgodnym z zapotrzebowaniem – np. w
deklaracji transmisji „nie więcej niż...”














Wyszukiwarka

Podobne podstrony:
mazurkiewicz,Technika Cyfrowa, lista rozkazów procesora
mazurkiewicz,PODSTAWY TECHNIK MIKROPROCESOROWYCH,SYSTEM PRZERWAŃ, przerwania od timerów liczników, p
mazurkiewicz,Technika Cyfrowa, pamięci
mazurkiewicz,Technika Cyfrowa, organizacjie komputerów
mazurkiewicz,technika cyfrowa,cyfrowe układy scalone
mazurkiewicz,technika cyfrowa,Modemy i kodery multimedialne
mazurkiewicz,Technika Cyfrowa, koprocesor arytmetyczny
Technika Cyfrowa (mazurkiewicz) -wyklady, edu, el, pwr, Technika Cyfrowa (mazurkiewicz) -wyklady
Technika cyfrowa Wykład II, Arytmetyka systemów cyfrowych cd
Eksploatacja techniczna środków transportu, T11 Procesy i systemy obsługiwania
mazurkiewicz,Podstawy techniki cyfrowej i mikroprocesorowej I, opracowanie zagadnień
311[51] technik cyfrowych procesow graficznych
664 technik CYFROWYCH PROCESÓW program praktyki
Technika cyfrowa opracowanie (Mazurkiewicz)
NOTAKI Z TECHNIKI CYFROWEJ
Cyfrowy system rejestracji obrazu
Układy cyfrowe i systemy wbudowane 1 SPRAWOZDANIE 2

więcej podobnych podstron