Chapter 14: Inputs, Outputs and Communications
The previous chapters defined two of the main components of the computer, the central processing unit and the memory system. Although all the processing is carried out between these two units, this would be of reduced usefulness if there was not some way of interacting with the external world which would firstly allow the introduction of the data to be processed and, secondly, make results accessible.
In early computers, this interface was rudimentary. Inputs were specified by switches which defined their value bit by bit, and the result was visualised in lamps which also indicated their value at the bit level. Since then there has been considerable evolution not only in human-machine interfaces but also in interfaces between different machines. The development of new forms of interaction with computers and other digital devices is a subject of increasingly intense research.
The term peripheral is frequently used generically to designate the input and output devices of a computer. With the advance of technology, the complexity of peripherals has systematically increased to the point where it is sometimes difficult to make a clear distinction between peripherals and processing units. The current concept of peripheral, ranges from relatively simple units, such as a keyboard or a mouse, up to very complex units, which themselves provide significant computational power, such as monitors, hard disks or touch screen interfaces. The interaction mechanisms for each peripheral are very diverse and are responsible for a significant part of the complexity of current operating systems. Some peripherals, such as hard disks, have very tight response time requirements since they send data at very high speeds to the central processing unit. Others, such as a keyboard, have much less demanding requirements, and the processor can execute many millions of operations between each interaction with the device. Note that disks may be considered part of the memory system but, considering the way they interact physically with the processors, they are also considered peripherals.
At the introductory level which is the goal of this text, we assume a simplified form of interaction, in which access to the different peripherals has the same access protocol as the access to a memory location (Section 6.8). Since the protocol is the same, it does not matter to the processor whether it is accessing a memory location or a peripheral, and this makes it possible to map the different peripherals into the memory space of the processor (Section 14.1). This simplification implies the presence of an interface circuit in each peripheral which converts information coming from the device to the protocol used for memory access.
This simplified form of interaction is representative of real situations, although there are various additional complications which are only possible to deal with in a more advanced study of specific architectures.
This chapter starts by discussing aspects of the input/output architecture in Section 14.1. The operation of some of the most well known simple peripherals is described in Section 14.2. It will then present in Sections 14.3 and 14.4 the different forms of communication between the computer and these devices. The interruption system is discussed in Section 14.5. Finally, in Section 14.6 it will consider different ways to transfer information with peripherals at different transmission rates.