Maybaygiare.org

Blog Network

Avbrott

avbrott kan implementeras i hårdvara som en distinkt komponent med kontrolllinjer, eller de kan integreras i minnesundersystemet.

om det implementeras i hårdvara som en distinkt komponent kan en avbrottskontrollkrets som IBM PC: s programmerbara Avbrottskontroller (PIC) anslutas mellan avbrottsenheten och processorns avbrottsstift för att multiplexa flera källor till avbrott på en eller två CPU-linjer som vanligtvis finns tillgängliga. Om de implementeras som en del av minneskontrollern mappas avbrott i systemets minnesadressutrymme.

delad IRQsEdit

flera enheter kan dela en kantutlöst avbrottslinje om de är utformade för att. Avbrottsledningen måste ha en pull-down eller pull-up motstånd så att när den inte aktivt drivs det lägger sig till sitt inaktiva tillstånd, vilket är standardtillståndet för det. Enheter signalerar ett avbrott genom att kort driva linjen till dess icke-standardläge och låta linjen flyta (kör inte aktivt) när den inte signalerar ett avbrott. Denna typ av anslutning kallas också öppen samlare. Linjen bär sedan alla pulser som genereras av alla enheter. (Detta är analogt med dragkabeln på vissa bussar och vagnar som alla passagerare kan dra för att signalera föraren att de begär ett stopp.) Avbrottspulser från olika enheter kan dock slås samman om de inträffar nära tiden. För att undvika att förlora avbrott CPU måste utlösa på bakkanten av pulsen (t.ex. den stigande kanten om linjen dras upp och drivs låg). Efter att ha upptäckt ett avbrott måste CPU kontrollera alla enheter för servicekrav.

Kantutlöst avbrott lider inte av de problem som nivåutlöst avbrott har med delning. Service av en lågprioriterad enhet kan skjutas upp godtyckligt, medan avbrott från högprioriterade enheter fortsätter att tas emot och få service. Om det finns en enhet som CPU inte vet hur man servar, vilket kan ge upphov till falska avbrott, kommer det inte att störa avbrottssignalering av andra enheter. Det är dock lätt att missa ett kantutlöst avbrott – till exempel när avbrott maskeras under en period-och om det inte finns någon typ av hårdvarulås som registrerar händelsen är det omöjligt att återställa. Detta problem orsakade många” låsningar ” i tidig datormaskinvara eftersom processorn inte visste att det förväntades göra något. Mer modern hårdvara har ofta ett eller flera avbrottsstatusregister som spärrar avbryter förfrågningar; välskriven kantdriven avbrottshanteringskod kan kontrollera dessa register för att säkerställa att inga händelser missas.den äldre Industry Standard Architecture (ISA) – bussen använder kantutlöst avbrott, utan att kräva att enheter kan dela IRQ-linjer, men alla vanliga Isa-moderkort inkluderar pull-up-motstånd på sina IRQ-linjer, så välskötta isa-enheter som delar IRQ-linjer borde bara fungera bra. Parallellporten använder också kantutlöst avbrott. Många äldre enheter antar att de har exklusiv användning av IRQ-linjer, vilket gör det elektriskt osäkert att dela dem.

det finns 3 sätt att flera enheter ”delar samma rad” kan höjas. Först är genom exklusiv ledning (växling) eller exklusiv anslutning (till stift). Nästa är med buss (alla anslutna till samma linje lyssnar): kort på en buss måste veta när de ska prata och inte prata (dvs ISA-bussen). Prata kan utlösas på två sätt: genom ackumulationsspärr eller genom logiska grindar. Logic gates förväntar sig ett kontinuerligt dataflöde som övervakas för nyckelsignaler. Ackumulatorer utlöses endast när fjärrsidan exciterar grinden över en tröskel, så ingen förhandlad hastighet krävs. Var och en har sin hastighet kontra avstånd fördelar. En utlösare är i allmänhet metoden där excitation detekteras: stigande kant, fallande kant, tröskel (oscilloskop kan utlösa en mängd olika former och förhållanden).

utlösare för programvaruavbrott måste vara inbyggda i programvaran (både i OS och app). En’ C ’ – app har en triggertabell (en tabell med funktioner) i huvudet, som både appen och operativsystemet känner till och använder på lämpligt sätt som inte är relaterad till hårdvara. Men förväxla inte detta med hårdvaruavbrott som signalerar CPU: n (CPU: n antar programvara från en funktionstabell, på samma sätt som programvaruavbrott).

svårigheter att dela avbrottraderredigera

flera enheter som delar en avbrottrad (av någon utlösande stil) fungerar alla som falska avbrottskällor med avseende på varandra. Med många enheter på en rad växer arbetsbelastningen vid serviceavbrott i proportion till kvadraten av antalet enheter. Det är därför föredraget att sprida enheter jämnt över de tillgängliga avbrottsledningarna. Brist på avbrottlinjer är ett problem i äldre systemdesigner där avbrottlinjerna är distinkta fysiska ledare. Meddelandesignalerade avbrott, där avbrottslinjen är virtuell, gynnas i nya systemarkitekturer (som PCI Express) och lindrar detta problem i stor utsträckning.

vissa enheter med ett dåligt utformat programmeringsgränssnitt ger inget sätt att avgöra om de har begärt service. De kan låsa upp eller på annat sätt missköter sig om servas när de inte vill ha det. Sådana anordningar kan inte tolerera falska avbrott, och kan därför inte tolerera att dela en avbrottlinje. ISA-kort, på grund av ofta billig design och konstruktion, är ökända för detta problem. Sådana enheter blir mycket sällsynta, eftersom hårdvarulogiken blir billigare och nya systemarkitekturer kräver delbara avbrott.

HybridEdit

vissa system använder en hybrid av nivåutlöst och kantutlöst signalering. Hårdvaran letar inte bara efter en kant utan verifierar också att avbrottssignalen förblir aktiv under en viss tidsperiod.

en vanlig användning av ett hybridavbrott är för nmi-ingången (icke-maskerbar avbrott). Eftersom NMIs i allmänhet signalerar stora – eller till och med katastrofala-systemhändelser, försöker en bra implementering av denna signal att säkerställa att avbrottet är giltigt genom att verifiera att det förblir aktivt under en tidsperiod. Detta 2-stegs tillvägagångssätt hjälper till att eliminera falska avbrott från att påverka systemet.

Meddelandesignalredigera

Huvudartikel: Meddelandesignalerade avbrott

ett meddelandesignalerat avbrott använder inte en fysisk avbrottslinje. Istället signalerar en enhet sin begäran om service genom att skicka ett kort meddelande över något kommunikationsmedium, vanligtvis en datorbuss. Meddelandet kan vara av en typ som är reserverad för avbrott, eller det kan vara av någon befintlig typ, till exempel en minnesskrivning.

Meddelandesignalerade avbrott beter sig mycket som kantutlöst avbrott, eftersom avbrottet är en tillfällig signal snarare än ett kontinuerligt tillstånd. Avbrottshanteringsprogramvara behandlar de två på ungefär samma sätt. Vanligtvis tillåts flera väntande meddelandesignalerade avbrott med samma meddelande (samma virtuella avbrottslinje) att slå samman, precis som nära åtskilda kantutlöst avbrott kan slå samman.

Meddelandesignalerade avbrottvektorer kan delas, i den utsträckning som det underliggande kommunikationsmediet kan delas. Ingen ytterligare ansträngning krävs.

eftersom avbrottets identitet indikeras av ett mönster av databitar, som inte kräver en separat fysisk ledare, kan många mer distinkta avbrott hanteras effektivt. Detta minskar behovet av delning. Avbrottsmeddelanden kan också skickas över en seriell buss, vilket inte kräver några ytterligare linjer.

PCI Express, en seriell datorbuss, använder uteslutande meddelandesignalerade avbrott.

DoorbellEdit

detta avsnitt citerar inga källor. Hjälp till att förbättra detta avsnitt genom att lägga till citat till tillförlitliga källor. Unsourced material kan ifrågasättas och tas bort. (December 2020) (lär dig hur och när du ska ta bort detta mallmeddelande)

i en tryckknappsanalog som tillämpas på datorsystem används termen dörrklocka eller dörrklockavbrott ofta för att beskriva en mekanism där ett mjukvarusystem kan signalera eller meddela en maskinvaruenhet att det finns något arbete att göra. Vanligtvis kommer mjukvarusystemet att placera data på några välkända och ömsesidigt överenskomna minnesplatser och” ringa på dörrklockan ” genom att skriva till en annan minnesplats. Denna olika minnesplats kallas ofta dörrklockregionen, och det kan till och med finnas flera dörrklockor som tjänar olika syften i denna region. Det är denna handling att skriva till dörrklockan i minnet som” ringer på klockan ” och meddelar maskinvaruenheten att data är redo och väntar. Hårdvaruenheten skulle nu veta att uppgifterna är giltiga och kan åtgärdas. Det skulle vanligtvis skriva data till en hårddisk, eller skicka dem över ett nätverk, eller kryptera dem, etc.

termen dörrklockavbrott är vanligtvis en felaktig benämning. Det liknar ett avbrott, eftersom det får en del arbete att utföras av enheten; dock implementeras dörrklockregionen ibland som en tillfrågad region, ibland skriver dörrklockregionen igenom till fysiska enhetsregister, och ibland är dörrklockregionen ansluten direkt till fysiska enhetsregister. När du antingen skriver igenom eller direkt till fysiska enhetsregister kan detta leda till att ett verkligt avbrott inträffar vid enhetens centrala processorenhet (CPU), om den har en.

dörrklockans avbrott kan jämföras med Meddelandesignalerade avbrott, eftersom de har vissa likheter.

Multiprocessor IPIEdit

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

Lämna ett svar

Din e-postadress kommer inte publiceras.