IRQ-konflikter. Avbryt konflikter To enheter i en irq hva du skal gjøre

En konflikt er en situasjon der flere objekter samtidig prøver å få tilgang til en ressurs som er ment for bare ett av dem. Avbruddsstrid oppstår når flere enheter bruker samme avbruddslinje for å sende et forespørselssignal, og det er ingen mekanisme for å håndtere konkurrerende forespørsler. Hvis sjåføren, når den mottar kontroll, ikke fungerer med enheten som sendte forespørselen, så oppstår enten en feil, eller en av enhetene fungerer rett og slett ikke.

Spørsmålet oppstår: kan flere enheter bruke samme avbruddslinje, eller er dette i utgangspunktet umulig? Tross alt, hvis sjåføren kan bestemme hvem nøyaktig forespørselen kom fra, vil den svare på signaler bare fra "sin" enhet, og ignorere alle andre. Men dette må avtales på en eller annen måte på forhånd, ellers er konflikt uunngåelig.

Den lokale PCI-bussen ble designet for å dele avbrudd. Hver PCI-enhet må fungere korrekt på samme avbruddslinje som andre PCI-enheter. Dette gjøres som følger: tilstedeværelsen av et signal på avbruddslinjen bestemmes ikke av kanten, dvs. en endring i spenningsnivået, men ved selve tilstedeværelsen av en viss spenning. Flere enheter kan endre spenningen i linjen samtidig, og stå i kø for service.

Dermed er deling av én IRQ av flere PCI-enheter ikke en konflikt per definisjon (fig.). Noen ganger oppstår det imidlertid fortsatt problemer. For det første fungerer ikke alle PCI-enheter riktig på samme avbruddslinje som andre. For det andre, noen ganger har drivere feil som hindrer dem i å oppdage signalkilden riktig, og forstyrrer andre drivere. For det tredje opererer ikke alle enheter på PCI-bussen; for eksempel kan ikke ISA-enheter, som inkluderer for eksempel COM/LPT-portkontrollere, dele avbrudd med andre.

Ris. Win2000 Device Manager IRQ Map - IO PIC Intel 440BX brikkesett

Ris. Win2000 IRQ MAP - IO APIC - Via KT266a brikkesett

Som et resultat er situasjoner mulig når datamaskinen begynner å fryse ofte, nekter å utføre noen funksjoner, eller til og med rett og slett faller inn i den såkalte "blue screen of death."

Apic (avansert programmerbar avbruddskontroller)

Som vist ovenfor er avbruddslinjen en svært knapp ressurs for en datamaskin. Men med utviklingen av dataindustrien øker antallet ulike eksterne enheter i en datamaskin stadig. For eksempel kan ett hovedkort ha 5-6 PCI-spor, et AGP-spor, en innebygd IDE-kontroller, en innebygd SCSI-kontroller, en innebygd 1/2-ports nettverksadapter osv. Og alle disse enhetene krever avbryter. 16 IRQ-linjer ble etter hvert ikke nok.

APIC er en avbruddskontroller som lar deg bruke 24 maskinvareavbrudd i stedet for 16. Grensen på 16 maskinvareavbrudd, som ikke har endret seg siden 1982, begrenset installasjonen av tilleggsenheter i en personlig datamaskin. På slutten av 2001 dukket de første hovedkortene med APIC opp.

Ris. Avbryte systemet i et multiprosessormiljø.

Den forrige beskrivelsen gjelder PIC-er designet for enkeltprosessorsystemer. Hvis systemet inkluderer to eller flere prosessorer, er denne tilnærmingen ikke lenger mulig, og mer komplekse PIC-er kreves.

Alle moderne x86-prosessorer inkluderer en lokal APIC. Hver lokale APIC har 32-bits registre, en intern klokke, en lokal tidtaker og to ekstra IRQ-linjer: LINT0 og LINT1, reservert for lokale APIC-avbrudd. Alle lokale APIC-er er koblet til en ekstern input/output APIC (I/O APIC).

I/O APIC inneholder et sett med 24 IRQ-linjer, en 24-inngangs avbruddsvideresendingstabell, programmerbare registre og en meldingsblokk for sending og mottak av meldinger på APIC-bussen. I motsetning til 8259A IRQ-pinnene, er avbruddsprioritet ikke knyttet til pinnenummeret.

Hver oppføring i avbruddsvideresendingstabellen kan programmeres individuelt for å gjenspeile avbruddsvektoren og dens prioritet, prosessoren som skal håndtere avbruddet, og hvordan den prosessoren vil bli valgt. Informasjonen i avbruddsvideresendingstabellen brukes til å oversette hvert eksternt signal til en melding adressert til en eller flere lokale APIC-er via APIC-bussen.

Statisk fordeling

IRQ-signalet leveres til den lokale APIC som er oppført i den aktuelleøringen. Avbruddet leveres til én spesifikk CPU, flere CPUer eller alle CPUer.

Dynamisk distribusjon

IRQ-signalet leveres til den lokale APIC-en til prosessoren som utfører prosessen med lavest prioritet.

Hver lokal APIC har et programmerbart jobbprioritetsregister, som brukes til å beregne prioriteten til den gjeldende prosessen. Intel antar at dette registeret vil bli modifisert av operativsystemkjernen hver gang en prosess bytter.

I tillegg til å distribuere avbrudd på tvers av multi-APIC-prosessorer, lar systemet CPUen generere interprosessoravbrudd. Når en CPU ønsker å sende et avbrudd til en annen CPU, lagrer den avbruddsvektoren og ID-en til den lokale APIC-en i sin lokale APICs Interrupt Command Register (ICR). Meldingen sendes deretter over APIC-bussen til den lokale mål-API-en, som sender det riktige avbruddet til CPU-en.

I dag inkluderer mange enkeltprosessorsystemer en I/O APIC-brikke, som kan konfigureres på to måter:

1. Som standard 8259A PIC koblet til CPU. Lokal APIC er deaktivert og to linjer LINT0 og LINT1 er konfigurert som INTR- og NMI-pinner.

2. Som standard ekstern I/O APIC. Lokal APIC er aktivert og alle eksterne avbrudd mottas via I/O APIC.

I denne artikkelen vil jeg gjerne snakke om det som kanskje aldri minner deg om deg selv, og som til og med kan koste nervene dine etter å ha satt sammen eller oppgradert en datamaskin: fryser, spontane omstarter, vedvarende motvilje mot å starte opp, konstant "blåskjermer av død", manglende evne til å oppdage enheter, feil arbeid... Listen fortsetter lenge. Svært ofte oppstår slike "feil" nettopp på grunn av avbrudd, og hvis du er interessert i datamaskiner, bør du definitivt vite hvor og hvorfor slike problemer oppstår, og sannsynligvis viktigst av alt, hvordan du skal håndtere dem.

Hva det er?

Interrupts eller IRQ (Interrupt Request) er signaler som forteller prosessoren at det er nødvendig å behandle en forespørsel mottatt fra en enhet, og kontrolleren for denne enheten sender disse signalene til prosessoren, det vil si ved hjelp av IRQ prosessoren reagerer på ulike hendelser.

Det skjer bare at når man utvikler en hvilken som helst teknologi, opprettes det noen begrensninger, ikke med vilje, selvfølgelig, men på grunn av en eller annen funksjon ved denne innovasjonen eller bare en mangel. Det samme skjedde med avbrudd. Til å begynne med, da IBM utviklet IBM PC-arkitekturen (allerede i 1980-81 av forrige årtusen), ble ikke så mange av dem lagt ned (8), så la de imidlertid til det samme antallet, og tok ett "gammelt" avbrudd under kontroll av de nye, men jeg vil ikke si at dette var nok. Og så sluttet IBM å være den eneste som jobbet på PC-plattformen, og for å unngå inkompatibilitet med andre, la ingen til flere avbrudd.

Hvilke problemer kan det være?

Da IBM PC-arkitekturen nettopp ble opprettet, ble det opprettet få avbrudd, bare åtte, som jeg allerede skrev, og de ble gitt til alle slags "tull", som COM-porter, selv om IBM-ingeniørene er rettferdiggjort av det faktum at det var ikke mye valg, de måtte lete etter det senere. Det er klart at ingen spådde en slik fremtid for plattformen, så for høydepunktet, det vil si muligheten for utvidelse, var det bare ett avbrudd igjen, som deretter ble okkupert av kontrolleren for den andre "åtte" IRQ. Det er imidlertid verdt å merke seg at ytterligere avbrudd kan (og kan) utløses ved å deaktivere de forskjellige ISA-enhetene som opptar dem: porter, diskettstasjoner. Så feil eller konflikter oppstår når flere enheter prøver å operere på samme avbrudd. Dette er veldig problematisk, fordi mange moderne enheter, spesielt lydkort og alle slags multimedieprosessorer, har flere enheter samtidig. Selv de enkleste "lydhøyttalerne" har minst fire enheter om bord. Slik ser et avbruddskart ut i en moderne datamaskin:

IRQ Beskrivelse
0 Timer
1 Tastatur
2 Kontroller IRQ 8-15
3 COM2
4 COM1
5 LPT2
6 FDD-kontroller
7 LPT1
8 Sanntidsklokke
9 Gratis
10 Gratis
11 Gratis
12 PS/2 (for mus)
13 Koprosessor
14 HDD-kontroller
15 HDD-kontroller

Så hva betyr dette? Kan du installere bare tre ekstra enheter på en moderne datamaskin? Etter tabellen å dømme, ja, men ikke alt er så skummelt. Har du for eksempel en LPT2-port? Jeg tviler veldig på det. Dette betyr at hvis det ikke er noen port, så er avbruddet gratis. Så teoretisk sett kan følgende avbrudd utløses:

IRQ Beskrivelse
3 Porten kan frigjøres ved å deaktivere den i BIOS. Jeg tror i de fleste tilfeller han allerede er fri.
4 Du kan også slå den av. Men det brukes mye oftere: mus, modemer, skannere.
5 Jeg har allerede skrevet om dette. Nesten alltid gratis.
6 Hvis du setter sammen en ny datamaskin, spesielt for hjemmet, er fordelene med den gode gamle flopperen mye mindre enn for et par år siden. Mange har allerede CD-RW-stasjoner. Mer plass, mer pålitelig, raskere, selv om det er for tidlig å begrave FDD... Floppen kan deaktiveres og frigjøre IRQ.
7 Hvis du har en USB-skriver, kan du begrave...
12 De fleste moderne datamaskiner har slike mus. Du kan installere en gnager på COM, men du vil blokkere et nytt avbrudd, du kan også kjøpe en mus på USB, men dette blir en manisk kamp for IRQ :)
14 Svak uten skrue? Selv om det teoretisk er mulig...
15 Selv om du bare har to IDE-enheter, er det bedre å skille dem i to forskjellige kanaler. Det vil fungere raskere. Men avbruddet kan frigjøres.

Det er allerede enklere. Men er dette nok? Jeg går inn i systemegenskaper (jeg har Windows XP Professional). Start -> Alle programmer -> Tilbehør -> Systemverktøy -> Systeminformasjon. Videre i programvinduet: Hardware resources -> Interrupts (IRQ). Dette er hva jeg ser der:

IRQ Beskrivelse
0 System timer
1 Standard (101/102 taster) eller PS/2 Microsoft Natural-tastatur
3 Seriell port (COM2)
4 Seriell port (COM1)
5 Conexant SoftK56 datafaks talehøyttalertelefon
5
5 VIA Rev 5 USB Universal Host Controller
6 Standard diskettkontroller
8 CMOS og klokke
9 Microsoft ACPI-kompatibelt system
10 Avance AC"97 Audio for VIA (R) lydkontroller
11 ATI RADEON VE DDR
12 PS/2-kompatibel mus
13 Numerisk databehandler
14 Primær IDE-kanal
15 Sekundær IDE-kanal

Spørsmålet er: hva gjør mitt interne modem, som forresten har flere enheter, på ett avbrudd (fra den manglende LPT2) med to USB-kontrollere samtidig? Her er hva.

En løsning er funnet

Det er begynnelsen av nittitallet. Systembussen (ISA - Industrial Standard Architecture), som opererte på prosessorfrekvensen, er allerede uttømt. Og alt fordi den normalt bare kunne overføre data med en frekvens på 8 MHz, noe som var nok for alle slags PC/XT/AT/286/386. Og en så avansert prosessor som 486 jobbet med en mye høyere frekvens. Jeg måtte bremse denne bussen, noe som hadde en negativ effekt på frekvensen. I 1989 ble det utviklet en 32-bit EISA-buss - Extended Industrial Standard Architecture, som opererte med en frekvens på 10 MHz, men dette var bare et forsøk på å lage en sykkel ut av en vogn, rett og slett korrigere ISA-feil. Rundt denne tiden skapte IBM MCA-bussen, som ikke fanget opp. VESA-bussen (eller VL-bussen) ble også laget, men den kunne bare fungere med Intel 486. Så i 1991, som et internt prosjekt, begynte Intel å utvikle en helt ny lokal PCI-buss - Personal Component Interconnect. Den ble utviklet, kan man si, fra bunnen av, og var ikke bare enda en patch til ISA, noe som ga den store fordeler. For eksempel opererte den med en fast frekvens på 33 MHz, pluss at prosessoren hadde sin egen høyhastighetsbuss, som gjorde at den kunne få tilgang til hurtigbufferen og RAM-en på den frekvensen den trengte, og ikke stole på de tekniske begrensningene til lokal buss. Den nye PCI-bussen kan bære en anstendig belastning: opptil ti spor. Alle videoadaptere er koblet til PCI, fordi AGP-bussen bare er en "påskrudd" PCI med høyere klokkefrekvens - 66 MHz. ISA-systembussen, som finnes på alle moderne datamaskiner i form av COM- og LPT-porter og disketter, er også koblet til den (via kontrolleren). Riktignok blir behovet for det mindre og mindre: flopp-stasjoner er inaktive på grunn av feilen til CD-R/RW, COM/LPT på grunn av feilen til USB... Så denne PCI-bussen, uten hvilken ikke en eneste moderne hovedkort kan gjøre, har blitt en løsning på problemet med avbrudd.

Som du vet, kan datamaskiner bare fungere med "1" og "0" eller "det er et signal" og "det er ikke noe signal." Hvis en ISA-enhet setter et "1"-signal på linjen, vil ikke kontrolleren svare på dem, uansett hvordan du setter enhetene dine til en annen enhet på samme linje. Når det gjelder PCI, kontrollerer kontrolleren signalkilden og behandler den først da. Dette lar deg plassere flere enheter på ett avbrudd. Teoretisk sett, ja, men husk at du ikke bør "henge" eldre og nyere enheter på samme IRQ-kanal. Det er også en oppfatning om at du ikke bør sette noe på samme avbrudd med lydkortet, feil kan dukke opp. Dette skjer selvfølgelig ikke alltid, men det er bedre å tenke på noe mer pålitelig.

Vi har kommet...

Du er en god person, du har ikke noe imot noe for datamaskinen din. Så du kjøpte det kuleste skjermkortet, skriveren, skanneren, profesjonell lyd, og forverret denne saken med et modem, nettverksadapter og til og med en TV-tuner. Det var der «feilene» startet. Uansett hvordan du bytter dem i sporene, fungerer ingenting, uansett hva. Hva å gjøre?

Innstillingsavbrudd fra BIOS

Så på hvilket grunnlag fordeles avbrudd? Når systemet starter opp, distribuerer BIOS avbrudd som følger: IRQ-linjene til alle enheter som støtter Plug"n"Play-teknologi, og disse er alle moderne enheter, mottar ett gratis avbrudd. Hvis avbruddene er over, men det fortsatt er avdekkede enheter, distribuerer BIOS dem i en andre runde, og det er derfor det viser seg at flere enheter fikk ett avbrudd. Alt vil fungere fantastisk hvis to PCI-enheter mottok ett avbrudd, men hva om PCI + ISA eller ISA + ISA? Det er det, konflikt. Vi må få tak i denne prosessen.

Deretter er det verdt å merke seg at jeg bruker et Epox 8K3AP hovedkort med Award BIOS 6.00PG. Den mest praktiske og logiske måten å konfigurere IRQ på er å tilordne dem manuelt. Gå til PCI/PnP-konfigurasjoner. Det er INT Pin n Assignment-innstillinger (dette er min, men du kan ha dette også), og navn som Slot n Use IRQ (jeg husker nøyaktig, det var sånn i Award BIOS v. 4.51 PG); PCI Slot n Priority eller noe sånt). Hvert element i denne menyen tilsvarer en av fire IRQ-linjer, så du kan tilordne et annet avbrudd til hver linje.

Det er en annen måte å tildele IRQ-er på. Gå til de samme PCI/PnP-konfigurasjonene, det er et IRQ-ressurselement (for å gå dit må du sette verdien av ressursen kontrollert av parameteren til Manuell), og dette er akkurat det vi trenger nå. Det vil være innstillinger for hvert mulig avbrudd. Jeg er ganske sikker på at alle tall vil ha et alternativ relatert til PCI-bussen, for eksempel PCI/ISA eller PCI-enhet, det avhenger av BIOS-versjonen din. Men vi trenger ett eller flere avbrudd for å forbli savnet, det vil si reservert for ISA-enheter. Så på avbruddet du vil forlate, setter du ganske enkelt en verdi som Legacy ISA. I mer moderne datamaskiner har alt blitt mye enklere på grunn av mangelen på ISA-spor, noe som betyr at du ikke kan legge til dine egne ISA-enheter, og selve systemet vil håndtere system, som f.eks en flopp eller serielle/parallelle porter. I slike systemer vises verdien Reservert i stedet for Legacy ISA-verdien, det vil si at du ganske enkelt kan la avbruddet være fri. Dette kan være nødvendig i et ganske teoretisk tilfelle, hvis du mottok en enhet som ikke støtter Plug"n"Play, vil BIOS ganske enkelt ikke se den.

Det er et annet nyttig element i samme meny. Informasjon om installert maskinvare lagres i ESCD (Extended System Configuration Data). Denne informasjonen kontrolleres hver gang før du får tilgang til harddisken for å starte operativsystemet. Naturligvis, når konfigurasjonen endres, oppdateres ESCD, og ​​når en oppdatering skjer, endres også IRQene. Hvis du setter alternativet Tilbakestill konfigurasjonsdata til aktivert, tilbakestilles ESCD neste gang du starter på nytt.

Award 6.00, som er BIOS som er installert på de fleste hovedkort, har en annen interessant "funksjon". Hvis du går til Power Management Setup "IRQ/Event Activity Detect" IRQs Activity Monitoring, så kan du konfigurere hvilke enheter som skal vekke datamaskinen ved hvilke avbrytelser. Der kan du også se gjeldende distribusjon av IRQ-numre, men du kan ikke alltid stole på dette, og her er grunnen:

Sette opp avbrudd fra Windows

Etter BIOS stikker Windows nesen inn i prosessen med å distribuere IRQ-numre. For at den skal gjøre alt riktig, selv om Windows ikke alltid forstyrrer denne prosessen, må du ALLTID ha de nyeste hovedkortdriverne. Dette er veldig viktig, spesielt hvis du har bygget/kjøpt en moderne datamaskin, med hovedkort på et nytt eller relativt nytt brikkesett og installert en slags Windows 98 på det hele... Personlig kjenner jeg mange som tenker noe sånt som dette: på hovedkortet mitt Det er ingen bjeller og plystre på brettet, alt er i henhold til standarden, det trengs ikke "ved"... Dette er helt feil. For at systemet skal fungere ordentlig, spesielt når avbrudd deles, må Windows gjenkjenne brikkesettet og laste inn IRQ-miniporten. Ikke glem å også installere ferske eller i det minste "innfødte" drivere for alle enheter, dette vil hjelpe systemet til å fungere riktig.

Hvis du bruker Windows 9x, for å finne ut om avbrudd er distribuert riktig eller for å korrigere dem, gå til systemegenskaper, for å gjøre dette, på Enheter-fanen, finn Systemenheter-rullingen og deretter PCI Bus. Hvis IRQ Miniport er lastet, er alt i orden. I Win 9x kan du reservere avbrudd, akkurat som i BIOS. I samme enhetsbehandling finner du Computer og kaller egenskapene. Men for å angi et spesifikt avbrudd for en bestemt enhet, må du gå til egenskapene og angi ønsket avbrudd på fanen Ressurser. Dessverre er dette bare mulig i Win 9x; i Win XP verken så etter eller fant jeg hvordan jeg kan avbryte den automatiske konfigurasjonen.

Hvis du bruker den nyere Win 2000 eller XP, som etter min mening er et mer fornuftig valg, kan du støte på noen problemer. Vet du hva ACPI (Advanced Configuration and Power Interface) er? Dette er et spesielt konfigurasjonsgrensesnitt. Den inneholder mye nyttig, men i Win 2K/XP kan det virkelig irritere deg. Spesielt hvis systemet har ISA-kort. På grunn av det distribuerer Windows alle PCI-enheter som er plassert i de samme kontaktene til ett avbrudd (det er derfor jeg har en USB med modem på IRQ 5, og resten på andre), vel, i det minste innholdet i AGP-sporet og AC "97-kodeken, de presset den ikke der ;). På grunn av dette, hvis du ikke deaktiverer ACPI i BIOS før du installerer Windows, vil du ikke kunne tildele IRQ-er på nytt. Jeg har allerede skrevet ovenfor hvordan du kan se deres distribusjon. Og for å endre situasjonen, må du deaktivere ACPI i BIOS (element ACPI-funksjoner i delen Power Management Setup) og endre datamaskinens enhetsdriver i Enhetsbehandling fra datamaskin med ACPI til standard datamaskin. Selv om jeg personlig vil ikke spesielt like å miste slike funksjoner som er direkte relatert til ACPI, som å automatisk slå av datamaskinen eller slå den på fra tastaturet. Noen ganger fungerer ikke denne metoden for å kansellere ACPI, så du må slå den av i BIOS og omorganiser Windows.

  • Alieva Elena Viktorovna, student
  • Ufa State Aviation Technical University
  • AVBRYT KONTROLLER
  • KONTROLLER
  • MASKINVAREN AVBRYTER
  • AVBRYTE

Avbrudd betyr midlertidig å stoppe hovedprosessen med databehandling for å utføre noen planlagte eller ikke-planlagte handlinger forårsaket av driften av maskinvare eller programvare. Avbruddsmekanismen støttes på maskinvarenivå. Maskinvareavbrudd oppstår som en reaksjon fra mikroprosessoren på et fysisk signal fra en eller annen enhet (tastatur, systemklokke, tastatur, harddisk, etc.); disse avbruddene er asynkrone når de oppstår, dvs. skje på tilfeldige tidspunkter. Avbruddskontrolleren er utformet for å behandle og arbitrere innkommende tjenesteforespørsler til sentralprosessoren fra perifere enheter. Avbrudd har en spesifikk prioritet, som lar avbruddskontrolleren gi preferanse til en enhet fremfor en annen på et gitt tidspunkt. I en moderne datamaskin er det opptil 16 eksterne og perifere enheter som genererer avbrudd.

  • Automatisering av dokumentflyt i et lager i en produksjonsbedrift
  • Samtaler teknologier, funksjoner, applikasjon og effektivitet
  • Utvikling av en modell av et informasjonssystem for juridisk avdeling for support og inngåelse av bedriftskontrakter

Introduksjon

Avbrudd betyr midlertidig å stoppe hovedprosessen med databehandling for å utføre noen planlagte eller ikke-planlagte handlinger forårsaket av driften av maskinvare eller programvare. De. Dette er en prosess som midlertidig bytter mikroprosessoren til å kjøre et annet program og deretter går tilbake til det avbrutt programmet. Ved å trykke på en tast på tastaturet starter vi en umiddelbar samtale til et program som gjenkjenner nøkkelen, skriver koden sin inn i tastaturbufferen, hvorfra den leses av et annet program. De. I noen tid avbryter mikroprosessoren kjøringen av det gjeldende programmet og bytter til avbruddsbehandlingsprogrammet, den såkalte avbruddsbehandleren. Etter at avbruddsbehandleren har fullført arbeidet, vil det avbrutte programmet fortsette kjøringen fra punktet der det ble suspendert. Adressen til avbruddsbehandlerprogrammet beregnes fra avbruddsvektortabellen.

Avbruddsmekanismen støttes på maskinvarenivå. Avhengig av kilden er avbrudd delt inn i:

  • maskinvare- oppstår som en reaksjon fra mikroprosessoren på et fysisk signal fra en eller annen enhet (tastatur, systemklokke, tastatur, harddisk, etc.), når det gjelder tidspunktet for forekomsten, er disse avbruddene asynkrone, dvs. oppstå tilfeldige tider;
  • programvare- kalles kunstig ved å bruke riktig kommando fra programmet (int), er ment å utføre visse handlinger av operativsystemet, og er synkrone;
  • unntak- er mikroprosessorens reaksjon på en ikke-standard situasjon som oppsto inne i mikroprosessoren under utførelsen av en programkommando (divisjon med null, avbrudd av TF-flagget (trace)).

Avbryt systemmaskinvare

Et avbruddssystem er et sett med programvare og maskinvare som implementerer avbruddsmekanismen.

Maskinvare for avbruddssystem inkluderer:

  • mikroprosessorpinner - de genererer signaler som varsler mikroprosessoren enten at en ekstern enhet "ber om oppmerksomhet" (INTR), eller at umiddelbar behandling av en hendelse eller katastrofal feil er nødvendig (NMI)
  • INTR - pinne for inngangssignal for avbruddsforespørsel,
  • NMI - pin for ikke-maskerbart avbruddsinngangssignal
  • INTA - pin for utgangssignalet som bekrefter mottak av et avbruddssignal av mikroprosessoren (dette signalet sendes til inngangen med samme navn på 8259A-kontrollerbrikken;
  • programmerbar avbruddskontroller 8259A (designet for å fange opp avbruddssignaler fra åtte forskjellige eksterne enheter; den er utformet som en mikrokrets; vanligvis brukes to seriekoblede mikrokretser, så antallet mulige kilder til eksterne avbrudd er opptil 15 pluss en ikke-maskerbar avbryte; det er denne som genererer avbruddsvektornummeret og sender ut databussen);
  • eksterne enheter (timer, tastatur, magnetiske disker, etc.)

Avbryt håndtering

Et avbrudd utløser en rekke hendelser som oppstår i både maskinvare og programvare. I fig. Figur 1 viser en typisk sekvens av disse hendelsene.

Etter at I/O-enheten slås av, skjer følgende:

  • Enheten sender et avbruddssignal til prosessoren.
  • Før den svarer på et avbrudd, må prosessoren fullføre utførelse av gjeldende instruksjon (se figur 1).
  • Prosessoren sjekker om det er et avbrudd, oppdager det og sender et vellykket mottakssignal til enheten som sendte avbruddet. Dette signalet lar enheten fjerne avbruddssignalet.
Figur 1. Programtidsdiagram: langsom I/O

Nå må prosessoren forberede seg på å overføre kontrollen til avbruddsbehandleren. Først må du lagre all viktig informasjon slik at du senere kan gå tilbake til stedet i gjeldende program der det ble suspendert. Minimumsinformasjonen som kreves er programstatusordet og adressen til neste instruksjon som skal utføres, som er plassert i programtelleren. Disse dataene skrives til systemkontrollstakken.

Figur 2. Håndtering av et enkelt avbrudd

Deretter blir inngangsadressen til avbruddshåndteringsprogrammet, som er ansvarlig for å behandle dette avbruddet, lastet inn i prosessorens programteller. Avhengig av arkitekturen til datamaskinen og operativsystemenheten, kan det enten være ett program for å behandle alle avbrudd, eller det kan være et eget behandlingsprogram for hver enhet og hver type avbrudd. Hvis det er flere programmer for å håndtere avbrudd, må prosessoren bestemme hvilket som skal ringes. Denne informasjonen kan være inneholdt i det opprinnelige avbruddssignalet; ellers, for å få den nødvendige informasjonen, må prosessoren spørre alle enheter etter tur for å finne ut hvilken som sendte avbruddet.

Så snart programtelleren er lastet med en ny verdi, går prosessoren videre til neste instruksjonssyklus og begynner å hente den fra minnet. Siden instruksjonen hentes fra en celle hvis nummer er spesifisert av innholdet i programtelleren, går kontrollen over til avbruddstjenesterutinen. Utførelse av dette programmet innebærer følgende operasjoner.

Innholdet i programtelleren og statusordet til det avbrutte programmet er allerede lagret på systemstabelen. Dette er imidlertid ikke all informasjonen som er relevant for tilstanden til det kjørende programmet. For eksempel må du lagre innholdet i prosessorregistrene, siden disse registrene kan være nødvendig av avbruddsbehandleren. Derfor er det nødvendig å lagre all informasjon om tilstanden til programmet. Vanligvis begynner en avbruddsbehandler sitt arbeid ved å skrive innholdet i alle registre på stabelen. Annen informasjon som må beholdes er omtalt i kapittel 3, Prosessbeskrivelse og kontroll. I fig. Det vises et enkelt eksempel hvor brukerprogrammet blir avbrutt etter å ha utført en instruksjon fra lokasjon N. Innholdet i alle registre, samt adressen til neste instruksjon (N+1), totalt M ord, skyves inn på stabelen . Stabelpekeren oppdateres deretter til å peke til den nye toppen av stabelen. Programtelleren oppdateres også, og indikerer starten på avbruddsrutinen.

Nå kan avbruddsbehandleren starte arbeidet. Avbruddshåndteringsprosessen innebærer å sjekke statusinformasjon relatert til I/O-operasjonene eller andre hendelser som forårsaket avbruddet. Dette kan også inkludere sending av tilleggsinstruksjoner eller varslingsmeldinger til I/O-enheter.

Etter at avbruddsbehandlingen er fullført, blir de tidligere lagrede verdiene poppet fra stabelen og skrevet tilbake til registrene, og gjenopptar dermed tilstanden de var i før avbruddet.

Det siste trinnet er gjenopprettingen av programtilstandsordet og innholdet i programtelleren fra stabelen. Som et resultat vil kommandoen til det avbrutte programmet bli utført neste gang.

Fordi et avbrudd ikke er en subrutine som kalles fra et program, er det viktig å beholde all tilstandsinformasjon for det avbrutt programmet for fullstendig gjenoppretting. Et avbrudd kan imidlertid oppstå når som helst og hvor som helst i brukerprogrammet. Denne hendelsen er uforutsigbar.

Avbryt kontrolleren

Avbruddskontrolleren er utformet for å behandle og arbitrere innkommende tjenesteforespørsler til sentralprosessoren fra perifere enheter. I analogi kan funksjonen til avbruddskontrolleren sammenlignes med sekretæren til en eller annen sjef. Sekretæren må bestemme hvem av de besøkende som får se sjefen først, og hvilke senere, basert på prioriteringer gitt av sjefen og statusen til den besøkende selv. På samme måte, i et datasystem, er en situasjon mulig når flere perifere enheter sender et avbruddssignal eller en avbruddsforespørsel. I datalitteratur er dette signalet betegnet IRQ (Interrupt Request).

Som nevnt ovenfor har avbrudd en viss prioritet, som lar avbruddskontrollere gi preferanse til en enhet fremfor en annen på et gitt tidspunkt. I en moderne datamaskin er det opptil 16 eksterne og perifere enheter som genererer avbrudd. Disse enhetene er:
–IRQ 0, systemtimer; –IRQ 1, tastatur; –IRQ 2, brukt for forespørsler fra enheter koblet i en kaskade; –IRQ 8, sanntidsklokke; –IRQ 9, reservert; –IRQ 10, reservert; –IRQ 11, reservert; –IRQ 12, ps/2–mus; –IRQ 13, koprosessor; –IRQ 14, harddiskkontroller; –IRQ 15, reservert; –IRQ 3, porter COM2, COM4; –IRQ 4, porter COM1,COM3; –IRQ 5, LPT2-port; –IRQ 6, diskstasjonskontroller; –IRQ 7, port LPT1, skriver.

Her er signalene listet opp i synkende prioritetsrekkefølge. Du kan legge merke til at etter IRQ 2 kommer IRQ 8. Faktum er at avbruddskontrolleren på et tidspunkt besto av to mikrokretser, den ene var koblet til den andre. Denne andre brikken er koblet til IRQ 2-linjen, og danner en kaskade. Den betjener linjene IRQ8–IRQ 15. Og så følger linjene til den første brikken.

Avbryt kontrolleren drift

Drift av avbruddskontrollere vurderes på grunnlag av Intel 8259A mikrokretser, som ble brukt i nå svært gamle datamaskiner med prosessorer opp til 386-serien. Disse datamaskinene hadde vanligvis 2 8259A-brikker koblet i kaskade, det vil si den ene til den andre. En av brikkene som er koblet via avbruddsforespørselslinjen direkte til prosessoren er master eller master. Resten, koblet til masteren gjennom lignende terminaler, kalles slaver.


Figur 3. Koblingsdiagram for avbruddskontroller og deres interaksjon med sentralprosessoren

Figur 3 viser et diagram over tilkoblingen av avbruddskontrollere og deres interaksjon med sentralprosessoren. Avbruddssignaler fra eksterne enheter eller slavekontrollere sendes til inngangene IR0–IR7 på masterkontrolleren. Hovedkontrollerens interne logikk behandler innkommende forespørsler med hensyn til prioritet. Hvis prioriteringen av enhetsforespørselen er tilstrekkelig, genererer INT-utgangen til kontrolleren et signal som går til INTR-inngangen til prosessoren. Ellers blokkeres forespørselen.

Hvis prosessoren tillater avbrudd, genererer den etter å ha fullført utførelsen av gjeldende instruksjon en sekvens av signaler via INTA-linjen, som setter slavekontrolleren i en tilstand av immunitet mot innkommende nye avbruddsforespørsler, og i tillegg informasjon fra kontrollerens interne registre sendes ut til datalinjen som prosessoren gjenkjenner avbruddstypen med.

Prosessoren sender avbruddstillatelse til avbruddskontrolleren gjennom busskontrolleren. RD-signalet er ment å få avbruddskontrolleren til å plassere innholdet i de interne registre på databussen. På WR-signalet mottar avbruddskontrolleren tvert imot data fra bussen med samme navn og skriver den til interne registre. Følgelig påvirker dette driftsmodusen til avbruddskontrolleren.

CS-inngangen er koblet til adressebussen og dette signalet brukes til å identifisere en spesifikk avbruddskontroller. Inngang A0 peker til avbruddskontrollerporten i I/O-rommet.

Inngangene IR0–IR7 er designet for å motta avbruddsforespørsler fra eksterne enheter og slavekontrollere.

Utganger CAS0–CAS2 er designet for å identifisere en spesifikk slavekontroller.

Artikkelen diskuterer maskinvareavbrudd og enhet, funksjoner, drift av avbruddskontrolleren. Denne avbruddskontrolleren dukket opp i de første PC-kompatible datamaskinene. Siden den gang har både prosessorer og selve datamaskinen endret seg på mange måter, selv om noen aspekter gjenstår. Derfor, for å gjøre det klarere, ble organiseringen av 8295A avbruddskontrolleren vurdert.

Diagrammet ovenfor viser signalene som kommer ikke bare til slave- og masteravbruddskontrollerne, men også til de gjenværende slavene. Imidlertid har datamaskinen eller den bærbare datamaskinen din faktisk 2 avbruddskontrollere, som nevnt ovenfor: en master og en slave. Men du kan lage dine egne datasystemer ved å bruke opptil 64 slaveavbruddskontrollere.

I moderne datamaskiner i lang tid avbryte kontrollerfunksjoner Det er ikke 8259A-brikkene som gjør det, men sørbroen. Men for alle programmer og enheter forblir alt det samme. I tillegg kan avbruddskontrolleren programmeres, og interne registre og porter må aksesseres på samme måte som 8259A-kontrolleren.

Konklusjon

I dette arbeidet ble avbrudd vurdert, nemlig maskinvareavbruddshåndtering og prinsippet om avbruddsbehandling. Avbruddskontrollere og prinsippet for deres drift er også diskutert.

Avbrudd betyr midlertidig å stoppe hovedprosessen med databehandling for å utføre noen planlagte eller ikke-planlagte handlinger forårsaket av driften av maskinvare eller programvare. Avbruddsmekanismen støttes på maskinvarenivå. Maskinvareavbrudd oppstår som en reaksjon fra mikroprosessoren på et fysisk signal fra en eller annen enhet (tastatur, systemklokke, tastatur, harddisk, etc.); disse avbruddene er asynkrone når de oppstår, dvs. skje på tilfeldige tidspunkter.

Avbryt kontrolleren designet for å behandle og arbitrere innkommende tjenesteforespørsler til sentralprosessoren fra eksterne enheter. Avbrudd har en bestemt prioritet, som tillater avbryte kontrolleren gi preferanse på et gitt tidspunkt til en enhet fremfor en annen. I en moderne datamaskin er det opptil 16 eksterne og perifere enheter som genererer avbrudd.

Bibliografi

  1. Foredrag. Avbryter. E-post Ressurs. http://hromatron.narod.ru/_lekcii/prerivania_lekcia_g2013.htm
  2. Systemavbrudd | Maskinvareavbrudd | Avbryt håndtering http://life-prog.ru/view_os.php?id=16
  3. Avbryt kontrolleren. E-post Ressurs http://sdelaycomputersam.ru/Controller_irq.php,
  4. Avbryter. Avbryt kontrolleren. Enhet, funksjoner, drift. E-post Ressurs http://sdelaycomputersam.ru/Controller_irq.php
  5. Struktur og initialisering av Intel 8259A avbruddskontrolleren El. ressurs https://dev64.wordpress.com/2012/05/30/8259-programming/

Avbrudd er delt inn i maskinvare (maskerbar og ikke-maskerbar) og programvare. Programvareavbrudd er faktisk ikke avbrudd; de er en måte å kalle visse prosedyrer. Men prosessoren behandler programvareavbrudd som en av typene avbrudd.

Noe som i følge PCI-spesifikasjoner alle PCI-kort skal kunne, men som i realiteten svært sjelden er implementert, kalles «IRQ-Sharing». I teorien betyr dette at flere komponenter må dele samme IRQ. Men siden få PCI-kort kommuniserer så harmonisk med hverandre, tildeler Windows 9x hvert kort, så langt det er mulig, sin egen IRQ. Kompleksiteten ved å konfigurere systemressurser, deres fordeling mellom nettverk og lydkort, 3D-akseleratorer, standard serielle og parallelle enheter, og nå video- og DVD-dekodere svekkes gradvis med masseintroduksjonen av USB-bussen, eller mer presist, massedistribusjonen av USB-tilbehør. Riktignok opptar selve USB-bussen en IRQ. Men hun må inkludere alle perifere enheter, det være seg en mus, tastatur, skanner eller videokamera, inn i systemet uten ytterligere ressurser.

Et annet begrep. "Polling-modus" - drift av enheten uten bruk av avbrudd. Dette skjer når du arbeider med enkle SCSI-kontrollere på ISA-bussen.

Enhet

Kommentarer

System timer

Systemavbrudd. Generert 91 ganger på 5 sekunder. Den har blitt brukt i denne kapasiteten siden den første PC-en.

Tastatur

Systemavbrudd generert av tastaturkontrolleren.

Avbryt kontrolleren

Kaskadert (koblet) til IRQ9. Det kan oppstå konflikter når forskjellige enheter må kjøres på IRQ2 og IRQ9 samtidig. Bruken av systemet er bevart for kompatibilitet.

Brukes av den andre kommunikasjonsadapteren (UART2). Hvilken enhet vil generere den? Dette kan være en andre seriell port COM2 (integrert på hovedkortet), et internt modem konfigurert for COM2 eller COM4, ​​eller en infrarød adapter. Du kan deaktivere UART2, men du vil ikke kunne tilordne IRQ3 til noe. Deler samme IRQ3 med COM4 (hvis sistnevnte er til stede). Det kan oppstå en konflikt hvis den brukes samtidig.

Enhet

Kommentarer

Brukes av den første kommunikasjonsadapteren. Alt er nesten identisk: generert av den første serielle porten COM1, modem på COM1 eller COM3 (bortsett fra infraporten). Deler samme IRQ4 med COM3 (hvis sistnevnte er til stede). På systemer med en mus koblet til COM1, skal COM3 ikke brukes.

gratis

Avbruddet var opprinnelig ment å brukes av den andre parallellporten LPT2. Denne løsningen fant ingen praktisk anvendelse, så IRQ5 ble fri programvare. I IBM XT hang harddisken på IRQ5. Etter en tid fant Creative Labs, som laget Sound Blaster Pro-lydkortet, bruk for avbrudd. Siden den gang har IRQ5 blitt favoritten for de fleste ISA-lydkort. PCI-lydkort bruker også noen ganger dette avbruddet for "SB Pro"-emulering. IRQ5 kan tilordnes til et PCI-spor.

Enhet

Kommentarer

FDD-stasjonskontroller

Avbruddet har blitt brukt av diskettstasjonskontrolleren siden de første PC-ene. Imidlertid kan avbruddet fortsatt ikke brukes: ISA-kort er ikke laget for å fungere med det, og det kan ikke tilordnes et PCI-spor.

Som standard er det første parallellportavbruddet LPT1. Når porten er deaktivert (hvis skriveren mangler eller er designet for USB), kan den brukes av ulike enheter: nettverk, ISDN-kort. Dette er også et "reserve" sted for lydkort.

Sanntidsklokke (RTC)

Systemavbrudd siden den første IBM AT.

gratis

Kaskadert med IRQ2. Ellers kan den brukes etter eget skjønn.

gratis

Kan brukes etter skjønn. Legacy IDE-kontrollere på eldre lydkort bruker noen ganger denne IRQ.

Enhet

Systemprosesser, som vanlige databrukere ofte ikke har noen formening om, kan svært ofte forårsake økt belastning på datamaskinens dataressurser. Disse inkluderer spesielt de såkalte systemavbruddene. De fleste vet ikke hva dette er og prøver ofte å slå av denne tjenesten direkte i "Task Manager", der CPU- og RAM-belastningen vises. Ser man litt fremover skal det sies at man ikke under noen omstendigheter skal drive med slike ting. Men hvordan bringe systemet til live? Det foreslås å snakke om dette mer detaljert, spesielt siden når man vurderer hovedproblemet, kan det også dukke opp andre problemer underveis knyttet til feil funksjon av maskinvarekomponenter, selve Windows-operativsystemene og programvaren installert i deres miljø. Men først ting først.

hva det er?

Før du tar noen feilsøkingstrinn, bør du finne ut hva denne systemkomponenten er. I "Task Manager" er prosessen "System Interrupts", som kjører konstant, ansvarlig for at den fungerer.

Men hva er det? Uten å gå inn på tekniske detaljer og si hva de er, kan systemavbrudd sammenlignes med en slags lakmustest eller indikator som signaliserer at noe utstyr ikke fungerer i systemet. I tillegg kan en økning i belastningen på ressurser også være assosiert med inkompatibilitet mellom programvaren og maskinvaren til datamaskinen. I normal tilstand overstiger belastningen på prosessoren fra denne prosessen vanligvis ikke fem prosent eller litt mer, noe som er nok til å diagnostisere alle for øyeblikket brukte "maskinvare"-enheter for riktig funksjon. Hvis belastningen øker over den angitte grensen, det er presserende nødvendig å identifisere årsaken og eliminere problemer med utstyr.

Hvordan det fungerer: den enkleste forklaringen

Men la oss se på hvilke systemavbrudd som er i Windows 7 eller andre modifikasjoner ved å bruke et enkelt eksempel. Det bør umiddelbart bemerkes at i forhold til programvare, er driften av denne komponenten assosiert med ikke-kjørbare programelementer som kan lastes inn for eksempel i RAM (dynamiske biblioteker, enhetsdrivere, etc.).

Anta at du har et moderne spill installert på datamaskinen din, men skjermkortet oppfyller bare minimumskravene til systemet, eller at konfigurasjonen er under denne terskelen. Hvis grafikkbrikken ikke kan takle prosessering av programvarekomponenter, noe som fører til økt belastning på den, er systemavbrudd involvert. På grunn av dem blir kommandobehandlingen omdirigert til den sentrale prosessoren, som prøver å hjelpe skjermkortet med å takle det økte antallet forespørsler. Følgelig observeres en økning i belastningen på den delen av den beskrevne prosessen i "Task Manager". Og ofte fører forekomsten av slike situasjoner ikke bare til at hele systemet fryser, men til og med til utseendet på blå skjermer. Det samme gjelder når utstyr begynner å svikte. Dessverre, hvis "maskinvare"-komponentene i systemet går i stykker, kan alt dette like mye gjelde for noen av dem (for eksempel går en harddisk i stykker, RAM-strimler svikter, etc.).

Systemavbrudd laster prosessoren: hva skal jeg gjøre først?

Basert på den ovennevnte teoretiske informasjonen, la oss gå videre til praktiske tiltak som kan eliminere nye problemer og rette opp slike situasjoner. Hva skal jeg gjøre først? Hvor rart det kan høres ut, noen ganger er det nok å utføre en enkel omstart, som lar deg deaktivere alle tredjeparts programvarekomponenter. Men når du starter et program på nytt, kan situasjonen gjenta seg. I dette tilfellet bør du umiddelbart sjekke statusen til driverne ved hjelp av Enhetsbehandling. Det er godt mulig at konflikten mellom programvare- og maskinvaredelene nettopp ble provosert av dem.

Hvis mulig, installer kontrollprogramvare for problematiske enheter, som kan være merket med en gul trekant med et utropstegn i Manager, og oppdater drivere for alt annet utstyr ved hjelp av automatiserte verktøy som Driver Booster.

Spore laster ved hjelp av et spesielt verktøy

Hvis installasjon og oppdatering av drivere ikke gir ønsket resultat, må du bruke andre metoder. Akk, det er ingen slike verktøy i verktøysettet til Windows-systemer.

Derfor, hvis det blir lagt merke til at systemavbrudd laster ressurser, anbefaler de fleste eksperter å bruke et lite program kalt DPC Latency Checker, som presenteres i bærbar form og ikke krever installasjon på en PC. I den er det første du må gjøre å aktivere skanning, hvoretter skanneresultatene vil gi anbefalinger for feilsøking. Imidlertid er de oftest bare forbundet med fullføringen av noen prosesser som tilsvarer både programmene og utstyret som er i bruk, eller det vil bli gitt en anbefaling om å kontakte "Enhetsbehandling". Men dette er hva vi trenger å bruke, og lar diagnoseverktøyet være aktivt som et slags middel for å endre lastsporing. Ikke forveksle belastningene som vises i dette programmet med de som er synlige i Oppgavebehandling.

Deaktivering av komponenter i Enhetsbehandling

Når det gjelder denne delen av utstyrsadministrasjon, koker essensen av feilsøking ned til sekvensiell frakobling av enhetene som er installert i systemet og deretter sjekke belastningene med det ovennevnte verktøyet.

Vær oppmerksom på at det er strengt forbudt å deaktivere utstyret som er presentert i delene "Datamaskin", "Prosessorer" og "Systemenheter", da slike handlinger kan føre til uautorisert avslutning og omstart av datamaskinen. Bra, hele operativsystemet vil også mislykkes.

For de resterende komponentene, som tidligere har aktivert visning av skjulte enheter i visningsmenyen, bør hver komponent deaktiveres gjennom RMB-menyen, og deretter skal diagnostikken aktiveres på nytt i lastsporingsprogrammet. Når testresultatene viser at etter deaktivering av en enhet, synker belastningen til det normale, og det blir klart at denne spesielle komponenten er defekt. Hvis det ikke hjelper å installere driveren på nytt, må enheten byttes ut.

Hva skal jeg gjøre hvis belastningsproblemet vedvarer?

Men hva er det? Systemavbrudd gir fortsatt økt belastning på prosessoren. Hva annet kunne ha påvirket forekomsten av en slik situasjon? Av en eller annen grunn (og dette er sant), sies i de fleste tilfeller årsaken til denne systematferden å være et problem med utdatert eller innebygd lydutstyr på hovedkortet, som forbedrede lydeffekter er involvert for.

Alternativt, i lydinnstillingene med Windows, deaktiver dette elementet, som automatisk vil deaktivere alle installerte effekter. Vær oppmerksom på at de er av en programvaretype, ikke en maskinvaretype, så deaktivering av hovedenheten har kanskje ingen effekt.

Problemer med primære I/O-systemer

Til slutt utelukker mange eksperter ikke forekomsten av problemer i driften av de primære BIOS/UEFI-systemene, som kan være assosiert med foreldelse av den originale fastvaren. I dette tilfellet kan det hende at nytt og mer moderne utstyr ikke blir oppdaget riktig. Som allerede er klart, vil løsningen være å laste ned og installere fastvareoppdateringen. Men hvis du kan kjøre slike prosesser for UEFI direkte i et operativsystem som kjører, bør du være ekstremt forsiktig med eksperimenter i BIOS. Upassende fastvare eller feil installasjon kan føre til at hele datasystemet slutter å fungere.

Kort oppsummering

Det handler om å avbryte systemanrop i et nøtteskall. Basert på det foregående, anbefales det å løse nye problemer ved å bruke det spesifiserte diagnoseprogrammet med sekvensiell avstenging av utstyret. Om nødvendig må defekte komponenter skiftes ut. Som et ekstra verktøy som kan brukes til å identifisere problemer med RAM-pinner, er det tilrådelig å bruke Memtest86+-verktøyet, men uten nødvendig kunnskap vil det ikke være til nytte.