DE3700991C2 - Digitaler Übertragsvorgriffsaddierer - Google Patents

Digitaler Übertragsvorgriffsaddierer

Info

Publication number
DE3700991C2
DE3700991C2 DE3700991A DE3700991A DE3700991C2 DE 3700991 C2 DE3700991 C2 DE 3700991C2 DE 3700991 A DE3700991 A DE 3700991A DE 3700991 A DE3700991 A DE 3700991A DE 3700991 C2 DE3700991 C2 DE 3700991C2
Authority
DE
Germany
Prior art keywords
carry
adder
bit
cells
cell
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE3700991A
Other languages
English (en)
Other versions
DE3700991A1 (de
Inventor
Thang Vo
Patrick P Gelsinger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE3700991A1 publication Critical patent/DE3700991A1/de
Application granted granted Critical
Publication of DE3700991C2 publication Critical patent/DE3700991C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
    • G06F7/508Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using carry look-ahead circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)
  • Dc Digital Transmission (AREA)

Description

Die Erfindung bezieht sich auf einen Digitaladdierer nach dem Oberbegriff des Anspruchs 1 bzw. auf ein Verfahren zum Verkürzen einer Übertrags-Ausbreitungsverzögerung nach dem Oberbegriff des Anspruchs 6.
Ein Hauptbestandteil jedes Mikroprozessors ist die Arithmetik-Logik-Einheit (ALU). Eine primäre Funktion jeder ALU ist deren Befähigung zur Addition digitaler Zahlen. Eine Addierschaltung in der ALU liefert die Mittel zur Kombina­ tion von zwei Zahlen und zum Erzeugen einer Summe.
Ein typischer Halbaddierer addiert zwei Ziffern und bil­ det eine Summe sowie einen Übertrag. Ein Volladdierer nimmt zusätzlich einen einlaufenden Übertrag an und addiert den einlaufenden Übertrag, wobei eine Summe und ein Ausgabeüber­ trag erzeugt werden. Der Ausgabeübertrag dient als Eingabe­ übertrag für den Volladdierer des nächst höher bewerteten Bits. Eine sequentielle Kopplung von individuellen Vollad­ dierern ergibt einen kompletten Addierer, und die Größe des Addierers wird durch die Anzahl von in Kaskade geschalteten Stufen bestimmt. Bei einem einfachen Serienübertragsaddierer (ripple adder) ist jedoch die Verarbeitungszeit durch die Notwendigkeit erhöht, einen Übertrag in der vorausgehenden Stufe vor der Durchführung der Addition in der aktuellen Stufe zu erzeugen.
Um diesen Mangel auszuräumen, wurden Vorgriffsschaltun­ gen entwickelt. Eine typische Vorgriffsschaltung betrachtet eine gewisse Anzahl von zu addierenden Bits und erzeugt einen Ausgabeübertrag vor der Addition dieser Bits. Daher kombiniert eine typische bekannte Schaltung vier Bits in ei­ ner Stufe und erzeugt einen Ausgabeübertrag für die nächste Stufe vor der Erzeugung einer Summe in der Stufe. Die Vor­ griffsschaltung reduziert das Erfordernis des Übertrags- Durchlaufs (rippling) durch jede Bitposition und reduziert dadurch die Verarbeitungszeit. Leider werden Vorgriffsschal­ tungen ziemlich groß, wenn die Anzahl von Bits in einer Stufe erhöht wird. Daher war es bekannte Praxis, die Anzahl von Bits auf vier pro Stufe zu beschränken.
Aus US-A-3,987,291 ist darüber hinaus ein Digitaladdie­ rer bekannt, bei dem jeweils 8 Bits (1 Byte) in einer Über­ trags-Vorgriffsschaltung zusammengefaßt sind.
EP 0 164 450 A2 beschreibt einen Digitaladdierer mit ei­ ner Übertrags-Vorgriffsschaltung, die eine Verkürzung der zum Durchlauf des Übertragssignals benötigten Zeit ermög­ licht. Auch bei diesem bekannten Digitaladdierer sind je­ weils eine Gruppe aufeinanderfolgender Bits in Blöcken zu­ sammengefaßt, wobei jedem dieser Blöcke eine Übertrags-Vor­ griffsschaltung zugeordnet ist. Normalerweise muß jede Über­ trags-Vorgriffsschaltung eines Blockes von dem davorliegen­ den Block ein Übertragssignal empfangen, um anschließend daraus das an den folgenden Block abzugebende Übertragssi­ gnal bestimmen zu können. Damit die Übertrags-Vorgriffs­ schaltung eines Blockes mit dem Beginn der Berechnung des Übertrags nicht warten muß, bis das Übertragssignal vom vor­ hergehenden Block angelegt wurde, verwendet diese bekannte Übertrags-Vorgriffsschaltung zwei parallel arbeitende speku­ lative Übertrags-Vorgriffsschaltungen. Beide spekulativen Übertrags-Vorgriffsschaltungen bestimmen den Ausgangs-Über­ trag des jeweiligen Blocks, wobei eine der beiden Schaltun­ gen annimmt, daß der Eingangsübertrag gleich 0 ist, während die andere der beiden spekulativen Übertrags-Vorgriffsschal­ tungen annimmt, daß der Eingangsübertrag gleich 1 ist. Beide Übertrags-Vorgriffsschaltungen schließen die spekulative Be­ rechnung des Ausgangs-Übertrags ab, bevor der Eingangs-Über­ trag von dem vorhergehenden Block berechnet und eingegeben worden ist. Der Eingangs-Übertrag dient dann nur noch dazu, das richtige der beiden spekulativen Ergebnisse auszuwählen. Dazu wird eine erheblich kürzere Zeit benötigt.
Da bei diesem bekannten Addierer die Übertrags-Vor­ griffsschaltungen, die den höher bewerteten Bits zugeordnet sind, erst später mit einem Eingangs-Übertragssignal beauf­ schlagt werden, als die den niedriger bewerteten Bits zuge­ ordneten Blöcke, verbleibt für die Berechnung der spekulati­ ven Ausgangs-Überträge bei den Blöcken der höher bewerteten Bits mehr Zeit. Deshalb wird zusätzlich vorgeschlagen, die verbleibende Zeit dadurch auszunutzen, daß eine größere An­ zahl von Bits den höher bewerteten Blöcken und somit den Übertrags-Vorgriffsschaltungen zugeordnet wird. Während bei­ spielsweise die den niedriger bewerteten Bits zugeordneten Übertrags-Vorgriffsschaltungen jeweils die spekulativen Überträge von 4 Bits bestimmen, können die den höherwertigen Bits zugeordneten Übertrags-Vorgriffsschaltungen die speku­ lativen Überträge von Gruppen von 8 oder auch 16 Bits be­ stimmen.
Im folgenden wird die Weiterleitung eines Übertrags bei einem in Blöcke unterteilten Digitaladdierer betrachtet, bei dem jedem Block eine Übertrags-Vorgriffsschaltung zugeordnet ist. Ein in den Digitaladdierer eingegebener Eingangs-Über­ trag wird solange weitergeleitet, bis an einer Bitstelle kein Übertrag mehr auftritt. Darüberhinaus wird ein an einer beliebigen Bitstelle erzeugter Übertrag bis zu der höher be­ werteten Bitstelle weitergeleitet, an der kein Übertrag mehr auftritt. Die längste für die Weiterleitung eines Übertrags benötigte Zeit tritt dann auf (worst case), wenn bei einem Eingangs-Übertrag von 0 ein Übertrag an der ersten Bitstelle erzeugt wird, dieser Übertrag bis zur letzten Stufe weiter­ geleitet werden muß und in der letzten Stufe kein Übertrag mehr erzeugt wird. In diesem schlechtesten Fall muß der Übertrag zunächst durch sämtliche der ersten Bitstelle fol­ genden Bitstellen des ersten Blocks weitergeleitet werden. Dann wird der Übertrag durch mehrere im mittleren Bereich der Kette angeordnete Übertrags-Vorgriffsschaltungen hin­ durchgeleitet. Schließlich muß der Übertrag im letzten Block wiederum durch sämtliche der letzten Bitstelle vorangehende Bitstellen durchgeleitet werden. Die Übertrags-Vorgriffs­ schaltungen des ersten und des letzten Blocks sind in diesem Fall für die Weiterleitung des Übertrags innerhalb der Bit­ stellen der beiden Blöcke ohne Bedeutung.
Es ist eine Aufgabe der Erfindung, die durchschnittliche Gesamtverarbeitungszeit des Digitaladdierers ohne erhebli­ chen schaltungstechnischen Mehraufwand zu verringern.
Diese Aufgabe wird erfindungsgemäß durch einen Digi­ taladdierer mit den Merkmalen des Anspruchs 1 bzw. ein Ver­ fahren zum Verkürzen einer Übertrags-Ausbreitungsverzögerung in einem Digitaladdierer mit den Merkmalen des Anspruchs 6 gelöst.
Grundgedanke der Erfindung ist die Bildung von Blöcken für Übertrags-Vorgriffsschaltungen (carry look-ahead) mit unterschiedlicher Bitstellenanzahl (und somit unterschiedli­ cher Anzahl von miteinander verketteten Addierstufen je Block), wobei die unterschiedlichen Blöcke der miteinander verketteten bzw. in Kaskade geschalteten Bitaddierstufen so angeordnet werden, daß ein in der Mitte angeordneter Block die meisten Bitstellen aufweist und die mehr am Beginn und am Ende der Kaskade angeordneten Blöcke weniger Bitstellen aufweisen.
Die Verringerung der Bitstellen je Block zu Beginn der Kette führt zu einer früheren Weiterleitung eines Übertrags­ signals über die Übertrags-Vorgriffsschaltungen und somit zu einem im Durchschnitt früheren Beginn der Ergebnisberechnun­ gen in weiter hinten angeordneten Stufen.
Die Verringerung der Bitstellenanzahl der zwischen der Mitte und dem Ende der Kette angeordneten Blöcke führt zu einer schnelleren Berechnung der Additionsergebnisse inner­ halb der jeweiligen Blöcke. Je weiter der Block am Ende der Kette liegt, desto später beginnt er mit der Berechnung der Ergebnisse. Da sich erfindungsgemäß seine Größe verringert, beendet er frühzeitiger seine Berechnungen. Die kürzere Be­ rechnungszeit je Block kompensiert zum Teil den Zeitverlust, der durch den späteren Beginn der Berechnung entsteht.
Durch die Kombination des frühzeitigen Erzeugens eines durch die Übertrags-Vorgriffsschaltungen weiterzuleitenden Übertrags in den Stufen zu Beginn der Kette mit der kürzeren Blockberechnungszeit bei den am Ende der Kette liegenden Stufen führt (gemittelt über eine Vielzahl zufälliger Addi­ tionsoperationen) zu einer verkürzten Verarbeitungszeit des Digitaladdierers.
Die Wahl der Anzahl, Größe und Reihenfolge der Zellen­ gruppen hängt außerdem von der Relation der Verzögerungszeit des Übertrags beim Durchlaufen der Übertrags-Vorgriffsschal­ tung zu der Verzögerungszeit bei der Bildung des Übertrags in einer Bitstufe ab.
Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
Im folgenden wird die Erfindung anhand der Zeichnung näher erläutert. In der Zeichnung zeigen:
Fig. 1 einen bekannten Serienübertragsaddierer;
Fig. 2 einen bekannten Übertragsvorgriffsaddierer;
Fig. 3 die herkömmliche Praxis der Gruppierung von vier Bits für jede Übertragsvorgriffsschaltung;
Fig. 4 eine bekannte Darstellung der Funktionsweise eines Übertragsvorgriffs- bzw. Parallelübertragsaddie­ rers; und
Fig. 5 eine Darstellung der uneinheitlichen Gruppierung nach der vorliegenden Erfindung.
Beschrieben wird ein verbessertes Schema für Übertragsvorgrif­ fe (carry lookaheads). Die bekannte Methode wird zunächst erörtert, um die Grundlage anzugeben, auf der die vorliegende Erfindung aufbaut. Die Erfindung erwuchs aus der Notwendig­ keit, die Geschwindigkeit eines 32-Bit-Prozessors zur erhöhen, bei dem ein Demultiplex-32-Bit-Bus Verwendung findet. Frühere Übertragvorgriffsgruppierungen verwendeten einheitliche Grup­ pierungen, gewöhnlich von vier Bits, als Resultat der TTL- -Technologie. Die Erfindung, die für aktuelle Halbleiter­ packungsdichten besonders geeignet ist, verkürzt die Verarbei­ tungsgeschwindigkeit beträchtlich.
Im folgenden wird auf Fig. 1 Bezug genommen, in der ein be­ kannter Serienübertragsaddierer gezeigt ist. Ein vollständiger 32-Bit-Addierer addiert zwei 32-Bit-Zahlen A und B sowie einen Eingabeübertrag 11 und erzeugt eine Summe und einen Ausgabe­ übertrag 12. Eine Bit-Null-Addierstufe 10 nimmt Bit A₀ 13, B₀ 14 und Eingabeübertrag (C₀) 11 auf und erzeugt das Bit Null der Summe S₀ 15 und den Übertrag C₁ 16 für die näch­ ste Bitstufe 17. Die Stufe 17 führt die gleiche Folge von Operationen an den zweiten Bits (A₁, B₁) 18 und 19 durch und erzeugt S₁ 20 und C₂ 21. Die Folge wird 32mal wieder­ holt, worauf COUT (C32) 12 erzeugt wird. Wenn jede Stufe eine t-Periode zur Durchführung der Operation benötigt, er­ zeugt die bekannte 32-Bit-Übertragsmethode einen Ausgabeüber­ trag 12 in 32t-Perioden.
Fig. 2 zeigt einen bekannten 32-Bit-Addierer, bei dem ein Vorgriffsschema verwendet wird. Jede Bitstufe 22 enthält jetzt eine PG (Ausbreitungs/Erzeugungs)-Schaltung 23. Jede PG-Schal­ tung 23 liefert ein Ausbreitungssignal 24 und erzeugt ein Signal 25 entsprechend der folgenden Wahrheitstabelle:
Gn = An Bn (Gleichung 1)
Pn = An ⊕ Bn (Gleichung 2)
und eine Summe 26 nach der Gleichung
Sn=An ⊕ Bn ⊕ Cn (Gleichung 3)
wenn Pn = 1 wird jeder Eingabeübertrag zum Ausgabeübertrag übertragen, unabhängig von dem Wert von Gn. Wenn Pn = 0, so bestimmt der Wert Gn den Ausgabeübertrag unabhängig von dem Wert des Eingabeübertrags. Das Ausbreitungssignal 24 und das Erzeugungssignal 25 sind im Stande der Technik bekannt, und es wurden viele Schaltungen zur Erzeugung dieser beiden Signale konzipiert.
Die Vorgriffsschaltung 30 akzeptiert Ausbreitungs- und Erzeu­ gungssignale 24 und 25 aus den Bit-Null bis Bit-Drei-Stufen 30, 31, 32 und 33 sowie Eingabeübertrag (C₀) 34. Die Schal­ tung 30 erzeugt intern ihre eigenen Gruppe P- und Gruppe G-Si­ gnale entsprechend der folgenden Wahrheitstabelle:
Gg=G₃ + P₃ G₂ + P₃ P₂ G₁ + P₃ P₂ P₁ G₀ (Gleichung 4)
Pg = P₃ P₂ P₁ P₀ (Gleichung 5)
Die Schaltung 30 erzeugt danach ein Ausgangssignal 35, das dem Ausgabeübertrag C₄ von Stufe 33 äquivalent ist, wobei C₄ bestimmt wird durch
Cn=Gn-1 + Pn-1 Gn-2 + Pn-1 Pn-2 Gn-3 + . . . +Pn-1Pn-2 . . . P₀C₀ (Gleichung 6)
und
C₄ = G₃ + P₃ G₂ + P₃ P₂ G₁ + P₃P₂P₁G₀+P₃P₂P₁P₀C₀ (Gleichung 7)
was äquivalent ist zu
C₄ = Gg + Pg C₀ (Gleichung 8)
Durch Verwendung einer Vorgriffsschaltung 30 wird ein Ausgabe­ übertragswert für einen Block gleichzeitig mit der Berechnung der Summenwerte für diesen Block (Stufen 30-33) berechnet.
Fig. 3 zeigt eine Gruppierung für vier Bits pro Vorgriffs­ block 40. In einem 32-Bit-Addierer sind acht Blöcke zur Erzeu­ gung eines Ausgabeübertrags 41 notwendig. Jeder Block 40 kop­ pelt einen Übertrag 42 wellenartig zum nächst höher bewerteten Block. Da die Vorgriffsblöcke 40 gleichzeitig mit der Summier­ operation in den Bitstufen Übertragsbestimmungen ausführen, wird die Übertragsausgabe 41 viel schneller als bei der Se­ rien- bzw. Wellenkonfiguration gemäß Fig. 1 erzeugt. Da außerdem jeder Block 40 parallel arbeiten kann, bestimmt der begrenzende Faktor die für die Ausbreitung eines Übertrags durch die Übertragsvorgriffsschaltung benötigte Zeitdauer.
Im folgenden wird auf Fig. 4 Bezug genommen, in der eine bessere Darstellung der vollständigen Funktionsweise eines Vorgriffsblocks 40 gezeigt ist. Jeder Block 40 ist eine 4-Bit- Gruppierung ähnlich der Darstellung in Fig. 3. Der Übertrag 42 von jedem Block wird durch einen intern erzeugten Funk­ tionswert (Gg) 45 oder einen übertragenen Wert (Pg) 46 be­ stimmt, (wobei Cout = Gg + Pg Ci). Bitaddierer 44 für jedes Bit sind gekoppelt in Vierergruppen für jeden Vorgriff gezeigt. Daher tritt der längste Welleneffekt (ripple effect) auf, wenn sich ein Eingabeübertrag C₀ 47 durch alle acht Vorgriffsblöcke 40 ausbreiten muß. Jedesmal dann, wenn eine Übertragsausbreitung (Pg) zu Null wird, wird die Übertragsaus­ breitungskette beendet.
In einem Falle, bei dem C₀ 47 = 1 und C₃₂ ebenfalls = 1 ist, bleibt der Ausbreitungsweg durch acht vollständige Vor­ griffsblöcke 40 ununterbrochen (unter der Annahme, daß ein Eingabeübertrag C₀ 47 durch jede Vorgriffsstufe übertragen wird). Wenn die Verzögerung für jeden Vorgriff eine L-Zeitpe­ riode ist, so ist die gesamte Ausbreitungsverzögerung t = 8L.
Tatsächlich tritt der ungünstigste Fall dann ein, wenn der Übertrag an der Ausgabebitstufe 0 auftritt und an der Ausgabe­ bitstufe 30 endet. Der für den ungünstigsten Fall geltende Übertragsausbreitungsweg ist durch die Pfeile 48 dargestellt. Da die Stufen 0 und 31 den Übertrag nicht übertragen (P₀ = P₃₁ = 0), muß der Übertrag durch Bitaddierer für Bits 1, 2, 3, 28, 29 und 30 durchlaufen. Auch muß der Übertrag durch Vorgriffsblöcke 2 bis 7 (6 Blöcke) übertragen werden. Wenn daher die Verzögerung für jeden Bitaddierer zum Übertragen eines Übertrags eine Zeitperiode B ist, so ergibt sich die gesamte Ausbreitungsverzögerung zu:
T = 3B + 6L + 3B
Wenn B = L, dann T = 12B.
Obwohl Vorgriffsschaltungen von mehr als vier Bits möglich sind, wird die Logikschaltung, wie durch Gleichung (6) ge­ zeigt, kompliziert. Auch während der frühen Phasen der Kon­ struktion integrierter Schaltungen trugen übliche TTL-Baugrup­ pen vier Bitaddierer pro Baugruppe. Daher wurde eine 4-Bit- Vorgriffsschaltung in einer einzigen Baugruppe bzw. auf einem Chip zur Ergänzung der vier Bitaddierer gewählt. Dieser Trend hat sich bis heute fortgesetzt.
Die Erfindung erwuchs aus dem Bedarf an einem schnelleren 32-Bit-Mikroprozessor, der in einem einzigen Halbleiterchip einbezogen ist. Wegen der Speichertechnologie hoher Packungs­ dichte war die tatsächliche Anzahl von Bits in einer Bitgrup­ pierung kein Problem für die Packung, ausgenommen der Tat­ sache, daß eine große Anzahl von Bits pro Gruppe zu einer komplizierten Schaltung führte, die dem Zweck eines Vorgriffs zuwider lief.
Fig. 5 zeigt die Erfindung im Betrieb. Der 32-Bit-Volladdie­ rer 60 ist in einer Kaskaden-Wellenform angeordnet, wobei der Bit-Null-Addierer 50 der Addierer für das am niedrigsten be­ wertete Bit (LSB) und der Bit-31-Addierer 65 der Addierer für das am höchsten bewertete Bit (MSB) ist. Jeder Bit-Addierer 61 des 32-Bit-Addierers 60 akzeptiert zwei Bits sowie einen Ein­ gabeübertrag von dem vorhergehenden Bitaddierer und erzeugt einen Ausgabeübertrag für den nächsten Bitaddierer (nicht gezeigt). LSB-Addierer 50 akzeptiert einen Eingabeübertrag 64 und MSB-Addierer 65 erzeugt einen Ausgabeübertrag 66. Jeder Bit-Addierer 61 weist auch eine PG-Schaltung auf, welche P und G-Leitungen (nicht gezeigt) zum entsprechenden Vorgriffs-Über­ tragserzeugungsblock 67 bildet. Jeder Vorgriffsblock 67 ist in Kaskade geschaltet, so daß er einen Eingabeübertrag von dem vorhergehenden Block aufnimmt und einen Ausgabeübertrag zum nächstfolgenden Block erzeugt. Auch akzeptiert der erste Block 52 einen Eingabeübertrag 64, und der letzte Block 62 erzeugt einen Ausgabeübertrag 66.
Die uneinheitliche bzw. unregelmäßige Gruppierung enthält acht Blöcke von Übertragsvorgriffen mit großen Gruppierungen in der Mitte und kleineren Gruppen an den Extremstellen. Bit-Null-Ad­ dierer 50 und Bit-Eins-Addierer 51 enthalten eine erste Grup­ pierung, und der Übertragsvorgriff wird vom ersten Block 52 erzeugt. Der zweite Block 55 besteht aus drei Bits, und die Anzahl von Bits pro Gruppierung nimmt zu bis zum Erreichen des Mittelblocks 56, worauf die Anzahl von Bits pro Gruppierung für die nachfolgenden Blöcke abnimmt. Der Ausgabeübertrag von jedem Block von Bits wird von einem Wellen-Übertragsausgang 70 oder einem Vorgriffsausgang 71 gebildet, der dann als Über­ tragseingabe in die nächste Gruppe von Bits eingegeben wird. Natürlich ist eine Ausgabe vom Vorgriffsblock 67 bevorzugt.
Die Bitfolge ist in der Figur mit der folgenden Gruppierung angegeben:
3 4 5 6 5 4 3 2.
Wie dargestellt ist, beginnt der ungünstigste Ausbreitungsfall bei Position 53 und endet bei Position 54. Er hat einen Weg von Bit-Stufe 1 über Vorgriffsblöcke 2 bis 7 bis zu Bitstufen 29 und 30 und eine Gesamtverzögerung von T = 2B + 6L + 1B (B ist die Bitstufenverzögerung und L eine Vorgriffsblockver­ zögerung), wobei T = 9B, wenn L = B.
Diese Verzögerung bedeutet eine Einsparung von 25% gegenüber einheitlichen bzw. gleichmäßigen Gruppierungen, die im ungün­ stigsten Fall eine Verzögerung von 12B haben. Dies führt zu einer 25%igen Reduktion der Prozessorzeit gegenüber bekannten einheitlichen bzw. gleichmäßigen Gruppierungen von Bits.
In dem besonderen Ausführungsbeispiel wurde das folgende Mu­ ster gewählt:
3 4 5 6 5 5 4,
da sich gezeigt hat, daß die B-Verzögerung kleiner als die L-Verzögerung ist, so daß dieses Muster die optimale Ausbrei­ tungsverzögerung ergab.
Obwohl 32-Bit-Muster bei dem bevorzugten Ausführungsbeispiel der Erfindung verwendet wurden, läßt sich die Erfindung auch auf andere als 32-Bits anwenden. Außerdem können viele un­ gleichmäßige Gruppierungen je nach den Charakteristiken der L- und B-Verzögerungen verwendet werden. Die Erfindung führt unter Verwendung uneinheitlicher Vorgriffsgruppierungen zu einer optimalen (minimalen) Übertragswegverzögerung. Außerdem kann die Erfindung auch in anderen Addierschaltungen verwendet werden und ist nicht nur auf die Addierschaltung der ALU be­ schränkt.

Claims (8)

1. Digitaladdierer (60) mit einer Mehrzahl von Addierer­ zellen (61), die zum Addieren zweier Binärzahlen (A, B) kas­ kadiert angeordnet sind, wobei jede Addiererzelle (61) ein entsprechendes Bit (A₀, B₀; A₁, B₁; A₂, B₂; . . ) jeder der Bi­ närzahlen (A, B) und ein Übertrags-Eingangsbit (C₀, C₁ . . . , C₃₁) empfängt und ein Summenbit (S₀, S₁, . . . ) und ein Über­ trags-Ausgangsbit (C₁, C₂, . . . C₃₂) erzeugt und wobei jede Ad­ diererzelle ein Übertrags-Weiterleitsignal (P₀, P₁, . . . ) und ein Übertrags-Erzeugungssignal (G₀, G₁, . . . ) erzeugt, und einer Übertragserzeugungseinrichtung aufweisend:
eine Vielzahl kaskadenartig angeordneter Über­ trags-Vorgriffsschaltungen (67), die jeweils mit einer eine variierende Anzahl der Addiererzellen aufweisenden Zellen­ gruppe gekoppelt sind,
wobei jede der Übertrags-Vorgriffsschaltungen (67) parallel zu ihrer zugehörigen Zellengruppe derart gekoppelt ist, daß eine Übertragsweiterleitung durch die Zellengruppe hindurch von der entsprechenden Übertrags-Vorgriffsschaltung bestimmt wird,
dadurch gekennzeichnet,
daß jede der Übertrags-Vorgriffsschaltungen die Über­ trags-Weiterleitsignale und die Übertrags-Erzeugungssignale von den Addiererzellen ihrer zugehörigen Zellengruppe emp­ fängt, um ein Übertrags-Ausgangsbit zu erzeugen,
daß eine etwa in der Mitte der kaskadenartig angeordne­ ten Übertragsvorgriffsschaltungen angeordnete Übertrags-Vor­ griffsschaltung mit einer Zellengruppe mit einer höchsten Anzahl von Addiererzellen gekoppelt ist und
daß die jeweils weiter in Richtung der beiden Enden der Kette der kaskadenartig angeordneten Übertrags-Vorgriffs­ schaltungen mit Zellengruppen mit einer abnehmenden Anzahl von Addiererzellen gekoppelt sind.
2. Digitaladdierer nach Anspruch 1, dadurch gekennzeich­ net, daß 32 Addiererzellen in Kaskade angeordnet sind.
3. Digitaladdierer nach Anspruch 2, dadurch gekennzeich­ net, daß die Zellengruppen in der Reihenfolge von der Gruppe der am höchsten bewerteten Bits zu der Gruppe der am gering­ sten bewerteten Bits 3, 4, 5, 6, 5, 4, 3 bzw. 2 Addiererzel­ len aufweisen.
4. Digitaladdierer nach Anspruch 2, dadurch gekennzeich­ net, daß die Zellengruppen in der Reihenfolge von der Gruppe der am höchsten bewerteten Bits zu der Gruppe der am gering­ sten bewerteten Bits 3, 4, 5, 6, 5, 5, bzw. 4 Addiererzellen aufweisen.
5. Digitaladdierer nach einem der Ansprüche 1 bis 4, da­ durch gekennzeichnet, daß er auf einem Halbleiterchip ange­ ordnet ist.
6. Verfahren zum Verkürzen einer Übertrags-Ausbreitungs­ verzögerung in einem Digitaladdierer, wobei mehrere Addiererzellen zum Addieren zweier Binärzahlen kaskadenartig hintereinander angeordnet werden, wobei jede Addiererzelle so angeordnet wird, daß sie ein entsprechendes Bit jeder der Binärzahlen und ein Übertrags-Eingangsbit emp­ fängt und ein Summenbit und ein Übertrags-Ausgangsbit zur Verfügung stellt, und wobei jede Addiererzelle darüber hin­ aus ein Übertrags-Weiterleitsignal und ein Übertrags-Erzeu­ gungssignal einer Übertrag-Vorgriffsschaltung zur Verfügung stellt, dadurch gekennzeichnet,
daß die Addiererzellen in Gruppen zum Erzeugen eines Übertrags-Vorgriffs für die jeweilige Gruppe mit einer vari­ ierenden Anzahl von Addiererzellen pro Gruppe eingeteilt werden, wobei die Gruppe mit der größten Anzahl von Addier­ erzellen etwa in der Mitte der kaskadenartig hintereinander­ gereihten Addiererzellen angeordnet wird und Gruppen mit ab­ nehmend geringeren Anzahlen von Addiererzellen von der Mitte entfernt angeordnet werden;
daß eine Mehrzahl der Übertrags-Vorgriffsschaltungen in Reihe angeordnet wird, um einen Übertrags-Weiterleitungspfad für sämtliche Zellengruppen zur Verfügung zu stellen; und
daß jede der Zellengruppen mit der zugehörigen Über­ trags-Vorgriffsschaltung gekoppelt wird.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß bei Einteilen der Addiererzellen in Gruppen 32 Addierer­ zellen in Gruppen von 3, 4, 5, 6, 5, 4, 3 bzw. 2 Addierer­ zellen eingeteilt werden.
8. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß beim Einteilen der Addiererzellen in Gruppen 32 Addier­ erzellen in Gruppen zu 3, 4, 5, 6, 5, 5, bzw. 4 Addiererzel­ len eingeteilt werden.
DE3700991A 1986-01-21 1987-01-15 Digitaler Übertragsvorgriffsaddierer Expired - Fee Related DE3700991C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/820,384 US4737926A (en) 1986-01-21 1986-01-21 Optimally partitioned regenerative carry lookahead adder

Publications (2)

Publication Number Publication Date
DE3700991A1 DE3700991A1 (de) 1987-07-23
DE3700991C2 true DE3700991C2 (de) 1996-02-01

Family

ID=25230620

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3700991A Expired - Fee Related DE3700991C2 (de) 1986-01-21 1987-01-15 Digitaler Übertragsvorgriffsaddierer

Country Status (8)

Country Link
US (1) US4737926A (de)
JP (1) JP2594428B2 (de)
KR (1) KR940008613B1 (de)
CN (1) CN1003678B (de)
DE (1) DE3700991C2 (de)
GB (1) GB2185605B (de)
HK (1) HK57290A (de)
SG (1) SG34590G (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4942548A (en) * 1987-06-25 1990-07-17 International Business Machines Corporation Parallel adder having removed dependencies
EP0310456A3 (de) * 1987-10-01 1990-12-05 Sony Magnescale, Inc. Tonmischverfahren
WO1989008294A1 (en) * 1988-02-29 1989-09-08 Chopp Computer Corporation Carry generation method and apparatus
US5122982A (en) * 1988-02-29 1992-06-16 Chopp Computer Corporation Carry generation method and apparatus
US4924423A (en) * 1988-04-25 1990-05-08 International Business Machines Corporation High speed parity prediction for binary adders using irregular grouping scheme
US4905180A (en) * 1988-12-16 1990-02-27 Intel Corporation MOS adder with minimum pass gates in carry line
US5136539A (en) * 1988-12-16 1992-08-04 Intel Corporation Adder with intermediate carry circuit
JPH02245926A (ja) * 1989-03-20 1990-10-01 Fujitsu Ltd 論理回路
US5361370A (en) * 1991-10-24 1994-11-01 Intel Corporation Single-instruction multiple-data processor having dual-ported local memory architecture for simultaneous data transmission on local memory ports and global port
AU2902092A (en) * 1991-10-24 1993-05-21 Intel Corporation Data processing system
JPH0651950A (ja) * 1992-07-30 1994-02-25 Mitsubishi Electric Corp 加算回路
EP0590251A2 (de) * 1992-09-22 1994-04-06 Motorola, Inc. Hochgeschwindigkeitsaddierer
US5483478A (en) * 1992-10-16 1996-01-09 Xilinx, Inc. Method and structure for reducing carry delay for a programmable carry chain
US5337269A (en) * 1993-03-05 1994-08-09 Cyrix Corporation Carry skip adder with independent carry-in and carry skip paths
US5327369A (en) * 1993-03-31 1994-07-05 Intel Corporation Digital adder and method for adding 64-bit, 16-bit and 8-bit words
US5508952A (en) * 1993-10-19 1996-04-16 Kantabutra; Vitit Carry-lookahead/carry-select binary adder
GB2293665A (en) * 1994-09-29 1996-04-03 Texas Instruments Ltd A look-ahead scheme.
US5581497A (en) * 1994-10-17 1996-12-03 Intel Corporation Carry skip adder with enhanced grouping scheme
US5701504A (en) * 1994-12-28 1997-12-23 Intel Corporation Apparatus and method for addition based on Kogge-Stone parallel algorithm
US5619442A (en) * 1995-04-07 1997-04-08 National Semiconductor Corporation Alternating polarity carry look ahead adder circuit
US5978826A (en) * 1995-12-01 1999-11-02 Lucent Techologies Inc. Adder with even/odd 1-bit adder cells
US5854918A (en) * 1996-01-24 1998-12-29 Ricoh Company Ltd. Apparatus and method for self-timed algorithmic execution
US5835782A (en) * 1996-03-04 1998-11-10 Intel Corporation Packed/add and packed subtract operations
US6205463B1 (en) * 1997-05-05 2001-03-20 Intel Corporation Fast 2-input 32-bit domino adder
US6735612B1 (en) * 1997-06-24 2004-05-11 International Business Machines Corporation Carry skip adder
US6405233B1 (en) 1999-06-30 2002-06-11 Intel Corporation Unaligned semaphore adder
DE10050589B4 (de) 2000-02-18 2006-04-06 Hewlett-Packard Development Co., L.P., Houston Vorrichtung und Verfahren zur Verwendung beim Durchführen einer Gleitkomma-Multiplizier-Akkumulier-Operation
US6539413B1 (en) * 2000-03-15 2003-03-25 Agere Systems Inc. Prefix tree adder with efficient sum generation
US6922717B2 (en) 2001-09-28 2005-07-26 Intel Corporation Method and apparatus for performing modular multiplication
US20030065696A1 (en) * 2001-09-28 2003-04-03 Ruehle Michael D. Method and apparatus for performing modular exponentiation
US7325025B2 (en) * 2001-12-18 2008-01-29 Intel Corporation Look-ahead carry adder circuit
US7516173B2 (en) * 2004-08-04 2009-04-07 Intel Corporation Carry-skip adder having merged carry-skip cells with sum cells
KR100867641B1 (ko) * 2006-07-31 2008-11-10 삼성전자주식회사 조건 선택 가산기

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL213922A (de) * 1957-01-22
US3697735A (en) * 1969-07-22 1972-10-10 Burroughs Corp High-speed parallel binary adder
US3700857A (en) * 1971-04-14 1972-10-24 Bell Telephone Labor Inc Electrical resistance heater
JPS5068036A (de) * 1973-10-16 1975-06-07
US3987291A (en) * 1975-05-01 1976-10-19 International Business Machines Corporation Parallel digital arithmetic device having a variable number of independent arithmetic zones of variable width and location
IL59907A0 (en) * 1980-04-23 1980-06-30 Nathan Grundland Arithmetic logic unit
JPS6055438A (ja) * 1983-09-05 1985-03-30 Matsushita Electric Ind Co Ltd 2入力加算器
US4623981A (en) * 1983-09-20 1986-11-18 Digital Equipment Corporation ALU with carry length detection
US4763295A (en) * 1983-12-27 1988-08-09 Nec Corporation Carry circuit suitable for a high-speed arithmetic operation

Also Published As

Publication number Publication date
JPS62172429A (ja) 1987-07-29
KR870007460A (ko) 1987-08-19
SG34590G (en) 1990-07-13
CN87100346A (zh) 1987-08-19
KR940008613B1 (ko) 1994-09-24
GB8624162D0 (en) 1986-11-12
GB2185605A (en) 1987-07-22
CN1003678B (zh) 1989-03-22
US4737926A (en) 1988-04-12
GB2185605B (en) 1989-10-25
DE3700991A1 (de) 1987-07-23
HK57290A (en) 1990-08-10
JP2594428B2 (ja) 1997-03-26

Similar Documents

Publication Publication Date Title
DE3700991C2 (de) Digitaler Übertragsvorgriffsaddierer
DE69632978T2 (de) Multi-Operand-Addierer, der Parallelzähler benutzt
EP0123921B1 (de) Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf
DE3854321T2 (de) Populationszählung in Rechnersystemen.
DE3789132T2 (de) Digitale Multipliziererarchitektur mit Dreifachgitter zur Summation von Teilprodukten.
DE3927009A1 (de) Addierschaltung
DE4403917C2 (de) Vorrichtung zum Berechnen einer Bit-Besetzungszählung
DE4101004C2 (de) Paralleler Multiplizierer mit Sprungfeld und modifiziertem Wallac-Baum
DE3686828T2 (de) Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration.
DE3888230T2 (de) Einrichtung und Verfahren zur Durchführung einer Schiebeoperation mit einer Multipliziererschaltung.
DE1549508C3 (de) Anordnung zur Übertragsberechnung mit kurzer Signallaufzeit
DE3852576T2 (de) Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen.
DE69026414T2 (de) Binäres Addiergerät
DE2730918A1 (de) Anordnung zum multiplizieren von binaerzahlen
DE3434777C2 (de)
DE69726248T2 (de) Addierer mit bedingter Summe unter Benutzung von Durchlasstransistor-Logik
DE69030169T2 (de) Hochleistungsaddierer mit Carry-Vorhersage
EP0257362A1 (de) Addierer
DE19644688B4 (de) Schaltungsanordnung einer digitalen Multiplizierer-Baugruppe, zur Verarbeitung von Binärzahlen sowie Elementen aus GF(2m)
DE69132368T2 (de) Binärer baumartiger Multiplizierer hergestellt aus Übertragsicherstellungsaddierer mit einer flächeneffizienten Anordnung
DE10117041C1 (de) Carry-Ripple Addierer
DE69230924T2 (de) Multiplizierer-Schaltungen mit seriellem Eingang
DE19711005C2 (de) Baumschaltung zur Addition von Teilprodukten im Booth-Algorithmus
DE68928370T2 (de) Logikschaltung mit Uebertragungsgesteuerten Addierer
EP1476806B1 (de) Verfahren und anordnung zur zusammenführung von daten auf parallelen datenpfaden

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee