Brief Overview of Residue Number System (RNS). VLSI Signal Processing 台灣大學電機系 吳安宇. Outline. History Why RNS is needed ? Fundamental concepts in RNS. Conversion between Decimal and Residue. Conventional complex RNS Difficult arithmetic operations Applications. History.
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
Brief Overview ofResidue Number System (RNS)
VLSI Signal Processing
台灣大學電機系
吳安宇
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 fives, the remainder is 3,
If we count them by sevens, the remainder is 2,
How many things are there?
This theorem, as well as RNS, was set forth in the 19th by Carl Friedrich Gauss in his celebrated Disquisitiones Arithmetical.
FA
FA
FA
FA
HA
The dynamic range M is
where Xi=(X mod pi) and is called the ith residue.
X
→
X1
X2
X
→
X1
X2
X
→
X1
X2
0
→
0
0
5
→
2
0
10
→
1
0
1
→
1
1
6
→
0
1
11
→
2
1
2
→
2
2
7
→
1
2
12
→
0
2
3
→
0
3
8
→
2
3
13
→
1
3
4
→
1
4
9
→
0
4
14
→
2
4
X
X
X
X
X
→
→
→
→
→
X1
X1
X1
X1
X1
X2
X2
X2
X2
X2
X3
X3
X3
X3
X3
12
24
0
48
36
→
→
→
→
→
0
0
0
0
0
0
0
0
0
0
2
4
0
1
3
13
49
25
37
1
→
→
→
→
→
1
1
1
1
1
1
1
1
1
1
3
0
1
2
4
26
50
2
38
14
→
→
→
→
→
2
2
2
2
2
2
2
2
2
2
4
1
0
2
3
39
27
3
15
51
→
→
→
→
→
0
0
0
0
0
3
3
3
3
3
4
1
2
0
3
40
52
4
28
16
→
→
→
→
→
1
1
1
1
1
0
0
0
0
0
3
4
2
1
0
17
41
53
5
29
→
→
→
→
→
2
2
2
2
2
1
1
1
1
1
1
0
4
3
2
6
54
42
30
18
→
→
→
→
→
0
0
0
0
0
2
2
2
2
2
4
2
1
3
0
19
7
55
31
43
→
→
→
→
→
1
1
1
1
1
3
3
3
3
3
4
0
3
2
1
44
32
56
8
20
→
→
→
→
→
2
2
2
2
2
0
0
0
0
0
0
2
1
3
4
21
33
45
57
9
→
→
→
→
→
0
0
0
0
0
1
1
1
1
1
3
1
0
2
4
10
46
58
22
34
→
→
→
→
→
1
1
1
1
1
2
2
2
2
2
2
3
1
0
4
35
59
47
11
23
→
→
→
→
→
2
2
2
2
2
3
3
3
3
3
0
4
2
3
1
X
→
X1
X2
X
→
X1
X2
X
→
X1
X2
-6
→
0
2
-2
→
1
2
2
→
2
2
-5
→
1
3
-1
→
2
3
3
→
0
3
-4
→
2
0
0
→
0
0
4
→
1
0
-3
→
0
1
1
→
1
1
5
→
2
1
7(1, 3, 2 )
7(1, 3, 2 )
7(1, 3, 2 )
+3(0, 3, 3 )
- 3(0, 3, 3 )
*3(0, 3, 3 )
10(1 mod 3, 6 mod 4, 5 mod 5) = (1,2,0)
4(1 mod 3, 0 mod 4, -1 mod 5) = (1,0,4)
21(0 mod 3, 9 mod 4, 6 mod 5) = (0,1,1)
Only for the case where pi=2n can be easily implemented in conventional system.
Xi (n bits)
RAM or ROM
Table Lookup
Zi = (Xi o Yi) mod pi
Zi (n bits)
Yi (n bits)
pi-(25mod pi)
2j mod pi
j=4
j=3
j=2
j=1
j=0
i=1
3
i=1
1
3
4
2
1
i=2
3
i=2
2
1
4
2
1
Pi=5
g
0
1
2
3
4
gi-1
1
3
2
4
Pi=6
g
0
1
2
3
4
5
Example:
gi-1
1
5
Pi=7
g
0
1
2
3
4
5
6
gi-1
1
4
5
2
3
6
RNS
MRC
where v1=1, v2=p1, v3=p1p2, v4=p1p2p3, …
Block Diagram of MRC
p12-1
M
p13-1
M
p23-1
M
p1L-1
M
p2L-1
M
pL-1,L-1
M
Chinese Remainder Theorem
where si=M/pi and si-1 is the multiplicative
inverse of si mod pi, so that
Chinese Remainder Theorem
X1s1-1
mod p1
s1
X2s2-1
mod p2
s2
mod M
XL sL-1
mod pL
sL
Chinese Remainder Theorem
1*2
mod 3
20
0*3
mod 4
15
mod 60
4*3
mod 5
12
Conventional Complex RNS
A complex number Z is defined to be
Difficult Arithmetic Operations
Magnitude comparison / Sign detection
Division
Base extension
Scaling / Rounding / Truncation
Overflow detection
The problem makes the RNS-based signal processors inefficient.
RNS is not closed under division, since the RNS is an integer system, it is.
Slow, high-overhead operation and should be avoided in RNS.
L - tuple RNS
K - tuple RNS
Moduli
extension
R/D conversion
D/R conversion
R/D and D/R conversions are needed.