A floating point unit is a functional block of a computer processor that performs floating point arithmetic operations. Also known by the acronym FPU, a floating-point unit can be a physically-separate co-processor as well. An FPU usually accesses data via the same addressing modes as the rest of the processor and generally includes its own registers. A processor uses an FPU to calculate trigonometric, logarithmic and basic floating-point arithmetic functions. It also uses an FPU to load, store and compare numbers in several integer and floating point data types.
Many processors do not include a floating point unit. Most of the microprocessors produced by Intel Corporation and Motorola Incorporated prior to the late 1980s do not include one, for example. Many Reduced Instruction Set Computing (RISC) processors and embedded controllers do not have one either. These chips do include an Arithmetic Logic Unit (ALU) to perform basic integer arithmetic and bitwise logic functions. Floating point math is handled by an external co-processor or a software library, however.
Most processors and software systems implement the Institute of Electrical and Electronics Engineers (IEEE) standard for floating point operations. The IEEE-754 standard was first released in 1985 and expanded in 2008 to include additional data types. It defines several integer and floating point data types, each with its own precision, representation and numeric range. It also defines many arithmetic operations, methods of rounding and handling exceptions like a division by zero. Whether the math is performed by a floating point unit or not, the IEEE floating-point standard guarantees identical results.
Besides addition, subtraction, multiplication and division, a floating point unit can perform many other operations. These often include scaling, square root and logarithmic computations. Sine, cosine and partial tangent trigonometric functions are usually provided as well. Integer and floating point numbers can be compared with the FPU and converted from one precision to another. They can also be rounded in either direction and stored directly to the processor's main memory.
The FPU of a graphics processor may include often-repeated functions common to three-dimensional object rotation or animation. Many embedded controllers are designed with processors optimized for digital signal processing (DSP). These may be used in audio and communications applications and can contain FPUs, which are good at fast Fourier transforms (FFTs), for example. Cryptography processors often include an FPU for high-speed computation of math-heavy encryption algorithms. General multiple-core processors may also include one floating point unit for each regular processor core.