Choosing RNS Moduli Assume we wish to represent 100,000 10 Values Standard Binary  lg 2 (100,000) 10  =  16.6096 10  =17 bits RNS(13|11|7|5|3|2), Dynamic.

Slides:



Advertisements
Similar presentations
CENG536 Computer Engineering department Çankaya University.
Advertisements

HEXADECIMAL NUMBERS Code
CSE 246: Computer Arithmetic Algorithms and Hardware Design Instructor: Prof. Chung-Kuan Cheng Winter 2004 Lecture 2.
Radix Conversion Given a value X represented in source system with radix  s, represent the same number in a destination system with radix  d Consider.
CENG536 Computer Engineering Department Çankaya University.
UNIVERSITY OF MASSACHUSETTS Dept
2-1 Computer Organization Part Fixed Point Numbers Using only two digits of precision for signed base 10 numbers, the range (interval between lowest.
CSCE 211: Digital Logic Design Chin-Tser Huang University of South Carolina.
Multiplication.
Fixed-Point Negative Numbers Two Common Forms: 1.Signed-Magnitude Form 2.Complement Forms Signed-Magnitude Numbers First Digit is Sign Digit, Remaining.
NEGATIVE BINARY NUMBER – Digital Circuit 1 Choopan Rattanapoka.
3-1 Chapter 3 - Arithmetic Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring Computer Architecture.
Mathematics of Cryptography Part I: Modular Arithmetic
Coping With the Carry Problem 1. Limit Carry to Small Number of Bits Hybrid Redundant Residue Number Systems 2.Detect the End of Propagation Rather Than.
Data Representation – Binary Numbers
General Fixed Radix Number Systems Nonredundant Positive radix, ß n digits in digit set Vector:
Number Systems Part 2 Numerical Overflow Right and Left Shifts Storage Methods Subtraction Ranges.
3-1 Chapter 3 - Arithmetic Principles of Computer Architecture by M. Murdocca and V. Heuring © 1999 M. Murdocca and V. Heuring Principles of Computer Architecture.
Click to edit Master title style Click to edit Master text styles –Second level Third level –Fourth level »Fifth level 1 Today’s Topics How information.
IT253: Computer Organization
Chapter 2 Number Systems + Codes. Overview Objective: To use positional number systems To convert decimals to binary integers To convert binary integers.
Number Systems. Why binary numbers? Digital systems process information in binary form. That is using 0s and 1s (LOW and HIGH, 0v and 5v). Digital designer.
Information Representation. Digital Hardware Systems Digital Systems Digital vs. Analog Waveforms Analog: values vary over a broad range continuously.
Reconfigurable Computing - Multipliers: Options in Circuit Design John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on.
46 Number Systems Problem: Implement simple pocket calculator Need: Display, adders & subtractors, inputs Display: Seven segment displays Inputs: Switches.
مدار منطقي مظفر بگ محمدي Course Structure & Grading Homework: 25% Midterm: 30% Final:50% There is 5% extra! ( =105!) Textbook:
Digital Kommunikationselektronik TNE027 Lecture 2 1 FA x n –1 c n c n1- y n1– s n1– FA x 1 c 2 y 1 s 1 c 1 x 0 y 0 s 0 c 0 MSB positionLSB position Ripple-Carry.
Basic Concepts in Number Theory Background for Random Number Generation 1.For any pair of integers n and m, m  0, there exists a unique pair of integers.
Computer Arithmetic and the Arithmetic Unit Lesson 2 - Ioan Despi.
Integer Representation for People Computer Organization and Assembly Language: Module 3.
Cosc 2150: Computer Organization Chapter 2 Part 1 Integers addition and subtraction.
ECE 8053 Introduction to Computer Arithmetic (Website: Course & Text Content: Part 1: Number Representation.
Mohammad Reza Najafi Main Ref: Computer Arithmetic Algorithms and Hardware Designs (Behrooz Parhami) Spring 2010 Class presentation for the course: “Custom.
Topic 1 – Number Systems. What is a Number System? A number system consists of an ordered set of symbols (digits) with relations defined for addition,
EEL 3801C EEL 3801 Part I Computing Basics. EEL 3801C Data Representation Digital computers are binary in nature. They operate only on 0’s and 1’s. Everything.
AEEE2031 Data Representation and Numbering Systems.
1 Review on Number Systems Decimal, Binary, and Hexadecimal.
EE2174: Digital Logic and Lab Professor Shiyan Hu Department of Electrical and Computer Engineering Michigan Technological University CHAPTER 8 Arithmetic.
Sep 29, 2004Subtraction (lvk)1 Negative Numbers and Subtraction The adders we designed can add only non-negative numbers – If we can represent negative.
Unconventional Fixed-Radix Number Systems
69 Decimal (Base 10) Numbers n Positional system - each digit position has a value n 2534 = 2*1, * *10 + 4*1 n Alternate view: Digit position.
1 Number Systems Decimal, Binary, and Hexadecimal.
Overview of Residue Number System (RNS) for Advanced VLSI Design and VLSI Signal Processing NTUEE 吳安宇.
Number Representation (Part 2) Computer Architecture (Fall 2006)
Reconfigurable Computing - Options in Circuit Design John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on Cockburn Sound,
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU Brief Overview of Residue Number System (RNS) VLSI Signal Processing 台灣大學電機系 吳安宇.
Reconfigurable Computing - Options in Circuit Design John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on Cockburn Sound,
DATA REPRESENTATION Data Types Complements Fixed Point Representations
Number Systems. The position of each digit in a weighted number system is assigned a weight based on the base or radix of the system. The radix of decimal.
Binary Numbers The arithmetic used by computers differs in some ways from that used by people. Computers perform operations on numbers with finite and.
COSC2410: LAB 2 BINARY ARITHMETIC SIGNED NUMBERS FLOATING POINT REPRESENTATION BOOLEAN ALGEBRA 1.
MATH Lesson 2 Binary arithmetic.
Unit 1 Introduction Number Systems and Conversion.
Cosc 2150: Computer Organization
Addition and Subtraction
Negative Numbers and Subtraction
Digital Logic & Design Dr. Waseem Ikram Lecture 02.
Digital Systems and Number Systems
Overview of Residue Number System (RNS) for Advanced VLSI Design and VLSI Signal Processing NTUEE 吳安宇.
Chapter 3 Data Representation
CSE 575 Computer Arithmetic Spring 2003 Mary Jane Irwin (www. cse. psu
CHAPTER 4: Representing Integer Data
Reconfigurable Computing - Options in Circuit Design
Decimal System The radix or base of a number system determines
Brief Overview of Residue Number System (RNS)
Unconventional Fixed-Radix Number Systems
Data Representation in Computer Systems
Subtraction The arithmetic we did so far was limited to unsigned (positive) integers. Today we’ll consider negative numbers and subtraction. The main problem.
Digital Logic & Design Lecture 02.
Digital Systems and Binary Numbers
Presentation transcript:

Choosing RNS Moduli Assume we wish to represent 100, Values Standard Binary  lg 2 (100,000) 10  =   =17 bits RNS(13|11|7|5|3|2), Dynamic Range  M=30, –Insufficient Dynamic Range –Maximum Digit Width = 4 bits, Total = 17 bits RNS(17|13|11|7|5|3|2), Dynamic Range  M=510, – Dynamic Range 5.1 Times Too Large – Maximum Digit Width = 5 bits, Total = 22 bits Adding More Prime Moduli is Inefficient

Choosing RNS Moduli Remove m i =5 From RNS(17|13|11|7|5|3|2) RNS(17|13|11|7|3|2), Dynamic Range  M=102, Still Have Relatively Prime Moduli – Maximum Digit Width = 5 bits, Total = 19 bits – 1 5-bit, 2 4-bit, 1 3-bit, 1 2-bit and 1 1-bit Modulo Units Required Maximum Delay 5-bit Carry-Propagate Can Combine (3,7) and (2,13) Moduli With no Speed Penalty RNS(26|21|17|11), Dynamic Range  M=102, – Maximum Digit Width = 5 bits, Total = 19 bits – 3 5-bit and 1 4-bit Modulo Units Required

Relatively Prime Values Powers of Smaller Primes are Relatively Prime Example gcd(3 2,2 2 )=1 But gcd(3 2,3)=3 – Can REPLACE a Modulus With its’ Power – Try Use Sequence of SMALLEST Valued Moduli RNS(2 2 |3), Dynamic Range  M=12 10 RNS(3 2 |2 3 |7|5), Dynamic Range  M=2, RNS(11|3 2 |2 3 |7|5), Dynamic Range  M=27, RNS(13|11|3 2 |2 3 |7|5), Dynamic Range  M=360, – Maximum Digit Width = 4 bits, Total = 21 bits – Dynamic Range 3.6 times that Needed

Relatively Prime Values RNS(13|11|3 2 |2 3 |7|5), Dynamic Range  M=360, – Maximum Digit Width = 4 bits, Total = 21 bits – Dynamic Range 3.6 times that Needed Reduce the Above by Factor of 3 Replace 3 2 with 3 and Combine 3 and 5 to Get 15 RNS(15|13|11 |2 3 |7), Dynamic Range  M=120, – Maximum Digit Width = 4 bits, Total = 18 bits – Dynamic Range 1.2 times that Needed Using This Strategy Can Generally Find the “Best” Moduli in Terms of Speed and Representation Efficiency

Moduli Choice for Simple Arithmetic Unit Design Simple Units Also Lead to Speed and Cost Benefits Modulo-ADD,SUBTRACT, MULTIPLY Units Simple to Design if m i =2 ai OR 2 ai -1 Power of 2 Moduli Lead to Simple Design – Standard a-bit Binary Adder – Example: Use 16 Instead of 13 – Exception in Case of Lookup Table Implementation Power of 2 a -1 Moduli Lead to Simple Design – Standard a-bit Binary Adder with End-around Carry – Referred to as “Low-cost” Moduli

RNS Low-Cost Moduli Theorem: A sufficient condition for 2 a -1 and 2 b -1 to be a relatively prime pair is that a and b are relatively prime. Any List of Relatively Prime Numbers: a k-2 > a k-1 >...>a 1 >a 0 Can be Used as a BASIS of k-modulus RNS: RNS(2 ak-2 |2 ak-2 -1|...|2 a1 -1|2 a0 -1) Widest Residues (Longest Carry-chain) is a k-2 -bit Values

Low-Cost Moduli Example Consider the Example From Earlier X=[0,100,000] Choosing the Moduli From Smallest to Largest: RNS(2 3 | | )Basis:3, 2M= RNS(2 4 | | )Basis:4, 3M= RNS(2 5 | | | )Basis:5, 3, 2M=20, RNS(2 5 | | | )Basis:5, 4, 3M=104, Can’t Include 2 and 4 in Same Basis Set, gcd(2,4)=2

Low-Cost Moduli Example RNS(2 5 | | | )Basis:5, 4, 3M=104, = RNS(32 | 31 | 15| 7) Requires =17 bits Requires 2 5-bit, 1 4-bit and 1 3-bit Module 4 RNS Digits Efficiency = (100,001/104,160)=  100% Comparing With Unrestricted Moduli: RNS(2 5 | | | )17 bits M=104, bit Carry-ripple but Simpler Circuit, Fewer Digits RNS( 15|13|11 |2 3 |7 )18 bits M=120, bit Carry-ripple, 1 Extra Digit

Encoding and Decoding Advantages of Alternative Number Systems Must Not be Outweighed By Conversions to/from the System Encoding From Fixed Positional System to RNS Easily Accomplished Using a Table-Lookup and Modulo Addition Circuits

Encoding with Lookup Table Conversion of Signed-Magnitude or 2’s Complement Accomplished by Converting Magnitude and Taking RNS Complement Consider the Following Identity: Idea is to Compute a Table of All Terms and Store in a Table for all i, j Then Add

Example Lookup Table Use Default RNS=(8|7|5|3) For m i =8 We Can Use 3 LSbs of Value

Example Encoding

RNS to Mixed Radix Form CRT States That a Mixed-Radix Number System (MRS) is Associated with any RNS MRS is k-digit Weighted Positional Number System (m k-1 |m k-2 |...|m 2 |m 1 |m 0 ) MRS Weights are Products: (m k-2...m 2 m 1 m 0,...,m 2 m 1 m 0, m 1 m 0, m 0,1) MRS Digit Sets in Each of k Positions: [0,m k-1 -1],...,[0,m 2 -1],[0,m 1 -1],[m 0 -1] MRS Digits in Same Range as RNS Digits

RNS to MRS Example Example Position Weights MRS (8|7|5|3) (7)(5)(3)=105, (5)(3)=15, 3, 1 (0|3|1|0) MRS(8|7|5|3) =(0)(105)+(3)(15)+(1)(3)+(0)(1)=48 10 RNS to MRS Conversion Requires Finding the z i that Correspond to the y i in:

RNS to MRS Conversion From MRS Definition we Have: Easy to See that z 0 = y 0, Subtracting This Value From RNS and MRS Values Results in:

RNS to MRS Conversion (cont) Thus, if We Can Divide by m 0, We Have an Iterative Approach for Conversion Dividing y' (a Multiple of m 0 ) by m 0 is SCALING Easier Than Normal RNS Division Accomplished by Multiplying by Muliplicative Inverse of m 0 Next, Divide Both Representations by m 0 :

Multiplicative Inverses Multiplicative Inverse is a Value When Multiplied by Given Quantity Yields a Product of 1 Example Multiplicative Inverses of 3 Relative to m i =8, 7, 5: Thus, Multiplicative Inverses are 3, 5 and 2 Can Build a Lookup Table Circuit to Store Inverses

CRT LUT

Multiplicative Inverses Example Divide the Number Y' = (0|6|3|0) RNS by 3 Accomplish Through Multiplication by (3|5|2|-) RNS

RNS/MRS Conversion Example Convert Y=(0|6|3|0) RNS to MRS z 0 =y 0 =0 Divide by 3 Now, We Have z 1 =1, Subtract by 1 and Divide by 5

RNS/MRS Conversion Consider Conversion of (3|2|4|2) RNS from RNS(8|7|5|3) to Decimal Need to Determine Values of (1|0|0|0) RNS, (0|1|0|0) RNS, (0|0|1|0) RNS and (0|0|0|1) RNS

RNS/MRS Conversion From Definition of RNS, Positions with 0 are Multiples of RNS(8|7|5|3) and Position with 1 are m i =1

Chinese Remainder Theorem How Did We Find w 3 = (1|0|0|0) RNS = 105? Since Digits in 7, 5, 3 Places are 0, w 3 Must be a Multiple of (7)(5)(3)=105 Must Pick the Multiple of 105 Such That its Residue With Respect to 8 is 1 Accomplished by Multiplying 105 by its’ Multiplicative Inverse with Respect to 8 This Process is Formalized in Chinese Remainder Theorem

Chinese Remainder Theorem THEOREM: Chinese Remainder Theorem (CRT) The magnitude of an RNS number can be obtained from the CRT formula: where, by definition, M i = M/m i and  I = mi is the multiplicative inverse of M i with respect to m i.

Chinese Remainder Theorem Can Avoid Multiplications in Conversion Process by Storing mi > M in a Table Example Table Given on page 64 of Textbook