Pages

Search in This Blog

Sunday, 15 January 2012

EXplanation of 8086 architecture


BUS INTERFACE UNIT:
  • It provides a full 16 bit bidirectional data bus and 20 bit address bus.
  • The bus interface unit is responsible for performing all external bus operations.
  • Specifically it has the following functions:
  • Instruction fetch, Instruction queuing, Operand fetch and storage, Address relocation and Bus control.
  • The BIU uses a mechanism known as an instruction stream queue to implement a pipeline architecture.
  • This queue permits prefetch of up to six bytes of instruction code. When ever the queue of the BIU is not full, it has room for at least two more bytes and at the same time the EU is not requesting it to read or write operands from memory, the BIU is free to look ahead in the program by prefetching the next sequential instruction.
  • These prefetching instructions are held in its FIFO queue. With its 16 bit data bus, the BIU fetches two instruction bytes in a single memory cycle.
  • After a byte is loaded at the input end of the queue, it automatically shifts up through the FIFO to the empty location nearest the output.
  • The EU accesses the queue from the output end. It reads one instruction byte after the other from the output of the queue. If the queue is full and the EU is not requesting access to operand in memory.
  • These intervals of no bus activity, which may occur between bus cycles are known as Idle state.
  • If the BIU is already in the process of fetching an instruction when the EU request it to read or write operands from memory or I/O, the BIU first completes the instruction fetch bus cycle before initiating the operand read / write cycle.
  • The BIU also contains a dedicated adder which is used to generate the 20bit physical address that is output on the address bus. This address is formed by  adding an appended 16 bit segment address and a 16 bit offset address.
  • For example: The physical address of the next instruction to be fetched is formed by combining the current contents of the code segment CS register and the current contents of the instruction pointer IP register.
  • The BIU is also responsible for generating bus control signals such as those for memory read or write and I/O read or write.
EXECUTION UNIT
  • The Execution unit is responsible for decoding and executing all instructions.
  • The EU extracts instructions from the top of the queue in the BIU, decodes them, generates operands if necessary, passes them to the BIU and requests it to perform the read or write bys cycles to memory or I/O and perform the operation specified by the instruction on the operands.
  • During the execution of the instruction, the EU tests the status and control flags and updates them based on the results of executing the instruction.

No comments:

Post a Comment