BIU and EU of 8086 MP
The Bus Interface unit (BIU)
Different Parts of BIU
Instruction Queue
Segment Register
Code segment (CS)
Stack segment (SS)
Extra segment (ES)
Data segment (DS)
Instruction Pointer
Size: 168.5 KB
Language: en
Added: Dec 17, 2019
Slides: 13 pages
Slide Content
Topic: Bus Interface Unit(BIU) of 8086 MP 1
Contents BIU and EU of 8086 MP The Bus Interface unit (BIU) Different Parts of BIU Instruction Queue Segment Register Code segment (CS) Stack segment (SS) Extra segment (ES) Data segment (DS) Instruction Pointer Page 2 out of 13
BIU and EU of 8086 MP The 8086 micro-processor is organized as two separate units, called the Bus Interface Unit (BIU) and the Execution Unit (EU). The BIU provides generation of the memory and I/O addresses for the transfer of data. Page 3 out of 13
The Bus Interface unit (BIU) H andles all transfer of data and addresses on the buses for the EU. This unit sends out addresses Fetches instructions from memory Reads data from ports and memory Writes data to ports and memory Page 4 out of 13
Different Parts of BIU Instruction Queue Segment Register Instruction Pointer Page 5 out of 13
Instruction Queue The last section of BIU is the FIFO group of registers called a queue. It is basically a group of registers. This arrangement makes possible for the BIU to fetch the instruction byte while EU is decoding an instruction or executing an instruction which does not require use of buses. This arrangement is called pipelining. This is done to speed up the program execution . Page 6 out of 13
Segment Register BIU contains four 16-bit segment registers as follows: Code segment (CS) register Stack segment (SS) register Extra segment (ES) register Data segment (DS) register Page 7 out of 13
The Code Segment(CS) 16 bit It holds the upper 16 bits of the starting or base address for the current code segment. IP contains the distance or offset from this address to the next instruction byte to be fetched. BIU computes the 20-bit physical address by logically shifting the contents of CS 4-bits to the left and then adding the 16-bit contents of IP. Page 8 out of 13
The Stack Segment(SS) 16-bit It is used to hold the upper 16 bits of the starting address for the program stack. Points to the current stack. The 20-bit physical stack address is calculated from the Stack Segment (SS) and the Stack Pointer (SP) for stack instructions such as PUSH and POP. Page 9 out of 13
The Extra Segment(ES) 16-bit Points to the extra segment in which data is stored. (if excess of 64K pointed to by the DS) String instructions use the ES and Destination Index(DI) to determine the 20-bit physical address for the destination. Page 10 out of 13
The Data Segment(DS) 16-bit Points to the current data segment; operands for most instructions are fetched from this segment. The 16-bit contents of the Source Index (SI) or Destination Index (DI) or a 16-bit displacement are used as offset for computing the 20-bit physical address. Page 11 out of 13
Instruction Pointer It’s a 16-bit register, which identifies the location of the next word of instruction code that is to be fetched in the current code segment. IP contains an offset instead of the actual address of the next instruction. The 20-bit address produced after addition of the offset stored in IP to segment base address in the CS is called the Physical address of the code byte. Page 12 out of 13