Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Paralleladdierer mit Übertragsvorausberechnung

Der Paralleladdierer mit Übertragsvorausberechnung bzw. Carry-Look-Ahead-Addierer (kurz: CLA-Addierer) ist eine logische Schaltung zur Addition mehrstelliger …

Inhalt5 Abschnitte
  1. 1. Überblick und Bedeutung
  2. 2. Grundidee der Übertragsvorausberechnung
  3. 3. Parallele Präfix-Berechnung
  4. 4. Schneller Inkrementer als Vorbild
  5. 5. Berechnung im CLA-Addierer

Überblick und Bedeutung

Ein Paralleladdierer mit Übertragsvorausberechnung, auch Carry-Look-Ahead-Addierer oder kurz CLA-Addierer, ist eine logische Schaltung zur Addition mehrstelliger Binärzahlen. Er addiert zwei n-stellige Binärzahlen und besitzt daher 2·n Eingänge. In der Regel kommt ein Eingang für einen eingehenden Übertrag hinzu. Da bei der Addition ein weiterer Übertrag entstehen kann, hat die Schaltung n+1 Ausgänge.

Der entscheidende Vorteil besteht darin, dass die Überträge nicht nacheinander durch alle Stellen laufen müssen. Stattdessen werden sie mit einer parallelen Präfix-Berechnung vorausberechnet. Dadurch beträgt die Schaltungsverzögerung nur O(log(n)), während die Schaltungsgröße, also die Zahl der benötigten Logikgatter, O(n) beträgt.

Ein Conditional-Sum-Addierer erreicht ebenfalls eine Verzögerung von O(log(n)), benötigt aber O(n^{log₂(3)}) Bauteile. Ein Carry-Ripple-Addierer benötigt zwar nur O(n) Bauteile, besitzt jedoch eine Verzögerung von O(n). Der CLA-Addierer verbindet somit asymptotisch geringe Verzögerung mit linearer Schaltungsgröße.

Grundidee der Übertragsvorausberechnung

Ein Addierwerk kann einen großen Teil der Addition ausführen, bevor der eingehende Übertrag bekannt ist. Dazu addiert es die beiden Summanden zunächst ohne diesen Übertrag. Am vorläufigen Ergebnis lässt sich erkennen, wie sich ein später eintreffender Übertrag auf den ausgehenden Übertrag auswirkt.

Bei einem 4-Bit-Addierwerk gelten drei Fälle:

• Liegt die vorläufige Summe zwischen 00000 und 01110, ist der ausgehende Übertrag unabhängig vom eingehenden Übertrag 0. Der eingehende Übertrag wird absorbiert.

• Bei der vorläufigen Summe 01111 wird der eingehende Übertrag unverändert weitergegeben: Aus 0 wird ein ausgehender Übertrag 0, aus 1 ein ausgehender Übertrag 1. Der Übertrag wird propagiert.

• Liegt die vorläufige Summe zwischen 10000 und 11110, ist der ausgehende Übertrag unabhängig vom eingehenden Übertrag 1. Ein Übertrag wird generiert.

Ein spezieller Ausgang des Addierwerks zeigt deshalb an, ob es einen Übertrag absorbiert, propagiert oder generiert. Diese Information kann hierarchisch für mehrere Teiladdierer zusammengefasst werden, ohne die Summe erneut zu berechnen oder den tatsächlichen Übertrag bereits zu kennen. Absorbiert der höherwertige Teil, absorbiert auch die Zusammenfassung. Generiert er, generiert auch die Zusammenfassung. Propagiert er, übernimmt die Zusammenfassung das Verhalten des niederwertigen Teils. Zwei propagierende Teile propagieren gemeinsam.

Parallele Präfix-Berechnung

Die Übertragsvorausberechnung beruht auf einer parallelen Präfix-Funktion. Für jede assoziative zweistellige Verknüpfung ∘: A×A→A auf einer Menge A ist sie definiert durch

PP_n^∘: A^n→A^n

PP_n^∘(x_{n−1}…x_0)=(y_{n−1}…y_0), wobei y_i=x_i∘…∘x_0 für 0≤i<n gilt.

„Assoziativ“ bedeutet, dass die Klammerung das Ergebnis nicht verändert. Deshalb können Teilresultate hierarchisch und parallel verbunden werden. Die Schaltung lässt sich mit Kosten O(n) und einer Verzögerung O(log(n)) implementieren.

Die rekursive Konstruktion beginnt mit PP_1^∘(x_0)=(y_0)=(x_0). Für PP_{2n}^∘ werden zunächst benachbarte Eingaben paarweise verknüpft. Ist

(y'{n−1},…,y'0)=PP_n^∘(x{2n−1}∘x{2n−2},…,x_1∘x_0),

dann gilt:

• y_{2i+1}=y'_i für 0≤i<n,

• y_{2i}=y'{i−1}∘x{2i} für 0<i<n,

• y_0=x_0.

Für n=2 ergibt sich beispielsweise PP_2^∘(x_1,x_0)=(x_1∘x_0,x_0).

Schneller Inkrementer als Vorbild

Ein Inkrementer Inc_n addiert zu einer n-stelligen Binärzahl den Wert 1. Er besitzt n Eingänge, n Ausgänge für die Ergebnisstellen und einen weiteren Ausgang für einen möglichen Übertrag am höchsten Stellenwert:

Inc_n: {0,1}^n→{0,1}^{n+1}

Inc_n(x_{n−1}…x_0)=(y_n…y_0).

Ein Übertrag von Stelle i zu Stelle i+1 entsteht genau dann, wenn x_0=…=x_i=1 ist. Die Stellen x_0…x_i propagieren den bei der Addition von 1 entstehenden Übertrag dann vollständig. Entsprechend gilt für y_{i+1}=1 genau dann, wenn entweder x_0…x_i den Übertrag propagieren oder x_{i+1}=1 ist, für 0≤i<n.

Alle Bedingungen „x_0…x_i propagieren“ können gleichzeitig als Präfixe

x_0∧x_1∧…∧x_i

berechnet werden. Dazu verwendet man PP_n^∧, weil die logische UND-Verknüpfung ∧ assoziativ ist. Dieses einfachere Beispiel zeigt das Grundprinzip, das beim CLA-Addierer auf Propagierungs- und Generierungsinformationen erweitert wird.

Berechnung im CLA-Addierer

Die Bits der beiden Summanden seien a_0…a_{n−1} und b_0…b_{n−1}; c_{−1} bezeichnet den Eingangsübertrag. c_i ist der Übertrag von Stelle i zu Stelle i+1. Sind alle Überträge bekannt, können die Summenbits parallel mit konstanter zusätzlicher Verzögerung und linearen Bauteilkosten berechnet werden:

s_i=a_i⊕b_i⊕c_{i−1}.

Für jede Stelle werden zunächst zwei vom Übertrag unabhängige Informationen bestimmt. Das Propagierungsbit

p_i=a_i⊕b_i für 0≤i<n

zeigt an, ob die Stelle einen eingehenden Übertrag weitergibt. Das Generierungsbit

g_i=a_i∧b_i für 0≤i<n

zeigt an, ob die Stelle selbst einen Übertrag erzeugt. Im Text wird die Generierungsinformation zuvor auch als g_{i+1}=g_{i+1}(a,b) bezeichnet; die anschließend verwendeten Formeln indizieren sie als g_i.

Zur gemeinsamen Berechnung aller Überträge wird auf Paaren aus Generierungs- und Propagierungsbit die assoziative Verknüpfung

(g′,p′)∘(c,p)=(g′∨(p′∧c),p∧p′)

definiert. Die erste Komponente beschreibt den resultierenden Übertrag: Er ist 1, wenn die betrachtete Stelle selbst generiert oder wenn sie propagiert und aus dem niedrigeren Teil ein Übertrag kommt. Die zweite Komponente ist 1, wenn beide zusammengefassten Bereiche einen Übertrag propagieren.

Damit werden alle Überträge gleichzeitig berechnet:

(c_i,d_i)=(g_i,p_i)∘…∘(g_0,p_0)∘(c_{−1},1).

Die d_i sind reine Hilfsvariablen. Gleichwertig lässt sich die gesamte Rechnung schreiben als

((c_{n−1},d_{n−1}),…,(c_{−1},d_{−1}))=PP_{n+1}^∘((g_{n−1},p_{n−1}),…,(g_0,p_0),(c_{−1},1)).

Nach der Präfix-Berechnung stehen alle benötigten Überträge bereit. Die endgültige Summe folgt aus

s_i=p_i⊕c_{i−1} für 0≤i<n

und

s_n=c_{n−1}.

So werden die Überträge hierarchisch statt nacheinander bestimmt; daraus ergeben sich die logarithmische Verzögerung O(log(n)) und die lineare Schaltungsgröße O(n).

Lernvideos zu Paralleladdierer mit Übertragsvorausberechnung

Weiterlesen

Addition Die Addition basiert auf dem Vorgang des Zählens. Deshalb verwendet man für den Vorgang, eine Addition auszuführen, neben Addieren auch den Ausdruck … Addierwerk Das Addierwerk (auch Addiernetz) ist die Hauptkomponente des Rechenwerks einer CPU. Das Addiernetz bildet aus den Summanden a 3..0 und b 3..0 die Summe s … Logikgatter Ein Logikgatter, auch nur Gatter (englisch (logic) gate) ist eine Anordnung (heutzutage praktisch immer eine elektronische Schaltung) zur Realisierung einer … Komplexität (Informatik) Die Komplexität eines Problems ist zum Beispiel entscheidend für die Kryptographie und insbesondere für die asymmetrische Verschlüsselung: So verlässt sich … Landau-Symbole Landau-Symbole (auch O-Notation, englisch big O notation) werden in der Mathematik und in der Informatik verwendet, um das asymptotische Verhalten von … Carry-Ripple-Addierer Ein n-Bit-Carry-Ripple-Addierer kann zwei n-stellige Binärzahlen addieren, das Ergebnis hat n+1 Stellen. Das Schaltnetz hat damit 2n+1 (bzw. 2n ohne Carry in) … Stellenwertsystem Ein Stellenwertsystem, Positionssystem oder polyadisches Zahlensystem ist ein Zahlensystem, dessen Zahlzeichen aus Ziffern besteht, deren jeweiliger Beitrag … Konjunktion (Logik) Gelesen wird die Konjunktion zweier Aussagen A, B meist als „A und B“. In der klassischen Logik ist die Konjunktion zweier Aussagen „A und B“ genau dann wahr, … Assoziativgesetz Eine Verknüpfung ist assoziativ, wenn die Art der Klammerung bei der Ausführung keinen Einfluss auf das Ergebnis hat. Die Klammerung kann also bei einer … Rekursion Als Rekursion (lateinisch recurrere ‚zurücklaufen') wird ein prinzipiell unendlicher Vorgang bezeichnet, der sich selbst als Teil enthält oder mithilfe von sich …