CH.3 Floating Point Hardware and Algorithms 3/10/2016 1
Review 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; Example multiplier Improve performance through better algorithms Example: multiplier Improve performance through better data representation. 3/10/2016 2
Floating point numbers 3/10/ 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: meters See more details on units of measurement hereunits of measurement here
FP Representation 3/10/ SExponentFraction Value = (-1) S X F X 2 E 32 bit single precision 64 bit double precision On to IEEE 754 format
Nothing is simple (IEEE 754 not yet) Consider the representation of real number. Eg.: or 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 or X X /10/
Binary Representation Now lets look at binary representation Eg X 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. 3/10/2016 6
IEE754 Format 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. 3/10/2016 7
Floating Point Operation: Addition Now lets look at floating point arithmetic unit. We will examine only addition. 3/10/2016 8
FP Addition and Multiplication 3/10/ Components: operands, ALU, control, comparison, shifters, normalize, round Control ALUs