Wie der Prozessor ein Programm ausführt
Ein Programm ist für den Prozessor nichts als eine Folge von Bitmustern im Speicher. Wie wird aus diesen Bitmustern eine Rechnung? Das siehst du hier an einem stark vereinfachten Prozessor.
Das Modell
Ein Prozessor besteht vereinfacht aus zwei Teilen:
- Das Steuerwerk holt die Befehle nacheinander aus dem Speicher und sorgt dafür, dass sie ausgeführt werden. Der Befehlszähler merkt sich, wo der nächste Befehl steht. Das Befehlsregister hält den aktuellen Befehl fest.
- Das Rechenwerk rechnet – mit Addierwerken wie dem aus Kapitel 3. Sein Ergebnis landet im Akkumulator, einem Register.
Befehle und Daten stehen im selben Speicher. Verbunden ist alles über Leitungen, den Bus.
Der Prozessor arbeitet immer im selben Takt, dem Befehlszyklus:
- Holen – den Befehl aus der Zelle holen, auf die der Befehlszähler zeigt; den Befehlszähler um 1 erhöhen
- Dekodieren – das Bitmuster als Befehl entschlüsseln
- Ausführen – den Befehl ausführen, zum Beispiel rechnen oder speichern
Der Mini-Prozessor
Unser Mini-Prozessor kennt sechs Befehle. Jeder Befehl ist ein Bitmuster aus 8 Bit: Die ersten 3 Bit sagen, was zu tun ist, die letzten 5 Bit, mit welcher Speicherzelle.
| Befehl | Bits | Wirkung |
|---|---|---|
| STOPP | 000 | Programm beenden |
| LADE n | 001 | Inhalt von Zelle n in den Akkumulator laden |
| ADDIERE n | 010 | Inhalt von Zelle n zum Akkumulator addieren |
| SUBTRAHIERE n | 011 | Inhalt von Zelle n vom Akkumulator abziehen |
| SPEICHERE n | 100 | Akkumulator in Zelle n schreiben |
| SPRINGE n | 101 | als Nächstes den Befehl in Zelle n ausführen |
Das Programm unten steht in den Zellen 0 bis 3, die Daten in den Zellen 5 bis 7.
- Sage voraus: Welche Zahl steht nach dem Programm in Zelle 7?
- Führe das Programm mit „Schritt“ aus. Beobachte bei jedem Schritt, welches Register sich ändert.
- Wie viele Klicks auf „Schritt“ brauchst du insgesamt? Erkläre die Anzahl.
Tipp zu 3
Jeder Befehl braucht drei Phasen. Wie viele Befehle werden ausgeführt – STOPP mitgezählt?
Befehle und Daten sehen gleich aus
Schau dir die Spalte „Bitmuster“ an.
- Zelle 5 enthält die Zahl 0. Welchen Befehl würde der Prozessor darin sehen?
- Ändere Zelle 3 von STOPP (0) auf die Zahl 160. Führe das Programm aus. Was passiert – und warum?
Tipp zu 2
Rechne 160 ins Binärsystem um und teile das Bitmuster in 3 + 5 Bit auf.
Weil Befehle und Daten im selben Speicher stehen und gleich aussehen, kann ein Computer jedes beliebige Programm ausführen – man lädt es einfach in den Speicher. Diese Idee geht auf den Mathematiker John von Neumann (1945) zurück. Fast alle heutigen Computer arbeiten nach ihr.
Selbst programmieren
Schreibe ein Programm, das Zelle 5 + Zelle 6 − Zelle 4 berechnet und das Ergebnis in Zelle 7 speichert. Trage die Befehle als Zahlen in die Spalte „ändern“ ein. In Zelle 4 steht dazu schon die Zahl 2.
Berechne die Zahl für einen Befehl so: Befehlsnummer · 32 + Adresse. Zum Beispiel LADE 5 = 1 · 32 + 5 = 37.
Tipp
Du brauchst fünf Befehle: LADE, ADDIERE, SUBTRAHIERE, SPEICHERE, STOPP. Aber Zelle 4 enthält schon Daten! Wie viele Zellen hast du für Befehle?