CPU-Interrupts, Befehlszyklus und Adressierungsmodi: Grundlagen der Computerarchitektur

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 5,59 KB

1. Was ist eine Unterbrechung (Interrupt)?

Ein Interrupt ist die Möglichkeit für die CPU, die Ausführung eines laufenden Programms zu stoppen, ein anderes Programm auszuführen und anschließend zur ursprünglichen Programmausführung zurückzukehren und diese zu beenden oder fortzusetzen.

2. Welche Arten von Interrupts gibt es?

Man unterscheidet grundsätzlich zwischen Software- und Hardware-Interrupts.

Software-Interrupts

Diese werden durch Software-Programme generiert, um Fehlerzustände anzuzeigen, z. B. der Versuch, durch Null zu teilen, unzulässiger Speicherzugriff oder der Versuch, eine ungültige Anweisung auszuführen.

Hardware-Interrupts

Hardware-Interrupts entstehen durch externe Hardware-Ereignisse, wie z. B. das Ende von E/A-Operationen (Input/Output) oder andere Zustandsänderungen der Peripherie.

3. Was geschieht in der CPU bei Empfang eines Interrupt-Signals?

Die CPU stoppt die Ausführung des aktuell im Speicher abgelegten Programms. Der aktuelle Zustand (Kontext) wird gesichert. Anschließend beginnt die CPU mit der Verarbeitung des Interrupts (Ausführung des Interrupt-Handlers). Nach Beendigung der Interrupt-Verarbeitung wird der gespeicherte Zustand wiederhergestellt und die Ausführung des Programms, das vor der Unterbrechung lief, fortgesetzt.

4. Was ist ein Interrupt-Handler?

Ein Interrupt-Handler ist ein Programm von Anweisungen, das zur Bearbeitung eines spezifischen Interrupts dient.

5. Wie werden mehrere gleichzeitige Interrupts verarbeitet?

Wenn während der Ausführung eines Programms A ein Interrupt auftritt, wird der Zustand von A im Speicher abgelegt und Programm B (der Handler für den ersten Interrupt) ausgeführt. Tritt während der Ausführung von B ein weiterer Interrupt auf, wird Programm B gespeichert und Programm C (der Handler für den zweiten Interrupt) ausgeführt. Nach Beendigung von C wird B aus dem Speicher entnommen und fortgesetzt. Nach Beendigung von B wird A wiederhergestellt und fortgesetzt.

6. Der Befehlszyklus: Zustände und Speicherzugriff

Die vollständige Darstellung der Zustände des Befehlszyklus gibt an, welche Zustände innerhalb der CPU auftreten und welche Speicherzugriff benötigen:

  1. Lesen (Fetch): Lese-Operationen, um die Anweisung in ein Register zu laden. (Benötigt Speicherzugriff)
  2. Dekodieren (Decode): Die tatsächlichen Operationen und Adressen werden ermittelt.
  3. Ausführen (Execute): Die ALU-Operationen werden über das Ergebnis ausgeführt.
  4. Prüfen (Check): Überprüfung der Anweisung.

7. Einfluss der Adressanzahl auf Geschwindigkeit und Speicher

Die Anzahl der Adressen im Format der Anweisungen beeinflusst die Geschwindigkeit des Programmablaufs und den benötigten Speicherplatz.

  • Die Ausführung des Programms hängt von der Anzahl der Speicherzugriffe ab, die von der CPU ausgeführt werden müssen.
  • Unabhängig davon, ob das Programm kürzer oder länger ist, arbeitet die CPU weiterhin mit der gleichen Geschwindigkeit pro Anweisung.

8. Was ist ein Adressierungsmodus?

Der Adressierungsmodus definiert, wie die Adressen der Operanden in dem vorgeschriebenen Format der Anweisung angegeben werden.

9. Beschreibung der Adressierungsarten

1. Direkte Adressierung

  • Vorteil: Einfache Implementierung durch die CPU.
  • Nachteil: Der adressierbare Speicherplatz ist durch die Länge des Adressfeldes im Befehlsformat beschränkt.

2. Indirekte Adressierung

  • Vorteil: Großer Speicheradressraum zur Referenzierung von Operanden.
  • Nachteil: Größere Komplexität bei der Implementierung und die Notwendigkeit von zwei Speicherzugriffen für jeden Operanden.

3. Unmittelbare Adressierung (Immediate)

  • Vorteil: Das Lesen der Operanden erfordert keinen Zugriff auf den Speicher.
  • Nachteil: Der Bereich der Integer-Werte ist durch die Länge des Adressfeldes beschränkt.

4. Register-Adressierung

  • Vorteil: Es werden nur wenige Bits innerhalb des Befehlsformats für das Routing der Register benötigt.
  • Nachteil: Es ist notwendig, die Operanden zuvor vom Speicher in die CPU-Register zu kopieren.

5. Register-Indirekte Adressierung

  • Vorteil: Benötigt nur einen Speicherzugriff für jeden Operanden.
  • Nachteil: Wird in der Praxis kaum angewandt, da nicht im Voraus definiert ist, welche Adressen in die Register geladen werden.

10. Wie bestimmt die CPU den Adressierungsmodus (AM)?

Methode 1: Implizite Bestimmung

Jede Anweisung kann nur einen möglichen Adressierungsmodus verwenden, der durch den Operationscode impliziert wird.

  • Beispiel: LOAD impliziert Dereferenzierung.
  • Beispiel: ADD impliziert Dereferenzierung.

Methode 2: Explizite Bestimmung durch ein Feld

Jede Anweisung der CPU kann jeden Adressierungsmodus verwenden. Das Format der Anweisung enthält ein Feld, das die Ziffer des Adressierungsmodus enthält. Dieses Feld wird entschlüsselt, bevor die Operation ausgeführt wird.

Beispiele für die Kodierung des AM:

  • ADD (AM 00): Direkte Adressierung
  • ADD (AM 01): Indirekte Adressierung
  • ADD (AM 10): Register-Adressierung

Verwandte Einträge: