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[255].''
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 [32]. In a
PMS diagram each
major component is represented by a single letter, e.g. P
for processor, M for 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.