As stated in earlier chapters, a computer system consists of peripheral devices, or input/output devices (printers, terminals, storage devices, etc.) connected to a CPU (central processing unit). In order for the system to operate properly, the CPU must be able to communicate with the peripheral devices. In turn, the peripheral devices must be able to communicate with the CPU. This two-way communications between the CPU and its peripherals must take place in order for the system to function properly. These communications operations are discussed in the remainder of this section.
One of the key functions of the input/output (IO) devices of a computer system is the conversion of data into a machine-readable form. For instance, data entered through a computer terminal must be converted from a form understood by humans into a machine-readable form such as ASCII (see the section on computer codes in Unit 3 IP-10). Code conversion must be performed when data is input from devices such as remote terminals and magnetic-ink character recognition devices and also at output when information is sent to a printer or display terminal. Code conversion is performed by the input/output (IO) control unit. This unit is different from the control unit of the CPU. It is located between one or more I/O devices and the CPU and is used only to facilitate I/O operations.
In addition to code conversion, I/O control units perform data buffering. A buffer is a separate storage unit (normally contained in the I/O control unit) for a particular input or output device. It is used as a temporary holding area for data being transferred to or from the CPU.
When data is read by an input device, it is converted to a machine-readable form and stored in a buffer. Once a specific amount of data has been collected in the buffer, it is transferred to the CPU. The buffer allows a large quantity of data to be transferred much faster than if the data items were transferred individually. For example, a buffer is used to temporarily hold data being entered from a remote terminal; this allows a large block of data to be keyed on the terminal, held, and transferred all at once to the CPU. While the data is being keyed, the CPU processes other data (see picture below). The buffer serves a similar purpose when information is transferred from the CPU to a printer or terminal as output.
Although the CPU is very fast and accurate, it can execute only one instruction at a time. If it executes an instruction that requires input or output, it must wait while data is retrieved from or sent to an input/output device. Compared with the CPU's intemal processing speeds, I/O device speeds are extremely slow. Even high-speed I/O devices often work only one-tenth as fast as the CPU. When the CPU slows down to wait for input/output operations to take place, it is input/output bound.
The flow of data indicates that in this system the CPU does the process step when it has the necessary data but sits idle while input and output occur. To increase use of the CPU, channels have been developed to take over the task of transferring data to and from the CPU. Each channel is a small, limited-capacity computer that serves as a data roadway. The channel may be within the CPU or a separate piece of equipment connected to it. During processing, when the CPU encounters an instruction requiring input or output, the CPU indicates to the channel what is needed. The channel then goes to the required input device for data or sends information to the appropriate output device. The CPU, meanwhile, is free to execute other instructions; it is relieved of its responsibility to transfer data and can process the data more efficiently.
Communication hardware devices are often used to manage the transmission of data over a computer system's communication channels. These hardware devices are discussed in the following section, Communication Hardware.
Last Updated Jan.7/99