190 likes | 319 Views
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
E N D
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)
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)
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
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
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
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 (InterruptVectorAddress) se spustí program přerušení (interrupthandler) • 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í
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 (SuperVisorCall)
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á