0% found this document useful (0 votes)
66 views22 pages

University of Massachusetts Dept. of Electrical & Computer Engineering

The document discusses several unconventional number systems including negative radix number systems, signed digit number systems, and methods for performing arithmetic in these systems without carry propagation chains. Negative radix systems use a negative base and signed digit systems use signed digits, eliminating the need for a separate sign representation. Algorithms are presented for addition without carry chains by computing interim sums and carries in two steps.

Uploaded by

shivarin
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
66 views22 pages

University of Massachusetts Dept. of Electrical & Computer Engineering

The document discusses several unconventional number systems including negative radix number systems, signed digit number systems, and methods for performing arithmetic in these systems without carry propagation chains. Negative radix systems use a negative base and signed digit systems use signed digits, eliminating the need for a separate sign representation. Algorithms are presented for addition without carry chains by computing interim sums and carries in two steps.

Uploaded by

shivarin
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 22

UNIVERSITY OF MASSACHUSETTS

Dept. of Electrical & Computer Engineering

Digital Computer Arithmetic


ECE 666

Part 2
Unconventional Number Systems

Israel Koren
Spring 2008

ECE666/Koren Part.2 .1 Copyright 2008 Koren


Unconventional Fixed-Radix Number
Systems

 Number system commonly used in arithmetic units -


binary system with two's complement representation
of negative numbers
 Other number systems have proven to be useful for
certain applications -
 Negative radix number system
Signed-digit number system
 Sign-logarithm number system
 Residue number system

ECE666/Koren Part.2 .2 Copyright 2008 Koren


Negative-Radix Number Systems
The radix r of a fixed-radix system - usually a
positive integer
 r can be negative - r=- ( - a positive integer)
 Digit set - xi = 0,1,...,-1
 Value of n-tuple (xn-1,xn-2,...,x0) -

 The weight wi is -

ECE666/Koren Part.2 .3 Copyright 2008 Koren


Example - Negative-Decimal System

 Negative-radix number system with =10 -


nega-decimal system
 Three-digit nega-decimal numbers -
 192-10 =100-90+2=12 ; 012-10=-10+2=-8
 Largest positive value - 909-10=90910
 Smallest value - 090-10=-9010
 Asymmetric range - -90  X  909
 Approximately 10 times more positives than negatives
This is always true for odd values of n -
opposite for even n
 Example - the range for n=4 is -9090  X  909

ECE666/Koren Part.2 .4 Copyright 2008 Koren


Negative-Radix Number Systems -
Properties
No need for a separate sign digit
 No need for a special method to represent
negative numbers
 Sign of number is determined by the first
nonzero digit
 No distinction between positive and negative
number representations - arithmetic operations
are indifferent to the sign of the numbers
Algorithms for the basic arithmetic operations in
the negative-radix number system are slightly
more complex then their counterparts for the
conventional number systems

ECE666/Koren Part.2 .5 Copyright 2008 Koren


Example - Negative-Binary System
 Negative-radix numbers of length n=4, =2 -
nega-binary system
Range - -1010=1010-2  X  0101-2=+510
 When adding nega-binary numbers - carry bits
can be either positive or negative
 Example: -8 +4 -2 +1
0 0 1 0 -2
0 0 1 1 -1
1 1 0 1 -3
 Nega-binary - proposed for signal processing
applications
 Algorithms exist for all arithmetic operations
 Did not gain popularity: Main reason - not better
than the two's complement system

ECE666/Koren Part.2 .6 Copyright 2008 Koren


Signed-Digit Number Systems
 So far - digit set {0,...,r-1}
 In the signed-digit
__ __(SD)- number system, -
digit set is {r-1,r-2,…,1,0,1,...,r-1} ( i = -i)
 No separate sign digit
 Example:
- - -
 r=10, n=2 ; digits - {9,8,...,1,0,1,...,8,9}
- -  X  99 -
 Range - 99 199 numbers
 2 digits, 19 possibilities each - 361 representations -
redundancy
- - -
 01=19=1 ; 02=18=-2
 Representation of 0 (or 10) is unique
 Out of 361 representations, 361-199=162 are redundant -
81% redundancy
 Each number in range has at most two representations

ECE666/Koren Part.2 .7 Copyright 2008 Koren


Reducing Redundancy in Signed-Digit
Number Systems
 Redundancy can be beneficial - but more bits needed
 Reducing redundancy - digit set restricted to

  x  - smallest integer larger than or equal to x

 To represent a number in a radix r system - at least


r different digits are needed
 a-  xi  a - 2a+1 digits
 2a+1  r and

ECE666/Koren Part.2 .8 Copyright 2008 Koren


Example - SD Number System

r=10 - range of a is 5  a  9
--
 If a=6, n=2 - 133 numbers in range 66  X  66
 13 values for each digit - total of 13 2 =169
representations - 27% redundancy
-
1 has only one representation - 01 - 19 is not
valid
-
 4 has two representations - 04 and 16

ECE666/Koren Part.2 .9 Copyright 2008 Koren


Eliminating Carry Propagation Chains
Calculating (xn-1,...,x0)  (yn-1,...,y0)=(sn-1,...,s0)
 Breaking the carry chains - an algorithm in which
sum digit si depends only on the four operand digits
xi, yi, xi-1, yi-1
Addition time independent of length of operands
 An algorithm that achieves this independence:
 Step 1: Compute interim sum ui and carry digit ci
ui = xi + yi - r ci
where

Step 2: Calculate the final sum si = ui + ci-1


ECE666/Koren Part.2 .10 Copyright 2008 Koren
Example - r=10, a=6
-
xi=6,...,0,1,...,6
 Step 1 - ui =( xi+yi )-10 ci
 Example - 3645+1456
3645 3 6 4 5 x
+ 1456 + 1 4 5 6 y
5101
0 1 1 1 c
4 0
-
1 1 u
5 1 0 1 s
 In conventional decimal number system - carry
propagates from least to most significant digit
 Here - no carry propagation chain
Carry bits shifted to left to simplify execution of
second step

ECE666/Koren Part.2 .11 Copyright 2008 Koren


Converting Representations
 This addition algorithm can be used for converting
a decimal number to SD form by considering each
digit as the sum xi+yi above
Example - converting decimal 6849 to SD
xi+yi 6 8 4 9
c 1 1 0 1
u
-- -
4 2 4 1
s
-- -
1 3 2 5 1
 Converting SD to decimal - subtracting digits with
negative weight from digits with positive weight
-- -
 Example - converting 13251 to decimal
10050
-03201
6849

ECE666/Koren Part.2 .12 Copyright 2008 Koren


Proof of the Two-Step Algorithm
 To guarantee no new carry - |si|  a
 Since |ci-1|1, |ui| must be  a-1 for all xi,yi
 Example - largest xi+yi is 2a  ci=1, ui=2a-r
since a  r-1, ui=2a-r  a-1
 Example - smallest xi+yi for which ci=1 is a 
ui=a-r<0 or |ui|=r-a; to get |ui|  a-1, 2a  r+1
 Selected digit set must satisfy
 Exercise - show that for all
values of xi+yi, |ui|  a-1 if
Example - for SD decimal numbers, a  6
guarantees no new carries in previous algorithm

ECE666/Koren Part.2 .13 Copyright 2008 Koren


Addition of Binary SD Numbers
- - a=1
 Only one possible digit set - {1,0,1}
 Interim sum and carry in addition algorithm -

Summary of rules - - -- -
- -
-

- -
 Addition is commutative - 10,10,11 not included
In the binary case - cannot be
satisfied
 No guarantee that a new carry will not be generated
in the second step of the algorithm
ECE666/Koren Part.2 .14 Copyright 2008 Koren
Addition - Carry Generation
-
 If operands do not have 1 - new carries not generated
 Example -
 In conventional representation -
a carry propagates from least
to most significant position
 Here - no carry propagation chain exists
 If operands have 1- - new carries may be generated
Example -
 If xi-1yi-1 = 01 - ci-1 = 1
-
and if xiyi = 01 - ui = 1
si = ui+ci-1 = 1+1 -
a new carry is generated
 Stars indicate positions where new carries are generated and
must be allowed to propagate

ECE666/Koren Part.2 .15 Copyright 2008 Koren


Addition - Avoiding Carry Generation
-
ci-1=ui=1 when xiyi = 01 and xi-1yi-1 = 11 or 01
-
 Selecting ci=0 - ui = 1
-- -
 However, for xi-1yi-1=11  ci-1=1
-
and we must still select ci=1, ui=1
-- -
 Similarly, when xiyi=01 and xi-1yi-1= 11 or 01,
-
instead of ui=1  select ci=0 & ui=1
ui and ci can be determined by examining the two
bits to the right xi-1yi-1
ui and ci can still be calculated in parallel for all
bit positions
- -- -
- -
-
ECE666/Koren Part.2 .16 Copyright 2008 Koren
Addition of Binary SD Numbers -
Modified Rules

 Example - 1 -10 -11 7


0 -
11 0 0 -4
-
0 1 0 0 1 c
1 0 1 - -1
1 u
0 0 1 0 -1 3

 Direct
- summation of the two operands results in
-
00111, equivalent to 00101, all representing 310

ECE666/Koren Part.2 .17 Copyright 2008 Koren


Minimal Representations of Binary
SD Numbers
 Representation with a minimal number of nonzero
digits
 Important for fast multiplication and division
algorithms
 Nonzero digits - add/subtract operations, zero
digits - shift-only operations
 Example - Representations of X=7:
-
1001 is the minimal representation
 The canonical recoding algorithm
generates minimal SD representations
of given binary numbers

ECE666/Koren Part.2 .18 Copyright 2008 Koren


Encoding of SD Binary Numbers
 4x3x2=24 ways to encode 3 values
of a binary signed bit x using 2
bits, x h and x l (high and low)
 Only nine are distinct encodings
under permutation and logical
negation - two have been used in practice
 Encoding #2 - a two's complement representation of
the signed digit x
 Encoding #1 is sometimes preferable
 Satisfies x = x l - xh - 11 has a valid value of 0
 Simplifies conversion from SD to two's complement -
subtracting xn- h 2,...,xh0 from xn-
h 1, xn- l
1,xn-2,...,x0 using
l l

two's complement arithmetic


 This requires a complete binary adder
 A simpler conversion algorithm exists
ECE666/Koren Part.2 .19 Copyright 2008 Koren
Conversion Algorithm - Simpler Circuit
 Binary signed digits examined one at a time, right to left
 All occurrences of 1- are removed and the negative sign is
forwarded to the most significant bit, the only bit with a
negative weight in the two's complement representation
 The rightmost 1- is replaced by 1 and the negative sign is
forwarded to the left, replacing 0's by 1's until a 1 is
reached, which ``consumes” the negative sign and is
replaced by 0
 If a 1 is not reached - the 0 in the most significant
position is turned into a 1, becoming the negative sign bit
of the two's complement representation
 If a second 1- is encountered before a 1 is, it is replaced
by a 0 and the forwarding of the negative sign continues
 The negative sign is forwarded with the aid of a “borrow”
bit which equals 1 as long as a 1- is being forwarded, and
equals 0 otherwise

ECE666/Koren Part.2 .20 Copyright 2008 Koren


Conversion Algorithm Rules
yi - i-th digit of the SD number
zi - i-th bit of the two's
complement representation
ci - previous borrow
ci+1 - next borrow
 For the least significant digit we assume c0=0
yi - ci = zi - 2ci+1

ECE666/Koren Part.2 .21 Copyright 2008 Koren


Conversion Algorithm - Cont.
Example - -1010 - converting SD to two's complement

Range of representable numbers in SD method -


almost double that of the two's complement method
 n-digit SD number must be converted to an (n+1)-bit
two's complement representation

 Without the extra bit position - the number 19 would


be converted to -13

ECE666/Koren Part.2 .22 Copyright 2008 Koren

You might also like