0% found this document useful (0 votes)
14 views13 pages

INTERFACE

Uploaded by

1759 Alina
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
14 views13 pages

INTERFACE

Uploaded by

1759 Alina
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 13

I/O INTERFACE

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.

Mode of Transfer:
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.
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:

Standardization: I/O interfaces provide a standard way of communicating with


external devices. This means that different devices can be connected to a
computer using the same interface, which makes it easier to swap out devices
and reduces the need for specialized hardware.
Modularity: With I/O interfaces, different devices can be added or removed
from a computer without affecting the other components. This makes it easier to
upgrade or replace a faulty device without affecting the rest of the system.
Efficiency: I/O interfaces can transfer data between the computer and the
external devices at high speeds, which allows for faster data transfer and
processing times.
Compatibility: I/O interfaces are designed to be compatible with a wide range
of devices, which means that users can choose from a variety of devices that
are compatible with their computer’s I/O interface.

Disadvantages:

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.

Input/Output Controller
Input/Output Controller is a component that attaches with each device and is used to
accept input and provide output to these devices. Applications access I/O devices with
the help of these I/O controllers. Thus I/O controller is a peripheral device that enables
the main processor to transfer data between the host system and I/O devices. The I/O
controller is a special purpose processor and are autonomous in nature. Autonomous
means that I/O controllers carry out operations on I/O devices while the main CPU
continues to execute programs.. The CPU controls the activities of an I/O controller by
writing into and reading from I/O ports. I/0 controllers have certain registers to store
data and control signals. These registers are:

1. The Control register contains that show the functioning of devices i.e. one bit
shows whether the device communicates in half duplex or full duplex mode,
another bit shows party checking and third bit shows the word length of data.
2. The Status register holds bits that show the status of I/O command. These bits
indicate the success, busy or failure status of a command.
3. Input registers contain the input read by the end user.
4. The output registers hold the output written by the host. The program counter
holds the address of next instruction to be executed by the processor.
Polling
Polling is a technique used by units such as CPU or a program to check the status of I/O
devices. If the device is not in the required status, checking unit will continue with its
work without waiting for the device to achieve required status Polling is also called
busy-waiting because a device is busy in checking the status of other device. Polling is a
common approach to handling multiple I/O device by expanding the busy-waiting loop
of checking status. When a device is found with the desired status CPU branch the
device with corresponding Interrupt Service Routine (ISR) so that interrupts produced by
that device is handled by ISR. ISR, after performing an I/O operation, terminates. The
device is again branched into the busy-waiting loop. Busy-wait loop ensures that CPU
services each device as status of device is checking continuously.

Interrupts
Whenever a process needs to perform I/O it can use an interrupt. Interrupts stop the
execution of a program to perform other tasks, such as numerical computation.
Interrupt signal an event to occur. If an interrupt occurs, the CPU stores the current
status of the process in the program registers and stop the program execution. CPU
starts executing the interrupt. When CPU finishes its processing, it regains the status of
process and continue its execution. I/O devices that halt the normal functioning of the
processor generate various types of interrupts:

1. Program Interrupt. Generated by a program when one of its statements causes


error, such as division by zero, data mismatch and arithmetic overflow.
2. Time Interrupt. Generated by the inbuilt timer in a processor to perform certain
functions that are required at regular time intervals.
3. I/O Interrupts. Generated by I/O hardware or by the controller to inform an end
user about the completion of an I/O operation or about errors, if any, that
occurred at the time of execution of a program.
4. Hardware Failure Interrupt. Generated by the hardware if any problem occurs,
such as parity error or power failure.
5. Supervisor Call (SVC) Interrupts. Generated by the process itself at the time of
execution if it needs an I/O operation to be performed.
6. Restart Interrupts. Generated when the restart button of the console is pressed.
For each kind of interrupt, codes are written in operating system. These are called
Interrupt Service Routine (ISR). It then decides the necessary steps that are taken when a
particular interrupt occurs. Operating system handles interrupts in two manners:

1. Synchronous I/O. Halts the program and execute the I/O operation. After the
completion of the I/O operation; the previous state of the program is resumed. At
the time of processing, I/O operation CPU remains idle.
2. Asynchronous I/O. Execute the 1/0 operation without halting the program in
between. The I/O operations run with other operations of a program
simultaneously.

Architecture of 8085 microprocessor


Introduction :

The 8085 microprocessor is an 8-bit microprocessor that was developed


by Intel in the mid-1970s. It was widely used in the early days of personal
computing and was a popular choice for hobbyists and enthusiasts due to its
simplicity and ease of use. The architecture of the 8085 microprocessor
consists of several key components, including the accumulator, registers,
program counter, stack pointer, instruction register, flags register, data bus,
address bus, and control bus.
The accumulator is an 8-bit register that is used to store arithmetic and logical
results. It is the most commonly used register in the 8085 microprocessor and is
used to perform arithmetic and logical operations such as addition, subtraction,
and bitwise operations.
1. The 8085 microprocessor has six general-purpose registers, including B, C,
D, E, H, and L, which can be combined to form 16-bit register pairs. The B and
C registers can be combined to form the BC register pair, the D and E registers
can be combined to form the DE register pair, and the H and L registers can be
combined to form the HL register pair. These register pairs are commonly used
to store memory addresses and other data.
The program counter is a 16-bit register that contains the memory address of
the next instruction to be executed. The program counter is incremented after
each instruction is executed, which allows the microprocessor to execute
instructions in sequence.
The stack pointer is a 16-bit register that is used to manage the stack. The
stack is a section of memory that is used to store data temporarily, such as
subroutine addresses and other data. The stack pointer is used to keep track of
the top of the stack.
The instruction register is an 8-bit register that contains the current instruction
being executed. The instruction register is used by the microprocessor to
decode and execute instructions.
2. The flags register is an 8-bit register that contains status flags that indicate
the result of an arithmetic or logical operation. These flags include the carry
flag, zero flag, sign flag, and parity flag. The carry flag is set when an arithmetic
operation generates a carry, the zero flag is set when the result of an arithmetic
or logical operation is zero, the sign flag is set when the result of an arithmetic
or logical operation is negative, and the parity flag is set when the result of an
arithmetic or logical operation has an even number of 1 bits.
3. The data bus is an 8-bit bus that is used to transfer data between the
microprocessor and memory or other devices. The data bus is bidirectional,
which means that it can be used to read data from memory or write data to
memory.
The address bus is a 16-bit bus that is used to address memory and other
devices. The address bus is used to select the memory location or device that
the microprocessor wants to access.
4. The control bus is a set of signals that controls the operations of the
microprocessor, including the read and write operations. The control bus
includes signals such as the read signal, write signal, interrupt signal, and reset
signal. The read signal is used to read data from memory or other devices, the
write signal is used to write data to memory or other devices, the interrupt signal
is used to signal the microprocessor that an interrupt has occurred, and the
reset signal is used to reset the microprocessor to its initial state.
8085 is an 8-bit, general-purpose microprocessor. It consists of the following
functional units:
Arithmetic and Logic Unit (ALU) :

It is used to perform mathematical operations like addition, multiplication,


subtraction, division, decrement, increment, etc. Different operations are carried
out in ALU: Logical operations, Bit-Shifting Operations, and Arithmetic
Operations.

Flag Register:

It is an 8-bit register that stores either 0 or 1 depending upon which value is


stored in the accumulator. Flag Register contains 8-bit out of which 5-bits are
important and the rest of 3-bits are “don’t Care conditions”. The flag register is a
dynamic register because after each operation to check whether the result is
zero, positive or negative, whether there is any overflow occurred or not, or for
comparison of two 8-bit numbers carry flag is checked. So for numerous
operations to check the contents of the accumulator and from that contents if
we want to check the behavior of given result then we can use Flag register to
verify and check. So we can say that the flag register is a status register and
it is used to check the status of the current operation which is being
carried out by ALU.
Different Fields of Flag Register:
1. Carry Flag
2. Parity Flag
3. Auxiliary Carry Flag
4. Zero Flag
5. Sign Flag

Accumulator:

Accumulator is used to perform I/O, arithmetic, and logical operations. It is


connected to ALU and the internal data bus. The accumulator is the heart of the
microprocessor because for all arithmetic operations Accumulator’s 8-bit pin will
always there connected with ALU and in most-off times all the operations
carried by different instructions will be stored in the accumulator after operation
performance.

General Purpose Registers:

There are six general-purpose registers. These registers can hold 8-bit values.
These 8-bit registers are B,C,D,E,H,L. These registers work as 16-bit registers
when they work in pairs like B-C, D-E, and H-L. Here registers W and Z are
reserved registers. We can’t use these registers in arithmetic operations. It is
reserved for microprocessors for internal operations like swapping two 16-bit
numbers. We know that to swap two numbers we need a third variable hence
here W-Z register pair works as temporary registers and we can swap two 16-
bit numbers using this pair.

Program Counter :

Program Counter holds the address value of the memory to the next instruction
that is to be executed. It is a 16-bit register.
For Example: Suppose current value of Program Counter : [PC] = 4000H
(It means that next executing instruction is at location 4000H.After
fetching,program Counter(PC) always increments
by +1 for fetching of next instruction.)

Stack Pointer :

It works like a stack. In stack, the content of the register is stored that is later
used in the program. It is a 16-bit special register. The stack pointer is part of
memory but it is part of Stack operations, unlike random memory access. Stack
pointer works in a continuous and contiguous part of the memory. whereas
Program Counter(PC) works in random memory locations. This pointer is very
useful in stack-related operations like PUSH, POP, and nested CALL
requests initiated by Microprocessor. It reserves the address of the most recent
stack entry.

Temporary Register:

It is an 8-bit register that holds data values during arithmetic and logical
operations.

Instruction register and decoder:

It is an 8-bit register that holds the instruction code that is being decoded. The
instruction is fetched from the memory.

Timing and control unit:

The timing and control unit comes under the CPU section, and it controls the
flow of data from the CPU to other devices. It is also used to control the
operations performed by the microprocessor and the devices connected to it.
There are certain timing and control signals like Control signals, DMA Signals,
RESET signals and Status signals.

Interrupt control:

Whenever a microprocessor is executing the main program and if suddenly an


interrupt occurs, the microprocessor shifts the control from the main program to
process the incoming request. After the request is completed, the control goes
back to the main program. There are 5 interrupt signals in 8085
microprocessors: INTR, TRAP, RST 7.5, RST 6.5, and RST 5.5.
Priorities of Interrupts: TRAP > RST 7.5 > RST 6.5 > RST 5.5 > INTR

Address bus and data bus:

The data bus is bidirectional and carries the data which is to be stored. The
address bus is unidirectional and carries the location where data is to be stored.
In the 8085 microprocessor, the address bus and data bus are two separate
buses that are used for communication between the microprocessor and
external devices.
The Address bus is used to transfer the memory address of the data that needs
to be read or written. The address bus is a 16-bit bus, allowing the 8085 to
access up to 65,536 memory locations.
The Data bus is used to transfer data between the microprocessor and external
devices such as memory and I/O devices. The data bus is an 8-bit bus, allowing
the 8085 to transfer 8-bit data at a time. The data bus can also be used for
instruction fetch operations, where the microprocessor fetches the instruction
code from memory and decodes it.
The combination of the address bus and data bus allows the 8085 to
communicate with and control external devices, allowing it to execute its
program and perform various operations.

Serial Input/output control:

It controls the serial data communication by using Serial input data and Serial
output data.
Serial Input/Output control in the 8085 microprocessor refers to the
communication of data between the microprocessor and external devices in a
serial manner, i.e., one bit at a time. The 8085 has a serial I/O port (SID/SOD)
for serial communication. The SID pin is used for serial input and the SOD pin is
used for serial output. The timing and control of serial communication is
managed by the 8085’s internal circuitry. The 8085 also has two special
purpose registers, the Serial Control Register (SC) and the Serial Shift Register
(SS), which are used to control and monitor the serial communication.

The flow of an Instruction Cycle in 8085 Architecture :


1. Execution starts with Program Counter. It starts program execution with the
next address field. it fetches an instruction from the memory location pointed
by Program Counter.
2. For address fetching from the memory, multiplexed address/data bus acts as
an address bus and after fetching instruction this address bus will now acts
as a data bus and extract data from the specified memory location and send
this data on an 8-bit internal bus. For multiplexed address/data bus Address
Latch Enable(ALE) Pin is used. If ALE = 1 (Multiplexed bus is Address
Bus otherwise it acts as Data Bus).
3. After data fetching data will go into the Instruction Register it will store data
fetched from memory and now data is ready for decoding so for this
Instruction decoder register is used.
4. After that timing and control signal circuit comes into the picture. It sends
control signals all over the microprocessor to tell the microprocessor whether
the given instruction is for READ/WRITE and whether it is for MEMORY/I-O
Device activity.
5. Hence according to timing and control signal pins, logical and arithmetic
operations are performed and according to that data fetching from the
different registers is done by a microprocessor, and mathematical operation
is carried out by ALU. And according to operations Flag register changes
dynamically.
6. With the help of Serial I/O data pin(SID or SOD Pins) we can send or receive
input/output to external devices .in this way execution cycle is carried out.
7. While execution is going on if there is any interrupt detected then it will
stop execution of the current process and Invoke Interrupt Service
Routine (ISR) Function. Which will stop the current execution and do
execution of the current occurred interrupt after that normal execution will be
performed.

Uses of 8085 microprocessor :

The 8085 microprocessor is a versatile 8-bit microprocessor that has been used
in a wide variety of applications, including:
1. Embedded Systems: The 8085 microprocessor is commonly used in
embedded systems, such as industrial control systems, automotive
electronics, and medical equipment.
2. Computer Peripherals: The 8085 microprocessor has been used in a variety
of computer peripherals, such as printers, scanners, and disk drives.
3. Communication Systems: The 8085 microprocessor has been used in
communication systems, such as modems and network interface cards.
4. Instrumentation and Control Systems: The 8085 microprocessor is
commonly used in instrumentation and control systems, such as temperature
and pressure controllers.
5. Home Appliances: The 8085 microprocessor is used in various home
appliances, such as washing machines, refrigerators, and microwave ovens.
6. Educational Purposes: The 8085 microprocessor is also used for educational
purposes, as it is an inexpensive and easily accessible microprocessor that
is widely used in universities and technical schools.

Issues in 8085 microprocessor :

Here are some common issues with the 8085 microprocessor:


1. Overheating: The 8085 microprocessor can overheat if it is used for
extended periods or if it is not cooled properly. Overheating can cause the
microprocessor to malfunction or fail.
2. Power Supply Issues: The 8085 microprocessor requires a stable power
supply for proper operation. Power supply issues such as voltage
fluctuations, spikes, or drops can cause the microprocessor to malfunction.
3. Timing Issues: The 8085 microprocessor relies on accurate timing signals for
proper operation. Timing issues such as clock signal instability, noise, or
interference can cause the microprocessor to malfunction.
4. Memory Interface Issues: The 8085 microprocessor communicates with
memory through its address and data buses. Memory interface issues such
as faulty memory chips, loose connections, or address decoding errors can
cause the microprocessor to malfunction.
5. Hardware Interface Issues: The 8085 microprocessor communicates with
other devices through its input/output ports. Hardware interface issues such
as faulty devices, incorrect wiring, or improper device selection can cause
the microprocessor to malfunction.
6. Programming Issues: The 8085 microprocessor is programmed with
machine language or assembly language instructions. Programming issues
such as syntax errors, logic errors, or incorrect instruction sequences can
cause the microprocessor to malfunction or produce incorrect results.
7. Research and development: The 8085 microprocessor is often used in
research and development projects, where it can be used to develop and
test new digital electronics and computer systems. Researchers and
developers can use the microprocessor to prototype new systems and test
their performance.
8. Retro computing: The 8085 microprocessor is still used by enthusiasts today
for retro computing projects. Retro computing involves using older computer
systems and technologies to explore the history of computing and gain a
deeper understanding of how modern computing systems have evolved.

You might also like