It Began with Babbage (39 page)

Read It Began with Babbage Online

Authors: Subrata Dasgupta

BOOK: It Began with Babbage
10.92Mb size Format: txt, pdf, ePub

Wilkes's lecture also marked something else: the search for order, structure, and simplicity in the design of computational artifacts; and an attendant concern for, a preoccupation with, the
design process
itself in the realm of computational artifacts.

We have already seen the first manifestations of this concern with the design process in the Goldstine-von Neumann invention of a flow diagram notation for beginning the act of computer programming (see
Chapter 9
, Section III), and in David Wheeler's and Stanley Gill's discussions of a method for program development (
Chapter 10
, Section IV). Wilkes's lecture was notable for “migrating” this concern into the realm of the physical computer itself.

II

We recall that, in May 1949, the Cambridge EDSAC became fully operational (see
Chapter 8
, Section XIII). The EDSAC was a serial machine in that reading from or writing into memory was done 1 bit at a time (bit serial)
5
; and, likewise, the arithmetic unit performed its operations in a bit-by-bit fashion.
6
Soon after the EDSAC's completion, while others in his laboratory were busy refining the programming techniques and exploring its use in scientific applications (see
Chapter 9
, Sections V–VIII; and
Chapter 10
), Wilkes became preoccupied with issues of
regularity
and
complexity
in computer design and their relation to
reliability
.
7

Reliability, in Wilkes's view, depended on the amount of equipment the machine has, its complexity, and the degree of repetition of the units.
8
As for complexity, by this he meant the extent to which the physical connections between the units within a computer convoluted their
logical
relationships. A machine can be built more easily if its components were designed and implemented by different people, then they could go about their business without interfering, or having to interact, with one another. Likewise, if the components are connected in a transparent way, the machine is easier to repair.
9

Thus, for Wilkes, complexity was related to the machine's internal organization. A regular or orderly organization lessened the obscurity of the interrelatedness of the components. In the EDSAC, the paragon of such virtue was the main memory unit, which consisted of 32 independent mercury tanks connected to common input and output “buses” (that is, communication paths).

The culprits, in contrast, were the EDSAC arithmetic unit and the control circuits. Because the arithmetic unit was a serial device (performing its operations in a bit-by-bit manner, rather as humans add two numbers in a digit-by-digit manner), it, too, was unstructured and irregular. However, during summer and early autumn 1950, Wilkes visited the United States and, during the course of this visit, he met Julian Bigelow (1913–2003)—one of the cofounders, with Norbert Wiener and Arturo Rosenblueth of cybernetics—in Princeton. Bigelow was then engaged in the development of the IAS computer at the Institute of Advanced Study under von Neumann's direction (see
Chapter 8
, Section XV). Through their discussions, Wilkes came to realize that a parallel arithmetic unit would have the same kind of regularity as the memory unit.
10

Indeed, as Wilkes admitted in his Manchester lecture, regularity and simplicity is obtained, in general, when identical, repetitive units are used rather than a collection of different units—even if the number of identical units is more than the number of distinct units.
11
And just as the EDSAC memory, comprised of 32 identical memory tanks, was orderly, regular, and thus not complex (see
Figure 8.2
), so also would be a parallel arithmetic unit that consisted of an array of identical circuits performing semi-independent operations in parallel, on the different bit pairs corresponding to the two numbers involved (
Figure 12.1
).
12

FIGURE
12.1 An Adder Unit.

So if one builds a parallel machine, one has a good example, in a parallel arithmetic unit, of a functional component consisting of multiple identical units.
13

There remains the control unit within the computer—that is, as Wilkes put it, everything else in a machine apart from the memory unit and the registers and adding circuits comprising the arithmetic unit.
14
The control circuits in the EDSAC were responsible for issuing control signals to all other parts of the machine so that the latter could execute the EDSAC instructions in the desired sequence. The problem was that there was no systematic procedure to design the control unit. It was an ad hoc enterprise, the outcome of which was a control circuit that obscured completely the interrelationship of its elements.
15
There was no transparency. The resulting logical design of the control circuit had no structure, no orderliness. Computer designers would call such a structure
random logic
.
16
And so Wilkes arrived at the main thrust of his lecture: to propose a way in which the control unit could be made more systematic and, thus, simpler in organization and design.
17

III

The modern reader of this article by Wilkes will be struck by the informality of its mode of presentation; the writing style is artless, more along the nature of a lecture (as indeed it was). There are no references, for example. In approximately 1300 words, aided by a single diagram, Wilkes laid out a “best way” of designing a computer's control unit—a technique he called microprogramming.

What is especially striking is what the lecture reveals of Wilkes's mentality. Although an applied mathematician by formal training, in the realm of computers he was very much the engineer. It is worth noting that Wilkes's academic position in Cambridge University at the time of his retirement in 1980 was (besides being director of the University Computer Laboratory) professor of computer
technology
.

If Alan Turing and John von Neumann represented the beginning of theoretical computer science, Wilkes was the archetypal empirical computer scientist. We cannot imagine him speculating on such abstractions as Turing machines or self-reproducing automata (see
Chapter 4
, Section IV; and
Chapter 11
, Section IV). Yet, the issue that caught Wilkes's attention was essentially a
conceptual
problem, even abstract, although it derived from the practical problem of the reliability and maintainability of computers.

An interesting attribute of conceptual problems is that their recognition by individuals is often prompted by very personal perspectives, more of a philosophical, aesthetic, or even ethical nature than a strictly empirical or technical consideration. Wilkes identified a conceptual rather than a strictly empirical problem.
18
He once remarked that, without a particular philosophical point of view, the problem he began to investigate (and the solution to which he presented at the Manchester conference) would not make too much sense.
19
Elsewhere, he would comment that his problem was essentially a private problem.
20

IV

Creativity always originates in the past. Ideas, concepts, solutions have their traces in what came before. What makes a person creative is the
way
in which he or she draws on the past to bring about the present—and that will, perhaps, shape the future.
21
The creative being extracts ideas from the past and fuses them in unexpected and surprising ways to produce something quite different from the ingredients. Hungarian-British writer Arthur Koestler (1905–1983) called this process
bisociation
.
22

So it was with Wilkes's invention of microprogramming. His search for an ordered, regular structure for the computer's control unit led him to other kinds of circuits that manifested the kind of order he sought. In the EDSAC itself, as we have seen, the memory unit manifested such an order, but there was another unit that seemed relevant because it had organizational order. A part of the machine was concerned with decoding the operation code within an instruction and then reencoding in a different way to provide the signals sent to the different units that would execute that instruction collectively. This reencoding was performed by a circuit called the
diode matrix
and, Wilkes believed, “something similar” could be used to implement the control circuits.
23

A diode matrix is a regular, two-dimensional array of intersecting horizontal and vertical wires—that is, an array of intersecting orthogonal wires—in which the horizontal wires serve as inputs to the circuit and the vertical ones serve as the outputs from the circuit. The points of intersection between the horizontal and the vertical wires serve as sites of diodes. The presence of a diode causes the signal (if any) on the diode input to be passed through (“gated”) to the diode output line; in the diode matrix, the diode input is a horizontal line and the output is a vertical line. Each horizontal line in the matrix connects to one or more diodes; each vertical line transmits an input signal on the connected diode to the vertical line that connects to the diode output (
Figure 12.2
).

FIGURE
12.2 A Diode Matrix

The problem with the diode matrix encoder in the EDSAC was that it was completely inflexible. It was used to issue a fixed set of control signals corresponding to a particular operation code (“opcode”) within an instruction. However, if an instruction allowed for
different
interpretations of the opcode, then the diode matrix encoder was of no use. More important, the task of executing a
sequence
of instructions (which was the real job of the main control unit in a computer) demanded the flexibility of being able to select different sets of control signals depending on the actual instructions—a flexibility that could not be met by the diode matrix.

It is said that travel broadens the mind. For the creative person, whether in the arts or sciences, whether in the humanities or engineering, travel certainly fosters creativity. So it was with Wilkes. As already mentioned, from June to September 1950, Wilkes was in the United States visiting various universities where work was in progress in computer development. One of the places was MIT, where, under the direction of engineer and systems scientist Jay Forrester (1918–), the Whirlwind computer was then under construction. In this machine, the duration of each arithmetic operation (except for multiplication) spanned exactly eight clock pulse intervals. The control signals corresponding to each operation were derived from a diode matrix. The regularity of this control unit made an immediate impression on Wilkes.
24

However, he wanted far greater flexibility than what either the EDSAC diode matrix-based encoder or the Whirlwind diode matrix-based control unit could provide. In the latter case, for instance, each arithmetic instruction required a fixed sequence of control signals to be issued regardless of the context of its execution. But, as noted, in general, an instruction may demand a variable sequence of control signals depending on the operands or on some condition being generated during the course of instruction execution.

It was after his return to England in September 1950, sometime that winter, when the solution came to him.
25
He found an analogy between the functional flexibility he desired of his control unit and the functional flexibility of computer
programs
. That is, he likened the desired flexibility for control signal sequences required to execute a
single instruction
to the flexibility of instruction sequences within a
program
. From this analogy, Wilkes arrived at the concept of the control unit as a programmed computer in miniature—a computer within a larger computer, rather like a homunculus in the brain.

Other books

The Last Temple by Hank Hanegraaff, Sigmund Brouwer
Laird of Ballanclaire by Jackie Ivie
Made to Break by D. Foy
Sacred Games by Vikram Chandra
The Doublecross by Jackson Pearce
The Outer Ring by Martin Wilsey
Beach Lane by Melissa de La Cruz