Architecture of 8086

The Intel 8086 is a 16-bit microprocessor intended to be used as the CPU in a microcomputer. The term “16-bit” means that its arithmetic logic unit, internal registers, and most of its instructions are designed to work 16-bit binary words. It has 16-bit data bus and 20-bit address bus.
words will be stored in two consecutive memory locations. If the first byte of a word is at an even address, the 8086 can read the entire word in one operation. If the first byte of the word is at an odd address, the 8086 will read the first byte in one operation, and the second byte in another operation.
Following figure shows the internal block diagram of 8086 microprocessor. 

 

The Bus Interface Unit

The BIU handles all data and addresses on the buses for the execution unit such as it sends out addresses, fetches instructions from memory, reads data from ports and memory as well as writes data to ports and memory. In BIU there are so many functional groups or parts these are as follows.

Instruction Queue

To increase the execution speed, BIU fetches as many as six instruction bytes ahead to time from memory. The pre fetched instruction bytes are held for the EU in a first in first out group of registers called a instruction queue. When the EU is ready for its next instruction, it simply reads the instruction from this instruction queue. This is much faster than sending out an address to the system memory and to send back the next instruction byte. Fetching the next instruction while the current instruction executes is called pipelining.

COMPARISION

Features of the 8086:
– A data width of 2 byte is attained by the de multiplexing of AD0 to AF15 pins.

– The instruction queue is of 6 bytes.

– From the memory the fetching of a program is performed only once there are 2 byte empty in queue.

– The BIU of 8086 is not as same as in the 8088 but the EU is similar.

Features of the 8088:

– It requires a 1 byte data width which is generated after the de multiplexing of AD0 to AD7 pins.

– The instruction queue is 4-bytes.

– Program fetching is performed as soon as there is a byte empty in queue.