For example, most operating systems provide application programs with the concept of files. Higher-level operating system and programming facilities employ separate, more abstract I/O concepts and primitives. With some devices able to exchange data at very high speeds direct access to memory (DMA) without the continuous aid of a CPU is required. Both input and output devices have a data processing rate that can vary greatly. An alternative method is via instruction-based I/O which requires that a CPU have specialized instructions for I/O. Ī computer that uses memory-mapped I/O accesses hardware by reading and writing to specific memory locations, using the same assembly language instructions that computer would normally use to access memory. 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 generating interrupts and the corresponding type numbers for further processing by the processor if required.
ALTERNATIVE APPLE KEYBOARD AND MOUSE SERIAL
If different data formats are being exchanged, the interface must be able to convert serial data to parallel form and vice versa. Handshaking should 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.
The interface must have the necessary logic to interpret the device address generated by the processor. Typically a CPU communicates with devices via a bus. An I/O algorithm is one designed to exploit locality and perform efficiently when exchanging data with a secondary storage device, such as a disk drive.Īn I/O interface is required whenever the I/O device is driven by a processor. The CPU and its supporting circuitry may provide memory-mapped I/O that is used in low-level computer programming, such as in the implementation of device drivers, or may provide access to I/O channels. Any transfer of information to or from the CPU/memory combo, for example by reading data from a disk drive, is considered I/O. In computer architecture, the combination of the CPU and main memory, to which the CPU can read or write directly using individual instructions, is considered the brain of a computer. 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. From the human user'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 of human–computer interaction. Similarly, printers and monitors take signals that computers output as input, and they convert these signals into a representation that human users can understand. 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. The designation of a device as either input or output depends on perspective. Devices for communication between computers, such as modems and network cards, typically perform both input and output operations. For instance, a keyboard or computer mouse is an input device for a computer, while monitors and printers are output devices. I/O devices are the items of hardware used by a human (or other system) to communicate with a computer. The term can also be used as part of an action to "perform I/O" is to perform an input or output operation. Inputs are the signals or data received by the system and outputs are the signals or data sent from it.
In computing, input/output ( I/O, or informally io or IO) is the communication between an information processing system, such as a computer, and the outside world, possibly a human or another information processing system.