Module-02
Module-02
Important Questions
Q. Write down important features of 8086 Microprocessor along with its architecture.
Ans. Some of the important features of 8086 microprocessor are are as follows:
o Intel 8086 microprocessor is the enhanced version of Intel 8085 microprocessor. It was
designed by Intel in 1976.
o The 8086 microprocessor is a16-bit, N-channel, HMOS microprocessor. Where the
HMOS is used for "High-speed Metal Oxide Semiconductor".
o Intel 8086 is built on a single semiconductor chip and packaged in a 40-pin IC package.
The type of package is DIP (Dual Inline Package).
o Intel 8086 uses 20 address lines and 16 data- lines. It can directly address up to 2 20 = 1
Mbyte of memory.
o It consists of a powerful instruction set, which provides operation like division and
multiplication very quickly.
o 8086 is designed to operate in two modes, i.e., Minimum and Maximum mode.
Q.- Differentiate between 8085 and 8086 Microprocessor
The Clock speed of this microprocessor is 3 The Clock speed of this microprocessor
MHz. varies between 5, 8 and 10 MHz for
different versions.
It has five flags. It has nine flags.
In 8085, only one processor is used. In 8086, more than one processor is used.
An additional external processor can also be
employed.
AD0-AD15 (Address Data Bus): Bidirectional address/data lines. These are low order address
bus. They are multiplexed with data.
When these lines are used to transmit memory address, the symbol A is used instead of AD, for
example, A0- A15.
A16 - A19 (Output): High order address lines. These are multiplexed with status signals.
A16/S3, A17/S4: A16 and A17 are multiplexed with segment identifier signals S3 and S4.
Ready (Input): The addressed memory or I/O sends acknowledgment through this pin. When
HIGH, it denotes that the peripheral is ready to transfer data.
TEST (Input): Wait for test control. When LOW the microprocessor continues execution
otherwise waits.
GND: Ground.
There are two operating modes of operation for Intel 8086, namely the minimum mode and
the maximum mode.
When only one 8086 CPU is to be used in a microprocessor system, the 8086 is used in
the Minimum mode of operation.
In this minimum mode of operation, the pin MN/MX is connected to 5V D.C. supply i.e.
MN/MX = VCC.
The description about the pins from 24 to 31 for the minimum mode is as follows:
INTA (Output): Pin number 24 interrupts acknowledgement. On receiving interrupt signal, the
processor issues an interrupt acknowledgment signal. It is active LOW.
ALE (Output): Pin no. 25. Address latch enable. It goes HIGH during T1. The microprocessor
8086 sends this signal to latch the address into the Intel 8282/8283 latch.
DEN (Output): Pin no. 26. Data Enable. When Intel 8287/8286 octal bus transceiver is used
this signal. It is active LOW.
DT/R (output): Pin No. 27 data Transmit/Receives. When Intel 8287/8286 octal bus transceiver
is used this signal controls the direction of data flow through the transceiver. When it is HIGH,
data is sent out. When it is LOW, data is received.
M/IO (Output): Pin no. 28, Memory or I/O access. When this signal is HIGH, the CPU wants
to access memory. When this signal is LOW, the CPU wants to access I/O device.
WR (Output): Pin no. 29, Write. When this signal is LOW, the CPU performs memory or I/O
write operation.
HLDA (Output): Pin no. 30, Hold Acknowledgment. It is sent by the processor when it receives
HOLD signal. It is active HIGH signal. When HOLD is removed HLDA goes LOW.
HOLD (Input): Pin no. 31, Hold. When another device in microcomputer system wants to use
the address and data bus, it sends HOLD request to CPU through this pin. It is an active HIGH
signal.
In the maximum mode of operation, the pin MN/¯MX is made LOW. It is grounded. The
description about the pins from 24 to 31 is as follows:
QS1, QS0 (Output): Pin numbers 24, 25, Instruction Queue Status. Logics are given below:
0 0 No operation
S0, S1, S2 (Output): Pin numbers 26, 27, 28 Status Signals. These signals are connected to the
bus controller of Intel 8288. This bus controller generates memory and I/O access control
signals. Logics for status signal are given below:
S2 S1 S0 Operation
0 0 0 Interrupt acknowledgement
0 1 1 Halt
1 0 0 Opcode fetch
1 0 1 Memory read
1 1 0 Memory write
1 1 1 Passive state
LOCK (Output): Pin no. 29. It is an active LOW signal. When this signal is LOW, all
interrupts are masked and no HOLD request is granted. In a multiprocessor system all other
processors are informed through this signal that they should not ask the CPU for relinquishing
the bus control.
RG/GT1, RQ/GT0 (Bidirectional): Pin numbers 30, 31, Local Bus Priority Control. Other
processors ask the CPU by these lines to release the local bus.
In the maximum mode of operation signals WR, ALE, DEN, DT/R etc. are not available
directly from the processor. These signals are available from the controller 8288.
Ans.- 8086 contains two independent functional units: a Bus Interface Unit (BIU) and
an Execution Unit (EU).
Fig: Block Diagram of Intel 8086 Microprocessor (8086 Architecture)
The segment registers, instruction pointer and 6-byte instruction queue are associated with the
bus interface unit (BIU).
The BIU:
o Instruction Queue: When EU executes instructions, the BIU gets 6-bytes of the next
instruction and stores them in the instruction queue and this process is known as
instruction pre fetch. This process increases the speed of the processor.
o Segment Registers: A segment register contains the addresses of instructions and data in
memory which are used by the processor to access memory locations. It points to the
starting address of a memory segment currently being used.
There are 4 segment registers in 8086 as given below:
o Code Segment Register (CS): Code segment of the memory holds instruction
codes of a program.
o Data Segment Register (DS): The data, variables and constants given in the
program are held in the data segment of the memory.
o Stack Segment Register (SS): Stack segment holds addresses and data of
subroutines. It also holds the contents of registers and memory locations given in
PUSH instruction.
o Extra Segment Register (ES): Extra segment holds the destination addresses of
some data of certain string instructions.
o Instruction Pointer (IP): The instruction pointer in the 8086 microprocessor acts as a
program counter. It indicates to the address of the next instruction to be executed.
o The EU receives opcode of an instruction from the queue, decodes it and then executes it.
While Execution, unit decodes or executes an instruction, then the BIU fetches
instruction codes from the memory and stores them in the queue.
o The BIU and EU operate in parallel independently. This makes processing faster.
o General purpose registers, stack pointer, base pointer and index registers, ALU, flag
registers (FLAGS), instruction decoder and timing and control unit constitute execution
unit (EU). Let's discuss them:
o General Purpose Registers: There are four 16-bit general purpose registers: AX
(Accumulator Register), BX (Base Register), CX (Counter) and DX. Each of these 16-bit
registers are further subdivided into 8-bit registers as shown below:
AX AH AL
BX BH BL
CX CH CL
DX DH DL
o Index Register: The following four registers are in the group of pointer and index
registers:
o Stack Pointer (SP)
o Base Pointer (BP)
o Source Index (SI)
o Destination Index (DI)
o ALU: It handles all arithmetic and logical operations. Such as addition, subtraction,
multiplication, division, AND, OR, NOT operations.
o Flag Register: It is a 16?bit register which exactly behaves like a flip-flop, means it
changes states according to the result stored in the accumulator. It has 9 flags and they
are divided into 2 groups i.e. conditional and control flags.
o Conditional Flags: This flag represents the result of the last arithmetic or logical
instruction executed. Conditional flags are:
o Carry Flag
o Auxiliary Flag
o Parity Flag
o Zero Flag
o Sign Flag
o Overflow Flag
o Control Flags: It controls the operations of the execution unit. Control flags are:
o Trap Flag
o Interrupt Flag
o Direction Flag
Ans.- Interrupt is a process of creating a temporary halt during program execution and allows
peripheral devices to access the microprocessor.
Microprocessor responds to these interrupts with an interrupt service routine (ISR), which is a
short program or subroutine to instruct the microprocessor on how to handle the interrupt.
Hardware Interrupts
Hardware interrupts are that type of interrupt which are caused by any peripheral device by
sending a signal through a specified pin to the microprocessor.
INTR: The INTR is a maskable interrupt. It can be enabled/disabled using interrupt flag (IF).
After receiving INTR from external device, the 8086 acknowledges through INTA signal.
Software Interrupt
The interrupt caused by an internal abnormal conditions also came under the heading of software
interrupt.
1KB memory acts as a table to contain interrupt vectors (or interrupt pointers), and it is called
interrupt vector table or interrupt pointer table. The 256 interrupt pointers have been numbered
from 0 to 255 (FF hex). The number assigned to an interrupt pointer is known as type of that
interrupt. For example, Type 0, Type 1, Type 2,...........Type 255 interrupt.
Ans. The way for which an operand is specified for an instruction in the accumulator, in a
general purpose register or in memory location, is called addressing mode.
The 8086 microprocessors have 8 addressing modes. Two addressing modes have been provided
for instructions which operate on register or immediate data.
Register Addressing: In register addressing, the operand is placed in one of the 16-bit or 8-bit
general purpose registers.
Example
o MOV AX, CX
o ADD AL, BL
o ADD CX, DX
Example
The remaining 6 addressing modes specify the location of an operand which is placed in a
memory.
Direct Addressing: In direct addressing mode, the operand?s offset is given in the instruction as
an 8-bit or 16-bit displacement element.
Example
The instruction adds the content of the offset address 0301 to AL. the operand is placed at the
given offset (0301) within the data segment DS.
Register Indirect Addressing: The operand's offset is placed in any one of the registers BX,
BP, SI or DI as specified in the instruction.
Example
It moves the contents of memory locations addressed by the register BX to the register AX.
Based Addressing: The operand's offset is the sum of an 8-bit or 16-bit displacement and the
contents of the base register BX or BP. BX is used as base register for data segment, and the BP
is used as a base register for stack segment.
Example
Indexed Addressing: The offset of an operand is the sum of the content of an index register SI
or DI and an 8-bit or 16-bit displacement.
Example
Based Indexed Addressing: The offset of operand is the sum of the content of a base register
BX or BP and an index register SI or DI.
Here, BX is used for a base register for data segment, and BP is used as a base register for stack
segment.
Example
Based Indexed with Displacement: In this mode of addressing, the operand's offset is given by:
Effective Address (Offset) = [BX or BP] + [SI or DI] + 8-bit or 16-bit displacement
Example
Ans.- In a system or computer, most of the tasks are controlled with the help of a processor or
CPU (Central processing unit), which is the main component of a computer. The CPU usually
has two main systems: control unit (CU) and arithmetic and logic unit (ALU). The control unit
(CU) is used to synchronize the tasks with the help of sending timings and control signals. On
the other hand, mathematical and logical operations can be handled with the help of ALU. Micro
programmed control units and hardwired control units can be called two types of control units.
We can execute an instruction with the help of these two control units.
In the hardwired control unit, the execution of operations is much faster, but the
implementation, modification, and decoding are difficult. In contrast, implementing, modifying,
decoding micro-programmed control units is very easy. The micro-programmed control unit is
also able to handle complex instructions. With the help of control signals generated by micro-
programmed and hardwired control units, we are able to fetch and execute the instructions.
Control Signals
In order to generate the control signals, both the control signals were basically designed. The
functionality of a processor's hardware is operated with the help of these control signals. The
control signals are used to know about various types of things, which are described as follows:
With the help of generating control signals, the hardwired control unit is able to execute the
instructions at a correct time and proper sequence. As compared to the micro-programmed, the
hardwired CU is generally faster. In this CU, the control signals are generated with the help of
PLA circuit and state counter. Here the Central processing unit requires all these control signals.
With the help of hardware, the hardwired control signals are generated, and it basically uses the
circuitry approach.
ADVERTISEMENT
The image of a hardwired control unit is described as follows, which contains various
components in the form of circuitry. We will discuss them one by one so that we can properly
understand the "generation of control signals".
o The instruction register is a type of processor register used to contain an instruction that
is currently in execution. As we can see, the instruction register is used to generate the
OP-code bits respective of the operation as well as the addressing mode of operands.
o The above generated Op-code bits are received in the field of an instruction decoder.
The instruction decoder interprets the operation and instruction's addressing mode. Now
on the basis of the addressing mode of instruction and operation which exists in the
instruction register, the instruction decoder sets the corresponding Instruction signal
INSi to 1. Some steps are used to execute each instruction, i.e., instruction
fetch, decode, operand fetch, Arithmetic and logical unit, and memory store.
Different books might be contained different steps. But in general, we are able to execute
an instruction with the help of these five steps.
o The information about the current step of instruction must be known by the control unit.
Now the Step Counter is implemented, which is used to contain the signals from T1,….,
T5. Now on the basis of the step which contains the instruction, one of the signals of a
step counter will be set from T1 to T5 to 1.
o Now we have a question that how the step counter knows about the current step of
instruction? So to know the current step, a Clock is implemented. The one-clock cycle of
the clock will be completed for each step. For example, suppose that if the stop counter
sets T3 to 1, then after completing one clock cycle, the step counter will set T4 to 1.
o Now we have a question, i.e., what will happen if the execution of an instruction is
interrupted for some reason? Will the step counter still be triggered by the clock? The
answer to this question is No. As long as the execution is current step is completed,
the Counter Enable will "disable" the Step Counter so that it will stop then increment to
the next step signal.
o Now we have a question, i.e., what if the execution of instruction depends on some
conditions? In this case, the Condition Signals will be used. There are various conditions
in which the signals are generated with the help of control signals that can be less than,
greater than, less than equal, greater than equal, and many more.
o The external input is the last one. It is used to tell the Control Signal Generator about the
interrupts, which will affect the execution of an instruction.
So, on the basis of the input obtained by the conditional signals, step counter, external inputs,
and instruction register, the control signals will be generated with the help of Control signal
Generator.
A micro-programmed control unit can be described as a simple logic circuit. We can use it in two
ways, i.e., it is able to execute each instruction with the help of generating control signals, and it
is also able to do sequencing through microinstructions. It will generate the control signals with
the help of programs. At the time of evolution of CISC architecture in the past, this approach was
very famous. The program which is used to create the control signals is known as the "Micro-
program". The micro-program is placed on the processor chip, which is a type of fast memory.
This memory is also known as the control store or control memory.
Now we will learn about the organization of Micro-program CU. Then we will learn about the
flow of instruction execution with the help of instruction execution steps, which are described as
follows:
ADVERTISEMENT
ADVERTISEMENT
o Instruction fetch is the first step. In this step, the instruction is fetched from the IR
(Instruction Register) with the help of a Microinstruction address register.
o Decode is the second step. In this step, the instructions obtained from the instruction
register will be decoded with the help of a microinstruction address generator. Here we
will also get the starting address of a micro-routine. With the help of this address, we can
easily perform the operation, which is mentioned in the instruction. It will also load the
starting address into the micro-program counter.
o Increment is the third step. In this step, the control word, which corresponds to the
starting address of a micro-program, will be read. When the execution proceeds, the value
of the micro-program counter will be increased so that it can read the successive control
words of a micro-routine.
o End bit is the fourth step. In this step, the microinstruction of a micro-routine contains a
bit, which is known as the end bit. The execution of the microinstruction will be
successfully completed when the end bit is set to 1.
o This is the last step, and in this step, the micro-program address generator will again go
back to Step 1 so that we can fetch a new instruction, and this process or cycle goes on.
So in the micro-programmed control unit, the micro-programs are stored with the help of Control
memory or Control store. The implementation of this CU is very easy and flexible, but it is
slower as compared to the Hardwired control unit.
Ans. There are various differences between Micro-programmed CU and Hardwired CU, which
are described as follows:
With the help of a hardware circuit, we can While with the help of programming, we can
implement the hardwired control unit. In implement the micro-programmed control
other words, we can say that it is a circuitry unit.
approach.
The hardwired control unit uses the logic The micro-programmed CU uses
circuit so that it can generate the control microinstruction so that it can generate the
signals, which are required for the processor. control signals. Usually, control memory is
used to store these microinstructions.
In this CU, the control signals are going to be It is very easy to modify the micro-
generated in the form of hard wired. That's programmed control unit because the
why it is very difficult to modify the modifications are going to be performed only
hardwired control unit. at the instruction level.
In the form of logic gates, everything has to The micro-programmed control unit is less
be realized in the hardwired control unit. costly as compared to the hardwired CU
That's why this CU is more costly as because this control unit only requires the
compared to the micro-programmed control microinstruction to generate the control
unit. signals.
The complex instructions cannot be handled The micro-programmed control unit is able
by a hardwired control unit because when we to handle the complex instructions.
design a circuit for this instruction, it will
become complex.
Because of the hardware implementation, the The micro-programmed control unit is able
hardwired control unit is able to use a limited to generate control signals for many
number of instructions. instructions.
The hardwired control unit is used in those The micro-programmed control unit is used
types of computers that also use the RISC in those types of computers that also use the
(Reduced instruction Set Computers). CISC (Complex instruction Set Computers).
In the hardwired control unit, the hardware is In this CU, the microinstructions are used to
used to generate only the required control generate the control signals. That's why this
signals. That's why this control unit is faster CU is slower than the hardwired control unit.
as compared to the micro-programmed
control unit.
Some Other differences between Micro-programmed control unit and Hardwire control
unit
Now we will describe these differences on the basis of some parameters, such as speed, cost,
modification, instruction decoder, control memory, etc. These differences are described as
follows:
Speed
In the hardwired control unit, the speed of operations is very fast. In contrast, the micro-
programmed control unit needs frequent memory access. So the speed of operation of a micro-
programmed control unit is slow.
Modification
If we want to do some modifications to the Hardwired control unit, we have to redesign the
entire unit. In contrast, if we want to do some modification in the micro-programmed control
unit, we can do that just by changing the microinstructions in the control memory. In this case,
the more flexible control unit is a micro-programmed control unit.
Cost
The implementation of a Hardwire control unit is very much compared to the Micro-
programmed control unit. In this case, the micro-programmed control unit will save our money at
the time of implementation.
If we try to handle the complex instructions with the help of a hardwired control unit, it will be
very difficult for us to handle them. But if we try to handle the complex instructions with the
help of micro-programmed control unit, it will be very easy for us to handle them. In this case
also, the Micro-programmed control unit is better.
Instruction decoding
In the hardwired control unit, if we want to perform instruction decoding, it will be very difficult.
But if we do the same thing in a micro-programmed control unit, it will be very easy for us.
A small instruction set is used by the hardwired CU. On the other hand, a large instruction set is
used by the micro-programmed control unit.
Control Memory
The hardwired control unit does not use the control memory to generate the control signals, but
the micro-programmed CU needs to use the control memory to generate the control signals.
Applications
The hardwired control unit is used in those types of processors that basically use a simple
instruction set. This set is called a Reduced Instruction Set Computer. On the other hand, a
micro-programmed control unit is used in those types of processors that basically use a complex
instruction set. This set is called a Complex Instruction Set Computer.
The method that is used to transfer information between internal storage and external I/O
devices is known as I/O interface. The CPU is interfaced using special communication links by
the peripherals connected to any computer system. These communication links are used to
resolve the differences between CPU and peripheral. There exists special hardware
components between CPU and peripherals to supervise and synchronize all the input and
output transfers that are called interface units.
Q. Explain the data Transfer in CPU systems.
Ans. The binary information that is received from an external device is usually stored in the
memory unit. The information that is transferred from the CPU to the external device is
originated from the memory unit. CPU merely processes the information but the source and
target is always the memory unit. Data transfer between CPU and the I/O devices may be done
in different modes. Data transfer to and from the peripherals may be done in any of the three
possible ways
1. Programmed I/O.
2. Interrupt- initiated I/O.
3. Direct memory access( DMA).
Now let’s discuss each mode one by one.
1. Programmed I/O: It is due to the result of the I/O instructions that are written in the
computer program. Each data item transfer is initiated by an instruction in the program.
Usually the transfer is from a CPU register and memory. In this case it requires constant
monitoring by the CPU of the peripheral devices.
Example of Programmed I/O: In this case, the I/O device does not have direct access to
the memory unit. A transfer from I/O device to memory requires the execution of several
instructions by the CPU, including an input instruction to transfer the data from device to
the CPU and store instruction to transfer the data from CPU to memory. In programmed
I/O, the CPU stays in the program loop until the I/O unit indicates that it is ready for data
transfer. This is a time consuming process since it needlessly keeps the CPU busy. This
situation can be avoided by using an interrupt facility. This is discussed below.
2. Interrupt- initiated I/O: Since in the above case we saw the CPU is kept busy
unnecessarily. This situation can very well be avoided by using an interrupt driven method
for data transfer. By using interrupt facility and special commands to inform the interface
to issue an interrupt request signal whenever data is available from any device. In the
meantime the CPU can proceed for any other program execution. The interface meanwhile
keeps monitoring the device. Whenever it is determined that the device is ready for data
transfer it initiates an interrupt request signal to the computer. Upon detection of an
external interrupt signal the CPU stops momentarily the task that it was already
performing, branches to the service program to process the I/O transfer, and then return to
the task it was originally performing.
The I/O transfer rate is limited by the speed with which the processor can test and
service a device.
The processor is tied up in managing an I/O transfer; a number of instructions must be
executed for each I/O transfer.
Terms:
Hardware Interrupts: Interrupts present in the hardware pins.
Software Interrupts: These are the instructions used in the program
whenever the required functionality is needed.
Vectored interrupts: These interrupts are associated with the static vector
address.
Non-vectored interrupts: These interrupts are associated with the dynamic
vector address.
Maskable Interrupts: These interrupts can be enabled or disabled explicitly.
Non-maskable interrupts: These are always in the enabled state. we cannot
disable them.
External interrupts: Generated by external devices such as I/O.
Internal interrupts: These devices are generated by the internal components
of the processor such as power failure, error instruction, temperature sensor,
etc.
Synchronous interrupts: These interrupts are controlled by the fixed time
interval. All the interval interrupts are called as synchronous interrupts.
Asynchronous interrupts: These are initiated based on the feedback of
previous instructions. All the external interrupts are called as asynchronous
interrupts.
3. Direct Memory Access: The data transfer between a fast storage media such as magnetic
disk and memory unit is limited by the speed of the CPU. Thus we can allow the
peripherals directly communicate with each other using the memory buses, removing the
intervention of the CPU. This type of data transfer technique is known as DMA or direct
memory access. During DMA the CPU is idle and it has no control over the memory buses.
The DMA controller takes over the buses to manage the transfer directly between the I/O
devices and the memory unit.
1. Bus grant request time.
2. Transfer the entire block of data at transfer rate of device because the device is usually
slow than the speed at which the data can be transferred to CPU.
3. Release the control of the bus back to CPU So, total time taken to transfer the N bytes =
Bus grant request time + (N) * (memory transfer rate) + Bus release control time.
4. Buffer the byte into the buffer
5. Inform the CPU that the device has 1 byte to transfer (i.e. bus grant request)
6. Transfer the byte (at system bus speed)
7. Release the control of the bus back to CPU.
Advantages:
Cost: I/O interfaces can be expensive, especially if specialized hardware is required to connect
a particular device to a computer system.
Complexity: Some I/O interfaces can be complex to configure and require specialized
knowledge to set up and maintain. This can be a disadvantage for users who are not familiar
with the technical aspects of computer hardware.
Compatibility issues: While I/O interfaces are designed to be compatible with a wide range of
devices, there can still be compatibility issues with certain devices. In some cases, device
drivers may need to be installed to ensure proper functionality.
Security risks: I/O interfaces can be a security risk if they are not properly configured or
secured. Hackers can exploit vulnerabilities in I/O interfaces to gain unauthorized access to a
computer system or steal data.