In the microprocessor chip, new circuits are added to complete special tasks and to operate on numbers to offload the CPU core work, so that the CPU can run very fast. For example, auxiliary processors such as coprocessors are mainly used in computers to achieve special tasks such as graphic display processing and extensive arithmetic calculations.
Compared to cpus, coprocessors are designed to perform such tasks very efficiently and therefore increase overall computer speed. This paper briefly introduces the architecture, working principle and application of coprocessor.
Basic Concept
A processor that works side by side with a computer's main processor, such as a PU, is called a coprocessor, which is also called an auxiliary computer processor. By using this processor, some difficult mathematical calculations can be performed, such as graphics displayed on the screen, signal processing, string processing, floating point operation, input and output interface, etc.
Coprocessor Architecture
An architecture similar to the 8087 coprocessor is shown below. Typically, this coprocessor works in parallel with the microprocessor. The coprocessor was developed by Intel and used with 16-bit 8086 series microprocessors. When a processor is used in combination with a microprocessor, the computation part is handled only by the processor, which allows the CPU to use resources to perform a variety of other tasks
Yes.
The following diagram shows the architecture of the 8087 coprocessor. The architecture consists of two main units, such as the control unit and a digital execution unit, also known as the NEU
In the control unit, there are various units such as data buffer, control and status word registers, shared operand queues, exception Pointers, addressing and bus tracking units. The numerical execution unit or NEU mainly includes a microcode control unit, a register stack, a programmable shifter, a temporary register, an arithmetic module, an exponential module, and a shared operand queue.
The control unit in a coprocessor is the command execution (E) for which the control value execution unit is responsible. In most cases, the microcode control unit (CU) of the numerical execution unit obtains the numerical instructions from the control unit of the coprocessor. The 8087 co-processor has a full eight 80-bit registers, each of which is used in the LIFO stack. The operand on which the coprocessor instruction will occur exists in the register stack.
The existing stack is pointed through a 3-bit SP(stack pointer), which holds binary values in the range 000-111 to display the 8 stack registers. It works as a cyclic stack in LIFO mode. However, once the reset operation occurs, the pointer can be initialized with the binary value "000".
The numerical data of the coprocessor is divided into two categories: compressed decimal numbers, real numbers and binary integers. There are three types of binary integers: 16-bit word integers, 32-bit short integers and 64-bit long integers. The 80-bit BCD format represents compressed decimal numbers, while there are three types of real numbers, including 32-bit short real numbers, 64-bit long real numbers, and 80-bit temporary real numbers
To transmit digital data in the coprocessor, a 16-bit exponential bus or a 64-bit mantissa bus is used. The coprocessor consists of a 16-bit control word and a 16-bit status word. The control word is written to the control register in the same way that the coprocessor initially writes the control word to the memory location. After that, the coprocessor simply reads the control word using the memory location and stores it in the control register.
Similarly, the status word is read in such a way that the processor sends the data in the status register to a location in memory. In addition, the coprocessor reads the status register from a specific location in memory. So this means that the processor and the microprocessor communicate with each other through the main memory.
Working Principle
Designed primarily for the 8086 and 8088 processors, the 8087 coprocessor is used to help the system run more powerful by offloading specific CPU tasks. Once the processor is used in conjunction with a microprocessor, the instructions of the microprocessor and coprocessor are integrated into it when the program is written. An instruction in an assembly language program has an "F" at the beginning of the instruction, which represents the instruction of the coprocessor, and an instruction without an "F" prefix represents the instruction of the microprocessor.
First, the microprocessor takes the instructions from the memory location and loads them sequentially into the queue, while the 8087 coprocessor also reads the instructions and stores them in the internal queue. So this means that each instruction can be read by the coprocessor and the processor, but at execution time, both the coprocessor and the microprocessor can execute their specific instructions
This means that the instruction is read and decoded. If the microprocessor detects an instruction with a coprocessor, the instruction is treated as no operation. Similarly, if the coprocessor skips any of the microprocessor's instructions, it is considered to have no operation.
Merits And Demerits
The benefits of coprocessors include the following
Coprocessors can handle more specialized tasks faster than core cpus.
Easy to use and most popular.
Reducing the stress on the microprocessor by taking over special processing tasks from the CPU, making it run at a higher speed helps to extend the processing capabilities of the CPU by expanding the instruction set or providing configuration registers The disadvantages of coprocessors include the following
Unable to recover instructions from memory, execute instructions directly, manage memory, or perform I/0 operations.
It is up to the host processor to retrieve the coprocessor instructions and handle all other operations that are not related to the coprocessor. Not the primary processor of the system
Without the main microprocessor, the coprocessor cannot work alone.
Main Application
Applications for coprocessors include the following.
Used to perform some of the more specialized tasks, such as graphic display processing or complex mathematical calculations.
It is only used to reduce the burden of the computer CPU.
The processor works side by side with the computer's CPU.
This processor performs advanced mathematical operations much faster than main processors such as roots, logarithms, and trigonometry.
The co-processor increases the ancillary capabilities of the main processor.
The coprocessor performs different operations such as signal processing, floating point arithmetic, string processing, graphics, /0 port through peripherals, encryption, etc.
These processors were individual chips in early desktop computers that were connected to motherboards.
Coprocessors help process CPU tasks to improve overall performance.