AtomFPU Design Specifications

Introduction

Floating point numbers are used in everyday life and has very much importance in calculations. A solid evidence of its importance is visible through the problem ‘Apple’ faced with its famous ‘Integer Basic’. At the end ‘Apple’ had to get help from ‘Microsoft’ to build an OS with floating point support which eventually put ‘Microsoft’ on the lead. A FPU is a coprocessor element which is going to be included inside the main ALU of a processor. By creating a fast and efficient FPU, the total performance of the processor can be significantly enhanced.

Understanding IEEE-754 Single Precision standard

There are two common floating point number representation standards. This FPU is designed for IEEE-754 Single precision standard. It uses 32 bits for represent a floating point number and the bit allocation is shown in figure below.

Addition / Subtraction

To be able to perform addition between two floating point numbers their exponent should be the same. To do this it is decided to shift the smaller number to the right until it has the same exponent of the bigger number. If this number is too small Underflow Exception should be thrown. After addition result will have to be normalized again to get the proper format.

Multiplication / Division

In multiplication and division exponents are added or subtracted and fraction part is multiplied or divided. To perform multiplication of the fraction part a modified booth encoded multiplier is created (For future reuse multiplier is made using parameterized bit length). After calculation output will have to be again normalized just as addition/subtraction.

Attachments