Kapitel 8 · ca. 35 Minuten

Die CPU

LeitfrageWie ist der Prozessor aufgebaut und wie verarbeitet er einen Befehl?

Die wichtigste Komponente

Die CPU (Central Processing Unit, Prozessor) ist die wichtigste Komponente für die Datenverarbeitung. Jede Berechnung, jede Entscheidung, jedes Verschieben von Daten wird von ihr gesteuert. Sie besteht im Von-Neumann-Modell aus zwei Teilen:

  • dem Steuerwerk – es organisiert: holt Befehle, entschlüsselt sie und steuert alle anderen Bauteile,
  • dem Rechenwerk (ALU) – es rechnet: führt arithmetische und logische Operationen aus.

Aufbau (Modell)

Tippe die Bauteile an:

CPU – Aufbau (Modell)
Steuerwerk
Rechenwerk
Steuerwerk

Befehlszähler

Program Counter (PC): enthält die Adresse des nächsten auszuführenden Befehls – nicht den Befehl selbst. Nach jedem Befehl wird er erhöht, bei Sprüngen neu gesetzt.

Befehlszähler und Befehlsregister

Diese beiden Register werden sehr oft verwechselt. Dabei ist der Unterschied wichtig:

Welche Aussage passt zu welchem Register?

Befehlszähler
Befehlsregister

Datenverarbeitung – die Komponenten im Zusammenspiel

An der Verarbeitung eines Befehls sind alle Bauteile beteiligt: Das Steuerwerk legt die Adresse aus dem Befehlszähler auf den Adressbus und meldet über den Steuerbus: „Ich will lesen“. Der Speicher liefert den Inhalt über den Datenbus.

Ein Befehl wird dabei immer in zwei Phasen abgearbeitet:

1. Interpretationsphase (Fetch + Decode)

  1. Befehl laden: Der Befehl wird von der Adresse im Befehlszähler ins Befehlsregister geholt, der Befehlszähler wird erhöht.
  2. Befehl decodieren: Der Befehlsdecodierer ermittelt, welcher Befehl es ist und mit welcher Adresse er arbeitet.
  3. Daten holen: Die benötigten Daten werden aus dem Speicher geholt.

2. Ausführungsphase (Execute)

  1. Das Rechenwerk verarbeitet die decodierten Daten.
  2. Die ALU führt den Befehl aus.
  3. Das Ergebnis wird in den Speicher (bzw. Cache) geschrieben oder weiterverwendet.

Probiere es an einer kleinen Maschine aus. Ihre Befehle sind 8 Bit lang: die ersten 4 Bit sind der Opcode (0001 = LOAD, 0010 = ADD, 0011 = STORE, 1111 = HALT), die letzten 4 Bit die Adresse.

1 · Interpretationsphase Fetch + Decode
  1. Befehl laden
  2. Befehl decodieren
  3. Daten holen
2 · Ausführungsphase Execute
  1. ALU führt Befehl aus
  2. Ergebnis speichern / weiterverwenden
CPU
Steuerwerk
Befehlszähler0
Befehlsregister––––––––
Befehlsdecodierer
StatusregisterZ=1
Rechenwerk
Datenregister––––––––
Akkumulator00000000 = 0
Adressbus
Steuerbus
Datenbus
Speicher
000010100LOAD 4
100100101ADD 5
200110110STORE 6
311110000HALT
400000011= 3
500000100= 4
600000000= 0
700000000= 0

Drücke „Nächster Schritt“. Der Befehlszähler zeigt auf Zelle 0.

In welcher Phase wird der Befehlszähler erhöht?
VertiefungTakt, Pipelines und Mehrkernprozessoren

Das Steuerwerk arbeitet im Takt eines Quarzoszillators. „3,5 GHz“ bedeutet 3,5 Milliarden Takte pro Sekunde.

Moderne Prozessoren beschleunigen den Zyklus mit Tricks:

  • Pipelining: Wie am Fließband werden mehrere Befehle gleichzeitig in verschiedenen Phasen bearbeitet (einer wird geladen, während der vorige decodiert und der vorvorige ausgeführt wird).
  • Sprungvorhersage: Der Prozessor „rät“, wie eine Verzweigung ausgeht, und arbeitet schon mal weiter.
  • Mehrkernprozessoren: Mehrere vollständige Rechen- und Steuerwerke auf einem Chip arbeiten parallel.