Architektúrák és operációs rendszerek Balogh Ádám, Lőrentey Károly Eötvös Loránd Tudományegyetem Algoritmusok és Alkalmazásaik Tanszék Budapest 2005. december 16.
Tartalomjegyzék Perifériák 1 Perifériák 2 3 Topológiák
Mindeddig szinte csak a számítógép,,agyáról beszéltünk (processzor és operatív memória) Az,,agy kevéssé használható, ha nem tud a külvilággal kommunikálni Szükség van eszközökre, melyekkel adatokat tudunk bevinni számítógépbe, illetve kivinni onnan (perifériák) Valamilyen módon koordinálni kell a kommunikációt a processzor/memória és a perifériák között (sínek)
Perifériák A perifériákat használatuk célja szerint csoportosíthatjuk: Háttértárak Merevlemezek Optikai háttértárak (CD, DVD) Félvezető alapú háttértárak (flash) Megjelenítők, kiviteli eszközök Kijelzők (katódsugárcsöves és folyadékkristályos monitorok) Nyomtatók Hangkeltő eszközök Beviteli eszközök Billentyűzet Egér Mikrofon Lapolvasó
Perifériák Hálózati eszközök Vezetékes hálózati eszközök,,rezes adatátvitel (elektromos vezető) Optikai adatátvitel (üvegszálas megoldások) Vezeték nélküli hálózati eszközök Infravörös kommunikáció (IrDA) Rádiófrekvenciás kapcsolat (WiFi, Bluetooth, stb.) Egyéb perifériák Időzítő Véletlenszám-generátor stb.
Tartalomjegyzék Perifériák 1 Perifériák 2 3 Topológiák
Perifériák A processzor speciális I/O utasítások segítségével kiolvashatja illetve beállíthatja a perifériák regisztereit Az adatátvitel a regisztereken keresztül, pl. bájtonként történik: Programozott adatkivitel Írd be a parancsregiszterbe a megfelelő kiviteli utasítás kódját Amíg van még kiírandó adat: Várj, míg az állapotregiszter szerint az eszköz kész nem lesz a következő bájt fogadására Írd ki az adatregiszterbe a következő bájtot
CPU RAM Periféria
CPU RAM Periféria
CPU RAM Periféria
Perifériák Az adatbevitel hasonlóan folyik: Háttértárról olvasás esetén egy parancsregiszterbe kiírjuk a beolvasni kívánt adatcsomag sorszámát, majd a státusz- és adatregiszterekből a fenti módszerrel olvasunk Egyéb beviteli eszköz (pl. billentyűzet) esetén rendszeresen figyelni kell a státuszregiszter tartalmát, érkezett-e új adat A programozott I/O viszonylag könnyen megépíthető, azonban kevéssé hatékony Az I/O műveletek a processzort terhelik, közben más feladat nem végezhető A beviteli eszközök státuszregisztereit folyamatosan, sűrű időközönként ellenőrizni kell, nem-e érkezett időközben új adat Manapság inkább csak beágyazott rendszerekben találkozhatunk ezzel a megoldással
Kézenfekvő javítás a folyamatos ellenőrizgetés helyett megkérni a beviteli eszközt, hogy ha új adat érkezett, egy megszakítás segítségével jelezzen a processzornak A megszakítás hatására a processzor felfüggeszti az éppen futó folyamat végrehajtását, és egy speciális rutinra, a megszakításkezelőre ugrik A különféle eszközökről érkező megszakításokhoz különböző megszakításkezelő tartozik A processzor a megszakítás sorszáma alapján egy táblázatból keresi ki a meghívandó megszakításkezelő címét
A különböző eszközök között a rendszer firmware-je, vagy az operációs rendszer maga osztja szét a rendszer indulásakor a rendelkezésre álló megszakítás-számokat Néha egy megszakítás-számon több eszköz is osztozni kényszerül; ilyenkor a megszakításkezelő rutinnak sorra végig kell menni ezeken az eszközökön, hogy eldönthesse, melyik küldte a megszakítást A megoldás mentesíti a processzort a tevékeny bevitelre várakozás alól: nincs szükség folyamatos lekérdezésekre A tulajdonképpeni bevitel/kivitel azonban továbbra is terheli a processzort
Hogyan mentesíthetjük a processzort a bevitel-kivitel aprólékos elvégzése alól? Engedjük meg, hogy a perifériák közvetlenül elérhessék az operatív memóriát, és saját maguk, a processzortól függetlenül olvashassanak és írhassanak benne Direct Memory Access, DMA Nagy tömegű adat hatékony átvitelét teszi lehetővé Jóval bonyolultabb eszközvezérlő elektronikát igényel
Egy adatátviteli (pl. kiviteli) művelet így a következő lépésekből áll: 1 A processzor az eszköz parancsregisztereibe beleírja a kiviteli utasítás kódját és az átviendő adatokat tároló memóriaterület (puffer) fizikai kezdőcímét és hosszát 2 Ennek hatására a periféria vezérlő elektronikája közvetlenül a memóriából elkezdi kiolvassa a puffer adatait 3 Eközben a processzor más feladatot végezhet 4 Ha a periféria a puffer végére ért, megszakítással jelzi az adatátvitel befejeződését 5 A megszakításkezelő rutin tudomásul veszi az adatátvitel végét, és esetleg új adatátvitelbe kezd
CPU RAM Periféria
CPU RAM Periféria
CPU RAM Periféria
A perifériák memória-elérései általában prioritást élveznek a processzor eléréseihez képest Az I/O eszközök kevésbé tolerálják a késleltetést, mint a processzor Ha nagytömegű adatot továbbítunk DMA-n keresztül, előfordul, hogy az eszközök memóriaelérései miatt a CPU várakozni kényszerül, így a rendszer lelassul A megoldás mégis jóval hatékonyabb, mint a programozott I/O
Perifériák Még nagyobb hatékonyságra tehetünk szert, ha a perifériákat saját, programozható processzorokkal látjuk el Az eszköz így akár bizonyos feldolgozóműveleteket saját maga is elvégezhet A CPU-nak ilyenkor nincs más dolga, mint az elvégzendő programot eljuttatni a perifériának IBM zseries nagyszámítógépek perifériái Megjelenítést vezérlő grafikus segédprocesszorok
Tartalomjegyzék Perifériák Topológiák 1 Perifériák 2 3 Topológiák
Topológiák A sín (más szóval busz) a számítógép részegységei közötti összekötést biztosító megoldás Minden síntípus saját csatlakozókat, kábeleket és saját protokollt definiál az adatok továbbítására Legegyszerűbb esetben a sín néhány tucat rézvezeték, melyre a részegységek mindegyike rácsatlakozik
Topológiák Első megközelítésben a memória és a perifériák elérését külön sínekkel biztosítjuk Csak programozott I/O-t tesz lehetővé, esetleg megszakításvezérléssel A perifériák nem érhetik el a memóriát A processzor és a memória között gyorsabb lehet az összekötés Periféria RAM CPU Periféria
Topológiák Egyszerűsíthetjük a rendszerünket, ha a két sínt összevonjuk: Az eszközök a CPU címtartományának bizonyos tartományain keresztül válhatnak elérhetővé Akár DMA is lehetséges A közös sínen a kommunikáció közös sebességen zajlik A processzor órajelét növelni csak az összes eszközzel együtt lehet CPU RAM Periféria Periféria Periféria
Topológiák A két megoldás ötvözéseként ismét használjunk két sínt, de a síneket ne a processzorral, hanem egy speciális eszközzel, a híddal kössük össze Így a processzor-ram között tetszőlegesen gyors kapcsolatot létesíthetünk Az eszközök a hídon keresztül kommunikálhatnak a processzorral, ill. érhetik el a memóriát CPU RAM Híd Periféria Periféria Periféria
Topológiák A mai számítógépek többségében ilyen többszintű sínrendszereket használnak Gyakran további hídakon keresztül újabb sínek ágaznak le Tipikus eset: Northbridge: CPU, RAM, és a grafikus segédprocesszor közötti kommunikációt vezérlő sín Southbridge: A Northbridge és az alábbi sínek közti (lassabb) kommunikációt vezérlő eszköz PCI (Periferial Control Interconnect, sokfajta periféria) ISA (Industry Standard Architecture, lassú, régimódi eszközök) IDE (Integrated Drive Electronics, háttértárak) SCSI (Small Computer System Interface, háttértárak) USB (Universal Serial Bus, külső eszközök, faszerkezet) FireWire (külső eszközök, multimédia, soros láncolás) CardBus (notebook gépek bővítőkáryái)
Topológiák RAM PCI USB CPU Northbridge Southbridge Periféria AGP IDE