Coprocessor
|
A coprocessor is a computer processor used to supplement the functions of the primary processor (the CPU). Operations performed by the coprocessor may be floating point arithmetic, graphics, signal processing or encryption. Coprocessors allow a line of computers to be customized, so that customers who do not need the extra performance need not pay for it. Generally the coprocessor cannot fetch instructions from memory, execute program flow control instructions,do input/output operations, manage memory, and so on; it requires the host main processor to fetch the coprocessor instructions and handle all other operations aside from the coprocessor functions.
Because of today's highly advanced degree of miniaturization in VLSI circuits, it is relatively rare to see math coprocessors in desktop computer architecture anymore. However, powerful graphics cards and modems may be considered to be coprocessors, though not so closely coupled to the host processor as mathematics processors were.
Intel processors
The original IBM PC included a socket for the Intel 8087 co-processor which was a popular option for people using the PC for CAD or mathematics-intensive calculations. In that architecture, the coprocesseor sped up floating-point arithmetic on the order of fifty-fold. Users that only used the PC for word processing, for example, saved the high cost of the coprocessor, which would not have accelerated performance of text manipulation operations.
The 8087 was tightly integrated with the 8088 and responded to floating-point machine code operation codes inserted in the 8088 instruction stream. An 8088 processor without an 8087 would interpret these instructions as an internal interrupt, which could be directed to trap an error or to trigger emulation of the 8087 instructions in software. During the era of 8- and 16-bit desktop computers another common source of floating-point coprocessors was Weitek. The Intel 80386 microprocessor used an optional "math" coprocessor (the 80387) to perform floating point operations directly in hardware.
The Intel 80486DX processor included floating-point hardware on the chip. Intel released a cost-reduced processor, the 80486SX, that had no FP hardware, and also sold an 80487SX co-processor that essentially disabled the main processor when installed, since the 80487SX was a complete 80486DX with a different set of pin connections. While consumers may have resented paying for a processor that was essentially wasted when the upgrade was installed, this marketing strategy did allow increased volume of sales of 80486 family processors, thereby accelerating the eventual price reductions.
Intel processors later than the 80486 integrated floating-point hardware on the main processor chip; the advances in integration eliminated the cost advantage of selling the floating point processor as an optional element. It would be very difficult to adapt circuit-board techniques adequate at 75 MHZ processor speed to meet the time-delay, power consumption, and radio-frequency interference standards required at gigahertz-range clock speeds.
Motorola processors
The Motorola 68000 family had the 68881/68882 coprocessors which provided similar floating-point speed acceleration as for the Intel processors. Computers using the 68000 family but not equipped with the hardware floating point processor could trap and emulate the floating-point instructions in software, which, although slower, allowed one binary version of the program to be distributed for both cases.
Other coprocessors
Sometimes an entire computer is made out of coprocessors instead of a single CPU. This is the case in the Nintendo 64 video game console, for example.
Template:Microcompu-stubde:Koprozessor
fr:Unité de calcul en virgule flottante
ja:コプロセッサ