previous | contents | next

Chapter 5

Function and Performance


The most striking fact about function is the existence of only a single major dimension, and with only a few values. Perhaps we have taken a simplistic view of the functions that computers perform, but we think our computer space represents reality: to wit, there is remarkably little shaping of computer structure to fit the function to be performed.

At the root of this lies the general-purpose nature of computers, in which all the functional specialization occurs at the time of programming and not at the time of design. However, it might seem that specialized environments would not require all the generality, so that functional adaptation would still be possible. But this appears not to be so for two reasons. First, the level of operations of the Pc (as defined in the ISP) is too basic to reflect the kind of specialization offered by the environment (think of information-transfer or conditional-transfer operations). Second, all environments ultimately require a variety of tasks in addition to the main specialized task. These include at least language compilation or assembly, readable formatted output, debugging aids, and other utility routines. By the time these have been added, a substantial requirement for generality has been generated.

However, this is not the whole story. A second part is the difference between the computer type and the specific configuration assembled for a task. The latter is often carefully specialized to the function to be performed. But this is mostly the amount of Mp, the amount of types of Ms, and the number and types of T's. Within limits, these are all items that can be attached to any type of computer (i.e., to any Pc) and are handled in an environment- independent way. Thus there is little specialization of computer types, but great specialization of particular configurations. That this should be the case indicates something about the nature of the functional specialization-that it can be expressed adequately in gross PMS terms, as more bits of storage and more data rate.

There is still more to the story. Some functional specialization exists, as indicated in the dimension. This depends primarily on two kinds of things beyond the reach of the configurational adaptation described above. The first consists of demands for low power consumption, ruggedness, small size, etc. These have strong effects on design, but below the ISP and PMS levels. The second consists of demands for large amounts of processing power. One response to this again affects design at the lower levels of logic, devices, and circuitry and has little impact on design at the

ISP and PMS level. But response is also possible in terms of the data-types that are built into the ISP. Large machines have data-types that are appropriate to their tasks (with operations to match), and these affect the design. In fact, this effect is the substance of the functional specialization shown in the computer space dimension.

Finally, there is one last part of the story, and it is the most interesting of all. Various groups of computer engineers have felt strongly from time to time that functional specialization should exist, and they have set out to create such machines. These efforts have often produced machines that were different from the existing main line of computers, i.e., were appropriately specialized. But the net effect of almost all such attempts has been that the new idea was seen to be good in general for all computers and was taken back into the main line of computers. Thus, what started out to be a functional separation turned out to be simply a way to produce rapid development of a more universally applicable computer. A classic example is the expansion of input/output facilities in creating a functionally specialized business machine, which simply led to better I/O facilities for all computers. We will have more to say about such examples as we discuss the values along the dimension.

The functional dimensions can be based on the environment of the user's intended application. The following discussion has evolved from Bell and Newell [1971] and Bell, Mudge, and McNamara [1978].

Table 1 elaborates the seven subdimensions by listing typical functions for each. The functionality for each subdimension is arranged in increasing order of complexity. The tabulation illustrates that, for each discipline or environment, functionality evolves to a form of direct, interactive use with multiprogramming.



The first machines were clearly designed for scientific calculations. For example, Aberdeen Proving Grounds funded the early work on the ENIAC for the computation of ballistic firing tables. The image used frequently by the early computer designers was the computer as a statistical clerk, the arithmetic unit being the desk calculator, the memory the work sheet, and the program the instructions that the mathematician gave to the clerk.

From a design standpoint, scientific computation has posed two striking requirements. The first is the great accuracy of the numbers, which has led to word lengths of 36 to 64 bits (11 to 19 decimal digits of significance) and arises from the discrete representation of continuous functions, the propagation of round off error during arithmetic operations, etc. The second is the emphasis on fast arithmetic operations, i.e., on arithmetic power. In the early machines the standard rule for estimating computa-


previous | contents | next