Coprocessors. Functions and principles of operation of a mathematical coprocessor Program model of a coprocessor

To perform floating point arithmetic operations, there is a special arithmetic processor called a coprocessor. Unlike the CPU, it does not control the system, but waits for the CPU command to perform arithmetic calculations and generate results. According to Intel, compared to a CPU, the arithmetic coprocessor can reduce the execution time of arithmetic operations such as multiplication and exponentiation by 80% or more. The speed at which addition and subtraction are performed generally remains unchanged.

Coprocessor is just a common name for this chip. It is fully called a mathematical coprocessor or Numeric Processing Unit (NPU) or Floating Point Processing Unit (FPU).

Availability of coprocessor on motherboard is not mandatory, so in its place there may be an empty slot for further installation of the coprocessor. The exception is all CPUs 486DX and higher - here the coprocessor is integrated directly into the CPU.

First of all, the scope of application of coprocessors is scientific and technical applications related to the implementation large quantity arithmetic operations. However, this is not a limitation of use. Typically, NPU speeds up any program - even a word processing program, since working with text blocks and modules requires complex calculations. The coprocessor also significantly speeds up processing graphic images and execution of CAD programs.

RAM

Memory elements form the basis of the internal functioning of any computing system, since with their help data is stored and can be read again during further processing.

In order for the CPU to execute programs, they must be loaded into RAM (an area of ​​memory accessible to user programs). The CPU has direct access to data located in random access memory (Random Access Memory, RAM), while the processor works with other “peripheral” or external memory (floppy and hard drives) through a buffer, which is a type of RAM that is not available to the user. Only after software will be read into RAM from an external storage medium, further operation of the system as a whole is possible. RAM is the fastest storage medium in a computer. What is fundamentally important is that information can be both written to it and read.

RAM has its advantages and disadvantages:

Thanks to short memory access times, data processing speed increases significantly. If information was read only from external media, then the user would spend a lot of time waiting for this or that operation to complete.

The disadvantage of RAM is that it is temporary memory. When power off RAM is completely "cleared" and all data not written to external media will be lost forever

RAM belongs to the category of dynamic memory, i.e. its contents must be “refreshed” at certain intervals during operation.

The storage element of dynamic memory is a capacitor, which can be in a charged or discharged state. If the capacitor is charged, then a logical 1 is written to the cell. If the capacitor is discharged, then a logical 0 is written to the cell. In an ideal capacitor, the charge can be maintained indefinitely. In a real capacitor, there is a leakage current, so the information recorded in the dynamic memory will be lost over time, since the capacitors of the storage elements will be completely discharged after a few milliseconds. To avoid information loss, there is a memory regeneration process (Refresh).

RAM is a board (with the exception of older PC models, where chips were installed directly into the motherboard), about 8 cm long, on which DRAM (Dynamic RAM) chips are located. Such a board is called a module and is installed in the corresponding slots on the motherboard. Recently, DIMM modules have become most widespread. There were also SIP and SIMM modules. Modules are inserted into slots specially designed for them on the motherboard, called banks.

An important characteristic (in addition to the volume) of RAM is the access time, which characterizes the time interval during which information is written to or read from memory. Access time for external media such as floppy or hard drives, is expressed in milliseconds, and for memory elements it is measured in nanoseconds.

Logical memory allocation

The logical distribution of RAM is determined not only by the operating system used, but also by the features of the hardware implementation of IBM-compatible PCs.

There are three most important logical areas of RAM:

Conventional Memory The most important memory area (first 640 KB). It contains most of all application programs and data.

UMA (Upper Memory Area) This contains information that is used to interface application programs with various expansion cards. (384 KB located between 640 KB and 1 MB)

XMS (Extended Memory Specification) All memory above 1MB. Used by Windows applications

A math coprocessor is a special module for performing floating point operations that works in conjunction with the central processor.
Math coprocessor is optional personal computer. In principle, you can refuse it. This was done in the past for reasons of economy.
However, when solving problems that required a large number of mathematical calculations, for example, in scientific or engineering calculations, the question of increasing computer performance became acute.
For this we decided to use an additional special processor, which is “tuned” to perform mathematical operations and implements them many times faster than CPU. Thus, it was possible to increase the performance of the central processor through a special module - a mathematical coprocessor.
Unlike the central processor, the mathematical coprocessor does not control the bulk of the computer's circuits. Instead, all activities of the math coprocessor are determined by the central processor, which can send commands to the math coprocessor to execute programs and generate results. In normal mode, the central processing unit performs all functions of the computer. And only when a task is encountered that the mathematical coprocessor can handle better, it is given data and commands, and the central processor awaits the results. Such problems include, for example, mathematical operations between real numbers (operations between floating point numbers), where numbers are represented by a mantissa and an ordinate (a decimal power of a number that determines the position of the decimal point).
If earlier, in computers of the first generations (i80386, i80486), the mathematical coprocessor module was installed on the motherboard as a separate chip, then in modern computers the use of a mathematical coprocessor as a separate chip is not required, since it is already built into the central processor.
The benefits you get from using a math coprocessor depend on the type of problems you solve on your computer.
According to INTEL, the math coprocessor can reduce the execution time of math operations such as multiplication, division and exponentiation by 80 percent or more. The speed of simple math operations, such as addition and subtraction, remains unchanged.
From a practical point of view, the performance of a personal computer related to text preparation and database maintenance (functions that do not require complex mathematical calculations) cannot be improved by a mathematical coprocessor. However, you will get a noticeable increase in productivity when carrying out scientific and engineering calculations, processing statistical data, as well as when working with graphics, since the latter requires intensive mathematical calculations.

Ordinary users usually never think about what a coprocessor is, and the vast majority do not even know about its existence. Everything changes when operating system with enviable persistence it begins to act up and displays messages stating that the corresponding driver was not found. What to do in such a situation? There are quite a lot of solutions that can be found, but without a full understanding of what this device is, none of them will fully solve the problem that has arisen.

What is a coprocessor: general understanding

You might be interested in:

First of all, let's look at what it is and what it's for. Based on the name of this device, it is easy to conclude that this is some kind of additional processor that is installed in computer system together with the main (central) one. Like the CPU, the coprocessor is mounted on the motherboard. However, it is necessary to distinguish between the main options for its installation. As for the coprocessor device, it can be presented both in the form of a separate microcircuit (chip), for which a special mounting location (bus) is allocated on the motherboard, and in the form of a component built directly into the central processor.

Coprocessor is a special integrated circuit that works in collaboration with

main processor. Typically the coprocessor is configured to run

some specific function - a mathematical operation or a graphic

representation. And the coprocessor can implement this operation many times

faster than the main processor. Thus, a computer with a coprocessor

works much more quickly.

A coprocessor is a regular microprocessor, but not as versatile. Usually

The coprocessor is developed as a special device for specifically implementing

a certain function. Since the coprocessor's repertoire is limited, it can

implement the functions allocated for it like no other.

Like any other microprocessor, a coprocessor operates on the same principles. He

simply executes programs containing a sequence of microprocessor

commands The CPU does not control the bulk of the computer's circuits.

In normal mode, the microprocessor performs all computer functions. And only when

When a task is encountered that the coprocessor can handle better, data is transferred to it

and control commands, and the central processor waits for the results.

Coprocessors, mostly used in PCs, are mathematical

coprocessors. In mathematics, they specialize in multiplying and dividing numbers.

Mathematical coprocessors are also called floating point processors.

because they demonstrate their capabilities especially clearly in this area

mathematics. Floating point numbers are often used in scientific calculations and

are represented, as a rule, by the mantissa and the ordinate.

The benefit gained from installing a math coprocessor depends on

what tasks are solved on the computer. According to Intel, the coprocessor

can reduce the execution time of mathematical operations such as

multiplication, division, exponentiation by 80% or more.

The speed of performing simple operations such as addition and subtraction is almost

does not decrease.

From a practical point of view, the performance of the system regarding preparation

texts and database maintenance - functions that do not require complex mathematical

calculations cannot be improved by a math coprocessor.

The coprocessor and the main microprocessor can operate on different clock speeds

(from own clock generators).

When the ratio of microprocessor and coprocessor frequencies is expressed as an integer,

they work synchronously and can transmit information to each other in the optimal way

way. Non-synchronized work requires that one or the other of them

waited for the completion of the cycle of his partner, which entails the appearance

a short but realistic waiting period.

The Intel coprocessor family consists of: 8087, 80287, 80387, 80387SX.

Each of them is specially designed to work with the corresponding

microprocessor of the main Intel family. Each of these four has its own

characteristics. Limitations on simultaneous processing of information in

8, 16, 32 bits are left far behind. Intel coprocessors start 80 at once

bit. Each coprocessor contains eight 80-bit registers in which it and

carries out his calculations. They work with 32-, 64-, or 80-bit numbers with

floating point; 32- or 64-bit integers. Typically coprocessors

work as appendages of the central one.

Both processors hang on the address information lines of the computer and perform

each their own teams as they appear in the program. Coprocessors can

perform its functions in parallel with the work of the central processor, that is,

both brains in in this case think at the same time because each of them is reading

your commands directly from the bus, and the central processor does not have to be interrupted,

to issue a command to the coprocessor.

This coprocessor is designed specifically for use with the Intel 8086,

8088, 80186, 80188. Therefore, it is identical to these microprocessors

capabilities for addressing and perceiving information. Moreover, this coprocessor itself

adjustable to data bus size - eight or sixteen tibit (8086 or

8088 family). It fits into a standard 40-pin connector and

increases the list of computer commands by 68 units.

There are three modifications of this coprocessor, differing in frequency: 5, 8,

Likewise, 80286 is an extension of 8086, 80287 is a development of 8087.

The main advantage of 80287 is the ability to function both in real and

and in protected mode of the 80286 microprocessor. It has the ability to be addressed to

all 16M memory.

80287 is almost completely compatible with 8087 and can use almost anything

the latter's software. The main functional difference between these

coprocessors in the way they handle faulty situations. If an error is detected, these

chips can behave differently. However, the software can

compensate for these discrepancies.

The 80287 is housed in a 40-pin DIP package. But unlike my younger one

brother, 80287 can work from a personal central microprocessor

clock frequency.

microprocessor, it has a built-in divider circuit that reduces the internal

frequency three times.

Using its own oscillator, the 80287 can significantly improve its

performance.

Just like 8087, 80287 has four modifications, differing in

80287 is compatible with 80386 microprocessor. However, they work on different

frequencies and therefore requires a special interface to access the bus

data 80386. Moreover, since the 80287 is a 16-bit chip, all interconnections with

80386 must be implemented in 16-bit words, potentially reducing

performance.

80387 and 80387SX

Just as Intel, taking the lessons of the past into account, produced the 80386, the 80387 became

further development of the 80287 coprocessor. While remaining team compatible with

80287, 80387 increased the speed of data manipulation. But again there were differences

differences in error handling. But the capabilities of 80387 were greater - it implemented

all transcendental and logarithmic functions.

80387SX - Similar in every way to the 80387, but designed to run on

16-bit 80386SX bus instead of 32-bit data bus.

80387 and 80387SX can run all 80287 programs. The reverse is not true

equivalent. The main problem with the 387s is the slightly different results

calculations of the transcendental function from 80287.

The 80387 runs at the same frequency as the CPU. Available

corresponding modifications of this coprocessor up to 25 MHz.