Architektúra, megszakítási ek Mirıl lesz szó? Megszakítás fogalma Megszakítás folyamata Többszintű megszakítási ek Koschek Vilmos Példa: Intel Pentium vkoschek@vonalkodhu Koschek Vilmos Fogalom A számítógép működése közben igen gyakran következnek be olyan események, amelyek a feldolgozás szempontjából váratlanak tekinthetők Mi volt az előzmény? Eredeti cél: i/o és számítási műveletek összehangolása i/o indítása i/o befejezése MEGSZAKÍTÁS T w T w -> CPU? t MEGSZAKÍTÁSI RENDSZER Várakozás Másik folyamat Koschek Vilmos 3 Koschek Vilmos 4 Másik folyamat indítása Példa, billentyűzet I/O indítása Új folyamat indítása I/O befejezésének jelzése MEGSZAKÍTÁS I/O művelet elvégzése t Billentyűzet ESC Billentyű leütése (9) 3OK 4Billentyű sorszám (x) Billentyű leütése CPU (IT vezérlő,bios) 5ESC:xB Új folyamat Folyamat befejezése Billentyűzet puffer, (FIFO) Leütöttek egy billentyűt? 6ASCII kód Koschek Vilmos 5 MEGSZAKÍTÁS? Billentyű leütését váró alkalmazás Koschek Vilmos 6
Akkor mi is történt? Események csoportosítása Megszakítás kiszolgálása : billentyű kód beolvasása a pufferbe, I/O művelet elvégzése Szinkron Aktuális program Visszatérés az aktuális programhoz Aszinkron Váratlan esemény, MEGSZAKÍTÁS: billentyű leütés I/O művelet befejeződése Koschek Vilmos 7 Koschek Vilmos 8 Szinkron események Aszinkron események A program futása során meghatározható helyen, időben (szinkron a program futásával!) Az esemény időpontja nem ismert, nincs szinkronban a programmal Várható, pl: Pl: Nullával való osztás Aritmetikai túlcsordulás Illegális gépikód Laphiba Tömb index DMA átvitel Soros port Nem várható, pl: Memória paritás HDD hiba Koschek Vilmos 9 Koschek Vilmos Megszakítások okai () Megszakítások okai (,3) Géphibák Jellemzően HW hibák Pl: Hibajelző kódok CPU regiszterek OPT Adatátvitel Energia ellátás hibái Klimatizáció-hűtés hibák I/O források Perifériák megszakítási kérései Pl: nyomtató CPU -> átviteli igény -> nyomtató CPU <- megszakítás <- nyomtató CPU <- adatátvitel > nyomtató 3 Külső források Külső eszközök által generált megszakítások Pl: hálózati kommunikáció Koschek Vilmos Koschek Vilmos
Megszakítások okai (4) Megszakítások csoportosítása 4 Programozási források Szándékos Hiba Pl: hívás Memóriavédelem megsértése Tényleges tárkapacitás túlcímzés Címzési előírások megsértése (,4, ) Aritmetikai-logikai műveletek Koschek Vilmos 3 Szinkron / aszinkron Utasítások végrehajtása között (tárv) illetve közben (hw) DEC/VAX move Felhasználó által explicit kért (rendszh) és nem kért Megszakított program folytatódik, vagy befejeződik (hw hiba) Felhasználó által maszkolható, nem maszkolható Koschek Vilmos 4 Megszakítás folyamatának áttekintése Elfogadható a megszakítás? Következő utasítás nem Utasítások végrehajtása Következő utasítás INTR bemenet aktív (INTerrupt Request) Elfogadható? igen Analízis igen nem Jött megszakítás? Állapot visszaállítás, visszatérés Érvényre juthat? Megszakítható? Prioritás Maszkolás Állapot mentése Kiszolgálás Elfogadható, INTACK az egységnek (INTerrupt ACKnowledge ) Koschek Vilmos 5 Koschek Vilmos 6 Prioritások Egyszerre több megszakítás, melyiket? Prioritás kezelés Prioritás nélküli: beérkezés sorrendjében Idő? Prioritásos: adott sorrend rendelünk Prioritás hozzárendelése Fix: hozzárendelés állandó Alacsonyabb? Körben forgó: szinteken belül azonos Utoljára kiszolgált? Koschek Vilmos 7 Speciális maszk: egyes kérések tiltása Parancs a megszakítás elemzésére Aktuális prioritás Maszkolás Megszakítás kérések a forrásoktól 3 () Kiválasztó logika flag regiszter Parancs a megszakításra Elfogadott prioritás Maszk regiszter 3 Maszk beállítása Koschek Vilmos 8? 3
Megszakítás analízis Megszakítást kérő egység azonosítása ADATBUS Daisy chain Egység azonosítója Lekérdezéses (sorrend!) HW : daisy chain SW : sw polling Vektoros Rutin címe Azonosító kód CPU U U Un!! INTACK INTR Koschek Vilmos 9 Koschek Vilmos Beolvasott vektor: PC Cím 4 bájt: Vektor -> x 4 bájt = Vektor -> x 4 bájt = 4 Vektor -> x 4 bájt = 8 n Vektor -> n x 4 bájt = n x 4 35 Vektoros 4 8 5 35 5 7 OPT 5 35 5 7 rutin rutin rutin n rutin rutin címe rutin címe rutin címe n rutin címe alkalmazás 3 Mentés ITTTT Megszakított program állapotának mentése alkalmazás Mit kell elmenteni? (PSW) Hova kell elmenteni? Hogyan? 3alkalmazás MENTÉS Koschek Vilmos Megszakítások Koschek Vilmos Stack Működés: Pl: PSW, PSW,PWS PSW PSW PSW Hol használják? PSW 3 Állapot mentése Paraméterek PSW PSW PSW PSW? PSW PSW Lokális változók IDŐ Koschek Vilmos 3 int x=x33, y=x44; f(x, y); f( int x, int y) { int k=x5566; char t[4]= DIO ; q(k); } Stack, példa 3 4 5 44 33 PC H PC L R H R L R H PSW R L R H R L R3 H R3 L 55 66 O I D 55 66 PC H PC L R H R L R H PSW R L R H R L R3 H R3 L 36 34 3 3 8 6 4 8 6 4 8 6 4 Koschek Vilmos 4 4
4 Kiszolgálás Megszakítás okának megszüntetése, a megszakítás tényleges kiszolgálása Pl: 5 Visszaállítás, visszatérés Megszakított program állapotának visszaállítása, visszatérés az megszakított programhoz Billentyű kód beolvasása 3alkalmazás Nyomtatónak az adatok kiküldése alkalmazás alkalmazás VISSZAÁLLÍTÁS Adatok olvasása a HDD-ről Megszakítások Koschek Vilmos 5 Koschek Vilmos 6 szintek szerint Egyszintő Egyszintű Szintek Megszk Prioritások:,, Szintek: normál, megszakítási Többszintű Normál Idő Koschek Vilmos 7 T w T w? Koschek Vilmos 8 Többszintő Többszintő, több vonalú Szintek Prioritások:,,,3 Szintek:,,,3 Osztály /a Prioritások:,,,3 Osztályok :,,,3 Osztályon belül:a,b,c,d /a /a /b /a /b 3 Szintek száma? Idő Koschek Vilmos 9 3 /a /a /b /a /b Idő Koschek Vilmos 3 5
Intel (Pentium) processzorok Megszakítások Terminológia: PC -> IP Instruction Pointer Megszakítás (Interrupt) Eltérülés (Exception) INT x -IRET: PC+ flag! Maszkolható: INTR, IF, CLI, STI Megszakítás kérés (859!) INTA kimeneten nyugtázás 3 Vektor beolvasás 4 Táblázat alapján rutin címe Valós: vektor tábla (4 byte) Védett: deszkriptor tábla (8byte) Nem maszkolható: NMI (Non-Maskable Interrupt) Koschek Vilmos 3 Koschek Vilmos 3 Eltérülés Prioritások Processzor által felismert esemény Hibák (faults, utelőtt: pl -val osztás, bound) Csapdák (traps, utután: pl nyomköv, break) Végzetes hiba (aborts,nem tudja megh:hw hiba, tábla hiba) Programozott eltérülések SW megszakítások (int X) Eltérülések Végzetes hiba Hiba 3 Csapda NMI 3 INTR Koschek Vilmos 33 Koschek Vilmos 34 És akkor néhány konkrétum Minden megszakításhoz és egy eltérüléshez egy azonosító van rendelve 3: NMI+eltérülések :osztási hiba :debug kivétel (ut után!) :NMI (hw hiba) 3: töréspont (byte!) 4: túlcsordulás (overflow, INTO utasítás végrehaj és OF) 5: Index túllépés (BOUND index, határ) 6: Nem megengedett utasítás 3: Általános védelmi hiba 4: Laphiba 7: Illeszkedés (operandus) ellenőrzése 3 55: hw függő, maszkolható megszakítások IRQ: billentyűzet IRQ4: Infra port IRQ5: SD kártya IRQ: rádiós kártya IRQ: egér Koschek Vilmos 35 http://nikbmfhu/broczko/tantargyhtm Koschek Vilmos 36 6