Manchester Mark 1


The Manchester Mark 1 was one of the earliest stored-program computers, developed at the Victoria University of Manchester from the Manchester Baby. Work began in August 1948, and the first version was operational by April 1949; a program written to search for Mersenne primes ran error-free for nine hours on the night of 16/17 June 1949.
The machine's successful operation was widely reported in the British press, which used the phrase "electronic brain" in describing it to their readers. That description provoked a reaction from the head of the University of Manchester's Department of Neurosurgery, the start of a long-running debate as to whether an electronic computer could ever be truly creative.
The Mark 1 was to provide a computing resource within the university, to allow researchers to gain experience in the practical use of computers, but it very quickly also became a prototype on which the design of Ferranti's commercial version could be based. Development ceased at the end of 1949, and the machine was scrapped towards the end of 1950, replaced in February 1951 by a Ferranti Mark 1, the world's first commercially available general-purpose electronic computer.
The computer is especially historically significant because of its pioneering inclusion of index registers, an innovation which made it easier for a program to read sequentially through an array of words in memory. Thirty-four patents resulted from the machine's development, and many of the ideas behind its design were incorporated in subsequent commercial products such as the and 702 as well as the Ferranti Mark 1. The chief designers, Frederic C. Williams and Tom Kilburn, concluded from their experiences with the Mark 1 that computers would be used more in scientific roles than in pure mathematics. In 1951, they started development work on Meg, the Mark 1's successor, which would include a floating point unit.
It was also called the Manchester Automatic Digital Machine, or MADM.

Background

In 1936, mathematician Alan Turing published a definition of a theoretical "universal computing machine", a computer which held its program on tape, along with the data being worked on. Turing proved that such a machine was capable of solving any conceivable mathematical problem for which an algorithm could be written. During the 1940s, Turing and others such as Konrad Zuse developed the idea of using the computer's own memory to hold both the program and data, instead of tape, but it was mathematician John von Neumann who became widely credited with defining that stored-program computer architecture, on which the Manchester Mark 1 was based.
The practical construction of a von Neumann computer depended on the availability of a suitable memory device. The University of Manchester's Baby, the world's first electronic stored-program computer, had successfully demonstrated the practicality of the stored-program approach and of the Williams tube, an early form of computer memory based on a standard cathode ray tube, by running its first program on 21 June 1948. Early electronic computers were generally programmed by being rewired, or via plugs and patch panels; there was no separate program stored in memory, as in a modern computer. It could take several days to reprogram ENIAC, for instance. Stored-program computers were also being developed by other researchers, notably the National Physical Laboratory's Pilot ACE, Cambridge University's EDSAC, and the US Army's EDVAC. The Baby and the Mark 1 differed primarily in their use of Williams tubes as memory devices, instead of mercury delay lines.
From about August 1948, the Baby was intensively developed as a prototype for the Manchester Mark 1, initially with the aim of providing the university with a more realistic computing facility. In October 1948, UK Government Chief Scientist Ben Lockspeiser was given a demonstration of the prototype Mark 1 while on a visit to the University of Manchester. Lockspeiser was so impressed by what he saw that he immediately initiated a government contract with the local firm of Ferranti to make a commercial version of the machine, the Ferranti Mark 1. In his letter to the company, dated 26 October 1948, Lockspeiser authorised the company to "proceed on the lines we discussed, namely, to construct an electronic calculating machine to the instructions of Professor F. C. Williams". From that point on, development of the Mark 1 had the additional purpose of supplying Ferranti with a design on which to base their commercial machine. The government's contract with Ferranti ran for five years from November 1948, and involved an estimated £35,000 per year.

Development and design

The Baby had been designed by the team of Frederic C. Williams, Tom Kilburn and Geoff Tootill. To develop the Mark 1 they were joined by two research students, D. B. G. Edwards and G. E. Thomas; work began in earnest in August 1948. The project soon had the dual purpose of supplying Ferranti with a working design on which they could base a commercial machine, the Ferranti Mark 1, and of building a computer that would allow researchers to gain experience of how such a machine could be used in practice. The first of the two versions of the Manchester Mark 1 – known as the Intermediary Version – was operational by April 1949. However, this first version lacked features such as the instructions necessary to programmatically transfer data between the main store and its newly developed magnetic backing store, which had to be done by halting the machine and manually initiating the transfer. These missing features were incorporated in the Final Specification version, which was fully working by October 1949. The machine contained 4,050 valves and had a power consumption of 25 kilowatts. To increase reliability, purpose-built CRTs made by GEC were used in the machine instead of the standard devices used in the Baby.
The Baby's 32-bit word length was increased to 40 bits. Each word could hold either one 40-bit number or two 20-bit program instructions. The main store initially consisted of two double-density Williams tubes, each holding two arrays of 32 x 40-bit words – known as pages – backed up by a magnetic drum capable of storing an additional 32 pages. The capacity was increased in the Final Specification version to eight pages of main store on four Williams tubes and 128 magnetic drum pages of backing store. The diameter drum, initially known as a magnetic wheel, contained a series of parallel magnetic tracks around its surface, each with its own read/write head. Each track held 2,560 bits, corresponding to two pages. One revolution of the drum took 30 milliseconds, during which time both pages could be transferred to the CRT main memory, although the actual data transfer time depended on the latency, the time it took for a page to arrive under the read/write head. Writing pages to the drum took about twice as long as reading. The drum's rotational speed was synchronised to the main central processor clock, which allowed for additional drums to be added. Data was recorded onto the drum using a phase modulation technique still known today as Manchester coding.
The machine's instruction set was increased from the 7 of the Baby to 26 initially, including multiplication done in hardware. This increased to 30 instructions in the Final Specification version. Ten bits of each word were allocated to hold the instruction code. The standard instruction time was 1.8 milliseconds, but multiplication was much slower, depending on the size of the operand.
The machine's most significant innovation is generally considered to be its incorporation of index registers, commonplace on modern computers. The Baby had included two registers, implemented as Williams tubes: the accumulator and the program counter. As A and C had already been assigned, the tube holding the two index registers, originally known as B-lines, was given the name B. The contents of the registers could be used to modify program instructions, allowing convenient iteration through an array of numbers stored in memory. The Mark 1 also had a fourth tube,, to hold the multiplicand and multiplier for a multiplication operation.

Programming

Of the 20 bits allocated for each program instruction, 10 were used to hold the instruction code, which allowed for 1,024 different instructions. The machine had 26 initially, increasing to 30 when the function codes to programmatically control the data transfer between the magnetic drum and the cathode ray tube main store were added. On the Intermediary Version programs were input by key switches, and the output was displayed as a series of dots and dashes on a cathode ray tube known as the output device, just as on the Baby from which the Mark 1 had been developed. However, the Final Specification machine, completed in October 1949, benefitted from the addition of a teleprinter with a five-hole paper-tape reader and punch.
Mathematician Alan Turing, who had been appointed to the nominal post of Deputy Director of the Computing Machine Laboratory at the University of Manchester in September 1948, devised a base 32 encoding scheme based on the standard ITA2 5-bit teleprinter code, which allowed programs and data to be written to and read from paper tape. The ITA2 system maps each of the possible 32 binary values that can be represented in 5 bits to a single character. Thus "10010" represents "D", "10001" represents "Z", and so forth. Turing changed only a few of the standard encodings; for instance, 00000 and 01000, which mean "no effect" and "linefeed" in the teleprinter code, were represented by the characters "/" and "@" respectively. Binary zero, represented by the forward slash, was the most common character in programs and data, leading to sequences written as "///////////////". One early user suggested that Turing's choice of a forward slash was a subconscious choice on his part, a representation of rain seen through a dirty window, reflecting Manchester's "famously dismal" weather.
Because the Mark 1 had a 40-bit word length, eight 5-bit teleprinter characters were required to encode each word. Thus for example the binary word:
10001 10010 10100 01001 10001 11001 01010 10110
would be represented on paper tape as ZDSLZWRF. The contents of any word in store could also be set via the teleprinter's keyboard, and output onto its printer. The machine worked internally in binary, but it was able to carry out the necessary decimal to binary and binary to decimal conversions for its input and output respectively.
There was no assembly language defined for the Mark 1. Programs had to be written and submitted in binary form, encoded as eight 5-bit characters for each 40-bit word; programmers were encouraged to memorize the modified ITA2 coding scheme to make their job easier. Data was read and written from the papertape punch under program control. The Mark 1 had no system of hardware interrupts; the program continued after a read or write operation had been initiated until another input/output instruction was encountered, at which point the machine waited for the first to complete.
The Mark 1 had no operating system; its only system software was a few basic routines for input and output. As in the Baby from which it was developed, and in contrast to the established mathematical convention, the machine's storage was arranged with the least significant digits to the left; thus a one was represented in five bits as "10000", rather than the more conventional "00001". Negative numbers were represented using two's complement, as most computers still do today. In that representation, the value of the most significant bit denotes the sign of a number; positive numbers have a zero in that position and negative numbers a one. Thus the range of numbers that could be held in each 40-bit word was −239 to +239 − 1.

First programs

The first realistic program to be run on the Mark 1 was a search for Mersenne primes, in early April 1949, which ran error free for nine hours on the night of 16/17 June 1949.
The algorithm was specified by Max Newman, head of the Mathematics Department at the University of Manchester, and the program was written by Kilburn and Tootill. Alan Turing later wrote an optimised version of the program, dubbed the Mersenne Express.
The Manchester Mark 1 continued to do useful mathematical work until 1950, including an investigation of the Riemann hypothesis and calculations in optics.

Later developments

Tootill was temporarily transferred from the University of Manchester to Ferranti in August 1949, to continue work on the Ferranti Mark 1's design, and spent four months working with the company. The Manchester Mark 1 was dismantled and scrapped in August 1950, replaced a few months later by the first Ferranti Mark 1, the world's first commercially available general-purpose computer.
Between 1946 and 1949, the average size of the design team working on the Mark 1 and its predecessor, the Baby, had been about four people. During that time 34 patents were taken out based on the team's work, either by the Ministry of Supply or by its successor, the National Research Development Corporation. In July 1949, IBM invited Williams to the United States on an all-expenses-paid trip to discuss the Mark 1's design. The company subsequently licensed several of the patented ideas developed for the machine, including the Williams tube, in the design of its own 701 and 702 computers. The most significant design legacy of the Manchester Mark 1 was perhaps its incorporation of index registers, the patent for which was taken out in the names of Williams, Kilburn, Tootill, and Newman.
Kilburn and Williams concluded that computers would be used more in scientific roles than pure maths, and decided to develop a new machine that would include a floating point unit. Work began in 1951, and the resulting machine, which ran its first program in May 1954, was known as Meg, or the megacycle machine. It was smaller and simpler than the Mark 1, and much faster for maths problems. Ferranti produced a version of Meg with the Williams tubes replaced by the more reliable core memory, marketed as the Ferranti Mercury.

Cultural impact

The successful operation of the Manchester Mark 1 and its predecessor, the Baby, was widely reported in the British press, which used the phrase "electronic brain" to describe the machines. Lord Louis Mountbatten had earlier introduced that term in a speech delivered to the British Institution of Radio Engineers on 31 October 1946, in which he speculated about how the primitive computers then available might evolve. The excitement surrounding the reporting in 1949 of what was the first recognisably modern computer provoked a reaction unexpected by its developers; Sir Geoffrey Jefferson, professor of neurosurgery at the University of Manchester, on being asked to deliver the Lister Oration on 9 June 1949 chose "The Mind of Mechanical Man" as his subject. His purpose was to "debunk" the Manchester project. In his address he said:
The Times reported on Jefferson's speech the following day, adding that Jefferson forecast that "the day would never dawn when the gracious rooms of the Royal Society would be converted into garages to house these new fellows". This was interpreted as a deliberate slight to Newman, who had secured a grant from the society to continue the work of the Manchester team. In response Newman wrote a follow-up article for The Times, in which he claimed that there was a close analogy between the structure of the Mark 1 and the human brain. His article included an interview with Turing, who added:

Citations