Due to issues with conventional number systems (binary), such as the carry propagation issue, which reduces the performance of hardware computing systems, residue number systems (RNS) have gained popularity. Residue to binary conversion speed and complexity, as well as the speed of the internal RNS arithmetic unit, all affect how well a residue number system (RNS) performs. We have included a number of studies on the recognition of RNS Number Systems and Residue to Binary Converter Systems for various moduli sets in this paper. Additionally, we implemented a model and calculated the value of LUT’S, Slices and other components within it.
Introduction
I. INTRODUCTION
A unique and unweighted arithmetic number representation is the residue number system (RNS). A collection of co-prime integers is used to represent numbers that fall inside a specific dynamic range. It uses a carry-free mechanism for its mathematical representation, RNS. This suggests that there won't be any carry that spreads among the bits of the same digit. This resulted in an arithmetic form that is computationally quick since carry need not be propagated across multiple digits.[1]
This crucial RNS characteristic is only applicable to addition, subtraction, and multiplication. Other crucial function, such as the conversion of residue to base two system, sign analogy, scaling, etc. require more time than equivalent operations in base two arithmetic.[2] Although RNS is not majorly used in general-purpose processors, application-specific processors that primarily rely on basic operations like add, subtract and multiply can benefit from RNS's carry-free characteristic. [3][4]
As a result, RNS has been effectively employed in a number of high-speed computation-required applications, including communication systems, digital signal and image processing, digital sweep oscillators, digital filters, embedded systems, parallel DNA calculations, and cryptographic systems. RNS has gained appeal in new applications including deep neural networks, memory processing, efficient video coding, and current cryptosystems in order to enhance the value of DSPs.[5][6]
The crucial requirements that make RNS a feasible choice to integrate demanding applications in embedded systems and Internet of Things Devices are to improve performance, reduce power consumption, and increase dependability.[7]
To have more successful RNS-based execution of such applications, they must have sufficient parallelism and dynamic range. Class-1 and Class-2 are the two basic subcategories of parallelism. One modulus in Class-1 must be a power of 2, while the multiplication of the other two moduli should be a Mersenne number. With an extra modulus of m4, the class-2 is a kind of a parallel extension of a kind of Class-1.[8][9] It is not necessary that multiplying all the moduli of class-2 RNS will give a Mersenne number. Despite its many benefits, the reverse converter's complicated design results from the inter-modular calculations it uses. The primary constituents of RNS based processors are the base two to RNS converter, modulo arithmetic units, and reverse converters. The reverse converter has a complicated, non-modular construction compared to other components.[10] Its design needs to be given more consideration in order to avoid sluggish performance and jeopardizing the advantages of the RNS number system.
The performance of the planned reverse converter is affected by both the properties of the selected moduli set and conversion algorithm. As a result, many moduli sets have been created, and the performance of the RNS depends heavily on the hardware choice.
II. SELECTION OF MODULI SET
The choice of the moduli set in the Residue Number System (RNS) is an important factor that affects the efficiency and accuracy of arithmetic operations. Here are some properties of the moduli set in RNS:
Coprimality: The moduli in the RNS moduli set should be pairwise coprime (i.e., they should have no common factors other than 1). This property ensures that every residue combination corresponds to a unique integer, which is essential for accurate arithmetic operations.
Large Moduli: larger moduli in the moduli set allow for larger representable integers, which is desirable in many applications. However, larger moduli also require more complex arithmetic operations and larger storage requirements.
Prime Moduli: Prime moduli are often preferred in RNS because they offer better properties for arithmetic operations. For example, addition and subtraction operations in RNS with prime moduli can be performed using simple bitwise operations.
Balanced Moduli: A balanced moduli set consists of moduli that are close in value to each other. This property can help in significant reduction of the residues dynamic range. This will also help to streamline the arithmetic operations.
Reduced Moduli Set: A reduced moduli set consists of a subset of the original moduli set that can represent the same range of integers. A reduced moduli set can improve the efficiency of arithmetic operations by reducing the number of moduli required and the complexity of modular arithmetic.
Overall, a trade-off between accuracy, efficiency, and complexity must be taken into account when selecting the moduli set values in RNS which depends over the application's individual needs.
III. METHODS for RNS to BASE-2 CONVERSIONS
If we have to metamorphose a number from Residue Number System (RNS) to base two (Binary) system, the following steps need to be performed: -
Determine the RNS moduli set: In RNS, the number is represented in terms of residues modulo a set of coprime integers. For example, if we have moduli set {2, 3, 5}, then the RNS depiction of a number X would be (X mod 2, X mod 3, X mod 5).
Compute the product of all moduli in the moduli set. This product is denoted by M.
Compute the inverse of each modulus with respect to M using the Extended Euclidean Algorithm. The inverse of modulus mi with respect to M is denoted by Mi.
Multiply each residue in the RNS representation by its corresponding Mi value.
Add all the products obtained in step 4.
The sum obtained in step 5 is the binary equivalent of the original number.
Let's take an example to illustrate the conversion process from RNS to Binary system:
Suppose we have a number in RNS with moduli set {2, 3, 5}. The RNS depiction of the number is (1, 2, 3).
Compute the product of all moduli: M = 2 x 3 x 5 = 30
Compute the inverse of each modulus with respect to M using the Extended Euclidean Algorithm:
Inverse of 2 with respect to 30: 2 x 15 = 1 (mod 30), so Mi = 15
Inverse of 3 with respect to 30: 3 x 10 = 1 (mod 30), so Mi = 10
Inverse of 5 with respect to 30: 5 x 6 = 1 (mod 30), so Mi = 6
Multiply each residue by its corresponding Mi value:
1 x 15 = 15
2 x 10 = 20
3 x 6 = 18
Add all the products obtained in step 3: 15 + 20 + 18 = 53
The sum obtained in step 4 is the binary equivalent of the original number. Converting 53 to binary, we get 110101.
Therefore, the RNS representation (1, 2, 3) is equivalent to the binary number 110101.
IV. LITERATURE SURVEY
[10] An innovative approach for the implementation of modulo based operations which are required for CRT was provided in this work. We may identify the multiple of the modulus that must be deducted by including a product with 2k of the items in the summation and afterwards only examine the k number of bits which are least significant for us. The technique is also used with adder tree-based CRT systems, within which the aggregate results are reckoned with the help of a variety of dispersed structures. Regarding speed and space occupancy, the resulting architecture seems to be highly appealing. A 32-bit CRT architecture is currently being developed for extremely fast DSP applications. ES2 CMOS 0.7 p technology is being used to create the converter.
Conclusion
The Residue Number System (RNS)\'s intrinsic parallelism and modular arithmetic capabilities are extremely advantageous for the development of application-specific digital signal processors (DSP). Along with providing value to DSPs, RNS is becoming more and more popular in the construction of cutting-edge applications like deep neural networks, high efficiency video coding, contemporary cryptosystems, and memory processing [6]. RNS has several applications in various fields, and its advantages in terms of speed and efficiency make it a useful tool in many applications. RNS is a strong contender for integrating a variety of applications which requires higher amount of computation into embedded systems and IOTdevices by enhancing performance, reducing power consumption, and also improving dependability. This paper outlines a variety of methods for successfully converting the residue number system to base two number systems.