Lektion 4.1

Von-Neumann-Rechner und digitale Schaltungen

19 min Lesezeit

Ein Taschenrechner rechnet 5 + 9 in einem Augenblick. Innen gibt es keine Zahlen und kein Kopfrechnen, nur winzige Schalter, die Strom durchlassen oder sperren. Wie wird aus Schaltern ein Rechner, der ein Programm Schritt für Schritt abarbeitet? Und wie kann eine Schaltung zwei Zahlen addieren?

Du lernst zuerst, wie ein Computer nach dem Von-Neumann-Modell aufgebaut ist. Dann baust du aus einfachen logischen Bausteinen eine Schaltung, die Binärzahlen addiert.

Definition

Von-Neumann-Modell, Prozessor, Register und Arbeitsspeicher

Fast alle heutigen Computer folgen dem Von-Neumann-Modell (nach John von Neumann, 1940er Jahre). Seine wichtigste Idee: Programm und Daten stehen im selben Speicher, beide als Bitmuster. Das Modell hat vier Teile:

  • Das Rechenwerk führt Rechnungen und logische Verknüpfungen aus.
  • Das Steuerwerk liest die Befehle und steuert den Ablauf.
  • Der Arbeitsspeicher besteht aus nummerierten Zellen. Die Nummer einer Zelle ist ihre Adresse. Er verliert beim Ausschalten seinen Inhalt.
  • Die Ein- und Ausgabe verbindet den Rechner mit der Außenwelt, etwa Tastatur und Bildschirm.

Rechenwerk und Steuerwerk bilden zusammen den Prozessor. Im Prozessor liegen Register: wenige, sehr schnelle Speicherplätze. Zwei sind wichtig: Der Befehlszähler enthält die Adresse des nächsten Befehls. Der Akkumulator hält das Zwischenergebnis einer Rechnung. Daten und Befehle laufen über Leitungen, den Bus, zwischen Prozessor und Arbeitsspeicher.

Definition

Befehlszyklus

Der Prozessor arbeitet ein Programm im Befehlszyklus ab. Er wiederholt drei Schritte:

  • Holen: Das Steuerwerk liest den Befehl aus der Zelle, auf die der Befehlszähler zeigt, und erhöht den Befehlszähler um 1.
  • Dekodieren: Es stellt fest, welche Operation der Befehl verlangt und mit welcher Adresse.
  • Ausführen: Das Rechenwerk führt die Operation aus. Dann beginnt der Zyklus von vorn.

Ein Sprungbefehl setzt den Befehlszähler auf eine andere Adresse, so entstehen Verzweigungen und Schleifen. Echte Befehle sind Bitmuster. Hier benutzen wir einen Mini-Prozessor mit vier Befehlen, die wir lesbar schreiben: LADE a kopiert die Zelle a in den Akkumulator, ADDIERE a addiert die Zelle a zum Akkumulator, SPEICHERE a schreibt den Akkumulator in die Zelle a, HALT hält an.

Beispiel

Ein Programm im Befehlszyklus

Der Speicher des Mini-Prozessors enthält:

Adresse0123101112
InhaltLADE 10ADDIERE 11SPEICHERE 12HALT590

Der Befehlszähler beginnt bei 0. Verfolge das Programm.

SchrittBefehlszähler beim HolenBefehlAkkumulator danach
10LADE 105
21ADDIERE 1114
32SPEICHERE 1214
43HALT14

Schritt 3 schreibt die 14 in Zelle 12. Das Programm hat 5 + 9 gerechnet und das Ergebnis in Zelle 12 abgelegt. Die Zahlen 5 und 9 liegen im selben Speicher wie die Befehle. Das ist die Von-Neumann-Idee.

Definition

Binäre Signale und logische Verknüpfungen

Im Rechner steht jedes Bit für eine elektrische Spannung: hoch bedeutet 1, niedrig bedeutet 0. Weil nur zwei Zustände unterschieden werden, stören kleine Schwankungen nicht. Logische Verknüpfungen machen aus Bits ein neues Bit. Eine Wahrheitstafel listet für jede Eingabe das Ergebnis auf. Es gibt drei Grundverknüpfungen:

  • UND (A∧BA \land B) ist 1, wenn beide Eingaben 1 sind.
  • ODER (A∨BA \lor B) ist 1, wenn mindestens eine Eingabe 1 ist.
  • NICHT (¬A\lnot A) kehrt die Eingabe um.
ABA UND BA ODER BNICHT A
00001
01011
10010
11110

Bei n Eingaben hat die Tafel 2n2^n Zeilen, denn jedes Bit hat zwei Werte.

Definition

Gatter und Schaltnetze

Ein Gatter ist ein Baustein, der eine Verknüpfung ausführt. Es besteht aus Transistoren, das sind winzige elektrisch gesteuerte Schalter. Es gibt UND-, ODER- und NICHT-Gatter. Verbindest du mehrere Gatter so, dass die Signale nur von den Eingängen zu den Ausgängen laufen und nirgends zurück, entsteht ein Schaltnetz. Sein Ausgang hängt nur von den Eingaben ab, es speichert nichts. Die Wahrheitstafel eines Schaltnetzes rechnest du Gatter für Gatter aus.

Beispiel

Ein neues Gatter aus den Grundgattern

Berechne die Wahrheitstafel des Schaltnetzes (A∨B)∧¬(A∧B)(A \lor B) \land \lnot (A \land B).

ABA ODER BA UND BNICHT (A UND B)Ergebnis
000010
011011
101011
111100

Das Ergebnis ist 1, wenn genau eine Eingabe 1 ist. Diese Verknüpfung heißt XOR (exklusives ODER). Sie unterscheidet sich vom ODER nur in der letzten Zeile.

Definition

Halbaddierer

Wie addiert man zwei Bits? Schreibe alle Fälle auf: 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1 und 1 + 1 = 10. Das Ergebnis hat bis zu zwei Stellen: die Summenstelle S und den Übertrag C (englisch carry). Die Tafel zeigt: S ist das XOR der Eingaben, C ist ihr UND. Ein Halbaddierer ist ein Schaltnetz aus einem XOR-Gatter und einem UND-Gatter.

ABCS
0000
0101
1001
1110

Er heißt „halb“, weil er einen Übertrag aus der Stelle davor nicht mitrechnet.

Den Halbaddierer ausprobieren

Klicke auf die Eingänge A und B, um sie zwischen 0 und 1 umzuschalten. Das obere Gatter ist das XOR für S, das untere das UND für C. Unter der Zeichnung ist die Zeile der Wahrheitstabelle hervorgehoben, die gerade gilt. Bei welcher Eingabe wird C zu 1?

Definition

Volladdierer und binäre Addition

Ab der zweiten Stelle einer Binärzahl kann von rechts ein Übertrag ankommen. Dann müssen drei Bits addiert werden: A, B und der Übertrag Ci (carry in) von der Stelle davor. Das leistet der Volladdierer. Er besteht aus zwei Halbaddierern und einem ODER-Gatter. Der erste addiert A und B, der zweite addiert dessen Summe und Ci. Das ODER vereint die beiden Überträge zum Übertrag-Ausgang Co. Die Summe aus drei Bits ist höchstens 3, binär 11, und passt in die zwei Ausgänge Co und S.

Reihst du Volladdierer hintereinander, geht Co jeder Stelle in Ci der nächsten. So addieren n Volladdierer zwei n-stellige Binärzahlen, wie du es schriftlich von rechts nach links tust. Die niedrigste Stelle hat keinen Übertrag von rechts, dort genügt Ci = 0.

Beispiel

Zwei 4-Bit-Zahlen addieren

Addiere 0110 und 0111 stellenweise von rechts mit Volladdierern.

Stelle (von rechts)ABCiSCo
001010
111001
211111
300110

Die Summenbits von Stelle 3 bis Stelle 0 lauten 1, 1, 0, 1. Das Ergebnis ist 1101, also 8 + 4 + 1 = 13. Kontrolle: 0110 ist 6, 0111 ist 7, und 6 + 7 = 13. Der letzte Übertrag ist 0, das Ergebnis passt in 4 Bit.

Definition

Grenzen der binären Zahlendarstellung

Ein Register hat eine feste Zahl von Bit. Mit n Bit lassen sich ohne Vorzeichen nur die Zahlen von 0 bis 2n−12^n - 1 darstellen, bei 8 Bit also 0 bis 255. Ist das Ergebnis einer Addition größer, entsteht an der höchsten Stelle ein Übertrag, für den kein Platz ist. Er geht verloren, das Ergebnis ist falsch. Das heißt Überlauf. Beispiel mit 4 Bit: 9 + 8 = 17, binär 1001 + 1000 = 10001. In 4 Bit bleibt 0001, also 1.

Auch bei Brüchen gibt es Grenzen: Die Zahl 0,1 lässt sich im Zweiersystem nicht mit endlich vielen Stellen schreiben (0,000110011...), so wie ein Drittel im Dezimalsystem nicht endet. Ein Rechner rundet und rechnet deshalb mit kleinen Abweichungen.

Häufige Fehler

ODER heißt entweder-oder

„Das logische ODER ist nur 1, wenn genau eine Eingabe 1 ist, wie bei Kaffee oder Tee.“

Richtig ist

Im Alltag meint „oder“ oft „entweder, oder“. Das logische ODER ist auch bei zwei Einsen 1. Das Entweder-oder ist das XOR.

Häufige Fehler

Ein Halbaddierer genügt für jede Stelle

„Zum Addieren von Binärzahlen reihe ich einfach Halbaddierer hintereinander.“

Richtig ist

Nur die niedrigste Stelle hat keinen Übertrag von rechts. Jede andere Stelle muss drei Bits addieren: A, B und den Übertrag der Stelle davor. Dafür braucht sie einen Volladdierer.

Zusammenfassung

  • Im Von-Neumann-Modell stehen Programm und Daten im selben Arbeitsspeicher. Der Prozessor besteht aus Rechenwerk und Steuerwerk und hat Register wie Befehlszähler und Akkumulator.

  • Der Befehlszyklus wiederholt: Befehl holen, dekodieren, ausführen. Der Befehlszähler zeigt auf den nächsten Befehl.

  • Bits sind hohe oder niedrige Spannung. UND, ODER und NICHT verknüpfen Bits, eine Wahrheitstafel mit 2n2^n Zeilen listet alle Fälle.

  • Gatter führen Verknüpfungen aus. Ein Schaltnetz verbindet Gatter ohne Rückkopplung und hat keinen Speicher.

  • Der Halbaddierer addiert zwei Bits: S ist XOR, C ist UND. Der Volladdierer rechnet den Übertrag der Stelle davor mit.

  • Mit n Bit gibt es nur die Zahlen 0 bis 2n−12^n - 1. Ein größeres Ergebnis führt zum Überlauf. Brüche wie 0,1 lassen sich binär nur gerundet speichern.

Übungen

Aufgabe 1Multiple Choice

Welche Reihenfolge hat der Befehlszyklus des Prozessors?

Aufgabe 2Numerisch

Ein Mini-Prozessor hat diesen Speicher: Zelle 0: LADE 10, Zelle 1: ADDIERE 11, Zelle 2: ADDIERE 11, Zelle 3: SPEICHERE 12, Zelle 4: HALT. Zelle 10 enthält die Zahl 4, Zelle 11 die Zahl 9. Der Befehlszähler beginnt bei 0. Welche Zahl steht nach HALT in Zelle 12?

Aufgabe 3Numerisch

Ein 8-Bit-Register enthält die Zahl 250. Es wird 10 addiert. Ein Übertrag aus der höchsten Stelle geht verloren. Welche Zahl steht danach im Register?

Aufgabe 4Multiple Choice

Ein Volladdierer bekommt A = 1, B = 1 und Ci = 1. Welche Ausgabe liefert er?

Aufgabe 5Freitext

Erkläre, warum man für die zweite Stelle einer Binäraddition einen Volladdierer braucht und mit einem Halbaddierer nicht auskommt.