"I/O" redirects here. For other uses, see I/O
(disambiguation).
For uses of the term input-output in economics, see
Input-output model. For the medical term, see Toileting#Input and output.
In computing, input/output, or I/O, refers to the
communication between an information processing system (such as a computer),
and the outside world possibly a human, or another information processing
system. Inputs are the signals or data received by the system, and outputs are
the signals or data sent from it. The term can also be used as part of an
action; to "perform I/O" is to perform an input or output operation.
I/O devices are used by a person (or other system) to communicate with a
computer. For instance, a keyboard or a mouse may be an input device for a
computer, while monitors and printers are considered output devices for a
computer. Devices for communication between computers, such as modems and
network cards, typically serve for both input and output.
Note that the designation of a device as either input or
output depends on the perspective. Mouse and keyboards take as input physical
movement that the human user outputs and convert it into signals that a
computer can understand. The output from these devices is input for the
computer. Similarly, printers and monitors take as input signals that a
computer outputs. They then convert these signals into representations that
human users can see or read. For a human user the process of reading or seeing
these representations is receiving input. These interactions between computers
and humans is studied in a field called human–computer interaction.
In computer architecture, the combination of the CPU and
main memory (i.e. memory that the CPU can read and write to directly, with
individual instructions) is considered the brain of a computer, and from that
point of view any transfer of information from or to that combination, for
example to or from a disk drive, is considered I/O. The CPU and its supporting
circuitry provide memory-mapped I/O that is used in low-level computer
programming in the implementation of device drivers. An I/O algorithm is one
designed to exploit locality and perform efficiently when data reside on
secondary storage, such as a disk drive.Contents [hide]
1 Interface
1.1 Higher-level implementation
2 Addressing mode
2.1 Direct address
2.2 Indirect address
3 Port-mapped I/O
4 See also
[edit]
Interface
I/O Interface is required whenever the I/O device is driven
by the processor. The interface must have necessary logic to interpret the
device address generated by the processor. Handshaking should be implemented by
the interface using appropriate commands like (BUSY,READY,WAIT), and the
processor can communicate with I/O device through the interface. If different
data formats are being exchanged, the interface must be able to convert serial
data to parallel form and vice-versa. There must be provision for generating
interrupts and the corresponding type numbers for further processing by the
processor if required
A computer that uses memory-mapped I/O accesses hardware by
reading and writing to specific memory locations, using the same assembler
language instructions that computer would normally use to access memory.
[edit]
Higher-level implementation
Higher-level operating system and programming facilities
employ separate, more abstract I/O concepts and primitives. For example, most
operating systems provide application programs with the concept of files. The C
and C++ programming languages, and operating systems in the Unix family,
traditionally abstract files and devices as streams, which can be read or
written, or sometimes both. The C standard library provides functions for
manipulating streams for input and output.
In the context of the ALGOL 68 programming language, the
input and output facilities are collectively referred to as transput. The ALGOL
68 transput library recognizes the following standard files/devices: stand in,
stand out, stand errors and stand back.
An alternative to special primitive functions is the I/O
monad, which permits programs to just describe I/O, and the actions are carried
out outside the program. This is notable because the I/O functions would
introduce side-effects to any programming language, but now purely functional
programming is practical.
[edit]
Addressing mode
There are many ways through which data can be read or stored
in the memory. Each method is an addressing mode, and has its own advantages
and limitations.
There are many type of addressing modes such as direct addressing,
indirect addressing, immediate addressing, index addressing, based addressing,
based-index addressing, implied addressing, etc.
[edit]
Direct address
In this type of address of the data is a part of the
instructions itself. When the processor decodes the instruction, it gets the
memory address from where it can be read/store the required information.
Mov Reg. [Addr]
Here the Addr operand points to a memory location which
holds the data and copies it into the specified Register.
[edit]
Indirect address
Here the address can be stored in a register. The
instructions will have the register which has the address. So to fetch the
data, the instruction must be decoded appropriate register selected. The
contents of the register will be treated as the address using this address
appropriate memory location is selected and data is read/written.
[edit]
Port-mapped I/O
Port-mapped I/O usually requires the use of instructions
which are specifically designed to perform I/O operations.
0 comments:
Post a Comment