Unit 4 Notes--- Io Interface
Unit 4 Notes--- Io Interface
Input-Output Interface is used as a method which helps in transferring of information between the
internal storage devices i.e. memory and the external peripheral device. A peripheral device is that
which provide input and output for the computer, it is also called Input-Output devices. For Example:
A keyboard and mouse provide Input to the computer are called input devices while a monitor and
printer that provide output to the computer are called output devices. Just like the external hard-
drives, there is also availability of some peripheral devices which are able to provide both input and
output.
In micro-computer base system, the only purpose of peripheral devices is just to provide special
communication links for the interfacing them with the CPU. To resolve the differences between peripheral
devices and CPU, there is a special need for communication links.
The nature of peripheral devices is electromagnetic and electro-mechanical. The nature of the CPU is
electronic. There is a lot of difference in the mode of operation of both peripheral devices and CPU.
There is also a synchronization mechanism because the data transfer rate of peripheral devices are slow than
CPU.
In peripheral devices, data code and formats are differ from the format in the CPU and memory.
The operating mode of peripheral devices are different and each may be controlled so as not to disturb the
operation of other peripheral devices connected to CPU.
There is a special need of the additional hardware to resolve the differences between CPU and peripheral
devices to supervise and synchronize all input and output devices.
Asynchronous Data Transfer
Asynchronous data transfer enables computers to send and receive data without having to wait for a real-time
response. With this technique, data is conveyed in discrete units known as packets that may be handled
separately.
Handshaking Method
• Because asynchronous data transfer sends data in discrete, independently processable pieces, it
enables faster data transfer speeds.
• This method is more effective than synchronous data transfer because there is no need for the
receiver to respond.
• Transmission is done by making large files or data sets into smaller packets and sending them in
parallel cuts the duration time.
• Asynchronous data transfer requires more complex programming and it may be possible that some
data may get corrupted or lose data if packets are not received in the correct order or are lost during
transmission.
• As we know there will be no real-time communication in asynchronous data transport can be more
prone to errors than synchronous data transfer.
Strobe Control Method for Data Transfer
Strobe control is a method used in asynchronous data transfer that synchronizes data flow between two
devices. Bits are transmitted one at a time, independently of one another, and without the aid of a clock signal
in asynchronous communication. To properly receive the data, the receiving equipment needs to be able to
synchronize with the transmitting device.
Strobe control involves sending data along with a different signal known as the strobe signal. The strobe signal
alerts the receiving device that the data is valid and ready to be read. The receiving device waits for the strobe
signal before reading the data to ensure it is synchronized with its clock.
The strobe signal is usually generated by the transmitting device and is sent either before or after the data. If
the strobe signal is sent before the data, it is called a leading strobe. If it is sent after the data, it is called a
trailing strobe.
Overall, strobe control, which is frequently employed in a range of electronic devices and systems, is a
helpful technique for assuring dependable data flow in asynchronous communication.
Types of Strobes
During an asynchronous data transfer, two devices manage their communication using handshaking. It is
guaranteed that the transmitting and receiving devices are prepared to send and receive data. Handshakes are
essential in asynchronous communication since there is no clock signal to synchronize the data transfer.
During handshaking, we use two types of signals mostly they are request-to-send (RTS) and clear-to-send
(CTS). The receiving device is notified by an RTS signal when the transmitting equipment is ready to provide
data. The receiving device responds with a CTS signal when it is ready to accept data.
once data is transmitted to the receiver end. the receiver generates a signal that it has done by sending an
acknowledgment (ACK) signal. If the data is not successfully received, the receiving device will notify that a
new transmission is necessary via a negative acknowledgment (NAK) signal.
The handshaking procedure guarantees synchronized and dependable data delivery. Additionally, it allows for
flow management, preventing the transmitting device from sending the receiving device an excessive amount
of data all at once. In order to offer flow control, handshaking signals are utilized to regulate the rate at which
data is sent.
The Handshaking Method in asynchronous data transfer is used in different devices for the transfer of data to
ensure reliable communication.
In modern computer systems, transferring data between input/output devices and memory can be a slow
process if the CPU is required to manage every step. To address this, a Direct Memory Access (DMA) Controller
is utilized. A Direct Memory Access (DMA) Controller solves this by allowing I/O devices to transfer data directly
to memory, reducing CPU involvement. This increases system efficiency and speeds up data transfers, freeing
the CPU to focus on other tasks. DMA controller needs the same old circuits of an interface to communicate
with the CPU and Input/Output devices.
Direct Memory Access (DMA) uses hardware for accessing the memory, that hardware is called a DMA
Controller. It has the work of transferring the data between Input Output devices and main memory with very
less interaction with the processor. The direct Memory Access Controller is a control unit, which has the work
of transferring data.
DMA Controller is a type of control unit that works as an interface for the data bus and the I/O Devices. As
mentioned, DMA Controller has the work of transferring the data without the intervention of the processors,
processors can control the data transfer. DMA Controller also contains an address unit, which generates the
address and selects an I/O device for the transfer of data. Here we are showing the block diagram of the DMA
Controller.
Address register – It contains the address to specify the desired location in memory.
Note: All registers in the DMA appear to the CPU as I/O interface registers. Therefore, the CPU can both read
and write into the DMA registers under program control via the data bus.
The figure below shows the block diagram of the DMA controller. The unit communicates with the CPU through
the data bus and control lines. Through the use of the address bus and allowing the DMA and RS register to
select inputs, the register within the DMA is chosen by the CPU. RD and WR are two-way inputs. When BG
(bus grant) input is 0, the CPU can communicate with DMA registers. When BG (bus grant) input is 1, the CPU
has relinquished the buses and DMA can communicate directly with the memory.
A control command in an input/output (I/O) interface is a command that activates a peripheral device and
instructs it on what action to perform.
An interface may receive four types of commands. They are control, status, data input and data output Control
command: It is issued to activate the peripheral and to inform it what to do. Status command: It is used to test
various status conditions in the interface and the peripheral.
I/O Bus and Interface Modules
How various peripherals are connected with the processor through I/O bus.
The data bus, address bus and control bus that arise out of the processor and are intended to communicate
with I/O devices are called I/O bus. The communication link between the processor and several peripherals is
shown in the given figure. The I/O bus is connected to all peripheral interfaces. To communicate with a
particular device, the processor places a device address on the address bus. Each interface attached to the I/O
bus contains an address decoder that monitors the address lines. When the interface detects an address to be
its own, it activates the path between the bus and the device that it controls. All other peripherals are disabled.
At the same time, a function code is provided to the control bus which is called I/O command.
The types of I/O commands that are given out by the processor are:
Control Commands: This is the function code that activates the corresponding peripherals and informs them
about what to do.
Status Commands: A status command is used to test various status conditions in the interface and the
peripheral devices like BUSY, ERROR, data available or not in the buffer etc .
Data Output Command: A data output command causes the interface to respond by transferring the data
from the processor to the peripheral. The data is sent from the CPU to the buffer of interface after this
command is provided.
Data Input Command: This command is sent by the CPU if the data is to be read from the peripheral. After
this command is issued, the data of peripheral are extracted into the buffer of the interface and are read by
the CPU.