Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE 246: Computer Arithmetic Algorithms and Hardware Design Instructor: Prof. Chung-Kuan Cheng Winter 2004 Lecture 2.

Similar presentations


Presentation on theme: "CSE 246: Computer Arithmetic Algorithms and Hardware Design Instructor: Prof. Chung-Kuan Cheng Winter 2004 Lecture 2."— Presentation transcript:

1 CSE 246: Computer Arithmetic Algorithms and Hardware Design Instructor: Prof. Chung-Kuan Cheng Winter 2004 Lecture 2

2 CSE 2462 Topics:  Redundant Number Systems  Residue Number Systems Mixed Radix Number Systems (as they pertain to conversions of Residue Number Systems)

3 CSE 2463 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

4 CSE 2464 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 3 4 5 6 4 0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 1 0 0 4 2 1

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

6 CSE 2466 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

7 CSE 2467 Redundant Number Systems  To formalize: x i+1 x i where x i + y i = r*t i+1 + w i + y i+1 y i t i+1 w i t i+2 w i+1 t i+1 + w i+1 we must bound t i+1 + w i+1 for all i to eliminate carry propagation

8 CSE 2468 Redundant Number Systems As x i and y i are in [, ] and x i + y i = r * t i+1 + w i+1 12  r*t i+1 + w i  2 suppose there exist and  such that 2  t i+1   we need 3 -  w i+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 4r* +  -  r*t i+1 + w i+1  r* +  -  From 1 & 4 we have 52  r* +  - 

9 CSE 2469 Redundant Number Systems 52  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 w i must be in the range [0,0] and there exist inputs requiring carry propagation

10 CSE 24610 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 w i 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

11 CSE 24611 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

12 CSE 24612 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

13 CSE 24613 Residue Number Systems  Define a Residue Number System as follows For any given integer x, x=(x 1 |x 2 |...|x k )RNS(P 1 |P 2 |...|P k ) where x i = x mod P i and  i,j P i is relatively prime to P j 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 i.e. for (7|5|3) there are unique representations of 0-104.

14 CSE 24614 Residue Number Systems  Need a conversion system to/from binary  What benefit to doing operations in RNS? Binary # RNS ops +,-,* Binary # RNS #

15 CSE 24615 Residue Number Systems  Addition (subtraction is similar) x+y = ((x 1 +y 1 ) p 1 | (x 2 +y 2 ) p 2 |... | (x k +y k ) p k )RNS(P 1 |P 2 |...|P k ) where x i = (x) p i and y i = (y) p i  Multiplication x*y = ((x 1 *y 1 ) p 1 | (x 2 *y 2 ) p 2 |... | (x k *y k ) p k )RNS(P 1 |P 2 |...|P k ) where x i = (x) p i and y i = (y) p i  Division ? Hard. What does a fraction look like in RNS?

16 CSE 24616 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?

17 CSE 24617 Residue Number Systems  Conversion: RNS -> Binary # Given (x 1 |x 2 |...|x k )RNS(P 1 |P 2 |..|P k ) Binary number x = mod where  i = inv  One may consider, for the purposes of computation, all  i as being a pre-defined part of each particular RNS system See: Chinese Remainder Theorem

18 CSE 24618 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 = 84 105

19 CSE 24619 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 = 1 105

20 CSE 24620 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: 2 r -1 (2,3 particularly popular) Thm: 2 a -1 & 2 b -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?

21 CSE 24621 Residue Number Systems  Binary # to RNS conversion Uses a lookup table Observation: for n digit binary number y (y n-1, y n-2,...,y 0 ) p i = [(2 n-1 ) p i *y n-1 + (2 n-2 ) p i *y n- 2 +...+(2 0 ) p i *y 0 ] p i Use a table to store (2 i ) p i Example for (7|5|3) (1011)=(x 1 |x 2 |x 3 )RNS(7|5|3) x 1 = (1+2+1) 7 = 4 x 2 = (3+2+1) 5 = 1 x 3 = (2+2+1) 3 = 2

22 CSE 24622 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.

23 CSE 24623 Mixed Radix Number Systems  We shall describe a Mixed Radix System as follows: x =(Z k-1 |Z k-2 |...Z 0 )MRS(P k-1 |P k-2 |...|P 1 ) x = Z k-1 P k-1 P k-2...P 1 + Z k-2 P k-2 P k-1...P 0 +... + Z 1 P 1 +Z 0

24 CSE 24624 Mixed Radix Number Systems  Conversion from RNS to MRS Given x = (x k-1 |x k-2 |...|x 0 )RNS(P k-1 |P k-2 |...|P 0 ) We want x=(Z k-1 |Z k-2 |...|Z 0 )MRS(P k-2 |P k-3 |...|P 0 ) Observation: The MRS digit Z 0 is in units of 1, so fewer primes needed in MRS than in RNS

25 CSE 24625 Mixed Radix Number Systems  Question: what is the relationship between x 0 and Z 0 ? Can it be found by simple inspection? Yes. 1x 0 = Z 0. Why? x 0 is the residue left from x mod P 0 - all other terms are multiples of P 0 -> x 0 = Z 0

26 CSE 24626 Mixed Radix Number Systems  This yields 2x-x 0 = (x ’ k-1 |x ’ k-2 |...|x ’ 1 |-)RNS(P k-1 |P k-2 |...|P 1 |-) = (Z k-1 |Z k-2 |...|Z 1 |0)MRS(P k-2 |P k-3 |...|P 0 ) where x ’ i = (x i -x 0 ) p i Note that this is the only change in MRS

27 CSE 24627 Mixed Radix Number Systems  Which leads to 3(x-x 0 )/P 0 = (x ” k-1 |x ” k-2 |...|x ” 1 |-)RNS(P k-1 |P k-2 |...|P 1 |-) = (Z k-1 |Z k-2 |...|Z 1 ) MRS (P k-2 |P k-1 |...|P 1 ) Z 1 = 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.

28 CSE 24628 Back to RNS  Division in RNS x ” i =x i * (P 0 -1 ) p i where (P j -1 ) p i is the multiplicative inverse of P j with respect to P i Ex:(3 -1 ) 7 = 5 --> (3*(3 -1 ) 7 ) 7 = 1 (3 -1 ) 5 = 2 --> (3*(3 -1 ) 5 ) 5 = 1

29 CSE 24629 Example: RNS -> MRS Y=(1|3|2)RNS(7|5|3) = (Z 2 |Z 1 |Z 0 )MRS(5|3) That is, Y = Z 2 *5*3+Z 1 *3+Z 0 by 1 (see slide #25) Z 0 = x 0 = 2 from 2 (see slide #26) we have y-x 0 = y-2 =(x ’ 2 |x ’ 1 |0)RNS(7|5|3) = (Z 2 |Z 1 |0)MRS(5|3) x ’ 2 = (x 2 -x 0 ) p 2 = (1-2) 7 = 6 x ’ 1 = (3-2) 5 = 1 y-2 = (6|1|0)RNS(7|5|3)=(Z 2 |Z 1 |0)MRS(5|3)

30 CSE 24630 Example continued. 3 (See slide #27) then gives (y-x 0 )/P 0 = (y-2)/3 = (x ” 2 |x ” 1 |-)RNS(7|5|3) = (Z 2 |Z 1 )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 = 2 x ” 2 = (5*6) 7 = 2, x ” 1 =(1*2) 5 = 2 (y-2)/3 = (2|2|-)RNS(7|5|3) = (Z 2 |Z 1 )MRS(5)

31 CSE 24631 Ex. Cont. Apply 1 again, Z 1 =x ” 1 =2 gives by 2 (y-x 0 )/P 0 - x ” 1 = (x ”’ 2 |0|-)RNS(7|5|3) = (Z 2 |0)MRS(5) x ”’ 2 =(x ” 2 -2) 7 = (2-2) 7 = 0 (0|0|-)RNS(7|5|3)=(Z 0 |0)MRS(5) By 3 x ”” 2 = (x ”’ 2 *(5 -1 ) 7 ) 7 = 0 = Z 2 Yields final result (0|2|2)MRS(5|3)

32 CSE 24632 Ex. Concluded. Check correctness (0|2|2)MRS(5|3) = 0*5*3+2*3+2 = 8 8 7 = 1, 8 5 = 3, 8 3 = 2 -> (1|3|2)RNS(7|5|3) Correct!  Closing remark / Moral of the examples - “ Inversion is key ”


Download ppt "CSE 246: Computer Arithmetic Algorithms and Hardware Design Instructor: Prof. Chung-Kuan Cheng Winter 2004 Lecture 2."

Similar presentations


Ads by Google