afbrydere kan implementeres i udstyr som en særskilt komponent med kontrolledninger, eller de kan integreres i hukommelsesundersystemet.hvis det implementeres i udstyr som en særskilt komponent, kan et interrupt controller-kredsløb såsom IBM PC ‘ s programmerbare Interrupt Controller (PIC) være forbundet mellem afbrydelsesenheden og processorens interrupt pin for at multiplicere flere kilder til interrupt på den ene eller to CPU-linjer, der typisk er tilgængelige. Hvis det implementeres som en del af hukommelsescontrolleren, kortlægges afbrydelser i systemets hukommelsesadresserum.
- flere enheder kan dele en kant-udløst afbrydelseslinje, hvis de er designet til det. Afbrydelseslinjen skal have en pull-ned eller pull-up modstand, så når den ikke aktivt drives, sætter den sig til sin inaktive tilstand, hvilket er standardtilstanden for den. Enheder signaliserer en afbrydelse ved kort at køre linjen til dens ikke-standardtilstand, og lad linjen flyde (kør den ikke aktivt), når den ikke signaliserer en afbrydelse. Denne type forbindelse kaldes også åben samler. Linjen bærer derefter alle de impulser, der genereres af alle enheder. (Dette er analogt med trækledningen på nogle busser og vogne, som enhver passager kan trække for at signalere føreren, at de anmoder om et stop.) Afbrydelsesimpulser fra forskellige enheder kan dog fusionere, hvis de forekommer tæt i tide. For at undgå at miste afbrydelser skal CPU ‘ en udløse på bagkanten af pulsen (f.eks. den stigende kant, hvis linjen trækkes op og køres lavt). Efter detektering af en afbrydelse skal CPU ‘ en kontrollere alle enheder for servicekrav.Edge-triggered interrupts lider ikke de problemer, som level-triggered interrupts har med deling. Service af en enhed med lav prioritet kan udskydes vilkårligt, mens afbrydelser fra enheder med høj prioritet fortsat modtages og serviceres. Hvis der er en enhed, som CPU ‘ en ikke ved, hvordan man servicerer, hvilket kan hæve falske afbrydelser, vil det ikke forstyrre afbrydelsessignalering af andre enheder. Det er dog let for en kantudløst afbrydelse at gå glip af-for eksempel når afbrydelser maskeres i en periode – og medmindre der er en eller anden form for maskinelås, der registrerer begivenheden, er det umuligt at gendanne. Dette problem forårsagede mange” lockups ” i det tidlige computerudstyr, fordi processoren ikke vidste, at det forventedes at gøre noget. Mere moderne udstyr har ofte et eller flere afbrydelsesstatusregistre, som låsen Afbryder anmodninger; velskrevet kantdrevet afbrydelseshåndteringskode kan kontrollere disse registre for at sikre, at der ikke går glip af begivenheder.den ældre Industristandardarkitektur (ISA) bus bruger kantudløste afbrydelser uden at kræve, at enheder kan dele irk-linjer, men alle mainstream Isa-bundkort inkluderer pull-up modstande på deres irk-linjer, så velopdragen ISA-enheder, der deler irk-linjer, skal bare fungere fint. Den parallelle port bruger også kantudløste afbrydelser. Mange ældre enheder antager, at de har eksklusiv brug af irk-linjer, hvilket gør det elektrisk usikkert at dele dem.
- problemer med at dele interrupt linesEdit
- HybridEdit
- Message-signaledEdit
- DoorbellEdit
- Multiprocessor IPIEdit
flere enheder kan dele en kant-udløst afbrydelseslinje, hvis de er designet til det. Afbrydelseslinjen skal have en pull-ned eller pull-up modstand, så når den ikke aktivt drives, sætter den sig til sin inaktive tilstand, hvilket er standardtilstanden for den. Enheder signaliserer en afbrydelse ved kort at køre linjen til dens ikke-standardtilstand, og lad linjen flyde (kør den ikke aktivt), når den ikke signaliserer en afbrydelse. Denne type forbindelse kaldes også åben samler. Linjen bærer derefter alle de impulser, der genereres af alle enheder. (Dette er analogt med trækledningen på nogle busser og vogne, som enhver passager kan trække for at signalere føreren, at de anmoder om et stop.) Afbrydelsesimpulser fra forskellige enheder kan dog fusionere, hvis de forekommer tæt i tide. For at undgå at miste afbrydelser skal CPU ‘ en udløse på bagkanten af pulsen (f.eks. den stigende kant, hvis linjen trækkes op og køres lavt). Efter detektering af en afbrydelse skal CPU ‘ en kontrollere alle enheder for servicekrav.Edge-triggered interrupts lider ikke de problemer, som level-triggered interrupts har med deling. Service af en enhed med lav prioritet kan udskydes vilkårligt, mens afbrydelser fra enheder med høj prioritet fortsat modtages og serviceres. Hvis der er en enhed, som CPU ‘ en ikke ved, hvordan man servicerer, hvilket kan hæve falske afbrydelser, vil det ikke forstyrre afbrydelsessignalering af andre enheder. Det er dog let for en kantudløst afbrydelse at gå glip af-for eksempel når afbrydelser maskeres i en periode – og medmindre der er en eller anden form for maskinelås, der registrerer begivenheden, er det umuligt at gendanne. Dette problem forårsagede mange” lockups ” i det tidlige computerudstyr, fordi processoren ikke vidste, at det forventedes at gøre noget. Mere moderne udstyr har ofte et eller flere afbrydelsesstatusregistre, som låsen Afbryder anmodninger; velskrevet kantdrevet afbrydelseshåndteringskode kan kontrollere disse registre for at sikre, at der ikke går glip af begivenheder.den ældre Industristandardarkitektur (ISA) bus bruger kantudløste afbrydelser uden at kræve, at enheder kan dele irk-linjer, men alle mainstream Isa-bundkort inkluderer pull-up modstande på deres irk-linjer, så velopdragen ISA-enheder, der deler irk-linjer, skal bare fungere fint. Den parallelle port bruger også kantudløste afbrydelser. Mange ældre enheder antager, at de har eksklusiv brug af irk-linjer, hvilket gør det elektrisk usikkert at dele dem.
der er 3 måder flere enheder “Deling af samme linje” kan hæves. Først er ved eksklusiv ledning (skift) eller eksklusiv forbindelse (til stifter). Næste er med bus (alle forbundet til den samme linje lytter): kort på en bus skal vide, hvornår de skal tale og ikke tale (dvs.ISA-bussen). Taler kan udløses på to måder: ved akkumuleringslås eller ved logiske porte. Logiske porte forventer en kontinuerlig datastrøm, der overvåges for nøglesignaler. Akkumulatorer udløses kun, når fjernsiden spænder porten ud over en tærskel, og der kræves derfor ingen forhandlet hastighed. Hver har sin hastighed versus afstand fordele. En trigger er generelt den metode, hvor ophidselse detekteres: stigende kant, faldende kant, tærskel (oscilloskop kan udløse en lang række former og betingelser).
udløsningen af programafbrydelser skal være indbygget i programmet (både i OS og app). En’ C ‘ – app har en triggertabel (en tabel med funktioner) i sin overskrift, som både appen og operativsystemet kender til og bruger korrekt, der ikke er relateret til udstyr. Du må dog ikke forveksle dette med maskinafbrydelser, der signalerer CPU ‘en (CPU’ en vedtager programmer fra en tabel med funktioner, på samme måde som programafbrydelser).
problemer med at dele interrupt linesEdit
flere enheder, der deler en interrupt line (af enhver udløsende stil) alle fungerer som falske interrupt kilder i forhold til hinanden. Med mange enheder på en linje vokser arbejdsbyrden i serviceafbrydelser i forhold til kvadratet af antallet af enheder. Det foretrækkes derfor at sprede enheder jævnt over de tilgængelige afbrydelseslinjer. Mangel på afbrydelseslinjer er et problem i ældre systemdesign, hvor afbrydelseslinjerne er forskellige fysiske ledere. Meddelelsessignalerede afbrydelser, hvor afbrydelseslinjen er virtuel, foretrækkes i nye systemarkitekturer (såsom PCI-Ekspress) og lindrer dette problem i betydelig grad.
nogle enheder med en dårligt designet programmeringsgrænseflade giver ingen måde at afgøre, om de har anmodet om service. De kan låse op eller på anden måde opføre sig forkert, hvis de serviceres, når de ikke ønsker det. Sådanne enheder kan ikke tolerere falske afbrydelser, og kan derfor heller ikke tolerere at dele en afbrydelseslinje. ISA-kort, på grund af ofte billigt design og konstruktion, er berygtede for dette problem. Sådanne enheder bliver meget sjældnere, da udstyrslogik bliver billigere, og nye systemarkitekturer kræver delbare afbrydelser.
HybridEdit
nogle systemer bruger en hybrid af niveau-udløst og kant-udløst signalering. Udstyret ser ikke kun efter en kant, men det verificerer også, at afbrydelsessignalet forbliver aktivt i en bestemt periode.
en almindelig anvendelse af en hybrid interrupt er for NMI (ikke-maskerbar interrupt) input. Fordi NMI ‘ er generelt signalerer større – eller endda katastrofale – systemhændelser, forsøger en god implementering af dette signal at sikre, at afbrydelsen er gyldig ved at kontrollere, at den forbliver aktiv i en periode. Denne 2-trins tilgang hjælper med at fjerne falske afbrydelser fra at påvirke systemet.
Message-signaledEdit
en message-signaled interrupt bruger ikke en fysisk interrupt linje. I stedet signalerer en enhed sin anmodning om service ved at sende en kort besked over nogle kommunikationsmedier, typisk en computerbus. Meddelelsen kan være af en type, der er forbeholdt afbrydelser, eller den kan være af en allerede eksisterende type, såsom en hukommelsesskrivning.
Meddelelsessignalerede afbrydelser opfører sig meget som kantudløste afbrydelser, idet afbrydelsen er et øjeblikkeligt signal snarere end en kontinuerlig tilstand. Interrupt-håndtering behandler de to på samme måde. Typisk har flere verserende meddelelsessignalerede afbrydelser med den samme meddelelse (den samme virtuelle afbrydelseslinje) lov til at flette, ligesom tæt placerede kantudløste afbrydelser kan flette.
Meddelelsessignalerede afbrydelsesvektorer kan deles, i det omfang det underliggende kommunikationsmedium kan deles. Der kræves ingen yderligere indsats.
da identiteten af afbrydelsen er angivet med et mønster af databit, der ikke kræver en separat fysisk leder, kan mange flere forskellige afbrydelser håndteres effektivt. Dette reducerer behovet for deling. Afbryd meddelelser kan også sendes over en seriel bus, der ikke kræver yderligere linjer.PCI-Ekspres, en seriel computerbus, bruger udelukkende meddelelsessignalerede afbrydelser.
DoorbellEdit
i en trykknapanalogi anvendt på computersystemer bruges udtrykket dørklokke eller dørklokkeafbrydelse ofte til at beskrive en mekanisme, hvorved et programmelsystem kan signalere eller underrette en computerudstyr om, at der er noget arbejde, der skal udføres. Typisk vil systemet placere data på nogle velkendte og gensidigt aftalte hukommelsessteder og” ringe på dørklokken ” ved at skrive til en anden hukommelsesplacering. Denne forskellige hukommelsesplacering kaldes ofte dørklokkeområdet, og der kan endda være flere dørklokker, der tjener forskellige formål i denne region. Det er denne handling at skrive til dørklokkeområdet i hukommelsen, der” ringer klokken ” og meddeler udstyrsenheden, at dataene er klar og venter. Enheden vil nu vide, at dataene er gyldige og kan håndteres. Det ville typisk skrive data til en harddisk, eller sende dem over et netværk, eller kryptere dem, etc.
udtrykket dørklokkeafbrydelse er normalt en misvisende betegnelse. Det ligner en afbrydelse, fordi det får noget arbejde til at udføres af enheden; dog implementeres dørklokkeområdet undertiden som en undersøgt region, undertiden skriver dørklokkeområdet igennem til fysiske enhedsregistre, og undertiden er dørklokkeområdet fastgjort direkte til fysiske enhedsregistre. Når du enten skriver igennem eller direkte til fysiske enhedsregistre, kan dette medføre, at der opstår en reel afbrydelse ved enhedens centrale processorenhed (CPU), hvis den har en.
dørklokkeafbrydelser kan sammenlignes med Meddelelsessignalerede afbrydelser, da de har nogle ligheder.
Multiprocessor IPIEdit
In multiprocessor systems, a processor may send an interrupt request to another processor via inter-processor interrupts (IPI).