Die CPU
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:
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?
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)
- Befehl laden: Der Befehl wird von der Adresse im Befehlszähler ins Befehlsregister geholt, der Befehlszähler wird erhöht.
- Befehl decodieren: Der Befehlsdecodierer ermittelt, welcher Befehl es ist und mit welcher Adresse er arbeitet.
- Daten holen: Die benötigten Daten werden aus dem Speicher geholt.
2. Ausführungsphase (Execute)
- Das Rechenwerk verarbeitet die decodierten Daten.
- Die ALU führt den Befehl aus.
- 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.
- Befehl laden
- Befehl decodieren
- Daten holen
- ALU führt Befehl aus
- Ergebnis speichern / weiterverwenden
| 0 | 00010100 | LOAD 4 |
| 1 | 00100101 | ADD 5 |
| 2 | 00110110 | STORE 6 |
| 3 | 11110000 | HALT |
| 4 | 00000011 | = 3 |
| 5 | 00000100 | = 4 |
| 6 | 00000000 | = 0 |
| 7 | 00000000 | = 0 |
Drücke „Nächster Schritt“. Der Befehlszähler zeigt auf Zelle 0.
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.