A co-proccessor is a secondary processor in a computer that handles tasks that the general-purpose CPU either cannot implement, or does not implement for efficiency reasons. This is distinct from the term multiprocessor, which refers to a computer with more than one general-purpose CPU.

Co-processors were first seen on mainframe computers, where they added additional "optional" functionality such as floating point math support. A more common use was to control input/output channels, although in this role they were more often referred to as channel controllers.

Co-processors also became common in desktop computers thoughout the 1980s and into the early 1990s due to CPU design limitations and cost considerations. The math co-processor was a common addition to high-end computers like the Mac II and most workstations that required the capability to do floating-point arithmetic, but until the early 1990s the demand for such capabilities was minimal. Another form of co-processor that became common during this era was the graphics co-processor, used in the Atari 8-bit family and Commodore Amiga. The graphics processor chip in the Commodore series was known as the "Copper."

Eventually, the functionality of the math co-processor was of enough importance to be integrated into the primary CPU, eliminating the need for a separate component. The demand for a dedicated graphics co-processor has grown, however, particularly due to an increasing demand for realistic 3D graphics in computer games; this dedicated processor removes a considerable computational load from the primary CPU, and increases performance in graphic-intensive applications. As of 2002, graphics cards with dedicated Graphics Processing Units (GPUs) are commonplace.