150 likes | 292 Views
Preru šovací systém počítača. Komunikácia procesora s okolím. Potreba reakcie na rôzne situácie Riešenie situácie okamžite alebo s oneskorením Pridelenie priority jednotlivým riešeniam Spôsoby komunikácie : Priamo – I/O inštrukciami cez I/O porty Prerušením – hardwerová žiadosť periférie
E N D
Komunikácia procesora s okolím • Potreba reakcie na rôzne situácie • Riešenie situácie okamžite alebo s oneskorením • Pridelenie priority jednotlivým riešeniam Spôsoby komunikácie : • Priamo – I/O inštrukciami cez I/O porty • Prerušením – hardwerová žiadosť periférie • DMA prenosom – bez účasti procesora na prenose
Spôsoby komunikácie - priamo • inštrukčná sada určitého procesora obsahuje inštrukcie, ktoré umožňujú čítať procesoru vstupné informácie z periférií cez vstupné porty, na ktoré sú pripojené nejaké periférie( inštrukcie vstupu, IN adresa portu). • Rovnako existujú inštrukcie, pomocou ktorých je možné, aby procesor vyslal údaje na príslušné periférne zariadenie( inštrukcie výstupu, OUT adresa portu) cez výstupný port. • Veľmi často sa používajú tzv. obojsmerné ( I/O porty) programovateľné porty, u ktorých je možné programove určiť smer toku dát.
Spôsoby komunikácie - prerušením • Prerušením sa rozumie doslova prerušenie vykonávania inštrukcií hlavného programu procesorom. Dôvody prerušenia činnosti procesora : • hlásenie pripravenosti periférie na prenos údajov • pri ukončení činnosti periférie • pri objavení sa výpadku napájania • po uplynutí určitého časového intervalu
Spôsoby komunikácie - prerušením Činnosť procesora pri prerušení : • Po prijatí požiadavky o prerušenie procesorom sa pozastaví vykonávanie inštrukcií (hlavný program) a riadenie sa odovzdá programu, ktorý sa nazýva obslužný podprogram prerušenia. Po vykonaní obsluhy danej periférie, t.j. po skončení podprogramu pre obsluhu prerušenia sa riadenie vráti na adresu nasledujúcu po adrese, na ktorej bolo prerušenie vyvolané a procesor pokračuje vo vykonávaní ďalších inštrukcií hlavného programu
Spôsoby komunikácie - prerušením Rozdelenie prerušovacích systémov : • jednoúrovňový– pri akceptovaní požiadavky na prerušenie, t.j. po prechode na obslužný podprogram prerušenia, nie je možné tento podprogram prerušiť akceptovaním ďalšej požiadavky o prerušenie. Ďalšia požiadavka o prerušenie môže byť spracovaná až po návrate do hlavného programu. • viacúrovňový – umožňuje prerušiť práve prebiehajúci obslužný podprogram iným podprogramom, ktorého riešenie je naliehavejšie. Vtedy jednotlivé žiadosti o prerušenie prichádzajú do obvodu riadenia priority prerušení ( napr. Intel 8259 ), odkiaľ sa daná žiadosť o prerušenie generuje iba vtedy, ak priorita prichádzajúcej žiadosti je vyššia ako práve spracovávaná. Vtedy hovoríme o vnorených podprogramoch obsluhy prerušenia.
Spôsoby komunikácie - prerušením Druhy prerušenia podľa jeho zdroja : • hardverové– (externé ) jednotlivé periférie majú k dispozícii výstupný signál IRQ (InterruptRequest), ktorým môžu požiadať procesor, aby sa im venoval, t.j, aby ich obslúžil. Procesor má preto k dispozícii vstup INT, na ktorý táto požiadavka ( tento signál ) o prerušenie príde. • softverové– ( interné )po uplynutí určitého časového intervalu, ktorý je realizovaný a sledovaný napr. vnútorným časovačom, dôjde ku generovaniu požiadavky na prerušenie. Vnútorný časovač ( systémový časovač) je naprogramovaný na daný časový interval a počíta impulzy generátora systémových hodín. Rovnako je možné vyvolať softverové prerušenie pomocou inštrukcie INT n
Spôsoby komunikácie - prerušením Druhy hardverového prerušenia : • NMI ( Non MascableInterrupt ) – nemaskovateľné prerušenie, nie je ho možné zakázať a má najvyššiu prioritu. Používa sa na ošetrenie havarijných stavov v systéme a iných dôležitých funkcií systému • INTR ( MascableInterrupt ) – maskovateľné prerušenie, ktoré je možné programove zakázať (zamaskovať) alebo povoliť. Tento vstup procesora je budený práve výstupom programovateľného radiča prerušení (8259 PIC – ProgrammableInterruptController), pomocou ktorého je možné upravovať prioritu niektorých prerušení a masku prerušení. V súčasnosti je kontrolér 8259 alebo jeho klon súčasťou čipovej sady procesora.
Spôsoby komunikácie - prerušením Druhy hardverového prerušenia : • Maska prerušení - Zakázanie, resp. povolenie jednotlivých prerušení sa vykonáva pomocou masky prerušení, kde určujúcou je hodnota jednotlivého bitu (0 –zablokuje, 1-povoľuje ) pre konkrétnu požiadavku o prerušenie. Prerušenie ako také je možné tiež zakázať alebo povoliť softverove inštrukciou DI (DisableInterrupt), EI (EnableInterrupt). • Pravidlo priority prerušení – prerušenie s vyššou prioritou môže prerušiť podprogram obsluhy s nižšou prioritou, prerušenie s nižšou prioritou nemôže prerušiť obslužný podprogram s vyššou prioritou. • V prípade súčasného výskytu viacerých požiadaviek na prerušenie, podľa nastavenej priority radič prerušenia rozhodne, ktorá žiadosť o prerušenie bude obslúžená ako prvá.
Spôsoby komunikácie - prerušením Vývoj prerušovacieho systému PC • PC –XT ... NMI, IRQ0 – IRQ7 => 8 vstupov hardverového prerušenia ( 1x radič prerušenia 8259 ) • PC – AT ...NMI, IRQ0 – IRQ15 => 15 vstupov hardverového prerušenia ( 2x radiče 8259 v kaskádovom zapojení ) • V počítačoch so zbernicou PCI je každému slotu PCI priradené prerušenie s označením INT#A, INT#B, INT#C, INT#D. Tieto prerušenia sú operačným systémom presmerované na štandardné vektory IRQxx , kde číslo xx môže byť aj väčšie ako 15.
Hardverové prerušenie • IRQ 0 Radič systémového času ( časovač ) • IRQ 1 Radič klávesnice • IRQ 2 kaskádovité pripojenie radičov z I/O rozhraní (IRQ 8 až IRQ 15) • IRQ 3 COM2 Sériový port 2 • IRQ 4 COM1 Sériový port 1 • IRQ 5 Paralelní port 2 • IRQ 6 radič diskiet • IRQ 7 LPT1 paralelný port 1 • IRQ 8 Hodiny reálného času • IRQ 9 VGA,SVGA, videokarta, sieťová karta alebo voľné • IRQ 10 Voľné • IRQ 11 Voľné • IRQ 12 PS/2 myš alebo voľné, • IRQ 13 Numerický koprocesor • IRQ 14 Radič pevného disku – primárny kanál EIDE • IRQ 15 Radič pevného disku – sekundárny kanál EIDE
Spôsoby komunikácie - prerušením Identifikácia zdroja prerušenia : • pomocou registra prerušení –jednotlivé žiadosti o prerušenie sa zapisujú do IRR ( InterruptRequest Register) registra a súčasne je generovaný signál INT. Procesor potom prečíta obsah IRR registra a testovaním jednotlivých bitov registra zistí, ktorá periféria žiada o prerušenie. • Vektorové prerušenie – každému zdroju prerušenia je priradená pevná adresa ( vektor prerušenia ), na ktorú v prípade prijatia tejto požiadavky procesor odskočí a začne vykonávať obslužný podprogram tam uložený ( alebo je tam umiestnený iba príkaz skoku na podprogram obsluhy ).
Spôsoby komunikácie - prerušením Softverové prerušenie • Tieto prerušenia sa inicializujú pomocou inštrukcie INT XY, kde číslo XY je ukazateľom do tabuľky vektorov prerušenia. Softverové prerušenia umožňujú : • Operačnému systému využívať služby BIOSu pre prístup ku HW zariadeniam a ich spravovanie • Aplikáciám využívať služby oper.systému a komunikovať s ovládačmi HW zariadení • Ovládačom komunikovať so zariadeniami prostredníctvom IRQ mapovaných na INT
Softverové prerušenie • Služby BIOSu : • INT 10h – obsluha zobrazovacej jednotky • INT 17h– obsluha tlačiarne ( LPT) • INT 16h – obsluha klávesnice • Služby OS: • INT 20h – ukončenie programu • INT 21h – hlavná skupina služieb • INT 22h – špeciálne služby