206 | 20 BABy
and logical operations were carried out at various ‘destinations’: these were typically mercury
delay lines. One destination performed addition, another subtraction, others logic operations,
and so forth. ACE’s programs were made up of instructions like ‘Transfer the contents of sources
15 and 16 to destination 17’.^53 Turing wrote this simply as ‘15–17’. The instruction’s effect was to
apply the operation associated with destination 17 to the two numbers that were transferred. In
this case, the operation was addition, and the instruction 15–17 summed the numbers stored
in sources 15 and 16. Since the identity of the operation that would be performed was implicit
in the destination number 17 (or in the case of some instructions, in the source number), there
was no explicit term in the instruction specifying the operation itself—the instruction con-
tained no ‘op-code’ meaning ADD.
The computer designed by Kilburn had no central accumulator. In his Turing-style decen-
tralized design, each of the machine’s elementary arithmetical and logic operations was imple-
mented by a separate destination.^54 Every instruction, Kilburn explained, transferred a number
‘from one part of the machine—a “source”—to another—a “destination” ’. As in the Turing
paradigm, instructions consisted of pairs of numbers, a source number s and the destination
number d. These numbers controlled what Kilburn called, following Turing, a ‘source tree’ and
a ‘destination tree’. A ‘tree’ is a system of interconnections and gates. It is the source tree that
accesses the number with address s in the store, while the destination tree accesses the destina-
tion that will perform the required operation (such as the adder). An instruction’s effect was to
route the operand(s) from the main memory, via the source tree, to the destination tree, and
thence to the adder (or other unit specified in the instruction). All of these ideas, including
the concepts of source and destination trees, were explained to Kilburn during the Adelphi
lectures. He went on to summarize his design in a block diagram that depicted a very ACE-like
computer.^55
Meanwhile, Newman spent the autumn and winter of 1946 in Princeton,^56 and by the time
he returned he had decided to adopt von Neumann’s centralized design for his own computer
at Manchester. When Turing’s NPL colleague Harry Huskey dropped in to visit the Newman–
Williams project (as he called it) early in 1947, he learned that the Manchester plan was to ‘more
or less copy the von Neumann scheme’.^57 Newman had originally intended to copy Turing’s
ACE design, and had assumed that Flowers and his engineers in London would be involved in
building the Manchester computer,^58 but he abandoned this plan. He and Jack Good had trav-
elled down from Manchester to the NPL to learn in detail about Turing’s design for ACE, but
Newman grew so irritated by Turing’s inability to make himself clear that he excused himself
and returned to Manchester, leaving Good to hold the fort.^59 Good later explained to Michie
that ‘Turing plunged into some arbitrary point in the thicket, and insisted on defining and
describing every leaf and branch at that particular spot, fanning out from there’.^60
ACE was not for Newman, and he found von Neumann’s design principles simple and
straightforward. When Newman discovered that Williams’s bright young assistant Kilburn was
full of ideas for an ACE-like computer, he may not have been too impressed.
from Princeton with love
Not long after Williams and Kilburn arrived in Manchester, Newman himself gave them a
few lectures on how to design a computer. Turing’s Adelphi lecture series was probably just
about finishing at this time.^61 Naturally, Newman’s lectures laid emphasis on the von Neumann