Számítógépek felépítése sínrendszer, megszakítás
Az előadás tartalma Kapcsolatok, Input / Output Sínrendszer Megszakítási rendszer I/O Rendszerek Programozott I/O DMA I/O processzorok, csatornák CPU gyors, IO lassú. CPU „leáll” a IO idejére ? vagy mit csinál ?
CPU, Memória, és még valami... Számítógép fő számítási funkciója csak a CPU-t és a Memóriát érinti. CPU beolvassa az utasításokat és az adatokat a memóriából, feldolgozza majd az eredményt a memóriában tárolja... DE... Hogyan kerülnek az adatok a memóriába ?
Kapcsolat a „külvilággal” A kimeneti és bemeneti egység feladata : információ csere a CPU vagy a központi memória és a külvilág között... „külvilág” CPU MEM sín
A ki/bemeneti egység feladata Kapcsolatok kezelése Adatátvitel processzor ki/bemeneti eszköz input/output device I/O eszköz periféria memória I/O eszköz
Célok és problémák... Célok : Problémák : eszközök minél gyorsabb, „jobb” kiszolgálása... a CPU minél kisebb leterhelése... Problémák : eszközök (CPU - perifériák) eltérő sebessége... eszközök különbözősége (kezelési mód)... időkritikusság...
Eszközök... Bemeneti Be/kimeneti Kimeneti billentyűzet háttértárolók (lemezmeghajtók) nyomtató scanner képernyő hálózat (modem) egér CDROM és még sokan mások...
Eszközökkel való kapcsolat (kezelése) port-okon keresztül címsín adatsín port-ok parancs regiszter (c) állapotjelző regiszter (s) c s d adat ki/bemeneti regiszter (d) eszköz vezérlő
I/O eszközök (portok) elérése tárolóhoz rendelt módon (memory mapped addressing) : a központi memórián keresztül IO eszköz bizonyos címeket „felismer” CPU Memória I/O eszköz címsín adatsín közvetlen I/O utasítások : közvetlenül az eszközvezérlő regiszterébe CPU Memória I/O eszköz címsín adatsín Mem/IO
Sínrendszer
Sínrendszer feladata A sínrendszer feladata : adatok, vezérlőjelek továbbítása Átvitel létrehozásakor eszközök kijelölése („cím” megadás...) adatátvitel iránya eszközök szinkronizálása (működésének összehangolása)
Sínrendszer struktúrája Külső / belső sínrendszer (CPU-hoz képest) Belső : (pld. 3 sín, külön adatsín írásra, olvasásra...) Külső: helyi sín (local bus) (pld. co-processzor) rendszer sín (system bus) (pld. I/O) memória sín (memory bus) Sínrendszer részei : Címsín Adatsín Vezérlősín
Sínrendszer (közös / külön IO sínrendszer) egyszeres osztott sín külön memória és ki/bemeneti sín CPU MEM CPU MEM rendszer sín (system bus) rendszer sín (system bus) I/O-1 ... I/O-n I/O-processzor ki/bemeneti sín (i/o bus) I/O-1 ... I/O-n
Sínek... helyi sín belső sín CPU co-processzor cache vez ALU rendszer sín MEM MEM IO processzor IO sín IO eszköz IO eszköz IO eszköz
Vezérlő jelek (a vezérlősínen) Adatátvitelt vezérlő jelek : memória /periféria M/IO - cím a sínen írás / olvasás R/W - adat a sínen szó / byte átvitel WD/B - átvitel vége Megszakítást vezérlő jelek Sínvezérlő jelek (kérés, foglalás, visszaigazolás) Egyéb... (órajel, ütemezés, táp,...)
Sínfoglalás (bus arbitration) Soros kiszolgálás (daisy chain) Lekérdezéses kiszolgálás (polling) Párhuzamos kiszolgálás (independent requesting)
Soros kiszolgálás (daisy chain) sínkérés (BREQ - bus request) sín engedélyezés (BG - bus grant) 0. eszköz 1. eszköz 2. eszköz busz vezérlő sín
Lekérdezéses kiszolgálás (polling) sínkérés (BREQ - bus request) lekérdező szám (polling count) 0. eszköz 1. eszköz 2. eszköz busz vezérlő sín
Párhuzamos kiszolgálás sínkérés (BREQ - bus request) sín engedélyezés (BG - bus grant) 0. eszköz 1. eszköz 2. eszköz busz vezérlő sín prioritás ?
...még a sínekhez kapcsolódik... sínprotokoll (mechanikus, elektromos, logikai) átlapolódó sínciklusok blokk sínciklus (burst cycle) sínfoglalás (bus arbitration) Sínvezérlő (sínmeghajtó) egység (bus interface) master / slave
A „sínhasználók” aktív eszköz (master) sínhasználat kezdeményezés sínhasználat végrehajtás passzív eszköz (slave) processzor memória I/O eszköz co-processzor DMA I/O lebegőpontos utasítás adat, utasítás adat
Megszakítási rendszer Interrupt system
Megszakítások „Váratlan események”... megszakítás (interrupt) megszakítási rendszer megszakítási kérelem (IRQ - Interrupt Request) megszakítási kérelem kiszolgálása Cél : események gyors kezelése... minél kevésbé zavarja a feldolgozást... események minél gyorsabb észlelése hw / sw arány... folyamatirányító gépek... (cirkálórakéta...)
megszakítást kiszolgáló program Megszakítások „futó” program megszakítást kiszolgáló program megszakítás kérelem i. i+1.
Megszakítási események kiváltója program hardver végrehajtás közbeni hiba 0-val osztás túlcsordulás lapváltás végrehajtás felfüggesztése a periféria működése közben aszinkron események szinkron események várható váratlan „kért működés” „hiba”
Megszakítás vs. kivétel megszakítás (interrupt) kivétel (exception) megszakítás kiszolgálása kivétel kiszolgálása n. utasítás n+1. utasítás n. utasítás megszakítás kivétel
Megszakítás kezelés folyamata megszakítás engedélyezés maszkolás prioritás megszakítható pont megszakítás analízis (kiszolgáló rutin ?) kód - tárcím - utasítás állapotmentés kiszolgálás állapot visszaállítás
Maszkolás Maszkolás : bizonyos megszakítások „figyelmen kívül hagyása” megszakítási kérelmek engedélyezése / tiltása Maszkolható / nem maszkolható kérelmek hw / sw kisebb nagyobb hibák sw nem maszkolható
Megszakítás-engedélyezés megszakítás kérés „maszkolása”... prioritások kezelése : ha több megszakítás egyidőben ? többszörös megszakításkezelés : ha újabb megszakítás a megszakításkezelés közben ? a megszakítást okozó eszköz megállapítása : ki kérte a megszakítást ?
Többszörös megszakítás Egyszintű megszakítási rendszer : kiszolgáló rutin nem megszakítható Többszintű megszakítási rendszer : rutin-5 prioritás szint rutin-4 rutin-2 rutin-2 „normál” „normál” megszakítás kérelmek idő 2 5 4 prioritások
Megszakítás analízis A megszakítást kezdeményező eszköz megállapítása Szoftver módszer operációs rendszer időnként megvizsgálja az eszközöket „lekérdezéses megszakításkezelés” (polling interrupt) Hardver módszer 1 megszakítási vonal... több megszakítási vonal... vektoros módszer : kiszolgáló rutin kezdőcíme...
Vektoros módszer (a megszakítást kezdeményező eszköz megállapítása) kiszolgáló rutint elindító utasítás átadása (pld.: CALL INT_RUT) kiszolgáló rutint elindító utasítás címének az átadása (pld.: ADR, ahol [ADR]=CALL INT_RUT) kiszolgáló rutint címének az átadása (pld.: INT_RUT) sorszám átadása : megszakítási vektortáblában rutinok kezdőcímei, sorszám mint index a táblázatban
Megszakítás vektor tábla memória 1 2 3 4 100 200 CALL 4 CPU CALL 100 adatsín CALL 200 INT REQ 2 CALL ... A eszköz beviteli rutin IO port 0 IO port 1 IO port 2 A eszköz kiviteli rutin A eszköz B eszköz B eszköz kiviteli rutin
Megszakítás kiszolgálásának lépései (hardver által 1.) processzor PC és PSW elmentése (5) eszköz PSW verem INT (1) megszakítás kezelő vezérlő PC IACK (2) vektor tábla kezdőcím a PC-be (7) IT megszakítási vektor sorszám (3) rutin kezdőcím a táblázatból (6) sorszám tárolás (4) adatsín
Megszakítás kiszolgálásának lépései (2.) állapotmentés Szoftver által : regiszterek -> verem / memória kiszolgáláshoz szükséges adatok összegyűjtése megszakítás kiszolgálása, kezelése (kiszolgáló rutin lefutása...) verem / memória -> regiszterek Hardver által : PC és PSW visszaállítása kiszolgálás állapotmentés állapot visszaállítás