CPU, som är hjärnans hjärna, ansvarar för att utföra instruktioner och hantera dataflöde. Det kontrollerar ständigt för fel och när det upptäcks genererar det vanligtvis ett undantag eller ett avbrott. Dessa fel kan kategoriseras i flera typer:
1. Aritmetiska fel:
* Division med noll: Försök att dela upp ett nummer med noll. Detta är matematiskt odefinierat och kan leda till oväntade resultat.
* överflöde: Resultatet av en aritmetisk operation som överstiger det maximala värdet som representeras med datatypen.
* Underflow: Resultat av en aritmetisk operation som går under det minsta värdet som representeras med datatypen.
* flytande punktfel: Fel som inträffar under flytande punkt Aritmetiska operationer, såsom precisionsförlust, avrundningsfel och NAN (inte ett nummer).
2. Minnesfel:
* Sidfel: Försöker få åtkomst till minne som för närvarande inte är mappat till processens adressutrymme. Detta händer ofta när programmet försöker komma åt minnet som inte tilldelas det, eller när operativsystemet måste byta ut sidor för att ge plats för andra processer.
* bussfel: Problem med dataöverföringen mellan CPU och minne. Dessa kan orsakas av felaktiga minnesmoduler, felaktiga minnesinställningar eller till och med fysiska skador på moderkortet.
* cache -fel: Problem med CPU:s interna cacheminne. Detta kan bero på felaktiga cachemoduler eller mjukvarufel som leder till felaktig cachehantering.
3. Instruktionsfel:
* olaglig instruktion: Försök att utföra en instruktion som inte erkänns av CPU. Detta händer ofta när man försöker köra programvara designad för en annan processorarkitektur.
* Ogiltig opcode: Ett försök att utföra en instruktion med en ogiltig opkod (operationskod).
4. Andra fel:
* Justeringsfel: Försök att komma åt minnet på en adress som inte är anpassad till den nödvändiga gränsen. Detta kan orsakas av mjukvarufel eller hårdvaruproblem.
* Datafel: Fel som upptäcks under dataöverföring, som skadade data eller paritetsfel.
5. Säkerhetsfel:
* Privilegiöverträdelser: Försök att få tillgång till skyddade systemresurser eller utföra privilegierade instruktioner utan nödvändiga behörigheter.
Viktiga anteckningar:
* De specifika typerna av fel som upptäcks av en CPU kan variera beroende på processorarkitekturen och operativsystemet.
* CPU:s felhanteringsmekanism skiljer sig också beroende på processorarkitekturen. Vissa processorer har inbyggda feldetekterings- och korrigeringsmekanismer, medan andra förlitar sig på operativsystemet för att hantera dessa situationer.
* Undantagshantering: När en CPU möter ett fel genererar det vanligtvis ett undantag. Detta är en signal som avbryter programmets normala flöde och gör det möjligt för operativsystemet eller en speciell undantagshanterare att ta kontroll.
Det är viktigt att notera att det bara är några vanliga exempel. CPU kan upptäcka och hantera ett brett utbud av fel beroende på de specifika implementerings- och hårdvarukomponenterna.