1 / 19

Přerušení programu

Přerušení programu. Střední odborná škola Otrokovice. Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Miloš Zatloukal Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785, financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.

dyllis
Download Presentation

Přerušení programu

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Přerušení programu Střední odborná škola Otrokovice Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Miloš Zatloukal Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785, financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze. www.zlinskedumy.cz

  2. Charakteristika DUM 2

  3. Přerušení programu Obsah tématuPřerušení – co, kde, čímSignál IRQObsluha žádosti o přerušeníŘadič přerušeníPřerušovací podsystémy a) systém bez přerušení b) jednoduchý – s jedním přerušením c) složitější – více přerušeníPřerušovací podsystém u PC

  4. Přerušení programu (Interrupt) - jde o reakci mikropočítače na nějakou událost - tato svým příchodem přeruší aktuálně probíhající program Kde může událost nastat ? - uvnitř mikropočítače - z vnějších obvodů a zařízení - častá je kombinace vnitřních a vnějších událostí – podnětů Co může vyvolat přerušení ? Jsou to obvody: - diagnostické (monitorovací) - ochranné - zabezpečovací - přetečení časovače – čítače - změna na vstupech portu - příjem znaku sériovým kanálem - dokončení převodu v A/Č převodníku

  5. Přerušení programu Základní požadavek na mikropočítač po přijetí podnětu: - dostatečně rychlá reakce mikropočítače – s minimálním zpožděním Signál vzniku události - značí se IRQ (InterruptRequest) – žádost o přerušení (ŽOP) - může to být úroveň signálu (logická nula nebo jedna) - hrana – vzestupná nebo sestupná (ta trvá jen krátký čas – proto je nutný paměťový prvek – např. klopný obvod) Obr. 1

  6. Obsluha žádosti o přerušení - spočívá ve spuštění dalšího podprogramu (ten řeší uspokojení požadavku na přerušení nějakým podnětem) - po dokončení obslužného podprogramu se řízení předává zpět - hlavní program pokračuje přesně z místa, kde přišla žádost o přerušení - systém zajistí uložení návratové adresy původního (hlavního) programu (před vstupem do obslužného programu přerušení) zásobník - slouží pro uchování návratové adresy (podobně jako při volání (spouštění) ostatních podprogramů) RETI, IRET – Return FromInterrupt – Návrat z Přerušení - návratová instrukce, kterou po vyřešení žádosti o přerušení podprogramem pro obsluhu přerušení tento podprogram končí - ze zásobníku se automaticky přesune uschovaná návratová adresa do čítače instrukcí a přerušený program tak pokračuje dál řadič přerušení (InterruptController) - je samostatný obvod – řídí činnost složitějšího přerušovacího systému

  7. Dělení přerušovacích podsystémů a) systém bez přerušení b) jednoduchý – s jedním přerušením c) složitější – více přerušení, s výběrem podle přednosti a) systém bez přerušení - používá se u nejjednodušších mikropočítačů (nejlevnějších) - přerušení není hardwarově možné - přesto lze reagovat na nějakou událost a obsloužit ji - je to ošetřeno programově - program periodicky testuje, zda událost nenastala - nevýhody – program je pak - složitější - delší - pomalejší - navíc je tímto procesor zbytečně zatěžován -např. může být v programové smyčce testováno - sepnutí spínače - stisknutí klávesy - změna na některém bitu z portu mikropočítače

  8. b) jednoduchý – s jedním přerušením - opět vhodné pro jednodušší systémy - jeden přerušovací vstup - žádostí o přerušení je stav signálu – hrana nebo úroveň (bývá to nastavitelné) - systém využívá i možnosti povolit nebo zakázat přerušení - Kdy povolit? - když právě řešení žádného přerušení neprobíhá - Kdy zakázat? - když procesor právě provádí důležitý výpočet - už probíhá obsluha předchozího přerušení - obsluha žádosti o přerušení = skok na pevnou adresu (začíná na ní podprogram pro obsluhu přerušení) Co když mám jen jeden vstup pro přerušení a více možných zdrojů přerušení ? - pak je nutné programem rozlišit jaké zařízení přerušení vyvolalo

  9. c) složitější - více přerušení - o přerušení může žádat více zdrojů - vnitřních (např. přetečení čítače/časovače) - vnějších (externích) Nezbytný je zde řadič přerušení s těmito úkoly: - registrovat aktivní žádosti o přerušení - pokud je jich více, pak je řadit je podle přednosti (důležitosti – priority) - identifikovat zdroj požadavku – (a předat tuto informaci procesoru) - povolit (zakázat) všechna nebo jen některá přerušení (jde o tzv. maskování) Registr požadavků na přerušení - uchovává jednotlivé žádosti - jeho výstupy mohou být blokovány (pak jsou dále zpracovávány jen povolené žádosti) Jak lze zablokovat nějakou žádost o přerušení? - pomocí bitů registru masky přerušení IMR (InterruptMaskRegister)

  10. Maska -jde o číslo, které kombinací s jiným číslem (obsahem řídicího registru) způsobí změnu určitých bitů (zapíše do nich nulu nebo jedničku – to má význam povolení nebo zákazu) Priorita Prioritní dekodér - uplatní se v případě, že dojde k žádosti od dvou či více zdrojů současně - rozhodne, který zdroj přerušení bude obsloužen jako první - přiděluje každému požadavku číslo pořadí Signál INT - je vytvářen řadičem přerušení při přijetí nějaké žádosti o přerušení - signál INT informuje procesor, že přišel nějaký požadavek na přerušení - signál INT může být řízen bitem globálního (celkového) přerušení IE (InterruptEnable – Povolení přerušení) Nemaskovatelné přerušení NMI (Non MaskableInterrupt) - speciální signál používaný v případě havárie (selhání, zablokování obvodů) - má absolutní prioritu - jeho signál není veden přes řadič přerušení . jeho obsluha je provedena rychleji než obsluha ostatních přerušení

  11. Vyhodnocení priorit (pořadí podle důležitosti) - pevná priorita podle důležitosti vstupu přerušení (např. přednost vnějšího vstupu před vnitřním časovačem) - volná priorita (je přidělitelná softwarově – instrukcí v programu) Příklad pořadí pevných priorit: 1) Nemaskovatelné přerušení (NMI) 2) Přerušení od diagnostických obvodů 3) Vstupy vnějších přerušení 4) Časovače/čítače – jejich přetečení 5) Sériové vstupy – výstupy 6) A/Č převodníky Volná priorita přerušení: - znamená možnost přidělit každému zdroji přerušení libovolnou prioritu - nesmí být ale dvě stejné - nastavené priority lze je měnit i během programu Příklad: jednočipový mikropočítač Intel 8051 – má celkem 5 zdrojů přerušení 2 vnější zdroje přerušení (INT0 a INT1) 2 přerušení od časovačů/čítačů (TF0, TF1) 1 přerušení od sériového kanálu (RI spolu s TI)

  12. Co to je vnořené přerušení? - jedná se o příchod žádosti o přerušení (např. č. 2) v době právě obsluhovaného přerušení č. 1 (tj. právě běží podprogram obsluhy přerušení č. 1) - většinou se v takovém případě neděje nic nového (protože v době již prováděného přerušení bývá další přerušení zakázáno) Zdůvodnění: - při déle trvající žádosti o přerušení by docházelo k opakovanému zahájení dalších přerušení (s výjimkou situace, že by zpracovávané přerušení nemohlo být přerušeno stejným zdrojem přerušení) Po ukončení obsluhy přerušení a návratu do hlavního programu je přerušení opět povoleno (buď zvláštní instrukcí nebo návratovou instrukcí)

  13. Přerušovací podsystém u PC IRQ – zkratka z InterruptReQuest (česky požadavek na přerušení) - označuje signál, kterým požádá nějaké zařízení (např. klávesnice) procesor o pozornost - požádá o přerušení probíhajícího procesu (programu, výpočtu) (za účelem provedení momentálně důležitější akce) Jaký je mechanizmus přerušení? - zařízení sdělí řadiči přerušení, že potřebuje provést přerušení např. stisknutím klávesy na klávesnici je také vyslán požadavek na přerušení - řadič přerušení upozorní CPU, že jsou nějaká zařízení čekající na přerušení - CPU ověří, zda může přerušení přijmout a přeruší probíhající výpočet - zeptá se řadiče na nejdůležitější z čekajících přerušení a spustí jeho obsluhu - dojde k pozastavení právě probíhajícího procesu (a uložen jeho aktuální stav) - je provedena základní obsluha žádajícího zařízení - CPU informuje řadič přerušení o dokončení obsluhy přerušení - následně je obnoven stav přerušeného procesu a tento pokračuje dále

  14. Přerušovací podsystém u PC - pokračování - přerušení jsou označena zkratkou IRQ s číslem přerušení - starší počítače měly 8 přerušení (IRQ0 až IRQ7) – 1 řadič přerušení - později 16 (IRQ0 do IRQ15 ) - 2 řadiče přerušení - první z nich (primární = tzv. master) přímo komunikuje s procesorem - druhý, (tzv. slave), signalizuje prvnímu řadiči pomocí přerušení IRQ 2 - první řadič předává tento signál přímo procesoru - řadič přerušení - vyhodnocuje priority přerušení - umožňuje některá přerušení ignorovat (maskovat) - pamatuje si, která přerušení čekají na vyřízení - novější systémy mají 24 přerušení (+ 8 pomocných)

  15. 1. Pro výpočetní systém bez přerušení neplatí: Žádné přerušení není možné Přerušení nemá hardwarovou podporu Přerušení je možné jen programově Kontrolní otázky 2. U výpočetního systému s jednoduchým přerušením bude přerušení povoleno: V době, kdy probíhají důležité výpočty V době, kdy už probíhá obsluha předchozího přerušení V době, kdy má procesor volněji 3. Zkratka NMI není spojena s: Havarijním stavem systému Absolutní předností obsluhy vysoce důležité žádosti o přerušení Přerušením, které je vedeno přes řadič přerušení

  16. 1. Pro výpočetní systém bez přerušení neplatí: Žádné přerušení není možné Přerušení nemá hardwarovou podporu Přerušení je možné jen programově Kontrolní otázky – správné odpovědi – červené 2. U výpočetního systému s jednoduchým přerušením bude přerušení povoleno: V době, kdy probíhají důležité výpočty V době, kdy už probíhá obsluha předchozího přerušení V době, kdy má procesor volněji 3. Zkratka NMI není spojena s: Havarijním stavem systému Absolutní předností obsluhy vysoce důležité žádosti o přerušení Přerušením, které je vedeno přes řadič přerušení

  17. Seznam obrázků: Obr. 1: vlastní

  18. Seznam použité literatury: [1] Matoušek, D.: Číslicová technika, BEN, Praha, 2001, ISBN 80-7232-206-0 [2] Blatný, J., Krištoufek, K., Pokorný, Z., Kolenička, J.: Číslicové počítače, SNTL, Praha, 1982 [3] Kesl, J.: Elektronika III – Číslicová technika, BEN, Praha, 2003, ISBN 80-7300-075-X

  19. Děkuji za pozornost 

More Related