CPU, som er hjernen til datamaskinen, er ansvarlig for å utføre instruksjoner og administrere dataflyt. Det sjekker stadig etter feil, og når det oppdages, genererer det vanligvis et unntak eller et avbrudd. Disse feilene kan kategoriseres i flere typer:
1. Aritmetiske feil:
* Divisjon med null: Forsøker å dele et tall med null. Dette er matematisk udefinert og kan føre til uventede resultater.
* overløp: Resultat av en aritmetisk operasjon som overstiger den maksimale verdien som er representert av datatypen.
* Underflow: Resultat av en aritmetisk operasjon som går under minimumsverdien som er representert med datatypen.
* flytende punktfeil: Feil som oppstår under flytende punkt aritmetiske operasjoner, for eksempel presisjonstap, avrundingsfeil og NAN (ikke et tall).
2. Minnefeil:
* Sidefeil: Prøver å få tilgang til minne som for øyeblikket ikke er kartlagt til prosessens adresseområde. Dette skjer ofte når programmet prøver å få tilgang til minne som ikke blir tildelt det, eller når operativsystemet trenger å bytte ut sider for å gi plass til andre prosesser.
* Bussfeil: Problemer med dataoverføringen mellom CPU og minnet. Disse kan være forårsaket av feil minnemoduler, feil minneinnstillinger eller til og med fysisk skade på hovedkortet.
* cache -feil: Problemer med CPUs interne cache -minne. Dette kan skyldes defekte hurtigbuffermoduler eller programvarefeil som fører til feil hurtigbufferstyring.
3. Instruksjonsfeil:
* Ulovlig instruksjon: Forsøker å utføre en instruksjon som ikke blir gjenkjent av CPU. Dette skjer ofte når du prøver å kjøre programvare designet for en annen prosessorarkitektur.
* Ugyldig opcode: Et forsøk på å utføre en instruksjon med en ugyldig opcode (driftskode).
4. Andre feil:
* Justeringsfeil: Forsøker å få tilgang til minne på en adresse som ikke er tilpasset den nødvendige grensen. Dette kan være forårsaket av programvarefeil eller maskinvareproblemer.
* Datafeil: Feil oppdaget under dataoverføring, som ødelagte data eller paritetsfeil.
5. Sikkerhetsfeil:
* Privilege brudd: Forsøk på å få tilgang til beskyttede systemressurser eller utføre privilegerte instruksjoner uten de nødvendige tillatelsene.
Viktige merknader:
* De spesifikke typene feil som er oppdaget av en CPU kan variere avhengig av prosessorarkitektur og operativsystem.
* CPUs feilhåndteringsmekanisme er også forskjellig avhengig av prosessorarkitektur. Noen prosessorer har innebygde feildeteksjons- og korreksjonsmekanismer, mens andre er avhengige av operativsystemet for å håndtere disse situasjonene.
* unntakshåndtering: Når en CPU møter en feil, genererer den vanligvis et unntak. Dette er et signal som avbryter den normale strømmen av programmet og lar operativsystemet eller en spesiell unntaksbehandler ta kontroll.
Det er viktig å merke seg at dette bare er noen få vanlige eksempler. CPU kan oppdage og håndtere et bredt spekter av feil avhengig av den spesifikke implementerings- og maskinvarekomponentene involvert.