Re: Decimal carry-save adder using reversed biquinary notation
- From: jsavard@xxxxxxxxxxxxxxxxxxxxxxxxxx (John Savard)
- Date: Mon, 12 Jun 2006 22:07:50 GMT
On Mon, 12 Jun 2006 20:05:53 +0200, Terje Mathisen
<terje.mathisen@xxxxxxxxxxxxx> wrote, in part:
I don't know exactly how current decimal units work, but from the
encoding standard (3 digits in 10 bits), I'd assumed that you might work
in modulo-1000 for a while, doing a final unpack/shift/pack at the end
to generate the final result.
After I posted my message, I added information about the 3 digits in 10
bits encoding that IBM has proposed as a standard to the page. (That's
an oversimplification; actually, IBM is proposing a related encoding
method, which I discuss on the page I've added a link to.)
From that description, it is clear - but you may not have seen my pagein its updated form - that the encoding is not to a form suitable for
mod-1000 arithmetic.
Even if you don't do this, and always work in mod-10, you still get the
benefit of a much shorter carry chain: maximum 14 digits vs 53 bits, right?
True, but *no* carry chain is better than a short carry chain. And no
carry chain is achievable by means of a carry-save adder.
Incidentally, though, my use of qui-binary, so that there are no carries
'inside' the digit, seems to be just what is needed to remove the need
for a decimal equivalent of Booth encoding. (IBM has a recent patent on
something like this that I could find at espacenet but not then in the
U.S. database, or it might be a patent application.)
Another fast approach for a long decimal multiplier would be to generate
all 8 possible (0 and 1 comes for free) multiples of the first input
value by a single digit value.
NORC did that. Actually, *this* is where Booth encoding comes in. The
problem is that some of those multiples are "hard multiples", meaning
that some carries are required in generating them. Just as in binary
multiplication, multiplying by *two* is OK, but multiplying by *three*
is a problem.
Booth encoding solves that by faking a multiplication by -1: the number
is one's complemented instead of being two's complemented, and one is
included in an *error term* that gets added in just before the end.
At the end, one *finally* takes the last two outputs of the last
carry-save adder to make one, and only one, addition which requires a
carry.
John Savard
http://www.quadibloc.com/index.html
_________________________________________
Usenet Zone Free Binaries Usenet Server
More than 140,000 groups
Unlimited download
http://www.usenetzone.com to open account
.
- References:
- Decimal carry-save adder using reversed biquinary notation
- From: John Savard
- Re: Decimal carry-save adder using reversed biquinary notation
- From: Terje Mathisen
- Decimal carry-save adder using reversed biquinary notation
- Prev by Date: Re: Decimal carry-save adder using reversed biquinary notation
- Next by Date: Re: Decimal carry-save adder using reversed biquinary notation
- Previous by thread: Re: Decimal carry-save adder using reversed biquinary notation
- Next by thread: Re: Decimal carry-save adder using reversed biquinary notation
- Index(es):
Relevant Pages
|
Loading