Pertrauktys (Interrupts) - PowerPoint PPT Presentation

About This Presentation
Title:

Pertrauktys (Interrupts)

Description:

Pertrauktys (Interrupts) Programa be pertrauk i Petrauktys (Interrupts) Pertrauktys yra mechanizmas, kuriuo naudodamiesi vair s kompiuterio renginiai ir ... – PowerPoint PPT presentation

Number of Views:160
Avg rating:3.0/5.0
Slides: 52
Provided by: acer366
Category:

less

Transcript and Presenter's Notes

Title: Pertrauktys (Interrupts)


1
Pertrauktys(Interrupts)
2
(No Transcript)
3
(No Transcript)
4
Programa be pertraukciu
  • Vykdoma keletas WRITE instrukciju, iterptu i
    vartotojo programa. 1, 2, 3 kodo segmentuose
    pertraukciu nera.
  • Pagal WRITE instrukcijas kreipiamasi i I/I
    sistemine paslaugu programa (utility), kuri
    atlieka tam tikra operacija.
  • 4 sekcija parengia tam tikra I/I operacija
    (duomenu išvedimas i specialu buferi, parametru
    periferinio irenginio komandoms parengimas ir
    pan.)
  • I/I komanda jeigu petrauktys nenumatytos, tai
    bus vykdomos tik šios komandos.
  • 5 sekcija pagal šia kodo seka vykdoma I/I
    operacija. Gali buti numatytas veiksmaženklis
    (flag), kuris rodo, ar sekmingai atlikta
    operacija.

5
Petrauktys (Interrupts)
  • Pertrauktys yra mechanizmas, kuriuo naudodamiesi
    ivairus kompiuterio irenginiai ir programos
    atkreipia CPI demesi, reikalaudami juos
    aptarnauti.

6
Pertraukciu klases
  • Programines pertrauktys. Jos generuojamos,
    susidarius tam tikroms salygoms, vykdant
    instrukcija, pvz dalyba iš nulio, aritmetine
    perpilda ir pan.
  • Laikmacio (timer) Generuoja laikmatis, CPI
    nedalyvaujant. Taip pertrauktys. sistema
    atlieka tokias periodines funkcijas, kaip
    operatyviosios atminties regeneravimas ir
    pan.
  • I/I pertrauktys. I/I valdiklis signalizuoja
    apie užduoties baigima ar klaida.
  • Technines irangos Generuojamos, esant avarijoms
    arba gedimams, gedimo pertrauktys. pvz.
    atminties lyginumo (parity) klaida.

Pertrauktys didina instrukciju apdorojimo
efektyvuma. Be ju CPI turetu šimtus ir
tukstancius ciklu laukti, kol spaudintuvas baigs
spausdinti ir pan.
7
Programa su pertrauktimistrumpasis I/I laukimas
  • Vykdoma keletas WRITE instrukciju, iterptu i
    vartotojo programa. 1, 2, 3 kodo segmentuose
    pertraukciu nera.
  • Pagal WRITE instrukcijas kreipiamasi i I/I
    sistemine paslaugu programa (utility), kuri
    atlieka tam tikra operacija.
  • 4 sekcija parengia tam tikra I/I operacija
    (duomenu išvedimas i specialu buferi, parametru
    periferinio irenginio komandoms parengimas ir
    pan.)
  • I/I komanda jeigu petrauktys nenumatytos, tai
    bus vykdomos tik šios komandos.
  • 5 sekcija pagal šia kodo seka vykdoma I/I
    operacija. Gali buti numatytas veiksmaženklis
    (flag), kuris rodo, ar sekmingai atlikta
    operacija.

Žymi pertraukti
8
Programa su pertrauktimisilgasis I/I laukimas
  • Vykdoma keletas WRITE instrukciju, iterptu i
    vartotojo programa. 1, 2, 3 kodo segmentuose
    pertraukciu nera.
  • Pagal WRITE instrukcijas kreipiamasi i I/I
    sistemine paslaugu programa (utility), kuri
    atlieka tam tikra operacija.
  • 4 sekcija parengia tam tikra I/I operacija
    (duomenu išvedimas i specialu buferi, parametru
    periferinio irenginio komandoms parengimas ir
    pan.)
  • I/I komanda jeigu petrauktys nenumatytos, tai
    bus vykdomos tik šios komandos.
  • 5 sekcija pagal šia kodo seka vykdoma I/I
    operacija. Gali buti numatytas veiksmaženklis
    (flag), kuris rodo, ar sekmingai atlikta
    operacija.

9
Instrukcijos ciklas su pertrauktimis
Pertraukti paprastai apdoroja operacine sistema.
10
Programos laiko diagrama
Del pertraukciu našumas padideja, nes yra laiko
tarpas, kai I/I operacija yra vykdoma kartu su
vartotojo programa (pažymeta raudonai).
11
Valdymo keitimas vykdant pertrauktis
Pertrauktis IRQ signalas iš I/I modulio
-gtCPI CPI stabdo programa, isimena konteksta ir
iškviecia pertraukties apdorojimo procedura
(interrupt handler). Vartotojo programoje nera
kodo, susijusio su pertrauktim (jis patalpintas
atskirai ir nurodomas pertraukties vektoriumi).
Programos stabdyma ir atnaujinima tame paciame
taške užtikrina CPI ir operacine sistema,
naudojant atmintines elementus.
12
(No Transcript)
13
Pertrauktimis valdomos proceduros
  • skirtingos pertraukciu linijos
  • programinis sarašas  deizi (daisy) grandines
    (dar vadinama technines irangos sarašu arba
    vektoriuotaja)  magistrales arbitravimo
    (vektoriuotoji).

14
Pertrauktimis valdomos proceduros
skirtingos pertraukciu linijos
Akivaizdžiausias ir tiesioginis pertraukciu
problemos sprendimo budas yra užtikrinti butina
pertraukciu liniju skaiciu tarp CPI ir I/I
modulio. Taciau skirti daugiau negu kelias
magistrales linijas arba CPI kontaktus
pertraukciu linijoms labai neracionalu.
Reiškia, net jeigu naudojamos kelios linijos
labai tiketina, kad kiekviena linija aptarnauja
kelis, prie jos prijungtus I/I modulius. Taigi,
kiekvienoje linijoje turi buti taikomas vienas iš
triju likusiuju metodu.
15
Pertrauktimis valdomos proceduros
programinis sarašas
Tai yra programinis periferiniu irengimu "sarašo"
tikrinimas (software poll). Kai CPI aptinka
pertraukti, jis iškviecia pertraukciu apdorojimo
procedura, kurios paskirtis yra nustatyti kuris
iš moduliu sugeneravo pertraukti. Sarašas gali
atrodyti kaip atskiru komandiniu eiluciu (pvz..,
TEST I/O - tikrinti I/I) rinkinys. Šiuo atveju,
CPI generuoja TEST I/O komanda ir adresu
magistraleje nustato tam tikro I/I modulio
adresa. I/I modulis reaguoja i šia komanda
teigiamai, jeigu butent jis ijunge pertraukti.
Galimas ir kitas variantas - kiekvienas I/I
modulis gali tureti adresuojamaji statuso
registra. CPI šiuo atveju, skaito kiekvieno I/I
modulio statuso registra ir pagal jo turini
aptinka pertraukti sugeneravusi moduli. Kai
modulis aptiktas, CPI iškviecia pertraukties
apdorojimo procedura ir nurodo jai ši irengini.
Programinio sarašo tikrinimo trukumas yra tas,
kad eikvojama daug laiko.
16
Pertrauktimis valdomos proceduros
  deizi (daisy) grandines (dar vadinama
technines irangos sarašu arba vektoriuotaja)
17
Pertrauktimis valdomos proceduros
  magistrales arbitravimo (vektoriuotoji).
Vektoriuotas pertrauktis taikantis metodas -
magistrales arbitravimas. Magistrales
arbitravimo atveju, I/I modulis iš pradžiu turi
"užvaldyti" magistrale, o po to reikalauti
pertraukties per tam tikra linija. Šiuo atveju,
tik vienas modulis duotu laiko momentu gali
valdyti pertraukciu linija. Kai CPI aptinka
pertraukti, jis atsako patvirtinimu per specialia
linija. Tada reikalingas modulis gali išdestyti
savo vektoriu duomenu linijose.
18
Pertrauktimis valdomos proceduros
programinis sarašas  deizi (daisy) grandines
(dar vadinama technines irangos sarašu arba
vektoriuotaja)  magistrales arbitravimo
(vektoriuotoji).
Visi cia aptarti metodai taikomi reikiamam I/I
moduliui identifikuoti. Jie taip pat suteikia
tam tikra prioriteta, kai pertraukties apdorojimo
reikalauja daugiau nei vienas irenginys. Kai
pertrauktims organizuoti naudojama daugybe
liniju, CPI paprasciausia pasirenka aukšciausia
prioriteta turincia linija. Programinio sarašo
tikrinimo atveju tvarka, pagal kuria bus
tikrinamas I/I modulis, nusako jo prioritetas.
Magistrales arbitravimas taip pat užtikrina
prioriteto schema. Panašiai, moduliu tikrinimo
eiles tvarka nustato deizi grandyje pažymeti
prioritetai praktiškai atstumas nuo CP.
19
Pertraukties grandines
INT RQ
CPU
Iv/Išv
Iv/Išv
20
  • Interrupts provide the mechanism by which the Z80
    can process asynchronous events such as timers,
    sensor input and peripheral communication.
  •  
  • When an interrupt is received the Z80 executes a
    sub-routine known as an Interrupt Handler. These
    subroutines are the same as any other machine
    code subroutine except that the following
    considerations need to be taken into account
  • The sub-routine can be executed at random points
    in the code and so must ensure that registers are
    saved before any data is lost.
  • Interrupts must be re-enabled as soon as possible
    once the registers have been saved and the data
    acquired
  • The RETI (RETurn from Interrupt) instruction must
    be used to return from an Interrupt Handler
    sub-routine.

21
Pertraukties grandines
Because 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
22
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.

23
  • The Spectrums memory map is very simple
  • ROM is paged into address 0x0000 - 0x3fff
  • RAM is paged into 0x4000 - 0x7fff
  • on the 64K model, with the extra 32k if fitted
    paged into 0x8000 - 0xffff.
  • There is but one IO port on a base Spectrum, 0xfe
    gt254

0x7fff
0x4000
0x3fff
0x0000
Bazinis IO adresas žemiausias IO grupes adresas
24
Extended
HMA 1000-1024 kB
  • Expanded

Conventional
25
F
E
D
C
B
A






0600
0500
0400
0000
1 M A0000
  • ROM BIOS
  • Video RAM
  • Pagr atmintine (Conventional)
  • 10x64kB 640kB
  • Dos duomenys
  • ROM BIOS kintamieji ir duomenys
  • Pertraukties vektoriai 256x4B (2word) 1024B

I x86 mP atmintines paskirstymas
26
I x86 mP atmintines paskirstymas
1 M A0000
F
E
D
C
B
A






0600
0500
0400
0000
  • ROM BIOS
  • Video RAM
  • Pagr atmintine (Conventional)
  • 10x64kB 640kB
  • Dos duomenys
  • ROM BIOS kintamieji ir duomenys
  • Pertraukties vektoriai 256x4B (2word)

27
(No Transcript)
28
(No Transcript)
29
(No Transcript)
30
(No Transcript)
31
(No Transcript)
32
(No Transcript)
33
Pertrauktimis valdomos proceduros
  programinis sarašas  deizi (daisy)
grandines (dar vadinama technines irangos
sarašu arba vektoriuotaja)  magistrales
arbitravimo (vektoriuotoji).
34
Pertraukties grandines
INT RQ
CPU
Iv/Išv
Iv/Išv
35
(No Transcript)
36
(No Transcript)
37
(No Transcript)
38
(No Transcript)
39
(No Transcript)
40
(No Transcript)
41
(No Transcript)
42
(No Transcript)
43
(No Transcript)
44
(No Transcript)
45
(No Transcript)
46
(No Transcript)
47
(No Transcript)
48
(No Transcript)
49
(No Transcript)
50
(No Transcript)
51
(No Transcript)
52
(No Transcript)
53
(No Transcript)
54
(No Transcript)
55
(No Transcript)
56
(No Transcript)
57
(No Transcript)
58
(No Transcript)
59
  • www.ff.vu.lt/kklase/komptaikymas
Write a Comment
User Comments (0)
About PowerShow.com