 Floatingpoint unit

A floatingpoint unit (FPU, colloquially a 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. Some systems (particularly older, microcodebased architectures) can also perform various transcendental functions such as exponential or trigonometric calculations, though in most modern processors these are done with software library routines.
In most modern general purpose computer architectures, one or more FPUs are integrated with the CPU; however many embedded processors, especially older designs, do not have hardware support for floatingpoint operations.
In the past, some systems have implemented floating point via a coprocessor rather than as an integrated unit; in the microcomputer era, this was generally a single integrated circuit, while in older systems it could be an entire circuit board or a cabinet.
Not all computer architectures have a hardware FPU. In the absence of an FPU, many FPU functions can be emulated, which saves the added hardware cost of an FPU but is significantly slower. Emulation can be implemented on any of several levels: in the CPU as microcode, as an operating system function, or in user space code.
In most modern computer architectures, there is some division of floatingpoint operations from integer operations. This division varies significantly by architecture; some, like the Intel x86 have dedicated floatingpoint registers, while some take it as far as independent clocking schemes.
Floatingpoint operations are often pipelined. In earlier superscalar architectures without general outoforder execution, floatingpoint operations were sometimes pipelined separately from integer operations. Since the early and mid1990s, many microprocessors for desktops and servers have more than one FPU.
When a CPU is executing a program that calls for a floatingpoint operation, there are three ways to carry it out:
 A floatingpoint unit emulator (a floatingpoint library)
 Addon FPU
 Integrated FPU
Contents
Floatingpoint library
Some floatingpoint hardware only supports the simplest operations—addition, subtraction, and multiplication. But even the most complex floatingpoint hardware has a finite number of operations it can support—for example, none of them directly support arbitraryprecision arithmetic.
When a CPU is executing a program that calls for a floatingpoint operation not directly supported by the hardware, the CPU uses a series of simpler floatingpoint operations. In systems without any floatingpoint hardware, the CPU emulates it using a series of simpler fixedpoint arithmetic operations that run on the integer arithmetic logic unit.
The software that lists the necessary series of operations to emulate floatingpoint operations is often packaged in a floatingpoint library.
Integrated FPUs
In some cases, FPUs may be specialized, and divided between simpler floatingpoint operations (mainly addition and multiplication) and more complicated operations, like division. In some cases, only the simple operations may be implemented in hardware and/or microcode, while the more complex operations are implemented as machine code routines (i.e. written in assembly language or a compiled high level language).
In some current architectures, the FPU functionality is combined with units to perform SIMD computation; an example of this is the replacement of the x87 instructions set with SSE instruction set in the x8664 architecture used in newer Intel and AMD processors.
Addon FPUs
Main article: CoprocessorIn the 1980s, it was common in IBM PC/compatible microcomputers for the FPU to be entirely separate from the CPU, and typically sold as an optional addon. It would only be purchased if needed to speed up or enable mathintensive programs.
The IBM PC, XT, and most compatibles based on the 8088 or 8086 had a socket for the optional 8087 coprocessor. The AT and 80286based systems were generally socketed for the 80287, and 80386/80386SX based machines for the 80387 and 80387SX respectively, although early ones were socketed for the 80287, since the 80387 did not exist yet.
Starting with the 80486, in x86 chips the floatingpoint unit was integrated with the CPU, something true for almost all later x86architecture processors. One notable exception is the 80486SX; it was also unusual in that no actual coprocessor was available – the 80487 was a full CPU with an integrated FPU; when installed, the original 80486SX would be disabled.
In addition to the Intel x87 series, several other companies manufactured coprocessors for the x86 series. These included Cyrix which marketed its FasMath series as higher performance but fully x87 compatible, and Weitek which offered a highperformance but not fully x87 compatible series of coprocessors.
In addition to the Intel architectures, FPUs as coprocessors were available for the Motorola 68000 family line. These FPUs, the 68881 and 68882, were common in Motorola 68020/68030based workstations like the Sun 3 series. They were also commonly added to higherend models of Apple Macintosh and Commodore Amiga series, but unlike IBM PCcompatible systems, sockets for adding the coprocessor were not as common in lower end systems. With the 68040, Motorola integrated the FPU and CPU, but like the x86 series, a lower cost 68LC040 without an integrated FPU was also available.
Also, there are addon FPUs coprocessor units for microcontroller units (MCUs/µCs)/singleboard computer (SBCs)' which serve to provide floatingpoint arithmetic capability in systems that might not otherwise possess said functionality. The difference in these types of FPU coprocessors, when compared to more traditional floatingpoint coprocessors such as the 80x87 series, is that these addon FPUs are hostprocessorindependent, possess their own programming requirements, and are often provided with their own integrated development environments (IDE)s.
See also
 ALU
 Execution unit
 IEEE floatingpoint standard (also known as IEEE 754)
 IBM Floating Point Architecture
References
 Raymond Filiatreault (2003). "SIMPLY FPU". http://www.website.masmforum.com/tutorials/fptute/index.html.
CPU technologies Architecture Parallelism PipelineLevelThreadsTypes Components Arithmetic logic unit (ALU) · Barrel shifter · Floatingpoint unit (FPU) · Backside bus · Multiplexer · Demultiplexer · Registers · Memory management unit (MMU) · Translation lookaside buffer (TLB) · Cache · Register file · Microcode · Control unit · Clock ratePower management Categories: Computer arithmetic
Wikimedia Foundation. 2010.
Look at other dictionaries:
Floating Point Unit — Floating Point Unit, FPU … UniversalLexikon
Floating point unit — A floating point unit (FPU) 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. Some systems (particularly… … Wikipedia
Floating Point Unit — 80287, FPU einer 80286 CPU mit 6 MHz. Gleitkommaeinheit ist ein Begriff aus der Computertechnik und bezeichnet einen speziellen Prozessor, der mathematische Funktionen oder Gleitkommazahlen verarbeitet. Bei vielen modernen CPUs ist die FPU als… … Deutsch Wikipedia
floatingpoint unit — 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. See Also: central processing unit, execution… … Wiktionary
Floating Point Unit — processing unit which calculates high level mathematical operations (Computers) … English contemporary dictionary
FloatingPoint Operations Per Second — (FLOPS) (opérations à virgule flottante par seconde) est une mesure commune de repère pour évaluer la vitesse des microprocesseurs. Les opérations en virgule flottante incluent toutes les opérations qui impliquent des nombres réels. De telles… … Wikipédia en Français
Floatingpoint operations per second — (FLOPS) (opérations à virgule flottante par seconde) est une mesure commune de repère pour évaluer la vitesse des microprocesseurs. Les opérations en virgule flottante incluent toutes les opérations qui impliquent des nombres réels. De telles… … Wikipédia en Français
Floating point — In computing, floating point describes a method of representing real numbers in a way that can support a wide range of values. Numbers are, in general, represented approximately to a fixed number of significant digits and scaled using an exponent … Wikipedia
Floating Point Systems — Inc. (FPS) was a Beaverton, Oregon vendor of minisupercomputers. The company was founded in 1970 by former Tektronix engineer Norm Winningstad.The original goal of the company was to supply floating point coprocessors for minicomputers. In 1976,… … Wikipedia
floatingpoint processor — A specialpurpose, secondary processor designed to perform floating point calculations much faster than the main processor. Many processors, such as the Intel 80386, had matched companion floating point processors. However, the current trend in … Dictionary of networking