CPU'en, der er computeren på computeren, er ansvarlig for at udføre instruktioner og styre dataflow. Det kontrollerer konstant for fejl, og når det opdages, genererer det typisk en undtagelse eller en afbrydelse. Disse fejl kan kategoriseres i flere typer:
1. Aritmetiske fejl:
* Afdeling af nul: Forsøg på at opdele et nummer med nul. Dette er matematisk udefineret og kan føre til uventede resultater.
* Overløb: Resultat af en aritmetisk operation, der overskrider den maksimale værdi, der er repræsenterbar af datatypen.
* Understrøm: Resultat af en aritmetisk operation, der går under den minimumsværdi, der er repræsenterbar af datatypen.
* Floating-punkt-fejl: Fejl, der forekommer under aritmetiske operationer i flydende punkt, såsom præcisionstab, afrundingsfejl og NAN (ikke et tal).
2. Hukommelsesfejl:
* Sidefejl: Forsøger at få adgang til hukommelse, der ikke i øjeblikket er kortlagt til processens adresserum. Dette sker ofte, når programmet forsøger at få adgang til hukommelse, der ikke tildeles det, eller når operativsystemet har brug for at bytte sider for at give plads til andre processer.
* busfejl: Problemer med dataoverførslen mellem CPU og hukommelse. Disse kan være forårsaget af defekte hukommelsesmoduler, forkerte hukommelsesindstillinger eller endda fysisk skade på bundkortet.
* cache -fejl: Problemer med CPU's interne cachehukommelse. Dette kan skyldes defekte cache -moduler eller softwarefejl, der fører til forkert cache -styring.
3. Instruktionsfejl:
* ulovlig instruktion: Forsøg på at udføre en instruktion, der ikke genkendes af CPU'en. Dette sker ofte, når man prøver at køre software designet til en anden processorarkitektur.
* Ugyldig opcode: Et forsøg på at udføre en instruktion med en ugyldig opcode (driftskode).
4. Andre fejl:
* Justeringsfejl: Forsøg på at få adgang til hukommelse på en adresse, der ikke er tilpasset den krævede grænse. Dette kan være forårsaget af softwarefejl eller hardwareproblemer.
* Datafejl: Fejl, der blev opdaget under dataoverførsel, som korrupte data eller paritetsfejl.
5. Sikkerhedsfejl:
* privilegiumovertrædelser: Forsøg på at få adgang til beskyttede systemressourcer eller udføre privilegerede instruktioner uden de krævede tilladelser.
Vigtige noter:
* De specifikke typer fejl, der er registreret af en CPU, kan variere afhængigt af processorarkitekturen og operativsystemet.
* CPU's fejlhåndteringsmekanisme adskiller sig også afhængigt af processorarkitekturen. Nogle processorer har indbygget fejldetektion og korrektionsmekanismer, mens andre er afhængige af operativsystemet til at håndtere disse situationer.
* Undtagelseshåndtering: Når en CPU møder en fejl, genererer den normalt en undtagelse. Dette er et signal, der afbryder programmets normale strømning og tillader operativsystemet eller en særlig undtagelsesbehandler at tage kontrol.
Det er vigtigt at bemærke, at dette kun er et par almindelige eksempler. CPU'en kan registrere og håndtere en lang række fejl afhængigt af de specifikke implementerings- og hardwarekomponenter involveret.