**34 Part 1 ½
Fundamentals Section 2 ½
The Computer Space
**

versus non run for an antique, and so on. Structure is such things as number of wheels, shape of the vehicle, stroke volume, and gear ratios. Structure determines performance, although from the standpoint of design, of course, causality runs the other way: from function to performance to structure. Design also includes an aesthetic component. Just as the shape of a car is not solely determined by function and performance, so, too, the shape of an instruction set reflects aesthetic considerations.

There are, then, three main ways to classify or describe a computer system: according to its function, its performance, or its structure. Each consists in turn of a number of dimensions. It is useful to think of all these dimensions as making up a large space in which any computer system can be located as a point. In such a space all the thousand computer types built to date constitute a sparse scatter, clustering (it** **is to be hoped) in various regions that make sense functionally and economically. The 30 computer types in this book sample this larger scatter in some way, to give a picture both of the entire space and of the part already explored.

How many dimensions are there in this computer space? Indefinitely many, if one wants to locate a computer with ultimate precision. In fact, if one wants to go all the way, one might as well give the PMS and ISP descriptions (and down through the RT, logic, circuit, and device levels). The virtue of thinking of such a space is to abstract to a small number of dimensions, and to select those that are most relevant. Of the functions, one wants those that most influence the design; of the performance, one wants those that make the largest difference; of structure those that not only affect performance but represent possible design choices by the computer engineer. In addition, one wants dimensions along which there is significant variation. Those aspects of computer systems which are common to all, such as the use of binary devices, though of supreme interest, are not part of the computer space.

No theory of computer systems is sufficiently comprehensive to define completely the dimensions, of computer space. Guidelines have sprung from past experience in designing machines, but at some point the architect must simply propose a set of dimensions which are justified later, in performance. Table 1 abstracts a set of dimensions for function and structure. Chapter 5 gives a set for performance. The performance dimensions can be summarized in terms of a Kiviat graph, defined in Chap. 5. Together with ISP and PMS, Kiviat graphs will be used throughout the book to characterize the computer structures under study.

Table 1 gives 2 dimensions for computer system function and 25 for computer structure. However, the dimensions are not all independent. Many of the structure dimensions correlate highly (though not perfectly). Thus, in Table 1 we have put the structure dimensions in seven horizontal groups, with the most relevant at the left in each group. (In the first structure group, we have also added two temporal dimensions, since a strong correlation with time exists.) We have omitted two important dimensions for which we do not have values: reliability (mean time between failures per operation) and physical size density (e.g., bits per cubic foot), both of which increase with generation.

With each dimension we have indicated the range of possible values. For some (Pc.speed, for example) this is a numerical quantity. However, for most, the range is a discrete set of design choices, which may or may not have a simple ordering. Clearly, these discrete values are selections from a meaningful subspace of design choices, but mostly we do not know how to construct that subspace. The values given are those that have arisen in practice, and they serve to classify the computers in the book. Typically, the discrete sets of design choices are ordered in terms of increasing hardware complexity and increasing system performance. Frequently the set of design choices, having evolved over time, represents a developmental chain, as discussed in Chap. 1. As the structure of a system evolves along a chain, a specialized subsystem may emerge, with the most primitive dimensional values, and then evolve in the same manner as the original system. This phenomenon, illustrated in Chap. 1, has been termed the *wheel of reincarnation *and will be discussed further in Chap. 6.

This section of the book is devoted to a discussion of each of the computer space dimensions. Each dimension will be defined, its basis for selection discussed, and its ordering in Table 1 explained. Chapter 5 presents the computer function and performance dimensions, while Chap. 6 (and Part'2) discusses the structural dimensions. We give the entire set of dimensions here at the beginning, both for later reference and to reinforce the concept of a single computer space in which computer systems can be located. Each dimension in Table 1 has a reference to the part, section, and/or chapters in the book that contain a discussion of that dimension.

A detailed discussion of several structural dimensions has been placed in Part 2, where several real computer systems are used to illustrate the variations across a dimension. The introductions to each section in Part 2 present further refinements to the design choices for the dimension under consideration. Because of the length of these taxonomies, only the major design areas of choice (not the full list of alternative choices) are reproduced in Table 1.

We will refer to the set of dimensions in Table 1 from now on simply as "the computer space.

History

Like all systems subject to variation and selection, computers have evolved through time. So striking and rapid has been this evolution that the concept of "generation" has become firmly embedded in the computer engineering culture (to say nothing of the marketing culture and the view of the lay public). It is at best an ambiguous term, having none of the sharpness of its root term