Számítógépek felépítése 9. előadás I/O rendszerek Dr. Istenes Zoltán ELTE-TTK
I/O rendszerek + Programozott I/O teljesen a CPU irányítja az I/O műveleteket Közvetlen memória hozzáférés + Megszakítás (DMA - Direct Memory Access) CPU csak „elindítja”, aztán az I/O eszköz a CPU „nélkül” végzi az átvitelt (interrupt) I/O processzor memóriához hozzáférés, CPU felfüggesztése, I/O program végrehajtása
Programozott I/O adatátvitel a CPU-n keresztül CPU port Memória I/O eszköz IO eszköz kiválasztása a címsínnel IO port : egy adott (memória)cím memóriára leképzett IO (memory mapped IO)
Programozott IO utasítások alapvető IO utasítások : IN X : szó átvitele az X port-ról az akkumulátorba OUT X : szó átvitele az akkumulátorból az X port-ra A beolvasott vagy kiírt szó lehet vezérlő, állapotjelző, stb. információ (a CPU nem értelmezi) egyéb IO utasítások (teszt, blokk átvitel, ...)
Szó beolvasása programozott I/O-val (Intel 8080 példa) státuszinformáció az 1-es port-on, az adat, ha kész az eszköz, a 2-es port-on WAIT: IN 1 CPI ready JNZ WAIT IN 2 ... 1-es port-ról státuszinformáció beolvasása az akkumulátorba... összehasonlítása a „ready” konstanssal, ha egyenlő Z flag = 1 ha Z flag <> 1 ugrás WAIT-re adat beolvasása a 2-es port-ról ...
A programozott IO hátrányai az IO átvitel sebességét attól függ, hogy a CPU milyen gyorsan tudja az IO eszközt vizsgálni és kiszolgálni... a CPU (feleslegesen) sok időt „veszít” az az eszköz állapotának a vizsgálatával és az adatátvitellel... ha több (vizsgálandó) eszköz van... az adat a CPU-n halad keresztül, ahelyett hogy közvetlenül a memóriába jutna...
Megszakításos I/O az eszköz megszakítás kérelemmel jelez ha készen van... (CPU-nak nem kell várnia...) sok nagysebességű eszköznél (+blokkátvitel) használhatatlan...
Közvetlen memória hozzáférés (DMA - direct memory access) CPU elindítja az átvitelt DMA vezérlő önállóan irányítja az átvitelt (a tároló és az I/O eszköz között) CPU - DMA közötti kapcsolat : megszakítások... DMA : címsín, adatsín vezérlése... nagysebességű eszközöknél...
Közvetlen memória hozzáférés központi memória címsín adatsín (1) (4) AR AC DC IOAR IODR DMA kérelem (2) (5) vezérlő vezérlő DMA engedélyezés (3) (6) CPU IO egység
Közvetlen memória hozzáférés Adatátviteli módok : Tömb átvitel (DMA block transfer) Cikluslopás (cycle stealing)
+ IO utasítások végrehajtása I/O processzor (IOP) programozott I/O CPU idő pazarlás... közvetlen memória hozzáférés kevésbé rugalmas... + IO utasítások végrehajtása IO műveletek végzése
I/O processzor (IOP) IOP : korlátozott (speciális IO) utasításkészletű feldolgozó egység PPU - Peripherial processing unit IOP = kommunikációs kapcsolat („csatorna - channel”) a központi memória és az IO eszközök között
I/O processzor elvi működés IOP által végrehajtott utasítások (CCW) CPU által elindított IO művelet CPU MEM IOP I/O-1 I/O-2 I/O-3 START_IO STOP_IO TEST_IO IOP-n keresztüli adatátvitel
CPU és IOP utasítások a memóriában központi memória start_io CPU által végrehajtott utasítások ... test_io ... IOP a CPU „elindítja” az IOP-t IOP által végrehajtott CCW utasítások 07000400h ... ...
Blokk írása I/O processzor-ral (IBM System 360-370 IO program példa) 0 8 32 37 48 63 opcode abs. memory address flag - data count CCW - Channel Command Word CCW utasítások az IOP-nak 07h. .40h. 37h. .40h. 01h.buffer .40h.100 1Fh. .40h. 07h. .00h. szalag visszatekerés első rekord átugrása „buffer” címről 100 byte írása marker írása szalag visszatekerés, stop
I/O processzorok szervezése kapcsoló hálózat (crossbar switch) IO sín IOP IOP IO IO IO IOP IOP IO IO IO IO IO ... IO egy IOP - több lassú IO eszköz : multiplexer channel egy IOP - egy gyors IO eszköz : selector channel
egyég lehetőség(ek)... (periféria cache/puffer tároló) CPU periféria MEM MEM
egyég lehetőség(ek)... („periféria processzor”) I/O eszköz memóriája CPU periféria MEM MEM PU I/O eszköz processzora
egyég lehetőség(ek)... („memória lefedés”) központi memória I/O eszköz memóriája a központi memória egy részét az eszköz memóriája „lefedi” eszköz
Összefoglalás „megszakítás”... CPU idő - gyorsaság - bonyolultság... hardver / szoftver...