Maybaygiare.org

Blog Network

Interrupt

Interrupts kunnen in hardware worden geïmplementeerd als een afzonderlijk onderdeel met besturingslijnen, of ze kunnen in het geheugensubsysteem worden geïntegreerd.

indien geà mplementeerd in hardware als een afzonderlijke component, kan een interrupt controller circuit zoals de programmable Interrupt Controller (PIC) van de IBM PC worden aangesloten tussen het interrupt apparaat en de interrupt pin van de processor om meerdere bronnen van interrupt te multiplex op de één of twee CPU lijnen die gewoonlijk beschikbaar zijn. Indien geà mplementeerd als onderdeel van de geheugencontroller, worden interrupts toegewezen aan de geheugenadresruimte van het systeem.

gedeelde IRQsEdit

meerdere apparaten kunnen een door de rand getriggerde interruptregel delen als ze daarvoor ontworpen zijn. De interruptlijn moet een pull-down of pull-up weerstand hebben, zodat wanneer deze niet actief wordt aangedreven, deze zich settelt tot zijn inactieve toestand, wat de standaardtoestand is. Apparaten signaleren een interrupt door de lijn kort naar de niet-standaardstatus te rijden en de lijn te laten zweven (niet actief rijden) wanneer een interrupt niet wordt gesignaleerd. Dit type verbinding wordt ook wel open collector genoemd. De lijn draagt dan alle pulsen die door alle apparaten worden gegenereerd. (Dit is analoog aan het trekkoord op sommige bussen en trolleys dat elke passagier kan trekken om de bestuurder aan te geven dat ze een stop aanvragen. Interruptpulsen van verschillende apparaten kunnen echter samenvoegen als ze dichtbij in de tijd voorkomen. Om te voorkomen dat onderbrekingen verloren gaan, moet de CPU triggeren op de achterrand van de puls (bijvoorbeeld de stijgende rand als de lijn omhoog wordt getrokken en laag wordt gedreven). Na het detecteren van een interrupt moet de CPU alle apparaten controleren op servicevereisten.

edge-triggered interrupts hebben niet de problemen die level-triggered interrupts hebben met delen. Service van een apparaat met lage prioriteit kan willekeurig worden uitgesteld, terwijl onderbrekingen van apparaten met hoge prioriteit blijven worden ontvangen en worden onderhouden. Als er een apparaat is dat de CPU niet weet hoe te onderhouden, die valse interrupts kan verhogen, zal het niet interfereren met interrupt signalering van andere apparaten. Echter, het is gemakkelijk voor een rand-triggered interrupt te worden gemist-bijvoorbeeld, wanneer interrupts worden gemaskeerd voor een periode – en tenzij er een soort van hardware vergrendeling die de gebeurtenis opneemt is het onmogelijk om te herstellen. Dit probleem veroorzaakte veel “lockups” in de vroege computer hardware, omdat de processor niet wist dat het werd verwacht om iets te doen. Meer moderne hardware heeft vaak een of meer interrupt status registers die grendel interrupt Verzoeken; goed geschreven edge-driven interrupt handling code kan deze registers controleren om ervoor te zorgen dat er geen gebeurtenissen worden gemist.

de ISA-bus (elderly Industry Standard Architecture) gebruikt door randgestuurde interrupts, zonder te eisen dat apparaten IRQ-lijnen kunnen delen, maar alle mainstream Isa-moederborden bevatten pull-up weerstanden op hun IRQ-lijnen, dus goed opgevoede ISA-apparaten die IRQ-lijnen delen zouden prima moeten werken. De parallelle poort maakt ook gebruik van randgestuurde interrupts. Veel oudere apparaten gaan ervan uit dat ze exclusief gebruik maken van IRQ-lijnen, waardoor het elektrisch onveilig is om ze te delen.

Er zijn 3 manieren waarop meerdere apparaten “dezelfde lijn delen” kunnen worden verhoogd. Ten eerste door exclusieve geleiding (schakelen) of exclusieve verbinding (naar pinnen). Vervolgens is met de bus (allemaal verbonden met dezelfde lijn luisteren): kaarten op een bus moeten weten wanneer ze moeten praten en niet praten (dwz, de ISA bus). Praten kan op twee manieren worden geactiveerd: door accumulatie vergrendeling of door logische poorten. Logic gates verwacht een continue datastroom die wordt gemonitord voor belangrijke signalen. Accu ‘ s activeren alleen wanneer de externe kant de poort boven een drempel opheft, dus is er geen overeengekomen snelheid vereist. Elk heeft zijn snelheid versus afstand voordelen. Een trigger, in het algemeen, is de methode waarin excitatie wordt gedetecteerd: stijgende rand, dalende rand, drempel (oscilloscoop kan leiden tot een breed scala van vormen en voorwaarden).

Triggering voor softwareonderbrekingen moet in de software ingebouwd zijn (zowel in OS als app). Een’ C ‘ app heeft een trigger table (een tabel met functies) in de header, die zowel de app en OS kennen en op de juiste wijze gebruiken dat is niet gerelateerd aan hardware. Verwar dit echter niet met hardwareonderbrekingen die de CPU signaleren (de CPU enacteert software van een lijst van functies, vergelijkbaar met softwareonderbrekingen).

moeite met het delen van interrupt-regeledit

meerdere apparaten die een interrupt-regel delen (met een triggerstijl) fungeren allemaal als onechte interrupt-bronnen ten opzichte van elkaar. Met veel apparaten op één lijn neemt de werkbelasting bij het onderhoud van onderbrekingen toe in verhouding tot het kwadraat van het aantal apparaten. Het verdient daarom de voorkeur om apparaten gelijkmatig over de beschikbare interruptlijnen te spreiden. Tekort aan interruptlijnen is een probleem in oudere systeemontwerpen waar de interruptlijnen verschillende fysieke geleiders zijn. Message-signaled interrupts, waarbij de interrupt regel virtueel is, zijn favoriet in nieuwe systeemarchitecturen (zoals PCI Express) en verlichten dit probleem voor een aanzienlijke mate.

sommige apparaten met een slecht ontworpen programmeerinterface bieden geen manier om te bepalen of ze service hebben aangevraagd. Ze kunnen afsluiten of zich anderszins misdragen als ze het niet willen onderhouden. Dergelijke apparaten kunnen niet tolereren valse interrupts, en dus ook niet tolereren het delen van een interrupt lijn. ISA kaarten, als gevolg van vaak goedkope ontwerp en constructie, zijn berucht voor dit probleem. Dergelijke apparaten worden steeds zeldzamer, als hardware logica wordt goedkoper en nieuwe systeemarchitecturen mandaat Deelbare interrupts.

HybridEdit

sommige systemen gebruiken een hybride van niveau-getriggerde en rand-getriggerde signalering. De hardware zoekt niet alleen naar een rand, maar controleert ook of het interruptsignaal gedurende een bepaalde periode actief blijft.

een hybride interrupt wordt vaak gebruikt voor de NMI-ingang (niet-maskable interrupt). Omdat NMIs over het algemeen belangrijke – of zelfs catastrofale – systeemgebeurtenissen signaleren, probeert een goede implementatie van dit signaal ervoor te zorgen dat de interrupt geldig is door te verifiëren dat deze gedurende een bepaalde periode actief blijft. Deze 2-stap benadering helpt om valse interrupts te elimineren van invloed op het systeem.

Message-signaledEdit

hoofdartikel: Message Signaled Interrupts

Een message-signaled interrupt Gebruikt geen fysieke interruptregel. In plaats daarvan signaleert een apparaat zijn verzoek om service door een kort bericht te versturen via een communicatiemedium, meestal een computerbus. Het bericht kan van een type zijn dat gereserveerd is voor interrupts, of het kan van een reeds bestaand type zijn, zoals een memory write.

message-signaled interrupts gedragen zich zeer veel als edge-triggered interrupts, in die zin dat de interrupts een kortstondig signaal is in plaats van een continue conditie. Interrupt-handling software behandelt de twee op vrijwel dezelfde manier. Typisch, meerdere wachtende bericht-signaleerde interrupts met hetzelfde bericht (dezelfde virtuele interrupt lijn) worden toegestaan om samen te voegen, net zo dicht spaced rand-getriggerde interrupts kunnen samenvoegen.

berichtgesignaleerde interruptvectoren kunnen worden gedeeld, voor zover het onderliggende communicatiemedium kan worden gedeeld. Er is geen extra inspanning nodig.

omdat de identiteit van de interrupt wordt aangegeven door een patroon van gegevensbits, waarvoor geen aparte fysieke geleider nodig is, kunnen veel meer verschillende interrupts efficiënt worden afgehandeld. Dit vermindert de behoefte aan delen. Interruptberichten kunnen ook worden doorgegeven via een seriële bus, zonder extra regels.

PCI Express, een seriële computerbus, gebruikt alleen berichtgesigneerde interrupts.

DoorbellEdit

in deze sectie worden geen bronnen genoemd. Help deze sectie te verbeteren door citaten toe te voegen aan betrouwbare bronnen. Ongesourced materiaal kan worden uitgedaagd en verwijderd. (December 2020) (leer hoe en wanneer dit sjabloonbericht moet worden verwijderd)

in een drukknop-analogie die wordt toegepast op computersystemen, wordt de term deurbel of deurbelonderbreking vaak gebruikt om een mechanisme te beschrijven waarbij een softwaresysteem een computerhardware kan signaleren of melden dat er werk aan de winkel is. Meestal zal het software systeem gegevens plaatsen in een aantal bekende en onderling overeengekomen geheugenlocaties, en” aanbellen ” door te schrijven naar een andere geheugenlocatie. Deze verschillende geheugenlocatie wordt vaak de deurbel regio genoemd, en er kunnen zelfs meerdere deurbellen zijn die verschillende doeleinden dienen in deze regio. Het is deze handeling van het schrijven naar de deurbel gebied van het geheugen dat “rinkelt de bel” en waarschuwt het hardware-apparaat dat de gegevens klaar zijn en wachten. Het hardwareapparaat zou nu weten dat de gegevens geldig zijn en kunnen worden gehandeld. Het zou meestal schrijven de gegevens naar een harde schijf, of stuur ze over een netwerk, of versleutelen, enz.

De term deurbel interrupt is meestal een verkeerde benaming. Het is vergelijkbaar met een interrupt, omdat het ervoor zorgt dat er wat werk wordt gedaan door het apparaat; echter, het gebied van de deurbel wordt soms geïmplementeerd als een ondervraaggebied, soms schrijft het gebied van de deurbel door naar fysieke apparaatregisters, en soms wordt het gebied van de deurbel rechtstreeks verbonden met fysieke apparaatregisters. Bij het schrijven door of rechtstreeks naar fysieke apparaatregisters, kan dit een echte interrupt veroorzaken bij de centrale processoreenheid (CPU) van het apparaat, als het er een heeft.

deurbel interrupts kunnen worden vergeleken met Berichtgesigneerde Interrupts, omdat ze enige overeenkomsten hebben.

Multiprocessor IPIEdit

In multiprocessor systems, a processor may send an interrupt request to another processor via inter-processor interrupts (IPI).

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.