Floating Point Hardware and Algorithms
Download
Report
Transcript Floating Point Hardware and Algorithms
Floating Point Hardware and
Algorithms
1
CH.3
4/2/2016
Review
2
4-bit multiplier using 4-bit adder
32-bit multiplier using 32 bit adder + 32
multiplicand, 32-bit multiplier, 64-bit product, and a
control unit this is a sequential multiplier
Improve performance. How?
What is performance? Define performance. Speed, flops,
power consumption, etc.
Improve performance through hardware optimization;
Improve performance through better algorithms
Example multiplier
Example: multiplier
Improve performance through better data representation.
4/2/2016
Floating point numbers
3
Why do we need them?
To represent very large number and very small number.
To represent a larger range of number with a given size
in bits.
Lets consider a 4 bit container
Lets consider a 8 bit container
Now lets look at some data sizes,
An astronautical unit (Au)is the distance between the earth and the
sun in meters.
150,000,000,000 meters
Size of Helium atom: 1 angstrom: 10-10 meters
See more details on units of measurement here
4/2/2016
FP Representation
4
S
Exponent
Fraction
Value = (-1)S X
F
X2E
32 bit single precision
64 bit double precision
On to IEEE 754 format
4/2/2016
Nothing is simple (IEEE 754 not yet)
5
Consider the representation of real number.
Eg.: -56.731 or -0.4539
Lets see how we can go from this human readable
form to IEEE 754
Goals: you want to represent as large a range as possible
You want to include features that will optimize processing
Exponent, fraction, sign of exponent, sign of fraction
-56.731 or -0.4539 -0.56731 X 102 -0.4539 X 100
0
2
1
56731
4/2/2016
Binary Representation
6
Now lets look at binary representation
Eg. 0.00001010 X 23
-0.0000000 X 2-4
How will you add these numbers?
How will you multiply these?
When you answer these questions, you find that it
will help to have the numbers in (i) fractional form,
(ii) normalized, and (iii) exponents mapped to a
positive range by adding a bias.
Also it is possible to represent a larger range by
implying the leading 1 in the normalized fraction and
a single zero.
4/2/2016
IEE754 Format
7
A floating point number will be represented by a
normalized fraction with implied leading 1, biased
exponent mapped onto a positive range (no sign
needed) and only sign bit is for the entire number.
In other words:
Fp = (S, normalized fraction, biased E) is equivalent
(-1)S X (1 + fraction) X 2 (E-bias)
Lets look at some examples.
4/2/2016
Floating Point Operation: Addition
8
Now lets look at floating point arithmetic unit. We
will examine only addition.
4/2/2016
FP Addition and Multiplication
9
Components: operands, ALU, control, comparison,
shifters, normalize, round
Control
ALUs
4/2/2016