Everything about Floating-point unit
Part of a computer system
A floating-point unit (FPU), numeric processing unit (NPU), colloquially math coprocessor, is a part of a computer system specially designed to carry out operations on floating-point numbers. Typical operations are addition, subtraction, multiplication, division, and square root. Modern designs generally include a fused multiply-add instruction, which was found to be very common in real-world code. Some FPUs can also perform various transcendental functions such as exponential or trigonometric calculations, but the accuracy can be low, so some systems prefer to compute these functions in software. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Floating-point unitA 5-minute orientation
- Skim a recent paper: A 28-nm 64-kb 31.6-TFLOPS/W Digital-Domain Floating-Point-Computing-Unit and Double-Bit 6T-SRAM Computing-in-Memory Macro for Floating-Point CNNsInfluential work since 2022
- Pick up a classic book: Computer arithmetic and validityThe most-reprinted book on the subject
- Read the landmark paper: Design of the IBM RISC System/6000 floating-point execution unitCited 151 times
- Go sideways: X87A closely related topic
- Go sideways: CoprocessorA closely related topic
📖 Definitions
Noun A microprocessor that performs floating-point arithmetic. In older models of computer the FPU was not integrated into the central processing unit, but rather as a coprocessor if included at all.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Design of the IBM RISC System/6000 floating-point execution unit
The IBM System/360 Model 91: Floating-Point Execution Unit
Energy-Efficient Floating-Point Unit Design
A floating-point genetic algorithm for solving the unit commitment problem
Improved Architectures for a Fused Floating-Point Add-Subtract Unit
Low-Cost Binary128 Floating-Point FMA Unit Design with SIMD Support
Multiple-Mode-Supporting Floating-Point FMA Unit for Deep Learning Processors
A Fused Floating-Point Four-Term Dot Product Unit
🆕 Influential since 2022
A 28-nm 64-kb 31.6-TFLOPS/W Digital-Domain Floating-Point-Computing-Unit and Double-Bit 6T-SRAM Computing-in-Memory Macro for Floating-Point CNNs
Designing Low-Power RISC-V Multicore Processors With a Shared Lightweight Floating Point Unit for IoT Endnodes
FAUST: Design and implementation of a pipelined RISC-V vector floating-point unit
A Low-Cost Floating-Point FMA Unit Supporting Package Operations for HPC-AI Applications
Design of the vector floating-point unit with high area efficiency
📚 Books worth reading
Computer arithmetic and validityUlrich Kulisch · 2008- 📕IEEE standard for binary floating-point arithmeticIEEE Computer Society. Standards Committee, IEEE Standards Board · 1985
Synthesis of arithmetic circuitsJean-Pierre Deschamps · 2005- 📕IEEE standard for binary floating-point arithmetic · 1985
- 📕IEEE standard for binary floating-point arithmetic. · 1985
- 📕Osnovy mashinnoĭ arifmetikiA. M. Shauman · 1979
- 📕Toward a formal verification of a floating-point coprocessor and its composition with a central processing unitJing Pan · 1991
Computer arithmeticEarl E. Swartzlander · 1980
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- X87 x87 is a floating-point-related subset of the x86 architecture instruction set. It originated as an extension of the 8086 instruction set in the form of…
- Coprocessor A coprocessor is a computer processor used to supplement the functions of the primary processor (the CPU). Operations performed by the coprocessor may…
- Intel 8087 The Intel 8087, announced in 1980, was the first floating-point coprocessor for the 8086 line of microprocessors. The purpose of the chip was to speed…
- Microcode In computer architecture, microcode is a layer of low-level control data or instructions used to implement a processor's instruction set architecture or…
- Processor register A processor register is a quickly accessible storage location available to a computer's processor. It is a register, typically consisting of flip-flops…
- X86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by…
- Extended precision Extended precision refers to floating-point number formats that provide greater precision than the basic floating-point formats. Extended-precision formats…
- Central processing unit A central processing unit (CPU), also known as a central processor, main processor, or simply processor, is the primary processor in a given computer.…