A floating point unit (FPU) is a part of a computer system specially designed to carry out operations on floating point numbers. A computer is a Machine that manipulates data according to a list of instructions. In Computing, floating point describes a system for numerical representation in which a string of digits (or Bits represents a Real number. Typical operations are addition, subtraction, multiplication, division, and square root. Some systems (particularly older, microcode-based 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. A transcendental function is a function that does not satisfy a Polynomial equation whose Coefficients are themselves polynomials in contrast to an
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 floating point operations. In Computer engineering, computer architecture is the conceptual design and fundamental operational structure of a Computer system An embedded system is a special-purpose Computer system designed to perform one or a few dedicated functions often with Real-time computing constraints
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 microchip, while in older systems it could be an entire circuit board or a cabinet. A coprocessor is a Computer processor used to supplement the functions of the primary processor (the CPU microcomputer is a Computer with a Microprocessor as its Central processing unit. Microchipsjpg|right|thumb|200px|Microchips ( EPROM memory with a transparent window showing the integrated circuit inside A printed circuit board, or PCB, is used to mechanically support and electrically connect Electronic components using conductive pathways or traces
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. Microprogramming (ie writing microcode) is a method that can be employed to implement Machine instructions in a CPU relatively easily often using less An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination "kernel space" redirects here For mathematical definition see Null space.
In most modern computer architectures, there is some division of floating point operations from integer operations. The integers (from the Latin integer, literally "untouched" hence "whole" the word entire comes from the same origin but via French This division varies significantly by architecture; some, like the Intel x86 have dedicated floating point registers, while some take it as far as independent clocking schemes. See also X86 assembly language The generic term x86 refers to the most commercially successful Instruction set architecture in the history of Personal In Computer architecture, a processor register is a small amount of storage available on the CPU whose contents can be accessed more quickly than storage In Electronics and especially synchronous Digital circuits a clock signal is a signal used to coordinate the actions of two or more circuits
Floating point operations are often pipelined. Pipelining redirects here For HTTP pipelining see HTTP pipelining. In earlier superscalar architectures without general out-of-order execution, floating point operations were sometimes pipelined separately from integer operations. A superscalar CPU architecture implements a form of parallelism called Instruction-level parallelism within a single processor In Computer engineering, out-of-order execution, OoOE, is a paradigm used in most high-performance Microprocessors to make use of cycles that Today, many CPUs/architectures have more than one FPU, such as the PowerPC 970, and processors based on the Netburst and AMD64 architectures (such as the Pentium 4 and Athlon 64, respectively. The PowerPC 970, PowerPC 970FX, PowerPC 970GX, and PowerPC 970MP, are 64-bit Power Architecture processors from IBM The Intel NetBurst Microarchitecture, called P68 inside Intel was the successor to the P6 microarchitecture in the X86 family of CPUs x86-64 is a Superset of the x86 instruction set architecture. The Pentium 4 brand refers to Intel 's line of single- core mainstream desktop and Laptop Central processing units (CPUs introduced The Athlon 64 is an eighth-generation AMD64 architecture Microprocessor produced by AMD, released on )
When a CPU is executing a program that calls for a floating-point operation, there are three ways to carry it out:
Most modern computers have integrated FPU hardware.
Some floating-point hardware only supports the simplest operations -- addition, subtraction, and multiplication. But even the most complex floating-point hardware has a finite number of operations it can support -- for example, none of them directly support arbitrary-precision arithmetic. On a Computer, arbitrary-precision arithmetic, also called bignum arithmetic is a technique whereby Computer programs perform Calculations on
When a CPU is executing a program that calls for a floating-point operation not directly supported by the hardware, the CPU uses a series of simpler floating-point operations. In systems without any floating-point hardware, the CPU emulates it using a series of simpler fixed-point arithmetic operations that run on the integer arithmetic logic unit. In Computing, a fixed-point number representation is a Real data type for a number that has a fixed number of digits after (and sometimes also before the In Computing, an arithmetic logic unit ( ALU) is a Digital circuit that performs Arithmetic and Logical operations
The software that lists the necessary series of operations to emulate floating point operations is often packaged in a floating-point library. In Computer science, a library is a collection of Subroutines used to develop Software.
In some cases, FPUs may be specialized, and divided between simpler floating point operations (mainly addition and multiplication) and more complicated operations, like division. In some cases, only the simple operations may be implemented in hardware, while the more complex operations could be emulated.
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 x86-64 architecture used in newer Intel and AMD processors. In Computing, SIMD ( S ingle I nstruction M ultiple D ata is a technique employed to achieve data level parallelism as in a Vector x87 is a math-related instruction subset of the X86 architecture of processors. S treaming '''S'''IMD E xtensions ( SSE) is a SIMD (Single Instruction Multiple Data Instruction set extension to the X86 x86-64 is a Superset of the x86 instruction set architecture.
In 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 add-on. A coprocessor is a Computer processor used to supplement the functions of the primary processor (the CPU The 1980s was the decade spanning from January 1 1980 to December 31 1989. microcomputer is a Computer with a Microprocessor as its Central processing unit. It would only be purchased if needed to speed up or enable math-intensive programs.
The IBM PC, XT, and most compatibles based on the 8088 or 8086 had a socket for the optional 8087 coprocessor. The IBM Personal Computer XT, often shortened to the IBM XT or simply XT, was IBM's successor to the original IBM PC. The Intel 8088 is an Intel X86 Microprocessor based on the 8086, with 16- Bit registers and an 8-bit external Data bus The 8086 is a 16-bit Microprocessor chip designed by Intel and introduced on the market in 1978 which gave rise to the X86 architecture The 8087 was the first math Coprocessor for 16 bit processors designed by Intel (the I8231 was older but designed for the 8 bit Intel 8080) The AT and 80286-based 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. The IBM Personal Computer/AT, more commonly known as the IBM AT and also sometimes called the PC AT or PC/AT, was IBM 's second-generation The Intel 286, introduced on February 1, 1982, (originally named 80286, and also called iAPX 286 in the programmer's manual The Intel 80287 ( i287) was the math Coprocessor for the Intel 80286 series of Microprocessors It was used to perform Floating The Intel 80387 ( 387 or i387) was the math Coprocessor for the 80386 series of Microprocessors and the first Intel The Intel 80387SX ( 387SX or i387SX) is the math Coprocessor for the Intel 80386SX Microprocessor. The Intel 80287 ( i287) was the math Coprocessor for the Intel 80286 series of Microprocessors It was used to perform Floating The Intel 80387 ( 387 or i387) was the math Coprocessor for the 80386 series of Microprocessors and the first Intel
Starting with the 80486, in x86 chips the floating point unit was integrated with the CPU, something true for almost all later x86-architecture processors. The Intel 486, otherwise known as the 80486 i486 or just 486 was the first tightly pipelined X86 design 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. The Intel 486, otherwise known as the 80486 i486 or just 486 was the first tightly pipelined X86 design The Intel 's i487 is a Floating point unit Coprocessor for Intel i486SX machines
In addition to the Intel x87 series, several other companies manufactured co-processors for the x86 series. These included Cyrix which marketed its FasMath series as higher performance but fully x87 compatible, and Weitek which offered a high-performance but not fully x87 compatible series of coprocessors. Cyrix was a CPU manufacturer that began in 1978 in Richardson Texas as a specialist supplier of high-performance math co-processors for 286 and Weitek Corporation was a former Chip -design company that originally concentrated on Floating point units for a number of commercial CPU designs
In addition to the Intel architectures, FPUs as coprocessors were available for the Motorola 680x0 line. Motorola Inc ( is an American, multinational Fortune 100, Telecommunications company based in Schaumburg Illinois. The Motorola 680x0 / m68k / 68k / 68K is a family of 32-bit CISC Microprocessor CPU chips and was the primary These FPUS, the 68881 and 68882, were common in 68020/68030-based workstations like the Sun 3 series. Motorola 68881 was a Floating-point Coprocessor chip that was utilized in some computer systems that used the 68020 or 68030 Motorola 68881 was a Floating-point Coprocessor chip that was utilized in some computer systems that used the 68020 or 68030 The Motorola 68020 is a 32-bit Microprocessor from Motorola, released in 1984. The Motorola 68030 is a 32-bit Microprocessor in Motorola 's 68000 family. A workstation, such as a Unix workstation, RISC workstation or Engineering workstation, is a high-end Microcomputer Sun-3 was the name given to a series of UNIX Computer workstations and servers produced by Sun Microsystems, launched on September 9th 1985 They were also commonly added to higher-end models of Apple Macintosh and Commodore Amiga series, but unlike IBM PC-compatible systems, sockets for adding the coprocessor were not as common in lower end systems. Macintosh, commonly nicknamed Mac is a Brand name which covers several lines of Personal computers designed developed and marketed by Apple Inc The Amiga is a family of Personal computers originally developed by Amiga Corporation. 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 add-on FPUs Coprocessor units for Microcontroller units (MCUs/µCs)/Single Board Computers (SBCs) which serve to provide Floating Point Arithmetic capability in systems that might not otherwise possess said functionality. A microcontroller (also MCU or µC is a functional Computer system-on-a- chip. Single-board computers ( SBCs) are complete Computers built on a single Circuit board. The difference in these types of FPU Coprocessors, when compared to more traditional Floating Point Coprocessors such as the 80x87 series, is that these add-on FPUs are host-processor independent, possess their own programming requirements, and are often provided with their own IDEs. In Computing, an integrated development environment ( IDE) is a Software application that provides comprehensive facilities to Computer programmers A non-exhaustive listing of these type of FPUs: