0% found this document useful (0 votes)
64 views10 pages

Unit 2 Part A

The document provides an overview of the 8086 microprocessor architecture, detailing its features, types, advantages, and disadvantages. It explains the internal architecture, including the Bus Interface Unit (BIU) and Execution Unit (EU), as well as memory segmentation and the role of the prefetch unit. Additionally, it outlines the generations of microprocessors and introduces the 8085 microprocessor as a precursor to the 8086.

Uploaded by

nsohailkhan39
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views10 pages

Unit 2 Part A

The document provides an overview of the 8086 microprocessor architecture, detailing its features, types, advantages, and disadvantages. It explains the internal architecture, including the Bus Interface Unit (BIU) and Execution Unit (EU), as well as memory segmentation and the role of the prefetch unit. Additionally, it outlines the generations of microprocessors and introduces the 8085 microprocessor as a precursor to the 8086.

Uploaded by

nsohailkhan39
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Unit 2

8086 Architecture
A Microprocessor is an important part of a computer architecture without which you will not
be able to perform anything on your computer. It is a programmable device that takes in input
performs some arithmetic and logical operations over it and produces the desired output. In
simple words, a Microprocessor is a digital device on a chip that can fetch instructions from
memory, decode and execute them, and give results.

Block Diagram of a Microprocessor


A Microprocessor takes a bunch of instructions in machine language and executes them,
telling the processor what it has to do. The microprocessor performs three basic things while
executing the instruction:
• It performs some basic operations like addition, subtraction, multiplication,
division, and some logical operations using its Arithmetic and Logical Unit
(ALU). New Microprocessors also perform operations on floating-point numbers.
• Data in microprocessors can move from one location to another.
• It has a Program Counter (PC) register that stores the address of the next
instruction based on the value of the PC, Microprocessor jumps from one location
to another and makes decisions.

Generations of microprocessors:
1. First-generation – From 1971 to 1972 the era of the first generation came
which brought microprocessors like INTEL 4004 Rockwell international PPS-4
INTEL 8008 etc.

2. Second generation – The second generation marked the development of 8-bit


microprocessors from 1973 to 1978. Processors like INTEL 8085 Motorola 6800
and 6801 etc came into existence.

3. Third generation – The third generation brought forward the 16-bit processors
like INTEL 8086/80186/80286 Motorola 68000 68010 etc. From 1979 to 1980
this generation used the HMOS technology.

4. Fourth generation – The fourth-generation came into existence from 1981 to


1995. The 32-bit processors using HMOS fabrication came into existence.
INTEL 80386 and Motorola 68020 are some of the popular processors of this
generation.

5. Fifth-generation – From 1995 till now we are in the fifth generation. 64-bit
processors like PENTIUM, Celeron, dual, quad, and octa-core processors came
into existence.

Types of microprocessors :
• Complex instruction set microprocessor – The processors are designed to
minimize the number of instructions per program and ignore the number of
cycles per instruction. The compiler is used to translate a high-level language to
assembly-level language because the length of code is relatively short and an
extra RAM is used to store the instructions. These processors can do tasks like
downloading, uploading, and recalling data from memory. Apart from these
tasks, this microprocessor can perform complex mathematical calculations in a
single command.
Example: IBM 370/168, VAX 11/780

• Reduced instruction set microprocessor – These processors are made


according to function. They are designed to reduce the execution time by using
the simplified instruction set. They can carry out small things in specific
commands. These processors complete commands at a faster rate. They require
only one clock cycle to implement a result at uniform execution time. There is a
number of registers and less number of transistors. To access the memory
location LOAD and STORE instructions are used.
Example: Power PC 601, 604, 615, 620

• Superscalar microprocessor – These processors can perform many tasks at a


time. They can be used for ALUs and multiplier-like arrays. They have multiple
operation units and perform tasks by executing multiple commands.

• Application-specific integrated circuit – These processors are application-


specific like personal digital assistant computers. They are designed according to
proper specifications.

• Digital signal multiprocessor – These processors are used to convert signals


like analog to digital or digital to analog. The chips of these processors are used
in many devices such as RADAR SONAR home theatres etc.

Advantages of the microprocessor –


1. High processing speed
2. Compact size
3. Easy maintenance
4. Can perform complex mathematics
5. Flexible
6. Can be improved according to a requirement

Disadvantages of microprocessors –
1. Overheating occurs due to overuse
2. Performance depends on the size of the data
3. Large board size than microcontrollers
4. Most microprocessors do not support floating-point operations

Introduction to 8085 Microprocessor:

• 8085 is an 8 bit microprocessor, manufactured with N-MOS technology.


• It has 16-bit address bus and hence can address up to 216 = 65536 bytes (64KB)

• memory locations through A0-A15.


• The first 8 lines of address bus and 8 lines of data bus are multiplexed AD0 - AD7.
• Data bus is a group of 8 lines D0 - D7.
• It supports external interrupt request.8085 consists of 16 bit program counter (PC)
• and stack pointer (SP).
• Six 8-bit general purpose register arranged in pairs: BC, DE, HL.
• It requires a signal +5V power supply and can operate at 3 MHz, 5 MHz and 6
• MHz Serial in/Serial out Port.
• It is enclosed with 40 pins DIP (Dual in line package).

Internal Architecture of 8085


8086 Architecture:
The 8086 microprocessor is an 8-bit/16-bit microprocessor designed by Intel in the late
1970s. It is the first member of the x86 family of microprocessors, which includes many
popular CPUs used in personal computers.

Features of 8086

• It is a 16-bit Microprocessor (μp). It’s ALU, internal registers works with 16bit binary
word.
• 8086 has a 20 bit address bus can access up to 2 20= 1 MB memory locations.

• 8086 has a 16bit data bus. It can read or write data to a memory/port either 16bits or
8 bit at a time.
• It can support up to 64K I/O ports.
• It provides 14, 16 -bit registers.
• Frequency range of 8086 is 6-10 MHz
• It has multiplexed address and data bus AD0- AD15 and A16 – A19.
• It requires single phase clock with 33% duty cycle to provide internal timing.
• It can prefetch upto 6 instruction bytes from memory and queues them in order to
speed up instruction execution.
• It requires +5V power supply.
• A 40 pin dual in line package.
• 8086 is designed to operate in two modes, Minimum mode and Maximum mode.
• The minimum mode is selected by applying logic 1 to the MN / MX# input pin.
• This is a single microprocessor configuration.
• The maximum mode is selected by applying logic 0 to the MN / MX# input pin.
• This is a multi micro processors configuration.
The architecture of the 8086 microprocessor is based on a complex instruction set computer
(CISC) architecture, which means that it supports a wide range of instructions, many of which
can perform multiple operations in a single instruction.
The 8086 microprocessor has a segmented memory architecture, which means that memory
is divided into segments that are addressed using both a segment register and an offset. The
segment register points to the start of a segment, while the offset specifies the location of a
specific byte within the segment.
The 8086 microprocessor has two main execution units: the execution unit (EU) and the bus
interface unit (BIU). The BIU is responsible for fetching instructions from memory and
decoding them, while the EU executes the instructions. The BIU also manages data transfer
between the microprocessor and memory or I/O devices.
The 8086 microprocessor has a rich set of registers, including general-purpose registers,
segment registers, and special registers. The general-purpose registers can be used to store
data and perform arithmetic and logical operations, while the segment registers are used to
address memory segments. The special registers include the flags register, which stores status
information about the result of the previous operation, and the instruction pointer (IP), which
points to the next instruction to be executed.
8086 does not have a RAM or ROM inside it. However, it has internal registers for storing
intermediate and final results and interfaces with memory located outside it through the
System Bus.
In the case of 8086, it is a 16-bit Integer processor in a 40-pin, Dual Inline Packaged IC.
The size of the internal registers(present within the chip) indicates how much information the
processor can operate on at a time (in this case 16-bit registers) and how it moves data around
internally within the chip, sometimes also referred to as the internal data bus.
8086 provides the programmer with 14 internal registers, each of 16 bits or 2 bytes wide. The
main advantage of the 8086 microprocessor is that it supports Pipelining.
8086 is designed to operate in two modes, Minimum mode and Maximum mode. o The
minimum mode is selected by applying logic 1 to the MN / MX# input pin. This is a single
microprocessor configuration. o The maximum mode is selected by applying logic 0 to the MN
/ MX# input pin. This is a multi micro processors configuration.

Memory segmentation:
• To increase execution speed and fetching speed, 8086 segments the memory.
• Its 20-bit address bus can address 1MB of memory, it segments it into 16 64kB
segments.
• 8086 works only with four 64KB segments within the whole 1MB memory.
The internal architecture of Intel 8086 is divided into 2 units: The Bus Interface Unit (BIU),
and The Execution Unit (EU). These are explained as following below.

1. 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.
BIU performs the following functions are as follows:
• It generates the 20-bit physical address for memory access.
• It fetches instructions from the memory.
• It transfers data to and from the memory and I/O.
• Maintains the 6-byte pre-fetch instruction queue(supports pipelining).
BIU mainly contains the 4 Segment registers, the Instruction Pointer, a pre-fetch queue,
and an Address Generation Circuit.
1. Instruction Pointer (IP):
• It is a 16-bit register. It holds offset of the next instructions in the Code Segment.
• IP is incremented after every instruction byte is fetched.
• IP gets a new value whenever a branch instruction occurs.
• CS is multiplied by 10H to give the 20-bit physical address of the Code Segment.
• The address of the next instruction is calculated by using the formula CS x 10H +
IP.
• Code Segment register: (16 Bit register): CS holds the base address for the Code
Segment. All programs are stored in the Code Segment and accessed via the IP.
• Data Segment register: (16 Bit register): DS holds the base address for the Data
Segment.
• Stack Segment register: (16 Bit register): SS holds the base address for the Stack
Segment.
• Extra Segment register: (16 Bit register): ES holds the base address for the Extra
Segment.

2. Address Generation Circuit:


• The BIU has a Physical Address Generation Circuit.
• It generates the 20-bit physical address using Segment and Offset addresses using
the formula:
• In Bus Interface Unit (BIU) the circuit shown by the Σ symbol is responsible for
the calculation unit which is used to calculate the physical address of an
instruction in memory.
3. 6 Byte Pre-fetch Queue:
• It is a 6-byte queue (FIFO).
• Fetching the next instruction (by BIU from CS) while executing the current
instruction is called pipelining.
• Gets flushed whenever a branch instruction occurs.
• The pre-Fetch queue is of 6-Bytes only because the maximum size of instruction
that can have in 8086 is 6 bytes. Hence to cover up all operands and data fields of
maximum size instruction in 8086 Microprocessor there is a Pre-Fetch queue is 6
Bytes.
• The pre-Fetch queue is connected with the control unit which is responsible for
decoding op-code and operands and telling the execution unit what to do with the
help of timing and control signals.
• The pre-Fetch queue is responsible for pipelining and because of that 8086
microprocessor is called fetch, decode, execute type microprocessor. Since there
are always instructions present for decoding and execution in this queue the speed
of execution in the microprocessor is gradually increased.
• When there is a 2-byte space in the instruction pre-fetch queue then only
the next instruction will be pushed into the queue otherwise if only a 1-byte
space is vacant then there will not be any allocation in the queue. It will wait for
a spacing of 2 bytes in subsequent queue decoding operations.
• Instruction pre-fetch queue works in a sequential manner so if there is any branch
condition then in that situation pre-fetch queue fails. Hence to avoid chaos
instruction queue is flushed out when any branch or conditional jumps occur.
2. Prefetch unit:

The Prefetch Unit in the 8086 microprocessor is a component responsible for fetching
instructions from memory and storing them in a queue. The prefetch unit allows the 8086 to
perform multiple instruction fetches in parallel, improving the overall performance of the
microprocessor.
The prefetch unit consists of a buffer and a program counter that are used to fetch instructions
from memory. The buffer stores the instructions that have been fetched and the program
counter keeps track of the memory location of the next instruction to be fetched. The prefetch
unit fetches several instructions ahead of the current instruction, allowing the 8086 to execute
instructions from the buffer rather than from memory.
This parallel processing of instruction fetches helps to reduce the wait time for memory
access, as the 8086 can continue to execute instructions from the buffer while it waits for
memory access to complete. This results in improved overall performance, as the 8086 is
able to execute more instructions in a given amount of time.
The prefetch unit is an important component of the 8086 microprocessor, as it allows the
microprocessor to work more efficiently and perform more instructions in a given amount of
time. This improved performance helps to ensure that the 8086 remains competitive in its
performance and capabilities, even as technology continues to advance.

3. The Execution Unit (EU):

The main components of the EU are General purpose registers, the ALU, Special purpose
registers, the Instruction Register and Instruction Decoder, and the Flag/Status Register.
1. Fetches instructions from the Queue in BIU, decodes, and executes arithmetic and
logic operations using the ALU.
2. Sends control signals for internal data transfer operations within the
microprocessor.(Control Unit)
3. Sends request signals to the BIU to access the external module.
4. It operates with respect to T-states (clock cycles) and not machine cycles.

1. 8086 has four 16-bit general purpose registers AX, BX, CX, and DX which store
intermediate values during execution. Each of these has two 8-bit parts (higher and
lower).
• AX register: (Combination of AL and AH Registers)
It holds operands and results during multiplication and division operations. Also
an accumulator during String operations.

• BX register: (Combination of BL and BH Registers)


It holds the memory address (offset address) in indirect addressing modes.

• CX register: (Combination of CL and CH Registers)


It holds the count for instructions like a loop, rotates, shifts and string
operations.
• DX register: (Combination of DL and DH Registers)
It is used with AX to hold 32-bit values during multiplication and division.

2. Arithmetic Logic Unit (16-bit): Performs 8 and 16-bit arithmetic and logic
operations.
3. Special purpose registers (16-bit): Special purpose registers are called Offset
registers also. Which points to specific memory locations under each segment.
We can understand the concept of segments as Textbook pages. Suppose there are 10 chapters
in one textbook and each chapter takes exactly 100 pages. So the book will contain 1000
pages. Now suppose we want to access page number 575 from the book then 500 will be the
segment base address which can be anything in the context of microprocessors like Code,
Data, Stack, and Extra Segment. So 500 will be segment registers that are present in Bus
Interface Unit (BIU). And 500 + 75 is called an offset register through which we can reach
on specific page number under a specific segment.
Hence 500 is the segment base address and 75 is an offset address or (Instruction Pointer,
Stack Pointer, Base Pointer, Source Index, Destination Index) any of the above according to
their segment implementation.
• Stack Pointer: Points to Stack top. Stack is in Stack Segment, used during
instructions like PUSH, POP, CALL, RET etc.
• Base Pointer: BP can hold the offset addresses of any location in the stack
segment. It is used to access random locations of the stack.
• Source Index: It holds offset address in Data Segment during string operations.
• Destination Index: It holds offset address in Extra Segment during string
operations.
4. Instruction Register and Instruction Decoder:
The EU fetches an opcode from the queue into the instruction register. The instruction
decoder decodes it and sends the information to the control circuit for execution.
5. Flag/Status register (16 bits): It has 9 flags that help change or recognize the state
of the microprocessor.
6 Status flags:
1. Carry flag(CF)
2. Parity flag(PF)
3. Auxiliary carry flag(AF)
4. Zero flag(Z)
5. Sign flag(S)
6. Overflow flag (O)
Status flags are updated after every arithmetic and logic operation.
3 Control flags:
1. Trap flag(TF)
2. Interrupt flag(IF)
3. Direction flag(DF)
These flags can be set or reset using control instructions like CLC, STC, CLD, STD, CLI,
STI, etc. The Control flags are used to control certain operations.
4. Decode unit:

The Decode Unit in the 8086 microprocessor is a component that decodes the instructions
that have been fetched from memory. The decode unit takes the machine code instructions
and translates them into micro-operations that can be executed by the microprocessor’s
execution unit.
The Decode Unit works in parallel with the Prefetch Unit, which fetches instructions from
memory and stores them in a queue. The Decode Unit reads the instructions from the queue
and translates them into micro-operations that can be executed by the microprocessor.
The Decode Unit is an important component of the 8086 microprocessor, as it allows the
microprocessor to execute instructions efficiently and accurately. The decode unit ensures
that the microprocessor can execute complex instructions, such as jump instructions and loop
instructions, by translating them into a series of simple micro-operations.
The Decode Unit is responsible for decoding instructions, performing register-to-register
operations, and performing memory-to-register operations. It also decodes conditional
jumps, calls, and returns, and performs data transfers between memory and registers.
The Decode Unit helps to improve the performance of the 8086 microprocessor by allowing
it to execute instructions quickly and accurately. This improved performance helps to ensure
that the 8086 remains competitive in its performance and capabilities, even as technology
continues to advance.

5. Control unit :

The Control Unit in the 8086 microprocessor is a component that manages the overall
operation of the microprocessor. The control unit is responsible for controlling the flow of
instructions through the microprocessor and coordinating the activities of the other
components, including the Decode Unit, Execution Unit, and Prefetch Unit.
The Control Unit acts as the central coordinator for the microprocessor, directing the flow of
data and instructions and ensuring that the microprocessor operates correctly. It also monitors
the state of the microprocessor, ensuring that the correct sequence of operations is followed.
The Control Unit is responsible for fetching instructions from memory, decoding them,
executing them, and updating the microprocessor’s state. It also handles interrupt requests
and performs system management tasks, such as power management and error handling.
The Control Unit is an essential component of the 8086 microprocessor, as it allows the
microprocessor to operate efficiently and accurately. The control unit ensures that the
microprocessor can execute complex instructions, such as jump instructions and loop
instructions, by coordinating the activities of the other components.
The Control Unit helps to improve the performance of the 8086 microprocessor by managing
the flow of instructions and data through the microprocessor, ensuring that the
microprocessor operates correctly and efficiently. This improved performance helps to
ensure that the 8086 remains competitive in its performance and capabilities, even as
technology continues to advance.
Advantages of Architecture of 8086:
The architecture of the 8086 microprocessor provides several advantages, including:
1. Wide range of instructions: The 8086 microprocessor supports a wide range of
instructions, allowing programmers to write complex programs that can perform
many different operations.
2. Segmented memory architecture: The segmented memory architecture allows the
8086 microprocessor to address large amounts of memory, up to 1 MB, while still
using a 16-bit data bus.
3. Powerful instruction set: The instruction set of the 8086 microprocessor includes
many powerful instructions that can perform multiple operations in a single
instruction, reducing the number of instructions needed to perform a given task.
4. Multiple execution units: The 8086 microprocessor has two main execution units,
the execution unit and the bus interface unit, which work together to efficiently
execute instructions and manage data transfer.
5. Rich set of registers: The 8086 microprocessor has a rich set of registers, including
general-purpose registers, segment registers, and special registers, allowing
programmers to efficiently manipulate data and control program flow.
6. Backward compatibility: The architecture of the 8086 microprocessor is backward
compatible with earlier 8-bit microprocessors, allowing programs written for
these earlier microprocessors to be easily ported to the 8086 microprocessor.
Dis-advantages of Architecture of 8086:
The architecture of the 8086 microprocessor has some disadvantages, including:
1. Complex programming: The architecture of the 8086 microprocessor is complex
and can be difficult to program, especially for novice programmers who may not
be familiar with the assembly language programming required for the 8086
microprocessor.
2. Segmented memory architecture: While the segmented memory architecture
allows the 8086 microprocessor to address a large amount of memory, it can be
difficult to program and manage, as it requires programmers to use both segment
registers and offsets to address memory.
3. Limited performance: The 8086 microprocessor has a limited performance
compared to modern microprocessors, as it has a slower clock speed and a limited
number of execution units.
4. Limited instruction set: While the 8086 microprocessor has a wide range of
instructions, it has a limited instruction set compared to modern microprocessors,
which can limit its functionality and performance in certain applications.
5. Limited memory addressing: The 8086 microprocessor can only address up to 1
MB of memory, which can be limiting in applications that require large amounts
of memory.
6. Lack of built-in features: The 8086 microprocessor lacks some built-in features
that are commonly found in modern microprocessors, such as hardware floating-
point support and virtual memory management.

You might also like