Bus Interface Unit(BIU)
The Bus Interface Unit (BIU): It provides the interface of 8086 to external memory and I/O
devices via the System Bus. It performs various machine cycles such as memory read, I/O read
etc. to transfer data between memory and I/O devices. It generates the 20 bit physical address for
memory access.
Instruction Queue:
To speed up program execution, the BIU fetches six instruction bytes ahead of time
from the memory. These prefetched instruction bytes are held for the execution unit in a group of
registers called Queue. With the help of queue it is possible to fetch next instruction when
current instruction is in execution. For example, current instruction in execution is a
multiplication instruction. In Internal Architecture of 8086, operands for multiplication
operations are within registers. Still it requires 100 clock cycles to execute multiply instruction.
Like multiplication there are number of other instructions in 3086 which need a quite a large
number- of clock cycles for execution. During this execution time the BIU fetches the next
instruction or instructions from memory into the instruction queue instead of remaining idle. The
BIU continues this process as long as the queue is not full. Due to this, execution unit gets the
ready instruction in the queue and instruction fetch time is eliminated.
The queue operates on the principle first in first out (FIFO). So that the execution unit
gets the instructions for execution in the order they are fetched. In case of JUMP and CALL
instructions, instruction already fetched in queue are of no use. Hence, in these cases queue is
dumped and newly formed by loading instructions from new address specified by JUMP or
CALL instruction. Feature of fetching the next instruction while the current instruction is
executing is called pipelining.
Memory segmentation
The 8086 has a 20 –bit address bus, in memory data is stored as bytes . each byte has a
specific address with 20 address lines, the memory that can be addressed is 20 20 bytes. This will
amount to 1048516 bytes. Thus the 8086 can access a physical memory with addresses ranging
from 00000 to FFFFFH. A 20 bit physical address is to be placed on the address bus to access
any location in memory.
Segmentation : is the process in which the main memory of the computer is logically divided
into different segments and each segment has its own base address. It is basically used to
enhance the speed of execution of the computer system, so that the processor is able to fetch and
execute the data from the memory easily and fast.
Need for Segmentation –
The Bus Interface Unit (BIU) contains four 16 bit special purpose registers (mentioned below)
called as Segment Registers.
The Bus Interface Unit (BIU): It provides the interface of 8086 to external memory and I/O
devices via the System Bus. It performs various machine cycles such as memory read, I/O read
etc. to transfer data between memory and I/O devices. It generates the 20 bit physical address for
memory access.
Instruction Queue:
To speed up program execution, the BIU fetches six instruction bytes ahead of time
from the memory. These prefetched instruction bytes are held for the execution unit in a group of
registers called Queue. With the help of queue it is possible to fetch next instruction when
current instruction is in execution. For example, current instruction in execution is a
multiplication instruction. In Internal Architecture of 8086, operands for multiplication
operations are within registers. Still it requires 100 clock cycles to execute multiply instruction.
Like multiplication there are number of other instructions in 3086 which need a quite a large
number- of clock cycles for execution. During this execution time the BIU fetches the next
instruction or instructions from memory into the instruction queue instead of remaining idle. The
BIU continues this process as long as the queue is not full. Due to this, execution unit gets the
ready instruction in the queue and instruction fetch time is eliminated.
The queue operates on the principle first in first out (FIFO). So that the execution unit
gets the instructions for execution in the order they are fetched. In case of JUMP and CALL
instructions, instruction already fetched in queue are of no use. Hence, in these cases queue is
dumped and newly formed by loading instructions from new address specified by JUMP or
CALL instruction. Feature of fetching the next instruction while the current instruction is
executing is called pipelining.
Memory segmentation
The 8086 has a 20 –bit address bus, in memory data is stored as bytes . each byte has a
specific address with 20 address lines, the memory that can be addressed is 20 20 bytes. This will
amount to 1048516 bytes. Thus the 8086 can access a physical memory with addresses ranging
from 00000 to FFFFFH. A 20 bit physical address is to be placed on the address bus to access
any location in memory.
Segmentation : is the process in which the main memory of the computer is logically divided
into different segments and each segment has its own base address. It is basically used to
enhance the speed of execution of the computer system, so that the processor is able to fetch and
execute the data from the memory easily and fast.
Need for Segmentation –
The Bus Interface Unit (BIU) contains four 16 bit special purpose registers (mentioned below)
called as Segment Registers.