Ratgeber · 8 Min Lesezeit
Wie Computer wirklich rechnen: Bits, Transistoren, Logikgatter
Vom Transistor über Logikgatter und Halbaddierer bis zur ALU: Schritt für Schritt erklärt, wie aus Strom und Spannung eine Addition wird.
Wenn man in einen Taschenrechner 2+2 eingibt, kommt 4 heraus. So weit das Offensichtliche. Spannender ist die Frage, was zwischen dem Tastendruck und der Anzeige passiert. Die Antwort führt über mehrere Abstraktionsebenen, beginnend bei winzigen elektronischen Schaltern und endend bei der Logik, die jeder Computer beherrscht.
Der Transistor als Grundbaustein
Auf der untersten Ebene besteht ein moderner Prozessor aus Milliarden von Transistoren. Ein Transistor ist im Grunde ein elektronischer Schalter ohne bewegliche Teile. Er hat drei Anschlüsse: zwei für den Strom, der durchfließen soll, und einen dritten, das Gate, der den Schalter steuert. Liegt am Gate eine ausreichende Spannung an, fließt Strom; ohne Gate-Spannung sperrt der Transistor.
Diese zwei Zustände, leitend und sperrend, sind das, was wir 1 und 0 nennen. Ein einzelner Transistor speichert oder transportiert genau ein Bit. Damit wir Zahlen darstellen können, brauchen wir viele davon: ein Byte mit acht Bits braucht acht Leitungen, die parallel verlaufen.
Logikgatter: Schalter kombinieren
Mit ein paar Transistoren lässt sich ein Logikgatter bauen. Ein UND-Gatter etwa hat zwei Eingänge und einen Ausgang. Der Ausgang ist nur dann 1, wenn beide Eingänge 1 sind. In Transistoren ausgedrückt: zwei in Reihe geschaltete Schalter, die nur Strom durchlassen, wenn beide leiten.
Die wichtigsten Gatter:
| Gatter | Symbol | Verhalten |
|---|---|---|
| UND (AND) | A · B | 1 nur wenn beide Eingänge 1 |
| ODER (OR) | A + B | 1 wenn mindestens ein Eingang 1 |
| NICHT (NOT) | ¬A | Kehrt den Eingang um |
| XOR | A ⊕ B | 1 wenn genau ein Eingang 1 ist |
| NAND | ¬(A · B) | UND mit umgekehrtem Ausgang |
Bemerkenswert ist, dass NAND allein ausreicht, um jedes andere Gatter nachzubauen. Aus reinen NAND-Gattern lässt sich theoretisch ein vollständiger Computer konstruieren. Diese Eigenschaft heißt funktionale Vollständigkeit und ist der Grund, warum in echten Chips meist nur ein, zwei Gattertypen physisch verbaut sind.
Vom Gatter zum Halbaddierer
Mit XOR und UND lässt sich der einfachste Addierer bauen, der Halbaddierer. Er addiert zwei Bits und liefert zwei Ergebnisbits: die Summe und den Übertrag.
Eingänge: A B
Summe: A ⊕ B
Übertrag: A · B
Beispiel: 1 + 1 ergibt im Binären 10. Die Summe-Stelle ist 0 (denn 1 XOR 1 = 0), der Übertrag ist 1 (denn 1 AND 1 = 1). Genau das, was wir per Hand auch rechnen würden.
Der Halbaddierer hat einen Schwachpunkt: er kann keinen Übertrag aus einer vorherigen Stelle berücksichtigen. Dafür gibt es den Volladdierer, der drei Bits addiert: zwei Operanden und ein Übertragsbit aus der vorigen Stelle. Er liefert wieder Summe und Übertrag und besteht aus zwei Halbaddierern plus einem ODER-Gatter.
Mehrere Bits parallel: die ALU
Wenn wir zwei Bytes (je acht Bits) addieren wollen, schalten wir acht Volladdierer hintereinander. Der Übertrag jeder Stelle wird zum Übertragseingang der nächsten. Das ist der Ripple-Carry-Addierer, die einfachste Form einer Mehr-Bit-Addition.
In einem echten Prozessor steckt diese Logik in der ALU, der Arithmetisch-Logischen Einheit. Sie kann nicht nur addieren, sondern auch subtrahieren (Addition mit dem Zweierkomplement des Subtrahenden), vergleichen, bitweise verknüpfen und schieben. Welche Operation gerade läuft, steuert ein paar zusätzliche Steuerleitungen.
Multiplikation und Division sind aufwendiger und werden meist auf wiederholte Additionen und Verschiebungen zurückgeführt. Bei modernen Chips übernimmt das eine spezialisierte Hardware, die in einem Taktzyklus das Ergebnis liefert.
Der Takt: alle gleichzeitig
Damit aus diesen Schaltungen ein Computer wird, brauchen wir Synchronisation. Hier kommt der Taktgeber ins Spiel, ein Quarz-Oszillator, der mit hoher Frequenz ein Rechteck-Signal erzeugt. Bei jedem Taktflanke übernehmen alle Register gleichzeitig ihre Eingangswerte. So entsteht ein geordneter Ablauf: in einem Takt werden Daten aus dem Speicher gelesen, im nächsten von der ALU verarbeitet, im übernächsten zurückgeschrieben.
Bei einem 3-Gigahertz-Prozessor passiert das drei Milliarden Mal pro Sekunde. In dieser Zeit legt ein Lichtstrahl gerade einmal 10 Zentimeter zurück, was die maximale Größe eines Prozessors begrenzt: Signale dürfen pro Takt nicht weiter laufen, als das Licht in dieser Zeit kommt.
Zurück zur Eingabe
Wenn Sie 2+2 in einen Rechner eingeben, passiert also Folgendes: die Tastatur sendet die Zahlen als Binärfolgen (00000010 und 00000010), die ALU bekommt den Auftrag „addiere”, die Volladdierer arbeiten von rechts nach links, und nach wenigen Pikosekunden steht das Ergebnis 00000100 in einem Register. Eine andere Schaltung wandelt das Ergebnis in das ASCII-Zeichen „4” zurück und schickt es an die Anzeige.
Aus Sicht der Hardware ist Rechnen letztlich nichts anderes als ein gut orchestriertes Spiel aus Strom und Spannung. Aus Sicht der Mathematik ist es Boolesche Algebra in Aktion. Beide Perspektiven beschreiben dasselbe Phänomen.
Verwandte Themen
Wer noch tiefer einsteigen möchte: unser Artikel zur Geschichte des Binärsystems zeigt, wie aus einer philosophischen Idee die Hardware-Realität wurde, und IEEE 754 erklärt, wie dieselben Transistoren auch mit Kommazahlen umgehen.