0% found this document useful (0 votes)
4 views32 pages

Let 2

The document covers the concepts of Redundant and Residue Number Systems in computer arithmetic, detailing their characteristics, advantages, and disadvantages. It explains how redundant systems can minimize carry propagation in addition operations and introduces residue number systems as a method for representing integers using modular arithmetic. Additionally, it discusses the conversion between these systems and their applications in hardware design and algorithms.

Uploaded by

Seema Trivedi
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)
4 views32 pages

Let 2

The document covers the concepts of Redundant and Residue Number Systems in computer arithmetic, detailing their characteristics, advantages, and disadvantages. It explains how redundant systems can minimize carry propagation in addition operations and introduces residue number systems as a method for representing integers using modular arithmetic. Additionally, it discusses the conversion between these systems and their applications in hardware design and algorithms.

Uploaded by

Seema Trivedi
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/ 32

CSE 246: Computer Arithmetic

Algorithms and Hardware Design


Winter 2005
Lecture 2: Redundant and
residue number systems

Instructor:
Prof. Chung-Kuan Cheng
Topics:
 Redundant Number Systems
 Residue Number Systems
 Mixed Radix Number Systems (as they
pertain to conversions of Residue
Number Systems)

CSE 246 2
Redundant Number Systems
 Examine number systems that can be
characterized by the 3-tuple (r, , )
 r : radix, [, ] : set of digits

 The redundancy of such a system is said to be



non-redundant if  -  = r

redundant if  -  > r
 minimally redundant if  -  = r + 1
 maximally redundant if  -  =2r - 1
 over redundant if  -  > 2r - 1

CSE 246 3
Redundant Number Systems
 Ex: (2,0,2)
 Redundant - furthermore, minimally redundant
4 2 1

Addition example: 0 0 0 0
0 0 1 1
0 0 2 2
0 1 0 2
1 0 2 (6) 0 1 1 3
0 1 2 4
+1 1 1 (7) 0 2 0 4
0 2 1 5
2 1 3 [3 not in radix] 0 2 2 6
1 0 0 4
+ 1 1
2 2 1 = 4*2 + 2*2 +1 = 13 = 6+7

CSE 246 4
Redundant Number Systems
 More addition examples:
110 121 101121 111222
+102 +101 +112210 +112222
212 222 111 20
11 20
11 20
21 11
222211 22
11220
11
2
1121220

CSE 246 5
Redundant Number Systems
 What has redundancy bought us?
 From the examples, it seems carry
propagation has been somewhat reduced
 Intuitively - redundancy acts as a buffer
against carry propagation
 However, carry propagation was not
eliminated in (2,0,2)
 Need to formalize the degree to which a
particular degree of redundancy eliminates
carry propagation

CSE 246 6
Redundant Number Systems
 To formalize:
xi+1 xi where xi + yi = r*ti+1 + wi
+ yi+1 yi
ti+1 wi
ti+2 wi+1

ti+1 + wi+1

we must bound ti+1 + wi+1 for all i to eliminate


carry propagation

CSE 246 7
Redundant Number Systems
As xi and yi are in [, ] and xi + yi = r * ti+1 + wi+1
1 2  r*ti+1 + wi  2

suppose there exist  and  such that


   ti+1  
we need
  -   wi+1   - 
to avoid propagation. Since this must be true for all i, whether the
subscript is i or i+1 is not important.

From 2 & 3 we have


4 r* +  -   r*ti+1 + wi+1  r* +  - 

From 1 & 4 we have


5
CSE 246
2  r* +  -  8
Redundant Number Systems
5 2  r* +  - 
gives the following bounds for  &  to insure no propagation

  /(r-1)
  /(r-1)

For (2,0,2):
  /(r-1) ->   2/(2-1)
  /(r-1) ->   0/(2-1)

which, from 3 means all wi must be in the range [0,0] and


there exist inputs requiring carry propagation

CSE 246 9
Redundant Number Systems
 How then to ensure that no carry propagation is needed?
 Change (r, , )

Consider (3,0,5)
  /(r-1) ->   5/(3-1)
  /(r-1) ->   0/(3-1) yields
 : 3 (first integer after 5/2)
:0
From 3, this gives a range on wi of [0,2]

Thus, when presented with multiple possibilities for


representing the sum of two digits, always choose terms in
[0,2] and there will be no carry propagation

CSE 246 10
Redundant Number Systems
Ex: for (3,0,5)
243
+435 5+3 = 8 could use 15, but choose from [0,2]
22 yielding 22 and no propagation
21
20
2232

CSE 246 11
Redundant Number Systems
 Advantages
 Constant time addition/subtraction!
 Disadvantages
 More space
 Comparison
 no unique forms/representations
 conversion to canonical form as expensive as
summation
 Uses:
 excellent for intermediate results of addition
 Multiplication
 DSP loops that have no comparisons
CSE 246 12
Residue Number Systems
 Define a Residue Number System as follows

For any given integer x, x=(x1|x2|...|xk)RNS(P1|P2|...|Pk)


where xi = x mod Pi and  i,j Pi is relatively prime to Pj
EX: 84 = (0|4|0)RNS(7|5|3)
1 = (1|1|1)RNS(7|5|3)
2 = (2|2|2)RNS(7|5|3)
3 = (3|3|0)RNS(7|5|3)

Residue numbers are not positional.


Residue numbers have unique representations mod  Pi

i.e. for (7|5|3) there are unique representations of 0-104.

CSE 246 13
Residue Number Systems
 Need a conversion system to/from binary

Binary #

RNS
ops RNS #
+,-,*

Binary #

 What benefit to doing operations in RNS?

CSE 246 14
Residue Number Systems
 Addition (subtraction is similar)

x+y = ((x1+y1)p | (x2+y2)p | ... | (xk+yk)p )RNS(P1|P2|...|Pk)


1 2 k

where xi = (x)p and yi = (y)p


i i

 Multiplication
x*y = ((x1*y1)p | (x2*y2)p | ... | (xk*yk)p )RNS(P1|P2|...|Pk)
1 2 k

where xi = (x)p and yi = (y)p


i i

 Division ?
 Hard. What does a fraction look like in RNS?
CSE 246 15
Residue Number Systems
 Advantages:
 Parallel processing of +,*,- on smaller numbers
 Adding more primes without increasing range allows for
use of fields to assist in fault tolerance (Ex: go from (7|
5|3) to (7|5|3|2) where last field is used for parity)
 Disadvantages:
 No division
 Comparison non-trivial
 Conversion costs

 How to do conversion?

CSE 246 16
Residue Number Systems
 Conversion: RNS -> Binary #

Given (x1|x2|...|xk)RNS(P1|P2|..|Pk)


k
 P j 
Binary number x =
 xi i

i 1  Pi

mod

P j

  Pj    P 
 ,P  i j See: Chinese
where i = inv  Pi i    Pi  1 Remainder Theorem
  Pi

One may consider, for the purposes of computation, all i as


being a pre-defined part of each particular RNS system
CSE 246 17
Residue Number Systems
 Conversion -> Bin# example:
84 = (0|4|0)RNS(7|5|3)

For (7|5|3):
(1* 5*3/7)7 = 1  1 : 1
(2* 7*3/5)5 = 1  2 : 1
(3* 7*5/3)3 = 1  3 : 2

x = (0*1*5*3*7/7 + 4*2*7*3*5/5 + 0*3*7*5*3/3)105

x = (0 + 4*2*21 + 0)105

x = (4*1*21)105 = 84105

CSE 246 18
Residue Number Systems
 Conversion -> Bin # example:
1 = (1|1|1)RNS(7|5|3)

(1* 5*3/7)7 = 1  1 : 1
(2* 7*3/5)5 = 1  2 : 1
(3* 7*5/3)3 = 1  3 : 2

x = (1*1*5*3*7/7 + 1*2*7*3*5/5 + 1*3*7*5*3/3)105

x = (1*1*15 + 1*2*21 + 1*3*35)105

x = (1*1*15+1*1*21+1*2*35)105=(106)105 = 1105

CSE 246 19
Residue Number Systems
Binary # Conversion -> Chinese remainder theorem

RNS How to choose primes?


ops RNS #
+,-,*

Binary #
 Minimize:
 total length of primes (determining range)
 max length of any prime (determining HW
cost/delay per unit)
 # of primes (determining # of parallel units)

What about  Popular choices: 2r-1 (2,3 particularly popular)


Bin -> RNS?  Thm: 2a-1 & 2b-1 are relatively prime iff a & b
are relatively prime

CSE 246 20
Residue Number Systems
 Binary # to RNS conversion
 Uses a lookup table
Observation: for n digit binary number y
(yn-1,yn-2,...,y0)p = [(2n-1)p *yn-1+ (2n-2)p *yn-2+...+(20)p *y0]p
i i i i i

Use a table to store (2i)p i 2i 2i7 2i5 2i3


i
0 1 1 1 1
1 2 2 2 2
Example for (7|5|3) 2 4 4 4 1
3 8 1 3 2
(1011)=(x1|x2|x3)RNS(7|5|3)
x1 = (1+2+1)7 = 4
x2 = (3+2+1)5 = 1
x = (2+2+1)3 = 2
3
CSE 246 21
Residue Number Systems
 Comparison
 Could convert back and forth to/from binary.
 Another approach: convert to a mixed radix
system, as numbers in a mixed radix system
are comparable.

CSE 246 22
Mixed Radix Number
Systems
 We shall describe a Mixed Radix System
as follows:

x =(Zk-1|Zk-2|...Z0)MRS(Pk-1|Pk-2|...|P1)

x = Zk-1Pk-1Pk-2...P1 + Zk-2Pk-2Pk-1...P0 + ... + Z1P1+Z0

CSE 246 23
Mixed Radix Number
Systems
 Conversion from RNS to MRS

Given x = (xk-1|xk-2|...|x0)RNS(Pk-1|Pk-2|...|P0)

We want x=(Zk-1|Zk-2|...|Z0)MRS(Pk-2|Pk-3|...|P0)

Observation: The MRS digit Z0 is in units of 1, so


fewer primes needed in MRS than in RNS

CSE 246 24
Mixed Radix Number
Systems
 Question: what is the relationship
between x0 and Z0?

 Can it be found by simple inspection?

 Yes.
1 x = Z .
0 0
 Why?
 x0 is the residue left from x mod P0 - all other
terms are multiples of P0 -> x0 = Z0

CSE 246 25
Mixed Radix Number
Systems
 This yields
2 x-x0 = (x’k-1|x’k-2|...|x’1|-)RNS(Pk-1|Pk-2|...|P1|-)
= (Zk-1|Zk-2|...|Z1|0)MRS(Pk-2|Pk-3|...|P0)

where x’i = (xi-x0)p i

Note that this is the only change in MRS

CSE 246 26
Mixed Radix Number
Systems
 Which leads to
3 (x-x0)/P0 = (x”k-1|x”k-2|...|x”1|-)RNS(Pk-1|Pk-2|...|P1|-)
= (Zk-1|Zk-2|...|Z1) MRS (Pk-2|Pk-1|...|P1)

Z1 = x”1

and so forth. (Deduction, division, repeat)

However, it was earlier noted that division in RNS is


hard - yet here we are doing division.
The trick? In this case, we know that we will always
get integer results.
CSE 246 27
Back to RNS
 Division in RNS
x”i =xi * (P0-1)p i

where

(Pj-1)p is the multiplicative inverse of Pj with respect to Pi


i

Ex: (3-1)7 = 5 --> (3*(3-1)7)7 = 1


(3-1)5 = 2 --> (3*(3-1)5)5 = 1

CSE 246 28
Example: RNS -> MRS
Y=(1|3|2)RNS(7|5|3) = (Z2|Z1|Z0)MRS(5|3)
That is, Y = Z2*5*3+Z1*3+Z0

by 1 (see slide #25)

Z0 = x0 = 2

from 2 (see slide #26) we have

y-x0 = y-2 =(x’2|x’1|0)RNS(7|5|3) = (Z2|Z1|0)MRS(5|3)


x’2 = (x2-x0)p = (1-2)7 = 6
2

x’1 = (3-2)5 = 1
y-2 = (6|1|0)RNS(7|5|3)=(Z2|Z1|0)MRS(5|3)
CSE 246 29
Example continued.
3 (See slide #27) then gives

(y-x0)/P0= (y-2)/3 = (x”2|x”1|-)RNS(7|5|3) = (Z2|Z1)MRS(5)

'
 7 A  x 
 7 B  x2" 7
then
 2

 3 7
Q: How does one derive x”2 ?
A: “It’s hard.” One has to try values one by one up to the
modulus

7 A  x  21B  3x 
'
2 7
"
2 7
remembering that (3-1)7 = 5, (3-1)5 = 2
x”2= (5*6)7 = 2, x”1 =(1*2)5 = 2
(y-2)/3 = (2|2|-)RNS(7|5|3) = (Z2|Z1)MRS(5)
CSE 246 30
Ex. Cont.
Apply 1 again,
Z1=x”1=2
gives by 2
(y-x0)/P0 - x”1 = (x”’2|0|-)RNS(7|5|3) = (Z2|0)MRS(5)

x”’2 =(x”2-2)7 = (2-2)7 = 0


(0|0|-)RNS(7|5|3)=(Z0|0)MRS(5)

By 3
y  x0 " x””2 = (x”’2*(5-1)7)7 = 0 = Z2
 x1
P0
...
P1 Yields final result
(0|2|2)MRS(5|3)

CSE 246 31
Ex. Concluded.
Check correctness

(0|2|2)MRS(5|3) = 0*5*3+2*3+2 = 8
87 = 1, 85 = 3, 83 = 2 -> (1|3|2)RNS(7|5|3)

Correct!

 Closing remark / Moral of the examples -

“Inversion is key”

CSE 246 32

You might also like