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 Regisztertömb : A:
00
F:
B:
C:
D:
E:
H:
L:
Vezérlő/ Utasítás dekóder
SP : IX : IY :
Addr :
0000 : 0001 : 0002 :
I/O Rendszer: • Operatív tárba ágyazott (Memory mapped) •Szeparált
FF00 :
FFFF :
I: PC :
RAM :
0200 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
I/O : 00 :
Printer1 Data
01 :
Printer1 Status
02 :
…..
…..
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 I/O Interface
B=1 ?
N
Y OUT 00
Nyomtató
Data : D7 Status/Command:
B: PO: ER: ………..
B
D6
D5
D4
D3
D2
D1
D0
PO
X
X
ER
X
X
X
Busy foglalt=0, kész=1 Paper out papír kifogyott=1 papír rendben=0 Hiba hiba van=1, üzemkész=0
(Status regiszter beolvasása az „A”-ba)
(Kész állapotra várakozás Akár 1000-2000 gépi utasításnyi idő !!!) „A” regiszter tartalmának kivitele a 00 című port regiszterbe.
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.
Polling:
I/O portok illesztése_2
IT:
Értékes program végrehajtás Értékes processzoridő
OUT 00 (Kész állapotra várakozás Akár 1000-2000 gépi utasításnyi idő !!!)
Értékes program végrehajtás
Interrupt a Nyomtatótól:
1.
(ez előző kivitt karakter kinyomtatása befejeződött,
Értékes processzoridő
(Kész állapotra várakozás Akár 1000-2000 gépi utasításnyi idő !!!)
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 )
Jöhet a következő !! második karakter Értékes program végrehajtás
Interrupt a Nyomtatótól:
2.
(ez előző kivitt karakter kinyomtatása befejeződött, Jöhet a következő !! harmadik karakter
Értékes processzoridő
…… OUT 00
…… IT rutin feladata: Ha van még kiírandó, akkor a soron következő karakter kivitele a Nyomtató adatregiszterébe.
Visszatekintés Az Interrupt (A Program megszakítása)_3 (címkidolgozás, vezérlés) 0000 : 0042 : PC=5000
IT UGRÁSI
IT regiszter
IT rutin1 kezdőcíme
00
TÁBLA
Program
IT vektor
42
PC Az IT ekkor jelentkezik,
VEKTOR
PC->STACK 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
IRQ
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ő.
IT ok Nyomtató
Data : D7 Status/Command:
B: ………..
Busy foglalt=0, kész=1
B
D6
D5
D4
D3
D2
D1
D0
PO
X
X
ER
X
X
X
A DMA (közvetlen memória hozzáférés)_1 Periféria kezelés DMA nélkül µ processzor
Probléma felvetés: Példa:
A:
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.
OPERATÍ OPERATÍV TÁR 8FD3 :
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.
Data :
•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) . ………. 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
I/O Interface
A DMA (közvetlen memória hozzáférés)_2 Periféria kezelés DMA alkalmazásával µ processzor
A:
OPERATÍ OPERATÍV TÁR
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 :
8000 : ………
1.
80FF :
DMA képes I/O Interface BUS vezérlő Data : Vez. regiszterek
12
Byteszám:
255
Op.tár kezdőcím:
T1 T2
Winchester
03
Sávcím : Szektorcím:
8000
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. T1 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. T2 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 processzort tehermentesítettük, A DMA alkalmazásával értékes processzoridőt takarítunk meg. A rendszer eredő teljesítménye nő.
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 ?