Accessing Io Devices in System Memory
Accessing Io Devices in System Memory
Move DATAIN, R0
Reads the data from DATAIN and stores them into processor register R0. Similarly, the
instruction
Move R0, DATAOUT
Sends the contents of register R0 to location DATAOUT, which may be the output data
buffer of a display unit or a printer.
Most computer systems use memory-mapped I/O. some processors have special
In and Out instructions to perform I/O transfers. When building a computer system based
on these processors, the designer had the option of connecting I/O devices to use the
special I/O address space or simply incorporating them as part of the memory address
space. The I/O devices examine the low-order bits of the address bus to determine
whether they should respond.
The hardware required to connect an I/O device to the bus. The address decoder
enables the device to recognize its address when this address appears on the address lines.
The data register holds the data being transferred to or from the processor. The status
register contains information relevant to the operation of the I/O device. Both the data
and status registers are connected to the data bus and assigned unique addresses. The
address decoder, the data and status registers, and the control circuitry required to
coordinate I/O transfers constitute the device’s interface circuit.
I/O devices operate at speeds that are vastly different from that of the processor.
When a human operator is entering characters at a keyboard, the processor is capable of
executing millions of instructions between successive character entries. An instruction
that reads a character from the keyboard should be executed only when a character is
available in the input buffer of the keyboard interface. Also, we must make sure that an
input character is read only once.
This example illustrates program-controlled I/O, in which the processor
repeatedly checks a status flag to achieve the required synchronization between the
processor and an input or output device. We say that the processor polls the device. There
are two other commonly used mechanisms for implementing I/O operations: interrupts
and direct memory access. In the case of interrupts, synchronization is achieved by
having the I/O device send a special signal over the bus whenever it is ready for a data
transfer operation. Direct memory access is a technique used for high-speed I/O devices.
It involves having the device interface transfer data directly to or from the memory,
without continuous involvement by the processor.
The routine executed in response to an interrupt request is called the interrupt-
service routine, which is the PRINT routine in our example. Interrupts bear considerable
resemblance to subroutine calls. Assume that an interrupt request arrives during
execution of instruction i in figure 1
Program 1 Program 2
COMPUTER routine PRINT routine
2
....
Interrupt i
Occurs i+1
here
…
M
Source : http://elearningatria.files.wordpress.com/2013/10/cse-iv-
computer-organization-10cs46-notes.pdf