A Számítógépek hardver elemei Korszerű perifériák és rendszercsatolásuk Mechatronika, Optika és Gépészeti Informatika Tanszék Kovács Endre tud. Mts.
A μ processzoros rendszer regiszter modellje A μP gépi szó hossza (Arithmetika); A μP belső regiszterei, funkciójuk; A μP alapján felépíthető μSzámítógép operatív tárjának címszervezése; Külön címmel rendelkező (külön elérhető) memória regiszter. Pld. Byte, Maximális címezhető tárterület, (Memóriaregiszterek száma byte-ban) Input/ Output eszközök címszervezése; Memóriába ágyazott perifériacímek ( memory mapped) Izolált perifériacímek Pld.: belső regiszterek A: Akkumulátor, B,C,D,E,H: általános célú regiszterek, PC: utasítás számláló regiszter (IR), SP: Stack pointer, IX, IY: indexregiszterek (címzés) I: Interrupt regiszter (IT ugrási tábla báziscíme) ………..
A μ processzoros rendszer regiszter modellje I/O Rendszer: Operatív tárba ágyazott (Memory mapped) Szeparált 0000 : 0001 : 0002 : PC : 0200 Regisztertömb : RAM : 00 A :F : B :C : D :E : H :L : SP : Vezérlő/ Utasítás dekóder Addr : FF00 : I: Printer1 Data 00 : Printer1 Status 01 : ….. 02 : I/O : ….. FF : ….. FFFF : Külön I/O utasítások: INPUT periféria illesztő regiszter olvasása, tartalmának a Processzor A=Akkumulátor regiszterbe írása OUTPUT periféria illesztő regiszter írása, tartalmának „A” regiszterből történő feltöltése IX : IY :
I/O portok illesztése_1 (polling) μ processzor Op.tár I/O Interface BUS Nyomtató Data : Status/Command: INP 01 (Status regiszter beolvasása az „A”-ba) OUT 00 D7D6D5D4D3D2D1D0 B:Busy foglalt=0, kész=1 PO:Paper out papír kifogyott=1 papír rendben=0 ER:Hiba hiba van=1, üzemkész=0 ……….. BPOXXERXXX B=1 ? N Y (Kész állapotra várakozás Akár gépi utasításnyi idő !!!) „A” regiszter tartalmának kivitele a 00 című port regiszterbe. A soron következő kinyomtatandó karakter az „A” regiszterben van. A soron következő kinyomtatandó karakter betöltése az „A” regiszterbe. Polling: Egy adott jellemző változásának figyelése az arra vonatkozó adatok folyamatos újrakérése, és az előző állapottal történő összehasonlítása révén.
I/O portok illesztése_2 (Kész állapotra várakozás Akár gépi utasításnyi idő !!!) Értékes processzoridő (Kész állapotra várakozás Akár gépi utasításnyi idő !!!) Értékes program végrehajtás IT rutin feladata: Ha van még kiírandó, akkor a soron következő karakter kivitele a Nyomtató adatregiszterébe. Nyomtatás indítása, első karakter kivitele a státusz regiszter foglalttá válik. (Busy foglalt=0) Ha a foglaltság megszűnik, kérjen IT-t. (Busy foglalt=0 - -> Busy kész=1 ) OUT 00 Értékes program végrehajtás Interrupt a Nyomtatótól: (ez előző kivitt karakter kinyomtatása befejeződött, Jöhet a következő !! második karakter Értékes program végrehajtás Interrupt a Nyomtatótól: (ez előző kivitt karakter kinyomtatása befejeződött, Jöhet a következő !! harmadik karakter …… OUT 00 Polling: IT: 1. 2.
IT UGRÁSI Program TÁBLA IT rutin1 kezdőcíme 0000 : PC Az IT ekkor jelentkezik, PC->STACK Az Interrupt (A Program megszakítása)_3 (címkidolgozás, vezérlés) IT Rutin1 kezdete VEKTOR I/O Interface IT regiszter 42 IT vektor RETURN IT IT Rutin1 PC<-STACK PC=5000 Visszatekintés 0042 :
I/O portok illesztése_3 (Interrupt felhasználásával) μ processzor Op.tár I/O Interface BUS Nyomtató Data : Status/Command: D7D6D5D4D3D2D1D0 B:Busy foglalt=0, kész=1 ……….. BPOXXERXXX IT ok IRQ Eredmény: Az Interrupt felhasználásával értékes processzoridőt takarítunk meg. A rendszer eredő teljesítménye nő.
μ processzor OPERATÍV TÁR I/O Interface Háttértár Pld. Winchester Probléma felvetés: Példa: Nagy sebességű háttértárról olvasás: A háttértár egyszerre nagy tömegű adatot szolgáltat, az adatoknak az operatív tárba kell kerülniük. Az adatok útja (byte-onként): Az I/O interface adatregiszterében a Winchester által lemezről felolvasott byte van. A processzor által végrehajtott program (a státusz figyelésével) észleli, hogy az adatregiszterből ki lehet olvasni az adatot. INP WDATA utasítással az adat az „A” ba kerül. A program az „A” regiszter tartalmát kiírja az operatív tár regiszterébe (pld. 8FD3 címre). ………. A DMA (közvetlen memória hozzáférés)_1 Periféria kezelés DMA nélkül A : 8FD3 : Data : A processzor adatmozgatással terhelt, a perifériaegység (Háttértár) kezelése a számítási kapacitás nagy részét felemészti..
μ processzor OPERATÍV TÁR DMA képes I/O Interface Winchester Adatfolyam: Példa:Nagy sebességű háttértárról olvasás, 255 db byte felolvasása és az operatív tár 8000 címétől kezdve : 1.Inicializálás: A DMA képes Interface Sávcím, Szektorcím, Byteszám, Op.tár kezdőcím regisztereinek feltöltése. A processzor Értékes program végrehajtással foglalkozik. 2.T 1 idő elteltével az első byte az adatregiszterben. 3.Buszvezérlő az adatot az operatív tárba írja (8000), Byteszám=Byteszám-1 *Cikluslopás** A processzor Értékes program végrehajtással foglalkozik. ………………. 5.T 2 idő elteltével a második byte az adatregiszterben. 6.Buszvezérlő az adatot az operatív tárba írja (8001), Byteszám=Byteszám-1 *Cikluslopás** ………………. A processzor Értékes program végrehajtással foglalkozik. 7.Byteszámláló 0-ra csökken A DMA (közvetlen memória hozzáférés)_2 Periféria kezelés DMA alkalmazásával A : 8000 : Data : A processzort tehermentesítettük, A DMA alkalmazásával értékes processzoridőt takarítunk meg. A rendszer eredő teljesítménye nő. BUS vezérlő Vez. regiszterek Sávcím : 03 Szektorcím: 12 Byteszám: 255 Op.tár kezdőcím: FF : ……… T1T1 T2T2
A DMA (közvetlen memória hozzáférés)_3 Periféria kezelés DMA alkalmazásával DRQ (Slave) DACK (MASTER) Vezérlés CPU DMA-zó Interface BUS Arbitráció
Mi az Interrupt folyamat lényege? Mik az Interrupt felhasználási lehetőségei? Egy Interrupt rutint megszakíthat egy másik Interrupt ? ZH !!! Milyen hátrányt küszöböl ki a DMA a háttértárak kezelésében? Mire használhatjuk a processzor tehermentesítése révén felszabadult időt ?