Seminar Topics & Project Ideas On Computer Science Electronics Electrical Mechanical Engineering Civil MBA Medicine Nursing Science Physics Mathematics Chemistry ppt pdf doc presentation downloads and Abstract

Full Version: MATH CO-PROCESSOR REPORT
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
MATH CO-PROCESSOR

[attachment=45776]

Intel 8087

The Intel 8087, announced in 1980, was the first x87floating-pointcoprocessor for the 8086 line of microprocessors.
The purpose of the 8087 was to speed up computations for floating-point arithmetic, such as addition, subtraction, multiplication, division, and square root. It also computed transcendental functions such as exponential, logarithmic or trigonometric calculations. The performance enhancements were from approximately 20% to over 500%, depending on the specific application. The 8087 could perform about 50,000 FLOPSusing around 2.4 watts. Only arithmetic operations benefited from installation of an 8087; computers used only with such applications as word processing, for example, would not benefit from the extra expense (around $150) and power consumption of an 8087.
The sales of the 8087 received a significant boost when IBM included a coprocessor socket on the IBM PC motherboard. Development of the 8087 led to the IEEE 754-1985 standard for floating-point arithmetic. Later Intel processors (introduced after the 486DX) did not use a separate floating point coprocessor

Design and development

Intel had previously manufactured the 8231Arithmetic processing unit, and the 8232Floating Point Processor. These were designed for use with 8080 or similar processors and used an 8-bit data bus. They were interfaced to a host system either through programmed I/O or a DMA controller
The 8087 was released in 1980 and it had 45,000 transistors. It was manufactured as a 3 μm depletion load HMOS circuit. Intel production of the 8087 was done in Malaysia.
This coprocessor introduced about 60 new instructions, their assembly mnemonics all beginning with "F", to differentiate them from the 8086 integer instructions. For example, as a complement to ADD/MUL/CMP, the 8087 provided FADD/FMUL/FCOM. The binary encodings for all new instructions began with the bit pattern 11011, decimal 27, the same as the ASCII character ESC; similar instruction prefixes are also sometimes referred to as "escape codes".
Use of the coprocessor was not transparent to application programs, which had to be written to make use of the special floating point instructions. At run time, software could detect the coprocessor and use it for floating point operations, otherwise the function of the coprocessor was emulated in software.

IEEE floating point standard

When Intel designed the 8087, it aimed to make a standard floating-point format for future designs. An important aspect of the 8087 from a historical perspective was that it became the basis for the IEEE 754 floating-point standard. The 8087 did not implement the eventual IEEE 754 standard in all its details, as the standard was not finished until 1985, but the 80387 did. The 8087 provided two basic 32/64-bit floating-point data types and an additional extended 80-bit internal temporary format (that could also be stored in memory) to improve accuracy over large and complex calculations. Apart from this, the 8087 offered an 80-bit/18-digit packed BCD (binary coded decimal) format and 16, 32 and 64-bit integer data types.

Coprocessor interface

The 8087 differed from subsequent Intel coprocessors in that it was directly connected to the address and data buses. The 8088/86 looked for instructions that commenced with the '11011' sequence and relinquished control to the coprocessor. The coprocessor handed control back once the sequence of coprocessor instructions ended. There was a potential crash problem if the coprocessor instruction failed to decode to one that the coprocessor understood. Intel's later coprocessors did not connect to the buses in the same way, but were handed the instructions by the main processor. This yielded an execution time penalty, but the potential crash problem was avoided because the main processor would ignore the instruction if the coprocessor refused to accept it. The 8087 was able to detect whether it was connected to a 8088 or a 8086 by monitoring the data bus during the reset cycle.