Download presentation
Presentation is loading. Please wait.
Published byIris Weaver Modified over 9 years ago
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 ”
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.