The main components in a typical computer system are the processor, memory, input/output devices, and the communication channels that connect them. The processor is the workhorse of the system; it is the component that executes a program by performing arithmetic and logical operations on data. It is the only component that creates new information by combining or modifying current information. In a typical system there will be only one processor, known at the central processing unit, or CPU. Modern high performance systems, for example vector processors and parallel processors, often have more than one processor. Systems with only one processor are serial processors, or, especially among computational scientists, scalar processors.
Memory is a passive component that simply stores information until it is requested by another part of the system. During normal operations it feeds instructions and data to the processor, and at other times it is the source or destination of data transferred by I/O devices. Information in a memory is accessed by its address. In programming language terms, one can view memory as a one-dimensional array M. A processor's request to the memory might be ``send the instruction at location M[1000]'' or a disk controller's request might be ``store the following block of data in locations M[0] through M .'' Input/output (I/O) devices transfer information without altering it between the external world and one or more internal components. I/O devices can be secondary memories, for example disks and tapes, or devices used to communicate directly with users, such as video displays, keyboards, and mouses. The communication channels that tie the system together can either be simple links that connect two devices or more complex switches that interconnect several components and allow any two of them to communicate at a given point in time. When a switch is configured to allow two devices to exchange information, all other devices that rely on the switch are blocked, i.e. they must wait until the switch can be reconfigured.
A common convention used in drawing simple ``stick figures'' of computer systems is the PMS notation . In a PMS diagram each major component is represented by a single letter, e.g. P for processor, Mfor memory, or S for switch. A subscript on a letter distinguished different types of components, e.g. for primary memory and for cache memory. Lines connecting two components represent links, and lines connecting more than two components represent a switch. Although they are primitive and might appear at first glance to be too simple, PMS diagrams convey quite a bit of information and have several advantages, not the least of which is they are independent of any particular manufacturer's notations.
As an example of a PMS diagram and a relatively simple computer architecture, Figure 1 shows the major components of the original Apple Macintosh personal computer. The first thing one notices is a single communication channel, known as the bus, that connects all the other major components. Since the bus is a switch, only two of these components can communicate at any time. When the switch is configured for an I/O transfer, for example from main memory () to the disk (via K), the processor is unable to fetch data or instructions and remains idle. This organization is typical of personal computers and low end workstations; mainframes, supercomputers, and other high performance systems have much richer (and thus more expensive) structures for connecting I/O devices to internal main memory that allow the processor to keep working at full speed during I/O operations.