Přerušovací systém s prioritním řetězem

Podobné dokumenty
Přerušení POT POT. Přerušovací systém. Přerušovací systém. skok do obslužného programu. vykonávaný program. asynchronní událost. obslužný.

Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic

Řízení IO přenosů DMA řadičem

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

Strojový kód. Instrukce počítače

Principy komunikace s adaptéry periferních zařízení (PZ)

Metody připojování periferií BI-MPP Přednáška 2

Periferní operace využívající přerušení

Periferní operace využívající přerušení

Dekódování adres a návrh paměťového systému

Periferní operace využívající přerušení

Komunikace procesoru s okolím

Sběrnicová architektura POT POT. Jednotlivé subsystémy počítače jsou propojeny sběrnicí, po které se přenáší data oběma směry.

setup() { I = 0; } loop() { I = I + 1; }

3. Principy komunikace s perifériemi: V/V brány, programové řízení, přerušení, řešení priorit. Řadiče, DMA kanály. Popis činnosti DMA kanálu.

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW.

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Přerušovací systém 12.přednáška

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednášející: Zdeněk Kotásek. Ústav počítačových systémů, místnost č. 25

Procesor z pohledu programátora

PCKIT LPT MODUL SBĚRNICE IOBUS PRO PC LPT. Příručka uživatele. Střešovická 49, Praha 6, s o f c o s o f c o n.

3. Počítačové systémy

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Komunikace modulu s procesorem SPI protokol

Profilová část maturitní zkoušky 2014/2015

Základní uspořádání pamětí MCU

IMTEE Přednáška č. 8. interrupt vector table CPU při vzniku přerušení skáče na pevně dané místo v paměti (obvykle začátek CODE seg.


Pohled do nitra mikroprocesoru Josef Horálek

Periferní operace využívající přímý přístup do paměti

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Přerušení na PC. Fakulta informačních technologií VUT v Brně Ústav informatiky a výpočetní techniky. Personální počítače, technická péče cvičení

Struktura a architektura počítačů (BI-SAP) 11

Systém řízení sběrnice

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Struktura a architektura počítačů (BI-SAP) 9

Disková pole (RAID) 1

frekvence 8 Mhz, přestože spolupracuje s procesori různe rychlými. 16 bitová ISA sběrnice je

Struktura a architektura počítačů (BI-SAP) 10

Disková pole (RAID) 1

Vestavné systémy BI-VES Přednáška 5

Systém adresace paměti

Princip funkce počítače

Velmi zjednodušený úvod

Přidělování paměti II Mgr. Josef Horálek

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

zení Koncepce připojení V/V zařízení POT POT ... V/V zařízení jsou připojena na sběrnici pomocí řadičů. Řadiče Připojení periferních zařízení

Paměťový podsystém počítače

Přednášející: Zdeněk Kotásek. Ústav počítačových systémů, místnost č. L322

požadovan adované velikosti a vlastností Interpretace adresy POT POT

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

Metody připojování periferií

Architektury počítačů a procesorů

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Profilová část maturitní zkoušky 2015/2016

Sekvenční logické obvody

Architektura počítače

Systémová sběrnice, souvislost architektury počítače a systémové

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Speciální obvody a jejich programování v C 2. díl

Provádění instrukcí. procesorem. Základní model

Přednášející: Zdeněk Kotásek. Ústav počítačových systémů, místnost č. L336

Paměti a jejich organizace

TECHNICKÝ POPIS MODULU GRAFIK =============================

I. Dalšívnitřní paměti

Struktura programu v době běhu

int ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N

Pokyny pro projektování zařízení ElZaS 21

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Time RELAY. Přídavný časový spínač. Uživatelská příručka

Mezipaměti počítače. L2 cache. L3 cache

1. MIKROPROCESOR ATMEGA A/D PŘEVODNÍK MÓDY PŘEVODNÍKU Single Conversion Mode Auto Triggering Start...

Principy činnosti sběrnic

PCKEYB JEDNOTKA PRO OBSLUHU KLÁVESNICE TYPU PC AT. Příručka uživatele a programátora

Pokročilé architektury počítačů

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

Pozice sběrnice v počítači

Počítač jako prostředek řízení. Struktura a organizace počítače

Komunikace s perifériemi

Periferní zařízení. Laboratorní úloha F. Měření na PCI sběrnici. Vypracovali: Josef Hajas Přemysl Jiřík Ota Korbel

Přednášející: Zdeněk Kotásek. Ústav počítačových systémů, místnost č. L322

sběrnic a jejich komunikace s periferními zařízeními. Někdy se jedná o sběrnice, kdy celkovou

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Rozšiřující desce s dalšími paralelními porty Rozšiřující desce s motorkem Elektrickém zapojení Principu činnosti Způsobu programování

NÁVOD K OBSLUZE konfigurační SW CS-484

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Algoritmy a datové struktury

Systém elektronické evidence návštěvnosti TDL500

Transkript:

Přerušovací systém s prioritním řetězem Doplňující text pro přednášky z POT Úvod Přerušovací systém mikropočítače může být koncipován několika způsoby. Jednou z možností je přerušovací systém s prioritním řetězem. V následujícím textu bude popsán systém s prioritním řetězem, použitý u obvodů řady Z80. Vybavení obvodů Z80 pro přerušení CPU Procesor Z80CPU je vybaven dvěma přerušovacími vstupy: #NMI je vstup nemaskovatelného přerušení, #INT je vstup maskovatelného přerušení. (Znak # před názvem signálu je použit jako náhrada pruhu a znamená, že signál je aktivní v úrovni L). Na funkci přerušovacího systému mají dále vliv klopné obvody IFF1 a IFF2 pro povolení / zákaz přerušení, a registr I. Klopný obvod IFF1 a registr I jsou programově přístupné a musí být při inicializaci přerušovacího systému patřičně nastaveny. Procesor Z80CPU může být pro obsluhu maskovatelných přerušení programově nastaven do některého ze tří režimů (Mode 0, 1 nebo 2). Pro práci s obvody řady Z80 v prioritním řetězu je určen režim Mode 2, který musí být programově nastaven při inicializaci systému. Periferní obvody Periferní obvody řady Z80 mají pro stavbu přerušovacího systému několik vývodů a programově přístupných registrů: Vývod IEI (Interrupt Enable In) slouží pro vstup přerušovacího řetězu. Vývod IEO (Interrupt Enable Out) slouží pro výstup přerušovacího řetězu. Vývod #INT je výstup přerušovacího signálu. Tento vývod je typu otevřený kolektor. Pro funkci signálů IEI a IEO platí následující pravidla: 1. Je-li vstup IEI v aktivní úrovni (úroveň H), má daný obvod povoleno generování přerušovacího signálu. Je-li IEI v neaktivní úrovni, má obvod generování přerušovacího signálu zakázáno. 2. Generuje-li v této situaci obvod skutečně přerušovací signál (tj. nastavuje výstup #INT do aktivní úrovně), vysílá současně na výstup IEO úroveň L. 3. Negeneruje-li obvod přerušovací signál, propojuje výstup IEO se vstupem IEI. Logické úrovně vývodu IEO potom kopírují (s určitým zpožděním) stav vstupu IEI.

Každý z periferních obvodů obsahuje programově přístupný registr pro přerušovací vektor, do kterého musí být při inicializaci přerušovacího systému zapsána určitá hodnota, která slouží k určení vstupního bodu obslužné procedury. Význam přerušovacího vektoru bude vysvětlen dále. Kromě registru pro přerušovací vektor obsahují obvykle periferní obvody ještě další registry, které umožňují zakázat nebo povolit danému obvodu generování přerušení, případně nastavit podmínky při kterých bude přerušení generováno. Vybavení obvodů Z80 pro práci s přerušením je zjednodušeně znázorněno na Obr. 1. Obr. 1 Uspořádání přerušovacího systému Typické uspořádání přerušovacího systému s obvody Z80 je znázorněno na Obr. 2. Všechny obvody jsou zapojeny do prioritního řetězu tak, že výstup IEO jednoho obvodu je připojen na vstup IEI následujícího. Na vstup IEI prvního obvodu v řetězu je připojena úroveň H. Výstup IEO posledního obvodu je nevyužit. Popsaným uspořádáním je dána priorita jednotlivých obvodů pro generování přerušení. Obvod, který je blíže k začátku řetězu má vždy vyšší prioritu než obvod, který je blíže ke konci řetězu. První obvod v řetězu má nejvyšší prioritu. Všechny periferní obvody jsou dále příslušnými výstupy připojeny na signál #INT, který je zaveden na vstup #INT procesoru. Protože výstupy #INT jednotlivých obvodů jsou typu otevřený kolektor, může být signál #INT držen v aktivní (L) úrovni současně několika obvody bez nebezpečí vzniku kolize. Kromě popsaných signálů jsou všechny obvody propojeny dalšími obvyklými signály systémové sběrnice Z80.

Obr. 2 Funkce přerušovacího systému V klidovém stavu, kdy není obsluhováno žádné přerušení ani není aktivní přerušovací výstup žádného z obvodů, je úroveň H ze začátku prioritního řetězu předávána jednotlivými obvody až na jeho konec. Všechny obvody mají proto IEI v úrovni H a proto mají povoleno generování přerušení. Jednoúrovňové přerušení Předpokládejme, že v obvodu č. 2 došlo k události, která vede k vygenerování požadavku na přerušení. Protože obvod č. 2 má IEI v úrovni H, má povoleno generování přerušení a proto nastaví výstup #INT do aktivní úrovně. Současně přeruší prioritní řetěz a na výstup IEO vyšle úroveň L. Ta je postupně předávána dalšími obvody směrem ke konci řetězu, takže všechny obvody které jsou mezi obvodem č. 2 a koncem řetězu mají přerušení zakázáno úrovní L na vstupu IEI (viz Obr. 3 a Obr. 4). Obr. 3 Procesor má nyní aktivní vstup #INT. Jsou-li v procesoru povolena přerušení, dokončí procesor právě prováděnou instrukci a provede na sběrnici cykl INTA. Časování tohoto cyklu se podobá časování cyklu čtení z IO zařízení s tím rozdílem, že jsou současně aktivovány

signály #M1 a #IORQ (tato kombinace se nevyskytuje v žádném jiném sběrnicovém cyklu). Zjistí-li periferní obvod který aktivoval #INT, že na sběrnici probíhá cykl INTA, vyšle na datové vodiče svůj přerušovací vektor (tj. obsah příslušného registru). Ten je přečten procesorem a použit k výpočtu vstupního bodu obslužného programu. Obvod, který vyslal svůj přerušovací vektor, ukončí během cyklu INTA generování signálu #INT. Výstup IEO však zůstává stále v úrovni L, takže všechny obvody směrem ke konci prioritního řetězu (tj. s nižší prioritou, než má právě obsluhovaný obvod) mají během provádění obslužné procedury přerušení stále zakázáno. K obnovení původního stavu prioritního řetězu dojde až ve chvíli, kdy procesor přečte z paměti kód instrukce RETI (návrat z přerušení). Periferní obvod, jehož přerušení je právě obsluhováno, sleduje totiž provoz na sběrnici. Zjistí-li, že procesor čte z paměti instrukci RETI, považuje tento okamžik za ukončení obsluhy přerušení (návrat z obslužného programu) a vrátí výstup IEO do úrovně H. Tím povolí přerušení obvodům s nižší prioritou. Obr. 4 Vnořená přerušení Během provádění obslužného programu mají periferní obvody, které jsou v řetězu blíže k začátku, přerušení stále povoleno. Vznikne-li proto např. u obvodu č. 1 v této době požadavek na přerušení, je znovu aktivován signál #INT. Akceptuje-li jej procesor, provede Přesněji: přerušovací vektor vysílá obvod, jehož vstup IEI je v úrovni H a jehož výstup IEO je v úrovni L. Je to obvod, jehož vstup IEI je v úrovni H a jehož výstup IEO je v úrovni L. Při akceptování přerušení procesorem jsou automaticky další přerušení zakázána. Nové povolení přerušení musí být provedeno programově. Pro jednoúrovňové přerušení stačí umístit příslušnou instrukci na konec obslužné procedury, obvykle před instrukci RETI. Pro vnořená přerušení se instrukce povolení přerušení vkládá už na začátek obslužné procedury, která potom může být znovu přerušena přerušením s vyšší prioritou.

znovu cykl INTA. Přerušovací vektor nyní vyšle obvod č. 1. Obslužný program obvodu č. 2 je přerušen a okamžitě se začne obsluhovat přerušení obvodu č. 1. Prioritní řetěz je nyní ve stavu, kdy je na vstupu IEI obvodu č. 2 úroveň L, zatímco obvod č. 1 má na vstupu IEI úroveň H a na výstupu IEO úroveň L. Proto na čtení instrukce RETI na konci obslužného programu přerušení obvodu č. 1 reaguje obvod č. 1, který nastaví na IEO úroveň H. Procesor potom dokončí obsluhu obvodu č. 2. Čtení instrukce RETI na konci obslužného programu je zaregistrováno obvodem č. 2, který nastaví svůj výstup IEO do úrovně H (viz Obr. 5). Obr. 5 Určení adresy obslužného programu Pro výpočet adresy obslužného programu používá procesor registr I, který je součástí jeho registrové sady a přerušovací vektor přečtený v cyklu INTA z periferního obvodu. Před inicializací přerušovacího systému musí být v paměti připraveny obslužné procedury přerušení. Dále musí být v paměti vytvořena tabulka, obsahující adresy vstupních bodů jednotlivých obslužných procedur. Protože tyto adresy jsou 16bitové, má jedna položka tabulky délku 2 byty. Délka tabulky je maximálně 256 bytů, tj. 128 položek. Tabulka obvykle začíná na adrese dělitelné 256, tj. nižší byte její bázové adresy (adresy jejího začátku) je nulový. Vyšší byte bázové adresy potom musí být programově při inicializaci systému zapsán do registru I, zatímco offset jednotlivých položek tabulky (tj. jejich vzdálenost od počátku tabulky) se zapisuje do příslušných periferních obvodů jako přerušovací vektor. Při akceptování přerušení potom procesor přečte v cyklu INTA z příslušného periferního obvodu přerušovací vektor. Složí jej s obsahem registru I a takto získanou 16bitovou adresu

použije jako ukazatel, který ukazuje na jednu z položek tabulky. Z tabulky přečte procesor 16bitovou adresu vstupního bodu obslužné procedury, kterou vloží do registru PC. Původní obsah PC předtím zapíše do zásobníku jako návratovou adresu z přerušení (viz Obr. 6). Obr. 6 Závěr Popsaný systém přerušení s prioritním řetězem má některé nevýhody: 1. Priority jednotlivých obvodů jsou dány jejich polohou v řetězu a lze je obtížně měnit. 2. Při poruše nebo vyjmutí některého z obvodů v řetězu je řetěz přerušen a systém není funkční. 3. Zpoždění mezi vstupem IEI a výstupem IEO omezuje maximální délku řetězu. Pro přerušovací systém Z80 lze do řetězu zapojit maximálně 4 obvody. Při překročení maximální přípustné délky řetězu hrozí nebezpečí nesprávné funkce v situaci, kdy o přerušení žádají současně obvody na začátku i na konci řetězu. Přes uvedené nevýhody se systém s prioritním řetězem občas používá nejen pro přerušovací systém, ale i pro přidělování sběrnice a podobně.