Kontrollinstruktioner, som dikterar den verksamhet som en CPU utför, kommer från några olika platser, beroende på arkitekturen och det specifika ögonblicket i tid:
1. Huvudminnet (RAM):
* Programkod: Den primära källan till kontrollinstruktioner är programkoden lagrad i huvudminnet (slumpmässigt åtkomstminne eller RAM). När du kör ett program laddas instruktionerna från lagring (som en hårddisk eller SSD) till RAM. CPU hämtar sedan dessa instruktioner en efter en (eller i partier), avkodar dem och kör dem. Detta är den vanligaste och grundläggande källan.
2. Instruktionscache (L1, L2, L3 Caches):
* Ofta använda instruktioner: För att påskynda exekveringen använder CPU:er cachar, som är mindre, snabbare minnen. Instruktionscachen har kopior av ofta använda instruktioner som hämtats från RAM. När CPU behöver en instruktion kontrollerar den först cachen. Om instruktionen är där (en "cache hit") hämtas den mycket snabbare än att gå till huvudminnet.
3. Mikrokod (i komplexa instruktionsuppsättningsarkitekturer - CISC):
* komplexa operationer: I äldre eller mer komplexa arkitekturer (som Intel X86) implementeras vissa instruktioner faktiskt som sekvenser av enklare mikroinstruktioner. Denna * mikrokod * lagras i en speciell ROM (skrivskyddad minne) eller liknande lagring inom själva CPU. När CPU stöter på en komplex instruktion utför den motsvarande mikrokodsekvens, som delar upp den komplexa instruktionen till enklare, hanterbara steg. Detta är mindre vanligt i modern RISC (reducerad instruktionssätt datorarkitekturer, som i allmänhet föredrar enklare instruktioner som kan utföras direkt.
4. Avbrott:
* externa händelser: Avbrott är signaler som kan avbryta det normala flödet av programutförande. De kan komma från hårdvara (t.ex. en tangentbordspress, en diskenhet som slutför en operation) eller programvara. När ett avbrott inträffar sparar CPU det nuvarande programmets tillstånd och hoppar till en speciell rutin som kallas en *avbrottshanterare *eller *avbrottstjänstrutin (ISR) *. ISR innehåller instruktioner för att hantera avbrottet (t.ex. läsa data från tangentbordet). Efter att ISR är klar återställer CPU det sparade programstatet och återupptar exekveringen där den slutade.
* Därför kan ett avbrott orsaka en * annorlunda * uppsättning av kontrollinstruktioner än vad det ursprungliga programmet avsåg.
5. Återställ vektor:
* Startup: När datorn är på eller återställs datorn, börjar CPU körning av instruktioner från en fördefinierad minnesadress som kallas *återställningsvektorn *. Denna vektor innehåller adressen till den första instruktionen som ska utföras, vanligtvis starten på operativsystemets startlastare.
Sammanfattningsvis:
Flödet ser vanligtvis ut så här:
1. Ström på/återställs: CPU börjar vid återställningsvektorn.
2. Boot Process: Boot Loader i RAM laddar operativsystemet.
3. Programutförande: Programkod och data laddas i RAM.
4. hämtningsdekode-exekutcykel: CPU hämtar instruktioner från RAM (eller instruktionscache), avkodar dem till styrsignaler och kör dessa signaler.
5. Avbrott: Externa händelser kan utlösa avbrott och avleda körning för att avbryta hanterare.
CPU:erna är agenten som hämtar och kör dessa instruktioner, efter den hämtningsdekode-exekutcykeln upprepade gånger. * Källan * för instruktionerna varierar emellertid såsom beskrivits ovan.