Kontrollanweisungen, die die Operationen diktieren, die eine CPU ausführt, stammen von verschiedenen Orten, abhängig von der Architektur und dem spezifischen Moment in der Zeit:
1. Hauptspeicher (RAM):
* Programmcode: Die primäre Quelle für Steueranweisungen ist der im Hauptspeicher gespeicherte Programmcode (Random Access Memory oder RAM). Wenn Sie ein Programm ausführen, werden die Anweisungen aus dem Speicher (wie einer Festplatte oder einer SSD) in RAM geladen. Die CPU holt diese Anweisungen dann einzeln (oder in Chargen) ab, dekodiert sie und führt sie aus. Dies ist die häufigste und grundlegendste Quelle.
2. Befehlscache (L1, L2, L3 Caches):
* häufig verwendete Anweisungen: Um die Ausführung zu beschleunigen, verwenden CPUs Caches, die kleinere, schnellere Erinnerungen sind. Der Anweisungs -Cache enthält Kopien von häufig verwendeten Anweisungen, die von RAM abgerufen wurden. Wenn die CPU eine Anweisung benötigt, überprüft sie zunächst den Cache. Wenn der Anweisungen vorhanden ist (ein "Cache -Hit"), ist er viel schneller abgerufen als zum Hauptspeicher.
3. Mikrocode (in komplexen Befehlssatzarchitekturen - CISC):
* Komplexe Operationen: Bei älteren oder komplexeren Architekturen (wie Intel X86) werden einige Anweisungen tatsächlich als Sequenzen einfacherer Mikroinstruktionen implementiert. Dieser * Mikrocode * wird in einem speziellen ROM (schreibgeschütztem Speicher) oder einem ähnlichen Speicher innerhalb der CPU selbst gespeichert. Wenn die CPU auf eine komplexe Anweisung trifft, wird die entsprechende Mikrocode -Sequenz ausgeführt, die den komplexen Befehl in einfachere, überschaubare Schritte unterteilt. Dies ist in modernen Architekturen der modernen RISC (reduziertes Anweisungssatz) weniger verbreitet, die im Allgemeinen einfachere Anweisungen bevorzugen, die direkt ausgeführt werden können.
4. Interrupts:
* externe Ereignisse: Interrupts sind Signale, die den normalen Programmabfluss unterbrechen können. Sie können aus Hardware (z. B. einer Tastaturpresse, einem Festplattenlaufwerk stammen, der einen Vorgang beendet) oder Software. Wenn ein Interrupt auftritt, rettet die CPU den Status des aktuellen Programms und springt zu einer speziellen Routine, die als *Interrupt -Handler *oder *Interrupt Service Routine (ISR) *bezeichnet wird. Der ISR enthält Anweisungen zum Umgang mit dem Interrupt (z. B. Lesen von Daten von der Tastatur). Nach Abschluss der ISR stellt die CPU den gespeicherten Programmstatus wieder her und setzt die Ausführung wieder auf, wo sie aufgehört hat.
* Daher kann ein Interrupt dazu führen, dass eine * unterschiedliche * Reihe von Kontrollanweisungen ausgeführt werden als das, was das ursprüngliche Programm beabsichtigt hat.
5. Vektor zurücksetzen:
* Startup: Wenn der Computer eingeschaltet oder zurückgesetzt wird, beginnt die CPU mit der Ausführung von Anweisungen aus einer vordefinierten Speicheradresse, die als *Reset -Vektor *bezeichnet wird. Dieser Vektor enthält die Adresse der ersten Ausführung der ersten Anweisung, in der Regel der Start des Startladers des Betriebssystems.
Zusammenfassend:
Der Fluss sieht normalerweise so aus:
1. Power On/Reset: CPU beginnt am Reset -Vektor.
2. Boot -Prozess: Der Bootloader im RAM lädt das Betriebssystem.
3. Programmausführung: Programmcode und Daten werden in RAM geladen.
4 CPU holt Anweisungen aus RAM (oder Anweisungs -Cache), dekodiert sie in Kontrollsignale und führt diese Signale aus.
5. Interrupts: Externe Ereignisse können Interrupts auslösen und die Ausführung auf die Unterbrechung von Handlern auslenken.
Die CPU selbst ist der Agent, der diese Anweisungen abreißt und ausführt, wobei der Fetch-Decode-Execute-Zyklus wiederholt folgt. Die * Quelle * der Anweisungen variiert jedoch wie oben beschrieben.