Az interrupt Benesóczky Zoltán 2004

Hasonló dokumentumok
Architektúra, megszakítási rendszerek

OPERÁCIÓS RENDSZEREK. Elmélet

A Számítógépek hardver elemei

Mikrorendszerek tervezése

Periféria kezelési módszerek. programozott megszakításos DMA-s - közvetlen szoftver ütemezés - lekérdezéses ütemezés

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

Az operációs rendszer szerkezete, szolgáltatásai

Számítógép architektúrák

A Számítógépek felépítése, mőködési módjai

A számítógép alapfelépítése

Bevezetés a számítástechnikába

Digitális technika (VIMIAA01) Laboratórium 9

Perifériakezelési módszerek (Korrigált) Feltétel nélküli

Digitális technika (VIMIAA01) Laboratórium 9

A feladatokat önállóan, meg nem engedett segédeszközök használata nélkül oldottam meg. Olvasható aláírás:...minta VIZSGA...

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

Digitális technika VIMIAA01

Digitális technika VIMIAA01

ARM Cortex magú mikrovezérlők

Egyszerű számítógép működése

Számítógépek felépítése

Megszakítási rendszer

5. tétel. A számítógép sematikus felépítése. (Ábra, buszok, CPU, Memória, IT, DMA, Periféria vezérlő)

Perifériák hozzáadása a rendszerhez

A Számítógépek hardver elemei

A mikroprocesszor felépítése és működése

Digitális rendszerek. Digitális logika szintje

Programozási segédlet DS89C450 Fejlesztőpanelhez

Digitális technika II., 2009/2010 tavasz 1. vizsga A csoport

Járműfedélzeti rendszerek I. 5. előadás Dr. Bécsi Tamás

Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások

Digitális technika (VIMIAA01) Laboratórium 11

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Előadás_#02. Előadás_02-1 -

SZÁMÍTÓGÉPARCHITEKTÚRÁK

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

Számítógép Architektúrák

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

Digitális technika (VIMIAA01) Laboratórium 11

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

1. ábra: Perifériára való írás idődiagramja

Számítógép Architektúrák

Mikrorendszerek tervezése

Operációs rendszerek. Bemutatkozás

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

Mikrorendszerek tervezése

_INVHU000_WriteReadParameter.cxf Frekvenciaváltók

Nagyteljesítményű mikrovezérlők

1. Az utasítás beolvasása a processzorba

Digitális Technika 2 házi feladat Dudás Márton

funkcionális elemek regiszter latch számláló shiftregiszter multiplexer dekóder komparátor összeadó ALU BCD/7szegmenses dekóder stb...

9. Fejezet: Input/Output

2. Folyamatok. Operációs rendszerek. Folyamatok. Bevezetés Folyamatkezelés multiprogramozott rendszerekben. Folyamatok modellezése

SysCVideo: fiktív grafikus kártya SystemC modulként, SDL alapú megjelenítéssel

Az AVR programozás alapjai. Előadja: Both Tamás

A megszakítási rendszer

Számítógépek felépítése, alapfogalmak

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

Dr. Schuster György október 3.

MPLAB IDE - SIM - - Rövid ismertető a használathoz - Kincses Levente 3E22 89/ November 14. Szabadka

Mérési utasítás Mikrokontroller programozás 2.sz. mérés

INFORMATIKA ALAPJAI I.

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

Programmable Chip. System on a Chip. Lazányi János. Tartalom. A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban?

Máté: Számítógép architektúrák

Mikrorendszerek tervezése

1 done by: b+bme. Adja meg, hogy milyen ICW3 parancsot kell küldeni a MASTER illetve a SLAVE egységeknek!

SR mini PLC Modbus illesztő modul. Modul beállítása Bemeneti pontok kiosztása főmodul esetén Bemeneti pontok címkiosztása kiegészítő modul esetében

Bevitel-Kivitel. Bevitel-Kivitel és Perifériák. Algoritmusok és Alkalmazásaik Tanszék Budapest december 16.

Máté: Számítógép architektúrák

Számítógép Architektúrák

Digitális technika II. - Ellenőrző feladatok

SZORGALMI FELADAT. 17. Oktober

Karakteres LCD kijelző használata MiniRISC processzoron

Mintavételes szabályozás mikrovezérlő segítségével

Assembly Utasítások, programok. Iványi Péter

Számítógép felépítése

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

Programozási nyelvek 6. előadás

Operációs rendszerek. Folyamatok kezelése a UNIX-ban

Magas szintű optimalizálás

A Texas Instruments MSP430 mikrovezérlőcsalád

A/D és D/A konverterek vezérlése számítógéppel

Labor gyakorlat Mikrovezérlők

Számítógép Architektúrák

Uniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna

Utolsó módosítás:

MSP430 programozás Energia környezetben. Az I/O portok kezelése

Informatika érettségi vizsga

16F628A megszakítás kezelése

assume CS:Code, DS:Data, SS:Stack Start mov dl, 100 mov dh, 100 push dx Rajz

Bepillantás a gépházba

Aktív zajcsökkentést demonstráló rendszer továbbfejlesztése. Csofcsics Donát Gusztáv Tamás

Szenzorhálózatok programfejlesztési kérdései. Orosz György

PIC tanfolyam 2013 tavasz 2. előadás

9. Fejezet: Input/Output

BELÉPTETŐ RENDSZER TERVEZÉSE

Átírás:

Az interrupt Benesóczky Zoltán 2004 1

Az interrupt (program megszakítás) órajel generátor cím busz környezet RESET áramkör CPU ROM RAM PERIF. adat busz vezérlõ busz A periféria kezelés során információt kell átvinni a periféria és a memória között. A CPU megkerülésével, ún. DMA-val, később részletezzük. A CPU-n keresztül: adat adat MEMÓRIA CPU PERIFÉRIA 2

A perifériák tipikus regiszterei: státus (állapot): pl. kész vagy foglalt parancs: pl. indítás üzemmód: pl. soros átvitel sebességének beállítása adat pl. soros vonalon beérkezett katakter 3

Hogyan lehet kezelni az alábbi tulajdoságú perifériákat? a. A periféria adata bármikor írható ill. olvasható (Pl. LED display regisztere). b. A periféria indítást igényel és az indítás után rövid idő múlva készül el, (pl. lassú A/D konverter) Válasz: Programozott periféria kezeléssel: a. b. INDÍTÁS ADATÁTVITEL STÁTUS OLVASÁS READY? n ADATÁTVITEL i Indítás után megvárjuk a periféria elkészültét, ha erre szükség van. 4

Hogyan lehet kezelni az alábbi tulajdoságú perifériákat? a. A periféria véletlenszerű időpontban termel adatot (pl: UART) b. periféria indítást igényel és az indítás után hosszú idő múlva készül el (pl. lassú A/D konverter) INDÍTÁS STÁTUS OLVASÁS READY? ADATÁTVITEL i n Hosszú idõ! Rossz a CPU kihasználtsága! Több periféria esetén adat veszhet el! 5

INICIALIZÁLÁSOK INDF=0 FELADATOK VÉGREHAJTÁSA INDF=1? INDÍTÁS INDF=1 STÁTUS OLVASÁS READY? i n ADATÁTVITEL INDF=0 FELADATOK VÉGREHAJTÁSA Ha a ciklus túl hosszú, periféria adat veszhet el! 6

Más megoldás kell! Ha a perifériának kiszolgálásra van szüksége, jelezze ezt maga a CPU-nak. A CPU hagyja félbe, amit eddig csinált, és a perifériát kiszolgáló programot hajtsa végre. A periféria kiszolgálása után ott folytassa a programját, ahol abbahagyta. cím busz környezet ROM RAM PERIF. PERIF. CPU adat busz vezérlõ busz IRQ INTA Külön vonal kell a jelzéshez: IRQ (interrupt kérés), ezen jelzik a perifériák a CPU-nak a megszakítási igényt. A CPU a kérés hatására abbahagyja az aktuális program futását: 7

Az aktuális utasítás befejezése után, a perifériát kiszolgáló programrészen folytatja az utasítások végrehajtását. Meg kell jegyeznie, hogy az interrupt program végrehajtása után, hol kell folytatnia a működését. Ezért az IT rutinra ugrás előtt a stackre menti a következő utasítás címét. Az IT rutin befejezése után visszatér a megszakított programba: Az IT rutin végén a RETI utasítás hatására leemeli a stack tetejéről a visszatérési címet és oda adja a vezérlést. 8

Stack az IT alatt: Stack az IT elõtt: Stack az IT után: SP cím1 SP valami valami SP valami valami valami valami FUTÓ PROGRAMIT rutin: mentések (PUSH) cím1 PC=IT rutin cím periféria kiszolgálása PC=cim1 visszaállítások (POP) RETI Az IT rutin nem ronthatja el a megszakított program regisztereit! Az IT rutin elején el kell menteni a használni kívánt regiszterek tartalmát. 9

A visszatérés előtt vissza kell állítani a használt regiszterek régi tartalmát. A mentés a stackre, vagy valamely regiszter bankba történhet, esetleg az IT rutinhoz rendelt memória területre. 10

Honnan tudja a CPU, hogy hol kezdődik a végrehajtandó IT rutin? Elterjedt megoldások: Fix IT rutin kezdőcím. Az IT vonalhoz előre definiált nem megváltoztatható kezdőcím tartozik. A CPU-knak többnyire 1 IT vonala van, de van kivétel (I8085). Utasítás beolvasás. A CPU az IT elfogadásakor az INTA (IT elfogadási) ciklusban utasítást vár az adatbuszon, amit végrehajt. Tipikusan CALL vagy TRAP. A CPU az INTA ciklust külön jel jelzi. INTA 1. byte 2. byte ADAT CALL cim L 3. byte cim H 11

Vektor beolvasás A CPU az IT elfogadásakor az INTA (IT elfogadási) ciklusban egy vektort vár az adatbuszon. A processzor az IT vektor alapján az IT vektor táblából automatikusan előveszi a megfelelő IT rutin kezdőcímet. INTA ADAT vektor VEKTOR TÁBLA CÍM1 CÍM2 CÍMk IT RUTIN1 mentés visszaállítás RETI IT RUTINk mentés visszaállítás RETI IT RUTIN2 mentés visszaállítá RETI 12

Az interrupt kiszolgáló program kezdőcímének azonosítása nem minden esetben jelenti, hogy egyben az interrupt kérő eszköz is ismert. Az interrupt kérő eszköz azonosítása Programozott (státus) lekérdezéses IT forrás azonosítás szükséges az ún. Egyszerű IT rendszer esetén. C P U IT Ut R P1 P2 Pn O.C. O.C. O.C Automatikus megszakítási forrás azonosítás van az utasítás beolvasásos és vektoros IT rendszer esetén, ha minden IT forráshoz külön IT rutin cím tartozik. 13

A vegyes IT renszer esetén egyes IT források automatikusan, mások lekérdezéssel azonosíthatók. C P U INTA IT ADAT BUSZ IRQ0 IRQ1 IT VEZÉRLÔ IRQk Ut P0 P1 Pk Pk OC. OC. 14

Az interrupt engedélyezése Globálisan utasítással tiltható, engedélyezhető A periféria parancs regiszterében Az interrupt vezérlőben (ahol van ilyen) NMI Nem tiltható interrupt bemenet A legfontosabb események jelzésére Élérzékeny 15

Az interrupt rutinok megszakíthatósága Egyszintű interrupt rendszerben Az IT rutinok nem szakíthatják meg egymást Többszintű interrupt rendszerben a magasabb prioritású megszakíthatja az alacsinyabbat. PRIORITÁSI SZINTEK 2 IT2 1 IT1 IT1 0 t1 t2 t3 t4 t 16

Prioritási stratégiák Az egyszerre érkező kéréseket milyen sorrendben szolgálja ki a CPU? A legnagyobb prioritásút először. Fix prioritás esetén a prioritás nem változtatható. Változó prioritás esetén rugalmasan változtatható Pl. Körben forgó prioritás esetén a prioritási sorban legelöl állóból (legnagyobb prioritásúból) a kiszolgálása után a legkisebb prioritású válik 17

Interrupt busz struktúrák Az interrupt vezérlõ lehet önálló egység (centralizált), vagy elhelyezkedhet a perifériákban elosztva (decentralizált). Centralizált vektoros IT rendszer ADAT BUSZ P0 P1 Pk C P U INTA IT IRQ0 IRQ1 IT VEZÉRLÔ IRQk 18

Vektoros daisy-chain interrupt rendszer 1 IEI IEO 2. IEI IRQi, az eszköz IT kérése & IEO IEI IEO 1. & VEKTOR REG. 3. CPU OC. EN BUFFER IT INTA ADAT BUSZ 19

Többszintű vektoros decentralizált interrupt rendszer INTA eszköz IT kérése IEO IEI IEO & IEI IEI IEO & VEKTOR REG. CPU OC. EN BUFFER DEK IRQ ADAT BUSZ IT szint azonosító 20

Interrupt rendszerek csoportosítása egyszerű - fix újraindítási cím vektoros - utasítás beolvasásos - vektor beolvasásos egyszintű egyszintű többszintű - IT rutin nem - IT rutin nem - IT rutin megszakítható szakítható meg szakítható meg - kiszolgálási sorrendet a prioritás határozza meg (fix, körben forgó stb.) vegyes - egy és többszintű 21

IT-s periféria kialakítása Ut & O.C. IT ITEN ITR Cl Q D Cl Q Pr D D0 RESET WR0 D0 RD0 IT ok (impulzus) RD0 22