Other meanings of Floating-point unit
Computer Architecture
A floating-point unit (FPU) is a hardware component within a computer's processor that performs arithmetic operations on floating-point numbers, which represent real numbers with a fractional part. Unlike the integer arithmetic logic unit (ALU), an FPU handles operations such as addition, subtraction, multiplication, division, and square root, as well as transcendental functions like sine and logarithm, often through microcode or dedicated circuitry. FPUs are essential for scientific computing, graphics, and any application requiring high precision or a wide dynamic range. They can be integrated into the CPU, as in most modern processors, or exist as a separate coprocessor, historically common in early personal computers.
The first floating-point unit was the IBM 7030 (Stretch) computer, completed in 1961, which featured a dedicated floating-point arithmetic unit to support scientific calculations. Early FPUs were often separate chips, such as the Intel 8087 coprocessor for the 8086/8088 CPUs, introduced in 1980; it was designed to work alongside the CPU to accelerate floating-point operations, which were otherwise performed in software1. The 8087 became the basis for the x87 instruction set architecture, which later integrated into CPUs starting with the Intel 80486 in 1989. Since then, FPUs have become standard components in virtually all general-purpose processors, including those in smartphones and embedded systems.
An FPU typically consists of a set of registers, a control unit, and execution units for different operations. It operates on floating-point numbers conforming to the IEEE 754 standard, which defines formats for single (32-bit), double (64-bit), and extended (80-bit) precision, as well as rounding rules and exception handling2. The FPU's execution units may include a fused multiply-add (FMA) unit, which performs a multiplication and addition in one step, improving speed and accuracy. Modern FPUs are pipelined, allowing multiple operations to be in progress simultaneously, and they may support vectorized operations for SIMD (Single Instruction, Multiple Data) processing, as seen in Intel's SSE and AVX extensions.
FPUs are critical in domains requiring high numerical precision and performance, such as scientific simulations, 3D graphics rendering, machine learning, and financial modeling. In high-performance computing, the FPU's throughput is often measured in FLOPS (floating-point operations per second), and systems like supercomputers are ranked by their peak FLOPS3. Graphics processing units (GPUs) contain massive arrays of FPUs optimized for parallel floating-point operations, enabling real-time graphics and deep learning training. The performance of an FPU is influenced by factors such as clock speed, pipeline depth, and the efficiency of the FMA unit, with modern CPUs achieving billions of FLOPS.
One lesser-known aspect is the existence of software FPUs, such as the IEEE 754 emulation libraries used in early computers without hardware support, which were significantly slower but allowed portability. Another is the use of FPUs in space exploration: the Apollo Guidance Computer used a software floating-point package due to hardware constraints. Additionally, some processors have implemented floating-point in unusual ways, like the MOS Technology 6502's lack of an FPU, which led to the use of separate math coprocessors in early personal computers. The term "floating-point unit" is sometimes used loosely to include vector units, but strictly it refers to scalar operations. Finally, the IEEE 754 standard was influenced by the Intel 8087's design, making it a de facto standard before formalization.
This article focuses on the hardware component as defined.
Help improve the encyclopedia. Reports go straight to the site manager.