1. Central Processing Unit (CPU) Ventetilstande
CPU-ventetilstande refererer til de pauser eller forsinkelser, som den centrale behandlingsenhed oplever, mens den venter på, at andre komponenter på computeren fuldfører deres opgaver. Flere faktorer kan føre til CPU-ventetilstande:
Hukommelse (RAM) Adgangsforsinkelser: Hvis de anmodede data eller instruktioner ikke er let tilgængelige i CPU'ens cachehukommelse, skal CPU'en muligvis vente, mens dataene hentes fra den langsommere RAM. Hastighedsforskellen mellem CPU og RAM kan introducere ventetilstande.
Input/Output (I/O) operationer: Når CPU'en anmoder om data fra inputenheder eller sender data til outputenheder, kan den støde på ventetilstande, hvis I/O-enhederne ikke er i stand til hurtigt at behandle oplysningerne. For eksempel kan læsning af data fra en mekanisk harddisk introducere flere ventetilstande sammenlignet med en SSD.
Busstrid: I multi-komponent computersystemer er der kun én vej til kommunikation mellem CPU'en og systemets komponenter. Hvis flere enheder som grafikkort eller perifere controllere anmoder om adgang til bussen samtidigt, kan de forårsage busstrid. CPU'en er nødt til at vente, indtil den får kontrol over bussen, for at fortsætte sine operationer, hvilket resulterer i ventetilstande.
2. Processorbåse (Pipeline Stalls)
Processor stall, også kendt som pipeline stalls, forekommer i moderne pipelinede processorer. Pipelining involverer opdeling af opgaver i flere faser for at øge effektiviteten. Visse situationer kan dog midlertidigt stoppe pipelinen, når visse data afhænger af resultaterne fra en tidligere fase eller endnu ikke er tilgængelige.
Dataafhængighedsstaller: I pipelinet behandling tjener outputtet fra et trin som input til det næste. Hvis de nødvendige data (kildeoperand) for et trin stadig behandles eller er gået i stå af andre årsager, må de efterfølgende trin vente. Denne venteperiode skaber dataafhængighedsstop.
Ressourcekonflikter: I lighed med CPU-ventetilstande kan ressourcekonflikter opstå, når flere eksekveringsenheder i en processor har brug for at få adgang til en delt ressource såsom et register eller hukommelsesplacering. Hvis en del af rørledningen holder på ressourcen længere end forventet, standser det fremskridtet af andre faser, hvilket forårsager stall.
Sammenfattende forekommer både CPU-ventetilstande og processorstop på grund af ressourcebegrænsninger eller afhængigheder. Mens ventetilstande påvirker traditionelle flerkomponentsystemer, påvirker stallene moderne pipelinede processorer mere direkte. Optimering af hardwarekomponenter, busgrænseflader og softwareplanlægning kan hjælpe med at reducere disse tilfælde og forbedre systemets overordnede ydeevne.