

Guide to Coprocessor
Catalog
What is a Coprocessor?Coprocessor ArchitectureCoprocessor Architecture (Continued)Control and Status Word OperationsHow Does a Coprocessor Work?Types of CoprocessorsDifference Between Processor and CoprocessorAdvantages of a CoprocessorDisadvantages of a CoprocessorApplications of CoprocessorsConclusionIn a microprocessor, additional circuits are integrated to handle specific tasks and operations, easing the load on the main CPU so it can work faster. A coprocessor is an auxiliary processor used in computers to manage specialized tasks, such as graphics rendering and complex arithmetic calculations. Designed to handle these tasks more efficiently than the CPU, a coprocessor can boost overall computer performance. This article provides an overview of coprocessors, covering their architecture, functionality, and applications.
What is a Coprocessor?
A coprocessor is a processor that works alongside the main CPU of a computer to handle specific tasks. Also known as a supplementary processor, it assists the CPU by taking on complex calculations like graphics rendering, signal processing, string handling, floating-point arithmetic, and input-output interfacing. This helps improve the overall efficiency and performance of the system.

coprocessor
Coprocessor Architecture
The architecture of a coprocessor, such as the 8087, is designed to work alongside the microprocessor. Developed by Intel, this coprocessor was specifically used with 16-bit 8086 family microprocessors. When combined with the microprocessor, the coprocessor handles the computational tasks, allowing the CPU to focus on other operations and improve overall system efficiency.
The 8087 coprocessor’s architecture includes two main components: the Control Unit and the Numeric Execution Unit (NEU), which together manage the complex calculations and improve processing speed.

8087 Coprocessor Architecture
Coprocessor Architecture (Continued)
The control unit in a coprocessor has several key components, including the data buffer, control & status word register, shared operand queue, exception pointer, and addressing & bus tracking unit. These units work together to manage the flow of instructions and data to the coprocessor.
The Numeric Execution Unit (NEU) is responsible for performing the actual calculations. It consists of several parts: a microcode control unit, register stack, programmable shifter, temporary registers, arithmetic module, exponent module, and the shared operand queue.
The control unit of the coprocessor oversees the instruction execution, which is carried out by the NEU. The microcode control unit in the NEU fetches numeric instructions from the control unit. The coprocessor has a register stack with 8 registers, each 80 bits wide, which operate in a Last In, First Out (LIFO) mode. These registers are pointed to by the 3-bit stack pointer (SP), which can hold values ranging from 000 to 111 to indicate the 8 stack registers. The stack works in a circular fashion, and after a reset, the stack pointer is initialized to 000.
The coprocessor works with three types of numeric data: packed decimal numbers, real numbers, and binary integers. The binary integers come in three sizes: 16-bit word integer, 32-bit short integer, and 64-bit long integer. Packed decimal numbers are represented using the 80-bit BCD format, while real numbers come in three types: 32-bit short real, 64-bit long real, and 80-bit temporary real.
For transferring numeric data within the coprocessor, there are either a 16-bit exponent bus or a 64-bit mantissa bus. Additionally, the coprocessor uses a 16-bit control word and a 16-bit status word to manage operations.
Control and Status Word Operations
The control word is written into the control register in a specific sequence. First, the coprocessor writes the control word to a memory location. Then, it reads the control word from that memory location and stores it in the control register.
Similarly, the status word works in a similar manner. The processor sends the data from the status register to a memory location. The coprocessor then reads the status word from this memory location. This process ensures that the processor and the microprocessor communicate with each other through the main memory.
How Does a Coprocessor Work?
The coprocessor is designed to work alongside both the 8086 and 8088 processors. It helps improve system performance by offloading specific tasks from the CPU. When the coprocessor works with the microprocessor, the instructions from both processors are integrated into the program. In assembly language, coprocessor instructions are prefixed with an 'F', while instructions without the 'F' prefix are for the microprocessor.
First, the microprocessor fetches instructions from memory and loads them into a queue. At the same time, the 8087 coprocessor also reads and stores these instructions in its own queue. This means that both the coprocessor and the microprocessor can read the same instructions. However, when it comes time to execute, each processor handles its own instructions. If the microprocessor encounters a coprocessor instruction, it treats it as a "No-operation" (NOP). Similarly, if the coprocessor encounters a microprocessor instruction, it treats it as a NOP as well. This allows both processors to work in parallel without interfering with each other.
Types of Coprocessors
Different coprocessors are available from various manufacturers. One example is:
Intel 8087 Coprocessor
The Intel 8087 is a specialized coprocessor designed to handle mathematical calculations, including both floating-point and integer operations. Sometimes called a numeric data processor or math processor, the 8087 is used with Intel processors like the 80188, 8086, 80186, and 8088. It features eight 80-bit general-purpose registers that are organized as a stack. All floating-point operations are carried out using data from this stack or from external memory, improving the efficiency of complex mathematical tasks.

Intel 8087 Coprocessor
Intel 8087 Coprocessor (Continued)
The Intel 8087 coprocessor supports a variety of number types, including BCD, integer, single and double precision floating-point numbers, as well as extended precision floating-point numbers. When the 8087 processor loads data from memory, it internally converts it into an extended precision number, and all subsequent calculations are performed using this format.
However, switching between different precisions—like from double-precision to single-precision, or from 64-bit integers to 32-bit or 16-bit integers—doesn’t significantly boost performance. While Intel manufactured the 8087, it was also produced by other companies like AMD, Cyrix, and IBM.
Motorola 68881 Coprocessor
The Motorola 68881 is a coprocessor designed for use with the second generation of Motorola 68K microprocessors, such as the Motorola 68030 and 68020. It can also be used with earlier CPUs like the 68000 or 68010 as a peripheral device. This coprocessor was intended to enhance the processing power of these older systems, particularly for handling complex floating-point operations.

Motorola 68881
Motorola 68881 Coprocessor (Continued)
The Motorola 68881 functions like a memory-mapped device. When the main CPU loads a coprocessor instruction, it writes the instruction code into the Co-processor Interface Registers (CIR), which are mapped within the CPU's address space. The CPU then reads the coprocessor's response from one of the CIR registers.
The Motorola 68881/68882 coprocessors were used in several notable systems, including IBM RT PC workstations, Sun Microsystems Sun-3 workstations, NeXT Computer, Apple Macintosh II, Amiga 3000, Sharp X68000, Convergent Technologies MightyFrame, and Atari Mega STE & Falcon. These coprocessors were also used in third-party Atari and Amiga products, functioning as memory-mapped devices for the 68000 microprocessor.
Apple Motion Coprocessors
Apple's M-series coprocessors are designed to handle motion processing tasks in Apple mobile devices. The first motion coprocessor was introduced in 2013 and was used to collect sensor data from built-in gyroscopes, accelerometers, and compasses. The coprocessor offloads the gathered sensor data from the main CPU, allowing the device to handle motion-related tasks more efficiently.

Apple Motion Coprocessors
Apple M-series Motion Coprocessors (Continued)
The M-series Apple coprocessors are designed to gather, process, and store sensor data even when the device is in sleep mode. This means that even if the device is powered down, the coprocessor continues to track motion data from sensors like the gyroscope, accelerometer, and compass. When the device is powered back on, applications can quickly retrieve the stored data. This functionality helps reduce power consumption and extends battery life, as the main CPU doesn't need to be constantly active to handle these tasks.
Difference Between Processor and Coprocessor
| Processor | Coprocessor |
|---|---|
| The processor is the main unit in a computer that handles various tasks, including arithmetic, logic, and control operations based on instructions. | The coprocessor is a specialized processor that assists the main processor by handling specific tasks. |
| The processor is responsible for carrying out the main work of the computer. | The coprocessor focuses on specific tasks like graphics and complex arithmetic calculations. |
| It handles logical operations, mathematical calculations, and generates control signals to synchronize tasks across the system. | It is responsible for tasks like signal processing, mathematical operations, networking, and cryptography, depending on the type of coprocessor. |
| The processor ensures the overall functioning of the computer. | The coprocessor boosts system performance by offloading intensive tasks from the CPU. |
Advantages of a Coprocessor
- Specialized Tasks: Coprocessors handle specialized tasks faster than the main CPU.
- Ease of Use: These processors are simple to use and widely popular.
- Reduces CPU Strain: By taking over certain tasks, coprocessors reduce the strain on the CPU, allowing it to run at higher speeds.
- Expands CPU Features: Coprocessors can extend the CPU's capabilities by expanding the instruction set or adding configurable registers.
Disadvantages of a Coprocessor
- Limited Functionality: Coprocessors cannot directly execute instructions, manage memory, or handle I/O operations on their own.
- Dependency on the Main Processor: The coprocessor depends on the main processor to retrieve instructions and manage non-coprocessor tasks.
- Not the Main Processor: It is not the primary processor of the system.
- Requires the Main Processor: A coprocessor cannot function without the main microprocessor.
Applications of Coprocessors
- Specialized Tasks: Coprocessors are used for tasks like graphical display processing and complex mathematical calculations.
- Reduces CPU Burden: They offload work from the CPU, making the system run more efficiently.
- Faster Mathematical Operations: Coprocessors perform high-level calculations, like roots, logarithms, and trigonometric functions, faster than the main processor.
- Enhances CPU Functionality: They can perform tasks like signal processing, floating-point arithmetic, string processing, graphics, I/O interfacing, and cryptography.
- Older Systems: In early desktop computers, coprocessors were separate chips connected to the motherboard.
- Performance Boost: By handling specific tasks, coprocessors help boost the overall performance of the computer system.
Conclusion
A coprocessor, also known as a Math Processor, performs tasks much faster than the main CPU, helping to increase the overall speed of the system. When attached to a core CPU (such as an ARM processor), the system’s instruction set or configurable registers may need to be expanded to enhance processing power.
As for your question, "What is a microprocessor?":
A microprocessor is the central processing unit (CPU) of a computer, contained on a single integrated circuit (IC). It executes instructions from programs, performs calculations, and controls the operations of other components in the system. It’s essentially the "brain" of the computer, handling tasks like data processing, logic operations, and controlling input/output operations.
Subscribe to JMBom Electronics !












