23.04.2014 Aufrufe

Die technische Umsetzung von Addierern

Die technische Umsetzung von Addierern

Die technische Umsetzung von Addierern

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Die</strong> <strong>technische</strong> <strong>Umsetzung</strong> <strong>von</strong> <strong>Addierern</strong><br />

Wie addiert man im Rechner? Mit Binärzahlen natürlich.<br />

Man denkt, diese Art der Addition sei schwierig, da wir es nicht gewohnt sind, nur mit Nullen<br />

und Einsen zu rechnen – dabei funktioniert diese Addition wie die mit Dezimalzahlen.<br />

Beispiel: 10 1 1 (dezimal: 11)<br />

+ 00 1 1 (dezimal: 3)<br />

11 1 1 1 0 (dezimal: 14; <strong>Die</strong> Rechnung stimmt also.)<br />

Um das auch technisch umzusetzen, benötigt man den Halbaddierer (auch Halfadder oder HA<br />

genannt). Rein logisch berechnet er lediglich Folgendes:<br />

A B Summe Übertrag (Carry)<br />

0 0 0 0<br />

0 1 1 0<br />

1 0 1 0<br />

1 1 0 1<br />

Er kann also lediglich einstellige Dualzahlen addieren.<br />

Man kann die Ergebnisse Summe und Übertrag auch folgendermaßen darstellen:<br />

Summe := A XOR B (wird also nur 1, wenn A und B beide verschieden sind)<br />

Carry := A AND B (wird nur 1, wenn A und B gleichzeitig 1 sind)<br />

Doch wie wird das Addieren nun technisch umgesetzt?<br />

<strong>Die</strong> Größen A und B sind Signale. <strong>Die</strong> 0 bedeutet, grob gesagt, es gibt keinen Stromfluss, bei<br />

der 1 gibt es solchen. In einem Takt, also zu einem bestimmten Zeitpunkt, fließt also<br />

entweder Strom oder nicht.<br />

Für die Operatoren XOR und AND gibt es in der Technik Schaltungen, sogenannte Gatter.<br />

<strong>Die</strong>se haben mehrere Eingänge, an denen jeweils Strom anliegt oder nicht. Ein OR-Gatter<br />

erzeugt das Ergebnis der logischen OR-Funktion, das AND-Gatter das der AND-Funktion.<br />

Für den Halbaddierer benötigt man ein AND- und ein XOR-Gatter. Beide benutzen A und B<br />

als Eingangssignale und haben als Ausgangssignal Summe bzw. Carry. In einem Takt werden<br />

die Signale A und B angelegt und das Ausgangssignal wird „berechnet“. Im nächsten Takt hat<br />

man neue Eingangswerte und auch dementsprechend eine neue Ausgabe.<br />

Wir können nun einstellige Binärzahlen addieren. Aber was soll man tun, wenn man nicht nur<br />

so kleine Zahlen addieren will, sondern solche mit mehr als einer Binärstelle?


Um dieses Problem zu lösen, muss man sich zunächst mit dem sogenannten Volladdierer<br />

beschäftigen.<br />

Er setzt folgende Tabelle um:<br />

A B Carry-In Summe Carry-Out<br />

0 0 0 0 0<br />

0 0 1 1 0<br />

0 1 0 1 0<br />

0 1 1 0 1<br />

1 0 0 1 0<br />

1 0 1 0 1<br />

1 1 0 0 1<br />

1 1 1 1 1<br />

Carry-Out ist hierbei der bekannt Übertrag.<br />

<strong>Die</strong> Größe Carry-In ist neu. Carry-In bedeutet einfach „Eingangsübertrag“, ist also der<br />

Übertrag der bei der vorherigen Addition entstanden ist, wenn dort 1 und 1 addiert wurden.<br />

Wie wir oben in der Beispielrechnung gesehen haben, wird der Übertrag in die nächste<br />

Addition mit einbezogen, er wird immer weiter nach vorne gereicht, bis er verschwindet.<br />

Deshalb gibt es folgende Darstellung für die obige Tabelle:<br />

Summe := A XOR B XOR Carry-In (Wenn A und B gleich sind, ist das Ergebnis der ersten<br />

Verknüpfung 0, sonst 1. Ist nun Carry-In gleich dem ersten Ergebnis, wird Summe 0, sonst 1.)<br />

Carry-Out := (A AND B) OR (A AND Carry-In) OR (B AND Carry-In) (<strong>Die</strong> Ausdrücke in<br />

den Klammern werden 1, wenn beide Eingänge gleichzeitig 1 sind und der gesamte Ausdruck<br />

wird 1, wenn mindestens zwei <strong>von</strong> den geklammerten Ausdrücken 1 sind, sonst 0.)<br />

Für die <strong>technische</strong> <strong>Umsetzung</strong> benötigt man zwei Halbaddierer sowie ein OR-Gatter.<br />

Das Problem aber bleibt: Es können, trotz des Carry-In nur einstellige Binärzahlen addiert<br />

werden.<br />

Das lässt sich nun, da wir den Volladdierer verstehen, mit Hilfe des sogenannten Ripple-<br />

Carry-Addierers lösen. Dabei sind, einfach ausgedrückt, viele Volladdierer aneinander<br />

gehängt. Dabei ist der Eingang A in jedem Addierer eine Stelle des ersten Summanden, B<br />

eine des zweiten (also der erste Volladdierer berechnet die Summe der letzten Stellen der<br />

Summanden, der zweite die der vorletzten usw.). <strong>Die</strong> Stellen der Summe werden einzeln so<br />

berechnet und ergeben am Ende die Gesamtsumme. Der Carry-In wird benötigt, falls in einem<br />

Volladdierer ein Übertrag, also Carry-Out entsteht. <strong>Die</strong>ser wir dann an den nächsten<br />

Volladdierer als Carry-In-Signal weitergeleitet und dann in die nächste Addition mit<br />

einbezogen. Der Übertrag (Carry) „rieselt“ (engl.: to ripple) also durch die gesamte Binärzahl,<br />

bis er verschwindet.<br />

Im schlimmsten Fall wird er also vom letzten Element bis zum ersten durchgereicht.


Der Ripple-Carry-Addierer wird vor allem als Rechenwerk in Mikroprozessoren genutzt. Er<br />

ist also eine wichtige <strong>technische</strong> Entwicklung <strong>von</strong> großer Bedeutung, ohne die die<br />

Entwicklung der Computer bis zum heutigen Stand kaum möglich gewesen wäre.<br />

Quellen:<br />

Text:<br />

Protokoll zu „Praktische Übungen zu Computertechnik2 – Digitale<br />

Rechenschaltungen“, Kerstin Gößner, FSU Jena, SS 2010<br />

Bilder:<br />

Halbaddierer: http://www.volker-berg.de/QP2/Bilder/ha.gif, 25.01.2011, 15:02<br />

Volladdierer: http://www.volker-berg.de/QP2/Bilder/va.gif, 25.01.2011, 15:07<br />

Ripple-Carry-Adder: http://students.cs.tamu.edu/wanglei/csce350/handout/files/4-<br />

bit_ripple_carry_adder-2.png, 25.01.2011, 15:09<br />

Autor: Kerstin Gößner

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!