Subject Name: Microprocessors Subject Code:10EC46 Department: Electronics and Communication Date:30-3-2015 11/21/2018
UNIT: 6 8086 BASED MULTIPROCESSSING SYSTEMS
Contents Coprocessor configurations. The 8087 numeric data processor Data types Processor architecture Instruction set
8087 Numeric Co-processor Need for a numeric co-processor It is possible to perform any calculations using only 8086. But if speed becomes important, it is necessary to use the dedicated Numeric co-processor Intel 8087, to speed up the matters. It typically provides a 100 fold speed increase for floating point operations. A numeric co-processor is also variously termed as arithmetic co-processor, math co-processor, numeric processor extension, numeric data processor, floating point processor etc.
8087 Pin diagram
Description of 8087 pins INT This is an active high output pin. The 8087 activates this pin whenever an exception occurs during 8087 instruction execution, provided the 8087 interrupt system is enabled and the relevant exceptions is not masked using the 8087 control register. The INT output of 8087 is connected directly to NMI or INTR input of 8086. Alternatively, INT output of 8087 is connected to an interrupt request input of 8259 Interrupt controller, which in turn interrupts the 8086 on its INTR input.
BUSY Suppose the 8086 is used in maximum mode and is required to wait for some result from the coprocessor 087 before proceeding with the next instruction. Then we can make the 8086 execute the WAIT hen the 8086 enters an idle state, where it is not performing any processing. The 8086 will stay in this idle state till TEST* input of 8086 is made 0 by the co-processor, indicating that the co-processor has finished its computation. When the 8087 is busy executing an arithmetic instruction, its BUSY output line will be in the 1 state. This pin is connected to TEST*pin of 8086. Thus when the BUSY pin is made 0 by the 8087 after the completion of execution of an arithmetic instruction, the 8086 will carry on with the next instruction after the WAIT instruction.
Internal Structure of the 80X87
8087 Data Types The 8087 always works on 80 bit data internally. This 80 bit floating point format is termed as Temporary Real format. However, it can read from memory a number, which is represented using any of the following data types. Signed integers of size 16, 32 or 64 bits b. 18 digit signed integer packed BCD number using 80 bits c. Floating point numbers using 32, 64, or 80 bits
1. Integer Data Types
2. Packed BCD type 3. 32 Bit Short real Short real (Single precision)
Example
4 . 64 bit Long Real
Example1 -64 bit Long Real
Temporary real
8087 Data types in a nut shell
Architecture-Interconnection of 8087 with 8086/88
Control Register of 8087 The contents of the control register, generally referred to as the Control word, direct the working of the 8087. A common way of loading the control register from a memory location is by executing the instruction ‘FLDCW src’, where ‘src’ is the address of a memory location. FLDCW stands for ‘Load Control Word’. For example, FLDCW [BX] instruction loads the control register of 8087 with the contents of the memory location whose 16 bit effective address is provided in BX register.
Cont… Precision control bits
Status register of 8087 The status register is 16 bits wide. The contents of the status register, generally referred to as the Status word, indicates the status of the 8087. The bit description of the status register is shown below.
Exception Pointer of 8087
Tag register of 8087 The Tag register is 16 bits wide. The contents of the Tag register indicates the status of each of the 80 bit registers of the 8087 The Tag register is loaded with a new value, when one of FINIT, FLDENV, or FRSTOR instructions are executed
Cont… Tag bits indicate the status of a stack register as shown below The Tag word is not normally used in programs. However it can be used to quickly interpret the contents of a floating point register, without the need for extensive decoding.
1. Data transfer instructions 2. Arithmetic instructions 8087 Instruction Set The instruction set of 8087 starts with F, stands for floating point. The instruction of 8087 numeric data processor can be classified into following six groups: 1. Data transfer instructions 2. Arithmetic instructions 3. Compare Instructions 4. Transcendental instructions 5. Load constant instructions 6. Processor control instructions
1. Data Transfer Instructions
Integer transfers
Packed Decimal Transfer
Arithmetic Instructions
Cont..
Cont…
Cont…
Cont…
Cont…
Compare Instructions These instructions compare the contents of ST with contents of specified or default source. The source may be another stack element or real number in memory. Such compare instructions set the condition code bits C3, C2 and C0 of the status words use as shown in the table below.
Cont…
4. Transcendental Instructions (Trigonometric and Exponential Instructions )
5. Load constant Instructions
6. Processor Control Instructions
Cont….
Thank you