Skip to main content

8087 Math Co-Processor

 

 What is a co-processor?

  • A co-processor is a specially designed circuit on a microprocessor chip that can perform the same task very quickly that the microprocessor performs.
  • The main advantage of a co-processor is it reduces the workload of the main processor.
  • Co-processors share the same memory, I/O system, bus control, and clock generator.
  • The co-processor handles specialized tasks like mathematical calculation, graphical display on the screen, etc.


8087 co-processor

  • It was the first math co-processor designed by Intel to pair with 8086/8088 resulting in the easier and faster calculation.
  • The purpose of 8087 was to speed up the computation involving floating point calculation.
  • 8087 math co-processor is also known as Numeric Data Processor (NDP), Numeric Processor Extension (NPX), Floating Point Unit (FPU)


Features of 8087

  • This increase the overall speed and system performance of the entire system.
  • Addition, subtraction, multiplication, and division of simple numbers are not the coprocessor's job.
  • It does all the calculations involving floating point numbers like scientific calculation and algebraic functions.
  • Having a co-processor, which performs all the calculations, can free up a lot of CPU time.
  • This would allow the CPU to focus all of its resources on the other functions it has to perform.
  • It follows IEEE floating point standards.
  • This co-processor introduced about 60 new instructions available to the programmers.
  • All the mnemonics begin with 'F' to differentiate them from the standard 8086 instructions. e.g.FADD, FMUL.
  • If an instruction is an ESC-type instruction then the co-processor executes it else the microprocessor executes it.
  • 8087 can work on integers, decimals, real, and floating point numbers.
  • It is capable of doing complex arithmetic and trigonometric calculations.
  • It is basically a secondary processor it has its own architecture and instruction set.


Why Math co-processors?

  • Floating point operations are complex math operations that required large registers, complex circuits, and an area on the chip.
  • A general processor avoids this much burden and delays such operation to a co-processor designed specifically for this purpose e.g. 8087 math co-processor for 8086 microprocessor.


Data types supported by 8087

  • Binary Integers,
  • Packed decimal numbers
  • Real numbers
  • Temporary real format.



Comments

Popular posts from this blog

Architecture of 8087 Math co-processor

  Introduction  8087 coprocessor is designed to operate with an 8086 microprocessor. The microprocessor and coprocessor can execute their respective instructions simultaneously. The microprocessor interprets and executes the normal instruction set and the coprocessor interprets and executes only the coprocessor instructions. All the coprocessor instructions are ESC instructions i.e. they start with ''F'', Architecture of 8087 The  internal structure of the 8087 coprocessor is divided into two major sections : the control unit ( CU ) Numeric Execution Unit ( NEU ) Control Unit ( CU ) It interfaces the coprocessor to the microprocessor system bus. It also synchronized the operation of the coprocessor and the microprocessor. This unit has a control word, status word, and Data buffer. If an instruction is ESC instruction, then the coprocessor executes it. If not, then the microprocessor executes. Numeric Execution Unit ( NEU ) This unit is responsible for executing all copr...

Status, Control and Tag register in 8087 math co-processer

   Status Register The status register tells the overflow status of the 8087 coprocessor. It is a 16-bit register. It is accessed by executing the FSTSW instruction. This instruction stores the content of the status register in memory. Once the status is stored in memory the bit positions of the status register can be examined. Busy:  It indicates that the coprocessor is busy executing the task. Condition codes ( C0-C3 ):  They indicate various conditions about the coprocessor. Top of Stack : It indicates a register as the top of the stack out of the eight stack registers. Exception Flat:  It is set if any of the exception flag bits ( SF, PR, UF, OF, ZD, ZD, IO) are set. Stack Faul t : It is not available in 8087. It is active only in 80387 and above. Precision : It indicates that the result has exceeded the selected precision. Underflow : It tells if the result is too small to fit in a register. Overflow:  It tells if the result is too large to fit in a re...