A Számítógépek hardver elemei Mechatronika, Optika és Gépészeti Informatika Tanszék Kovács Endre tud. Mts. A Számítógépek hardver elemei Korszerű perifériák és rendszercsatolásuk
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 RAM : Regisztertömb : Vezérlő/ Utasítás dekóder 0000 : 0001 : A : 00 F : 0002 : B : C : I/O Rendszer: • Operatív tárba ágyazott (Memory mapped) Szeparált D : E : H : L : FF00 : I: FFFF : PC : 0200 I/O : 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 SP : 00 : Printer1 Data IX : 01 : Printer1 Status 02 : ….. IY : ….. Addr : FF : …..
I/O portok illesztése_1 (polling) μ processzor Op.tár A soron következő kinyomtatandó karakter az „A” regiszterben van. INP 01 BUS (Status regiszter beolvasása az „A”-ba) (Kész állapotra várakozás Akár 1000-2000 gépi utasításnyi idő !!!) B=1 ? I/O Interface N Y OUT 00 „A” regiszter tartalmának kivitele a 00 című port regiszterbe. Nyomtató A soron következő kinyomtatandó karakter betöltése az „A” regiszterbe. Data : D7 D6 D5 D4 D3 D2 D1 D0 Status/Command: B PO X ER 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 ……….. 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 IT: Polling: Értékes program végrehajtás Értékes processzoridő 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 (Kész állapotra várakozás Akár 1000-2000 gépi utasításnyi idő !!!) Értékes program végrehajtás 1. 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 processzoridő Értékes program végrehajtás (Kész állapotra várakozás Akár 1000-2000 gépi utasításnyi idő !!!) 2. Interrupt a Nyomtatótól: (ez előző kivitt karakter kinyomtatása befejeződött, Jöhet a következő !! harmadik karakter Értékes processzoridő …… …… IT rutin feladata: Ha van még kiírandó, akkor a soron következő karakter kivitele a Nyomtató adatregiszterébe. OUT 00
Az Interrupt (A Program megszakítása)_3 (címkidolgozás, vezérlés) Visszatekintés Az Interrupt (A Program megszakítása)_3 (címkidolgozás, vezérlés) 0000 : IT UGRÁSI IT regiszter IT vektor IT rutin1 kezdőcíme PC=5000 TÁBLA A0 42 Program PC Az IT ekkor jelentkezik, PC->STACK VEKTOR I/O Interface 1. IT Rutin1 kezdete IT Rutin1 PC<-STACK RETURN IT
I/O portok illesztése_3 (Interrupt felhasználásával) μ processzor Op.tár BUS I/O Interface Eredmény: Az Interrupt felhasználásával értékes processzoridőt takarítunk meg. A rendszer eredő teljesítménye nő. IRQ IT ok Nyomtató Data : D7 D6 D5 D4 D3 D2 D1 D0 Status/Command: B PO X ER B: Busy foglalt=0, kész=1 ………..
A DMA (közvetlen memória hozzáférés)_1 Periféria kezelés DMA nélkül OPERATÍV TÁR 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. INPWDATA 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) . ………. μ processzor A : 8FD3 : Data : I/O Interface 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.. Háttértár Pld. Winchester
DMA képes I/O Interface A DMA (közvetlen memória hozzáférés)_2 Periféria kezelés DMA alkalmazásával OPERATÍV TÁR μ processzor 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 : 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. T1 idő elteltével az első byte az adatregiszterben. Buszvezérlő az adatot az operatív tárba írja (8000), Byteszám=Byteszám-1 *Cikluslopás** ………………. T2 idő elteltével a második byte az adatregiszterben. Buszvezérlő az adatot az operatív tárba írja (8001), Byteszám=Byteszám-1 *Cikluslopás** Byteszámláló 0-ra csökken 8000 : A : ……… 80FF : DMA képes I/O Interface BUS vezérlő Data : Sávcím : 03 Szektorcím: 12 Vez. regiszterek Byteszám: 255 Op.tár kezdőcím: 8000 T1 A processzort tehermentesítettük, A DMA alkalmazásával értékes processzoridőt takarítunk meg. A rendszer eredő teljesítménye nő. T2 Winchester
A DMA (közvetlen memória hozzáférés)_3 Periféria kezelés DMA alkalmazásával BUS Arbitráció DRQ (Slave) DACK (MASTER) Vezérlés CPU DMA-zó Interface CPU
ZH !!! Mi az Interrupt folyamat lényege? Mik az Interrupt felhasználási lehetőségei? Egy Interrupt rutint megszakíthat egy másik Interrupt ? 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 ?