Univerzln procesor Jako vhodn procesor na msto virtulnho

  • Slides: 77
Download presentation
Univerzální procesor

Univerzální procesor

Jako vhodný procesor na místo virtuálního univerzálního mikroprocesoru (procesoru) byl pro výklad jako vhodný

Jako vhodný procesor na místo virtuálního univerzálního mikroprocesoru (procesoru) byl pro výklad jako vhodný typ vybrán procesor 8080 od firmy Intel, který se stal nejrozšířenějším procesorem ve své době a tím i standardním typem. Mikroprocesor je úplná 8 bitová paralelní procesorová jednotka určená pro univerzální použití v číslicové technice. Tento monolitický procesor byl vyráběn technologií MOS-N.

Procesor I 8080 včetně vnitřní struktury

Procesor I 8080 včetně vnitřní struktury

Blokové schéma Procesor 8080 obsahuje následující funkční jednotky : • pole registrů a adresovací

Blokové schéma Procesor 8080 obsahuje následující funkční jednotky : • pole registrů a adresovací logiky • aritmetickologickou jednotku • registr instrukcí a řídící obvody • obousměrný 3 stavový oddělovací registr sběrnice

Procesor 8080 obsahuje následující funkční jednotky : • pole registrů a adresovací logiky •

Procesor 8080 obsahuje následující funkční jednotky : • pole registrů a adresovací logiky • aritmetickologickou jednotku • registr instrukcí a řídící obvody • obousměrný 3 stavový oddělovací registr sběrnice

Procesor 8080 obsahuje následující funkční jednotky : • pole registrů a adresovací logiky •

Procesor 8080 obsahuje následující funkční jednotky : • pole registrů a adresovací logiky • aritmetickologickou jednotku • registr instrukcí a řídící obvody • obousměrný 3 stavový oddělovací registr sběrnice

Procesor 8080 obsahuje následující funkční jednotky : • pole registrů a adresovací logiky •

Procesor 8080 obsahuje následující funkční jednotky : • pole registrů a adresovací logiky • aritmetickologickou jednotku • registr instrukcí a řídící obvody • obousměrný 3 stavový oddělovací registr sběrnice

Celkové blokové schéma procesoru 8080

Celkové blokové schéma procesoru 8080

Propojení bloků je realizováno obousměrnou vnitřní sběrnicí, která přes obousměrný 3 stavový oddělovací registr

Propojení bloků je realizováno obousměrnou vnitřní sběrnicí, která přes obousměrný 3 stavový oddělovací registr (buffer) navazuje na vnější obousměrmou datovou sběrnici. Komunikaci s vnějškem provádí procesor přenosem dat a informací o svém vnitřním stavu po 8 bitové 3 stavové datové obousměrné sběrnici D 0 - D 7

Adresy předává samostatnou jednosměrnou 16 bitovou 3 stavovou sběrnicí A 0 - A 15.

Adresy předává samostatnou jednosměrnou 16 bitovou 3 stavovou sběrnicí A 0 - A 15. 3 stavová sběrnice znamená, že může nabývat logických úrovní L a H a navíc vysokoimpedančního stavu - t. j. procesor je elektronicky odpojen od sběrnice a předává její řízení jinému obvodu.

Procesor má 6 časovacích a řídících výstupů : SYNC, DBIN, WAIT, WR, HLDA, INTE

Procesor má 6 časovacích a řídících výstupů : SYNC, DBIN, WAIT, WR, HLDA, INTE a 4 řídící vstupy : READY, HOLD, INT, RESET Potřebuje 3 úrovně napájení a to : + 12 V, + 5 V, - 5 V a 2 hodinové vstupy : Φ 1, Φ 2.

Pole registrů obsahuje paměť RAM ve formě šesti 16 bitových registrů a to :

Pole registrů obsahuje paměť RAM ve formě šesti 16 bitových registrů a to : • čítač instrukcí (programový čitač) - program counter (PC) • ukazatel zásobníku - stack pointer (SP) • 8 bitových univerzálních registrů uspořádaných do dvojic a označených B, C; D, E; H, L • dvojici 8 bitových pomocných registrů pro dočasné ukládání dat W, Z (Temporary Registers).

Šest univerzálních registrů může být využíváno buď jako jednotlivé 8 bitové registry nebo jako

Šest univerzálních registrů může být využíváno buď jako jednotlivé 8 bitové registry nebo jako dvojice registrů o obsahu 2 byty. Nelze je libovolně spojovat, ale jen dvojice ležící vedle sebe : BC, DE, HL. Dvojregistr HL se využívá hlavně pro adresování paměti. H pro vyšší řády, L pro nižšší řády. Pomocné registry W a Z jsou nepřístupné programátorovi a užívají se jen pro vnitřní potřebu procesoru při vykonávání instrukcí.

Do této skupiny univerzálních registrů patří i 8 bitový střadač (akumulátor) A. Všechny jmenované

Do této skupiny univerzálních registrů patří i 8 bitový střadač (akumulátor) A. Všechny jmenované registry mají řadu shodných vlastností mezi něž patří následující možnosti : • přesun bytu mezi registry • přesun bytu mezi libovolným registrem a pamětí • aritmetickologické operace s obsahem libovolného z registrů včetně střadače a

Dále mají řadu individuálních vlastností : • střadač obsahuje vždy jeden z operandů či

Dále mají řadu individuálních vlastností : • střadač obsahuje vždy jeden z operandů či výsledek libovolné aritmetickologické operace s osmibitovými daty • registry B, C; D, E a H, L mohou být používány jako 16 bitové registry • registry H, L mohou sloužit i jako střadač při 16 bitovém sčítání instrukcí DAD a lze je používat pro tzv. registrové adresování 8 bitové slabiky (byte) t. j. pro adresování dat v operační paměti (16 bitů), data mohou být přenášena mezi vnitřní datovou sběrnicí a polem registrů přes multiplexer.

Data se 16 bity mohou být přenášena buď jen mezi dvojicemi registrů a nebo

Data se 16 bity mohou být přenášena buď jen mezi dvojicemi registrů a nebo dvojicemi registrů a adresovým registrem či obvodem inkrement/dekrement. Adresový registr může přijímat data z kterékoliv dvojice univerzálních registrů a budí 16 bitový výstupní oddělovací zesilovač adresové sběrnice A 0 - A 15. Obvod inkrenemt/dekrement přijímá data z adresového registru a vrací je do pole registrů. 16 bitová data pak mohou být inkrementována či dekrementována nebo jen přenesena mezi dvojicemi registrů

Aritmetickologická jednotka ALU obsahuje následující registry : • 8 bitový akumulátor • 8 bitový

Aritmetickologická jednotka ALU obsahuje následující registry : • 8 bitový akumulátor • 8 bitový pomocný akumulátor ACT • 8 bitový pomocný registr pro dočasné ukládání dat TMP • 8 bitový registr příznaků (Flag register)

8 bitový registr příznaků (Flag register) obsahuje příznaky : • nula - zero (Z)

8 bitový registr příznaků (Flag register) obsahuje příznaky : • nula - zero (Z) • přenos - carry (CY) • znaménko - signum (S) • parita - parity (P) • poloviční přenos - auxiliary carry (AC) • 3 bity jsou nepoužity.

Poloviční přenos je přenos mezi spodní a horní polovinou bytu (to je mezi spodním

Poloviční přenos je přenos mezi spodní a horní polovinou bytu (to je mezi spodním a horním nibblem) a používá se při zpracování čísel v kódu BCD a zajišťuje převod čísel mezi čísly binárními a BCD.

V ALU se vykonávají všechny operace aritmetické a logické včetně rotací s 8 bitovámi

V ALU se vykonávají všechny operace aritmetické a logické včetně rotací s 8 bitovámi daty. Zdrojem dat pro ALU je pomocný akumulátor ACT, registr TMP a indikátor přenosu CY. Výsledek operace se pak přenáší buď na vnitřní sběrnici nebo do akumulátoru. ALU rovněž nastavuje klopné obvody příznaků. Rotace se však provádí jen v akumulátoru. Akumulátor může dostat data z ALU a vnitřní sběrnice a může dodat data do pomocného akumulátoru ACT a též na vnitřní sběrnici. Obsah akumulátoru a indikátoru polovičního přenosu CY může být testován pro účely dekadické korekce výsledků v průběhu instrukce DAA.

Jednotlivé klopné obvody registru příznaků se nastavují do H podle výsledků některých operací následovně

Jednotlivé klopné obvody registru příznaků se nastavují do H podle výsledků některých operací následovně : • nula - při nulovém výsledku • přenos - jestliže nastal přenos z nejvyššího bitu (b 7) • znaménko - při záporném výsledku aritmetické operace • parita - při sudém počtu H v akumulátoru po provedené aritmetické či logické operaci • poloviční přenos - jestliže při aritmetické operaci nastal přenos mezi spodní a horní částí bytu (to je přenos z bitu b 3 na bit b 4)

Registr instrukcí a řídící obvody V průběhu výběru instrukce se z paměti vybere její

Registr instrukcí a řídící obvody V průběhu výběru instrukce se z paměti vybere její prvý byte, nazývající se operační znak (OP code), kterým se přenáší z vnitřní sběrnice do 8 bitového registru instrukce. Obsah registru zpracovává dekodér instrukcí. Výstupy dekodéru spolu s časovými signály vytváří řídící signály pro pole registrů, ALU, oddělovací zesilovač datové sběrnice a též budí externí řídící signály.

Obousměrný oddělovací registr sběrnice Je to 8 bitový obousměrný 3 stavový registr (Data Bus

Obousměrný oddělovací registr sběrnice Je to 8 bitový obousměrný 3 stavový registr (Data Bus Buffer), který odděluje vnitřní datovou sběrnici procesoru od sběrnice vnější (D 0 - D 7). V případě vstupu dat zaznamená okamžité úrovně na vstupu registru (z vnější sběrnice) a při dalším taktovacím impulsu jsou příslušné úrovně napětí (L, H) připojeny na sběrnici vnitřní. V případě výstupu dat přepíše z vnitřní sběrnice na sběrnici vnější výstupní signály a po přepisu do dalších obvodů přechází do 3 stavu. Slouží současně jako výkonový zesilovač.

Čítač instrukcí uchovává adresu uložení instrukce v paměti programu a je automaticky inkrementován (k

Čítač instrukcí uchovává adresu uložení instrukce v paměti programu a je automaticky inkrementován (k obsahu je připočtena 1) při každém výběru instrukce nebo jejího bytu.

Ukazatel zásobníku slouží k ukládání výsledků a informací do souvislého bloku v operační paměti,

Ukazatel zásobníku slouží k ukládání výsledků a informací do souvislého bloku v operační paměti, kterému se říká zásobník. Uchovává adresu následujícího místa přístupného pro čtení v zásobníkové paměti. Jeho počáteční obsah může být libovolně předvolen, takže výsledky lze ukládat kdekoliv v operační paměti RWM RAM. Než je byte vložen (instrukce Push) do zásobníku je obsah ukazatele zásobníku snížen o 1 - dekrementován. Při vyjmutí byte ze zásobníku (instrukce Pop) je jeho obsah inkrementován. Protože je však adresa 2 bytová, ukládají se oba byty a též obsah ukazatele je změněn o 2!

Z výše uvedeného vyplývá, že : • při zápisu se obsah ukazatele zásobníku snižuje

Z výše uvedeného vyplývá, že : • při zápisu se obsah ukazatele zásobníku snižuje • při čtení zvyšuje. To znamená, že poslední vložený údaj je čten jako první (systém LIFO - Last In First Out - poslední dovnitř a první ven !).

Časování Jak bylo již dříve řečeno, procesor pracuje synchronně s cyklickým průběhem. Potřebuje k

Časování Jak bylo již dříve řečeno, procesor pracuje synchronně s cyklickým průběhem. Potřebuje k tomu synchronizační impulsy hodinové impulsy, které jsou dvoufázové (Φ 1, Φ 2) a nepřekrývají se. Impulsy Φ 1 rozdělují strojový cyklus do stavů. Časovací logika pak určuje začátek každého strojového cyklu ze signálu SYNC.

Cykly časování Každý instrukční cyklus obsahuje 1 - 5 strojových cyklů či taktů. Strojový

Cykly časování Každý instrukční cyklus obsahuje 1 - 5 strojových cyklů či taktů. Strojový cyklus je zapotřebí, když se CPU obrací na paměť či I/O. Každý strojový cyklus se skládá ze 3 - 5 stavů či fází. Stav je definován jako interval mezi 2 po sobě jdoucími vzestupnými hranami hodinových impulsů Φ 1.

Toto lze vše shrnout následovně : 1) Každá perioda hodin určuje stav 2) 3

Toto lze vše shrnout následovně : 1) Každá perioda hodin určuje stav 2) 3 - 5 stavů vytváří strojový cyklus 3) 1 - 5 strojových cyklů tvoří instrukční cyklus z toho vyplývá, že úplný instrukční cyklus vyžaduje v závislosti na typu instrukce 4 - 18 stavů.

Jak bylo již výše uvedeno, jedna instrukce může mít maximálně 5 strojových cyklů -

Jak bylo již výše uvedeno, jedna instrukce může mít maximálně 5 strojových cyklů - ale různých! Těchto různých strojových cyklů s různým počtem stavů je 10. Jsou to : 1) Výběr (Fetch) - udává, že se procesor nachází v cyklu výběru prvého bytu instrukce 2) Čtení z paměti (Memory Read) udává, že datová sběrnice přijímá data čtená z paměti 3) Zápis do paměti (Memory Write) udává, že se provádí zápis do paměti 4) Čtení ze zásobníku (Stack Read) 5) Zápis do zásobníku (Stack Write)

6) Vstup (Input) udává, že je na adresové sběrnici adresa vstupní brány a vstupní

6) Vstup (Input) udává, že je na adresové sběrnici adresa vstupní brány a vstupní data budou předána na datovou sběrnici 7) Výstup (Output) udává, že je na adresové sběrnici adresa výstupní brány a že datová sběrnice dostane výstupní data, jakmile bude WR aktivní 8) Přerušení (Interrupt) 9) Zastavení (Halt) 10) Přerušení zastavení (Halt - Interrupt)

Typy strojových cyklů

Typy strojových cyklů

Procesor označuje zahajovaný strojový cyklus 8 bitovým stavovým slovem, které je umístěno na výstupu

Procesor označuje zahajovaný strojový cyklus 8 bitovým stavovým slovem, které je umístěno na výstupu datové sběrnice D 0 - D 7 v prvním stavu každého strojového cyklu. Stavové slovo je možno zachytit v registru (v čase T 1) jak je ukázáno na obrázku a tabulce. Stavové signály jsou určeny pro řízení externích obvodů.

Řídící signály Procesor neindikuje své okamžité vnitřní stavy ale na výstupech INTE, HLDA, DBIN,

Řídící signály Procesor neindikuje své okamžité vnitřní stavy ale na výstupech INTE, HLDA, DBIN, WR, a WAIT předává signály pro přímé řízení externích obvodů. Dále jsou v každém cyklu testovány vstupní signály READY, HOLD a INTERRUPT. Vše je synchronizováno signálem SYNC.

Signál čekání - WAIT Jakmile procesor předá adresu paměti, může pomalá paměť požádat o

Signál čekání - WAIT Jakmile procesor předá adresu paměti, může pomalá paměť požádat o přechod do čekacího stavu WAIT. To z toho důvodu, že pomalá paměť po adresaci a signálu pro čtení paměti není schopna dát okamžitě data na sběrnici. Žádost se provede tak, že na vstup READY je vyslána úroveň L. V tomto okamžiku vydá procesor signál WAIT (že čeká), a to až do té doby, kdy se na vstupu READY objeví úroveň H. Po celou tuto dobu procesor nepracuje a testuje READY (čeká na data). Teprve přechodem signálu READY do H oznamuje, že jsou data připravena.

Signál DBIN je zkratka DATA BUS IN. Tímto signálem se řídí směr toku dat

Signál DBIN je zkratka DATA BUS IN. Tímto signálem se řídí směr toku dat buď do procesoru nebo z procesoru. Tento 1 bitový signál říká kdy je sběrnice přepnuta pro příjem dat procesorem. Užívá se pro hradlování signálů z operační paměti nebo obvodů I/O do CPU.

Signál WR Je to signál, kterým se provádí zápis dat do paměti či I/O

Signál WR Je to signál, kterým se provádí zápis dat do paměti či I/O jednotek. Je-li WR = L jsou data na sběrnici platná a provádí se jejich zápis.

Signál HOLD Signál je požadavkem periferního zařízení na přechod CPU do stavu HOLD. Stav

Signál HOLD Signál je požadavkem periferního zařízení na přechod CPU do stavu HOLD. Stav Hold znamená, že se procesor "odpojí" od datové a adresové sběrnice, t. j. že jeho výstupy přejdou do 3 stavu a řízení sběrnic se ujme periferní zařízení. Tím je umožněn přímý přístup do paměti perifernímu zařízení, které pak provede rychlý přenos velkého bloku dat (DMA) do nebo z paměti, což procesor tak rychle neumí!

Signál HLDA Je to výstupní signál indikující stav přechodu procesoru do stavu HOLD. Teprve

Signál HLDA Je to výstupní signál indikující stav přechodu procesoru do stavu HOLD. Teprve po poté se DMA ujme funkce.

Signál INTE je zkratka INTERRUPT ENABLE - povolení přerušení. Je to signál informující o

Signál INTE je zkratka INTERRUPT ENABLE - povolení přerušení. Je to signál informující o stavu vnitřního klopného obvodu umožňující přerušení činnosti procesoru. Stav klopného obvodu lze měnit programově instrukcemi : • EI - ENABLE INTERRUPT povolení přerušení • DI- DISSABLE INTERRUPT zakázání přerušení (maskování)

Signál INT je zkratka INTERRUPT REQUEST což je požadavek periferie na přerušení činnost procesoru

Signál INT je zkratka INTERRUPT REQUEST což je požadavek periferie na přerušení činnost procesoru a na její obsluhu. Je akceptován, pokud signál INTE umožňuje příjem této žádosti. Na příklad při stisknutí některé klávesy na klávesnici požádá klávesnice signálem INT procesor, aby si z ní odebral data (písmeno, číslo, povel). Obdobně tiskárna, která dostává vždy k vytištění blok dat. Jestliže celý blok dat vytiskne, pomocí žádosti o přerušení požádá o "obsluhu" , to je předání dalšího bloku dat.

Signál SYNC Je to puls, který indikuje probíhající strojní cyklus, pomocí něhož se zapisuje

Signál SYNC Je to puls, který indikuje probíhající strojní cyklus, pomocí něhož se zapisuje stav CPU v každém strojním cyklu. Vybavuje tak řídící sběrnici pro řízení všech obvodů.

Signál RESET Signálem RESET se provádí nulování procesoru, nuluje se programový čítač a klopné

Signál RESET Signálem RESET se provádí nulování procesoru, nuluje se programový čítač a klopné obvody INTE a HLDA.

Řídící sběrnice Výše jmenované signály však netvoří řídící sběrnici. Ta je realizována tak, že

Řídící sběrnice Výše jmenované signály však netvoří řídící sběrnici. Ta je realizována tak, že výstupní signály WR, DBIN a HLDA z procesoru 8080 se dekódují ve speciálním obvodu 8228 (popis viz další kapitola) a spolu se vstupním signálem tvoří řídící sběrnici : • signály čtení : - MEMR - I/OR • signály zápisu : - MEMW - I/OW • potvrzení přerušení : - INTA • vstup pro převedení výstupů do 3 stavu : - BUSEN

Na následujícím příkladu součtu dvou čísel si ukážeme celý tok signálů a dat, tak

Na následujícím příkladu součtu dvou čísel si ukážeme celý tok signálů a dat, tak jak probíhá v mikroprocesoru. Zásadně se bude jednat o součet jednoho čísla uloženého ve střadači a druhého čísla uloženého v operační paměti. Z tohoto důvodu musí být již prvé číslo uloženo ve výše zmíněném střadači a v dvojregistru HL pak i adresa druhého čísla. Součet se pak vykoná pomocí instrukce ADD M.

Ve střadači musí být uložen první sčítanec. V dvojregistru HL musí být již uložena

Ve střadači musí být uložen první sčítanec. V dvojregistru HL musí být již uložena adresa druhého sčítance.

Řadič přepne obousměrnou datovou sběrnici pro příjem dat (DBIN) procesorem. Procesor adresuje pomocí programového

Řadič přepne obousměrnou datovou sběrnici pro příjem dat (DBIN) procesorem. Procesor adresuje pomocí programového čitače přes registr adresy paměti a zesilovač adresové sběrnice. To provádí blok časování a řízení.

V systémovém budiči je vygenerován signál pro čtení paměti. Poté paměť přenese data z

V systémovém budiči je vygenerován signál pro čtení paměti. Poté paměť přenese data z paměťové buňky na obousměrnou datovou sběrnici.

Do procesoru se data dostanou přes obousměrný zesilovač datové sběrnice. Protože prvý v instrukci

Do procesoru se data dostanou přes obousměrný zesilovač datové sběrnice. Protože prvý v instrukci je vždy operační znak (OZ), pak řadič tyto data zapíše do registru instrukce.

V dekodéru instrukce se zjistí, že se jedná o 1 bytovou instrukci ADD M.

V dekodéru instrukce se zjistí, že se jedná o 1 bytovou instrukci ADD M. Poté řadič (blok časování a řízení) začne provádět následující činnost

Řadič přepne obousměrnou datovou sběrnici pro příjem dat procesorem (DBIN). Přepíše data z dvojregistru

Řadič přepne obousměrnou datovou sběrnici pro příjem dat procesorem (DBIN). Přepíše data z dvojregistru HL do registru adresy a přes zesilovač adresové sběrnice přivede adresu druhého sčítance na vstup operační paměti.

V systémovém budiči je vygenerován signál pro čtení paměti. Poté paměť dá data z

V systémovém budiči je vygenerován signál pro čtení paměti. Poté paměť dá data z paměťové buňky na obousměrnou datovou sběrnici - vlastně hodnotu druhého sčítance.

Do procesoru se data dostanou přes obousměrný zesilovač datové sběrnice (oddělovací registr).

Do procesoru se data dostanou přes obousměrný zesilovač datové sběrnice (oddělovací registr).

Řadič zapíše data do pomocného registru a poté provede přepis dat ze střadače do

Řadič zapíše data do pomocného registru a poté provede přepis dat ze střadače do záchytného registru střadače. . V tomto okamžiku jsou oba sčítance připraveny na obou vstupech ALU.

Řadič vygeneruje řídící signály pro součet dvou čísel. ALU tuto operaci provede a výsledek

Řadič vygeneruje řídící signály pro součet dvou čísel. ALU tuto operaci provede a výsledek pošle na vnitřní obousměrnou datovou sběrnici.

Řadič přepíše výsledek jednak do střadače a jednak do registru příznaků (stavového registru).

Řadič přepíše výsledek jednak do střadače a jednak do registru příznaků (stavového registru).

Poté řadič zvýší obsah programového čitače o 1 a přepne programový čitač na registr

Poté řadič zvýší obsah programového čitače o 1 a přepne programový čitač na registr adresy a znovu vygeneruje signál pro čtení paměti atd.

Obsluha vnějších zařízení Pro obsluhu vstupních a výstupních zařízení, snímačů, klávesnice atd. se používají

Obsluha vnějších zařízení Pro obsluhu vstupních a výstupních zařízení, snímačů, klávesnice atd. se používají dvě metody. Jsou to : 1) metoda dotazovací - provádí ji programově CPU 2) metoda přerušovací - je iniciována periferními zařízeními

Metoda dotazovací Tato metoda zvaná též Polling obsluhuje periferní zařízení tak, že ve více

Metoda dotazovací Tato metoda zvaná též Polling obsluhuje periferní zařízení tak, že ve více méně pravidelných časových intervalech se procesor postupně dotazuje jednotlivých zařízení, zda potřebují obsluhu či nikoliv.

Metoda dotazovací Pokud zařízení nepotřebuje obsluhu, přechází dotaz na další zařízení. Jestliže však toto

Metoda dotazovací Pokud zařízení nepotřebuje obsluhu, přechází dotaz na další zařízení. Jestliže však toto prvé zařízení teprve dodatečně začne požadovat obsluhu, to je v době kdy bylo dotázáno další zařízení, pak musí počkat až se opět dostane na řadu!

Metoda dotazovací Tento systém obsluhy však ovlivňuje rychlost práce procesoru, protože většina dotazů je

Metoda dotazovací Tento systém obsluhy však ovlivňuje rychlost práce procesoru, protože většina dotazů je konána zbytečně a požadavky na přerušení nejsou přijímána dostatečně rychle.

Metoda přerušovací Při této druhé metodě - metodě přerušovací (Interrupt) - může procesor provádět

Metoda přerušovací Při této druhé metodě - metodě přerušovací (Interrupt) - může procesor provádět svůj hlavní program a obsluhuje zařízení až v okamžiku, kdy je to nezbytně nutné t. j. je vyzván periferním zařízením k obsluze. Tato metoda je asynchronní. Jestliže pak procesor obdrží výzvu k obsluze zařízení, dokončí právě zpracovávanou instrukci , uloží návratovou adresu (PC + 1) a případně veškerá potřebná data do zásobníkové paměti a provede vlastní obsluhu zařízení. Po ukončení obsluhy přejde pomocí návratové adresy do místa, kde přerušil svou činnost a pokračuje v práci. Tímto způsobem lze řešit více úloh a zvýšit aktivitu počítače.

Každému zařízení je určena jeho priorita. Řadič priority přerušení pak pracuje jako řídící obvod

Každému zařízení je určena jeho priorita. Řadič priority přerušení pak pracuje jako řídící obvod v systému řízeném přerušením. Přijímá od periferních zařízení požadavky a zjišťuje jejich nejvyšší prioritu, při čemž určuje zda má právě zpracovávaný požadavek vyšší prioritu než nový, právě příchozí požadavek. Jestliže tomu tak je, pak opět procesor dokončí právě prováděnou instrukci, uloží návratovou adresu a případně další data do zásobníkové paměti a provede obsluhu zařízení s vyšší prioritou. Poté vyzvedne ze zásobníkové paměti návratovou adresu a případně další data a vrátí se k obsluze zařízení s nižší prioritou.

Po ukončení obsluhy tohoto zařízení vyzvedne ze zásobníkové paměti návratovou adresu a vrátí se

Po ukončení obsluhy tohoto zařízení vyzvedne ze zásobníkové paměti návratovou adresu a vrátí se zpět do hlavního programu. Každému perifernímu zařízení je přiřazen speciální program a s ohledem na jeho specifickou funkci nebo provozní požadavky (obslužný program). Po přerušení práce procesoru musí řadič přerušení předat procesoru instrukci, která vyvolá obslužný program vyžádaný příslušným periferním zařízením. Řadič dekóduje úroveň požadavku a předá ji jako vektor pro výběr obslužného programu přerušení.

Periferie přes I/O požaduje obsluhu a požádá o ni řadič přerušení.

Periferie přes I/O požaduje obsluhu a požádá o ni řadič přerušení.

Řadič přerušení zpracuje přerušení (priority) a požádá o přerušení procesor.

Řadič přerušení zpracuje přerušení (priority) a požádá o přerušení procesor.

Procesor dokončí instrukci a uloží data do zásobníku (v paměti RAM) včetně návratové adresy.

Procesor dokončí instrukci a uloží data do zásobníku (v paměti RAM) včetně návratové adresy.

Poté začne obsluhovat periferii, která o obsluhu žádala. Po ukončení obsluhy se procesor opět

Poté začne obsluhovat periferii, která o obsluhu žádala. Po ukončení obsluhy se procesor opět navrátí do přerušeného hlavního programu.

Zásobník V systému procesoru 8080 je možno vytvořit a používat zásobník. Zásobník je souvislá

Zásobník V systému procesoru 8080 je možno vytvořit a používat zásobník. Zásobník je souvislá část paměti RWM RAM , která slouží pro přechodné ukládání adres, dat a podobně. Používá se hlavně při zpracování přerušení, volání podprogramů a návratů z nich.

Zásobník se vytváří od určité adresy směrem k nižším adresám. Tato vybraná adresa určuje

Zásobník se vytváří od určité adresy směrem k nižším adresám. Tato vybraná adresa určuje dno zásobníku. Z tohoto důvodu pak poslední vložený údaj do zásobníku zaujímá nejnižší adresu. Adresu vrcholu zásobníku udržují všechny instrukce, které vkládají do zásobníku údaje či je z něho vybírají. Tato poslední aktuální adresa je v ukazateli zásobníku (SP). Údaje jsou ukládány v pořadí tak jak přišly. Poslední údaj, který je uložen na vrcholu zásobníku bude vybrán jako prvý.

Zásobník se nejčastěji používá při přerušení nebo volání podprogramů. Při vyvolání podprogramu z hlavního

Zásobník se nejčastěji používá při přerušení nebo volání podprogramů. Při vyvolání podprogramu z hlavního programu je nutno uchovat návratovou adresu programu. Před provedením návratu z podprogramu se příslušná návratová adresa vyzvedne ze zásobníku. Tento systém zajišťuje i několikanásobné "vnoření"

Hlavní program A na adrese Ax vyvolá podprogram B, ten po chvíli musí na

Hlavní program A na adrese Ax vyvolá podprogram B, ten po chvíli musí na adrese Bx vyvolat podprogram C a ten opět po chvíli musí na adrese Cx vyvolat podprogram D. Když se vykoná podprogram D, provede se návrat na adresu Cx+1, dokončí se podprogram C, provede se návrat na adresu Bx+1, dokončí se podprogram B a nastane návrat do hlavního programu na adresu Ax+1.

Velikost zásobníku není prakticky omezena. Je omezena jen velikostí části RWM RAM, která je

Velikost zásobníku není prakticky omezena. Je omezena jen velikostí části RWM RAM, která je pro tento účel vymezena. Je nutno kontrolovat, zda vrchol zásobníku nedosáhne oblasti vyhrazené program či data.