Motivation
Ein Rechner addiert ganze Zahlen letztlich bitweise in Hardware. Schon die Addition zweier 4-Bit-Zahlen wirft die zentrale Frage der Digitaltechnik auf: Wie wird der Übertrag (engl. carry) von einer Bitstelle zur nächsten weitergereicht? Verschiedene Addiernetzwerke beantworten das mit unterschiedlichen Kompromissen zwischen Schaltungsaufwand, Anzahl der Taktzyklen und Verzögerung. Dieser Rechner stellt drei klassische Varianten gegenüber — den von-Neumann-Addierer, den Paralleladdierer und den Serienaddierer — und zeigt für jede die Bit-/Dezimal-Schritttabelle samt Übertrags-/Überlaufbit .
Alle drei berechnen dieselbe Summe
mit . Das Ergebnis kann den 4-Bit-Bereich verlassen: Ist , so entsteht ein Überlauf, der im fünften Bit festgehalten wird. Der Akkumulator enthält dann , und der volle Wert ist .
So arbeiten die drei Netzwerke
von-Neumann-Addierer
Der von-Neumann-Addierer trennt Summe ohne Übertrag und Übertrag und iteriert, bis kein Übertrag mehr übrig ist. In jedem Schritt gilt für den aktuellen Akkumulator und Puffer :
Dabei ist das bitweise XOR (die übertragsfreie Summe) und schiebt die an jeder Stelle entstandenen Überträge um eine Position nach links. Sobald ein Übertrag die Bitstelle erreicht, wird das Überlaufbit gesetzt:
Die Iteration endet, wenn ist (Spalte wird dann ). Die Zahl der nötigen Schritte hängt davon ab, wie weit sich Überträge fortpflanzen.
Paralleladdierer
Der Paralleladdierer bildet die Summe in einem kombinatorischen Schritt (Ripple-Carry-Kette, hier als ein Takt dargestellt). Die unteren vier Bit landen im Akkumulator, das fünfte Bit ist der Übertrag heraus:
Er braucht die wenigsten Takte, dafür die meiste Logik gleichzeitig.
Serienaddierer
Der Serienaddierer verwendet einen Volladdierer, der pro Takt ein Bit verarbeitet — von der niedrigstwertigen Stelle (LSB) aufwärts. Für die aktuellen Bits und den Übertrag gilt die Volladdierer-Gleichung
Das Summenbit wird in das höchstwertige Bit des Akkumulators hineingeschoben, und werden um eine Stelle nach rechts geschoben. Nach vier Takten steht die Summe im Akkumulator und ist der Übertrag heraus. Der Serienaddierer braucht am wenigsten Logik, dafür vier Takte.
Durchgerechnetes Beispiel
Wir addieren und mit dem von-Neumann- Addierer — die Vorbelegung des Rechners oben.
Da ist, gibt es keinen Übertrag: bereits nach einem Schritt ist der Puffer , das Überlaufbit bleibt , und der Akkumulator enthält . Tatsächlich ist , passt also gerade noch in vier Bit.
Häufige Fehler
- Akku ohne Übertrag gelesen: Der Akkumulator hält nur . Bei Überlauf muss das Bit als er-Stelle hinzugenommen werden, sonst fehlt der Übertrag im Endergebnis.
- XOR mit Addition verwechselt: Beim von-Neumann-Schritt ist die übertragsfreie Summe — nicht . Der Übertrag steckt separat in .
- Falsche Bit-Reihenfolge beim Serienaddierer: Er beginnt beim LSB und schiebt nach rechts. Wer beim MSB anfängt, propagiert den Übertrag in die falsche Richtung.
- Übertrag zwischen Takten vergessen: Beim Serienaddierer wird von Takt zu Takt mitgeführt; nur so entsteht eine korrekte mehrstellige Addition.