Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic 1
Cíl přednášky Zabývat se principy využití principů přerušení. Popsat, jak se tyto principy odrazily v konstrukci systémových sběrnic personálních počítačů. 2
Ilustrační příklad CD Řadič IDE Systémová sběrnice paměť HDD procesor Obr. 1 3
Techniky realizace periferních operací Techniky související s realizací přenosu mezi periferním zařízením a naopak: - programová obsluha periferních operací, - využití techniky přerušení, - využití techniky přímého přístupu do paměti (DMA). Obr. 1 přenos dat z CD na HDD proběhne ve 2 fázích nejprve přenos z CD do paměti, pak z paměti na HDD. Rozdíl mezi programovou obsluhou a DMA při DMA nebude ve hře procesor. První dva principy souvisejí spíše se způsobem, jak se procesor dozví o skončení periferní operace. Třetí princip (DMA) je technikou realizace vlastního přenosu dat v jednom z možných směrů přenosu. Každá z technik potřebuje odlišné technické a programové vybavení projevilo se i v konstrukci personálních počítačů (komponenty řadiče přerušení, řadiče DMA, systémové sběrnice a jejich vybavení). 4
Programová obsluha periferních operací Externí zařízení počítače procesor Procesor se jednotlivých zařízení postupně dotazuje na stav realizace periferní operace. Anglický termín polling (průzkum, dotaz) postihuje princip metody. Charakteristika: výrazné zatížení procesoru. Obr. 2 5
Programová obsluha periferních operacízjišťování stavu (konec operace) Možné techniky: - V externích adaptérech existuje stavový registr, obsahuje bit konec operace. Obsah stavového registru je nutné při každém zjišťování stavu přenést do registru procesoru a pak testovat stav bitu konec operace. - Stav bitu konec operace je možné testovat instrukcí podmíněného skoku (tzn. instrukcí jsme schopni sáhnout na bit konec operace a podle jeho stavu pokračovat dále (pokračování periferní operace na tomto externím zařízení nebo testování stavu další periferní operace). Technika přijatá v PC: technika stavových registrů. 6
Technika přerušení procesor Žádosti o přerušení Externí zařízení počítače Procesor se nedotazuje na stav realizace periferní operace, externí zařízení generují žádosti v okamžiku potřeby obsluhy. Charakteristika: menší zatížení procesoru. Pro tyto účely musí být vybaven počítač. Obr. 3 7
Technika přerušení vybavení počítače Nutné vybavení především řadič přerušení. Funkce řadiče přerušení předzpracovat žádosti o přerušení, pro procesor vybrat přerušení, které má nejvyšší prioritu. Výrazné pozitivum redukuje se počet vývodů pouzdra procesoru. Žádosti o přerušení jsou přivedeny na vstup řadiče přerušení (nikoliv na vstup procesoru) komunikace mezi řadičem přerušení a procesorem se odehrává na menším počtu signálů. Stav v PC: - nejprve řadič I8259 (PIC - Programmable Interrupt Controller) - později I82489DX (APIC Advanced Programmable Interrupt Controller), - různé systémové sběrnice (ISA/PCI) odlišné techniky generování žádosti o přerušení. 8
Vnitřní přerušení Technika přerušení další pojmy - Přerušení generovaná zařízeními, která jsou na stejném čipu jako procesor. - Může to být např. sériový nebo paralelní port, časovač. - V sestavách s procesory Intel tomu tak není, protože žádosti o přerušení jsou přiváděny na vstup řadiče přerušení, který je součástí jiného čipu než procesor. Vnější přerušení - Taková přerušení, která jsou přiváděna zvenčí z hlediska procesoru, tzn. nejsou generovaná na stejném čipu jako procesor. - Tato alternativa platí pro stavebnice s procesory Intel - přerušení jsou z hlediska procesoru vnější - jsou přiváděna přes systémovou sběrnici. 9
Technika přerušení Čím je třeba se zabývat při studiu konkrétního systému přerušení: - prostředky systémové sběrnice, - konstrukcí řadiče sběrnice, - způsobem řízení řadiče sběrnice (registry řadiče), - způsob komunikace s procesorem, - způsob předání informace procesoru o tom, které přerušení bude obsluhováno jako další (instrukce skoku s adresou počátku obslužné rutiny, skok na adresu, využití techniky vektoru přerušení). - architektury, v nichž může být řadič přerušení použit (např. jednoprocesorové/víceprocesorové). - konstrukce obslužných rutin. 10
Počítač s řadičem přerušení I8259 Řadič přerušení I8259 byl šit na míru sběrnici ISA. Byla použita technika vektoru přerušení coby ukazatele do tabulky přerušovacích vektorů. Vektor přerušení osmibitová kombinace (256 kombinací). Tabulka přerušovacích vektorů: 256 položek ve tvaru segment:offset (4 slabiky) adresa začátku obslužné rutiny přerušení => je potřeba 256 x 4 slabiky = 1024 slabik (1 KB). V tabulce přerušovacích vektorů jsou začátky obslužných rutín nejenom hardwarových přerušení, ale také od instrukcí INT n (v tomto případě je n (8 bitů) rovněž ukazatelem do tabulky přerušovacích vektorů. Programová přerušení využíváno např. službami DOSu a BIOSu. Princip využití služeb (např. zápis sektoru na disk, zobrazení znaku na monitoru): napřed zadají se parametry (definováno patřičnou službou) spolu s příp. daty, která mají být zpracována, instrukcí INT se služba provede. Umístění parametrů v registrech procesoru, data v paměti. 11
Posloupnost činností při obsluze přerušení 1. vznik požadavku Systémová sběrnice 2. řadič přerušení vektor přerušení INTA INT 5. 4. 3. procesor 6. tabulka přerušovacích vektorů adresa obslužné rutiny Obr. 4 paměť 7. 12
Posloupnost kroků při obsluze přerušení 1. Vznik požadavku: je generován některým adaptérem. 2. Předání požadavku: požadavek se předává pomocí linky IRQx vstup/výstupní sběrnice (např. ISA). 3. Reakce řadiče přerušení: Řadič přerušení reaguje na tuto situaci generováním signálu INTR do procesoru. 4. Reakce procesoru: Procesor reaguje posláním 2 pulsů INTA do řadiče přerušení. 5. Typ přerušení: První puls INTA je tzv. potvrzovací, během druhého signálu pak řadič přerušení posílá přes datovou sběrnici osmibitovou hodnotu reprezentující typ přerušení. 6. Výpočet ukazatele do tabulky přerušení: Procesor přepočítá typ přerušení na ukazatel do tabulky přerušení - 4 x typ přerušení - a po adresové sběrnici vyšle adresu položky, na které jsou 4 slabiky ukazatele na obslužný program přerušení. 13
Konstrukce řadiče přerušení Registry řadiče přerušení (programovatelné): Vnitřní registry: Vstupní registr IRR - do něj jsou zachycovány žádosti o přerušení. Maskovací registr IMR - "1" zapsaná v patřičném bitě maskuje odpovídající žádost a systém na ni nebude reagovat. Registr žádostí v obsluze ISR - odráží úroveň přerušení, která je právě obsluhována mikroprocesorem. Řídicí registry např. způsob zpracování priorit. 14
Architektura počítače s řadičem přerušení PIC logika generování NMI řadič přerušení I8259 (kaskádní propojení 2 ks) 8 bitů adresové sběrnice I80826 NMI INTR INTA Takto to vypadalo v sestavě s procesorem I80286. I80386/I80486 podobná architektura jak u I8O286, signál INTA byl však generován řadičem sběrnice. 15
Architektura počítače s řadičem přerušení PIC - komentář Mikroprocesor I80286 měl dva vstupy žádosti o přerušení: NMI - nemaskovatelné přerušení vyšší důležitost. Přerušení NMI se nastavuje od problémů typu chyba parity paměti signál PCK nebo od signálu IO CHCK, který indikuje problém na externím adaptéru (např. chybu parity paměti instalované na externím adaptéru nebo chybu parity vnitřní sběrnice na externím adaptéru). INTR - je generován řadiči přerušení řazenými kaskádně. 12 vstupů řadiče přerušení je přístupných na konektoru V/V kanálu (ISA sběrnici). Zbývající jsou použity jako žádosti z podsystémů systémové desky (IRQ0 - žádost časovače 0, IRQ1 - adaptér klávesnice, IRQ13 - koprocesor). 16
Řešení problému přerušení v Pentiu Po více jak 10 letech využívání řadiče přerušení 8259A (PIC) - vyvinula firma Intel řadič přerušení Advanced Programmable Interrupt Controller APIC 82489DX. Řadič 8259A byl synchronizován kmitočtem 8 Mhz, řadič 82489DX byl v začátcích vyráběn pro frekvence 33 MHZ, později 55 Mhz (v současnosti i pro vyšší frekvence) rozdíl oproti frekvencím procesorů. Všechny vnitřní registry tohoto řadiče jsou 32 bitové (na rozdíl od 8 bitových registrů řadiče 8259A). Firma Intel doporučuje, aby registry APIC byly mapovány do adresového prostoru operační paměti zvýší se tím výkon. Řadič APIC 82498DX - pouzdro se 132 vývody. Architektura řadiče 82489DX je založena na alternativě použití tohoto prvku v multiprocesorových aplikacích. 17
Architektura víceprocesorového systému s řadičem přerušení APIC Pentium Pentium Pentium APIC 82489DX Local Interrupt Unit I/O Interrupt Unit APIC 82489DX Local Interrupt Unit I/O Interrupt Unit Sběrnice ICC APIC 82489DX Local Interrupt Unit I/O Interrupt Unit skupina V/V zařízení skupina V/V zařízení Obr. 5 skupina V/V zařízení 18
Advanced Programmable Interrupt Controller V řadiči je Local interrupt unit (lokální jednotka přerušení) a I/O interrupt unit (V/V jednotka přerušení). Lokální jednotka je napojena na lokální ( své ) Pentium, V/V jednotka přerušení je přes sběrnici ICC spojena s ostatními lokálními jednotkami přerušení. Pokud není lokální jednotka přerušení v okamžiku vzniku přerušení volná, může V/V jednotka svůj požadavek na přerušení přenést na jinou než svou lokální jednotku přes sběrnici ICC. V takové konfiguraci není procesor obsluhující požadavek na přerušení přerušen, pokud vznikne další požadavek na přerušení v jeho řadiči přerušení, ten je obsloužen v jiném procesoru (jsou pochopitelně zvažovány priority). 19
Techniky spouštění přerušení využité v PC Dva principy: - přerušení spouštěná hranou, - přerušení spouštěná úrovní. Každá z těchto technik představuje jiný způsob technického vybavení, nabízí jiné možnosti konstrukce prostředků systémové sběrnice. Přerušení spouštěná hranou - Detekování žádosti o přerušení a její následná obsluha jsou spouštěny hranou žádosti o přerušení (nástupnou nebo sestupnou). Generování žádosti o přerušení se odehraje na základě přechodu PZ ze stavu "provádění periferní operace" do stavu "periferní operace skončila". - Každá žádost o přerušení je vedena do počítače přes svůj vlastní a nesdílený kontakt v konektoru systémové sběrnice. 20
Přerušení spouštěná hranou pokračování - Každému přerušení je přidělen vlastní a jednoznačný vektor přerušení. - Každý vektor přerušení identifikuje jednoznačně obslužnou rutinu přerušení, která bude spuštěna => pro každé zařízení a s ním spojené přerušení existuje jedna obslužná rutina. - Součástí obslužné rutiny přerušení nemusí být procedura, která zjišťuje, které zařízení žádalo o přerušení - identifikace je dána jednoznačně číslem přerušení v systémové sběrnici. - Žádosti o přerušení nelze spojovat montážním součinem do jednoho signálu systémové sběrnice. Nevýhoda: počet připojitelných zařízení je omezený, je dán počtem signálů "žádost o přerušení" v systémové sběrnici. 21
Přerušení spouštěná hranou pokračování konektor systémové sběrnice do řadiče přerušení žádosti o přerušení od V/V zařízení Na každém signálu (vodiči) žádosti se objeví hrana, ta nastaví patřičný bit v registru IRR. Stav bitu ve stavu 1 musí se zahájit obsluha žádosti o přerušení. Tato technika neumožňuje slučovat signály do montážního součinu další hrana se v registru (jednom jeho klopném obvodě) nezachytí. Tato technika byla využita ve sběrnici ISA. 22
Přerušení spouštěná úrovní - Více zařízení generuje žádost o přerušení do jednoho signálu systémové sběrnice. - Generování žádosti - signál na tomto vodiči je na úrovni "0" (na nízkou úroveň). - Ve všech zařízeních, která takto generují žádost o přerušení, je tento signál realizován jako "výstup s otevřeným kolektorem". - Společný vodič musí být buzen přes odpor definované hodnoty z +5V -zajištění klidové hodnoty. - Takto "spojené" žádosti o přerušení mají společný vektor přerušení => obslužná rutina přerušení musí nejprve zjistit, které ze zařízení žádalo o přerušení, např. z informace o stavu (klasickou technikou polling toto musí provést obslužná rutina přerušení (ISR Interrupt Service Routine). 23
napájení Přerušení spouštěná úrovní pokračování konektor systémové sběrnice do řadiče přerušení žádosti o přerušení od V/V zařízení Výstupy hradel s otevřeným kolektorem je možné slučovat do montážního součinu. Klidový stav - žádost není generována signál je na úrovni H (napájení). Je generována žádost od některého zařízení na patřičném vodiči se objeví úroveň L. Po obsloužení se úroveň vrátí zpět na úroveň H, pokud mezitím nevznikla žádost od dalšího zařízení napojeného do této žádosti. Pokud byla generována, pak patřičný sběrnicový signál žádosti zůstane na úrovni L a musí být obsloužen. Tato technika je využita ve sběrnici PCI. 24