DE3700991C2 - Digitaler Übertragsvorgriffsaddierer - Google Patents
Digitaler ÜbertragsvorgriffsaddiererInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/506—Adding; 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/508—Adding; 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)
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)
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.
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.
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.
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)
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)
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 |
-
1986
- 1986-01-21 US US06/820,384 patent/US4737926A/en not_active Expired - Lifetime
- 1986-10-08 GB GB8624162A patent/GB2185605B/en not_active Expired
- 1986-11-05 KR KR1019860009312A patent/KR940008613B1/ko not_active IP Right Cessation
-
1987
- 1987-01-14 JP JP62005166A patent/JP2594428B2/ja not_active Expired - Lifetime
- 1987-01-15 DE DE3700991A patent/DE3700991C2/de not_active Expired - Fee Related
- 1987-01-17 CN CN87100346.5A patent/CN1003678B/zh not_active Expired
-
1990
- 1990-05-15 SG SG345/90A patent/SG34590G/en unknown
- 1990-08-02 HK HK572/90A patent/HK57290A/xx not_active IP Right Cessation
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 |