CarrySave Addition
Prof. Loh
CS3220  Processor Design  Spring 2005
February 2, 2005
1
Adding Multiple Numbers
There are many cases where it is desired to add more than two numbers together. The straightforward way of adding
together
m
numbers (all
n
bits wide) is to add the ﬁrst two, then add that sum to the next, and so on. This requires
a total of
m

1
additions, for a total gate delay of
O
(
m
lg
n
)
(assuming lookahead carry adders). Instead, a tree of
adders can be formed, taking only
O
(lg
m
·
lg
n
)
gate delays.
Using carry save addition, the delay can be reduced further still. The idea is to take 3 numbers that we want to add
together,
x
+
y
+
z
, and convert it into 2 numbers
c
+
s
such that
x
+
y
+
z
=
c
+
s
, and do this in O(1) time. The
reason why addition can not be performed in
O
(1)
time is because the carry information must be propagated. In carry
save addition, we refrain from directly passing on the carry information until the very last step. We will ﬁrst illustrate
the general concept with a base 10 example.
To add three numbers by hand, we typically align the three operands, and then proceed column by column in the
same fashion that we perform addition with two numbers. The three digits in a row are added, and any overﬂow goes
into the next column. Observe that when there is some nonzero carry, we are really adding four digits (the digits of
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
This is the end of the preview.
Sign up
to
access the rest of the document.
 Summer '11
 ahmed
 Addition, Gate Delay

Click to edit the document details