# Připojení periferních zařízení

**Koncepce připojení IO zařízení**
- IO zařízení jsou připojena na sběrnici pomocí řadičů
- řadiče
	- specializované (např. řadič disku, grafická karta, ...) - lze k nim připojit jen zařízení určitého typu
	- univerzální (např. sériové rozhraní USB, ...) - lze k nim připojit zařízení různých typů

**Rozhraní IO řadiče**
- rozhraní pro připojení na sběrnici
	- obvykle navrženo univerzálně pro snadné připojení na různé systémové sběrnice
	- zahrnuje datové a adresní vodiče i řídicí signály (/CS, /RD, /WR, ...)
- rozhraní pro připojení IO zařízení
	- u specializovaných řadičů přizpůsobeno připojenému IO zařízení
	- u univerzálních je programovatelné nebo přímo odpovídá standardu (USB, SCSI, ...)

**IO řadič z pohledu programátora**
- reprezentován sadou registrů
	- datové registry - vstup a výstup dat
	- řídicí registry - nastavení parametrů řadiče
	- stavové registry - stav řadiče, připojeného zařízení

**IO řadič v paměťovém adresním prostoru**
- např. u procesoru H8S
- pro přístup k registrům řadiče se používají stejné instrukce jako pro práci s pamětí
- často se používá neúplné dekódování adres

**IO řadič v IO adresním prostoru**
- např. u IA-32
- procesor rozlišuje adresní prostor paměti a adresní prostor IO zařízení
- pro práci se zařízením se používají zvláštní instrukce (IO, OUT)
- na sběrnici kromě cyklů **čtení z paměti** a **zápis do paměti** také **čtení z IO zařízení** a **zápis do IO zařízení**
- obvykle menší než adresní prostor paměti

**Řízení IO operací**
- komunikace s IO zařízením může být řízena podle některé ze základních koncepcí
	- programové řízení IO operací procesorem
	- řízení IO operací s využitím přerušení
	- řízení IO operací DMA řadičem
	- použité specializovaného IO procesoru

**Programové řízení IO zařízení procesorem**
- procesor čte stavové registry řadiče a testuje připravenost zařízení
- není-li zařízení připraveno, opakuje čtení a test
- je-li zařízení připraveno, čte nebo zapisuje data z/do datových registrů
- vlastnosti
	- procesor je trvale zatížen čtením a testováním stavu
	- maximální rychlost je omezena rychlostí provedení instrukcí pro čtení stavu, test a zápis/čtení dat
	- jednoduchý hardware