16 bit Microprocessor Architecture

Block diagram of Intel 8086

Block diagram of Intel 8086

Block diagram of Intel 8086


Introduction to 16 bit Microprocessor Architecture

>Intel 8086 – widely used 16 bit microprocessor (arithmetic logic unit, internal registers, most of instructions are designed to work with 16 bit binary words).
>Data bus : 16 bit (read data from or write data to memory and ports either 16 bits or 8 bits at a time.
>Address bus : 20 bit (can address any one of 220 = 1048576 = 1MB memory locations).
—Address range : 00000H to FFFFFH
>This microprocessor had major improvement over the execution speed of 8085.
>Available as 40-pin Dual-Inline-Package(DIP)
>The BIU fetches instructions, reads operands and write results.
>The EU executes instructions that have already beed fetched by BIU so that instructions fetch overlaps with execution.
>A 16 bit ALU in the EU maintains the MP status and control flags, manipulates general register and instruction operands .
>The internal architecture of the 8086 microprocessor is an example of register based microprocessor and it uses segmented memory.
>It pre-fetches up to 6 instruction bytes from the memory and queues them in order to speed up the instruction execution.
>The 8086 MP is divided internally into two separate units which are Bus Interface Unit (BIU) and the execution unit (EU).


BUS interface  Unit and its components

>The BIU is responsible for performing all external bus operations, such as instruction fetching, reading and writing of data operands for memory, address generating, and inputting or outputting data for input/output peripherals.
>These operations are take place over the system bus. This bus includes 16-bit bidirectional data bus, a 20-bit address bus, and the signals needed to control transfer over the bus.
>The BIU uses a mechanism known as instruction queue. This queue permits the 8086 to pre-fetch up to 6 bytes of instruction codes with FIFO ( First in First Out) manner in a register set called a queue.
>The EU and BIU work in parallel, with the BIU keeping one step ahead.
>When the EU is ready for its next instruction, it simply reads the instruction byte(s) for the instruction from the queue in the BIU.
>The top instruction is the currently executable one and, while the EU is occupied executing an instruction, the BIU fetches another instruction from memory. This fetching overlaps with execution and speeds up processing.
>Fetching the next instruction while the current instruction executes called pipelining.


Segments and addressing

>Segments are special areas defined in a program for containing the code, the data and the stack.

>The 8086 BIU sends out 20 bit addresses, so it can address any of 220 bytes (1MB) in memory. However, at any given time the 8086 works with only four 65,536 byte (64Kbyte) segments with this 1M range.

>Four segment registers in the BIU are used to hold the upper 16 bits of the starting addresses of four memory segments that the 8086 is working with at a particular time.


Four segments are:

Code segment (CS) : contains the machine instructions that are to execute. Typically, the first executable instruction is at the start of this segment. CS register addresses the code segment.
CS contains the starting address of a program’s code segment. This segment address, plus an offset value in the Instruction Pointer (IP) register (CS:IP), indicates the address of an instruction to be fetched for execution 

Data segment (DS) : contains a program’s defined data, constants, and work areas. DS register addresses the data segment.
DS contains the starting address of a program’s data segment. Instructions use this address to locate data.this address, plus an offset value in an instruction, causes a reference to a specific byte location in the data segment

Stack segment (SS) :permits the implementation of a stack in memory, which a program uses for temporary storage of addresses and data. The system stores the starting address of a program’s stack segment in SS register. This segment address, plus an offset value in the Stack Pointer (SP) register (SS:SP), indicates the current word in the stack being addressed.
ES register: used by some string operations to handle memory addressing. In this context, ES register is associated with the DI register.

Four Segments of Microprocessor



No comments

Powered by Blogger.