previous | contents | next

Chapter 3 The computer space 49

i.e., as a special Pio. The DEC 338 is such a P.display and is described both later in this chapter and in detail in Chap. 25.

Time-sharing. The requirement to have a large number of users in simultaneous conversational interaction with a single large machine has bred a new specialization, that of the time-sharing computer. All the computers described above can be time-shared (even if they do not have interrupts or inherent multiprogramming). However, the emphasis on this mode of operation with the particular timing and flexibility requirements of hum n users doing general computing at consoles in multiple software systems has led to a number of innovations in design. The most important is the virtual-memory techniques for achieving multiprogramming (described in Part 3, Sec. 6). There is also substantially increased complexity of PMS structure to handle the integration of large files, swapping memories, and the huge software systems that seem to be endemic to time-sharing systems. It is still too early to tell whether any of the design responses will produce permanent specialization or will again simply be the first instigation of design features that will become universally used.

In summary, we see that there is functional specialization and that it translates mostly into total size of the machine and into the data-types available. Many of the other design aspects created in response to functional specialization have instead become the common property of all machines.

Performance

For a device that does a complex job, it is meaningless to ask for a single precise index of performance. It is like asking for the average speed of a given model of car over its lifetime without specifying who will own it, where he will drive it, and what sort of terrain he will encounter along the way. Notice that the difficulty is as much in the complexity of the task environment as in the complexity of the internal workings of the machine. Specify everything about the environment, and the performance can often be given in a single figure. It may be hard to determine, but at least it is well defined. If you know the terrain and road conditions perfectly and how the car was driven, then from the structure of the car it is possible to figure out the instantaneous velocity and from this to construct the average speed.

To put this in terms of computers, given a particular configuration for a computer system, given a particular program, and given a particular set of input data, it is possible to determine all aspects of the performance: how long it took, how much space was used, whether it was correct, and so on. But we are not interested in such specifics. We want to know how well the computer system performs, given some vague notion of the kind of task-programs and data-that will be used with it. Although we know that we cannot have adequate measures, we believe that there is something that can be said about the performance-that tells us that a CDC 6600 is many times more powerful in actual performance than a PDP-8.

An interesting way to look at the problem of specifying performance is to play a simple game: We will give you a number, say 4. You are to give the best description of computer systems involving only that many parameters (equivalently, dimensions or attributes). That is, what is the best description of a computer that can be stated in four numbers? The game is easier to play if we speak of the dimensions, rather than the information content of the description (in bits, say).1 We have still not defined "best," of course. It can be taken to mean the best prediction of the relative ordering of the computer system; better on the index means better on the same task.2

To start at the beginning, what single number would you give to characterize a computer's power? Such a question makes most people uncomfortable, since strong feelings exist for at least two kinds of numbers, dealing with speed and memory, respectively. If forced, we would probably settle for something related to processing speed. The cycle time of the primary memory is a possibility because for simple machines it determines (limits) the operation rate. It is a structural parameter, but that is no reason to avoid it as a performance index. The average number of instructions per second, or operations per second, is a better indicator. Since the latter does not take into account the size of the word being processed, perhaps average bits processed per second is the best single number. (We measure this number at the processor, and it may include both the instruction and data streams.)

To take an average we must adopt some weightings. The simplest scheme is simply to add all the instruction (or operation) times and divide by their number. This is equivalent to weighting them equally, the rare ones and the common ones. If we want to do better than that we need some data. Several sets of relative frequencies, of instruction types, called "mixes," have been used in the literature. Table 2 gives four examples. The Gibson mix is

1 It is not fair, of course, to invent tricks to encode many conceptually independent dimensions into a single one, just to beat the limit. On the other hand, composite dimensions, such as average operation time, are perfectly acceptable.

2 Definitional precision is not appropriate, since we are not attempting to deal seriously with the technical questions of indices, only to illustrate the issues.

previous | contents | next