Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
A coprocessor is a supplementary processor unit or an entirely different circuitry that is designed to complement the central processing unit (CPU) of a computer. Its basic functionality is to offload other processor-intensive tasks from the CPU in order to achieve accelerated system performance, by allowing the CPU to focus on tasks essential to the system. There are various types of coprocessors available to perform unique tasks – from I/O interfacing or encryption, string processing, floating-point arithmetic and signal processing.
Coprocessors are simply extra circuitry meant to offload specific operations from the CPU in order for the system to run more efficiently. They can be direct control types that are controlled via coprocessor instructions that are part of the CPU’s instruction set, as in the case of floating-point units, or they can be independent types that work asynchronously with the CPU. In most cases, they are not optimized for general purpose code because they are made for specific tasks.
Originally, coprocessors were physically separated from CPUs, such as the Intel 8087 and Motorola 68881, but as the cost of integrating them into the CPU came down, it became more efficient for them to be integrated, as is the case with the FPU. The Intel Pentium and Motorola 68000 in the 1970s were some of the first to have the coprocessors as part of CPUs. The said coprocessors were known as floating-point arithmetic, floating-point unit or numeric coprocessor. Most computers now come with floating point built in. However, a program must be properly written in order to take advantage of the coprocessor. Currently CPUs have been designed to absorb functionalities of popular coprocessors. But there are still coprocessors that are separately available, allowing customization for personal or business use. The graphics processing unit (GPU) is the most common example of this; it is designed solely for graphics processing so that the CPU does not have to do any of it. Other examples are broadband signal processing units and encryption/decryption units.