The computer space
The preceding two chapters have provided a view of a computer system as an organized hierarchy of many levels: physical devices, electronic circuits, logic circuits, register-transfer systems, programs, and PMS systems. We must remember that these are levels of description for what, after all, remains the same physical system. Each higher level describes more of the total system, but with a loss of detail. As this is an engineered system, great care is taken that each level represent adequately all the behavior necessary to determine the performance of the system. In natural systems too there are often many levels of description (e.g., in biological systems, from the molecule to the organelle to the cell to the tissue to the organ to the organism).
However, in natural systems we usually depend on statistics to eliminate the details of lower levels and permit aggregation, and they always do so imperfectly. In computer systems, on the other hand, the aggregation is intended to be perfect. It fails, of course, and so both error detection and error correction exist as fundamental activities in computer systems. But these imperfections are ascribed to the system itself and not to our description of it, which is just the opposite from how we treat natural systems. Only the PMS level of description is natural, in the sense of not being the intended result of the design. This is because performance is defined ultimately at the programming level. The aggregations and simplifications that go into a PMS description (e.g., measuring power by bits per second) are approximations, just as they are for any natural system (e.g., measuring the productivity of the economy by gross national product).
We have provided descriptive systems for the top levels of the hierarchy: the PMS level and the ISP level, the latter defining the basic components of the programming level in terms of the RT level just below. These are the two descriptions that are of most concern in the overall design of a computer system. We did not define the lower levels, because they go beyond the focus of this book. Neither did we define the program level, partly because there exists no uniform description (no common programming language) and partly because the computer designer works mostly at the interface, defining the instruction set. This latter is what the ISP provides.1
PMS and ISP permit the description of an indefinite number of computer systems-indeed, all that come within the scope of the current design art. (They might even be taken as a definition of what that current art is.) Some 104~ l05 individual computer systems have in fact come into existence, each of which can be described in PMS and ISP. They are not all radically individual. There are about 103 types of computer systems represented, if we define two systems with the same Pc to be of the same type. (By exercising various options, a single computer type could take on 105 different forms.)
Of these thousand-odd types, we present in this book just 40.2 What sort of total population do we have here? What does our miniscule sample look like when compared with the whole? More fundamentally, what are the significant aspects of the computer systems that should be used in a comparison or classification? These are the questions we will try to deal with in this chapter. We can be neither comprehensive nor elegant. There has simply not yet been done the necessary study on which to base an adequate taxonomy of computer systems. But we can present a rough picture based on the common lore of the field, filled in with our own predilections.
For any system, either an entire computer, C, or a component, such as P, M, or S, it is convenient to distinguish its function, its performance, and its structure. The system is designed to operate in some task environment; to accomplish such tasks is its function. How well it does these tasks is its performance. Evaluation of performance is normally restricted to these tasks. Although it is always noteworthy when a system can perform adequately outside its specified domain (e.g., when a business computer is also a good control computer), it is rarely worth noting when a system cannot perform those tasks it was not built to perform. Thus, function denotes scope, and performance denotes an evaluation within that scope.
Structure denotes those aspects of the system that allow it to perform. This includes descriptions of its subcomponents and how they are organized. Performance of subcomponents often may be considered structure as far as the whole system is concerned, especially if the performance can be taken as given. For example, early digital transmission-oriented telephone lines came in two capacities, ~200 bits/sec and ~2,000 bits/sec. From the view-point of the telephone system, these are performance measures;
1An increasingly popular view is that the program and RT levels (with ISP in between) are one, thus erasing the difference between hardware and software. The boundary appears to us not quite so invisible. We take the important task to be drawing the boundary in the right place for any specific design.