DE19782228C2 - N-bit adder with adder blocks - Google Patents

N-bit adder with adder blocks

Info

Publication number
DE19782228C2
DE19782228C2 DE19782228A DE19782228A DE19782228C2 DE 19782228 C2 DE19782228 C2 DE 19782228C2 DE 19782228 A DE19782228 A DE 19782228A DE 19782228 A DE19782228 A DE 19782228A DE 19782228 C2 DE19782228 C2 DE 19782228C2
Authority
DE
Germany
Prior art keywords
bit
adder
block
carry
result
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
DE19782228A
Other languages
German (de)
Other versions
DE19782228T1 (en
Inventor
David L Harris
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
Application granted granted Critical
Publication of DE19782228C2 publication Critical patent/DE19782228C2/en
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
    • 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
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Abstract

Die vorliegende Erfindung stellt einen 64-Bit-Adder zur Verfügung, der vier räumlich pipeline-verschachtelte 16-Bit-Adderblöcke (310) aufweist. Jeder Adderblock enthält eine 16-Bit-Summier- und Auslaufsübertragslogik, die parallel konfiguriert sind. Die Summierlogik (320) eins Adderblocks stellt ein den 16-Bit-Operanden (312) und einem einlaufenden Übertragssignal (314), die dem Adderblock eingegeben werden, entsprechendes 16-Bit-Ergebnis (326) an einem zugehörigen Blockausgang zur Verfügung. Die Logik (340) für den auslaufenden Übertrag eines Adderblocks bestimmt ein einlaufendes Übertragungssignal (319) für einen benachbarten Adderblock. Der erste Adderblock stellt ein 16-Bit-Ergebnis an seinem zugehörigen Blockausgang bei einer Geschwindigkeit zur Verfügung, die von der Verzögerung der 16-Bit-Summierlogik bestimmt wird. Die 16-Bit-Ergebnisse aus den nächsten drei Adderblöcken werden sequentiell bestimmt, sobald der einlaufende Übertrag von dem jeweils vorhergehenden 16-Bit-Block verfügbar wird.The present invention provides a 64-bit adder that has four spatially pipelined 16-bit adder blocks (310). Each adder block contains 16-bit summing and leakage carry logic that is configured in parallel. The summing logic (320) of an adder block provides a 16-bit result (326) corresponding to the 16-bit operands (312) and an incoming carry signal (314) which are input to the adder block, at an associated block output. The logic (340) for the outgoing carry of an adder block determines an incoming transfer signal (319) for an adjacent adder block. The first adder block provides a 16-bit result at its associated block output at a rate determined by the delay of the 16-bit summing logic. The 16-bit results from the next three adder blocks are determined sequentially as soon as the incoming carry from the previous 16-bit block becomes available.

Description

Die Erfindung bezieht sich auf einen N-Bit-Adder mit k (N/k)-Bit-Adderblöcken, wobei jeder (N/k)-Bit-Adderblock ei­ ne Summierlogik zum Erzeugen eines (N/k)-Bit-Ergebnisses und eine Übertragslogik zum Erzeugen eines auslaufenden Über­ trags aufweist, sowie auf ein Verfahren zum Addieren zweier N-Bit-Operanden.The invention relates to an N-bit adder with k (N / k) bit adder blocks, with each (N / k) bit adder block ei ne summing logic for generating an (N / k) bit result and a carry logic to generate an expiring over has inert, and a method for adding two N-bit operands.

Die arithmetisch-logische Einheit (ALU) ist eine zentra­ le Komponente jedes Prozessors. Die ALU führt Additions-, Subtraktions- und logische Operationen durch und wird bei jedem Befehl verwendet, bei welchem eine Adresse berechnet werden muß. Wegen ihrer zentralen Rolle und komplexen Funk­ tion ist die ALU üblicherweise ein kritischer Pfad bei der Bestimmung der Geschwindigkeit, bei welcher der Prozessor arbeiten kann. Beispielsweise bestimmt der ALU-Selbstumge­ hungspfad (ALU self-bypass path), wieviel Zeit vom Start ei­ ner ALU-Operation erforderlich ist, bis das Ergebnis der Operation zur Verwendung in einer nachfolgenden Berechnung verfügbar ist. Prozessordesigner verwenden typischerweise den ALU-Selbstumgehungspfad, um das Zykluszeit-Ziel für den Prozessor festzulegen.The arithmetic-logic unit (ALU) is a center le component of each processor. The ALU performs addition, Subtraction and logical operations through and is at any command used to calculate an address must become. Because of their central role and complex radio tion, the ALU is usually a critical path in the Determine the speed at which the processor can work. For example, the ALU self-determination determines path (ALU self-bypass path), how much time from the start an ALU operation is required until the result of the Operation for use in a subsequent calculation is available. Processor designers typically use the ALU self-bypass path to the cycle time target for the Processor.

Gegenwärtig werden viele Anstrengungen bei der Optimie­ rung des Designs von 64-Bit-Addern unternommen, da solche Adder oftmals die langsamsten Komponenten in einer 64-Bit- ALU sind. Die verschiedenen Optimierungstechniken können un­ ter Bezugnahme auf die logischen Gleichungen verstanden wer­ den, die verwendet werden, um zwei Einzelbit-Zahlen (A und B) zu summieren:
A lot of effort is currently being made to optimize the design of 64-bit wires, as such adders are often the slowest components in a 64-bit ALU. The various optimization techniques can be understood by referring to the logical equations used to sum two single bit numbers (A and B):

SUM = A ⊕ B ⊕ Cin (I)
SUM = A ⊕ B ⊕ C in (I)

Cout = G1 + P1 . Cin (II)C out = G1 + P1. C in (II)

Hierbei ist G1 ein 1-Bit-Erzeuge(Generate)-Signal, das durch A . B gegeben ist, P1 ist ein 1-Bit-Weiterleit(Propaga­ te)-Signal, das durch (A + B) oder (A ⊕ B) gegeben ist, wobei "." die logische UND-Operation, "+" die logische ODER- Operation, "⊕" die Exklusiv-ODER(XOR)-Operation darstellt, wobei Cout das durch das Summieren von A, B, und Cin erzeugte Übertragsbit ist, und Cin das durch ein Bit des Adders er­ zeugte Übertragsbit ist. Da Cin durch eine vorgehende Bit­ summe erzeugt wird, würde die direkte Anwendung von (I) und (II) bei einem N-Bit-Adder erfordern, daß die Bits in N se­ quentiellen Stufen summiert würden, wobei das durch eine Stufe erzeugte Cout zum nächsten Bit-Paar weitergeleitet würde. Die sich ergebende Verzögerung für N-Bit-Adder wird schnell untragbar, wenn N (die Adderbreite) ansteigt.Here, G1 is a 1-bit generate signal that is generated by A. B is given, P1 is a 1-bit propagation signal given by (A + B) or (A ⊕ B), where "." represents the logical AND operation, "+" represents the logical OR operation, "⊕" represents the exclusive OR (XOR) operation, where C out is the carry bit generated by summing A, B, and C in , and C in the carry bit generated by a bit of the adder. Since C in is generated by a preceding bit sum, the direct application of (I) and (II) to an N-bit adder would require the bits to be summed in N sequential stages, with the C generated by one stage out to the next bit pair. The resulting delay for N-bit adders quickly becomes intolerable as N (the adder width) increases.

Herkömmliche Adder benutzen verschiedene Techniken, um die sequentielle Summierung aller Bits zu vermeiden. Insbe­ sondere werden oftmals Übertrags-Vorausschau- und Übertrags- Auswahl-Techniken kombiniert, um einen hohe Grad von Paral­ lelität bei N-Bit-Addern zu implementieren. Ein Beispiel ei­ nes Übertragsauswahl-Adders ist von O. J. Bedrij in "Carry- Select Adder", IRE Transactions on Electronic Components, Juni 1962, Seiten 340-346, beschrieben. Übertrags-Voraus­ schau-Techniken unterteilen die N-Bit-Adder in Blöcke von jeweils L Bits. Weiterleit-, Erzeuge- und auslaufende Über­ tragssignale (PL, GL, CL) für die L-Bit-Blöcke werden paral­ lel berechnet. O. J. Bedrij beschreibt einen 25-Bit-Adder mit 5 Blöcken von jeweils 5 Bit Breite. Übertragsauswahltechni­ ken berechnen spekulative Summen für jeden L-Bit-Block für ein Cin von 0 oder 1. In jedem Fall ist Cin für einen Block(j) gleich CL für den vorhergehenden Block(j - 1). Die richtigen L-Bit-Summen und -Überträge werden ausgewählt, wenn die L-Bit-Ergebnisse aus den vorhergehenden Blöcken verfügbar werden.Conventional adders use various techniques to avoid sequential summation of all bits. In particular, carry look-ahead and carry select techniques are often combined to implement a high degree of parallelism with N-bit wires. An example of a carry select adder is described by OJ Bedrij in "Carry Select Adder", IRE Transactions on Electronic Components, June 1962, pages 340-346. Carryforward lookup techniques divide the N-bit adders into blocks of L bits each. Forwarding, generating and expiring carry signals (PL, GL, CL) for the L-bit blocks are calculated in parallel. OJ Bedrij describes a 25-bit adder with 5 blocks, each 5 bits wide. Carry selection techniques compute speculative sums for each L-bit block for a C in of 0 or 1. In any case, C in for a block (j) is CL for the previous block (j-1). The correct L-bit sums and carryovers are selected when the L-bit results from the previous blocks become available.

Es kann gezeigt werden, daß unter bestimmten Bedingungen ein diese Techniken verwendender N-Bit-Adder eine Verzöge­ rung einer Kette von (2 + logL[N]) Gattern aufweist. Ein er­ stes Gatter berechnet P- und G-Signale aus den L-Bit-Operan­ den, die logL[N] Gatter erzeugen die Weiterleit- und Erzeu­ ge-Signale und den auslaufenden Übertrag höherer Ordnung und das verbleibende Gatter führt das abschließende XOR durch, z. B. Gleichung (I). Für einen 64-Bit-Adder mit L = 4 führt dies zu einer 5-Gatter-Verzögerung. Während die logarithmi­ sche Abhängigkeit anzeigt, daß größere L wünschenswert sind, wird die Operation eines CMOS-Gatters merklich verlangsamt, wenn es von mehr als vier Eingängen getrieben wird (Ein­ fächerung < 4). Somit benutzen CMOS-Adder typischerweise Gatter, die Einfächerungen von 4 oder weniger aufweisen. Darüber hinaus liefert die Anzahl der Gatter in dem kriti­ schen Pfad des Adders nur eine grobe Abschätzung der Adder- Geschwindigkeit, da die Zykluszeit von der Komplexität der verwendeten Gatter und der Last an den Gattern abhängt.It can be shown that under certain conditions an N-bit adder using these techniques has a delay in a chain of (2 + log L [N]) gates. A first gate calculates P and G signals from the L-bit operands, the log L [N] gates generate the forward and generate signals and the outgoing higher order carry and the remaining gate carries the final XOR through, e.g. B. Equation (I). For a 64-bit adder with L = 4, this leads to a 5-gate delay. While the logarithmic dependence indicates that larger L are desirable, the operation of a CMOS gate is significantly slowed down if it is driven by more than four inputs (fan-in <4). Thus, CMOS adders typically use gates that have peaks of 4 or less. In addition, the number of gates in the critical path of the adder provides only a rough estimate of the adder speed since the cycle time depends on the complexity of the gates used and the load on the gates.

Bestimmte Adder-Konstruktionen implementieren einen Ling-Pseudo-Übertrag, welcher ein modifiziertes Erzeuge-Si­ gnal (H) zusätzlich zu dem Weiterleit-Signal (P) benutzt. Das modifizierte Erzeuge-Signal gestattet es, daß 4-Bit-H- und -P-Signale (H4, P4) direkt aus den Operandenbits unter Verwendung eines Gatters mit einer Einfächerung von 4 be­ rechnet werden. Dies beseitigt ein Gatter aus dem Adder, er­ fordert aber die Verwendung größerer, langsamerer Gatter zur Berechnung der Weiterleit- und Übertragssignale. Ein diese Technik verwendender Adder ist bei S. Naffziger, "A Sub- Nanosecond 0.5 mm 64b Adder Design", Proceedings of the 1996 IEEE International Solid-State Circuits Conference beschrie­ ben.Certain adder designs implement one Ling pseudo-carry, which is a modified generate Si signal (H) used in addition to the forwarding signal (P). The modified generate signal allows 4-bit H- and -P signals (H4, P4) directly from the operand bits below Use of a gate with a fan-in of 4 be be counted. This eliminates a gate from the adder, he but calls for the use of larger, slower gates Calculation of the forward and carry signals. One of these Technology using adder is in S. Naffziger, "A Sub- Nanosecond 0.5 mm 64b Adder Design ", Proceedings of the 1996 IEEE International Solid-State Circuits Conference ben.

Unter Verwendung optimierter Technologien und paralleler Architekturen können diese bekannten Adder ein 64-Bit-Ergeb­ nis bei einer Verzögerung von etwa 7 Invertern mit einer Ausfächerung von 4 (in etwas weniger als einer Nanosekunde mit der 1996er CMOS-Technologie) zur Verfügung stellen. In jedem Fall ist der kritische Pfad begrenzt durch die Verzö­ gerung der Übertragskette. Um die Betriebsfrequenzen von Prozessoren über diese durch einfache Prozeßverbesserungen unterstützten Frequenzerhöhungen hinaus weiter zu erhöhen, ist eine noch schnellere Adderarchitektur erforderlich. Using optimized technologies and parallel Architectures can give this well known adder a 64 bit result nis with a delay of about 7 inverters with a Fanning out 4 (in a little less than a nanosecond with the 1996 CMOS technology). In in any case, the critical path is limited by the delays transfer chain. To the operating frequencies of Processors over this through simple process improvements supported frequency increases further increase an even faster adder architecture is required.  

Diese Aufgabe wird durch einen N-Bit-Adder mit den Merk­ malen des Anspruchs 1 bzw. ein Verfahren mit den Merkmalen des Anspruchs 5 gelöst.This task is carried out by an N-bit adder with the Merk paint the claim 1 or a method with the features of claim 5 solved.

Die vorliegende Erfindung ist ein N-Bit-Adder, der so­ wohl die Verzögerung der Berechnung der am geringsten bewer­ teten Bits einer Operation als auch die Zykluszeit des Ad­ ders zu Lasten einer längeren Verzögerung für die am höch­ sten bewerteten Bits minimiert. Gemäß der vorliegenden Er­ findung werden k (N/k)-Bit-Adderblöcke, die jeweils eine (N/k)-Bit-Summierlogik und eine Logik für den auslaufenden Übertrag aufweisen, miteinander in der Art einer Pipeline gekoppelt, um den N-Bit-Adder zu bilden. Die Summierlogik eines Adderblocks stellt ein (N/k)-Bit-Ergebnis am Ausgang des Adders zur Verfügung. Die Logik für den auslaufenden Übertrag bestimmt das auslaufende Übertragssignal für den Adderblock und koppelt es an den benachbarten Adderblock. Bei einem N-Bit-Adder gemäß der vorliegenden Erfindung flie­ ßen die Daten durch die k Adderblöcke in der Art einer Pipe­ line. Die N/k am geringsten bewerteten Bits des Ergebnisses sind mit einer Verzögerung verfügbar, die allein durch die (N/k)-Bit-Summierlogik bestimmt wird, während die Bits höhe­ rer Ordnung zu nachfolgenden Intervallen verfügbar werden, die durch die Weiterleitung des auslaufenden Übertrags zwi­ schen den Blöcken bestimmt werden.The present invention is an N-bit adder that does so arguably the delay in calculating the least weight bits of an operation as well as the cycle time of the ad at the expense of a longer delay for those at the highest most evaluated bits minimized. According to the present Er k (N / k) bit adder blocks, each one (N / k) bit summing logic and logic for the expiring Have carry, with each other in the manner of a pipeline coupled to form the N-bit adder. The summation logic of an adder block sets an (N / k) bit result at the output of the adder. The logic for the expiring Carry determines the outgoing carry signal for the Adderblock and couples it to the neighboring Adderblock. In an N-bit adder according to the present invention flows ate the data through the k adder blocks in the manner of a pipe line. The N / k least significant bits of the result are available with a delay caused by the (N / k) bit summing logic is determined while the bits are increasing order becomes available at subsequent intervals, the between the forwarding of the expiring carryover between the blocks.

Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.Advantageous developments of the invention are in the Subclaims marked.

Die vorliegende Erfindung ist am besten unter Bezugnahme auf die folgende detaillierte Beschreibung und die beglei­ tenden Zeichnungen zu verstehen.The present invention is best referenced on the following detailed description and accompanying understandable drawings.

Fig. 1 ist ein Zeitdiagramm eines herkömmlichen N-Bit- Adders, der eine zweistufige Berechnung durchführt. Fig. 1 is a timing chart of a conventional N-bit adder that performs a two-stage calculation.

Fig. 2 ist ein Zeitdiagramm eines Pipeline-N-Bit-Adders ge­ mäß der vorliegenden Erfindung, der eine zweistufige Be­ rechnung durchführt. Fig. 2 is a timing diagram of a pipeline N-bit adder according to the present invention, which performs a two-stage calculation.

Fig. 3 ist eine Blockdarstellung eines Ausführungsbei­ spiels eines Pipeline-N-Bit-Adders gemäß der vorliegenden Erfindung. Fig. 3 is a block diagram of an exemplary embodiment of a game pipeline N-bit adder according to the present invention.

Fig. 4 ist eine Blockdarstellung eines Ausführungsbei­ spiels eines 64-Bit-Pipeline-Adders gemäß der vorliegenden Erfindung. Fig. 4 is a block diagram of an exemplary embodiment of a game 64-bit pipelined adder according to the present invention.

Fig. 5A ist ein Blockschaltbild eines Ausführungsbei­ spiels eines 16-Bit-Adderblocks des 64-Bit-Adders gemäß Fig. 4. Fig. 5A, according to a block diagram of an exemplary embodiment of a game 16-bit Adderblocks of the 64-bit adder Fig. 4.

Fig. 5B ist eine schematische Darstellung eines Ausfüh­ rungsbeispiels eines 4-Bit-Adder-Unterblocks des 16-Bit- Adderblocks gemäß Fig. 5A. FIG. 5B is a schematic illustration of an exemplary embodiment of a 4-bit adder sub-block of the 16-bit adder block according to FIG. 5A.

Fig. 5C ist eine schematische Darstellung eines Ausfüh­ rungsbeispiels der Logik für den auslaufenden Übertrag für den 16-Bit-Adderblock gemäß Fig. 5A. FIG. 5C is a schematic illustration of an embodiment of the outgoing carry logic for the 16-bit adder block of FIG. 5A.

Detaillierte BeschreibungDetailed description

Es wird zunächst auf Fig. 1 Bezug genommen, in der ein Zeitdiagramm 100 für einen herkömmlichen N-Bit-Adder ein­ schließlich einer Selbstumgehungsperiode 102 gezeigt ist. Das Zeitdiagramm zeigt eine Zwei-Schritt-Berechnung, C = A + B (104) und E = C + D (106), die durch eine Selbstumge­ hungsperiode 102 getrennt sind, in welcher das Ergebnis C der ersten Addition zurück zu dem Adder als Operand für die zweite Addition gesendet wird. Der in Klammer gesetzte Aus­ druck [N - 1 : 0] zeigt an, daß der Adder an sämtlichen N Bits (N - 1 bis 0) gleichzeitig arbeitet. Zum Zwecke dieser Erörte­ rung sei angenommen, daß der N-Bit-Adder in k (N/k)-Bit- Blöcke segmentiert werden kann, wie beispielsweise ein 64- Bit-Adder, der in vier 16-Bit-Blöcke segmentiert ist.Referring first to FIG. 1, a timing diagram 100 for a conventional N-bit adder including a self-bypass period 102 is shown. The timing diagram shows a two-step calculation, C = A + B ( 104 ) and E = C + D ( 106 ), separated by a self-bypass period 102 , in which the result C of the first addition back to the adder as Operand for the second addition is sent. The expression in brackets [N - 1: 0] indicates that the adder works on all N bits (N - 1 to 0) simultaneously. For purposes of this discussion, assume that the N-bit adder can be segmented into k (N / k) -bit blocks, such as a 64-bit adder that is segmented into four 16-bit blocks.

Außerdem sind in Fig. 1 die Zeiten T1, T2 und T3 ange­ zeigt. T1 ist die Zeit, die zum Erzeugen der (N/k) am ge­ ringsten bewerteten Bits des N-Bit-Ergebnisses erforderlich ist. T2 ist die Selbstumgehungs-Zykluszeit des Adders, das heißt die Zeit, die erforderlich ist, bevor der Adder die zweite Addition 106 beginnen kann. T3 ist die Zeit, die zum Erzeugen des N-Bit-Ergebnisses erforderlich ist. Dies ist die Zeit, die erforderlich ist, bevor nachfolgende Operatio­ nen, die sämtliche N Bits des Ergebnisses erfordern, begin­ nen können. Da ein herkömmlicher Adder sämtliche N Bits auf einmal erzeugt, ist T1 gleich T3. Das heißt, daß N/k-Bit- Ergebnis ist nur dann verfügbar, wenn das vollständige N- Bit-Ergebnis berechnet worden ist.In addition, the times T1, T2 and T3 are shown in FIG. 1. T1 is the time required to generate the (N / k) least significant bits of the N-bit result. T2 is the self-bypass cycle time of the adder, that is, the time required before the adder can start the second addition 106 . T3 is the time required to generate the N-bit result. This is the time required before subsequent operations that require all N bits of the result can begin. Since a conventional adder generates all N bits at once, T1 is T3. That is, the N / k-bit result is only available when the full N-bit result has been calculated.

Die Bestimmung des auslaufenden N-Bit-Übertrags stellt einen signifikanten Beitrag zu T1 und T3 dar, da die Über­ tragskette in dem kritischen Pfad des Adders liegt. Aus die­ sem Grund wird die Logik für den auslaufenden Übertrag unter Verwendung relativ großer Gatter implementiert, um die Si­ gnalweiterleitung durch die Übertragskette hindurch zu be­ schleunigen, welche in dem kritischen Pfad von T3 ist. Die Benutzung relativ großer Gatter in der Logik für den auslau­ fenden Übertrag erhöht die Last an dem Summierlogikpfad, welche T1 vorgibt. Da jedoch die Minimierung von T3 die Auf­ gabe bei diesen Addern ist, wird diese Erhöhung von T1 als akzeptabel angesehen.The determination of the expiring N-bit carry represents make a significant contribution to T1 and T3 as the over chain lies in the critical path of the adder. From the For this reason, the logic for the expiring carry is below Implemented using relatively large gates to control the Si signal transmission through the transmission chain accelerate which is in the critical path of T3. The Use of relatively large gates in the logic for the Auslau The carry forward increases the load on the summation logic path, which T1 specifies. However, since minimizing T3 the up is given to these veins, this increase of T1 is considered considered acceptable.

Viele Anwendungen eines Adders erfordern jedoch nicht, daß sämtliche N Bits bereitstehen, bevor die nächste Opera­ tion beginnt. Beispielsweise werden Adder wiederholt für Adreßberechnungen verwendet, bei welchen irgendeine Unter­ menge des N-Bit-Ergebnisses verwendet wird, um ein Speicher­ lesen zu initiieren. Man betrachte den Fall eines Prozes­ sors, der einen 4 KByte-Cache aufweist, der in Form von 128 Cache-Zeilen von jeweils 32 Bytes konfiguriert ist. Bei die­ ser Konfiguration können die Bits 5-11 einer Adreßberech­ nung verwendet werden, um mit einer Zeilendekodierung zu be­ ginnen, sobald diese verfügbar sind. Dies ist ein kritischer Schritt beim Cache-Lesen, und alles, was die Verfügbarkeit dieser Bits niedriger Ordnung beschleunigt, reduziert die Verzögerung des Cache-Lesens. Bei typischen Cache-Organisa­ tionen ist eine Untermenge der 16 am geringsten bewerteten Bits kritisch für das schnelle Zugreifen auf Cache-Daten, und die Geschwindigkeit, mit welcher auf diese Daten zugegriffen wird, wirkt sich stark auf die Effektivität aus, mit welcher der Prozessor arbeitet. Folglich ist eine Reduktion von T1, der Latenz für die N/k am geringsten bewerteten Bits, wichtig.However, many applications of an adder do not require that all N bits are available before the next operation begins. For example, adders are used repeatedly for address calculations in which any subset of the N-bit result is used to initiate a memory read. Consider the case of a processor that has a 4 KB cache configured in the form of 128 cache lines of 32 bytes each. With this configuration, bits 5-11 of an address calculation can be used to start row decoding as soon as they are available. This is a critical step in cache reading, and anything that speeds up the availability of these low-order bits reduces the cache reading delay. In typical cache organizations, a subset of the 16 least significant bits is critical to quickly accessing cache data, and the speed at which this data is accessed greatly affects the effectiveness with which the processor operates . Hence, a reduction in T1, the latency for the N / k least significant bits, is important.

Andere Operationen können ebenfalls beginnen, sobald ei­ ne Untermenge des vollständigen N-Bit-Ergebnisses bestimmt ist. Beispielsweise könnte der zweite Schritt der Zwei- Schritt-Addition, die in Fig. 1 gezeigt ist, beginnen, so­ bald eine Untermenge des N-Bit-Ergebnisses aus dem ersten Schritt verfügbar ist, und Linksverschiebungen sind relativ übliche Operationen, die begonnen werden können, sobald ge­ eignete dimensionierte Unterblöcke von Daten bereit sind. Wie oben angemerkt, ist die Selbstumgehungszykluszeit (T2), die diese Operationen charakterisiert, ein wichtiger Design- Parameter. Die Veringerung von T2 ist erforderlich, um die Frequenzen zu erhöhen, bei welchen ALUs arbeiten.Other operations can also begin as soon as a subset of the full N-bit result is determined. For example, the second step of the two-step addition shown in FIG. 1 could begin as soon as a subset of the N-bit result from the first step is available, and left shifts are relatively common operations that can be started as soon as suitable dimensioned sub-blocks of data are ready. As noted above, the self-bypass cycle time (T2) that characterizes these operations is an important design parameter. Reducing T2 is required to increase the frequencies at which ALUs operate.

Zusammengefaßt läßt sich feststellen, daß T2 im Ideal­ fall die Zykluszeit des Mikroprozessors diktiert und sie aus diesem Grund die wichtigste Verzögerung ist, die in einem Adder zu minimieren ist. T1 beeinflußt die Cache-Zugriffs­ verzögerung, und es ist ebenfalls wichtig, sie zu minimie­ ren. T3 gibt die Verzögerung nur derjenigen Operationen vor, die sämtliche N Bits des Ergebnisses erfordern (wie bei­ spielsweise Verschiebungen nach rechts). Die Minimierung von T3 ist folglich weniger wichtig, als die Minimierung von entweder T1 oder T2.In summary, it can be said that T2 is ideal fall the cycle time of the microprocessor dictated and it out for this reason the main delay is that in one Minimize Adder. T1 affects cache access delay, and it is also important to minimize it ren. T3 specifies the delay only for those operations that require all N bits of the result (as with for example, shifts to the right). The minimization of T3 is therefore less important than minimizing either T1 or T2.

Die vorliegende Erfindung ist ein N-Bit-Adder, der aus k (N/k)-Bit-Adderblöcken gebildet ist, um einen Vorteil aus der geringeren Verzögerung zu ziehen, die durch die kleine­ ren Adderblöcke zur Verfügung gestellt wird. Insbesondere weist jeder der k (N/k)-Bit-Adderblöcke eine (N/k)-Bit- Summier- und -Übertragslogik auf, und die k Adderblöcke sind in der Art einer Pipeline miteinander verbunden. Dies wird ausgeführt, indem ein einem Block von Bits entsprechender Adderblock mit einem Adderblock für die nächsten am gering­ sten bewerteten Bits über die Übertragslogik des ersten Adderblocks gekoppelt wird und indem diese Kopplung bei Adder­ blöcken für nachfolgend höher bewertete Bitblöcke wiederholt wird. Die Summierlogik, welche das (N/k)-Bit-Ergebnis des Adderblocks bestimmt, ist mit einem zugehörigen Ausgang für den Adderblock gekoppelt. Dies gestattet eine Selbstumgehung (self-bypass), sobald ein N/k-Bit-Ergebnis für den Block verfügbar ist, anstelle einer Verzögerung, bis der gesamte N-Bit-Adder endet. Da der auslaufende Übertrag jedes N/k- Bit-Blockes nicht länger für das N/k-Bit-Ergebnis kritisch ist, können darüber hinaus die zum Implementieren der Logik des auslaufenden Übertrags verwendeten Gatter herunterdimen­ sioniert werden, was die Last an dem kritischen N/k-Bit- Summierpfad reduziert. Zusätzlich reduziert diese Topologie die Länge der Drähte in dem Adder und somit die Last an dem kritischen Pfad.The present invention is an N-bit adder that consists of k (N / k) bit adder blocks is formed to take advantage the lesser delay to pull through the small one ren adder blocks is provided. In particular does each of the k (N / k) bit adder blocks have an (N / k) bit Summing and carry logic on, and the k adder blocks are connected in the manner of a pipeline. this will performed by a block corresponding to a block of bits Adderblock with one Adderblock for the next few most evaluated bits via the carry logic of the first adder block  is coupled and by this coupling at Adder blocks are repeated for subsequent blocks of higher value becomes. The summation logic, which is the (N / k) bit result of the Adderblocks is designed with an associated output for coupled the adder block. This allows self-bypass (self-bypass) as soon as an N / K bit result for the block is available instead of a delay until the entire N-bit adder ends. Since the outgoing carry every N / k- Bit block is no longer critical to the N / k bit result is can also be used to implement the logic dim down the gate used for the outgoing carry what the load on the critical N / k bit Summation path reduced. In addition, this topology reduces the length of the wires in the adder and thus the load on the critical path.

Es wird jetzt auf Fig. 2 Bezug genommen, in der ein Zeitdiagramm 200 gezeigt ist, das die räumlich pipeline-ver­ schachtelte Architektur eines N-Bit-Adders gemäß der vorlie­ genden Erfindung reflektiert. Das Zeitdiagramm umfaßt k Zeitdiagramme 210(1)-210(k). Jedes Diagramm 210(1)-210(k) repräsentiert die Verarbeitung durch einen Adderblock eines (N/k)-Bit-Blocks des N-Bit-Operanden, um ein (N/k)-Bit- Ergebnis und einen auslaufenden Übertrag des N/k-Bit-Blocks (CN/k) zu erzeugen. Wie durch die Pfeile 212(1) angezeigt, wird CN/k des Adderblocks, der durch das Diagramm 210(1) re­ präsentiert wird, parallel mit dem (N/k)-Bit-Ergebnis be­ rechnet und zu dem Adderblock, der durch das Diagramm 210(2) repräsentiert ist, rechtzeitig zur Verwendung bei der Be­ stimmung seines (N/k)-Bit-Ergebnisses gekoppelt. Die Archi­ tektur wird für die verbleibenden Blöcke des Adders wieder­ holt, wie es durch die Zeitdiagramme 210(3)-210(k) darge­ stellt ist.Referring now to FIG. 2, in a timing diagram 200 is shown that the spatially pipeline-ver nested architecture of an N-bit adder according to the reflected vorlie constricting invention. The timing diagram includes k timing diagrams 210 ( 1 ) -210 (k). Each diagram 210 ( 1 ) -210 (k) represents the processing by an adder block of an (N / k) bit block of the N bit operand to an (N / k) bit result and an expiring carry of the Generate N / k bit blocks (CN / k). As indicated by arrows 212 ( 1 ), CN / k of the adder block presented by diagram 210 ( 1 ) re is calculated in parallel with the (N / k) bit result and to the adder block which is through diagram 210 ( 2 ) is coupled in time for use in determining its (N / k) bit result. The architecture is repeated for the remaining blocks of the adder, as shown by timing diagrams 210 ( 3 ) -210 (k).

Die Zeiten T1, T2 und T3 für einen herkömmlichen Adder sind in Fig. 2 unter den zugehörigen Zeiten T1', T2' und T3' des räumlich pipeline-verschachtelten Adders gezeigt. Die Zeit bis zum (N/k)-Bit-Ergebnis niedriger Ordnung [N/k - 1 : 0], T1', ist kürzer als T1 für den herkömmlichen Adder. Dies beruht darauf, daß die Erzeugung der Überträge in die Bits [N - 1 : N/k] nicht länger den kritischen Pfad zu dem (N/k)-Bit-Ergebnis belastet. Die Umgehungszeit T2' für das Diagramm 210(1) der Adderarchitektur ist kürzer als die Um­ gehungszeit T2 für den herkömmlichen Adder 110, weil nur die N/k am geringsten bewerteten Bits bekannt sein müssen, bevor eine Umgehung erfolgt. Insbesondere ist das Gatter, das das N-Bit-Ergebnis aus den spekulativen (N/k)-Bit-Summen und den (N/K)-Bit-Übertragssignalen bestimmt, aus dem Pfad zu dem (N/k)-Bit-Ergebnis beseitigt. Dies verringert die Anzahl der Gatter in dem Adder-Selbstumgehungspfad von 9 auf 8, was es der ALU gestattet, etwa 12,5% schneller zu laufen.The times T1, T2 and T3 for a conventional adder are shown in FIG. 2 under the associated times T1 ', T2' and T3 'of the spatially pipeline-nested adder. The time to low order (N / k) bit result [N / k - 1: 0], T1 'is shorter than T1 for the conventional adder. This is because the generation of the carry-over into bits [N - 1: N / k] no longer strains the critical path to the (N / k) bit result. The bypass time T2 'for diagram 210 ( 1 ) of the adder architecture is shorter than the bypass time T2 for the conventional adder 110 because only the N / k least significant bits need to be known before bypassing. In particular, the gate that determines the N-bit result from the speculative (N / k) bit sums and the (N / K) bit carry signals is from the path to the (N / k) bit Result removed. This reduces the number of gates in the adder self-bypass path from 9 to 8, which allows the ALU to run about 12.5% faster.

Die zum Erzeugen des vollständigen N-Bit-Ergebnisses bei Verwendung einer räumlich pipeline-verschachtelten Architek­ tur erforderliche Zeit T3' ist größer als die entsprechende Zeit (T3) für einen herkömmlichen Adder. Dies beruht auf dem Umstand, daß die Pipeline-Verschachtelung den Grad der Pa­ rallelität verringert, der bei der Übertragserzeugung aufer­ legt werden kann. Insbesondere kann die Berechnung von CN/k für einen Block nicht abgeschlossen werden, bis CN/k für den vorhergehenden Block bestimmt worden ist. Die zusätzliche Verzögerung T3'-T3 erhöht sich mit k, weil der Blockübertrag sich durch mehrere Blöcke hindurchbewegen (ripple) muß.The to generate the full N-bit result at Use of a spatially pipelined architect T3 'required time is greater than the corresponding Time (T3) for a conventional adder. This is based on the The fact that the pipeline interleaving the degree of Pa parallelism is reduced when the carryover is generated can be placed. In particular, the calculation of CN / k for a block cannot be completed until CN / k for the previous block has been determined. The additional Delay T3'-T3 increases with k because of the block carry must move through several blocks (ripple).

Es wird jetzt auf Fig. 3 Bezug genommen, in der eine Blockdarstellung eines räumlich pipeline-verschachtelten N- Bit-Adders 300 gemäß der vorliegenden Erfindung gezeigt ist. Der N-Bit-Adder weist k (N/k)-Bit-Adderblöcke 310(1)-310(k) auf. In der folgenden Erörterung werden Bezugnahmen auf meh­ rere Adderblöcke 310(1)-310(k) und ihrer Komponenten solange nicht indexiert, wie ein spezieller Adderblock nicht unter­ schieden zu werden braucht. Wo es geeignet ist, wird ein re­ präsentativer einzelner Adderblock 310 beispielsweise in­ dexiert als Adder 310(j). Die gleiche Indexierungsvereinba­ rung wird bei allen nachfolgenden Figuren benutzt. Referring now to FIG. 3, there is shown a block diagram of a spatially pipelined N-bit adder 300 in accordance with the present invention. The N-bit adder has k (N / k) bit adder blocks 310 ( 1 ) -310 (k). In the following discussion, references to multiple adder blocks 310 ( 1 ) -310 (k) and their components are not indexed as long as a particular adder block need not be distinguished. Where appropriate, a representative single adder block 310 is, for example, indexed as adder 310 (j). The same Indexierungsvereinba tion is used in all subsequent figures.

Wie in Fig. 3 gezeigt, enthält jeder Adderblock 310 ei­ ne (N/k)-Bit-Summierlogik 320, eine (N/k)-Bit-Logik für den auslaufenden Übertrag 340, einen ersten Eingang 312 zum Emp­ fangen eines (N/k)-Bit-Blocks eines N-Bit-Operanden, einen zweiten Eingang 314 zum Empfangen eines einlaufenden Über­ tragssignals aus einem vorhergehenden Block, einen Ausgang 316 zum Liefern eines (N/k)-Bit-Ergebnisses und einen Aus­ gang 318 zum Liefern eines auslaufenden (N/k)-Bit-Übertrags­ signals (CN/k) an einen benachbarten Adderblock 310, d. h. den nächsthöher bewerteten Block von Bits. Bei dieser Dis­ kussion umfaßt der Begriff "Summierlogik" Gatter zum Berech­ nen von P- und G-Signalen niedriger Ordnung, die verwendet werden, um ein (N/k)-Bit-Ergebnis zu bestimmen, z. B. (N/Lk)- Bit-P- und -G-Signale bei einem (N/k)-Bit-Block. Die Logik 340 für den auslaufenden Übertrag umfaßt Logik zum Erzeugen von CN/k aus den Vorläufer-Weiterleit(P)- und -Erzeuge(G)- Signalen. Bei herkömmlichen logarithmischen Addern bei­ spielsweise sind die Vorläufer-P- und -G-Signale für die (N/k)-Bit-Logik 340 für den auslaufenden Übertrag die N/Lk- Bit-P- und -G-Signale, wobei L die Anzahl von Eingängen ist, die das Gatter treiben (Einfächerung). Insbesondere bei ei­ nem 64-Bit-Adder (N = 64), der in k = 4 Blöcke mit einer Einfä­ cherung von L = 4 aufgeteilt ist, würden die Vorläufer-4-Bit- Erzeuge- und -Weiterleit-Signale G4 bzw. P4 sein. Die vor­ liegende Erfindung ist nicht auf Adder eingeschränkt, die auf logarithmischen Architekturen basieren.As shown in FIG. 3, each adder block 310 includes (N / k) bit summing logic 320 , (N / k) bit logic for the outgoing carry 340 , a first input 312 for receiving an (N / k) bit blocks of an N-bit operand, a second input 314 for receiving an incoming carry signal from a previous block, an output 316 for supplying an (N / k) bit result and an output 318 for Providing an outgoing (N / k) bit carry signal (CN / k) to an adjacent adder block 310 , ie the next higher rated block of bits. In this discussion, the term "summing logic" includes gates for calculating low order P and G signals that are used to determine an (N / k) bit result, e.g. B. (N / Lk) bit P and G signals on an (N / k) bit block. Outgoing carry logic 340 includes logic to generate CN / k from the precursor forward (P) and generator (G) signals. In conventional logarithmic wires, for example, the precursor P and G signals for the (N / k) bit logic 340 for the outgoing carry are the N / Lk bit P and G signals, where L is the number of inputs that drive the gate (fan-in). In particular with a 64-bit adder (N = 64), which is divided into k = 4 blocks with a simplification of L = 4, the precursor 4-bit generation and forwarding signals G4 or Be P4. The present invention is not limited to adders based on logarithmic architectures.

Die (N/k)-Bit-Summe am Ausgang 316(j) der Summierlogik 320(j) hängt nicht von dem CN/k-Übertragsauslauf am Ausgang 318(j) ab. Die (N/k)-Bit-Logik 340(j) für den auslaufenden Übertrag arbeitet beginnend an dem Punkt in der Summierlogik 320(j), an welchem die Vorläufer-P- und -G-Signale berechnet werden, parallel zu der (N/k)-Bit-Summierlogik 320(j). Mit Ausnahme des Ladens der Summierlogik 210(j) ist die (N/k)- Bit-Logik 340(j) für den auslaufenden Übertrag tatsächlich aus dem Pfad zu dem (N/k)-Bit-Ergebnis, das von der Summier­ logik 310(j) bestimmt wird, entfernt, und das Laden kann reduziert werden, indem die Übertragskettenlogik 340(j) herun­ terdimensioniert wird, um den Pfad zu dem (N/k)-Bit-Ergebnis zu beschleunigen.The (N / k) bit sum at output 316 (j) of summing logic 320 (j) does not depend on the CN / k carry out at output 318 (j). The outgoing carry (N / k) bit logic 340 (j) operates in parallel with the (starting at the point in summing logic 320 (j) where the precursor P and G signals are calculated) N / k) bit summing logic 320 (j). Except for loading summing logic 210 (j), the (N / k) bit logic 340 (j) for the outgoing carry is actually off the path to the (N / k) bit result provided by the summing logic 310 (j) is removed, and loading can be reduced by downsizing carry chain logic 340 (j) to speed up the path to the (N / k) bit result.

Es wird jetzt auf Fig. 4 Bezug genommen, in der ein Blockschaltbild eines Ausführungsbeispiels eines räumlich verschachtelten 64-Bit-Adders 400 gemäß der vorliegenden Er­ findung gezeigt ist. Der Adder 400 weist vier 16-Bit-Adder­ blöcke 410(1)-410(4) auf. Jeder Adderblock 410 weist einen schnellen 16-Bit-Übertrags-Auswahl-Adder 420 und eine 16- Bit-Logik 440 für den auslaufenden Übertrag auf. Außerdem sind in der Figur die Blöcke 470, 412 zum Weiterleiten der Daten zum Adder 420 und ein Block 430 zum Auswählen eines 16-Bit-Ergebnisses aus dem Adder 420 oder aus anderen ALU- Funktionsblöcken (wie beispielsweise logischen Operationen) gezeigt. Der Block 470 ist ein Frühe-Umgehung(early bypass)- Multiplexer (MUX), der nicht-kritische Ergebnisse aus der Registerdatei oder Rückschreibwarteschlange auswählt, um ALU-Quelldaten zu erzeugen. Der Block 412 ist ein Späte-Um­ gehung(late bypass)-MUX, der die ALU-Operandenquelle aus dem MUX 470, ein Daten-Cache-Leseergebnis oder ein ALU-Ergebnis aus dem vorhergehenden Zyklus aus entweder dem ihm zugeord­ neten Adder oder einem anderen Adder in einer superskalaren Ausführungseinheit auswählt. Block 430 ist ein Spätes-Ergeb­ nis-MUX (late result MUX), der das 16-Bit-Ergebnis des Ad­ ders 420 oder eines anderen ALU-Funktionsblocks auswählt und es an den Umgehungs-MUX 412 zurückgibt. Darüber hinaus ist in Fig. 4, um einen Kontext herzustellen, der Registerda­ teizugriffspfad gezeigt, der mit einem dekodierten Register- ID startet. Der Registerdateizugriffspfad umfaßt einen Wort­ leitungstreiber 450 und eine Register/Lese-Schaltung 460.Referring now to FIG. 4, there is shown a block diagram of one embodiment of a 64-bit spatially nested adder 400 in accordance with the present invention. The adder 400 has four 16-bit adder blocks 410 ( 1 ) -410 ( 4 ). Each adder block 410 has a fast 16-bit carry select adder 420 and 16-bit logic 440 for the outgoing carry. In addition, blocks 470 , 412 for forwarding the data to the adder 420 and a block 430 for selecting a 16-bit result from the adder 420 or from other ALU function blocks (such as logic operations) are shown in the figure. Block 470 is an early bypass multiplexer (MUX) that selects non-critical results from the register file or writeback queue to generate source ALU data. Block 412 is a late bypass MUX that contains the ALU operand source from MUX 470 , a data cache read result, or an ALU result from the previous cycle from either its associated adder or one selects another adder in a superscalar execution unit. Block 430 is a late result MUX that selects the 16-bit result of the adder 420 or other ALU function block and returns it to the bypass MUX 412 . In addition, to provide a context, FIG. 4 shows the register file access path that starts with a decoded register ID. The register file access path includes a word line driver 450 and a register / read circuit 460 .

Zu Zwecken der Veranschaulichung sind nur die Gatter in dem kritischen Pfad zu dem 16-Bit-Ergebnis des Adderblocks 410 und die Gatter in dem kritischen Pfad zu dem 64-Bit- Ergebnis des Adders 400 in Fig. 4 gezeigt. Der kritische Pfad zu dem 16-Bit-Ergebnis des Adders 420 umfaßt die Gatter 422, 424, 426 und 428. Gatter 422 berechnet 2-Bit-Weiterleit(propagate)- und -Erzeuge(generate)-Signale P2 bzw. G2, Gatter 424 berechnet P4 und G4, Gatter 426 berechnet 4-Bit- Überträge (C4) und Gatter 428 (MUX 428) wählt ein 16-Bit- Ergebnis gemäß dem in den Adder 420 einlaufenden 16-Bit- Übertrag und den 4-Bit-Überträgen, die durch den Adder 420 berechnet wurden, aus. Ein spekulativer Summierpfad (näher in Fig. 5 veranschaulicht), welcher sich nicht im kriti­ schen Pfad des Adders 420 befindet, ist parallel zu den Gat­ tern 422, 424 und 426 konfiguriert, um spekulative Summen zum Ergebnis-MUX 428 zur Verfügung zu stellen.For purposes of illustration, only the gates in the critical path to the 16-bit result of adder block 410 and the gates in the critical path to the 64-bit result of adder 400 are shown in FIG. 4. The critical path to the 16-bit result of adder 420 includes gates 422 , 424 , 426 and 428 . Gate 422 computes 2-bit propagate and generate signals P2 and G2, gate 424 computes P4 and G4, gate 426 computes 4-bit carry (C4) and gate 428 (MUX 428 ) selects a 16-bit result according to the 16-bit carry entering the adder 420 and the 4-bit carry computed by the adder 420 . A speculative summation path (illustrated in more detail in FIG. 5) that is not in the critical path of adder 420 is configured in parallel with gates 422 , 424 and 426 to provide speculative sums to result MUX 428 .

Die Auslaufsübertragslogik 440 weist ein Gatter 442 zum Berechnen von 16-Bit-Erzeuge- und -Weiterleit-Signalen (P16, G16), einen invertierenden Puffer 444 und ein Gatter 446 zum Bestimmen eines 16-Bit-Auslaufsübertragssignal (C16) auf. Die Auslaufsübertragslogik 440 bestimmt C16 aus P4- und G4- Signalen (Vorläufer-Signalen), die durch das Gatter 424 in dem Adder 420 erzeugt wurden, und wird unten in Verbindung mit Fig. 5C diskutiert.The spill carry logic 440 includes a gate 442 for computing 16-bit generate and forward signals (P16, G16), an inverting buffer 444, and a gate 446 for determining a 16-bit spill carry signal (C16). Leak carry logic 440 determines C16 from P4 and G4 signals (precursor signals) generated by gate 424 in adder 420 and is discussed below in connection with FIG. 5C.

Wie in Fig. 4 gezeigt ist, ist ein 16-Bit-Ergebnis am Ausgang des MUX 428 verfügbar. Bei dem offenbarten Ausfüh­ rungsbeispiel ist gezeigt, daß das am geringsten bewertete 16-Bit-Ergebnis den Daten-Cache treibt, um eine Zeilendeko­ dierung zu beginnen. Die räumlich pipeline-verschachtelte Struktur des Adders 400 gestattet es, daß die Zeilendekodie­ rung beginnt, sobald das 16-Bit-Ergebnis verfügbar ist, z. B. bevor 16-Bit-Ergebnisse aus den Addern 420(2)-420(4) erzeugt worden sind. Somit ist die Cache-Zugriffsverzögerung (T1) des Adders 410 kürzer als sie wäre, wenn der Adder 400 zu­ nächst sämtliche 64 Bits des Ergebnisses berechnen würde. Durch Herunterdimensionieren der Gatter 442, 444 und 446 der Logik 440 für den auslaufenden Übertrag wird die Belastung des Adders 420 reduziert, was die Geschwindigkeit des 16- Bit-Ergebnisses der geringsten Ordnung zusätzlich erhöht.As shown in FIG. 4, a 16-bit result is available at the MUX 428 output. In the disclosed embodiment, the least significant 16-bit result is shown to drive the data cache to begin row decoding. The spatially pipeline-nested structure of the adder 400 allows the row decoding to begin as soon as the 16-bit result is available, e.g. B. Before 16-bit results have been generated from wires 420 ( 2 ) -420 ( 4 ). Thus the cache access delay (T1) of adder 410 is shorter than it would be if adder 400 first calculated all 64 bits of the result. By downsizing gates 442 , 444, and 446 of outgoing carry logic 440 , the load on adder 420 is reduced, which further increases the speed of the lowest order 16-bit result.

Außerdem ist in Fig. 4 ein Selbstumgehungspfad gezeigt, der von dem Spätes-Ergebnis-MUX 430 und Späte-Umgehung-MUX 412 in Verbindung mit dem Adderblock 420 gebildet wird. Da das 16-Bit-Ergebnis am MUX 428(1) mit der relativ geringen Verzögerung des 16-Bit-Adders 420(1), d. h. ohne Rückgriff auf irgendwelche von dem Adder 400 bestimmten 16-Bit-Über­ träge verfügbar ist, kann das 16-Bit-Ergebnis zum Späte- Umgehung-MUX 412(1) schneller zurückgegeben werden. Dies ge­ stattet, daß eine nachfolgende Addition, Subtraktion etc. an den Bits geringer Ordnung schneller beginnt, als dies mög­ lich wäre, wenn zunächst das vollständige 64-Bit-Ergebnis erzeugt werden müßte. Somit wird die Selbstumgehungs-Zyklus­ zeit (T2) des Adderblocks 410 reduziert, und die Betriebs­ frequenz des Adders 400 kann dementsprechend ansteigen.Also shown in FIG. 4 is a self-bypass path formed by late result MUX 430 and late bypass MUX 412 in conjunction with adder block 420 . Since the 16-bit result on MUX 428 ( 1 ) is available with the relatively small delay of 16-bit adder 420 ( 1 ), ie without resorting to any 16-bit carry determined by adder 400 , this can 16-bit late bypass result MUX 412 ( 1 ) returned faster. This allows a subsequent addition, subtraction, etc. to the low-order bits to start faster than would be possible if the complete 64-bit result had to be generated first. Thus, the self-bypass cycle time (T2) of the adder block 410 is reduced, and the operating frequency of the adder 400 may increase accordingly.

Der Adder 400 kann in irgendeiner der verfügbaren Halb­ leitertechnologien implementiert sein. Ein bevorzugtes Aus­ führungsbeispiel des Pipeline-Adders 400 ist in CMOS unter Verwendung einer opportunistischen Zeit-borgenden Domino- Logik implementiert, um Latch-Verzögerungen aus dem kriti­ schen Pfad zu eliminieren. Dual-rail-Domino-Techniken werden verwendet, um nicht-monotone Funktionen zu implementieren. Die opportunistische Zeit-borgende Domino-Logik wird detail­ lierter beispielsweise im US-Patent Nr. 5,517,436 erörtert, welche hiermit durch Bezugnahme aufgenommen wird.The adder 400 can be implemented in any of the available semiconductor technologies. A preferred embodiment of pipeline adder 400 is implemented in CMOS using opportunistic time-borrowing domino logic to eliminate latch delays from the critical path. Dual-rail domino techniques are used to implement non-monotonous functions. The opportunistic time-borrowing domino logic is discussed in greater detail, for example, in U.S. Patent No. 5,517,436, which is hereby incorporated by reference.

Es wird noch auf Fig. 4 Bezug genommen, in der die Gat­ ter des Blocks 410(4), die den Gattern 414, 416, 422, 424, 426, 428, 432, 434, 442, 444 und 446 entsprechen, mit einem D oder einem S markiert sind, gefolgt von einer Zahl, die die Gatterstruktur in einer Domino-Implementierung des Ad­ ders 400 anzeigt. Hierbei kennzeichnet D ein Domino-Gatter, S kennzeichnet ein statisches Gatter, und die Zahl zeigt die Anzahl von Transistoren in der Pull-Down/Pull-Up-Kette des jeweiligen D/S-Gatters an. Bei dem Domino-Ausführungsbei­ spiel ist der Frühe-Umgehungs-MUX 470 ein Domino-MUX 472 und ein statischer Inverter 474. Der Wortleitungstreiber 450 um­ faßt einen Domino-Inverter 452 und einen statischen Inverter 454, und das Bit-Leitungsabtast-Modul 460 umfaßt eine SRAM- Zelle 462 und einen statischen Inverter 464. Zusätzlich re­ präsentiert der Block 480 ein Stufennetzwerk, das erforderlich ist, um die Taktsignale unter den Domino-Gattern der Adderblöcke 410(1)-410(4) zu koordinieren.Referring still to FIG. 4, in which the Gat ter of the block 410 (4), the gates 414, 416, 422, 424, 426, 428, 432, 434, 442, 444 and 446 correspond with a D or an S are marked, followed by a number that indicates the gate structure in a domino implementation of the adder 400 . Here D denotes a domino gate, S denotes a static gate, and the number indicates the number of transistors in the pull-down / pull-up chain of the respective D / S gate. In the Domino embodiment, the early bypass MUX 470 is a Domino MUX 472 and a static inverter 474 . The word line driver 450 includes a domino inverter 452 and a static inverter 454 , and the bit line scan module 460 includes an SRAM cell 462 and a static inverter 464 . In addition, block 480 re-presents a stage network required to coordinate the clock signals among the domino gates of adder blocks 410 ( 1 ) -410 ( 4 ).

In der verbleibenden Erörterung werden Dual-Rail-Domino- Schaltungen zur Veranschaulichung verwendet, wobei eine Po­ larität jedes Gatters und Signals offenbart wird. Die kom­ plementären Signale und die Gatter zum Erzeugen dieser kom­ plementären Signale lassen sich einfach aus dem veranschau­ lichten Ausführungsbeispiel unter Verwendung bekannter Ver­ fahren bestimmen.In the rest of the discussion, dual-rail dominoes Circuits used for illustration, one Po larity of each gate and signal is disclosed. The com complementary signals and the gates for generating this com complementary signals can easily be viewed from the clear embodiment using known Ver determine driving.

Es wird jetzt auf Fig. 5A Bezug genommen, in der ein Blockschaltbild eines Ausführungsbeispiels eines schnellen 16-Bit-Adders 420 gezeigt ist. Bei diesem Ausführungsbei­ spiel ist der 16-Bit-Adder 420 in vier 4-Bit-Adder 510(1)- 510(4) und eine Logik 520 für den auslaufenden Übertrag auf­ geteilt. Jeder der 4-Bit-Adder 510 hat Eingänge 512 zum Emp­ fangen von 4-Bit-Unterblöcken der 64-Bit-Operanden, einen Eingang 514 zum Empfangen eines einlaufenden 16-Bit-Über­ trags aus der vorhergehenden Stufe und Eingänge 515 zum Emp­ fangen von einlaufenden 4-Bit-Überträgen (C4in). Die Eingän­ ge 515 des Adders 510(1), welcher die am geringsten bewerte­ ten vier Bits des 16-Bit-Block handhabt, sind mit 0 und 1 gekoppelt, während die C4in für die Adder 510(2)-510(4) aus dem 16-Bit-Block 520 unter Verwendung der von den Addern 510(1) bis 510(3) berechneten P4- und G4-Signale bestimmt werden. Die Adder 510 werden detaillierter unten in Verbin­ dung mit Fig. 5B erörtert.Referring now to FIG. 5A, a block diagram of one embodiment of a fast 16-bit adder 420 is shown. In this embodiment, the 16-bit adder 420 is divided into four 4-bit adders 510 ( 1 ) - 510 ( 4 ) and logic 520 for the outgoing carry. Each of the 4-bit adders 510 has inputs 512 for receiving 4-bit sub-blocks of the 64-bit operands, an input 514 for receiving an incoming 16-bit carry from the previous stage, and inputs 515 for receiving of incoming 4-bit transfers (C4 in ). Inputs 515 of adder 510 ( 1 ), which handles the least significant four bits of the 16-bit block, are coupled to 0 and 1, while the C4 in for adders 510 ( 2 ) -510 ( 4 ) can be determined from the 16-bit block 520 using the P4 and G4 signals calculated by the wires 510 ( 1 ) to 510 ( 3 ). The adders 510 are discussed in more detail below in connection with FIG. 5B.

Die Logik 520 für den auslaufenden Übertrag enthält Vor­ ausschau-Schaltungen zum Weiterleiten von 4-Bit-Überträgen zwischen den 4-Bit-Addern 510 für diejenigen Fälle, in denen C4in zum Adder 510(1) gleich 0 und 1 ist. Insbesondere im­ plementiert der 16-Bit-Block 520 die Logikgleichung (III):
Outgoing carry logic 520 includes lookout circuits for forwarding 4-bit transfers between 4-bit wires 510 for those cases where C4 in to adder 510 ( 1 ) is 0 and 1. In particular, the 16-bit block 520 implements the logic equation (III):

C4(j)out = G4(j) + P4(j) . C4(j - 1)in (III)C4 (j) out = G4 (j) + P4 (j). C4 (j - 1) in (III)

Hierbei spezifiziert der Index j einen der Adder 510(1)- 510(4). Für den Adder 510(1) ist C4(0)in 0 und 1, wie oben erörtert wurde. Beispielsweise ist C4(1)out = G4(1), wenn C4(0)in = 0 ist und C4(1)out = G4(1) + p4(1), wenn C4(0)in = 1 ist. Diese Funktionen werden durch die Puffer 522 bzw. ODER- Gatter 524 im 16-Bit-Block 520 implementiert.Here, the index j specifies one of the adders 510 ( 1 ) - 510 ( 4 ). For adder 510 ( 1 ), C4 (0) is in 0 and 1, as discussed above. For example, C4 (1) out = G4 (1), if C4 (0) is in = 0 and C4 (1) out = G4 (1) + p4 (1), if C4 (0) is in =. 1 These functions are implemented by buffers 522 or OR gates 524 in 16-bit block 520 .

Die Berechnung und die zugehörige Logik werden weiter hinten in der Übertragskette komplexer. Beispielsweise ist der einlaufende Übertrag C4(4)in zum Adder 510(4) gegeben durch die logische Gleichung (IV):
The calculation and the associated logic become more complex later in the transfer chain. For example, the incoming carry C4 ( 4 ) in to the adder 510 ( 4 ) is given by the logical equation (IV):

C4(3)out = G4(3) + P4(3) . G4(2) + P4(3) . P4(2) . G4(3) . P4(2) . P4(1) . C4(0)in. (IV)C4 ( 3 ) out = G4 ( 3 ) + P4 ( 3 ). G4 ( 2 ) + P4 ( 3 ). P4 ( 2 ). G4 ( 3 ). P4 ( 2 ). P4 ( 1 ). C4 (0) in . (IV)

Dies wird implementiert durch die komplexen Gatter 526 und 528 für die Fälle, in denen C4(j - 1)in gleich 0 bzw. 1 ist. Hierbei bezieht sich "komplexe Gatter" auf Gatter, die durch Kombinieren von Komponenten-UND- und -ODER-Gattern ge­ bildet werden, wie dies effizient in CMOS-Logik ausgeführt werden kann. Komplexe Gatter werden angezeigt, indem die Komponentengatter in Kontakt miteinander gesetzt werden. Insbesondere ist das komplexe Gatter 528 infolge seiner Größe und Komplexität in dem kritischen Pfad zu dem 16-Bit- Ergebnis des Adders 420 und entspricht dem Gatter 426 in Fig. 4. Die Gatter 422, 424 und 428, welche komplexe Gatter sind, die den kritischen Pfad des Adders 420 vervollständi­ gen, sind Komponenten des Adders 510 und werden detaillier­ ter unten erörtert.This is implemented by the complex gates 526 and 528 for cases in which C4 - is equal to 0 or 1 (j 1). Here, "complex gates" refers to gates formed by combining component AND and OR gates, as can be done efficiently in CMOS logic. Complex gates are displayed by placing the component gates in contact with each other. In particular, complex gate 528, due to its size and complexity, is in the critical path to the 16-bit result of adder 420 and corresponds to gate 426 in FIG. 4. Gates 422 , 424, and 428 , which are complex gates that do critical path of the adder 420 are components of the adder 510 and are discussed in more detail below.

Es wird jetzt auf Fig. 5B Bezug genommen, in der eine schematische Darstellung eines Ausführungsbeispiels eines 4- Bit-Adders 510 gezeigt ist. Bei dem offenbarten Ausführungs­ beispiel ist der Adder 510 in vier Sätze von Gattern 552, 554, 556, 558 unterteilt, die die Trennung der Gatter 422, 424, 426, 428 gemäß Fig. 4 wiedergeben. Die gestrichelten, senkrechten Linien zeigen die Grenzen zwischen den unter­ schiedlichen Gattersätzen 552, 554, 556, 558 an. Bei dem Do­ mino-Ausführungsbeispiel des Adders 510 repräsentieren die gestrichelten Linien darüber hinaus die Grenzen zwischen Domino- und statischen Gattersätzen, wie es in der Figur ange­ zeigt ist.Referring now to FIG. 5B, a schematic representation of an embodiment of a 4-bit adder 510 is shown. In the disclosed embodiment, the adder 510 is divided into four sets of gates 552 , 554 , 556 , 558 that represent the separation of the gates 422 , 424 , 426 , 428 shown in FIG. 4. The dashed, vertical lines indicate the boundaries between the different gate sets 552 , 554 , 556 , 558 . In the do mino embodiment of the adder 510 , the dashed lines also represent the boundaries between domino and static gate sets, as shown in the figure.

Jeder der Gattersätze 552, 554, 556, 558 ist darüber hinaus entsprechend dem von ihm erzeugten Signal bezeichnet. Beispielsweise erzeugen die komplexen Gatter 532, 534, 536, 538 des Satzes 552 die Signale G2<0<, P2<0< und G2<1<, P2<1< aus den Eingangsbits a<3:0< und b<3:0<. Die verbleibenden Gatter des Satzes 552 bestimmen 1-Bit-Erzeuge-und-Weiter­ leit-Signale P1<0<-P1<3< und G1<0< und G1<2<. Wo, wie in diesem Fall, P1<n< definiert ist als das XOR der Operanden­ bits a<n<, b<n<, ist P1<n< ebenfalls gleich der Bitsumme für Cin<n< = 0. Infolge seiner relativen Größe und Komplexität ist das komplexe Gatter 532 in dem kritischen Pfad des Adders 510 und entspricht dem Gatter 422 in Fig. 4.Each of the gate sets 552 , 554 , 556 , 558 is also labeled according to the signal it generates. For example, complex gates 532 , 534 , 536 , 538 of set 552 generate signals G2 <0 <, P2 <0 <and G2 <1 <, P2 <1 <from the input bits a <3: 0 <and b <3: 0 <. The remaining gates of set 552 determine 1-bit generate and forward signals P1 <0 <-P1 <3 <and G1 <0 <and G1 <2 <. Where, as in this case, P1 <n <is defined as the XOR of the operands bits a <n <, b <n <, P1 <n <is also equal to the bit sum for C in < n <= 0. Due to its relative Size and complexity is complex gate 532 in the critical path of adder 510 and corresponds to gate 422 in FIG. 4.

Im Gattersatz 554 bestimmen das komplexe Gatter 542 und das Gatter 544 die 4-Bit-Erzeuge- und -Weiterleit-Signale G4 bzw. P4 aus P2<0<, G2<0<, P2<1<, G2<1<. Die unteren Gatter des Satzes 554 bestimmen 1-Bit-Auslaufüberträge aus den 1- Bit-Weiterleit- und -Erzeuge-Signalen P1<0<, P1<1<, P1<2<, P1<3< bzw. G1<0<, G1<2<. Wegen ihrer relativen Größe und Komplexität ist das komplexe Gatter 542 im kritischen Pfad des Adders 510 und entspricht dem Gatter 424 in Fig. 4.In gate set 554 , complex gate 542 and gate 544 determine the 4-bit generate and forward signals G4 and P4 from P2 <0 <, G2 <0 <, P2 <1 <, G2 <1 <. The lower gates of set 554 determine 1-bit outflow carry-outs from the 1-bit forward and generate signals P1 <0 <, P1 <1 <, P1 <2 <, P1 <3 <and G1 <0 < , G1 <2 <. Because of its relative size and complexity, complex gate 542 is in the critical path of adder 510 and corresponds to gate 424 in FIG. 4.

Beim Gattersatz 556 bestimmen die unteren Gatter speku­ lative Summenpaare s0<0</s1<0<, s0<1</s1<1<, s0<2</s1<2< und s0<3</s1<3< für die Bits 0-3, wobei jeweils Überträge von 0 bzw. 1 angenommen werden. Die oberen Gatter des Satzes 556, welche in dem 16-Bit-Block 520 enthalten sind, bestimmen spekulative 4-Bit-Überträge, d. h. 4-Bit-Überträge für C16in = 0 und 1. Wie in Verbindung mit Fig. 5A angemerkt, ist das Gatter 528 im kritischen Pfad des Adders 510 und ent­ spricht dem Gatter 426 in Fig. 4.In gate set 556 , the lower gates determine speculative sum pairs s0 <0 </ s1 <0 <, s0 <1 </ s1 <1 <, s0 <2 </ s1 <2 <and s0 <3 </ s1 <3 <for bits 0-3, whereby carryovers of 0 and 1 are assumed. The upper gates of set 556 contained in 16-bit block 520 determine 4-bit speculative carry, ie, 4-bit carry for C16 in = 0 and 1. As noted in connection with FIG. 5A, is gate 528 in the critical path of adder 510 and speaks to gate 426 in FIG. 4.

Der Gattersatz 558 umfaßt die MUXs 559, welche entspre­ chend den auslaufenden 4-Bit-Überträgen des Adders 510 und dem einlaufenden 16-Bit-Übertrag zu der die Adder 510 auf­ weisenden Stufe eine der spekulativen Summen s0/s1 auswählt. Da er das einzige in dem Gattersatz 558 vorhandene Gatter ist, ist der MUX 559 in den kritischen Pfad des Adders 510 und entspricht dem Gatter 428 in Fig. 4.The gate set 558 comprises the MUXs 559 , which accordingly selects one of the speculative sums s0 / s1 in accordance with the outgoing 4-bit transfers of the adder 510 and the incoming 16-bit transfer to which the adder 510 is at the level indicated. Since it is the only gate present in gate set 558 , MUX 559 is in the critical path of adder 510 and corresponds to gate 428 in FIG. 4.

Es wird jetzt auf Fig. 5C Bezug genommen, in der Block­ schaltbilder der Ausführungsbeispiele der Gattersätze 560, 570, 580 zum Bestimmen von C16 aus in den Addern 510(1)- 510(4) erzeugten P4- und G4-Signalen gezeigt ist. Insbeson­ dere enthält der Gattersatz 560 das komplexe Gatter 562, welches G16 aus den im 16-Bit-Block 420 berechneten G4- und P4-Signalen bestimmt, und Gatter 564, welches P16 aus den P4-Signalen bestimmt. Infolge seiner Größe und Komplexität ist das komplexe Gatter 562 in dem kritischen Pfad und ent­ spricht dem Gatter 442 in Fig. 4. Der Gattersatz 570 erhält den Puffer 572, welcher dem Puffer 444 in Fig. 4 ent­ spricht, und der Gattersatz 480 enthält das komplexe Gatter 482 zum Berechnen von C16, welches dem Gatter 446 gemäß Fig. 4 entspricht. Fachleute werden erkennen, daß es alterna­ tive Schaltungen zum Erzeugen dieser Signale gibt, die in den Umfang und Geist der vorliegenden Erfindung fallen.Referring now to FIG. 5C, block diagrams of the embodiments of gate sets 560 , 570 , 580 for determining C16 from P4 and G4 signals generated in wires 510 ( 1 ) - 510 ( 4 ) are shown. In particular, gate set 560 includes complex gate 562 , which determines G16 from the G4 and P4 signals calculated in 16-bit block 420 , and gate 564 , which determines P16 from the P4 signals. Due to its size and complexity, complex gate 562 is in the critical path and corresponds to gate 442 in FIG. 4. Gate set 570 receives buffer 572 , which corresponds to buffer 444 in FIG. 4, and gate set 480 contains this complex gate 482 for computing C16, which corresponds to gate 446 of FIG. 4. Those skilled in the art will recognize that there are alternative circuits for generating these signals that fall within the scope and spirit of the present invention.

Es wird somit ein N-Bit-Adder zur Verfügung gestellt, der eine räumlich pipeline-verschachtelte Konfiguration auf­ weist, um die Zeit bis zum Ergebnis der am niedrigsten be­ werteten Bits (T1) und die Umgehungs-Zykluszeit (T2) zu re­ duzieren. Dies wird durch Segmentierung des Adders in k (N/k)-Bit-Adderblöcke und durch Koppeln der Adderblöcke in der Art einer räumlichen Pipeline ausgeführt. Die Erfindung ermöglicht eine Selbstumgehung nach einer kurzen Verzögerung eines (N/k)-Bit-Adderblocks. Sie ermöglicht darüber hinaus ein Herunterdimensionieren der Übertragslogik, um die Bela­ stung auf dem kritischen Pfad auf die (N/k)-Bitsumme gerin­ ger Ordnung zu reduzieren.An N-bit adder is thus made available which has a spatially pipeline-nested configuration instructs to be the time to score the lowest evaluated bits (T1) and the bypass cycle time (T2) to re reduce. This is done by segmenting the adder into k (N / k) bit adder blocks and by coupling the adder blocks in like a spatial pipeline. The invention enables self-bypassing after a short delay an (N / k) bit adder block. It also enables downsizing the carry logic to the Bela on the critical path to the (N / k) bit total reduce order.

Die vorliegende Erfindung wurde anhand verschiedener Ausführungsbeispiele beschrieben, die lediglich dem Zweck der Veranschaulichung dienen. Fachleute werden aus dieser Beschreibung erkennen, daß die Erfindung nicht auf die be­ schriebenen Ausführungsbeispiele begrenzt ist, sondern mit Modifikationen und Änderungen ausgeführt werden kann, die nur durch den Geist und Umfang der anhängigen Ansprüche ein­ geschränkt werden.The present invention has been accomplished in various ways Described embodiments that are only for the purpose serve as an illustration. Specialists become from this Description recognize that the invention is not based on the be described embodiments is limited, but with Modifications and changes that can be made  only by the spirit and scope of the pending claims be restricted.

Claims (8)

1. N-Bit-Adder mit k (N/k)-Bit-Adderblöcken (310), wobei jeder (N/k)-Bit-Adderblock (310) eine Summierlogik (320) zum Erzeugen eines (N/k)-Bit-Ergebnisses und eine Übertragslogik (340) zum Erzeugen eines auslaufenden Übertrags (CN/k) auf­ weist,
dadurch gekennzeichnet,
daß der zweite (310(2)) bis k-te (310(k)) (N/k)-Bit- Adderblock jeweils nur mit dem den auslaufenden Übertrag (CN/k) liefernden Ausgang (318) des benachbarten geringer bewerteten (N/k)-Bit-Adderblocks (310) gekoppelt sind,
daß der erste (N/k)-Bit-Adderblock (310(1)) das am ge­ ringsten bewertete (N/k)-Bit-Ergebnis an einem Ausgang des N-Bit-Adders mit einer durch die Summierlogik (320(1)) des ersten (N/k)-Bit-Adderblocks (310(1)) bestimmten Verzögerung bereitstellt, so daß das Ergebnis für weitere Operationen verwendet werden kann, und
daß die nachfolgenden (N/k)-Bit-Adderblöcke (310(2) . . . 310(k)) ihre (N/k)-Bit-Ergebnisse an weiteren Ausgängen des N-Bit-Adders nach Empfang des jeweiligen auslaufenden Über­ trags (CN/k) aus dem benachbarten (N/k)-Bit-Adderblock be­ reitstellen.
1. N-bit adder with k (N / k) bit adder blocks ( 310 ), each (N / k) bit adder block ( 310 ) having summation logic ( 320 ) for generating an (N / k) - Bit result and a carry logic ( 340 ) for generating an expiring carry (CN / k),
characterized by
that the second (310 ( 2 )) to k-th (310 (k)) (N / k) -bit adder block each only with the output ( 318 ) of the neighboring lower-rated ( N / k) bit adder blocks ( 310 ) are coupled,
that the first (N / k) bit adder block (310 ( 1 )) has the least weighted (N / k) bit result at an output of the N bit adder with a through the summing logic (320 ( 1 )) of the first (N / k) bit adder block (310 ( 1 )) provides a certain delay so that the result can be used for further operations, and
that the subsequent (N / k) -bit adder blocks (310 ( 2 ) ... 310 (k)) send their (N / k) -bit results to further outputs of the N-bit adder after receipt of the respective expiring super Provide carrier (CN / k) from the neighboring (N / k) bit adder block.
2. N-Bit-Adder nach Anspruch 1, dadurch gekennzeichnet, daß die die (N/k)-Bit-Ergebnisse bereitstellenden Ausgänge (316) derart mit einem Cache gekoppelt sind, daß der Cache mit einem Initiieren des Zeilendecodierens beginnen kann, sobald ihm von dem Ausgang des ersten (N/k)-Bit-Adderblocks (310(1)) das am geringsten bewertete (N/k)-Bit-Ergebnis be­ reitgestellt wird.2. N-bit adder according to claim 1, characterized in that the outputs ( 316 ) providing the (N / k) bit results are coupled to a cache in such a way that the cache can begin to initiate row decoding as soon as the least significant (N / k) bit result is provided from the output of the first (N / k) bit adder block (310 ( 1 )). 3. N-Bit-Adder nach Anspruch 1 oder 2, dadurch gekenn­ zeichnet, daß der das am geringsten bewertete (N/k)-Bit-Ergebnis bereitstellende Ausgang des ersten (N/k)-Bit-Adderblocks (310(1)) durch eine Umgehungsleitung mit einem Eingang des N-Bit-Adders gekoppelt ist.3. N-bit adder according to claim 1 or 2, characterized in that the least significant (N / k) bit result providing output of the first (N / k) bit adder block (310 ( 1 ) ) is coupled to an input of the N-bit adder by a bypass line. 4. N-Bit-Adder nach Anspruch 3, dadurch gekennzeichnet, daß eine Addition des am geringsten bewerteten (N/k)-Bit-Er­ gebnisses und eines neuen (N/k)-Bit-Segments initiiert wird, sobald das über die Umgehungsleitung bereitgestellte Ergeb­ nis am Eingang des N-Bit-Adders verfügbar ist.4. N-bit adder according to claim 3, characterized in that that an addition of the least valued (N / k) bit Er result and a new (N / k) bit segment is initiated, as soon as the result provided via the bypass line is available at the input of the N-bit adder. 5. Verfahren zum Addieren zweier N-Bit-Operanden unter Verwendung eines N-Bit-Adders mit k (N/k)-Bit-Adderblöcken, wobei
k Sätze von jeweils (N/k) Bits der beiden N-Bit-Operan­ den den k Adderblöcken zur Verfügung gestellt werden,
der erste, am niedrigsten bewertete Satz von (N/k) Bits verarbeitet wird, wobei eine am geringsten bewertete (N/k)- Bit-Summe und ein Übertragsbit erzeugt werden,
das Übertragsbit dem zweiten Adderblock zur Verfügung gestellt wird, und
die am niedrigsten bewertete (N/k)-Bit-Summe an einem ersten Ausgang des N-Bit-Adders bereitgestellt wird, während der zweite bis k-te Adderblock noch die ihnen zur Verfügung gestellten Sätze von (N/k) Bits verarbeiten.
5. A method of adding two N-bit operands using an N-bit adder with k (N / k) -bit adder blocks, wherein
k sets of (N / k) bits each of the two N-bit operands are made available to the k adder blocks,
processing the first, least significant set of (N / k) bits, producing a least significant (N / k) bit sum and a carry bit,
the carry bit is made available to the second adder block, and
the lowest-valued (N / k) bit sum is provided at a first output of the N-bit adder, while the second to k-th adder block still process the sets of (N / k) bits made available to them.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß die zweite (N/k)-Bit-Summe bis (k - 1)-te (N/k)-Bit-Summe an einem zweiten bis (k - 1)-ten Ausgang des N-Bit-Adders be­ reitgestellt werden, während der dritte bis k-te Adderblock jeweils noch die ihnen zur Verfügung gestellten Sätze von (N/k) Bits verarbeiten.6. The method according to claim 5, characterized in that the second (N / k) bit sum to (k - 1) th (N / k) bit sum be at a second to (k - 1) th output of the N-bit adder be provided during the third to kth adder block the sentences of Process (N / k) bits. 7. Verfahren nach Anspruch 5 oder 6, dadurch gekenn­ zeichnet, daß die am niedrigsten bewertete (N/k)-Bit-Summe in einer Umgehung zu einem Eingang des N-Bit-Adders zurück­ geleitet wird.7. The method according to claim 5 or 6, characterized records that the lowest valued (N / k) bit sum  in a bypass back to an input of the N-bit adder is directed. 8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß die Addition eines dritten Operanden zu der Summe des ersten und des zweiten Operanden initiiert wird, sobald die am geringsten bewertete (N/k)-Bit-Summe zu einem Eingang des N-Bit-Adders zurückgeleitet worden ist.8. The method according to claim 7, characterized in that that the addition of a third operand to the sum of the first and second operands are initiated as soon as the least significant (N / k) bit sum to an input of the N-bit adders has been returned.
DE19782228A 1996-12-31 1997-11-24 N-bit adder with adder blocks Expired - Fee Related DE19782228C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US77758796A 1996-12-31 1996-12-31
PCT/US1997/021899 WO1998029800A1 (en) 1996-12-31 1997-11-24 Spatially pipelined arithmetic logic unit

Publications (1)

Publication Number Publication Date
DE19782228C2 true DE19782228C2 (en) 2001-10-31

Family

ID=25110666

Family Applications (2)

Application Number Title Priority Date Filing Date
DE19782228A Expired - Fee Related DE19782228C2 (en) 1996-12-31 1997-11-24 N-bit adder with adder blocks
DE19782228T Pending DE19782228T1 (en) 1996-12-31 1997-11-24 Spatially pipelined arithmetic-logic unit

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE19782228T Pending DE19782228T1 (en) 1996-12-31 1997-11-24 Spatially pipelined arithmetic-logic unit

Country Status (4)

Country Link
AU (1) AU5367298A (en)
DE (2) DE19782228C2 (en)
GB (1) GB2336452B (en)
WO (1) WO1998029800A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10244738B3 (en) * 2002-09-25 2004-03-04 Infineon Technologies Ag Dual-rail input conversion device providing one-hot output used for cryptographic applications operated in data mode or pre-charge or pre-discharge mode via control device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6149233A (en) * 1984-08-17 1986-03-11 Nec Corp High-speed digital adder and subtractor circuit
JP2513721B2 (en) * 1987-09-08 1996-07-03 株式会社リコー Adder
US5285406A (en) * 1990-04-02 1994-02-08 Advanced Micro Devices, Inc. High speed mixed radix adder
US5487025A (en) * 1993-11-15 1996-01-23 Intergraph Corporation Carry chain adder using regenerative push-pull differential logic

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
US-Z: IBM J.Res. DEVELOP., Vol. 40, No. 5, Sept. 1996: "The floating point unit of the Power PC 603e microprocessor", S. 559-566 *
US-Z: IRE TRANSACTIONS ON COMPUTERS, June 1962, S. 340-346, "Carry Select Adder"/Bedrij *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10244738B3 (en) * 2002-09-25 2004-03-04 Infineon Technologies Ag Dual-rail input conversion device providing one-hot output used for cryptographic applications operated in data mode or pre-charge or pre-discharge mode via control device
US7613763B2 (en) 2002-09-25 2009-11-03 Infineon Technologies Ag Apparatus and method for converting, and adder circuit

Also Published As

Publication number Publication date
AU5367298A (en) 1998-07-31
GB2336452A (en) 1999-10-20
GB9915230D0 (en) 1999-09-01
DE19782228T1 (en) 1999-12-23
WO1998029800A1 (en) 1998-07-09
GB2336452B (en) 2002-05-15

Similar Documents

Publication Publication Date Title
DE69832985T2 (en) Multiply-accumulator circuits
DE69632978T2 (en) Multi-operand adder using parallel counter
DE102020113922A1 (en) MULTIPLE CIRCUIT ARRANGEMENT WITH REDUCED LATENCY FOR VERY LARGE NUMBERS
DE69731700T2 (en) Arithmetic Circuit and Arithmetic Method
DE69327996T2 (en) Method for determining a zero-value result as a result of an arithmetic or logical calculation and circuit therefor
DE69326314T2 (en) Perform arithmetic operations on data
DE69435047T2 (en) Circuit and method for parallel addition and averaging
DE69416283T2 (en) Overflow control for arithmetic operations
DE69821408T2 (en) Multiplication method and device
DE3486211T2 (en) Code determination with an operand comparator based on half adder.
DE69131458T2 (en) Hardware arrangement for the addition and subtraction of floating point numbers
DE3700991C2 (en) Digital carry look ahead adder
DE2658248C2 (en)
DE69113836T2 (en) Integrated high-speed synchronous counter with asynchronous reading.
DE112005001906B4 (en) Multi-bit adder and method for propagating, generating or killing carry-in bits along a carry chain
DE4403917C2 (en) Device for calculating a bit occupation count
DE102020105536A1 (en) Machine learning training architecture for programmable devices
DE10124351A1 (en) Self time-controlled transmission system has coder of first and second data sets, processor processing data sets successively in self time-controlled manner and decoder of processed data sets
DE1549478B1 (en) Floating point arithmetic unit for quick addition or subtraction of binary operands
DE10019698C2 (en) Device for performing a sum-and-compare operation
DE68927488T2 (en) Binary carry forward circuit
DE19653565A1 (en) Recursively divided adder with carry select
DE69125761T2 (en) Carry look ahead adder
DE19782228C2 (en) N-bit adder with adder blocks
DE69327421T2 (en) Arrangement and method for parallelized size comparison of digital data

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8607 Notification of search results after publication
D2 Grant after examination
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110531