ECE 645: Lecture 1 Number Representation Part 1 Fixed-Radix Unsigned Representations Required Reading B.

Download Report

Transcript ECE 645: Lecture 1 Number Representation Part 1 Fixed-Radix Unsigned Representations Required Reading B.

ECE 645: Lecture 1
Number Representation
Part 1
Fixed-Radix Unsigned Representations
Required Reading
B. Parhami,
Computer Arithmetic: Algorithms and Hardware Design
Chapter 1, Numbers and Arithmetic,
Sections 1.1-1.6
J-P. Deschamps, G. Bioul, G. Sutter,
Synthesis of Arithmetic Circuits: FPGA, ASIC and
Embedded Systems,
Chapter 1, Introduction
Chapter 3.1.1 Weighted systems
Codes for Numbers
• Egyptian
– ~4000 BC
– “Sum of Symbols”
=1
=10
=100
= (34)10
Positional Code for Numbers
• Babylonians
– Positional system
– 2000 BC
– Radix 60
–
=1
= 10
Babylonian Example
1 x 602
20 x 601
= (4,856)10
56 x 600
Positional Code with Zero
• Zero Represented by Space
– Partial solution
– What about trailing zeros?
• Babylonians Introduced New Symbol
–
or
– 4th to 1st Century BC
• Zero Allows Representation of Fractions
– Fractions started with zero
Mixed System
• Roman Numerals
–
–
–
–
Sum of all symbols
I=1 V=5 X=10 L=50 C=100 D=500 M=1000
Difficult to do arithmetic
e.g.,
MCDXLVII
 IX
?
Hindu-Arabic Numeral System
Brahmi numerals, India, 400 BC-400 AD
Evolution of numerals in early Europe
Positional Code Decimal
System
– Documented in the 9th century
– Position of coefficient determines its value
– Coefficient in position is multiplied by radix
(10) raised to the power determined by its
position, e.g.,
4 * 103  8 * 102  5 * 101  6 * 100  4,85610
Migration of Positional
Notation
• ~750 AD
– Zero spread from India to Arabic countries
• ~1250 AD
– Zero spread to Europe
• Importance of Zero
– Ease of arithmetic which leads to improved
commerce
Binary Number System
• Binary
–
–
–
–
–
Positional number system
Two symbols, B = { 0, 1 }
Easily implemented using switches
Easy to implement in electronic circuitry
Algebra invented by George Boole (1815-1864)
allows easy manipulation of symbols
01012  0 * 23 1* 22  0 * 21 1* 20  510
Modern Arithmetic and Number Systems
• Modern number systems used in digital arithmetic can be
broadly classified as:
• Fixed-point number representation systems
• Integers
• Rational numbers of the form x = a/2f, a is an integer, f is a positive integer
• Floating-point number representation systems
• x * bE, where x is a rational number, b the integer base, and E the exponent
• Note that all digital numbers are eventually coded in bits
{0,1} on a computer
12
Encoding Numbers in 4-Bits
16 14 12 10
8
6
4
2
0
2
4
6
8
10
12
14
16
Number
format
Unsigned integers
Signed-magnitude
fixed
point

3 + 1 fixed-point, xxx.x
Signed fraction, .xxx

2’s-compl. fraction, x.xxx
2 + 2 floating-point, s  2 e
e in [2, 1], s in [0, 3]
floating
e
s
point
2 + 2 logarithmic (log = xx.xx)
log x
13
Classification of number systems (1)
Number system
Non-positional
Positional
Fixed-radix
Conventional
Binary
Decimal
Hexadecimal
Mixed-radix
Unconventional
Signed-digit
Non-redundant
Redundant
Classification of number systems (2)
Positional
k 1
X   xi  wi
wi - weight of the digit xi
i  l
Fixed-radix
k 1
X   xi  r
i
r - radix of the number system
i  l
Conventional fixed-radix
k 1
X   xi  r
i  l
r integer, r > 0
i
xi  {0, 1, …, r-1}
Classification of number systems (3)
Unconventional fixed-radix
k 1
X   xi  r
i
xi  {-, …,  }
i  l
Signed-digit
Non-redundant
Redundant
>0  negative digits
number of digits =  +  + 1  r
number of digits =  +  + 1 > r
Fixed-point representation
Integral and fractional part
X = xk-1 xk-2 … x1 x0 . x-1 x-2 … x-l
Integral part
Fractional part
Radix point
• NOT stored in the register
• understood to be in a fixed position
Fixed-Radix
Conventional (Unsigned)
Representations
Fixed-Radix Conventional Number Systems
Fixed Point Number system
Non-positional
Positional
Fixed-radix
Conventional
(unsigned)
Binary
Decimal
Hexadecimal
Mixed-radix
Unconventional (signed)
Signed-digit
Non-redundant
Redundant
19
Range of numbers
Xmin
Number system
Xmax
Decimal
X = (xk-1 xk-2 … x1 x0.x-1 … x-l)10
0
10k - 10-l
0
2k - 2-l
0
rk - r-l
Binary
X = (xk-1 xk-2 … x1 x0.x-1 … x-l)2
Conventional fixed-radix
X = (xk-1 xk-2 … x1 x0.x-1 … x-l)r
Notation:
ulp =
r-l
unit in the least significant position
unit in the last position
Number of digits
Number system
Number of digits in the integer
part necessary to cover the range
0..Xmax
Decimal
k  log10 X max   1 
 log10 ( X max  1)
Binary
k  log2 X max   1 
 log2 ( X max  1)
Conventional
fixed-radix
k  logr X max   1 
 logr ( X max  1)
Radix Conversion
Whole part
Fractional part
u = w.v
=
( xk–1xk–2 . . . x1x0 . x–1x–2 . . . x–l )r
= ( XK–1XK–2 . . . X1X0 . X–1X–2 . . . X–L )R
Old
New
Example: (31)eight = (25)ten
Two methods:
Option 1) Radix conversion, using arithmetic in the old radix r
Convenient when converting from r = 10 or familiar radix
Option 2) Radix conversion, using arithmetic in the new radix R
Convenient when converting to R = 10 or familiar radix
From: Parhami, Computer Arithmetic: Algorithms and Hardware Design
22
Option 1: Arithmetic in old radix r
Converting whole part w:
Repeatedly divide by five
(105)ten = (?)five
Quotient
Remainder
105
0
21
1
4
4
0
Therefore, (105)ten = (410)five
Converting fractional part v:
Repeatedly multiply by five
(105.486)ten = (410.?)five
Whole Part Fraction
.486
2
.430
2
.150
0
.750
3
.750
3
.750
Therefore, (105.486)ten  (410.22033)five
From: Parhami, Computer Arithmetic: Algorithms and Hardware Design
23
Radix Conversion of the Integral Part
R - destination radix
k 1

XI = (xk-1 xk-2 … x1 x0)R =
xi  R i
=
i 0
= ((...((xk-1 R + xk-2) R + xk-3 ) R + … + x2 ) R + x1 ) R + x0
Quotient
(...((xk-1 R + xk-2) R + xk-3 ) R + … + x2 ) R + x1
...((xk-1 R + xk-2) R + xk-3 ) R + … + x2
Remainder
x0
x1
……….
……….
xk-1
xk-2
xk-1
0
Radix Conversion of the Fractional Part
R - destination radix
1
XF = (. x-1 x-2 … x-l+1 x-l)R =

xi  R i
=
i  l
= R-1 (x-1 + R-1 (x-2 + R-1 (…. + R-1 ( x-l+1 + R-1 x-l )….)))
Integer part
x-1
x-2
Fractional part
R-1 (x-2 + R-1 (….. + R-1 ( x-l+1 + R-1 x-l)….))
R-1 (….. + R-1 ( x-l+1 + R-1 x-l)….)
………………………………….
x-l+1
x-l
R-1 x-l
...
Option 2: Arithmetic in new radix R
Converting fractional part v: (410.22033)five = (105.?)ten
(0.22033)five  55
=
(22033)five
=
(1518)ten
1518 / 55
=
1518 / 3125
=
0.48576
Therefore, (410.22033)five = (105.48576)ten
Converting (22033)five = (?)ten
((((2  5) + 2)  5 + 0)  5 + 3)  5 + 3
|-----|
:
:
:
:
10
:
:
:
:
|-----------|
:
:
:
12
:
:
:
|---------------------|
:
:
60
:
:
|-------------------------------|
:
303
:
|-----------------------------------------|
1518
From: Parhami, Computer Arithmetic: Algorithms and Hardware Design
Horner’s
rule or
formula
26
Option 2 cont'd: Horner's rule for fractions
Horner’s rule is also applicable: Proceed from right to
left and use division instead of multiplication
Converting fractional part v:
(0.22033)five = (?)ten
(((((3 / 5) + 3) / 5 + 0) / 5 + 2) / 5 + 2) / 5
|-----|
:
:
:
:
0.6
:
:
:
:
|-----------|
:
:
:
3.6
:
:
:
|---------------------|
:
:
0.72
:
:
|-------------------------------|
:
2.144
:
|-----------------------------------------|
2.4288
|-----------------------------------------------|
0.48576
From: Parhami, Computer Arithmetic: Algorithms and Hardware Design
Horner’s
rule or
formula
27
Radix Conversion Shortcut for r=bg, R=bG
r=bg 
b
 R=bG
4=22  2
 8=23
(2301.302)4 = (10 110 001. 110 010)2 = (261.62)8
• Trick here is to first convert to a number in radix b, then to R
• Cluster in groups of 3 (because 23 = 8) moving away from binary point
28