DE112005001906B4 - Mehrbit-Addierer und Verfahren zum Propagieren, Generieren oder Killen von Carry-In-Bits entlang einer Carry-Kette - Google Patents

Mehrbit-Addierer und Verfahren zum Propagieren, Generieren oder Killen von Carry-In-Bits entlang einer Carry-Kette Download PDF

Info

Publication number
DE112005001906B4
DE112005001906B4 DE112005001906T DE112005001906T DE112005001906B4 DE 112005001906 B4 DE112005001906 B4 DE 112005001906B4 DE 112005001906 T DE112005001906 T DE 112005001906T DE 112005001906 T DE112005001906 T DE 112005001906T DE 112005001906 B4 DE112005001906 B4 DE 112005001906B4
Authority
DE
Germany
Prior art keywords
carry
bit
sum
adder
bits
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
DE112005001906T
Other languages
English (en)
Other versions
DE112005001906T5 (de
Inventor
Sapumal Wijeratne
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 DE112005001906T5 publication Critical patent/DE112005001906T5/de
Application granted granted Critical
Publication of DE112005001906B4 publication Critical patent/DE112005001906B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/501Half or full adders, i.e. basic adder cells for one denomination
    • G06F7/503Half or full adders, i.e. basic adder cells for one denomination using carry switching, i.e. the incoming carry being connected directly, or only via an inverter, to the carry output under control of a carry propagate signal

Abstract

Mehrbit-Addierer (200), umfassend: eine Carry-Kette (205) zum selektiven Propagieren, Generieren und Killen von Carry-In-Bits, wobei die Carry-Kette niedriger wertige Bitpositionen, eine Zwischenbitposition und höherwertige Bit-Positionen aufweist; ein Carry-Sprung-Netzwerk (215), das an die Carry-Kette gekoppelt ist, um selektiv Carry-In-Bits über mindestens einen Teil der Carry-Kette springen zu lassen; entlang der Carry-Kette gekoppelte Summenzellen (210) zum Summieren der Carry-In-Bits mit entsprechenden Bits zweier Operanden, wobei jede der Summenzellen ein Bit eines Mehrbit-Ergebnisses generieren soll; und Carry-Summenzellen (220), von denen jede so geschaltet ist, daß sie das Carry-In-Bit (CI11) für die Zwischenbitposition in der Carry-Kette und ein jeweiliges Steuersignal (CTRL12...CTRL15) aus einer Steuerlogik (250) empfangt und ein jeweiliges Bit des Mehrbit-Ergebnisses generiert, das eine höherwertigere Bitposition als die Zwischenbitposition aufweist, wobei ein Teil der Summenzellen (210), welche den höherwertigen Bitpositionen entsprechen, jeweils an eine der Carry-Summenzellen (220) mit entsprechenden Bitpositionen angekoppelt ist, um einen Teil der höherwertigen Bitpositionen...

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenlegung betrifft allgemein Mehrbitaddierer und insbesondere, aber nicht ausschließlich, Addierer mit geringem Spannungshub.
  • ALLGEMEINER STAND DER TECHNIK
  • Ein Binäraddierer ist eine elementare elektronische Schaltung, die zwei binäre Operanden addiert, um ein binäres Ergebnis zu erhalten. Ein Addierer mit der Fähigkeit zum Addieren von zwei Operanden zusammen mit einem Carry-In (Übertrag von einer vorhergehenden Stelle) zum Erhalten eines Ergebnisses und einem Carry-Out (Übertrag für die nächsthöhere Stelle) ist als Volladdierer bekannt. Volladdierer können mit dem Carry-Out eines an das Carry-In eines nächsten Addierers angekoppelten Volladdierers in Reihe geschaltet werden, um einen Binäraddierer größerer Breite zu implementieren.
  • 1 zeigt einen bekannten 16-Bit Carry-Sprung-Addierer 100 mit einem Carry-In („CI”) und einem Carry-Out („CO”). Der Carry-Sprung-Addierer 100 enthält PGK-Stufen (Propagate-Generate-Kill) 105, Carry-Sprung-Zellen 110 und Summenzellen 115 (es ist nur ein Teil der Elemente gekennzeichnet, damit 1 übersichtlich bleibt). CI0 repräsentiert das Carry-In für die PGK-Stufe 0. Wenn die PGK-Stufe 0 ein CI0 empfängt (d. h. CI = ”1”), kann die PGK-Stufe 0 das CI0 entweder als ein Carry-Out 120 für den Empfang als ein Carry-In 125 zu der PGK-Stufe 1 propagieren oder das CI0 killen, so daß die PGK-Stufe 1 ein Carry-In 125 nicht empfängt. Wenn die PGK-Stufe 0 kein CI0 empfängt (d. h. CI = ”0”), kann die PGK-Stufe 0 ein als Carry-In 125 für die PGK-Stufe 1 zu empfangendes Carry-Out 120 erzeugen. Jede der PGK-Stufen 105 wird ein Carry-In abhängig von dem Wert der zwei Operandenbit, die seiner Bitposition entsprechen, entweder propagieren, generieren oder killen.
  • Die Summenzellen 115 wirken zum Summieren eines Carry-In-Bit mit zwei Operandenbit mit äquivalenten Bitpositionen zur Erzeugung eines resultierenden Bit eines Mehrbit-Ergebnisses. Bevor jede Summenzelle 115 ein resultierendes Bit erzeugen kann, muß jedoch das entsprechende Carry-In bestimmt werden. Um ein Carry-In zu bestimmen, muß CI0 eine Gelegenheit gegeben werden, von der PGK-Stufe 0 zu der PGK-Stufe 15 zu propagieren. Das Propagieren von Carry-Ins ist somit ein begrenzender Geschwindigkeitsfaktor.
  • Um die Propagation von Carry-Ins durch den Carry-Sprung-Addierer 100 zu beschleunigen, sind PGK-Stufen 105 in Gruppen nach Carry-Sprung-Zellen 110 gekoppelt. Entsprechende Gruppen der Operanden werden analysiert, um zu bestimmen, ob ein Carry-In zu einer Gruppe von PGK-Stufen 105 durch die gesamte Gruppe von PGK-Stufen 105 propagiert. Wenn diese Bedingung gegeben ist, überspringt die Carry-Sprung-Zelle das Carry-In zu der Gruppe über die Gruppe und führt das Carry-In der nächsten Gruppe von PGK-Stufen 105 zu. Das Überspringen von Gruppen von PGK-Stufen 105 über Carry-Sprung-Zellen 110 führt zu weniger Verzögerung als das Warten, bis das Carry-In durch jede PGK-Stufe der Gruppe propagiert. Sogar mit Carry-Sprung-Zellen 110 ist jedoch die Propagation von Carry-Ins durch den Carry-Sprung-Addierer 100 immer noch ein begrenzender Geschwindigkeitsfaktor.
  • Aus US 6,567,836 B1 ist ein Muli-Level-Carry-Skip-Addierer bekannt. Es wird ein Mehrbit-Addierer mit einer Carry-Kette zum selektiven Propagieren, Generieren und Killen von Carry-In-Bits, ein Carry-Sprung-Netzwerk, um selektive Carry-In Bits über einen Teil einer Carry-Kette springen zu lassen, und Summenzellen zum Summieren der Carry-In-Bits mit entsprechenden Bits zweier Operanden offenbart.
  • US 6,199,091 B1 offenbart einen Carry-Skip-Addierer. Es wird ein Carry-Sprung-Addierer mit einer Vielzahl von Ripple-Addierern gezeigt, wobei die Vielzahl von Ripple-Addierern in mehrere Gruppen eingeteilt werden und ein Carry-Signal von einer Gruppe auf eine obere Gruppe geleitet wird.
  • Die vorliegende Erfindung sieht einen Mehrbit-Addierer nach Anspruch 1 sowie ein Verfahren zum selektiven Propagieren, Generieren oder Killen von Carry-In-Bits entlang einer Carry-Kette nach Anspruch 10 vor.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Nicht einschränkende und nicht erschöpfende Ausführungsformen der vorliegenden Erfindung werden mit bezug auf die folgenden Figuren beschrieben, in denen sich, sofern nicht anders erwähnt, gleiche Bezugszahlen in allen der verschiedenen Ansichten auf gleiche Teile beziehen.
  • 1 ist ein Blockschaltbild einer bekannten Carry-Sprung-Addiererschaltung.
  • 2 ist ein Blockschaltbild eines Addierers mit Carry-Summenzellen mit zusammengelegten Carry-Sprung-Zellen mit Summenzellen gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 3 ist ein Flußdiagramm eines Prozesses zum Betrieb eines Addierers gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 4 ist ein Schaltbild einer PGK-Stufe („Propagate, Generate, Kill”) gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 5 ist ein Schaltbild einer Summenzelle gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 6 ist ein Schaltbild einer Carry-Summenzelle gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 7 ist ein Diagramm eines veranschaulichenden Systems zur Implementierung von Ausführungsformen der vorliegenden Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es werden Ausführungsformen einer Vorrichtung, eines Systems und eines Verfahrens Tür einen schnellen Mehrbitaddierer beschrieben. In der folgenden Beschreibung werden zahlreiche spezifische Einzelheiten dargelegt, um ein genaues Verständnis der Ausführungsformen zu ermöglichen. Für Fachleute ist jedoch erkennbar, daß die hier beschriebenen Techniken ohne eines oder mehrere der spezifischen Einzelheiten oder mit anderen Verfahren, Komponenten, Materialien usw. ausgeübt werden können. In anderen Fällen werden wohlbekannte Strukturen, Materialien oder Operationen nicht ausführlich gezeigt oder beschrieben, um bestimmte Aspekte nicht zu verdecken.
  • In der gesamten vorliegenden Beschreibung bedeutet ein Verweis auf „eine Ausführungsform”, daß ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Formulierungen wie „in einer Ausführungsform” an verschiedene Stellen in der vorliegenden Beschreibung beziehen sich also nicht unbedingt auf dieselbe Ausführungsform. Ferner können die konkreten Merkmale, Strukturen oder Eigenschaften in einer oder mehreren Ausführungsformen auf beliebige geeignete Weise kombiniert werden.
  • 2 ist ein Blockschaltbild eines Addierers 200 mit einem modifizierten Carry-Sprung-Netzwerk gemäß einer Ausführungsform der vorliegenden Erfindung. Die dargestellte Ausführungsform des Addierers 200 enthält eine Carry-Kette 205, Summen-Zellen0-15 210, ein Carry-Sprung-Netzwerk 215, der Carry-Summenzellen12-15 220 und Leseverstärker 225. Die Carry-Kette 205 enthält PGK-Stufen0-15 („Propagate-Generate-Kill”) 207, das Carry-Sprung-Netzwerk 215 enthält Carry-Sprung-Zellen0-6,9 217. Die mit jeder der PGK-Stufen 217, der Summenzellen 210 und der Carry-Summenzellen 220 assoziierten Subskripts geben Bitpositionen an. Obwohl der Addierer 200 als 16-Bit-Addierer dargestellt ist, versteht sich, daß die hier beschriebenen Techniken gleichermaßen auf größere oder kleinere Addierer anwendbar sind, wie zum Beispiel auf 4-Bit-Addierer, 32-Bit-Addierer, 64-Bit-Addierer und dergleichen.
  • Die Carry-Kette 205 liefert einen Mechanismus zum Propagieren, Generieren oder Killen von Carry-Ins („CI”) 0 bis 15 für jede Bitposition. Das CI für eine der PGK-Stufen 207 ist dasselbe wie das Carry-Out („CO”) der vorherigen PGK-Stufe 207. Zum Beispiel ist CO0 gleich CI1 und so weiter. Wie bereits erwähnt, kann jede PGK-Stufe 207 ein Carry-Bit entweder propagieren, generieren oder killen. Das CO einer bestimmten PGK-Stufe 207 wird gemäß Gleichung 1 bestimmt, CON = AN·BN + AN·CIN + BN·CIN (Gleichung 1) dabei repräsentieren A und B Mehrbitoperanden, N repräsentiert die Bitposition, repräsentiert eine logische Zweibit-UND-Funktion und „+” repräsentiert eine logische Zweibit-ODER-Funktion. Gemäß Gleichung 1 wird für jede bestimmte PGK-Stufe 207 ein CI „gekillt” (d. h. CON = 0 ungeachtet des Werts von CIN), wenn die Operanden AN und BN beide „0” sind, ein CO wird „generiert” (d. h. CON = 1 ungeachtet des Werts von CIN), wenn die Operanden AN und BN beide „1” sind und ein CI wird „propagiert” (d. h. CON = CIN) im Fall von Operanden AN ≠ BN. Die nachfolgende Tabelle 1 faßt Gleichung 1 zusammen. Tabelle 1
    AN BN CIN CON
    0 0 ? ”0” (killen)
    1 1 ? ”1” (generieren)
    0 1 CIN CIN (propagieren)
    1 0 CIN CIN (propagieren)
  • Summenzellen 210 an jeder Bitposition N sind so geschaltet, daß sie das CIN dieser bestimmten Bitposition empfangen und das CIN mit den entsprechenden Bitpositionen der Operanden AN und BN summieren. Folglich ist die Summenzelle0 210 so geschaltet, daß sie CI0 empfängt, und die Summenzelle15 210 ist so geschaltet, daß sie CI15 empfängt. Bei einer Ausführungsform führen die Summenzellen 210 eine logische XOR-Verknüpfung von CIN mit einem logischen XOR von AN und BN, das aus der Summenlogik 212 empfangen wird, durch. Folglich erzeugt jede Summenzelle 210 ein Bit des Mehrbit-Ergebnisses (d. h. der SummeN) gemäß Gleichung 2 SUMN = AN ⊕ BN ⊕ CIN (Gleichung 2) wobei ⊕ eine logische XOR-Funktion repräsentiert. Die Summenzellen 210 können jedoch erst dann eine bestimmte Bitposition summieren, wenn das CI dieser Bitposition aufgelöst ist. CIN ist erst dann aufgelöst, wenn das CO der vorherigen PGK-Stufe 207 (d. h. CON-1) aufgelöst ist. Darauf zu warten, bis sich die Carry-Bit entlang der Carry-Kette 205 auflösen, wäre deshalb ein geschwindigkeitskritischer Begrenzungsfaktor für den Betrieb des Addierers 200.
  • Folglich nutzt das Carry-Sprung-Netzwerk 215 das Szenario aus, bei dem CON = CIN ist, um das CO einer PGK-Stufe 207 über mehrere PGK-Stufen 207 zu überspringen, um als das CI einer signalabwärts gelegenen PGK-Stufe 207 bereitgestellt zu werden. Die Carry-Sprungs-Zellen („CS”) clustern PGK-Stufen 207 zu „Gruppen”. Zum Beispiel clustert die CS-Zelle0 217 die PGK-Zellen0,1,2 207 zu einer Gruppe-1, die CS-Zelle1 217 clustert die PGK-Stufen1,2 207 zu einer Gruppe-2, die CS-Zelle9 217 clustert die PGK-Stufen11-15 207 zu einer Gruppe-9 und so weiter. Dementsprechend ist jede CS-Zelle 217 an Logik 240 für Gruppenpropagation („GP”) angekoppelt, um zu bestimmen, wann ein CI in eine bestimmte Gruppe durch die gesamte Gruppe propagiert (es ist nur ein Teil der GP-Logik 240 dargestellt, damit 2 übersichtlich bleibt). In einem Szenario, in dem ein CI über eine gesamte Gruppe propagiert, leitet die entsprechende CS-Zelle 217 das CI dieser Gruppe zu der nächsten Gruppe, indem die Gruppe übersprungen wird, ohne darauf zu warten, daß das CI entlang der Carry-Kette 205 durch die Gruppe propagiert. Zum Beispiel kann die GP-Logik0 240 bestimmen, daß CI0 durch Gruppe 1 (d. h. die PGK-Stufen0,1,2 207) propagiert. In diesem Beispiel weist die PG-Logik0 240 die CS-Zelle0 217 an, CI0 auf die Bitposition 3 springen zu lassen, um als CI3 der PGK-Stufe3 207 zugeführt zu werden.
  • Bei einer Ausführungsform ist jede CS-Zelle 217 des Carry-Sprung-Netzwerks 215 ein Negativ-Feldeffekttransistor („NFET”). Bei einer Ausführungsform sind die Source- und Drain-Anschlüsse der NFETs für einen Nebenschluß der Gruppen von PGK-Stufen 207 geschaltet, während die Gate-Anschlüsse an die entsprechende GP-Logik 240 angekoppelt sind. Bei diesen NFET-Ausführungsformen fungieren die CS-Zellen 217 als Nebenschlußschalter, die unter der Kontroller der GP-Logik 240 selektiv geöffnet und geschlossen werden, um die Carry-Bit über verschiedene Gruppen von PGK-Stufen 207 springen zu lassen. Es versteht sich, daß mehr oder weniger CS-Zellen 217 als in 2 dargestellt verschiedene andere Gruppenkonfigurationen von PGK-Zellen 207 nebenschließen können.
  • Bei einer Ausführungsform erzeugt die GP-Logik 240 GP-Signale zur Steuerung der CS-Zellen 217. Die GP-Signale werden durch logische UND-Verknüpfung von jeder Bitposition N entsprechenden Propagationsvariablen PN erzeugt. PN wird durch Gleichung 3 gegeben, PN = AN ⊕ BN (Gleichung 3) wobei ⊕ eine logische Zwei-Bit-XOR-Funktion repräsentiert. Das eine bestimmte CS-Zelle 217 steuernde GP-Signal wird durch logische UND-Verknüpfung des PN jeder durch die bestimmte CS-Zelle 217 nebengeschlossenen Bitposition erzeugt. Zum Beispiel wird die CS-Zelle0 217 durch ein GP0-Signal gesteuert, das durch Gleichung 4 gegeben wird. GP0 = P0·P1·P2 (Gleichung 4)
  • Ähnlich wird die CS-Zelle9 217 durch das GP9-Signal gesteuert, das durch Gleichung 5 gegeben wird. GP9 = P11·P12·P13·P14·P15 (Gleichung 5)
  • Wie in 2 dargestellt, wird der Addierer 200 in niedriger wertige Bitpositionen („LSB”), höherwertige Bitpositionen („MSB”) und Zwischenbitpositionen unterteilt. Die LSB-Positionen sind die Bitpositionen, die niedriger wertig als die Zwischenbitposition sind, während die MSB-Positionen die Bitpositionen sind, die höherwertig als die Zwischenbitpostion sind. Obwohl 2 die LSB-Positionen als Bit 0–10, die Zwischenbitposition als Bit 11 und die MSB-Positionen als Bit 11–15 zuteilt, können andere Ausführungsformen andere Zuteilungen enthalten.
  • Mit bezug auf 1 tritt eine mögliche Betriebszeit im ungünstigsten Fall für den Teil-Sprung-Addierer 100 auf, wenn die summierten Operanden dergestalt sind, daß das Carry-Out 120 durch die PGK-Stufe0 105 erzeugt wird, das Carry-Out 120 die Zwischen-PGK-Stufen1-14 105 über CS-Zellen1,2,5,9 110 carry-überspringt und schließlich mit den Operandenbit A15 und B15 in der Summenzelle15 115 summiert wird. Folglich ist der Weg mit der längsten Verzögerung (und deshalb der kritische Weg) des Carry-Spring-Addierers 100 sechs Blöcke lang.
  • Wieder mit bezug auf 2 sind die Carry-Summenzellen 220 so geschaltet, daß sie CI11 von der Zwischenbitposition in der Carry-Kette 205 empfangen. Die Carry-Summenzellen 220 vereinigen jeweils die Funktionalität einer Carry-Sprung-Zelle mit einer Summenzelle, um den Betrieb des Addierers 200 im Vergleich zu dem Carry-Sprung-Addierer 100 zu beschleunigen. Zum Beispiel wird während des Betriebes im ungünstigsten Fall des obenerwähnten Addierers 200 CO0 durch die PGK-Stufe0 207 generiert und über die Carry-Sprung-Zellen CS-Zellen1,2,5 217 zu dem Zwischenknoten 245 carry-übersprungen. CO0 wird darin als CI11 in die Carry-Summenzellen 220 eingegeben, um ein oder mehrere resultierende Bit 12–15 zu berechnen. Folglich ist der Weg mit der längsten Verzögerung (und deshalb der kritische Weg) des Addierers 200 nur fünf Blöcke lang. Somit reduziert der Addierer 200 effektiv die Anzahl der Verzögerungen zum Verarbeiten eines Carry-Sprungs zu den MSB-Positionen im ungünstigsten Fall. Ein Block weniger von der niedrigstwertigen Bitposition zu dem Summierungsausgang der höchstwertigen Bitsummenzelle15 210 (oder Carry-Summenzelle15 220) zu durchqueren, führt dazu, daß ein das Carry-Sprung-Netzwerk 215 durchquerendes Carry-Bit weniger Widerstand und Kapazität erfährt. Diese Reduktion der Ausbreitungsverzögerung der längsten (und langsamsten) Carry-Sprung-Propagationswege führt zu einer insgesamten Beschleunigung des Addierers 200.
  • Bei einer Ausführungsform führen die Carry-Summenzellen 220 eine globale Weg-Carry-Summenfunktion durch, während die Summenzellen12-15 210 eine lokale Wegsummierungsfunktion durchführen. Wenn ein CI in einer der MSB-Positionen (z. B. CI12-15) generiert wird, werden die Carry-Summenzellen 220 des globalen Weges gesperrt und das CI des lokalen Weges wird durch die PGK-Stufen12-15 207 propagiert, generiert oder gekillt, und die Summenzellen12-15 berechnen eines oder mehrere der resultierenden Bit 12–15. Wenn jedoch kein CI in den MSB-Positionen generiert wird, kann CI11 durch jede der Carry-Summenzellen 220 zur Berechnung jedes der resultierenden Bit 12–15 (d. h. Bitsummen 12–15) verwendet werden. Die Carry-Summenzellen 12–15 vereinigen Carry-Sprung-Funktionalität mit Summierungsfunktionalität und eliminieren dadurch Carry-Sprung-Zellen7,8 110, wie in 1 dargestellt.
  • Bei einer Ausführungsform führen die Carry-Summenzellen12-15 220 logische XOR-Funktionen an CI11 und Steuersignalen durch, die von entsprechenden Steuerblöcken 250 empfangen werden, die an jede der Carry-Summenzellen 220 angekoppelt sind (es wurden nur die Steuerblöcke12,15 250 dargestellt, damit 2 übersichtlich bleibt). Bei einer Ausführungsform wird jedes Steuersignal durch logisches UND-Verknüpfen der Propagationsvariablen PN zwischen und einschließlich der Zwischenbitposition (z. B. Bitposition 11) bis zu der entsprechenden Bitposition der Carry-Summenzelle 220 generiert. Deshalb wird ein SteuersignalN durch Gleichung 6 gegeben. CTRLN = GP11→(N-1)·PN (Gleichung 6)
  • Zum Beispiel generiert der Steuerblock12 250 ein Steuersignal12 gemäß Gleichung 7. CTRL12 = (P11)·P12 (Gleichung 7)
  • Ähnlich generiert der Steuerblock15 250 ein Steuersignal15 gemäß Gleichung 8. CTRL15 = (P11·P12·P13·P14)·P15 (Gleichung 8)
  • Da der kritische Weg des Addierers 200 nicht den lokalen Weg entlang der PGK-Stufen11-15 207 und der Summenzellen12-15 210 durchquert, können die zur Bildung der PGK-Stufen11-15 207 und der Summenzellen12-15 210 verwendeten Transistoren signifikant herunterbemessen werden. Das Herunterbemessen dieser Bauelemente spart nicht nur wertvolle Grundfläche auf einem integrierten Schaltungschip, sondern verringert auch eine auf den globalen Weg und in das Carry-Sprung-Netzwerk 215 zurückreflektierte kapazitive Last. Das Reduzieren der aus den MSB-Positionen zurückreflektierten kapazitiven Last ermöglicht es Carry-In-Bit, den Addierer 200 in kürzerer Zeit zu durchqueren. Wie bereits erwähnt, wird auch aufgrund der hier beschriebenen Techniken der Widerstand des Carry-Sprung-Netzwerks 215 verringert. Der verringerte Widerstands-Kapazitäts-Faktor (RC-Verzögerung) auf allen kritischen Carry-Sprung-Propagationswegen führt deshalb zu einer schnelleren Summierungsberechnung durch den Addierer 200.
  • An die Ausgänge der Summenzellen 210 und der Carry-Summenzellen 220 sind Leseverstärker 225 angekoppelt. Bei einer Ausführungsform lesen die Leseverstärker 225 die von jeder der Summenzellen 210 und der Carry-Summenzellen 220 ausgegebene Spannung und registrieren entweder eine logische „1” oder eine logische „0”. Bei einer Ausführungsform ist der Addierer 200 ein Addierer mit geringem Spannungshub („LVS”). Bei dieser LVS-Addiererausführungsform geben die PGK-Stufen 207, die Summenzellen 210 und die Carry-Summenzellen 220 alle Differenz-Komplement-Signale aus. Die Leseverstärker 225 lesen eine Polarität einer Differenzspannung zwischen den komplementären Signalen, um zu bestimmen, ob an jeder resultierenden Bitposition eine logische „1” oder eine logische „0” berechnet wurde.
  • LVS-Addierer sind suszeptibel gegenüber Differenzrauschen, das durch verschiedene Koppel- und Bauelementeleckereignisse auf der Carry-Kette (z. B. der Carry-Kette 205) und in dem Carry-Sprung-Netzwerk (z. B. in dem Carry-Sprung-Netzwerk 215) erzeugt wird. Diese Differenz-Rauschquellen wirken zum Reduzieren des Differenzbetrags des propagierten Carry-Signals. Bei einem Resultat im ungünstigsten Fall übermächtigt das Differenzrauschen das Differenz-Carry-Signal und verursacht eine Differenz-Umkehrung und ein Versagen des LVS-Addierers. In einem typischeren Fall führt der reduzierte Differenzbetrag des Carry-Signals einfach zu einer Verlangsamung des LVS-Addierers. Ein Grund dafür, daß LVS-Addierer gegenüber Differenzrauschen suszeptibel sind, besteht darin, daß ein Rauschzurückweisungsweg (Weg zum Abführen der in die Carry-Kette eingetretenen Rauschladung) sehr resistiv ist (z. B. bis zu 6 Verzögerungsblöcke Widerstand vor dem Abführungs-/Quellenknoten) und es deshalb schwierig ist, Rauschladung durch das Carry-Sprung-Netzwerk hindurch abzuführen.
  • Die Aufnahme von Carry-Summenzellen 220 ermöglicht eine einfache Verzögerungsblockreduktion in dem kritischen Weg über den Carry-Sprung-Addierer 100, und dies führt zu einer Reduktion des Widerstands des Carry-Sprung-Netzwerks 215. Bei der LVS-Addiererausführungsform des Addierers 200 ergibt ein verringerter Widerstand des Carry-Sprung-Netzwerks 215 vergrößerte Differenzrauschzurückweisung auf dem Carry-Sprung-Netzwerk 215. Die Reduktion dieses Widerstands führt zu einem schnelleren und robusteren LVS-Addierer.
  • Die oben erläuterten Prozesse werden über Computersoftware und -hardware beschrieben. Die Prozesse können in Hardware realisiert werden, wie zum Beispiel in einer anwendungsspezifischen integrierten Schaltung („ASIC”) oder dergleichen. Die Reihenfolge, in der bestimmte oder alle der Prozeßblöcke in jedem Prozeß erscheinen, sollte nicht als Einschränkung aufgefaßt werden. Statt dessen ist für Durchschnittsfachleute anhand der vorliegenden Offenlegung verständlich, daß bestimmte der Prozeßblöcke in vielfältigen, nicht dargestellten Reihenfolgen ausgeführt werden können.
  • 3 ist ein Flußdiagramm eines Prozesses 300 zum Betrieb des Addierers 200 gemäß einer Ausführungsform der vorliegenden Erfindung. In einem Prozeßblock 305 werden die Carry-Bit (z. B. CI0-15) selektiv in jeder PGK-Stufe 207 entlang der Carry-Kette 205 propagiert, generiert oder gekillt.
  • In einem Prozeßblock 310 werden bestimmte der Carry-Bit selektiv über Gruppen von PGK-Stufen 207 übersprungen. Wenn zum Beispiel die GP-Logik2 240 bestimmt, daß CI3, das in die PGK-Stufe3 207 übertragen wird, durch die gesamte Gruppe-2 (d. h. die PGK-Stufen3,4,5,6 207) propagiert, überspringt die CS-Zelle2 217 CI3 über Gruppe-2, um als CI7 der PGK-Stufe7 207 zugeführt zu werden. Bei einer Ausführungsform überspringen die CS-Zellen 217 Carry-Bit über Gruppen von PGK-Stufen 207 durch Bereitstellung eines leitenden Weges, durch den Carry-Bit propagieren können.
  • In einem Prozeßblock 315 berechnen die Summenzellen0-11 210 die LSB-Positionen und die Zwischenbitposition des Mehrbit-Ergebnisses. Bei einer Ausführungsform berechnen die Summenzellen 210 jeweils ein Bit des Mehrbit-Ergebnisses durch logisches XOR-Verknüpfen des CIN-Bit mit dem durch jede entsprechende SummenlogikN 212 berechneten Summensignal. Jede SummenlogikN 212 erzeugt eine Summe der Operanden AN und BN, die durch die SummenzelleN 210 mit CIN summiert wird.
  • In einem Prozeßblock 320 erzeugt die SteuerlogikN 250 die entsprechenden der Carry-SummenzellenN 220 zuzuführenden Steuersignale. Die Steuersignale werden wie oben beschrieben auf der Basis der Operanden A und B generiert.
  • In einem Entscheidungsblock 325 wird, wenn kein lokales Carry-Out (d. h. CO11-15) durch eine der PGK-Stufen11-14 207 generiert oder gekillt wird, der Prozeß 300 dann mit einem Prozeßblock 330 fortgeführt. Im Prozeßblock 330 führt jede Carry-Summenzelle 220 eine logische XOR-Verknüpfung ihres entsprechenden Steuersignals mit CI11 durch, um jede MSB-Position des Mehrbit-Ergebnisses zu berechnen. In einem Prozeßblock 335 lesen die Leseverstärker 225 die von den Summenzellen0-11 210 und den Carry-Summenzellen 220 ausgegebenen Spannungen, um das Mehrbit-Ergebnis zu bestimmen bzw. zu registrieren.
  • Wieder mit bezug auf den Entscheidungsblock 325 werden, wenn ein lokales Carry-Out (d. h. CO11-14) generiert oder gekillt wird (d. h. wenn eine der PGK-Stufen11-15 ein Carry-Out generiert oder killt), alle CI von diesem Punkt an entlang des logischen Weges der Carry-Kette 205 bestimmt. Es sollte beachtet werden, daß, wenn die PGK-Stufe14 207 ein Carry-Out generiert, während die PGK-Stufen12,13 207 CI11 propagieren, die Carry-Summenzellen12,13 220 Summe12 und Summe13 berechnen, während die Summenzellen14,15 210 Summe14 und Summe15 berechnen. In dem Prozeßblock 340 berechnen die Summenzellen12-15 210 die MSB-Positionen des Mehrbit-Ergebnisses. Im Prozeßblock 335 lesen die Leseverstärker 225 die von den Summenzellen0-11 210 und den Carry-Summenzellen12-15 220 ausgegebenen Spannungen.
  • 4 ist ein Schaltbild einer PGK-Stufe 400 gemäß einer Ausführungsform der vorliegenden Erfindung. Die PGK-Stufe 400 ist eine mögliche Ausführungsform von PGK-Zellen 207. Die beispielhafte Ausführungsform der PGK-Stufe 400 enthält vier NFET-Transistoren 405, 410, 415 und 420 und zwei Positiv-Feldeffekttransistoren („PFET”) 425 und 430. Die PGK-Stufe 400 empfängt komplementäre Eingaben CIN und berechnet komplementäre Ausgaben CON. Die PGK-Stufen 400 können in Verbindung mit LVS-Addiererausführungsformen des Addierers 200 verwendet werden.
  • Bei einer Ausführungsform sind die Gates der NFET und der PFET an in 2 dargestellte PGK-Logik 209 angekoppelt (es ist nur eine PGK-Logikeinheit dargestellt, damit 2 übersichtlich bleibt). Die PGK-Logik 209 erzeugt die Steuervariablen PN, GPN, KN, KN_bar und GPN_bar. Die Steuervariablen PN und GPN sind wie oben in Verbindung mit Gleichung 3, 4 und 5 beschrieben ähnlich. Die Steuervariable KN wird auf High gesetzt, wenn die PGK-Logik 209 auf der Basis der Operanden AN und BN bestimmt, daß die bestimmte PGK-StufeN 207 das CIN „killen” soll.
  • CIN und sein Komplement CIN_bar werden an den Eingängen 435 und 440 empfangen, und CON und CON_bar werden an den Ausgängen 445 bzw. 450 ausgegeben. Die Transistoren 405 und 410 propagieren CIN und CIN_bar, wenn PN durch die PGK-Logik 209 auf High gesetzt wird. Der Transistor 425 erzeugt CON, wenn GPN_bar auf Low gesetzt wird. Ähnlich killt der Transistor 420 CIN, wenn KN auf High gesetzt ist.
  • 5 ist ein Schaltbild einer Summenzelle 500 gemäß einer Ausführungsform der vorliegenden Erfindung. Die Summenzelle 500 ist eine mögliche Ausführungsform der Summenzelle 210. Die dargestellte Ausführungsform der Summenzelle 500 enthält NFET 505, 510, 515 und 520. Die Summenzelle 500 empfängt eine XOR-Eingabe 525 zur Steuerung der Gates der NFET 505 und 510 und empfängt eine XNOR-Eingabe 530 zur Steuerung der Gates der NFET 515 und 520. Die Summenzelle 500 empfängt CIN und sein Komplement CIN_bar an Eingängen 535 bzw. 540 und berechnet SUMN_bar und SUMN (siehe Gleichung 2) an ihren Ausgängen 545 bzw. 550.
  • Die XOR-Eingaben 525 und die XNOR-Eingabe 530 werden von der Summenlogik 212 auf der Basis der Operandenbit AN und BN generiert. Die Summenzelle 500 berechnet eine logische XOR-Verknüpfung der XOR-Eingabe 525 und von CIN, das auf dem Eingang 535 empfangen wird, um an dem Ausgang 550 sumN zu generieren. Ähnlich berechnet die Summenzelle 500 eine logische XNOR-Verknüpfung der XNOR-Eingabe 530 und von CIN_bar, das auf dem Eingang 540 empfangen wird, um an den Ausgang 545 sumN_bar zu generieren.
  • 6 ist ein Schaltbild einer Carry-Summenzelle 600 gemäß einer Ausführungsform der vorliegenden Erfindung. Die Carry-Summenzelle 600 ist eine mögliche Ausführungsform der Carry-Summenzelle13 220. Die dargestellte Ausführungsform der Carry-Summenzelle 600 ist der Summenzelle 500 ähnlich, mit der Ausnahme, daß die Eingänge so geschaltet sind, daß sie andere Variablen empfangen. Obwohl die Carry-Summenzelle 500 zur Verwendung mit Bitposition 13 des Addierers 200 dargestellt ist, ist die Carry-Summenzelle 500 gleichermaßen auf jede der MSB-Positionen anwendbar. Abhängig von der konkreten MSB-Position variieren die konkreten, logisch UND-verknüpften Propagationsvariablen PN, wie oben in Verbindung mit Gleichung 6, 7 und 8 beschrieben.
  • Die Carry-Summenzelle 600 ist eine Ausführungsform einer Carry-Summenzelle 220 zur Verwendung mit einem LVS-Addierer. Folglich empfängt und generiert die Carry-Summenzelle 600 Differenzsignale. Ähnlich geben die Steuerblöcke 250 bei dieser Ausführungsform den Carry-Summenzellen 600 zwei Steuersignale CTRL1N und CTRL2N, die durch die Gleichungen 9, 10 und 11 gegeben werden.
  • Figure 00140001
  • 7 ist ein Diagramm eines Systems 700, das einen oder mehrere Addierer 200 gemäß Ausführungsformen der vorliegenden Erfindung enthalten kann. Die dargestellte Ausführungsform des Systems 700 enthält ein Chassis 710, einen Monitor 715, eine Maus 720 (oder ein anderes Zeigegerät) und eine Tastatur 725. Die dargestellte Ausführungsform des Chassis 710 enthält ferner ein Diskettenlaufwerk 730, eine Festplatte 735, ein Laufwerk 737 für CD („Compact Disc”) und/oder DVD („Digital Video Disc”), eine (nicht gezeigte) Stromversorgung und ein Motherboard 740, das mit entsprechenden integrierten Schaltungen besetzt ist, darunter Systemspeicher 745, nichtflüchtiger(„NV”-)Speicher 750 und ein oder mehrere Prozessoren 755.
  • Der bzw. die Prozessoren 755 sind über einen Chipsatz auf dem Motherboard 740 kommunikativ an den Systemspeicher 745, den NV-Speicher 750, die Festplatte 735, das Diskettenlaufwerk 730 und das CD/DVD-Laufwerk 737 angekoppelt, um Anweisungen oder Daten dorthin bzw. davon zu senden und zu empfangen. Bei einer Ausführungsform ist der NV-Speicher 750 ein Flash-Speicherbaustein. Bei anderen Ausführungsformen umfaßt der NV-Speicher 750 Nurlesespeicher („ROM”), programmierbaren ROM, löschbaren programmierbaren ROM, elektrisch löschbaren programmierbaren ROM oder dergleichen. Bei einer Ausführungsform umfaßt der Systemspeicher 745 Direktzugriffsspeicher („RAM”), wie etwa dynamischen RAM („DRAM”), synchronen DRAM („SDRAM”), Doppeldatenraten-SDRAM („DDR SDRAM”), statischen RAM („SRAM”) und dergleichen. Die Festplatte 735 repräsentiert eine beliebige Speichereinrichtung für Softwaredaten, Anwendungen und/oder Betriebssysteme, ist aber in den meisten Fällen eine nichtflüchtige Speichereinrichtung. Die Festplatte 735 kann wahlweise eine oder mehrere IDE-Festplatten („Integrated Drive Electronic”), eine erweiterte IDE-Festplatte („EIDE”), ein redundantes Array unabhängiger Datenträger („RAID”), eine SCSI-Festplatte („Small Computer System Interface”) und dergleichen umfassen.
  • Bei einer Ausführungsform ist eine (nicht gezeigte) Netzwerkschnittstellenkarte („NIC”) an einen (nicht gezeigten) Erweiterungssteckplatz des Motherboards 740 angekoppelt. Die NIC dient zum Verbinden des Systems 700 mit einem Netzwerk 760, wie zum Beispiel einem lokalen Netzwerk, einem großwertigen Netzwerk oder dem Internet. Bei einer Ausführungsform ist das Netzwerk 760 ferner an einen abgesetzten Computer 765 angekoppelt, so daß das System 700 und der abgesetzte Computer 765 kommunizieren können.
  • Bei einer Ausführungsform kann der Prozessor 755 einen oder mehrere Addierer 200 enthalten, um Volladdiererfunktionalität bereitzustellen. Zum Beispiel kann der Prozessor 755 eine Arithmetik-Logik-Einheit („ALU”) zur Durchführung mathematischer Funktionen enthalten, die einen oder mehrere kaskadierte Addierer 200 zur Bereitstellung von Summierungsfunktionalität höherer Ordnung aufweist. Ausführungsformen des Addierers 200 können in die ALU integriert werden, um schnelle ALU-Subkomponenten zu implementieren.
  • Wie oben beschrieben, kann der Addierer 200 in den Prozessor 755 und auch in verschiedene andere integrierte Schaltungen integriert werden. Es können Beschreibungen des Addierers 200 zur Integration in dem Prozessor 755 oder in verschiedene anwendungsspezifische integrierte Schaltungen („ASIC”) generiert und compiliert werden. Zum Beispiel kann Code auf Verhaltensebene, der den Addierer 200 oder Teile davon beschreibt, unter Verwendung einer Hardwarebeschreibungssprache, wie zum Beispiel VHDL oder Verilog, generiert und in einem maschinenzugänglichen Medium (z. B. CD-ROM, Festplatte, Diskette usw.) gespeichert werden. Ferner kann der Code auf Verhaltensebene zu Code der Registertransferebene („RTL”), einer Netzliste oder sogar einem Schaltungslayout compiliert und in einem maschinenzugänglichen Medium gespeichert werden. Der Code auf Verhaltensebene, der RTL-Code, die Netzliste und das Schaltungslayout repräsentieren alle verschiedene Grade der Abstraktion zur Beschreibung von Ausführungsformen des Addierers 200.
  • Die obige Beschreibung dargestellter Ausführungsformen der Erfindung, einschließlich des in der Zusammenfassung Beschriebenen, soll die Erfindung nicht erschöpfen oder auf die genauen offengelegten Formen beschränken. Obwohl hier zur Veranschauung spezifische Ausführungsformen und Beispiele für die Erfindung beschrieben wurden, sind innerhalb des Schutzumfangs der Erfindung, wie für Fachleute erkennbar ist, verschiedene äquivalente Modifikationen möglich.
  • Diese Modifikationen können im Hinblick auf die obige ausführliche Beschreibung an der Erfindung vorgenommen werden. Die in den folgenden Ansprüchen verwendeten Begriffe sollten nicht als die Erfindung auf die in der Beschreibung und in den Ansprüchen offengelegten spezifischen Ausführungsformen beschränkend aufgefaßt werden. Statt dessen soll der Schutzumfang der Erfindung vollständig durch die folgenden Ansprüche bestimmt werden, die gemäß den festgelegten Doktrinen der Interpretation von Ansprüchen aufzufassen sind.

Claims (15)

  1. Mehrbit-Addierer (200), umfassend: eine Carry-Kette (205) zum selektiven Propagieren, Generieren und Killen von Carry-In-Bits, wobei die Carry-Kette niedriger wertige Bitpositionen, eine Zwischenbitposition und höherwertige Bit-Positionen aufweist; ein Carry-Sprung-Netzwerk (215), das an die Carry-Kette gekoppelt ist, um selektiv Carry-In-Bits über mindestens einen Teil der Carry-Kette springen zu lassen; entlang der Carry-Kette gekoppelte Summenzellen (210) zum Summieren der Carry-In-Bits mit entsprechenden Bits zweier Operanden, wobei jede der Summenzellen ein Bit eines Mehrbit-Ergebnisses generieren soll; und Carry-Summenzellen (220), von denen jede so geschaltet ist, daß sie das Carry-In-Bit (CI11) für die Zwischenbitposition in der Carry-Kette und ein jeweiliges Steuersignal (CTRL12...CTRL15) aus einer Steuerlogik (250) empfangt und ein jeweiliges Bit des Mehrbit-Ergebnisses generiert, das eine höherwertigere Bitposition als die Zwischenbitposition aufweist, wobei ein Teil der Summenzellen (210), welche den höherwertigen Bitpositionen entsprechen, jeweils an eine der Carry-Summenzellen (220) mit entsprechenden Bitpositionen angekoppelt ist, um einen Teil der höherwertigen Bitpositionen zwischen der Zwischenbitposition und einer höchstwertigen Bit(MSB)-Position zu generieren, wenn eines der Carry-In-Bit (CO11...CO14) zwischen der Zwischenposition und der MSB-Position generiert wird.
  2. Mehrbit-Addierer nach Anspruch 1, wobei die Carry-Summenzellen (220) so geschaltet sind, daß sie das Carry-In-Bit (CI11) für die Zwischenbitposition logisch mit jeweiligen Steuersignalen XOR-verknüpft, um die jeweiligen Bits des Mehrbit-Ergebnisses zu generieren.
  3. Mehrbit-Addierer nach Anspruch 2, ferner umfassend: jeweilige an die Carry-Summenzellen angekoppelten Steuerblocks (250) zum Erzeugen der jeweiligen Steuersignale, wobei die jeweiligen Steuerblocks so geschaltet sind, daß sie jeder Bitposition des Mehrbit-Ergebnisses einschließend und zwischen der Zwischenbitposition und einer Bitposition jeder Carry-Summenzelle entsprechende Propagationswerte durch logische XOR-Verknüpfung entsprechender Bitpositionen der zwei Operanden bestimmten, wobei die Steuerblocks die Propagationswerte logisch UND-verknüpfen, um die Steuersignale zu generieren.
  4. Mehrbit-Addierer nach Anspruch 3, wobei die jeweiligen Bits des Mehrbit-Ergebnisses und die Bitpositionen der Carry-Summenzellen höchstwertige Bit-Positionen des Mehrbit-Ergebnisses und der beiden Operanden umfassen.
  5. Mehrbit-Addierer nach Anspruch 3, wobei die Carry-Summenzellen, einen Teil des Mehrbit-Ergebnisses mit Bitpositionen zwischen der Zwischenbitposition und der MSB-Position, einschließlich der MSB-Position, generieren.
  6. Mehrbit-Addierer nach Anspruch 1, wobei: die Carry-Kette kaskadierte Propagieren-Erzeugen-Killen-Stufen („PGK-Stufen”) zum selektiven Propagieren, Generieren und Killen der Carry-In-Bit umfaßt; und das Carry-Sprung-Netzwerk an die Carry-Kette angekoppelte Carry-Sprung-Zellen zum selektiven Überspringen von Gruppen der PGK-Stufen durch Carry-In-Bit umfaßt.
  7. Mehrbit-Addierer nach Anspruch 6, wobei jede Carry-Sprungzelle folgendes umfaßt: einen Transistor mit einem Source-Anschluß, einem Drain-Anschluß und einem Gate-Anschluß, wobei die Source- und Drain-Anschlüsse zum Überbrücken einer der Gruppen von PGK-Stufen geschaltet sind; und an den Gate-Anschluß angekoppelte Logik der Gruppenpropagation („GP”), wobei die GP-Logik bestimmt, wann ein Carry-In-Bit für die überbrückte Gruppen von PGK-Stufen über die überbrückte Gruppe von PGK-Stufen hinweg übersprungen werden kann, um ein nächstes Carry-In-Bit für eine nächste Gruppe der PGK-Stufen zu bilden.
  8. Mehrbit-Addierer nach Anspruch 6 mit 16 PGK-Stufen, 16 Summenzellen und 4 Carry-Summenzellen, und wobei der Mehrbit-Addierer einen 16-Bit-Volladdierer umfaßt.
  9. Mehrbit-Addierer nach Anspruch 1, wobei der Mehrbit-Addierer einen Addierer mit geringem Spannungshub umfaßt und die Summenzellen so geschaltet sind, daß sie das Mehrbit-Ergebnis als Spannungsdifferenzen generieren, und ferner umfassend: Leseverstärker, die so geschaltet sind, daß sie die von den Summenzellen ausgegebenen Spannungsdifferenzen lesen.
  10. Verfahren mit den folgenden Schritten: selektives Propagieren, Generieren oder Killen von Carry-In-Bit entlang einer Carry-Kette (205), wobei die Carry-Kette niedriger wertige Bitpositionen, eine Zwischenposition und höherwertige Bit-Positionen aufweist; Summieren äquivalenter Bitpositionen eines ersten Operanden, eines zweiten Operanden und der Carry-In-Bits, um einen ersten Teil eines Mehrbit-Ergebnisses zu erhalten, wobei der erste Teil die Zwischenbitposition und die niedriger wertigen Bitpositionen enthält; Generieren von Steuersignalen (CTRL12...CTRL15) auf der Basis des ersten und des zweiten Operanden; logische XOR-Verknüpfung der Zwischenbitposition der Carry-In-Bits (CI11) mit den Steuersignalen (CTRL12...CTRL15) in Carry-Summenzellen (220), um einen zweiten Teil des Mehrbit-Ergebnisses zu bestimmen, wobei der zweite Teil die höherwertigere Bitpositionen als die Zwischenbitposition enthält; und Generieren eines Teils des zweiten Teils des Mehrbit-Ergenisses mit Bitpositionen zwischen der Zwischenbitposition und einer höchstwertigen Bit(MSB)-Position mit Summenzellen (210), die jeweils an eine der Carry-Summenzelle (220) gekoppelt sind, wenn eines der Carry-In-Bit (CO11...CO14) zwischen der Zwischenbitposition und der MSB-Position generiert wird.
  11. Verfahren nach Anspruch 10, ferner umfassend: selektives Überspringen von Teilen der Carry-Kette durch mindestens einige Carry-In-Bit, wenn diese Teile so festgelegt sind, daß sie die besagten einigen Carry-In-Bit propagieren.
  12. Verfahren nach Anspruch 11, wobei das Generieren der Steuersignale folgendes umfaßt: Generieren eines Propagationswerts für jede der höherwertigen Bitpositionen und die Zwischenbitposition durch logische XOR-Verknüpfung der Zwischenbitposition und der höherwertigen Bitpositionen des ersten und des zweiten Operanden; und logische UND-Verknüpfung der Propagationswerte einschließlich und zwischen der Zwischenbitposition und jeder der höherwertigen Bitpositionen.
  13. Verfahren nach Anspruch 12, ferner umfassend: Summieren äquivalenter Bitpositionen des ersten Operanden, des zweiten Operanden und der Carry-In-Bit, um den zweiten Teil eines Mehrbit-Ergebnisses zu erhalten, wenn die Zwischenbitposition ein Carry-Out generiert.
  14. Verfahren nach Anspruch 10, ferner umfassend: Erfassen von Differenzspannungen für jede Bitposition des Mehrbit-Ergebnisses, um digitale Werte des Mehrbit-Ergebnisses zu bestimmen.
  15. System, umfassend: synchronen dynamischen Direktzugriffsspeicher („SDRAM”); und einen Prozessor, der so geschaltet ist, daß er auf den SDRAM zugreift, wobei der Prozessor einen Mehrbit-Addierer nach einem der Ansprüche 1 bis 9 enthält.
DE112005001906T 2004-08-04 2005-07-15 Mehrbit-Addierer und Verfahren zum Propagieren, Generieren oder Killen von Carry-In-Bits entlang einer Carry-Kette Expired - Fee Related DE112005001906B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/911,824 US7516173B2 (en) 2004-08-04 2004-08-04 Carry-skip adder having merged carry-skip cells with sum cells
US10/911,824 2004-08-04
PCT/US2005/024889 WO2006019838A1 (en) 2004-08-04 2005-07-15 Carry-skip adder having merged carry-skip cells with sum cells

Publications (2)

Publication Number Publication Date
DE112005001906T5 DE112005001906T5 (de) 2007-11-08
DE112005001906B4 true DE112005001906B4 (de) 2012-07-12

Family

ID=35058556

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005001906T Expired - Fee Related DE112005001906B4 (de) 2004-08-04 2005-07-15 Mehrbit-Addierer und Verfahren zum Propagieren, Generieren oder Killen von Carry-In-Bits entlang einer Carry-Kette

Country Status (8)

Country Link
US (1) US7516173B2 (de)
JP (1) JP4493694B2 (de)
KR (1) KR100874285B1 (de)
CN (1) CN101014932B (de)
DE (1) DE112005001906B4 (de)
GB (1) GB2430519B (de)
TW (1) TWI294095B (de)
WO (1) WO2006019838A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090166757A1 (en) * 2007-12-27 2009-07-02 International Business Machines Corporation Stress engineering for sram stability
CN103257842B (zh) * 2012-02-17 2016-05-04 京微雅格(北京)科技有限公司 一种加法进位信息输出的方法和一种加法器
KR102072543B1 (ko) 2013-01-28 2020-02-03 삼성전자 주식회사 복수 데이터 형식을 지원하는 가산기 및 그 가산기를 이용한 복수 데이터 형식의 가감 연산 지원 방법
CN105589981B (zh) * 2014-10-22 2019-04-09 京微雅格(北京)科技有限公司 基于fpga的优化布局结构的加法器的工艺映射方法
US9590633B2 (en) * 2014-12-11 2017-03-07 Capital Microelectronics Co., Ltd. Carry-skip one-bit full adder and FPGA device
US10223071B2 (en) * 2017-04-14 2019-03-05 Qualcomm Incorporated Energy-efficient variable power adder and methods of use thereof
KR102191305B1 (ko) * 2019-07-09 2020-12-15 국민대학교산학협력단 경량 엔트로피 관리 장치 및 방법
CN113805840B (zh) * 2021-11-18 2022-05-03 南京风兴科技有限公司 快速累加器
TWI785953B (zh) * 2021-12-30 2022-12-01 新唐科技股份有限公司 預看進位加法器、安全加法器以及執行預看進位加法的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199091B1 (en) * 1997-06-24 2001-03-06 International Business Machines Corporation Carry skip adder
US6567836B1 (en) * 1999-12-23 2003-05-20 Intel Corporation Multi-level carry-skip adder

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4556948A (en) 1982-12-15 1985-12-03 International Business Machines Corporation Multiplier speed improvement by skipping carry save adders
US4737926A (en) * 1986-01-21 1988-04-12 Intel Corporation Optimally partitioned regenerative carry lookahead adder
JPH02245926A (ja) 1989-03-20 1990-10-01 Fujitsu Ltd 論理回路
JPH0561643A (ja) * 1991-09-03 1993-03-12 Mitsubishi Electric Corp キヤリールツクアヘツド加算器
JPH0651950A (ja) 1992-07-30 1994-02-25 Mitsubishi Electric Corp 加算回路
US5337269A (en) * 1993-03-05 1994-08-09 Cyrix Corporation Carry skip adder with independent carry-in and carry skip paths
US5581497A (en) * 1994-10-17 1996-12-03 Intel Corporation Carry skip adder with enhanced grouping scheme
US5555517A (en) * 1995-01-04 1996-09-10 Intel Corporation Apparatus and method for efficient carry skip incrementation
JPH09231055A (ja) 1996-02-27 1997-09-05 Denso Corp 論理演算回路及びキャリールックアヘッド加算器
JPH09330208A (ja) * 1996-06-11 1997-12-22 Hitachi Ltd 加算回路
JP2001195234A (ja) * 2000-01-12 2001-07-19 Fuji Xerox Co Ltd 情報処理装置
CN1159647C (zh) * 2000-04-05 2004-07-28 北京多思科技工业园股份有限公司 加法器及其实现方法
US6584484B1 (en) * 2000-05-11 2003-06-24 Agere Systems Inc. Incorporation of split-adder logic within a carry-skip adder without additional propagation delay
US7016932B2 (en) * 2000-10-26 2006-03-21 Idaho State University Adders and adder bit blocks having an internal propagation characteristic independent of a carry input to the bit block and methods for using the same
CN1164988C (zh) * 2002-01-17 2004-09-01 北京大学 32位加法器电路结构

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199091B1 (en) * 1997-06-24 2001-03-06 International Business Machines Corporation Carry skip adder
US6567836B1 (en) * 1999-12-23 2003-05-20 Intel Corporation Multi-level carry-skip adder

Also Published As

Publication number Publication date
CN101014932B (zh) 2010-06-16
GB2430519B (en) 2008-02-20
CN101014932A (zh) 2007-08-08
TWI294095B (en) 2008-03-01
US7516173B2 (en) 2009-04-07
WO2006019838A1 (en) 2006-02-23
KR20070030320A (ko) 2007-03-15
TW200627260A (en) 2006-08-01
GB2430519A (en) 2007-03-28
US20060031280A1 (en) 2006-02-09
JP4493694B2 (ja) 2010-06-30
KR100874285B1 (ko) 2008-12-18
GB0700608D0 (en) 2007-02-21
DE112005001906T5 (de) 2007-11-08
JP2008508637A (ja) 2008-03-21

Similar Documents

Publication Publication Date Title
DE112005001906B4 (de) Mehrbit-Addierer und Verfahren zum Propagieren, Generieren oder Killen von Carry-In-Bits entlang einer Carry-Kette
DE4212202C2 (de) Logikgatter
DE69731700T2 (de) Arithmetischer Schaltkreis und arithmetisches Verfahren
DE4007223C2 (de)
EP0086904B1 (de) Digitale Parallel-Rechenschaltung für positive und negative Binärzahlen
DE3901995C2 (de)
DE4326134B4 (de) Eingangswechseldetektorschaltung
DE102020113922A1 (de) Multipliziererschaltungsanordnung mit reduzierter latenz für sehr grosse zahlen
DE3130330A1 (de) "uebertragschaltung"
DE3940897C2 (de) Schaltungsanordnung und Verfahren zur Berechnung digitaler Summen in einem Halbleiteraddierer mit Parallelübertrag
DE4335245A1 (de) Vektorlogikverfahren und dynamisches Logikgatter für eine selbstzeitgebende, monotone Logikprogression
DE10019698C2 (de) Vorrichtung zum Durchführen einer Summier-und-Vergleichs-Operation
DE2707451A1 (de) Einrichtung und verfahren zum addieren von wenigstens zwei aus mehreren bits bestehenden binaerzahlen
EP0383965A1 (de) Multiplizierwerk
EP0834115B1 (de) Schaltungsanordnung zur realisierung von durch schwellenwertgleichungen darstellbaren logikelementen
EP0352549B1 (de) Carry-select-Addierer
EP1540460B1 (de) Vorrichtung und verfahren zum umsetzen und addiererschaltung
DE69726248T2 (de) Addierer mit bedingter Summe unter Benutzung von Durchlasstransistor-Logik
EP0257362A1 (de) Addierer
EP0224656A2 (de) Mehrstelliger Carry-Ripple-Addierer in CMOS-Technik mit zwei Typen von Addiererzellen
DE4007615C2 (de) ROM Schaltung
EP0433315A1 (de) Schaltungsanordnung zur addition oder subtraktion von im bcd-code oder dual-code codierten operanden
EP0218071B1 (de) Addierzelle für Carry-Ripple-Addierer in CMOS-Technik
DE102009051500B4 (de) Arithmetik-Logik-Einheit
EP0339514B1 (de) Addierzelle für "Carry-Save"-Arithmetik

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20121013

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee