Predstavitev se nalaga. Prosimo počakajte.

Predstavitev se nalaga. Prosimo počakajte.

Prekinitve CPE Zahteva za prekinitev Takih (prekinitvenih)

Podobne predstavitve


Predstavitev na temo: "Prekinitve CPE Zahteva za prekinitev Takih (prekinitvenih)"— Zapis predstavitve:

1

2 Prekinitve CPE Zahteva za prekinitev Takih (prekinitvenih)
Signalov je lahko tudi več. Prekinitve pa imajo lahko tudi notranji vzrok oz. vir. Zahteva za prekinitev Prevzem ukaza Dekodiranje ukaza Izvršitev Prekinitev? Izvršitev prekini- tvene operacije prevzemni Ukazno cikel Izvršilni

3 Prekinitve - splošno Prekinitve (sistemi prekinitev) na splošno so
bistvenega pomena v večopravilnih (operacijskih) sistemih in za delovanje sistemov v realnem času, t.j. tedaj, ko se mora določena aktivnost zgoditi v danem trenutku oziroma znotraj naprej predpisanih časovnih mej. Rečemo: Sistem realnega časa mora delovati pravilno, upoštevaje časovne zahteve in omejitve.

4 Prekinitve - splošno Pod pojmom “prekinitev” (angl. Interrupt) razumemo zahtevo (od zunaj) za prekinitev izvrševanja tekočega zaporedja ukazov in izvršitev zahtevane prekinitvene operacije (na primer prevzem podatka s tipkovnice). Zahteva za prekinitev se lahko pojavi kadarkoli kot posledica nekega dogodka v ali zunaj sistema (na primer pritiska tipke). Prekinitve se torej pojavljajo asinhrono glede na izvrševanje programa (tipko lahko pritisnemo kadarkoli).

5 Prekinitve / izjeme Soroden pojem prekinitvi je izjema (angl. Exception). Uporaba izraza “izjema” (za razliko od prekinitev) je precej nedosledna. Izjema je širši pojem kot prekinitev. Izjema je vsaka pobuda realizirana s strojno opremo za prekinitev izvajanja tekočega zaporedja ukazov. Izjeme povzročene od zunaj asinhrono z izvajanjem programa samega, tipično kot posledica zahteve za streženje V/I napravi, so prekinitve. Izjeme povzročene (sinhrono) z izvajanjem programa samega, kot direktna posledica tekoče operacije ali kot njen stranski učinek, so pasti. Program Prekinitev Past Izjeme

6 Prekinitve / izjeme Izjeme ne vključujejo prekinitev.
Izjeme: pasti, izpadi, napake (sinhrone s programom). Prekinitve: zunaje V/I zahteve (asinhrone s programom). Program Prekinitev Izjeme

7 Prekinitve / izjeme V vsakem primeru razumemo pod pojmom “prekinitev” zahtevo, ki pride asinhrono od zunaj (procesorja), kot posledica zahteve (za streženje) iz zunanje naprave. Kar zadeva izjem, pa se zdi najprimerneje, da označujejo vse ostale oblike prekinitev izvrševanja tekočega zaporedja ukazov. Sem potem spadajo: pasti, napake, izpadi. Na primer: napaka na vodilu, neveljaven ukaz, pobeg iz naslovnega področja, deljenje z nič, ....

8 Potek prekinitve - splošno
Zahteva za prekinitev Takih (prekinitvenih) signalov je lahko tudi več. CPE Procesor izvršuje dano zaporedje ukazov. (Na primer) zunaja naprava zahteva njegovo “pozornost” – postavi prekinitveni signal – zahteva prekinitev. Procesor prekine izvrševanje danega zaporedja ukazov, ko mu razmere to dopuščajo, običajno po izvršitvi tekočega, pred prevzemom naslednjega ukaza. Začne izvrševati prekinitveno operacijo: shrani dovolj (notranje) informacije (“kontekst”) na varno mesto (sklad), da bo lahko kasneje nadaljeval na mestu prekinitve, pridobi naslov (prvega) ukaza, ki ga bo prevzel/izvršil kot posledica zahteve za prekinitev, prevzame in izvrši prvi ukaz prekinitvenega strežnika in za njim vse naslednje ukaze (streže zahtevi) ter nazadnje ukaz za povratek – RTI, ukaz RTI odbnovi (iz sklada) kontekst procesorja, ki je bil shranjen ob zahtevi za prekinitev.

9 Potek prekinitve - splošno
1 Zahteva za prekinitev 2 3 4 6 5 Procesor izvršuje dano zaporedje ukazov. Pojavi se zahteva za prekinitev. Procesor odloži izvrševanje danega zaporedja ukazov. Procesor streže zahtevi za prekinitev, izvrši prekinitveni strežni program – prekinitveni strežnik (angl. ISR – Interrupt Service Routine). Procesor obnovi izvrševanje prekinjenega zaporedja ukazov. Procesor nadaljuje z izvrševanjem prekinjenega zaporedja ukazov, kot da do prekinitve ne bi prišlo.

10 Prekinitve - splošna vprašanja
Kaj - v kakšnem obsegu - procesor shrani svoj kontekst? Samo PC, PC in CCR, tudi akumulatorje, še kaj? Kam procesor shrani svoj kontekst ? V sklad, v registre v “senci”, še kam?

11 Prekinitve - splošna vprašanja
Kako je določen naslov prvega ukaza prekinitvenega strežnika (t.j. prekinitveni strežnik)? procesor (sam) izbere naslov ukaza, procesor (sam) izbere naslov naslova ukaza, pri tem sodeluje tudi zunanja naprava, še kaj? Kateri zahtevi streže procesor prej v primeru, da je več sočasnih zahtev (prioritetni sistem)? Tudi v pogledu prioritetnega sistema je kar nekaj možnosti oz. dejanskih izvedb.

12 HCS12 in prekinitve Virov zahteve za prekinitev (prekinitvenih signalov) je več (relativno veliko). Zahteve so (smiselno) razvrščene po prioritetah. V primeru več sočasnih zahtev, streže procesor najprej tisti z (naj)višjo prioriteto. Vsakemu prekinitvenemu signalu pripada “vektor”. Mikrokrmilnik uporablja vektorski sistem prekinitev. “Vektor” je napotilo na nov ukaz. Vektorski sistem prekinitev je torej eden od načinov: Kako je določen naslov prvega ukaza prekinitvenega strežnika.

13 HCS12 – prekinitveni vektor
Kaj je prekinitveni vektor? Vektor je pomnilniška beseda, ki vsebuje naslov prvega ukaza pripadajočega prekinitvenega strežnika (rečemo kar naslov prekinitvenega strežnika). Prekinitveni vektorji se nahajajo (tudi sicer pri večini Motorolinih mikrokrmilnikov) na najvišjih pomnilniških naslovih. Ker jih je več, rečemo tudi, da tvorijo tabelo vektorjev.

14 HCS12 - prekinitve/izjeme
Vektorje poimenujemo po pomenu in/ali viru, na primer: vektor maskirane zahteve za prekinitev, vektor nemaskirane zahteve, vzpostavitveni vektor – bolj pogosto rečemo kar “reset” vektor (to bi bila lahko tudi izjema), vektor programske prekinitve – ukaz SWI (oziroma izjeme), Vektor pasti, npr. neveljaven ukaz (tudi to bi lahko bila izjema), vektor časovnega paznika - COP vektor (Angl. Correct operation), vektor časovnika, vektor A/D pretvornika, ... Mi ne bomo delali ostre razlike med prekinitvijo in izjemo.

15 HCS12 – prekinitveni vektorji
Reset vektorji Neveljaven ukaz Vektor Programske prekinitve Vektorji zahtev za prekinitev V/I vmesnikov Vektor zahteve za prekinitev na sponki IRQ Vektor zahteve za prekinitev na sponki XIRQ

16 HCS12 – PIM (Port Integration Module)
Vrata E so lahko konfigurirana tako, da sta PE0 in PE1 prekinitvena vhoda XIRQ in IRQ

17 HCS12 – tabela vektorjev

18 HCS12 - potek prekinitve Potek prekinitve (prekinitvene operacije):
Procesor shrani programsko dostopne registre (razen SP) na varno mesto (to je v sklad), Prevzame naslov 1. ukaza prekinitvenega strežnika: generira pripadajoči naslov vektorja (postavi naslov vektorja na naslovno vodilo), prevzame vsebino vektorja (po podatkovnem vodilu – (razumljivo), ki pomeni naslov 1. ukaza prekinitvenega strežnika, prične običajen ukazno prevzemni cikel. Opomba: naslov vektorja (za dan vir prekinitve) je fiksen – nespremenljiv, vsebina pa se (jasno) lahko spremeni.

19 HCS12 – sklad in prekinitve
SP PCL PCH XL XH YL YH CCR A B Pomnilnik za sklad Izgled vsebine sklada v primeru zahteve za prekinitev. Ukaz RTI enostavno obnovi registre iz sklada.

20 HCS12 – sklad in prekinitve
CPE pred (ob) prekinitvi Pomnilnik za sklad X $3344 $11 CPE po Y $5566 SP $3FF7 PC $BBCC A B CCR $19 $22 A B $11 $22 X $3344 Y $5566 SP $4000 3FF7 09 11 22 PC $80AA 44 33 CCR $09 66 55 AA 80 I bit = 1 IRQ vektor Vektor FFF2 CC BB FFF3

21 HCS12 – ogrodje programa RstVek EQU $FFFE IrqVek EQU $FFF2 ;
RAM EQU $1000 Flash EQU $8000 ; --- začetni program ORG Flash Start: LDS #SKLAD ;simbol SKLAD ni nedefiniran, a za nas to tu ni bistveno. ;Pri prevajnaju bi jasno dobili sporočilo napake – ;nedefiniran simbol. BRA * ;Vase sklenjena (neskončna) zanka. ; --- Irq strežnik IrqIsr: RTI ; --- in na koncu še vektorji ORG IrqVek DC.W IrqIsr ;IRQ vektor ORG RstVek DC.W Start ;Reset vektor

22 HCS12 – vektorji, primer Pomnilnik (Flash), del tabele vektorjev
To vsebino smo si izmislili, določil bi jo zbirnik s prevajanjem in bi bila verjetno drugačna. To je naslov 1. ukaza IRQ strežnika. $FFF2 $81 $00 $FFF3 $FFFE $80 $00 $FFFF To vsebino smo razbrali iz programa, določil pa bi jo zbirnik med prevajanjem. To je naslov 1. ukaza začetnega programa.

23 Še o vektorskih sistemih
Pri nekaterih drugih procesorjih je naslov strežnika določen drugače: Ob prekinitvi procesor generira naslov, s katerega prevzame ukaz (npr. AT90S8515) . Z drugimi besedami, vektor vsebuje kar ukaz in ne naslov ukaza, kot pri HCS12. HCS12 uporablja sistem fiksnih vektorjev. To pomeni, da so naslovi vektorjev vedno enaki, npr. SWI ima vedno isti naslov vektorja. Vsebina se jasno lahko spremeni. Pri nekaterih procesorjih je spremenljiv tudi naslov vektorja. Takemu sistemu rečejo tudi “pravi” vektorski način, tistemu kot ga ima HCS12 pa sistem fiksnih vektorjev (avtovektorski način). Pri nekaterih procesorjih določa naslov vektorja skupaj s procesorjem periferna naprava. Na primer, pošlje “številko prekinitve”, na podlagi katere procesor “izračuna” naslov vektorja (na primer Intel). I.T.D.


Prenesi ppt "Prekinitve CPE Zahteva za prekinitev Takih (prekinitvenih)"

Podobne predstavitve


Oglasi od Google