Komunikace periférii
KOMUNIKACE PERIFERÍ S CPU mohou nastat čtyři základní situace: periferie vyžaduje pozornost CPU periferie zasílá data CPU CPU zasílá data periferii periferie zasílá data do RAM CPU musí v každém okamžiku vědět s jakou periferií komunikuje jednoznačnost komunikace zajistí tzv. systémové prostředky
SYSTÉMOVÉ PROSTŘEDKY adresy I/O portů hardwarová přerušení IRQ kanály DMA Pozn.: není možné přidělit stejný systémový prostředek (stejné IRQ, stejný rozsah adres I/O, stejné DMA) více periferiím, protože by došlo ke konfliktu
ADRESY VSTUPŮ A VÝSTUPŮ (I/O PORTY) umožňují komunikovat CPU s každým zařízením v PC zvlášť každý PC má 64 kB adres I/O každá periferie má pro komunikaci s CPU vyhrazen určitý rozsah těchto adres adresace probíhá po adresových vodičích sběrnice (CPU sdělí řadiči sběrnice, co adresuje - RAM či I/O)
ADRESY I/O
ADRESY I/O - konflikt
PŘENOS DAT MEZI RAM A PERIFERIÍ prostřednictvím PIO (programovaný vstup/výstup) prostřednictvím DMA (přímý přístup do paměti) PIO pomalejší než DMA
PROGRAMOVANÉ VSTUPY A VÝSTUPY ( PIO ) CPU posílá příkazy periferii prostřednictvím adres I/O CPU vyhradí sběrnici pro danou periferii periferie připraví k přenosu požadovaná data CPU přenese data po sběrnici z periferie do RAM (příp. naopak)
FUNKCE PIO
FUNKCE PIO
PŘÍMÝ PŘÍSTUP DO PAMĚTI (DMA) CPU pošle počáteční příkaz periferii prostřednictvím adres I/O periferie požádá CPU o přímý přístup do RAM - vybudí vodič DREQ (DMA Request) na sběrnici CPU povolí přímý přístup - vybudí vodič DACK (DMA Acknowledgement) na sběrnici vodič DREQ a vodič DACK tvoří jeden tzv. DMA kanál
FUNKCE DMA
FUNKCE DMA
VOLÁNÍ CPU PERIFERIÍ periferie může získat pozornost CPU dvěma způsoby : výběrem ( polling ) hardwarovým přerušením
Polling (výběr) CPU neustále sleduje činnost periferie nevýhoda - pomalé používá se u jednoúlohových systémů (DOS) příklad - tisk pod DOSem
CPU nesleduje činnost zařízení HARDWAROVÉ PŘERUŠENÍ CPU nesleduje činnost zařízení pokud periferie vyžaduje činnost procesoru, aktivuje určitý vodič na sběrnici (tzv. kanál přerušení - IRQ) každá periferie - své číslo IRQ (jednoznačně identifikuje periferii v systému) dvě periferie nesmějí používat stejné IRQ - konflikt
Zpracování přerušení Hlavní program Přerušení Obslužný program Pokračování hlavního programu 2
ZPRACOVÁNÍ PŘERUŠENÍ 1) periferie aktivuje linku přerušení na sběrnici (kanál přerušení - IRQ) 2) řadič IRQ (čip Intel 8259) zpracuje žádosti o přerušení dle priority (přeruší činnost CPU) 3) CPU uloží rozpracovaná data do zásobníku 4) CPU vyhledá příslušný vektor přerušení (odkaz na program řídící příslušnou periferii) 5) po nalezení IVA (Interrupt Vector Address) se spustí program přerušení (interrupt handler) 6) CPU obslouží periferii, která přerušení vyvolala 7) CPU se vrátí k původní práci
Příčiny přerušení 1) programová přerušení, patří sem např.: nepřípustný operační znak přeplnění nenaplnění dělení nulou nesprávná adresa (není v paměti) nesprávný tvar operandu 2) technická přerušení, patří sem např.: výpadek napájení (např. zásah meteoritu ) porucha technického vybavení 2
Příčiny přerušení 3) I/O (V/V) přerušení od periférie reprezentuje informaci, že nějaká periférie změnila stav 4) vnější přerušení příchod signálu na tzv. přerušovací vstupy procesoru 5) instrukční přerušení pomocí speciálních instrukcí INT (INTerrupt) SVC (SuperVisor Call) 2
Konfigurace systémových prostředků zjistit pomocí softwaru aktuální využití systémových prostředků pro každou periferii nastavit samostatné IRQ, DMA a I/O nastavit nejprve periferie s malým množstvím možností konfigurace může být hardwarová (jumpery) softwarová 2
Hardwarová konfigurace
Hardwarová konfigurace