pertrauktys (interrupts)

51
Pertrauktys (Interrupts)

Upload: alpha

Post on 15-Jan-2016

112 views

Category:

Documents


0 download

DESCRIPTION

Pertrauktys (Interrupts). Petrauktys (Interrupts). Pertrauktys yra mechanizmas, kuriuo naudodamiesi įvairūs kompiuterio įrenginiai ir programos atkreipia CPĮ dėmesį, reikalaudami juos aptarnauti. Pert r aukčių klasės. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Pertrauktys (Interrupts)

Pertrauktys(Interrupts)

Page 2: Pertrauktys (Interrupts)
Page 3: Pertrauktys (Interrupts)
Page 4: Pertrauktys (Interrupts)

Petrauktys (Interrupts)

• Pertrauktys yra mechanizmas, kuriuo naudodamiesi įvairūs kompiuterio įrenginiai ir programos atkreipia CPĮ dėmesį, reikalaudami juos aptarnauti.

Page 5: Pertrauktys (Interrupts)

Pertraukčių klasės• Programinės pertrauktys. Jos generuojamos, susidarius tam tikroms

sąlygoms, vykdant instrukciją, pvz: dalyba iš nulio, aritmetinė perpilda ir pan.

• Laikmačio (timer) Generuoja laikmatis, CPĮ nedalyvaujant. Taip pertrauktys. sistema atlieka tokias periodines funkcijas, kaip operatyviosios atminties regeneravimas ir pan.

• Į/I pertrauktys. Į/I valdiklis signalizuoja apie užduoties baigimą ar klaidą.

• Techninės įrangos Generuojamos, esant avarijoms arba gedimams, gedimo pertrauktys. pvz. atminties lyginumo (parity) klaida.

Pertrauktys didina instrukcijų apdorojimo efektyvumą. Be jų CPĮ turėtų šimtus ir tūkstančius ciklų laukti, kol spaudintuvas baigs spausdinti ir pan.

Page 6: Pertrauktys (Interrupts)

Instrukcijos ciklas su pertrauktimis

Pertrauktį paprastai apdoroja operacinė sistema.

Page 7: Pertrauktys (Interrupts)

Valdymo keitimas vykdant pertrauktis

Pertrauktis: IRQ signalas iš Į/I modulio ->CPĮ

CPĮ stabdo programą, įsimena kontekstą ir iškviečia pertraukties apdorojimo procedūrą (interrupt handler).

Vartotojo programoje nėra kodo, susijusio su pertrauktim (jis patalpintas atskirai ir nurodomas pertraukties vektoriumi).

Programos stabdymą ir atnaujinimą tame pačiame taške užtikrina CPĮ ir operacinė sistema, naudojant atmintinės elementus.

Page 8: Pertrauktys (Interrupts)
Page 9: Pertrauktys (Interrupts)

Pertrauktimis valdomos procedūros

• skirtingos pertraukčių linijos;• programinis sąrašas;•  deizi (daisy) grandinės (dar vadinama techninės įrangos sąrašu arba vektoriuotąja);•  magistralės arbitravimo (vektoriuotoji).

Page 10: Pertrauktys (Interrupts)

Pertrauktimis valdomos procedūros

• skirtingos pertraukčių linijos;

Akivaizdžiausias ir tiesioginis pertraukčių problemos sprendimo būdas yra užtikrinti būtiną pertraukčių linijų skaičių tarp CPĮ ir Į/I modulio.

Tačiau skirti daugiau negu kelias magistralės linijas arba CPĮ kontaktus pertraukčių linijoms labai neracionalu.

Reiškia, net jeigu naudojamos kelios linijos labai tikėtina, kad kiekviena linija aptarnauja kelis, prie jos prijungtus Į/I modulius. Taigi, kiekvienoje linijoje turi būti taikomas vienas iš trijų likusiųjų metodų.

Page 11: Pertrauktys (Interrupts)

Pertrauktimis valdomos procedūros• programinis sąrašas;

Tai yra programinis periferinių įrengimų "sąrašo" tikrinimas (software poll). Kai CPĮ aptinka pertrauktį, jis iškviečia pertraukčių apdorojimo procedūrą, kurios paskirtis yra nustatyti kuris iš modulių sugeneravo pertrauktį. Sąrašas gali atrodyti kaip atskirų komandinių eilučių (pvz.., TEST I/O - tikrinti Į/I) rinkinys. Šiuo atveju, CPĮ generuoja TEST I/O komandą ir adresų magistralėje nustato tam tikro Į/I modulio adresą. Į/I modulis reaguoja į šią komandą teigiamai, jeigu būtent jis įjungė pertrauktį.

Galimas ir kitas variantas - kiekvienas Į/I modulis gali turėti adresuojamąjį statuso registrą. CPĮ šiuo atveju, skaito kiekvieno Į/I modulio statuso registrą ir pagal jo turinį aptinka pertrauktį sugeneravusį modulį.

Kai modulis aptiktas, CPĮ iškviečia pertraukties apdorojimo procedūrą ir nurodo jai šį įrenginį.

Programinio sąrašo tikrinimo trūkumas yra tas, kad eikvojama daug laiko.

Page 12: Pertrauktys (Interrupts)

Pertrauktimis valdomos procedūros•  deizi (daisy) grandinės (dar vadinama techninės įrangos sąrašu arba vektoriuotąja);

Efektyvesnis yra vadinamasis deizi grandinės (daisy chain) metodas, kuris, faktiškai vykdo techninį periferinių įrenginių sąrašo tikrinimą (hardware poll). Deizi grandies konfigūravimas pateiktas pav. Pertraukties signalui siųsti visi Į/I moduliai kartu naudoja (share) bendrą pertraukčių liniją. Pertraukties patvirtinimo linija sujungta į deizi grandinę per visus modulius. Kai CPĮ aptinka pertrauktį, jis išsiunčia pertraukties patvirtinimo signalą. Šis signalas sklinda pro visus nuosekliai sujungtus Į/I modulius kol nepatenka į reikalingą modulį. Atpažintas modulis paprastai atsako į tai išdėstydamas duomenų magistralėje žodį. Šis žodis vadinamas vektoriumi ir tai taip pat yra Į/I modulio savotiškas adresas (arba identifikatorius). Bet kuriuo atveju (ar tai adresas ar identifikatorius), vektorių CPĮ naudoja kaip rodyklę, pagal kurią iškviečia tam tikrą įrenginio aptarnavimo procedūrą. Tai leidžia pačioje pradžioje nevykdyti bendros pertraukties aptarnavimo procedūros. Šis metodas dar vadinamas  vektoriuotoji pertrauktis. 

                                                                                                                                         

 

Paskirstytasis arbitravimas; čia MPRĮ— magistralės prioriteto įėjimas. MPRI - magistralės prioriteto išėjimas. 

Page 13: Pertrauktys (Interrupts)

Pertrauktimis valdomos procedūros

•  magistralės arbitravimo (vektoriuotoji).

Vektoriuotas pertrauktis taikantis metodas - magistralės arbitravimas.

Magistralės arbitravimo atveju, Į/I modulis iš pradžių turi "užvaldyti" magistralę, o po to reikalauti pertraukties per tam tikrą liniją. Šiuo atveju, tik vienas modulis duotu laiko momentu gali valdyti pertraukčių liniją. Kai CPĮ aptinka pertrauktį, jis atsako patvirtinimu per specialią liniją. Tada reikalingas modulis gali išdėstyti savo vektorių duomenų linijose.

Page 14: Pertrauktys (Interrupts)

Pertrauktimis valdomos procedūros• programinis sąrašas;•  deizi (daisy) grandinės (dar vadinama techninės įrangos sąrašu arba vektoriuotąja);•  magistralės arbitravimo (vektoriuotoji).

Visi čia aptarti metodai taikomi reikiamam Į/I moduliui identifikuoti.

Jie taip pat suteikia tam tikrą prioritetą, kai pertraukties apdorojimo reikalauja daugiau

nei vienas įrenginys.

Kai pertrauktims organizuoti naudojama daugybė linijų, CPĮ paprasčiausia pasirenka

aukščiausią prioritetą turinčią liniją. Programinio sąrašo tikrinimo atveju tvarką, pagal

kurią bus tikrinamas Į/I modulis, nusako jo prioritetas. Magistralės arbitravimas taip pat

užtikrina prioriteto schemą. Panašiai, modulių tikrinimo eilės tvarką nustato deizi

grandyje pažymėti prioritetai – praktiškai – atstumas nuo CP.

Page 15: Pertrauktys (Interrupts)

Pertraukties grandinės

CPU

Įv/Išv Įv/Išv

INT RQ

Page 16: Pertrauktys (Interrupts)

Pertraukties grandinėsBecause the Z80 has only one interrupt line, the Z80 and its peripheral support chips negotiate for the CPUs attention by using a hardware based daisy-chain approach. The peripheral chip closest to the power line on the daisy-chain has the highest priority when it raises an interrupt request. This is because the interrupting chip indicates its need for service to the other peripheral chips through the IEO signal. Any chip which is physically closer to the CPU on the chain can be blocked from raising an interrupt by holding IEO (Interrupt Enable Output) on the interrupting device low. Any peripheral chip which is being blocked from the CPU in this way will simply keep the interrupt request signal (INT) active until either the CPU acknowledges the peripheral chip (or until it loses the data). The peripheral is acknowledged when IEI is high (and IEO low) at the time that INTACK is received. 

                                                                                                                     

Figure: The Z80 Interrupt Daisy-Chain

Page 17: Pertrauktys (Interrupts)

Maskuojamos pertrauktys

The INT signal is known as a maskable interrupt because the programmer can cause the CPU to ignore all interrupt requests by using the DI (Disable Interrupt) instruction.

Maskable interrupts are automatically disabled by the CPU during the INTACK cycle and must be re-enabled by the programmer (using the EI - Enable Interrupts - instruction) before any more interrupts can be acknowledged. The EI instruction is normally executed as soon as possible in the interrupt handler code to avoid losing any interrupt signals from higher priority peripherals in the daisy-chain.

Page 18: Pertrauktys (Interrupts)

• ROM BIOS

• Video RAM

• Pagr atmintinė (Conventional)

• 10x64kB = 640kB

• Dos duomenys

• ROM BIOS kintamieji ir duomenys

• Pertraukties vektoriai 256x4B (2word) 1024B

F

E

D

C

B

A

0600

0500

0400

0000

1 M

A:0000

I x86 P atmintinės paskirstymas

Page 19: Pertrauktys (Interrupts)

• ROM BIOS

• Video RAM

• Pagr atmintinė (Conventional) • 10x64kB = 640kB

• Dos duomenys• ROM BIOS kintamieji ir duomenys• Pertraukties vektoriai 256x4B

(2word)

F

E

D

C

B

A

0600

0500

0400

0000

1 M

A:0000

I x86 P atmintinės paskirstymas

Page 20: Pertrauktys (Interrupts)
Page 21: Pertrauktys (Interrupts)
Page 22: Pertrauktys (Interrupts)
Page 23: Pertrauktys (Interrupts)
Page 24: Pertrauktys (Interrupts)
Page 25: Pertrauktys (Interrupts)

Pertrauktimis valdomos procedūros

•  programinis sąrašas;•  deizi (daisy) grandinės (dar vadinama techninės įrangos sąrašu arba vektoriuotąja);•  magistralės arbitravimo (vektoriuotoji).

Page 26: Pertrauktys (Interrupts)

Pertraukties grandinės

CPU

Įv/Išv Įv/Išv

INT RQ

Page 27: Pertrauktys (Interrupts)
Page 28: Pertrauktys (Interrupts)
Page 29: Pertrauktys (Interrupts)
Page 30: Pertrauktys (Interrupts)
Page 31: Pertrauktys (Interrupts)
Page 32: Pertrauktys (Interrupts)
Page 33: Pertrauktys (Interrupts)
Page 34: Pertrauktys (Interrupts)
Page 35: Pertrauktys (Interrupts)
Page 36: Pertrauktys (Interrupts)
Page 37: Pertrauktys (Interrupts)
Page 38: Pertrauktys (Interrupts)
Page 39: Pertrauktys (Interrupts)
Page 40: Pertrauktys (Interrupts)
Page 41: Pertrauktys (Interrupts)
Page 42: Pertrauktys (Interrupts)
Page 43: Pertrauktys (Interrupts)
Page 44: Pertrauktys (Interrupts)
Page 45: Pertrauktys (Interrupts)
Page 46: Pertrauktys (Interrupts)
Page 47: Pertrauktys (Interrupts)
Page 48: Pertrauktys (Interrupts)
Page 49: Pertrauktys (Interrupts)
Page 50: Pertrauktys (Interrupts)
Page 51: Pertrauktys (Interrupts)

www.ff.vu.lt/kklase/komptaikymas