Download presentation
Presentation is loading. Please wait.
Published byMaude Miles Modified over 8 years ago
1
Overview of Residue Number System (RNS) for Advanced VLSI Design and VLSI Signal Processing 11-30-2002 NTUEE 吳安宇
2
Outline History Why RNS is needed ? Fundamental concepts in RNS. Conversion between Decimal and Residue. Conventional complex RNS Difficult arithmetic operations Applications
3
History The ancient study of the residue numbering system begins with a verse from a third- centry book, Suan-Ching, by Sun Tzu. We have things of which we do not know the number, If we count them by three, the remainder is 2, If we count them by five, the remainder is 3, If we count them by seven, the remainder is 2, How many things are there?
4
History We commemorate this contribution as the Chinese Remainder Theorem, or CRT. This theorem, as well as RNS, was set forth in the 19th by Carl Friedrich Gauss in his celebrated Disquisitiones Arithmetical.
5
Why RNS? It is a “carry-free” system that performs addition, substraction, and multiplication as parallel operations. FA HAFA
6
Definition The RNS is defined in terms of a set of rela- tively prime moduli. If P denotes the moduli set, then The dynamic range M is
7
Any integer in the residue class Z M has a unique L-tuple representation given by where X i =X mod p i and is called the ith residue. Definition
8
X1X1 0 1 2 0 1 X2X2 0 1 2 3 4 → → → → → → → → → → → → → → → → → → X1X1 2 0 1 2 0 X2X2 0 1 2 3 4 X1X1 1 2 0 1 2 X2X2 0 1 2 3 4 X 0 1 2 3 4 5 6 7 8 9 X 10 11 12 13 14 X Example
9
4 5 6 7 8 9 10 11 0 1 2 3 X → → → → → → → → → → → → → X1X1 0 1 2 0 1 2 0 1 2 0 1 2 X2X2 0 1 2 3 0 1 2 3 0 1 2 3 X3X3 0 1 2 3 4 0 1 2 3 4 0 1 16 17 18 19 20 21 22 23 12 13 14 15 X → → → → → → → → → → → → → X3X3 2 3 4 0 1 2 3 4 0 1 2 3 28 29 30 31 32 33 34 35 24 25 26 27 X → → → → → → → → → → → → → X3X3 4 0 1 2 3 4 0 1 2 3 4 0 40 41 42 43 44 45 46 47 36 37 38 39 X → → → → → → → → → → → → → X3X3 1 2 3 4 0 1 2 3 4 0 1 2 52 53 54 55 56 57 58 59 48 49 50 51 X → → → → → → → → → → → → → X3X3 3 4 0 1 2 3 4 0 1 2 3 4 X1X1 0 1 2 0 1 2 0 1 2 0 1 2 X1X1 0 1 2 0 1 2 0 1 2 0 1 2 X1X1 0 1 2 0 1 2 0 1 2 0 1 2 X1X1 0 1 2 0 1 2 0 1 2 0 1 2 X2X2 0 1 2 3 0 1 2 3 0 1 2 3 X2X2 0 1 2 3 0 1 2 3 0 1 2 3 X2X2 0 1 2 3 0 1 2 3 0 1 2 3 X2X2 0 1 2 3 0 1 2 3 0 1 2 3 Example
10
Signed Representation For signed RNS, any integer in (-M/2, M/2], has a unique RNS L-tuple representation where x i =(X mod p i ) if X>0, and (M-|X|) mod p i otherwise. X1X1 0 1 2 0 X2X2 2 3 0 1 → → → → → → → → → → → → → → → X1X1 1 2 0 1 X2X2 2 3 0 1 X1X1 2 0 1 2 X2X2 2 3 0 1 X -6 -5 -4 -3 -2 0 1 X 2 3 4 5 X
11
Operation
12
7 (1, 3, 2 ) +3 (0, 3, 3 ) 10 (1 mod 3, 6 mod 4, 5 mod 5) = (1,2,0) 7 (1, 3, 2 ) - 3 (0, 3, 3 ) 4 (1 mod 3, 0 mod 4, -1 mod 5) = (1,0,4) 7 (1, 3, 2 ) *3 (0, 3, 3 ) 21 (0 mod 3, 9 mod 4, 6 mod 5) = (0,1,1) Operation (Example)
13
4 5 6 7 8 9 10 11 0 1 2 3 X → → → → → → → → → → → → → X1X1 0 1 2 0 1 2 0 1 2 0 1 2 X2X2 0 1 2 3 0 1 2 3 0 1 2 3 X3X3 0 1 2 3 4 0 1 2 3 4 0 1 16 17 18 19 20 21 22 23 12 13 14 15 X → → → → → → → → → → → → → X3X3 2 3 4 0 1 2 3 4 0 1 2 3 28 29 30 31 32 33 34 35 24 25 26 27 X → → → → → → → → → → → → → X3X3 4 0 1 2 3 4 0 1 2 3 4 0 40 41 42 43 44 45 46 47 36 37 38 39 X → → → → → → → → → → → → → X3X3 1 2 3 4 0 1 2 3 4 0 1 2 52 53 54 55 56 57 58 59 48 49 50 51 X → → → → → → → → → → → → → X3X3 3 4 0 1 2 3 4 0 1 2 3 4 X1X1 0 1 2 0 1 2 0 1 2 0 1 2 X1X1 0 1 2 0 1 2 0 1 2 0 1 2 X1X1 0 1 2 0 1 2 0 1 2 0 1 2 X1X1 0 1 2 0 1 2 0 1 2 0 1 2 X2X2 0 1 2 3 0 1 2 3 0 1 2 3 X2X2 0 1 2 3 0 1 2 3 0 1 2 3 X2X2 0 1 2 3 0 1 2 3 0 1 2 3 X2X2 0 1 2 3 0 1 2 3 0 1 2 3 (3,4,5) Modulo Set
14
Efficient and rapid implementation of the operation (X i o Y i ) mod p i must be found. Only for the case where p i =2^n can be easily implemented in conventional system. RAM or ROM Table Lookup Z i = (X i o Y i ) mod p i X i (n bits) Y i (n bits) Z i (n bits) Conversion
15
To be competitive system, the speed of data acquisition and the accompanying decimal- to-residue conversion must be equally fast. Decimal-to-residue Conversion
16
2 j mod p i j=4 i=1 i=2 j=3j=2j=1j=0 13421 21421 p i -(2 5 mod p i ) i=1 i=2 3 3
17
Generally speaking, the speed limitation of residue-to-decimal conversion is a problem in residue number system. The R/D problem can be solved in one of the following two ways: –Mixed radix conversion (MRC) –Chinese Remainder Theorem (CRT) Residue-to-decimal Conversion
18
Multiplicative Inverse The multiplicative inverse of g of modulo p i is denoted as g i -1 and satisfies Example: P i =5 g g i -1 0 1 1 2 3 3 2 4 4 g P i =6 0 1 1 2 3 4 5 5 g g i -1 P i =7 0 1 1 2 4 3 5 4 2 5 3 6 6
19
Mixed Radix Conversion RNS MRC The MRC representation is given by where v 1 =1, v 2 =p 1, v 3 =p 1 p 2, v 4 =p 1 p 2 p 3, …
20
Mixed radix conversion
21
Mixed Radix Conversion Use nesting subtractions and multiplicative inverse to make sequential conversion.
22
Block Diagram of MRC p 12 -1 p 13 -1 M M p 1L -1 M p 23 -1 M p 2L -1 M p L-1,L -1 M
23
Chinese Remainder Theorem where and s i -1 is the multiplicative inverse of s i mod p i, so that
24
Chinese Remainder Theorem X 1 s 1 -1 mod p 1 X 2 s 2 -1 mod p 2 X L s L -1 mod p L mod M sLsL s2s2 s1s1
25
Chinese Remainder Theorem 1*2mod 3 0*3mod 4 4*3 mod 5 20 15 12 mod 60
26
Conventional Complex RNS A complex number Z is defined to be
27
Difficult Arithmetic Operations Magnitude comparison / Sign detection Division Base extension Scaling / Rounding / Truncation Overflow detection
28
Magnitude Comparison Sign Detection Not a weighted number system. Every digits are equally important. The problem makes the RNS-based signal processors inefficient.
29
Division Blend of nested subtractions and magnitude comparisons, so it is more difficult in the RNS domain. RNS is not closed under division, since the RNS is an integer system. It is an slow, high-overhead operation, and should be avoided in RNS.
30
Base Extension Increase the dynamic range Increase the resolution. R/D and D/R conversions are needed. R/D conversion L - tuple RNS D/R conversion K - tuple RNS Moduli extension
31
Scaling / Rounding / Truncation Prevent dynamic-range overflow. A special form of division. The scaling operation can be easily to implemented when scaling factor is: –Power of two (2 n ) in 2’complement. –Product of one or more of the moduli in RNS.
32
Overflow Detection A special form of magnitude comparison. Can be avoided by using scaling operation during run-time.
33
Applications High-speed systems (**) FPGA-based solution Filtering (FIR, IIR) systems Linear transformations Adaptive systems
34
References [1] A good tutorial paper of RNS: Fred J. Taylor, "Residue Arithmetic: A Tutorial with Examples", IEEE Trans. on Computer, pp. 50~62, May 1984. [2] A good paper collections for RNS: M. A. Soderstrand, W. K. Jenkins, G. A. Jullien, F. J. Taylor (eds.), Residue Number System Arithmetic: Modern Applications in digital Signal Processing, IEEE Press, New York, 1986.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.