Was eine CPU macht
Ein 3-GHz-Prozessor tickt 3 Milliarden Mal pro Sekunde, alle drei Zehntel einer Nanosekunde einmal.
Stell dir eine Informatikstunde vor. (Das ist eine erfundene Szene.) An der Tafel sind sechzehn nummerierte Kästchen gezeichnet, in jedem stehen acht Bits. Drei Schülerinnen und Schüler spielen die CPU. Einer hält eine Karte mit PC, eine eine Karte mit IR, eine eine Karte mit ACC. Auf der PC-Karte steht 0. Die IR-Schülerin geht zu Kästchen 0 und schreibt ab, was dort steht, 0001 1110, und der PC-Schüler ändert seine Karte auf 1. Die Klasse schlägt die ersten vier Bits in einer Tabelle an der Wand nach: 0001 bedeutet LOAD. Die letzten vier, 1110, sind 14. Also geht die ACC-Schülerin zu Kästchen 14 und schreibt die 7 ab, die sie dort findet. Dann beginnt alles wieder bei Kästchen 1.
In Kästchen 1 steht ADD 15, also wird ACC zu 7 + 5 = 12. In Kästchen 2 steht STORE 13, und die ACC-Schülerin schreibt 12 in Kästchen 13. In Kästchen 3 steht HALT, und alle setzen sich. Insgesamt zwölf Schritte. Keiner der drei musste wissen, dass das Programm „7 und 5 addiert“. Jeder befolgte eine kleine Regel. Die Kästchen sind der Speicher, die Karten sind Register, und die Tabelle an der Wand ist der Decoder. Eine echte CPU arbeitet genauso, milliardenfach pro Sekunde, und auch in ihr versteht niemand das Programm.
Dieselbe kurze Schleife, milliardenfach pro Sekunde
Gatter können addieren, vergleichen und auswählen, aber irgendetwas muss ihnen sagen, was sie tun sollen, in welcher Reihenfolge und mit welchen Zahlen. Das ist die Aufgabe des Hauptprozessors, der CPU. Sie wiederholt eine kurze Schleife. Der Befehlszähler (PC) enthält die Adresse des nächsten Befehls. Holen: Die CPU liest die Zelle, auf die der PC zeigt, in das Befehlsregister (IR) und erhöht den PC um eins. Dekodieren: Steuerschaltungen sehen sich die Opcode-Bits an und schalten die richtigen Wege, zum Beispiel das Addierwerk für ADD. Ausführen: Die Arbeit wird erledigt. Eine Zahl wird geladen, addiert oder gespeichert, oder der PC wird geändert, sodass das Programm woandershin springt. Dann beginnt die Schleife von vorn. Ein Befehl, JZ, springt nur, wenn der Akkumulator null ist, und genau diese eine Art von Sprung lässt ein Programm entscheiden und wiederholen.
Zum Drehen ziehen. Zum Zoomen scrollen oder mit zwei Fingern ziehen.
Die Szene führt dasselbe Programm aus, das die Klasse nachgespielt hat. Drück auf Schritt, und PC, IR und ACC ändern sich genau wie die Karten: LOAD 14, dann ADD 15, STORE 13 und HALT, vier Befehle mit je drei Phasen, insgesamt zwölf Phasen. Das Multiplikationsprogramm benutzt dieselben wenigen Befehle, aber seine JZ und JUMP schicken den PC zweimal zurück auf 0, bevor der Zähler in Zelle 15 null erreicht, deshalb führt es 24 Befehle in 72 Phasen aus. Sechsmal so viele Befehle wie die Addition.
Das Programm liegt im selben Speicher wie die Zahlen
An der Tafel standen die Befehle und die Zahlen 7 und 5 in derselben Kästchenreihe. Das ist kein Zufall. Im Juni 1945 schrieb John von Neumann den „First Draft of a Report on the EDVAC“, in dem er einen Computer beschrieb, der seine Befehle im selben Speicher hält wie seine Daten, und fast jeder Computer seitdem arbeitet so. Ein Befehl ist einfach eine Zahl, deren Bits in Felder aufgeteilt sind. In diesem Spielzeugcomputer fasst jede Zelle 8 Bits. Die ersten vier sagen, was zu tun ist, der Opcode, und die letzten vier, welche Zelle benutzt wird, die Adresse. 0001 ist LOAD, also bedeutet 0001 1110 „LOAD 14“: Kopiere die Zahl aus Zelle 14 in den Akkumulator, das Arbeitsregister der CPU.
Wie schnell die Schleife läuft
Die Schritte halten den Takt mit einem Taktsignal, einer Spannung, die in gleichmäßigem Tempo an- und ausgeht. Ein 3-GHz-Takt tickt 3 000 000 000-mal pro Sekunde, ein Tick dauert also 1 ÷ 3 000 000 000 Sekunden, etwa 0.333 Nanosekunden. Licht kommt in dieser Zeit nur etwa 10 Zentimeter weit. Bei einer Phase pro Tick reichen die Ticks, um das 7 + 5-Programm des Spielzeugs 250 Millionen Mal pro Sekunde auszuführen. Echte Prozessoren erledigen nicht so einfach wie unser Spielzeug einen ganzen Befehl pro Tick. Sie überlappen die Phasen mehrerer Befehle wie an einem Fließband, das nennt man Pipelining, und heutige Chips enthalten mehrere vollständige Prozessoren nebeneinander, die Kerne. Das Spielzeug hat nichts davon, und genau deshalb kannst du es von Hand verfolgen.
| Opcode | Name | Was er tut |
|---|---|---|
| 0000 | HALT | Anhalten |
| 0001 | LOAD a | ACC = Zelle a |
| 0010 | ADD a | ACC = ACC + Zelle a |
| 0011 | SUB a | ACC = ACC − Zelle a |
| 0100 | STORE a | Zelle a = ACC |
| 0101 | JUMP a | PC = a |
| 0110 | JZ a | wenn ACC = 0, PC = a |
- „Der PC zählt, wie viele Befehle ausgeführt wurden.“ Der PC enthält die Adresse des nächsten Befehls. Im 4 × 3-Programm wird er zweimal auf 0 zurückgeschickt, während die Zahl der erledigten Befehle weiter bis 24 steigt.
- „Die CPU liest ein Programm so, wie wir es lesen.“ Sie liest 8 Bits, teilt sie in Opcode und Adresse und folgt der festen Verdrahtung für diesen Opcode. Wie die Schüler mit den Karten weiß sie nie, dass das Programm 7 und 5 addiert.
- „Eine höhere GHz-Zahl bedeutet immer einen schnelleren Computer.“ Der Takt bestimmt, wie oft ein Schritt stattfinden kann, nicht wie viel pro Tick erledigt wird. Echte Chips überlappen Befehlsphasen und haben mehrere Kerne, deshalb können zwei Chips mit gleicher GHz-Zahl sehr unterschiedlich viel Arbeit schaffen.
- Bring die Phasen des Befehlszyklus in die richtige Reihenfolge.
- Die CPU holt den Befehl an Adresse 3. Was steht direkt nach dem Holen im PC?
- Was bedeutet 0010 1111 im Spielzeugcomputer?
- ADD 15
- LOAD 15
- STORE 2
- ADD 7
- Schreib LOAD 14 als 8 Bits.
- Ein Takt läuft mit 3 GHz. Wie lang ist ein Tick in Nanosekunden? (drei Nachkommastellen)
- Wie viele Befehle führt das 7 + 5-Programm aus, HALT mitgezählt?
- Jeder Befehl braucht drei Phasen. Wie viele Phasen braucht das 7 + 5-Programm?
- Was macht STORE 13?
- Kopiert den Akkumulator in Zelle 13
- Kopiert Zelle 13 in den Akkumulator
- Springt zu Adresse 13
- Addiert 13 zum Akkumulator
- Mit welchem Befehl kann ein Programm eine Schleife wiederholen, bis ein Zähler null erreicht?
- JZ (Sprung bei null)
- STORE
- HALT
- LOAD
- In welchem Jahr schrieb von Neumann den First Draft of a Report on the EDVAC?
- Programme werden als Zahlen im selben Speicher wie die Daten abgelegt (von Neumann, 1945).
- Die CPU wiederholt Holen, Dekodieren, Ausführen; der PC zeigt auf den nächsten Befehl.
- Die Bits eines Befehls teilen sich in Opcode und Adresse.
- Der Takt gibt das Tempo vor: 3 GHz sind ein Tick alle 0.333 ns.
Quellen zu diesem Kurs (9)
- (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then the teaching model and calculations, history sources last)
- Standards: NIST, "Prefixes for binary multiples" (physics.nist.gov/cuu/Units/binary.html: IEC approved kibi, mebi, gibi in December 1998; 1 B = 8 bit; 1 MiB = 1 048 576 B; 1 MB = 1 000 000 B; 1 GiB = 1 073 741 824 B; historical note: memory makers usually mean 2²⁰ bytes by megabyte, storage makers 1 000 000, and the "1.44 MB" diskette uses a megabyte of 1 024 000 bytes)
- IETF RFC 20 "ASCII format for Network Interchange" (1969, 7-bit codes, A = 65, a = 97, 0 = 48)
- IETF RFC 3629 "UTF-8, a transformation format of ISO 10646" (2003: 1 to 4 octets per character, ASCII unchanged, code points up to U+10FFFF, U+0800 to U+FFFF take three octets, "the first octet of a multi-octet sequence indicates the number of octets", example U+D55C U+AD6D U+C5B4 = ED 95 9C EA B5 AD EC 96 B4)
- Official documentation: MDN Web Docs, "<color>" (hexadecimal colour notation #RRGGBB)
- Intel, "Intel Chips" timeline poster (2012: Intel 4004 of 1971 with 2,300 transistors; 2nd generation Core 2010 with 1.16 billion)
- Claude E. Shannon, "A Symbolic Analysis of Relay and Switching Circuits", Transactions of the AIEE vol. 57 (1938)
- abstract of his MIT master's thesis. Computer History Museum, The Silicon Engine, "1947: Invention of the Point-Contact Transistor" (Bardeen and Brattain, December 1947, germanium)
- John von Neumann, "First Draft of a Report on the EDVAC" (30 June 1945, Moore School, reprinted in IEEE Annals of the History of Computing 15:4, 1993).
Abgerufen: 2026-10-17