kategória | ||||||||||
| ||||||||||
| ||
|
||||||||||
A processzor részvételével zajló I/O rendszer (a programozott I/O, a különálló I/O címtér és az I/O port; a memóriában leképezett I/O címtér; müködése (feltétlen és feltételes))
cikluslopásos A processzor közremüködésével blokkos Müködése Fogalma, jellemzöi feltétlen feltételes Különálló I/O címtér Müködés Címzés Programozott I/O DMA A processzor müködése
nélkül I/O Rendszer
858i82i
858i82i
858i82i
858i82i
858i82i
858i82i
858i82i
858i82i
858i82i
858i82i
858i82i
858i82i
858i82i
Programozott I/O
Fogalma: minden egyes I/O müvelethez a processzornak egy-egy utasítást kell végrehajtania
Fajtái címtér szerint:
Különálló I/O címtér.
- 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i Elve: A processzor két különálló címteret lát.
- 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i Jellemzöi:
a) 858i82i 858i82i 858i82i 858i82i A címsín szolgál:
1. 858i82i 858i82i 858i82i 858i82i az operatív tár,
2. 858i82i 858i82i 858i82i 858i82i és az I/O egység címzésére
b) 858i82i 858i82i 858i82i 858i82i Létezik olyan vezérlövonal (memória / I/O) mely megmutatja, hogy az adott idöpillanatban a címsínen memória vagy I/O cím található
c) 858i82i 858i82i 858i82i 858i82i mivel két különálló címtérröl van szó, ugyanaz a cím szerepelhet memóriacímként és I/O címként is.
d) 858i82i 858i82i 858i82i 858i82i Pl.: Intel esetében az eszköz 16 biten címezhetö meg (65536 féle I/O cím).
e) 858i82i 858i82i 858i82i 858i82i azon regisztereket, amelyeken keresztül a processzor a perifériákkal kommunikálhat, I/O portnak nevezzük, amely fizikailag a vezérlökártyán helyezkedik el
- 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i Az I/O Port regiszterei:
a) 858i82i 858i82i 858i82i 858i82i Parancs (command) regiszter, amelybe a processzor írhatja a kívánságait a perifériákhoz
b) 858i82i 858i82i 858i82i 858i82i Adat (data) regiszter
1. 858i82i 858i82i 858i82i 858i82i Data input regiszter: ebböl olvassa a processzor a perifériától kapott adatokat
2. 858i82i 858i82i 858i82i 858i82i Data output regiszter: ebbe írja a processzor a periféria számára küldött adatokat
c) 858i82i 858i82i 858i82i 858i82i Állapot (Status) regiszter: innen olvassa a processzor a periféria üzeneteit
d) 858i82i 858i82i 858i82i 858i82i Az input, output regisztereket a mai gyakorlatban összevonják: parancs állapot regiszter, adat input-output regiszter.
e) 858i82i 858i82i 858i82i 858i82i Napjainkban az I/O porton belül több regiszter is található, pl.:
1. 858i82i 858i82i 858i82i 858i82i I/O egység müködöképességét jelzö regiszter.
2. 858i82i 858i82i 858i82i 858i82i I/O egység típusát, konfigurációs jellemzöit tároló regiszter (plug & 858i82i play)
3. 858i82i 858i82i 858i82i 858i82i a nagyobb teljesítményü, összetettebb I/O egységeknél több parancs-, adat-, és állapotregiszter lehetséges
A különálló I/O címtér megvalósítása:
- 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i Következmény:
a) 858i82i 858i82i 858i82i 858i82i Különálló utasítások szolgálnak a memória-müveletekre (pl.: load/store), és
b) 858i82i 858i82i 858i82i 858i82i Különálló utasítások szolgálnak az I/O müveletekre. Pl.: Intel esetében
1. 858i82i 858i82i 858i82i 858i82i inX: a processzor olvassa be az X címü I/O port adatregiszterét az AC-ba outX: a processzor beírja az AC tartalmát az X címü I/O port adatregiszterébe
- 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i Értékelés:
a) 858i82i 858i82i 858i82i 858i82i Elönyei: egyszerü, olcsó a megvalósítása
b) 858i82i 858i82i 858i82i 858i82i Hátránya: a processzor részt vesz az I/O müveletekben szük keresztmetszet
c) 858i82i 858i82i 858i82i 858i82i az AC szük keresztmetszetet jelent nagy tömegü I/O számára
d) 858i82i 858i82i 858i82i 858i82i Pl.: Hálókártya (ISA), amely az IBM PC-nél különálló IO címtérrel rendelkezik
e) 858i82i 858i82i 858i82i 858i82i Minden mai piacon lévö processzorban megtalálható
A Memóriára leképzett I/O (Memory mapped I/O)
Elve:
Ezt látja a processzor
Jellemzöi:
- 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i A megosztás: a processzor memóriakezelö utasítással (load-store) éri el azt a közös memóriaterületet, amit a periféria is kezelhet
- 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i Ebben az esetben az I/O egység használhatja a rendszersínt nagyobb az átviteli sebesség
Megvalósítása:
Értékelése:
- 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i Jóval gyorsabb, mint a különálló I/O címtér (elöny)
- 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i Minden I/O esetén a processzornak egy utasítást végre kell hajtania (hátrány)
- 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i Pl.: Az IBM PC-nél a képernyökezelés
Müködése:
Feltétlen átvitel:
- 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i A vevö mindig vételre kész állapotban van
- 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i Nem ellenörizzük az átvitel sikerességét
- 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i Nincs szinkronizálás a vevö és az adó között.
- 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i Pl.: LED
Feltételes átvitel:
- 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i Lekérdezés (wait for flag)
a) 858i82i 858i82i 858i82i 858i82i A processzor beírja a kívánságát az I/O port parancsregiszterébe
b) 858i82i 858i82i 858i82i 858i82i A processzor kiolvassa az I/O egység állapotregiszterének tartalmát
c) 858i82i 858i82i 858i82i 858i82i Amennyiben nem "ready", akkor vissza a (b) pontra
d) 858i82i 858i82i 858i82i 858i82i Amennyiben "ready", akkor kiolvassa az I/O egység adott adatregiszterének tartalmát, majd beírja azt az akkumulátorba (AC)
Értékelése: A processzor - I/O egység közti sebességkülönbség miatt a processzor akár több milliószor olvassa be feleslegesen az állapotregiszter tartalmát
- 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i 858i82i Megszakításos:
a) 858i82i 858i82i 858i82i 858i82i A processzor beírja a kívánságát az I/O egység parancsregiszterébe, majd elkezd mást csinálni
b) 858i82i 858i82i 858i82i 858i82i Amikor az I/O egység begyüjtötte a perifériától a szükséges adatot az adatregiszterben:
1. 858i82i 858i82i 858i82i 858i82i Beállítja az állapot regiszter "ready" bitjét, és
2. 858i82i 858i82i 858i82i 858i82i Megszakításkérést küld a processzor felé
c) 858i82i 858i82i 858i82i 858i82i A processzor a következö utasítás-töréspontban elkezdheti a megszakításkérés feldolgozását
1. 858i82i 858i82i 858i82i 858i82i Beolvassa az I/O egység állapotregiszterét
2. 858i82i 858i82i 858i82i 858i82i ha ott a "ready" bit be van állítva, akkor egy ennek megfelelö megszakítás-feldolgozó programot indít el; ez kiolvassa az I/O port adatregiszterét és tartalmát átviszi az AC-ba
Találat: 372