Functional units of 8086

8086 contains two independent functional units: a Bus Interface Unit (BIU) and an Execution Unit (EU).

8086 Microprocessor

Fig: Block Diagram of Intel 8086 Microprocessor (8086 Architecture)

Bus Interface Unit (BIU)

The segment registers, instruction pointer and 6-byte instruction queue are associated with the bus interface unit (BIU).

The BIU:

  • Handles transfer of data and addresses,
  • Fetches instruction codes, stores fetched instruction codes in first-in-first-out register set called a queue,
  • Reads data from memory and I/O devices,
  • Writes data to memory and I/O devices,
  • It relocates addresses of operands since it gets un-relocated operand addresses from EU. The EU tells the BIU from where to fetch instructions or where to read data.

It has the following functional parts:

  • Instruction Queue: When EU executes instructions, the BIU gets 6-bytes of the next instruction and stores them in the instruction queue and this process is known as instruction pre fetch. This process increases the speed of the processor.
  • Segment Registers: A segment register contains the addresses of instructions and data in memory which are used by the processor to access memory locations. It points to the starting address of a memory segment currently being used.
    There are 4 segment registers in 8086 as given below:
    • Code Segment Register (CS): Code segment of the memory holds instruction codes of a program.
    • Data Segment Register (DS): The data, variables and constants given in the program are held in the data segment of the memory.
    • Stack Segment Register (SS): Stack segment holds addresses and data of subroutines. It also holds the contents of registers and memory locations given in PUSH instruction.
    • Extra Segment Register (ES): Extra segment holds the destination addresses of some data of certain string instructions.
  • Instruction Pointer (IP): The instruction pointer in the 8086 microprocessor acts as a program counter. It indicates to the address of the next instruction to be executed.

Execution Unit (EU)

  • The EU receives opcode of an instruction from the queue, decodes it and then executes it. While Execution, unit decodes or executes an instruction, then the BIU fetches instruction codes from the memory and stores them in the queue.
  • The BIU and EU operate in parallel independently. This makes processing faster.
  • General purpose registers, stack pointer, base pointer and index registers, ALU, flag registers (FLAGS), instruction decoder and timing and control unit constitute execution unit (EU). Let's discuss them:
  • General Purpose Registers: There are four 16-bit general purpose registers: AX (Accumulator Register), BX (Base Register), CX (Counter) and DX. Each of these 16-bit registers are further subdivided into 8-bit registers as shown below:
16-bit registers8-bit high-order registers8-bit low-order registers
AXAHAL
BXBHBL
CXCHCL
DXDHDL
  • Index Register: The following four registers are in the group of pointer and index registers:
    • Stack Pointer (SP)
    • Base Pointer (BP)
    • Source Index (SI)
    • Destination Index (DI)
  • ALU: It handles all arithmetic and logical operations. Such as addition, subtraction, multiplication, division, AND, OR, NOT operations.
  • Flag Register: It is a 16?bit register which exactly behaves like a flip-flop, means it changes states according to the result stored in the accumulator. It has 9 flags and they are divided into 2 groups i.e. conditional and control flags.
    • Conditional Flags: This flag represents the result of the last arithmetic or logical instruction executed. Conditional flags are:
      • Carry Flag
      • Auxiliary Flag
      • Parity Flag
      • Zero Flag
      • Sign Flag
      • Overflow Flag
    • Control Flags: It controls the operations of the execution unit. Control flags are:
      • Trap Flag
      • Interrupt Flag
      • Direction Flag

Comments

Popular posts from this blog

8086 pins configuration

Architecture of 8086

Assignment Questions (Subject:- Microprocessor and Microcontroller)