Hvordan virker Interrupt egentlig? Hvordan ved Processoren hvilken adresse i programmet den skal hoppe til når der kommer et interrupt fra en given instans? Hvordan er koblingen fra et fysisk ben der bliver trukket lav til at "Program Counteren" (er det ikke det den hedder?) sættes til en helt anden adresse?
Mvh. Terry
Didn't find your answer? Ask the community — no account required.
M
Moller
"Terry Andersen" skrev i en meddelelse news:br72d2$lej$ snipped-for-privacy@news.net.uni-c.dk...
i
Det afhænger hva for en MPU du snakker om...
Tror du må formulere dette på en anden måde, men jeg gætter på du hendtyder til at du bruger et eksternt Hardware interupt ben, som trigges når det går lavt ??? igen så afhænger det af hva MPU vi snakker om.
VH Lars Molnit
K
Kenneth Brun Nielsen
"Terry Andersen" skrev i en meddelelse news:br72d2$lej$ snipped-for-privacy@news.net.uni-c.dk...
i
Som tidligere nævnt afhænger det af hvilken MPU vi taler om.
En oplagt implementering er dog, at indgangssignalet til programtælleren (PC), styres af en multiplexer, som afhængigt af et kontrolsignal, hvor bl.a. "det fysiske ben" indgår, sender en af følgende værdier ind i PC'en:
1) Efterfølgende adresse - dvs. PC+1 (eller 4 afhængig af MPU)
2) branchadresse - dvs. en beregnet værdi af PC'en
3) interruptadresse - ofte en prædefineret værdi
- der er sikkert flere muligheder...
Håber det giver mening!
/Kenneth
O
Ove Kjeldgaard
Det er vist en brugbar kort oversigt, der skal nok lidt flere detaljer på
3'eren:
3a) Først fuldføres den instruktion der er igang
3b) Efterfølgende adresse - dvs. PC+1 gemmes
3c) Der springes til interrupt adressen
3d) Når interrupten er udført springes tilbage til adressen fra 3b
Og så er der en masse omkring f.eks. hvordan adresser gemmes, hvordan registre gemmes før/under interrupt rutinen og prioritering af interrupt.
Med venlig hilsen, Ove Kjeldgaard, nospam AT privat DOT dk
Natur og Friluftsliv:
T
Terry Andersen
PC'en:
registre
Mange tak for jeres svar. Det var selve hardware-opbygningen med en multiplexer for PC jeg var ude efter. Mange tak, det forstår jeg godt. På hver MPU må der jo så sidde en Interrupt Controller der føder multiplexeren med den korrekte adresse i forhold til hvilket interrupt der er opstået (externt interrupt ben, intern overløb af timer, m.m.). Så skal compiler blot vide på hvilke adresser de forskellige interrupt rutienr skal ligges. Korrekt ikke?
Mvh. Terry
C
Christian B. Andresen
programtælleren
på
multiplexeren
Jo, PC bliver typisk gemt på stacken og hentet efter interruptet vha push/pop.
mvh/rg. Christian
Påkører du klovbærende vildt, afmærk stedet
og ring til en fra Schweisshunderegistret:
http://www.schweiss.dk/ eller Falck: 70 10 20 30
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.