Skip to main content

Bus Interface Unit of 8086

Short answer

The Bus Interface Unit (BIU) fetches instructions from memory into a 6-byte prefetch queue, generates 20-bit physical addresses by adding segment×16 plus offset, handles memory/I/O data transfers, and controls the multiplexed bus signals. It keeps the queue filled so the Execution Unit can execute without waiting, flushing and refetching on branches.

Explain Bus Interface Unit of 8086 microprocessor.

The Bus Interface Unit (BIU) is the part of the 8086 that connects the processor to the outside world (memory, I/O) through the system bus. It performs all bus operations on behalf of the Execution Unit (EU).

Functions

  • Fetches instruction bytes from memory and places them in the 6-byte instruction queue (pre-fetching) while the EU is busy.
  • Generates the 20-bit physical address by the address adder: segment register × 10H + offset.
  • Reads operands from memory or I/O and writes results back when the EU requests.
  • Generates the control signals (RD, WR, ALE, DEN, DT/R, M/IO) and controls the multiplexed address/data bus.
  • Flushes the queue and refetches when a jump, call or interrupt changes the program flow.

Main components

  1. Segment registers CS, DS, SS and ES.
  2. Instruction pointer (IP).
  3. Address adder (summing circuit).
  4. 6-byte instruction queue (FIFO).
  5. Bus control logic.

The BIU starts a fetch whenever two bytes of the queue are empty, so the EU usually finds the next instruction ready.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Microprocessor chapter 3 questions →