MPMC Unit - 1
MPMC Unit - 1
MPMC Unit - 1
1
INTRODUCTION TO MICROPROCESSORS
Microprocessor:-
• CPU on a single chip is called as microprocessor.
• A microprocessor is multipurpose programmable, clock driven
electronic device which accepts binary data as inputs , processes it and
gives the results as outputs.
2
Microprocessor Vs Microcontroller
3
Microprocessor Vs Microcontroller
4
Microprocessor & Microcontroller - Applications
5
Microprocessor & Microcontroller - Applications
6
Microprocessor & Microcontroller - Applications
7
Microprocessor & Microcontroller - Applications
8
Microprocessor Generations Fifth Generation Pentium
Fourth Generation
During 1980s
Low power version of HMOS technology
(HCMOS)
Third Generation 32 bit processors
During 1978 Physical memory space 224 bytes = 16 Mb
HMOS technology Faster speed, Higher Virtual memory space 240 bytes = 1 Tb
packing density Floating point hardware
16 bit processors 40/ 48/ 64 pins Supports increased number of addressing
Easier to program modes
Dynamically relatable programs
Processor has multiply/ divide arithmetic Intel 80386
hardware
More powerful interrupt handling
capabilities Second Generation
Flexible I/O port addressing During 1973
NMOS technology Faster speed, Higher
Intel 8086 (16 bit processor) density, Compatible with TTL
4 / 8/ 16 bit processors 40 pins
First Generation Ability to address large memory spaces
Between 1971 – 1973 and I/O ports
PMOS technology, non compatible with TTL Greater number of levels of subroutine
4 bit processors 16 pins nesting
8 and 16 bit processors 40 pins Better interrupt handling capabilities
Due to limitations of pins, signals are 9
multiplexed Intel 8085 (8 bit processor)
Microprocessor Functional blocks
11
8086 Architecture
12
8086 Microprocessor
Architecture – BIU
BIU fetches instructions, reads data from memory and I/O ports, writes
data to memory and I/ O ports.
13
8086 Architecture – EU
14
8086 Microprocessor
Architecture Bus Interface Unit (BIU)
Dedicated Adder to
generate 20 bit address
Segment
Registers
16
8086 Microprocessor
Architecture Bus Interface Unit (BIU)
17
8086 Microprocessor
Architecture Bus Interface Unit (BIU)
18
8086 Microprocessor
Architecture Bus Interface Unit (BIU)
19
8086 Microprocessor
Architecture Bus Interface Unit (BIU)
20
8086 Microprocessor
Architecture Bus Interface Unit (BIU)
21
8086 Microprocessor
Architecture Bus Interface Unit (BIU)
Instruction queue
A group of First-In-First-
Out (FIFO) in which up to
6 bytes of instruction
code are pre fetched
from the memory ahead
of time.
22
8086 Microprocessor
Architecture Execution Unit (EU)
EU decodes and
executes instructions.
A decoder in the EU
control system
translates instructions.
and
Some of the 16 bit registers can be
Index registers (Source used as two 8 bit registers as :
Index, Destination Index)
each of 16-bits AX can be used as AH and AL
BX can be used as BH and BL
CX can be used as CH and CL 23
DX can be used as DH and DL
8086 Microprocessor
Architecture Execution Unit (EU)
24
8086 Microprocessor
Architecture Execution Unit (EU)
25
8086 Microprocessor
Architecture Execution Unit (EU)
Example:
26
8086 Microprocessor
Architecture Execution Unit (EU)
27
8086 Microprocessor
Architecture Execution Unit (EU)
28
8086 Microprocessor
Architecture Execution Unit (EU)
29
8086 Microprocessor
Architecture Execution Unit (EU)
30
8086 Microprocessor
Architecture Execution Unit (EU)
Auxiliary Carry Flag
Carry Flag
Flag Register This is set, if there is a carry from the
This flag is set, when there is
lowest nibble, i.e, bit three during
addition, or borrow for the lowest a carry out of MSB in case of
nibble, i.e, bit three, during addition or a borrow in case
subtraction. of subtraction.
This flag is set, when the This flag is set, if the result of This flag is set to 1, if the lower
result of any computation the computation or comparison byte of the result contains even
is negative performed by an instruction is number of 1’s ; for odd number
zero of 1’s set to zero.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF AF PF CF
Trap Flag
Over flow Flag If this flag is set, the processor
This flag is set, if an overflow occurs, i.e, if the result of a signed enters the single step execution
operation is large enough to accommodate in a destination
mode by generating internal
register. The result is of more than 7-bits in size in case of 8-bit
signed operation and more than 15-bits in size in case of 16-bit interrupts after the execution of
sign operations, then the overflow will be set. each instruction
8086 registers
categorized 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
into 4 groups OF DF IF TF SF ZF AF PF CF
34
Memory Segmentation in 8086
Segmentation is the process in which the main memory of the computer is 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 processor is able to
fetch and execute the data from the memory easily and fast.
Types Of Segmentation –
Overlapping Segment – A segment starts at a particular address and its maximum
size can go up to 64kilobytes. But if another segment starts along this 64kilobytes
location of the first segment, then the two are said to be Overlapping Segment.
Non-Overlapped Segment – A segment starts at a particular address and its
maximum size can go up to 64kilobytes. But if another segment starts before this
64kilobytes location of the first segment, then the two segments are said to be Non-
Overlapped Segment.
35
Memory Segmentation in 8086
•It is possible to enhance the memory size of code data or stack segments beyond 64
KB by allotting more than one segment for each area. 36
37
Dis advantages of the Segmentation:
Although there is I MB of memory is available – the segments can access only 4*64KB
= 256 KB at a time
38
39
Example1
40
Example2
41
42
43
Physical Address calculation of 8086
PA = 20bit Address
BA = 16 bit address , It is the starting
address of segment
PA is calculated as
PA = (BA * 10H ) + OA
44
45
46
Pins and signals
48
8086 Microprocessor
Pins and Signals Common signals
AD0-AD15 (Bidirectional)
Address/Data bus
49
8086 Microprocessor
Pins and Signals Common signals
MN/ MX
MINIMUM / MAXIMUM
TEST
READY
RESET (Input)
CLK
53
8086 Microprocessor
Pins and Signals Minimum mode signals
Pins 24 -31
Pins 24 -31
55
8086 Microprocessor
Pins and Signals Maximum mode signals
56
8086 Microprocessor
Pins and Signals Maximum mode signals
57
8086 Microprocessor
Pins and Signals Maximum mode signals
58
8086 Microprocessor
Memory organization in 8086
8086 : 16-bit
Bank 0 : A0 = 0 Even
addressed memory bank
Bank 1 : = 0 Odd
addressed memory bank
59
8086 Microprocessor
Memory organization in 8086
61
Memory organization in 8086
62
8086 System configuration
in
Minimum mode and Maximum mode
63
8086 Minimum mode configuration:
8086 System configuration in Minimum mode
65
Minimum Mode 8086 System
67
Maximum Mode 8086 System
1. In the maximum mode, the 8086 is operated by strapping the MN/MX pin to ground.
2. In this mode, the processor derives the status signal S2, S1, S0. Another chip called
bus controller derives the control signal using this status information.
3. In the maximum mode, there may be more than one microprocessor in the system
configuration.
4. The components in the system are same as in the minimum mode system.
5. The basic function of the bus controller chip IC8288, is to derive control signals like
RD and WR (for memory and I/O devices), DEN, DT/R, ALE etc. using the information
by the processor on the status lines.
6. The bus controller chip has input lines S2, S1, S0 and CLK. These inputs to 8288 are
driven by CPU.
7. It derives the outputs ALE, DEN, DT/R, MRDC, MWTC, AMWC, IORC, IOWC and
AIOWC. The AEN, IOB and CEN pins are specially useful for multiprocessor systems.
68
TIMING DIAGRAMS FOR 8086 IN MINIMUM MODE
A bus cycle or machine cycle defines the sequence of events when the MPU
communicates with an external device, which starts with an address being output
on the system bus followed by a read or write data transfer.
One cycle of clock is called a state or t-state. The bus cycle of the 8086
microprocessor consists of at least four clock periods. These four time states are
called T1, T2, T3 and T4. This group of states is called a MACHINE CYCLE.
The total time required to fetch and execute an instruction is called an instruction
cycle. An instruction cycle consists of one or more machine cycle
69
Read timing diagram in Minimum Mode
70
Read timing diagram in Minimum Mode
71
Write operation with Wait state (Tw)
72
memory read cycle of the 8086
73
The following figure shows a memory read cycle of the 8086:
During period T1: The 8086 outputs the 20-bit address of the memory location to be
accessed on its multiplexed address/data bus. BHE is also output along with the address
during T1. At the same time a pulse is also produced at ALE. The trailing edge or the high
level of this pulse is used to latch the address in external circuitry. Signal M/IO is set to logic 1
and signal DT/R is set to the 0 logic level and both are maintained throughout all four periods
of the bus cycle.
Beginning with period T2: Status bits S3 through S6 are output on the upper four address
bus lines. This status information is maintained through periods T3 and T4.
On the other hand, address/data bus lines AD0 through AD7 are put in the high-Z state during
T2. Late in period T2, RD is switched to logic 0. This indicates to the memory subsystem that
a read cycle is in progress. DEN is switched to logic 0 to enable external circuitry to allow the
data to move from memory onto the microprocessor's data bus.
During period T3: The memory must provide valid data during T3 and maintain it until
after the processor terminates the read operation. The data read by the 8086 microprocessor
can be carried over all 16 data bus lines.
During T4: The 8086 switches RD to the inactive 1 logic level to terminate the read
operation. DEN returns to its inactive logic level late during T4 to disable the external
circuitry.
74
TIMING DIAGRAMS FOR 8086 IN MAXIMUM MODE
75
WRITE CYCLE IN MAXIMUM MODE
76
WRITE CYCLE IN MAXIMUM MODE
77
Maximum Mode 8086 System
1. In the maximum mode, the 8086 is operated by strapping the MN/MX pin to ground.
2. In this mode, the processor derives the status signal S2, S1, S0. Another chip called
bus controller derives the control signal using this status information.
3. In the maximum mode, there may be more than one microprocessor in the system
configuration.
4. The components in the system are same as in the minimum mode system.
5. The basic function of the bus controller chip IC8288, is to derive control signals like
RD and WR (for memory and I/O devices), DEN, DT/R, ALE etc. using the information
by the processor on the status lines.
6. The bus controller chip has input lines S2, S1, S0 and CLK. These inputs to 8288 are
driven by CPU.
7. It derives the outputs ALE, DEN, DT/R, MRDC, MWTC, AMWC, IORC, IOWC and
AIOWC. The AEN, IOB and CEN pins are specially useful for multiprocessor systems.
78
Interrupt, ISR, IVT
• Interrupt :
An INTERRUPT is a condition that causes the microprocessor to temporarily
work on a different task and then return to its previous task. Interrupt is an
event or signal that request to attention of CPU.
79
80
• Whenever an interrupt occurs the processor completes the
execution of the current instruction and starts the execution of an
Interrupt Service Routine (ISR) or Interrupt Handler.
• ISR is a program that tells the processor what to do when the
interrupt occurs.
• After the execution of ISR, control returns back to the main routine
where it was interrupted.
81
Interrupts are useful when interfacing I/O devices with low data-transfer rates,
like a keyboard or a mouse, in which case polling the device wastes valuable
processing time
Below time line shows typing on a keyboard, a printer removing data from memory,
and a program executing. The keyboard interrupt service procedure, called by the
keyboard interrupt, and the printer interrupt service procedure each take little time
to execute
83
Types of Interrupts
In general there are two types of Interrupts:
Internal (or) Software Interrupts are triggered by a software instruction and
operate similarly to a jump or branch instruction.
External (or) Hardware Interrupts are caused by an external hardware
module.
84
85
86
87
88
89
90
91
Software Interrupts
• The 8086 will push the flag register on the stack, reset TF and IF, and push
the CS and IP values of the next instruction on the stack.
92
93
Divide-By-Zero Interrupt-Type 0:
The 8086 will automatically do a type 0 interrupt if the result of a DIV
operation or an IDIV operation is too large to fit in the destination
register. For a type 0 interrupt, the 8086 pushes the flag register on the
stack, resets IF and TF and pushes the return addresses on the stack.
In other words, when in single step mode a system will stop after it
executes each instruction and wait for further direction from user. The
8086 trap flag and type 1 interrupt response make it quite easy to
implement a single step feature direction.
94
• Non-maskable Interrupt-Type 2:
The 8086 will automatically do a type 2 interrupt response when it
receives a low to high transition on its NMI pin. When it does a type
2 interrupt, the 8086 will push the flags on the stack, reset TF and
IF, and push the CS value and the IP value for the next instruction
on the stack. It will then get the CS value for the start of the type 2
interrupt service procedure from address 0000AH and the IP value
for the start of the procedure from address 00008H.
Breakpoint Interrupt-Type 3:
The type 3 interrupt is produced by execution of the INT3
instruction. The main use of the type 3 interrupt is to implement a
breakpoint function in a system. Whenever we insert a breakpoint,
the system executes the instructions up to the breakpoint and then
goes to the breakpoint procedure.
95
Overflow Interrupt-Type4:
The 8086 overflow flag will be set if the signed result of an
arithmetic operation on two signed numbers is too large to
be represented in the destination register or memory
location.
96
8086 Interrupt Response
97
• It decrements stack pointer by 2 and pushes the flag register on the
stack..
• It disables the INTR interrupt input by clearing the interrupt flag in
the flag
• It resets the trap flag in the flag register.
• It decrements stack pointer by 2 and pushes the current code
segment register contents on the stack.
• It decrements stack pointer by 2 and pushes the current instruction
pointer contents on the stack.
• It does an indirect far jump at the start of the procedure by loading
the CS and IP values for the start of the interrupt service routine (ISR).
• An IRET instruction at the end of the interrupt service procedure
returns execution to the main program.
98
Interrupt, ISR, IVT
• Interrupt :
An INTERRUPT is a condition that causes the microprocessor to temporarily
work on a different task and then return to its previous task. Interrupt is an
event or signal that request to attention of CPU.
Interrupt Service Routines (ISR): Whenever an Interrupt occurs the CPU has to
executes a set of specific instructions. So the program that is required for these
tasks is called the Interrupt Service Routines(ISR). Each Interrupt should have a
corresponding ISR
99
Interrupt Vector Table: Whenever the processor receives an
Interrupt, the corresponding ISR has to be executed. IVT
contains the starting address of 256 ISRs, these consists of
Base address and Offset address. The first 1KB (ie., from
00000h – 003FFFh)out of 1MB of 8086 is reserved for IVT.
100
101
102
103
104
105
106
107
108
109
110
111
112
Hex to Decimal Conversion Program in
Microprocessor 8086
113
114
Palindrome Program in Microprocessor 8086
115
116
117
118
119
Character Replace Program in Microprocessor 8086
120
121
122
123
Time Display using DOS Function Program in Microprocessor 8086
124
125
126
127
128
THANK YOU
129