USPatent applicationPatented

5-to-2 binary adder

Granted 10 Jun 2003 · 1 office action

Application· this page
9584893
filed 1 Jun 2000
Publication
Not published
not published
Patent
US 6,578,063
granted 10 Jun 2003

Life of the application

7 dated events
⤢ drag to zoom20002002200420062008201020122014201620182020ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

A five-input/two-output binary adder is disclosed. The five-input/two-output adder includes five inputs and two outputs. Four levels of XOR logic gates are coupled between the five inputs and the two outputs for combining values received at the five inputs and generating a sum value and a carry value at the outputs.

Description

5 parts
›BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates to an apparatus for data processing in general, and in particular to a binary adder. Still more particularly, the present invention relates to a five-input/two-output binary adder.

2. Description of the Prior Art

The two most commonly encountered binary adders in digital arithmetic circuit arrangements are carry-propagate adders (CPAs) and carry-save adders (CSAs). CPAs are typically designed to have two data inputs and one output. CPAs operate according to well-known principles in which addend bits of the same order are added together, and a carry bit will be transferred to an adjacent higher order bit when required. A sum is directly derived from a bit-by-bit addition, with an appropriate carry to an adjacent higher order bit and a single bit carry out from the highest order bit position. The ripple carry of a CPA tends to result in slow non-parallel operations because high order bits computations are dependent on the results from low order bits.

CSAs, on the other hand, typically have three data inputs and two outputs. Carry bits in CSAs are accumulated separately from the sum bits of any given order (or position). The output of CSAs are two vectors, namely, a sum and a carry, which when added together yield the final result. One benefit of CSAs is that high-order bits have no dependency on any low-order bit because all bit positions are calculated independently, thereby avoiding the propagation latency associated with carry bits in CPAs. Because of their speed and simplicity, CSAs are pervasively found in digital logic designs.

The present disclosure describes a five-input/two-output CSA adder. Such five-input/two-output CSA adder can be advantageously used in, for example, a fused multiply-adder that combine a multiplication operation with an add operation.

›SUMMARY OF THE INVENTION

In accordance with a preferred embodiment of the present invention, a five-input/two-output binary adder includes five inputs and two outputs. Four levels of XOR logic gates are coupled between the five inputs and the two outputs for combining values received at the-five inputs and generating a sum value and a carry value at the outputs.

All objects, features, and advantages of the present invention will become apparent in the following detailed written description.

›BRIEF DESCRIPTION OF THE DRAWINGS

The invention itself, as well as a preferred mode of use, further objects, and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:

FIG. 1 is a block diagram of a direct implementation of a five-input/two-output adder;

FIG. 2 is a block diagram of a five-input/two-output adder in accordance with a preferred embodiment of the present invention; and

FIG. 3 is a block diagram of a processor in which a preferred embodiment of the present invention may be incorporated.

›DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT · 1 of 2

A five-input/two-output adder is typically not readily available in a conventional logic gate library. However, a five-input/two-output adder can be formed by directly combining, for example, a three-input/two-output adder with a four-input/two-output adder. Referring now to the drawings and in particular to FIG. 1, there is illustrated a block diagram of a direct implementation of a five-input/two-output adder. As shown, a three-input/two-output adder 11 is coupled to a four-input/two-output adder 12 to form a five-input/two-output adder 10 . Five-input/two-output adder 10 combines inputs a, b, c, d, and e to generate a sum output 13 and a carry output 14 .

The time delay for five-input/two-output adder 10 can be qualitatively measured by the total number of levels of XOR gates utilized. Three-input/two-output adder 11 requires two levels of XOR gates, and four-input/two-output adder 12 requires three levels of XOR gates. Thus, five-input/two-output adder 10 requires a total of five levels of XOR gates. Because of the relatively long delay time associated with five level of XOR gates, it is not very attractive to realize a five-input/two-output adder by this type of direct implementation.

With reference now to FIG. 2, there is illustrated a block diagram of a five-input/two-output adder 20 , in accordance with a preferred embodiment of the present invention. Similar to five-input/two-output adder 10 , five-input/two-output adder 20 combines inputs a, b, c, d, and e to generate a sum output 27 and a carry output 28 . However, five-input/two-output adder 20 only requires four levels of XOR gates. Specifically, at level one, an XOR gate 21 combines input a and input b, and an XOR gate 22 combines input c and input d. At level two, an XOR gate 23 combines the result from XOR gate 21 and XOR gate 22 , and an XOR gate 24 combines input e and a first carry-out (i.e., x 1 _in) from a previous stage of five-input/two-output adder 20 . At level three, an XOR gate 25 combines the results from XOR gate 23 and XOR gate 24 . At level four, an XOR gate 26 combines the results from XOR gate 25 and a second carry-out (i.e., x 2 _in) from the previous stage of five-input/two-output adder 20 . The logic operations shown within blocks 17 and 18 are preferably performed at level one in conjunction with XOR gates 21 and 22 .

In order for five-input/two-output adder 20 to operate correctly, the following equation must be satisfied:

a+b+c+d+e+x 1 _in+ x 2 _in=2( x 1 _out+ x 2 _out+carry)+sum

For the convenience of illustration, various results of (a+b+c+d) are mapped out in Table I, where a, b, c, and d are input values of either a logical 0 or logical 1.

In Table I, column a+b+c+d represents the sum of inputs a+b+c+d, column other conditions represents the two different conditions in which the sum total of inputs a+b+c+d equals two, columns x 1 _out, n, and s 1 represent different intermediate values within five-input/two-output adder 20 .

Based on the result listed in Table I, the following equations hold true:

x 1 _out=( a or b ) and ( c or d );

s 1 =( a and b ) or ( c and d );

s 1 xor n =( a xor b ) xor ( c xor d ); and

a+b+c+d =2( x 1 _out)+ s 1 + n   (1)

For the equations, “and” denotes a logical AND operation, “or” denotes a logical OR operation, and “xor” denotes a logical XOR (exclusive OR) operation. The 2(x 1 _out) in equation (1) denotes x 1 _out being a higher significant position than s 1 +n. By defining x 2 _out and s 2 as carry and save of (s 1 +n+x 1 _in), respectively, the following equations are formed: x2_out = ( s1     and     n )     or     ( s1        and        x1_in )     or     ( n        and     x1_in ) = ( s1        and     n )     or     ( x1_in     and     ( s1_in     or     n ) ) = { ( s1     xor     n _ )        and     s1 }     or     ( ( s1        xor        n )        and     x1_in ) ; 

 s2 = ( s1     xor     n )     xor     x1_in ;    and    s1 + n + x1_in = 2  ( x2_out ) + s2 ( 2 )

In a similar manner, let carry and sum be the carry and sum of (s 2 +e+x 2 _in), respectively, and the following equations are formed:

carry={({overscore ( s 2 xor e )}) and e } or ( s 2 xor e ) and x 2 _in);

sum=( s 2 xor e ) xor x 2 _in; and

s 2 + e+x 2 _in=2(carry)+sum (3)

From equations (1), (2), and (3), a + b + c + d + e + x1_in + x2_in = 2  ( x1_out ) + s1 + n + e + x1_in + x2_in = 2  ( x1_out ) + 2  ( x2_out ) + s2 + e + x2_in = 2  ( x1_out ) + x2_out + carry ) + sum

Thus, it is shown that five-input/two-output adder 20 generates x 1 _out, x 2 _out, carry, and sum according to their definitions in the corresponding equations.

By arranging the equations, it is shown that five-input/two-output adder 20 combines input values a, b, c, d, and e to generate a sum value and a carry value, as follows: sum =    ( s2     xor     e )        xor        x2_in =    ( s1     xor     n     xor     x1  _  in )     xor     e     xor     x2_in    =    ( a     xor     b        xor     c     xor     d )     xor     x1_in     xor     e        xor     x2_in =    a        xor     b     xor     c     xor     d     xor     e     xor     x1_in        xor     x2_in carry =    { ( s1     xor     n        xor     x1_in     xor     e _ )     and     e }       or     { ( s1     xor     n     xor     x1_in     xor     e )     and     x2_in } ; =    { ( a     xor     b     xor     c     xor     d        xor     x1_in     xor     e _ )        and     e }       or     { ( a     xor     b        xor     c     xor     d     xor     x1_in     xor     e )        and     x2_in }

As has been described, the present invention provides a five-input/two-output adder. The five-input/two-output adder of the present invention only have four levels of XOR delays on its critical path. It is understood by those skilled in the art that the five-input/two-output adder of the present invention can be utilized to implement various multipliers or fused multiply-adders within a processor. Furthermore, several five-input/two-output adders of the present invention can be concatenated to provide 5:2, 10:2, 15:2, 20:2 compressions.

›DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT · 2 of 2

Referring now to FIG. 3, there is depicted a block diagram of a processor in which five-input/two-output adder 20 may be incorporated. Within a processor 30 , a bus interface unit 32 is coupled to a data cache 33 and an instruction cache 34 . Both data cache 33 and instruction cache 34 are high speed set-associative caches which enable processor 30 to achieve a relatively fast access time to a subset of data or instructions previously transferred from a main memory (not shown). Instruction cache 34 is further coupled to an instruction fetch unit 31 which fetches instructions from instruction cache 34 during each execution cycle.

Processor 30 also includes three execution units, namely, an integer unit 35 , a load/store unit 36 , and a floating-point unit 37 . Five-input/two-output adders can be found within integer unit 35 and floating-point unit 37 . Each of execution units 35 - 37 can execute one or more classes of instructions, and all execution units 35 - 37 can operate concurrently during each processor cycle. After execution has terminated, execution units 35 - 37 store data results to a respective rename buffer, depending upon the instruction type. Then, any one of execution units 35 - 37 signals a completion unit 40 that the instruction unit has been finished. Finally, instructions are completed in program order by transferring result data from the respective rename buffer to a general purpose register 38 or a floating-point register 39 .

While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.

›Tables in the description — 1
TABLE I
a + b + c + dother conditionsx1_outns1
0000
1010
2(a and b) or (c and d)011
(a or b) and (c or d)100
3101
4111

Claims as granted

10 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

4 codes
IPC · International Patent Classification
Section G — Physics
  • G06F7/509
  • G06F7/50
USPC · US Patent Classification
708/708708/709

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomJul 2000Jan 2001Jul 2001Jan 2002Jul 2002Jan 2003Jul 2003USPTOApplicantNon-final rejection
USPTOApplicanthover for detail · click to open
Pendency
3.0 y
1,104 days filing → grant
Office actions
1
non-final + final
Responses
1
no RCE
Examiner
David H. Malzahn
art unit 2124 · TC 2100
Citations: 16 back · 12 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom20002002200420062008201020122014201620182020Owner 1
Titlehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock