redundant number systems

32
CSE 246: Computer Arithmetic Algorithms and Hardware Design Instructor: Prof. Chung-Kuan Cheng Fall 2006 Lecture 2: Redundant and residue number systems

Upload: truongdung

Post on 30-Jan-2017

243 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Redundant Number Systems

CSE 246: Computer Arithmetic Algorithms and Hardware Design

Instructor:Prof. Chung-Kuan Cheng

Fall 2006Lecture 2: Redundant and residue number systems

Page 2: Redundant Number Systems

CSE 246 2

Topics: Redundant Number Systems Residue Number Systems

Mixed Radix Number Systems (as they pertain to conversions of Residue Number Systems)

Page 3: Redundant Number Systems

CSE 246 3

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 - + 1 = r redundant if - + 1 > r

minimally redundant if - = r maximally redundant if - =2r - 1 over redundant if - > 2r - 1

Page 4: Redundant Number Systems

CSE 246 4

Redundant Number Systems Ex: (2,0,2)

Redundant - furthermore, minimally redundant

Addition example:

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

0 1 2 2 3 4 4 5 6 4

0 0 00 0 10 0 20 1 00 1 10 1 20 2 00 2 10 2 21 0 0

4 2 1

Page 5: Redundant Number Systems

CSE 246 5

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

Page 6: Redundant Number Systems

CSE 246 6

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

Page 7: Redundant Number Systems

CSE 246 7

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

Page 8: Redundant Number Systems

CSE 246 8

Redundant Number SystemsAs 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 have4 r* + - r*ti+1 + wi+1 r* + -

From 1 & 4 we have5 2 r* + -

Page 9: Redundant Number Systems

CSE 246 9

Redundant Number Systems5 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

Page 10: Redundant Number Systems

CSE 246 10

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) : 0From 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

Page 11: Redundant Number Systems

CSE 246 11

Redundant Number SystemsEx: for (3,0,5) 243+435 5+3 = 8 could use 15, but choose from [0,2] 22 yielding 22 and no propagation 21202232

Page 12: Redundant Number Systems

CSE 246 12

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

Page 13: Redundant Number Systems

CSE 246 13

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 modi.e. for (7|5|3) there are unique representations of 0-104.

iP

Page 14: Redundant Number Systems

CSE 246 14

Residue Number Systems Need a conversion system to/from binary

What benefits of doing operations in RNS?

Binary #

RNS ops +,-,*

Binary #

RNS #

Page 15: Redundant Number Systems

CSE 246 15

Residue Number Systems Addition (subtraction is similar)

x+y = ((x1+y1)p1| (x2+y2)p2

| ... | (xk+yk)pk)RNS(P1|P2|...|Pk)

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

Multiplicationx*y = ((x1*y1)p1

| (x2*y2)p2| ... | (xk*yk)pk

)RNS(P1|P2|...|Pk)where xi = (x)pi

and yi = (y)pi

Division ? Hard. What does a fraction look like in RNS?

Page 16: Redundant Number Systems

CSE 246 16

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?

Page 17: Redundant Number Systems

CSE 246 17

Residue Number Systems Conversion: RNS -> Binary #

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

Binary number x = mod

where i = inv

One may consider, for the purposes of computation, all i asbeing a pre-defined part of each particular RNS system

k

i i

jii P

Px

1

jP

i

i

j PPP, 1

iPi

ji P

P See: Chinese

Remainder Theorem

Page 18: Redundant Number Systems

CSE 246 18

Residue Number Systems Conversion -> Bin# example:84 = (0|4|0)RNS(7|5|3)

For (7|5|3): (1* 5*3)7 = 1 1 : 1 (2* 7*3)5 = 1 2 : 1 (3* 7*5)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

Page 19: Redundant Number Systems

CSE 246 19

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

(1* 5*3)7 = 1 1 : 1 (2* 7*3)5 = 1 2 : 1 (3* 7*5)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

Page 20: Redundant Number Systems

CSE 246 20

Residue Number Systems

Minimize: total length of primes (determining range) max length of any prime (determining HW

cost/delay per unit) # of primes (determining # of parallel units)

Popular choices: 2r-1 (2,3 particularly popular) Thm: 2a-1 & 2b-1 are relatively prime iff a & b

are relatively prime

Binary #

RNS ops +,-,*

Binary #

RNS #

Conversion -> Chinese remainder theorem

How to choose primes?

What about Bin -> RNS?

Page 21: Redundant Number Systems

CSE 246 21

Residue Number Systems Binary # to RNS conversion

Uses a lookup tableObservation: for n digit binary number y

(yn-1,yn-2,...,y0)pi = [(2n-1)pi*yn-1+ (2n-2)pi

*yn-2+...+(20)pi*y0]pi

Use a table to store (2i)pi

Example for (7|5|3)

(1011)=(x1|x2|x3)RNS(7|5|3)x1 = (1+2+1)7 = 4x2 = (3+2+1)5 = 1x3 = (2+2+1)3 = 2

i 2i 2i7 2i5 2i30 1 1 1 1

1 2 2 2 2

2 4 4 4 1

3 8 1 3 2

Page 22: Redundant Number Systems

CSE 246 22

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.

Page 23: Redundant Number Systems

CSE 246 23

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

Page 24: Redundant Number Systems

CSE 246 24

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, sofewer primes needed in MRS than in RNS

Page 25: Redundant Number Systems

CSE 246 25

Mixed Radix Number Systems Question: what is the relationship

between x0 and Z0?

Can it be found by simple inspection?

Yes. 1 x0 = Z0.

Why? x0 is the residue left from x mod P0 - all other

terms are multiples of P0 -> x0 = Z0

Page 26: Redundant Number Systems

CSE 246 26

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)pi

Note that this is the only change in MRS

Page 27: Redundant Number Systems

CSE 246 27

Mixed Radix Number Systems Which leads to3 (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 ishard - yet here we are doing division.The trick? In this case, we know that we will alwaysget integer results.

Page 28: Redundant Number Systems

CSE 246 28

Back to RNS Division in RNSx”i =xi * (P0

-1)pi

where

(Pj-1)pi

is the multiplicative inverse of Pj with respect to Pi

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

Page 29: Redundant Number Systems

CSE 246 29

Example: RNS -> MRSY=(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)p2 = (1-2)7 = 6x’1 = (3-2)5 = 1y-2 = (6|1|0)RNS(7|5|3)=(Z2|Z1|0)MRS(5|3)

Page 30: Redundant Number Systems

CSE 246 30

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)

then

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

modulus

remembering that (3-1)7 = 5, (3-1)5 = 2x”2= (5*6)7 = 2, x”1 =(1*2)5 = 2(y-2)/3 = (2|2|-)RNS(7|5|3) = (Z2|Z1)MRS(5)

7"27

'2 7

37 xBxA

7"27'2 3217 xBxA

Page 31: Redundant Number Systems

CSE 246 31

Ex. Cont.Apply 1 again,Z1=x”1=2gives 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 x””2 = (x”’2*(5-1)7)7 = 0 = Z2

Yields final result(0|2|2)MRS(5|3)

...1

"1

0

0

P

xPxy

Page 32: Redundant Number Systems

CSE 246 32

Ex. Concluded.Check correctness

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

Correct!

Closing remark / Moral of the examples -

“Inversion is key”