Jump to content

Input/output

From Wikipedia, the free encyclopedia
(Redirected fromInput/Output)

Incomputing,input/output(I/O,i/o,or informallyioorIO) is the communication between an information processing system, such as acomputer,and the outside world, such as another computer system, peripherals, or a human operator.Inputsare the signals or data received by the system and outputs are the signals ordatasent from it. The term can also be used as part of an action; to "perform I/O" is to perform aninput or output operation.

I/O devicesare the pieces ofhardwareused by a human (or other system) to communicate with a computer. For instance, akeyboardorcomputer mouseis aninput devicefor a computer, whilemonitorsandprintersareoutput devices.Devices for communication between computers, such asmodemsandnetwork cards,typically perform both input and output operations. Any interaction with the system by an interactor is aninputand the reaction the system responds is called the output.

The designation of a device as either input or output depends on perspective. Mice and keyboards take physical movements that the human user outputs and convert them into input signals that a computer can understand; the output from these devices is the computer's input. Similarly, printers and monitors take signals that computers output as input, and they convert these signals into a representation that human users can understand. From the humanuser's perspective, the process of reading or seeing these representations is receiving output; this type of interaction between computers and humans is studied in the field ofhuman–computer interaction.A further complication is that a device traditionally considered an input device, e.g., card reader, keyboard, may accept control commands to, e.g., select stacker, display keyboard lights, while a device traditionally considered as an output device may provide status data (e.g., low toner, out of paper, paper jam).

In computer architecture, the combination of theCPUandmain memory,to which the CPU can read or write directly using individualinstructions,is considered the brain of a computer. Any transfer of information to or from the CPU/memory combo, for example by reading data from adisk drive,is considered I/O.[1]The CPU and its supporting circuitry may providememory-mapped I/Othat is used in low-levelcomputer programming,such as in the implementation ofdevice drivers,or may provide access toI/O channels.AnI/O algorithmis one designed to exploit locality and perform efficiently when exchanging data with a secondary storage device, such as a disk drive.

Interface[edit]

An I/O interface is required whenever the I/O device is driven by a processor. Typically a CPU communicates with devices via abus.The interface must have the necessary logic to interpret the device address generated by the processor.Handshakingshould be implemented by the interface using appropriate commands (like BUSY, READY, and WAIT), and the processor can communicate with an 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. Because it would be a waste for a processor to be idle while it waits for data from an input device there must be provision for generatinginterrupts[2]and the corresponding type numbers for further processing by the processor if required.[clarification needed]

A computer that usesmemory-mapped I/Oaccesses hardware by reading and writing to specific memory locations, using the same assembly language instructions that computer would normally use to access memory. An alternative method is via instruction-based I/O which requires that a CPU have specialized instructions for I/O.[1]Both input and output devices have adata processingrate that can vary greatly.[2]With some devices able to exchange data at very high speedsdirect accessto memory (DMA) without the continuous aid of a CPU is required.[2]

Higher-level implementation[edit]

Higher-leveloperating systemand programming facilities employ separate, more abstract I/O concepts andprimitives.For example, most operating systems provide application programs with the concept offiles.TheCandC++programming languages, and operating systems in theUnixfamily, traditionally abstract files and devices asstreams,which can be read or written, or sometimes both. TheC standard libraryprovidesfunctions for manipulating streamsfor input and output.

In the context of theALGOL 68programming language, theinputandoutputfacilities are collectively referred to astransput.TheALGOL 68transput library recognizes the following standard files/devices:stand in,stand out,stand errorsandstand back.

An alternative to special primitive functions is theI/O monad,which permits programs to just describe I/O, and the actions are carried out outside the program. This is notable because theI/Ofunctions would introduceside-effectsto any programming language, but this allowspurely functional programmingto be practical.

Channel I/O[edit]

Channel I/Orequires the use of instructions that are specifically designed to perform I/O operations. The I/O instructions address the channel or the channel and device; the channel asynchronously accesses all other required addressing and control information. This is similar to DMA, but more flexible.

Port-mapped I/O[edit]

Port-mapped I/Oalso requires the use of special I/O instructions. Typically one or more ports are assigned to the device, each with a special purpose. The port numbers are in a separate address space from that used by normal instructions.

Direct memory access[edit]

Direct memory access(DMA) is a means for devices to transfer large chunks of data to and from memory independently of the CPU.

See also[edit]

References[edit]

  1. ^abNull, Linda; Julia Lobur (2006).The Essentials of Computer Organization and Architecture.Jones & Bartlett Learning. p. 185.ISBN0763737690.Archivedfrom the original on 20 December 2016.Retrieved11 December2016.
  2. ^abcAbd-El-Barr, Mostafa; Hesham El-Rewini (2005).Fundamentals of Computer Organization and Architecture.John Wiley & Sons. pp. 161–162.ISBN9780471478331.Archivedfrom the original on 21 December 2016.Retrieved11 December2016.

External links[edit]