Post on 30-Jan-2017
transcript
CSE 246: Computer Arithmetic Algorithms and Hardware Design
Instructor:Prof. Chung-Kuan Cheng
Fall 2006Lecture 2: Redundant and residue 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)
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
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
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
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
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
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* + -
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
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
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
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
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
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 #
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?
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?
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
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
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
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?
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
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.
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
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
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
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
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.
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
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)
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
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
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”