15936_Interrupts 1 and 8086

Embed Size (px)

Citation preview

  • 7/30/2019 15936_Interrupts 1 and 8086

    1/54

    Interrupts

  • 7/30/2019 15936_Interrupts 1 and 8086

    2/54

    Interrupt is a process where an external device can get the attention of the microprocessor.

    The process starts from the I/O device

    An interrupt is considered to be an emergency signal. The Microprocessor should respond to it as

    soon as possible.

    When the Microprocessor receives an interrupt signal it complete the currently executing

    instruction & store the content of program counter (address of next instruction to be fetched)

    onto stack and jumps to an Interrupt Service Routine(ISR) to respond to the incoming

    interrupt.

    After interrupt request accepted processor generate INTA (interrupt Acknowledge)

    Each interrupt have its own ISR.

    Interrupts can be classified into two types:

    1. Hardware Interrupt: MPU pin used to receive interrupt request

    2. Software Interrupt: The cause of interrupt is an execution of instruction.

    When interrupt is active 8085 execute a CALL instruction to predefined location.

  • 7/30/2019 15936_Interrupts 1 and 8086

    3/54

    Hardware Interrupt

    8085 have 5 hardware interrupt

    TRAP RST 7.5 RST 6.5 RST 5.5 & INTR

    Location from where subroutine is referred as Vector Location.--- Called Vectored

    Interrupt

    TRAP, RST7.5, RST 6.5 & RST5.5 are vectored interrupt. These interrupt transfer

    program control to predetermined location

    INTR is a non-vectored interrupt, it requires external hardware for subroutine address.

    Responding to Interrupts: Responding to an interrupt may be immediate or delayed

    depending on whether the interrupt is maskable or non-maskable

    TRAP has highest priority, Non maskable interrupt

    INTR has lowest priority

    TRAP is Level sensitive and edge sensitive

    RST 7.5 +edge sensitive

    RST 6.5, RST 5.5 & INTR are level sensitive

  • 7/30/2019 15936_Interrupts 1 and 8086

    4/54

    Software Interrupt

    8085 have 8 software interrupt. RST0 RST 7

    Vector address calculated as

    All interrupts are mapped onto a memory area

    called the Interrupt Vector Table(IVT).

    The purpose of the IVT is to hold the vectors that

    redirect the microprocessor to the right place when

    an interrupt arrives.

    The IVT is divided into several blocks. Each block is

    used by one of the interrupts to hold its address.

    The 8085 recognizes 8 RESTART instructions:

    RST0 -RST7.

    Each of these RST would send the execution to a

    memory location

  • 7/30/2019 15936_Interrupts 1 and 8086

    5/54

  • 7/30/2019 15936_Interrupts 1 and 8086

    6/54

    Sequence for INTR

    1) 8085 checks the status of INTR during execution of each instruction2) 8085 complete current instruction and send INTA (interrupt acknowledge)

    3) In response to INTA external logic place OPCODE on the data bus

    4) 8085 save the address of next instruction on the stack and execute received

    instruction

  • 7/30/2019 15936_Interrupts 1 and 8086

    7/54

    Restart Instruction

    The restart sequence is made up of three machine cycles

    In the 1st machine cycle:

    The microprocessor sends the INTA signal.

    Program counter holds the address of next instruction to be store in stack, data

    lines opcode of RST instruction receive from the interrupting device

    6T state

    In the 2nd machine cycles:

    High order address of program counter placed on (SP-1) address. 3- T state

    In the 3rd machine cycles:

    Low order address of program counter placed on (SP-2) address. 3- T state

    Then the microprocessor jumps to the address associated with the specified RST

    instruction

  • 7/30/2019 15936_Interrupts 1 and 8086

    8/54

    Set Interrupt Mask(SIM)

    This instruction used to set/mask interrupt or send serial data.

    It transfer content of accumulator to interrupt control logic

    It is necessary to appropriate content before execution of SIM instruction

  • 7/30/2019 15936_Interrupts 1 and 8086

    9/54

    Bit 0 is the mas kfor RST 5.5 bit 1 is the mask for RST 6.5 and bit 2 is the mask for RST 7.5.If the mask bit is 0 the interrupt is available.

    If the mask bit is 1, the interrupt is masked.

    Bit 3 (Mask Set Enable -MSE) is an enable for setting the mask.

    If it is set to 0 the mask is ignored and the old settings remain.

    If it is set to 1 the new setting are applied.

    Bit 4 of the accumulator in the SIM instruction allows explicitly resetting the RST 7.5 memory

    even if the microprocessor did not respond to it.

    Bit 5 is not used by the SIM instruction

    Bit 6 is used to tell the microprocessor whether or not to perform serial data transmission

    If 0 then do not perform serial data transmission

    If 1 then not perform serial data transmission

    The value to be sent out on SOD has to be placed in bit 7 of the accumulator

  • 7/30/2019 15936_Interrupts 1 and 8086

    10/54

    Example

    Set the interrupt masks so that RST5.5 is enabled, RST6.5 is masked and

    RST7.5 is enabled.

    First determine the contents of the accumulator

  • 7/30/2019 15936_Interrupts 1 and 8086

    11/54

    Read Interrupt Mask(RIM)

    Since the 8085 has five interrupt lines interrupts may occur during an ISR

    and remain pending.

    Using the RIM instruction the programmer can read the status of the

    interrupt lines and find if there are any pending interrupts

    -- RIM instruction allow the serial input data

  • 7/30/2019 15936_Interrupts 1 and 8086

    12/54

    Example

    Set the mask to enable RST6.5 without modifying the masks for RST5.5 and RST7.5.

  • 7/30/2019 15936_Interrupts 1 and 8086

    13/54

    The 8259A programmable Interrupt Controller The 8259A is a programmable interrupt controller designed to work with

    Intel microprocessors 8085, 8086, and 8088. The 8259A interrupt

    controller can

    1. manage eight interrupt according to the instructions written into its control

    registers. This is equivalent to providing eight interrupt pins on the

    processor in place of one INTR (8085) pin.

    2. vector an interrupt request anywhere in the memory map. However, all

    eight interrupts are spaced at the interval of either four or eight locations.

    This eliminates the major drawback of the 8085 interrupts in which all

    interrupts are vectored to memory locations on page 00H.

    3. Resolve eight levels of interrupt priorities in a variety of modes, such as

    fully nested mode, automatic rotation mode, and specific rotation mode

    4. Mask each interrupt request individually.

    5. Read the status of pending interrupts, in-service interrupts, and maskedinterrupts.

    6. Be set up to accept either the level-triggered or the edge-triggered

    interrupt request.

    7. Be expanded to 64 priority levels by cascading additional 8259As.

    8. Be set up to work with either the 8085 microprocessor mode or the

  • 7/30/2019 15936_Interrupts 1 and 8086

    14/54

    Block Diagram of 8259A

    It includes eight blocks: control logic,

    read/write logic, data bus buffer, three

    registers (IRR, ISR, and IMR), priority resolver,

    cascade buffer.

  • 7/30/2019 15936_Interrupts 1 and 8086

    15/54Block Diagram of 8259

  • 7/30/2019 15936_Interrupts 1 and 8086

    16/54

    Read/Write Logic

    This is typical Read/Write control logic. When the address line A0 is at logic 0,

    the controller is selected to write a command or read a status . The chip

    select logic and A0 determine the port address of the controller.

    Control LogicThis block has two pins: INT (Interrupt) as an output, and INTA (Interrupt

    Acknowledge) as an input. The INT is connected to the interrupt pin of the

    MPU. Whenever a valid interrupt is asserted, this signal goes high. The

    INTA is the Interrupt Acknowledge signal from the MPU.

    Interrupt Registers and Priority Resolver

    The interrupt Request Register (IRR) has eight input lines (IR0-IR7) for

    interrupts. When these lines go high, the requests are stored in the

    register. The In-service Register (ISR) stores all the levels that are currently

    being serviced, and the Interrupt masked Register (IMR) stores the

    masking bits of the interrupt lines to be masked. The Priority resolver (PR)examines these registers and determines whether INT should be sent to

    the MPU.

    Cascade Buffer/Comparator

    This block is used to expand the number of interrupt levels by cascading two

    or more 8259As.

    I O i

  • 7/30/2019 15936_Interrupts 1 and 8086

    17/54

    Interrupt Operation To implement interrupts, the Interrupt Enable flip-

    flop in the microprocessor should be enabled by

    writing the EI instruction, and the 8259A should beinitialized by writing control words in the control

    register.

    The 8259A requires two types of control words.

    Initialization Command Words (ICWs) and

    Operational Command Words (OCWs). The ICWs are

    used to set up the proper conditions and specify RST

    vector addresses. The OCWs are used to perform

    functions such as masking interrupts, setting up

    status-read operations, etc.

    Aft th 8259A i i iti li d th f ll i f t h

  • 7/30/2019 15936_Interrupts 1 and 8086

    18/54

    After the 8259A is initialized, the following sequence of events occurs when one or

    more interrupt request lines go high:

    1. The IRR stores the requests.

    2. The priority resolver checks three registers: the IRR for interrupt requests, the

    IMR for masking bits, and the ISR for the interrupt request being served. It

    resolves the priority and sets the INT high when appropriate.

    3. The MPU acknowledge the interrupt by sending INTA.

    4. After the INTA is received, the appropriate priority bit in the ISR is set to indicate

    which interrupt level is being served, and the corresponding bit in the IRR is

    reset to indicate that the request is accepted. Then, the opcode for the CALL

    instruction is placed on the data bus.5. When the MPU decodes the CALL instruction, it places two more INTA signals on

    the data bus.

    6. When the 8259 receives the second INTA, it places the low order byte of the

    CALL address on the data bus. At the third INTA, it places the high order byte on

    the data bus. The CALL address is the vector memory location for the interrupt;

    this address is placed in the control register during the initialization.

    7. During the third INTA pulse, the ISR bit is reset either automatically

    (Automatically-End-of-Interrupt-AEOI) or by a command word that must be

    issued at the end of the service routine (End-of-Interrupt-EOI). This option is

    determined by the initialization command word.

    8. The program sequence is transferred to the memory location specified by theCALL instruction.

  • 7/30/2019 15936_Interrupts 1 and 8086

    19/54

    Priority Modes and Other Features

    Many types of priority modes are available

    under software control in the 8259A, and they

    can be changed dynamically during the

    program by writing appropriate commandwords.

    Commonly used priority modes:

    1. Fully nested mode

    2. Automatic Rotation mode

    3. Specific Rotation mode

  • 7/30/2019 15936_Interrupts 1 and 8086

    20/54

    End of Interrupt

    After the completion of an interrupt service, the

    corresponding ISR bit needs to be reset to

    update the information in the ISR. This is

    called the END-of-Interrupt (EOI) command. It

    can be issued in three formats:

    1. Non specific EOI command

    2. Specific EOI command

    3. Automatic EOI

  • 7/30/2019 15936_Interrupts 1 and 8086

    21/54

    Additional Features of 8259A

    The 8259A is a complex device with various modes of

    operation.

    Interrupt Triggering: The 8259A can accept an interrupt

    request with either the edge-triggered mode or the level-

    triggered mode. The mode is determined by the initialization

    instructions.

    Interrupt Status: The status of three interrupt registers (IRR,

    ISR, and IMR) can be read, and this status information can be

    used to make the interrupt process versatile.

    Poll Method: The 8259A can be set up to function in a polled

    environment. The MPU polls the 8259A rather than each

    peripheral.

  • 7/30/2019 15936_Interrupts 1 and 8086

    22/54

  • 7/30/2019 15936_Interrupts 1 and 8086

    23/54

    8259-Programmable Interrupt Controller

    It is programmed to work with either 8085 or 8086 processor.

    It manage 8-interrupts according to the instructions written into itscontrol registers.

    If we save NMI for a power failure interrupt, this leaves only oneinterrupt for all the other applications.

    For applications where we have interrupts from multiple source, weuse an external device called apriority interrupt controller ( PIC ) tothe interrupt signals into a single interrupt input on the processor.

    The interrupts can be masked or unmasked individually.

    The 8259s can be cascaded to accept a maximum of 64 interrupts.

    All the interrupt can be prioritizeEach interrupt request individually

    Set up to either edge trigger or level triggered interrupt

    Vector address of Interrupt assigned by user

  • 7/30/2019 15936_Interrupts 1 and 8086

    24/54

    Block Diagram

  • 7/30/2019 15936_Interrupts 1 and 8086

    25/54

    It has eight functional blocks. They are

    1) Control logic-- This block manages the interrupt and interrupt acknowledge signals tobe sent to the CPU for serving one of the eight interrupt requests.

    2) Read Write logic--- This circuit accepts and decodes commands from the CPU. Thisblock also allows the status of the 8259A to be transferred on to the data bus.

    3) Data bus buffer

    4) Interrupt Request Register (IRR)keeps information of incoming interrupt

    5) In-Service Register (ISR)keeps information of interrupt currently executed

    6) Interrupt Mask Register (IMR)keeps information of interrupt can be masked

    7) Priority Resolver (PR)checks the priority of incoming interrupt

    8) Cascade buffer:---The data bus and its buffer are used for the following activities.

    The processor sends control word to data bus buffer through D0-D7.The processor read status word from data bus buffer through D0-D7

    From the data bus buffer the 8259 send type number (in case of 8086) or the call opcodeand address (in case of 8085) through D0-D7 to the processor.

  • 7/30/2019 15936_Interrupts 1 and 8086

    26/54

  • 7/30/2019 15936_Interrupts 1 and 8086

    27/54

    Signal Description

    CS: This is an active-low chip select signal for enabling RD and WR operations of 8259A.

    RD : This is an active-low read enable input to 8259A. A low on this line enables 8259A to release status

    onto the data bus of CPU.

    The processor uses the RD (low), WR (low) and A0 to read or write 8259.

    D0-D7 : These pins from a bidirectional data bus that carries 8-bit data either to control word or from

    status word registers. This also carries interrupt vector information.CAS0CAS2 Cascade Lines : A single 8259A provides eight vectored interrupts. If more interrupts are

    required, the 8259A is used in cascade mode. In cascade mode, a master 8259A along with eight slaves

    8259A can provide up to 64 vectored interrupt lines. These three lines act as select lines for addressing

    the slave 8259A.

    SP/EN : (Slave program/ Enable Buffer)This pin is a dual purpose pin. When the chip is used in

    buffered mode, it can be used as buffered enable to control buffer transreceivers. If this is not used inbuffered mode then the pin is used as input to designate whether the chip is used as a master (SP =1) or

    slave (EN = 0).

    INT : This pin goes high whenever a valid interrupt request is asserted. This is used to interrupt the CPU

    and is connected to the interrupt input of CPU.

    IR0IR7 (Interrupt requests) :These pins act as inputs to accept interrupt request to the CPU

    A0- Command Select Address

  • 7/30/2019 15936_Interrupts 1 and 8086

    28/54

  • 7/30/2019 15936_Interrupts 1 and 8086

    29/54

    8279 Keyboard & Display

    Intels 8279 is a general purpose keyboard display controller.

    It is a hardware approach to interface matrix keyboard and multiplexed display.

    It simultaneously drives the display of a system and interfaces a keyboard with the CPU.

    8279 has two major segment (1) Keyboard (2) Display

    Keyboard segment connected to 64-contact key matrix.

    Display segment provide 16 character scanned display interface (LED). Keyboard entries are denounce and stored in FIFO; an interrupt signal generated with each

    entry.

    Display segment has 16*8 R/W RAM. Which can be used to read /write for display.

    It provides 3 input for keyboard

    (1) Scanned keyboard (2) Scanned sensor Keyboard (3) Strobed Input mode

    8279 are divided into 4 functional group

    CPU Interface Keyboard Scan Display

  • 7/30/2019 15936_Interrupts 1 and 8086

    30/54

    Block Diagram

  • 7/30/2019 15936_Interrupts 1 and 8086

    31/54

    CPU interface section:The CPU interface section takes care of data transfer between 8279 and the processor.

    This section has eight bidirectional data lines DB0 to DB7 for data transfer between

    8279 and CPU.

    It requires two internal address A0 =0 for selecting data buffer and A0 = 1 for selectingcontrol register of 8279.

    The control signals WR (low), RD (low), CS (low) and A0 are used for read/write to

    8279.

    It has an interrupt request line IRQ, for interrupt driven data transfer with processor.

    The 8279 require an internal clock frequency of 100 kHz. This can be obtained bydividing the input clock by an internal prescaler.

    The RESET signal sets the 8279 in 16-character display with two -key lockout

    keyboard modes.

  • 7/30/2019 15936_Interrupts 1 and 8086

    32/54

    I/O Control and Data Buffers :

    The I/O control section controls the flow of data to/from the 8279.The data buffers interface the external bus of the system with internal bus of 8279.

    The I/O section is enabled only if CS is low.

    The pins A0, RD and WR select the command, status or data read/write operations carried out by theCPU with 8279

    Control and Timing Register and Timing Control :These registers store thekeyboard and display modes and other operating conditions programmed by

    CPU.

    The Timing and control unit controls the basic timings for the operation of the circuit.

    Scan counter divide down the operating frequency of 8279 to derive scan keyboard and scan displayfrequencies.

  • 7/30/2019 15936_Interrupts 1 and 8086

    33/54

    Scan Counter :The scan counter has 4 scan counter and 4 scan line (SL0-SL3)

    These 4 scan line can be decoded using 4 to 16 decoder to generate 16 lines for

    scanning.

    These line connected to row of a matrix keyboard and digit drivers of display.The scan counter has two modes to scan the key matrix and refresh the display.

    In the encoded mode, the counter provides binary count 0000 to 1111 that is to be

    externally decoded to provide the scan lines SL0-SL3 for keyboard and display.

    Binary count must be externally decoded.

    In the decode scan mode, the counter internally decodes the least significant 2 bitsand provides 4 possible combination 1110,1101,1011,0111 on scan on SL0-SL3.

    The output of these line are active low

  • 7/30/2019 15936_Interrupts 1 and 8086

    34/54

    Keyboard Section

    Keyboard section consist of eight line (RL0-RL7) connected to eight column of

    keyboard and two additional lines SHIFT and CNTL/STB.

    Status of the SHIFT and Control key can be stored along with key closure.

    The keys are automatically denounced.

    The keyboard can operate in two mode

    (1) Two-key lock out (2) N-Key Roll over

    In Two-key lock out mode if two keys are pressed almost simultaneously only the

    first key are recognized.

    In N-Key roll over mode simultaneous keys are recognized and their code are

    stored in the internal buffer. (No key recognized until only one key remains

    pressed) The keyboard section also includes 8*8 FIFO RAM.

    FIFO RAM consist of 8 register that can store keyboard entries.

    Each entries read in order

    Status logic keeps track of number of entries and provides the IRQ(Interrupt

    Request) signal when the FIFO is not empty.

  • 7/30/2019 15936_Interrupts 1 and 8086

    35/54

    Keyboard denounce control looking for key closures in that row.

    In scanned keyboard only if denounce circuit detect a close switch it wait for10 msec. After the denounce period, if the key continues to be detected. The code ofkey is directly transferred to the sensor RAM along with SHIFT and CONTROL keystatus.

    FIFO RAM status keeps track the number of character in the FIFO and whether it isfull or empty.

    In scan sensor matrix mode pressed key is arranged in the form of matrix In strobed input mode pressed key information will be stored in FIFO RAM.

    (SCAN) (RETURN)

  • 7/30/2019 15936_Interrupts 1 and 8086

    36/54

    The display section has eight output lines divided into two groups A0-A3 and B0-B3.

    These line used either 8 line or two group of 4 lines.

    This section consist of 16*8 display RAM. MPU read from or write into any of theseregister.

    The display address register holds the address of the word currently being written or read by

    the CPU to or from the display RAM.The contents of the registers are automatically updated by 8279 to accept the next data entry

    by CPU.

    The 8279 provides two basic output mode

    left Entry (Typewriter)Display character left to right

    Right Entry (Calculator)Display character right to left

    If auto increment flag is set to1 after each write operation Display RAM address isincremented by one.

    Display Section

  • 7/30/2019 15936_Interrupts 1 and 8086

    37/54

    Pin Diagram

  • 7/30/2019 15936_Interrupts 1 and 8086

    38/54

    Interfacing Scheme

  • 7/30/2019 15936_Interrupts 1 and 8086

    39/54

    Signal Description

    DB0-DB7 : These are bidirectional data bus lines. The data and command words toand from the CPU are transferred on these lines.

    CLK : This is a clock input used to generate internal timing required by 8279.

    RESET : This pin is used to reset 8279. A high on this line reset 8279. Afterresetting 8279, its in sixteen 8-bit display, left entry encoded scan, 2-key lock outmode. The clock prescaler is set to 31.

    CS : Chip SelectA low on this line enables 8279 for normal read or writeoperations. Other wise, this pin should remain high.

    A0 : A high on this line indicates the transfer of a command or status information. Alow on this line indicates the transfer of data. This is used to select one of theinternal registers of 8279.

    RD, WR (Input/output ) READ/WRITEThese input pins enable the data buffersto receive or send data over the data bus.

    IRQ : This interrupt output lines goes high when there is a data in the FIFO sensorRAM. The interrupt lines goes low with each FIFO RAM read operation but if theFIFO RAM further contains any key-code entry to be read by the CPU, this pinagain goes high to generate an interrupt to the CPU.

    Vss, Vcc : These are the ground and power supply lines for the circuit.

  • 7/30/2019 15936_Interrupts 1 and 8086

    40/54

    8086-Processor

  • 7/30/2019 15936_Interrupts 1 and 8086

    41/54

    8086 is a 16 bit microprocessor.

    It has 16-bit ALU, internal register and instruction are designed to work with 16 bitbinary word.

    8086 has 16 bit data bus. It can read or write data to memory and port either 16 bit or

    8 bit at a time.

    8086 has a 20 bit address bus can access up to 2^20 memory locations or 10,48,576

    (1MB).

    8086 can generate 16-bit I/O address, hence it cam access 2^16 = 65576 I/O ports8086 provides fourteen 16 bit register.

    It has multiplexed address and data bus AD0- AD15 and A16A19. it reduces the

    number of pins

  • 7/30/2019 15936_Interrupts 1 and 8086

    42/54

    8086 is designed to operate in two modes Minimum and

    Maximum. When only one 8086 CPU is used in a

    microcomputer 8086 in minimum mode. When 8086 used in

    multiprocessing system 8086 used in maximum mode. In

    maximum mode external bus controller(8288) required.

    It can prefetches upto 6 instruction bytes from memory and

    queues the min order to speed up instruction execution.

  • 7/30/2019 15936_Interrupts 1 and 8086

    43/54

    8086 has eight 8-bit register(AH,AL,BH,L,CH,CL,DH,DL) which can be

    used as for 16 bit (AX,BX,CX,DX) by clubbing.8086 have 4 segment register (code segment, data segment, extended segment,

    source segment.)

    8086 have 16 bit flag register

    8086 have 4 index register and one Instruction pointer register.

    Register organization/ programming model

  • 7/30/2019 15936_Interrupts 1 and 8086

    44/54

    Segment Register8086 divides 1MB memory into 4.

    segment.

    Each segment is 64 KB

    Any location in segment access by 16 bit

    Segment used to hold upper 16-bit ofstarting address of the memory

    segment on which 8086 works in a

    particular time.

    Starting address of segment also known

    as base address.

    BIU insert zero for a lower 4-bit(nibble)

    in the content of segment register to

    generate 20-bit address.

  • 7/30/2019 15936_Interrupts 1 and 8086

    45/54

    CS(code segment) register holds upper 16-bit of the starting

    address of the segment from which BIU currently fetching theinstruction code.

    SS(stack segment) register is used for upper 16-bit of the starting

    address for stack register.

    ES(extended segment) and DS(data segment) register are used tohold the upper 16-bit of the starting address of the segment

    which are used for data transfer.

    Segment are 16 bit register. To generate 20-bit physical address

    pointer or index register used with each segment.

    IP associated with Code Segment BP associated with Data

    Segment SP associated with Stack Segment

    Index register holds the offset within code, data and stack

    segment.

  • 7/30/2019 15936_Interrupts 1 and 8086

    46/54

    Architecture of 8086

    8086 internally divide into two separate unit Bus interface

    unit(BIU) and Execution unit(EU).

    These two functional unit works simultaneously to increase

    system speed and throughput.

    Throughput is measure of number of instruction executed per unit

    time.

  • 7/30/2019 15936_Interrupts 1 and 8086

    47/54

  • 7/30/2019 15936_Interrupts 1 and 8086

    48/54

  • 7/30/2019 15936_Interrupts 1 and 8086

    49/54

  • 7/30/2019 15936_Interrupts 1 and 8086

    50/54

    BIS INTERFACE UNIT

    BIU provide 16-bit data bus 20-bit address bus interface to the outside world.

    The BIU performs all bus operations

    Send address of memory or I/O

    fetches instruction from memory

    read data from port/memory

    write data into port/memorysupports instruction queuing

    Address relocation facility.

    BIU contains Instruction queue, Segment registers, Instruction pointer, Address

    summer and bus control logic

  • 7/30/2019 15936_Interrupts 1 and 8086

    51/54

    Instruction Queue

    To speed up the program execution BIU fetches 6 instruction

    ahead if time.

    These prefetches instruction are held in queue for the execution.

    Queue operate on the FIFO principal

    In 8086 it is possible to fetch next instruction while current

    instruction is in execution

    While execution unit is busy with executing current instruction

    BIU fetches the next instruction and stores in queue.

    BIU continue this process as the queue is not full; instruction is

    always ready for EU and fetch time eliminated.

  • 7/30/2019 15936_Interrupts 1 and 8086

    52/54

    Feature of execution next instruction while current

    instruction is execution is called PIPILINING

  • 7/30/2019 15936_Interrupts 1 and 8086

    53/54

    Execution Unit

    Execution unit of 8086 tells from where to fetch instruction or data.

    It contains ALU, Flag register, Instruction decoder, Pointer & index

    register, control circuit.

    806 have 16-bit flag register

  • 7/30/2019 15936_Interrupts 1 and 8086

    54/54

    Lower 5 Sign, Zero, Carry, Auxiliary Carry, Parity flag are

    similar to 8085.

    Overflow flag(OF):- This flag set if result if out of range.

    Trap flag(TF):- Trap flag used for single step debugging through

    a program. If TF is set after execution of each instruction

    result is displayed in registers. Programmer can easily trace

    and correct the error.

    Interrupt flag(IF):- It is used to allow the interruption of

    program.

    Direction flag(DF):- It is used with string instruction. If DF=0

    string is processed from beginning with first element having

    lowest address. Otherwise string is processws from high to low