Jump to content

Manchester Baby

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Pyrotec (talk | contribs) at 21:00, 18 November 2008 (→‎Development and design: clarification). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Replica of the SSEM at the Museum of Science and Industry in Manchester

The Manchester Small-Scale Experimental Machine (SSEM), nicknamed Baby, was the world's first stored-program computer. It was developed at the Victoria University of Manchester by Frederic C. Williams, Tom Kilburn and Geoff Tootill, and ran its first program on 21 June 1948.[1]

The machine was designed and built as a test-bed for the Williams tube, an early form of computer memory, not as a practical computer. However, its success resulted in its further development to become the Manchester Mark 1 computer, which in turn led directly to the development of the Ferranti Mark I, the world's first commercially available general-purpose computer.[2]

The SSEM had a 32-bit word length and a main store of 32 words. Three bits were used to hold the instruction code, giving a maximum of eight instructions, of which only seven were defined. Three programs were written for the SSEM, the first of which, to calculate the highest factor of 218, consisted of 17 instructions and took 52 minutes to reach the answer after performing 3.5 million operations.

Background

Design of the von Neumann architecture (1947)

In 1936, mathematician Alan Turing defined 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.[3] 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,[4] but it was mathematician John von Neumann who became widely credited with defining that computer architecture, still used in almost all computers. 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.[5]

The practical construction of a von Neumann computer depended on the availability of a suitable memory device. During the Second World War, researchers working on the problem of removing the clutter from radar signals had developed a form of delay line memory, the first practical application of which was the mercury delay line,[6] developed by J. Presper Eckert. The idea was to eliminate the radar reflection from static objects by delaying each returned pulse in a delay line for the time between transmitted pulses and then to compare the returned pulse with the stored pulse, leaving a residual signal which contained only the images of any moving objects.[7]

In the years following the Second World several projects were set up with the aim of constructing a stored-program computer. At about the same time that the SSEM was built at Manchester University EDSAC was being developed at the University of Cambridge Mathematical Laboratory, and EDVAC was under development at the University of Pennsylvania's Moore School of Electrical Engineering.[8] Although early computers such as CSIRAC made successful use of mercury delay line memory,[9] the technology had several drawbacks: the amount of data it could store was limited, it was heavy, and it was expensive. In addition, because data was stored as a sequence of acoustic waves, and because the velocity of sound through a medium varies with temperature, the mercury had to be maintained at a constant temperature.

Williams tube

Frederic C. Williams had seen an experiment at Bell Labs which demonstrated the effectiveness of cathode ray tubes (CRT) as an alternative to the delay line for the removal of ground echoes from radar signals. While working at the Telecommunications Research Establishment (TRE), shortly before he joined the University of Manchester in December 1946, he had developed a form of electronic memory using a CRT known as the Williams tube.[10] The Manchester Small-Scale Experimental Machine (SSEM) was designed to prove that the Williams tube, the first random-access digital storage device, could operate at computer speeds.[11]

For use in a binary digital computer, the device had to be capable of storing either one of two states at each of its memory locations, corresponding to the binary digits (bits) 0 and 1. It exploited the positive or negative electrostatic charge generated by a CRT display of either a dash or a dot at any position on the CRT screen. A dash generated a positive charge, and a dot a negative charge, either of which could be picked up by a detector placed close to the screen; a negative charge represented 0, and a positive charge 1. The charge dissipated in about 0.2 seconds, but could be automatically refreshed from the data picked up by the detector plate at the front of the screen.[12]

Initially the Williams tube was developed from the CV1131, a commercially available 12-inch (300 mm) diameter CRT, but a smaller 6-inch (150 mm) tube, the CV1097, was used in the SSEM.[13]

Development and design

Architectural schematic showing how the four cathode ray tubes (shown in green) were deployed

Following his appointment to the Chair of Electrical Engineering at Manchester University in December 1946, Williams recruited his TRE colleague Tom Kilburn on secondment. By the autumn of 1947 the pair had increased the storage capacity of the Williams tube from one bit to 2,048, arranged in a 64 by 32-bit array,[14] and demonstrated it to be capable of storing those bits for four hours.[15] Engineer Geoff Tootill joined the team on loan from TRE in September 1947, and remained on secondment until April 1949.[16]

Max Newman had been appointed to the Chair of Pure Mathematics at Manchester University in 1945. During the Second World War he had worked as a cryptanalyst at Bletchley Park, and had led the team which in 1943 produced the first of the Colossus code-breaking computers. Although Newman played no active role in the development of the SSEM, or any other of the subsequent Manchester computers, he was generally supportive and enthusiastic about the project, and arranged for the acquisition of war-surplus supplies for its construction, including GPO metal racks from Bletchley.[17]

By June 1948 the SSEM had been built and was working.[14] It was 17 feet (5.2 m) in length, 7 feet 4 inches (2.24 m) tall, and weighed almost 1 long ton (1.0 t). The machine contained 550 valves – 300 diodes and 250 pentodes – and had a power consumption of 3,500 watts.[18] The arithmetic unit was built using EF50 pentode valves, which had been widely used during wartime.[19] The SSEM used one Williams tube to provide a 32 by 32-bit word store, a second to hold a 32-bit accumulator, and a third to hold the current instruction along with its address. A fourth CRT, without the storage electronics of the other three, acted as the output device, displaying the bit pattern of any chosen storage tube.[20]

Each 32-bit word in the main store could contain either a program instruction or data. In a program instruction, bits 0–12 represented the memory address of the operand to be used, and bits 13–15 specifed the operation to be executed; the remaining 24 bits were unused.[20] The SSEM therefore had a single operand architecture. The implicit second operand of any operation was the accumulator; program instructions specified only the address of the data in the main store.

A word in the main store could be read, written, or refreshed, in 360 microseconds. An instruction required four word access times to execute, giving an instruction execution rate of about 700 instructions per second. The main store was refreshed continuously, a process which took 20 milliseconds to complete, as each of the SSEM's 32 words had to be read and then refreshed in sequence.[14]

The SSEM represented negative numbers using two's complement,[21] 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 32-bit word was −231 to +231 − 1 (decimal: -2,147,483,648 to +2,147,483,647).

Programming

The SSEM's three bit instruction set allowed a maximum of eight (23) different instructions. In contrast to the modern convention, the machine's storage was arranged with the least significant digits to the left; thus a one was represented in three bits as "100", rather than the more conventional "001".[21]

SSEM's instruction set[22]
Binary code Modern mnemonic Operation
000 JMP S Jump to the instruction at the specified memory address (absolute unconditional jump}
100 JRP S Jump to the instruction at the specified memory address plus the number specified (relative unconditional jump)
010 LDN S Take the number from the specified memory address, negate it, and load it into the accumulator
110 STO S Store the number in the accumulator at the specified memory address
001 or 101* SUB S Subtract the number at the specified memory address from the value in accumulator, and store the result in the accumulator
011 CMP Skip next instruction if the accumulator contains a negative value
111 STP Stop
*The function bits were only partially decoded, to save on logic elements.[22]

The awkward negative operations were the result of the SSEM's lack of a 32-bit adder. It was not considered necessary to build an adder before testing could begin as addition can easily be implemented by subtraction,[20] i.e., can be computed as Therefore, to add two numbers together, X and Y, required four instructions:[22]

LDN X  //load negative X into the accumulator
SUB Y  //subtract Y from the value in the accumulator
STO S  //store the result at S
LDN S  //load negative value at S into the accumulator

Programs were entered in binary form using the input device to set the value of each bit of each word of the program in turn.[14]

First programs

The output CRT

Three programs were written for the computer. The first, consisting of 17 instructions, was written by Kilburn, and so far as can be ascertained first ran on 21 June 1948.[23] It was designed to find the highest proper factor of 218 (262,144) by trying every integer from 218 − 1 downwards. The divisions were implemented by doing repeated subtractions of the divisor. The SSEM took 3.5 million operations and 52 minutes to produce the answer (131,072). The program used eight words of working storage in addition to its 17 words of instructions, giving a program size of 25 words.[24]

Geoff Tootill wrote an amended version of the program the following month, and in mid-July Alan Turing – who had been appointed as a Reader in the mathematics department at Manchester University in September 1948 – submitted the third program, to carry out long division. Turing had by then been appointed to the nominal post of Deputy Director of the Computing Machine Laboratory at the university,[23] although the laboratory did not become a physical reality until 1951.[25]

Later developments

The success of the SSEM quickly led to the development of a more practical computer, the Manchester Mark 1. Work began in August 1948, and the first version was operational in April 1949.[25] The Manchester Mark 1 in turn led directly to the development of the Ferranti Mark I, the world's first commercially available general-purpose computer.[2]

The Williams tube was also used by a team from TRE to build a parallel computer, which became operational in mid-1953. It utilised a 512-word Williams tube store backed up by a magnetic drum store, and had a similar instruction set to the Manchester Mark I, with the exception of index registers.[26]

In 1998, a working replica of the SSEM, now on display at the Museum of Science and Industry in Manchester, was built to celebrate the 50th anniversary of the running of its first program. Demonstrations of the machine in operation are held at the museum every Tuesday.[27] In 2008 an original panoramic photograph of the entire machine was discovered at the University of Manchester. The photograph, taken on 15 December 1948 by a research student, Alec Robinson, had been reproduced in The Illustrated London News in June 1949.[28]

References

Notes
  1. ^ Enticknap, Nicholas (Summer 1998), "Computing's Golden Jubilee", Resurrection (20), The Computer Conservation Society, ISSN 0958-7403, retrieved 19 April 2008 {{citation}}: Check date values in: |accessdate= (help)
  2. ^ a b Napper, R. B. E., Introduction to the Mark 1, The University of Manchester, retrieved 4 November 2008 {{citation}}: Check date values in: |accessdate= (help)
  3. ^ Turing 1936
  4. ^ Zuse, Horst, "The Life and Work of Konrad Zuse", EPE Online, Wimborne Publishing, retrieved 16 November 2008 {{citation}}: |chapter= ignored (help); Check date values in: |accessdate= (help)
  5. ^ Early Electronic Computers (1946–51), University of Manchester, retrieved 16 November 2008 {{citation}}: Check date values in: |accessdate= (help)
  6. ^ Lavington 1998, p. 1
  7. ^ Brown 1999, p. 429
  8. ^ Lavington 1998, pp. 8–9
  9. ^ "How did CSIRAC work?", CSIRAC, University of Melbourne, 4 April 2006, retrieved 16 November 2008 {{citation}}: Check date values in: |accessdate= and |date= (help)
  10. ^ "Early computers at Manchester University". Resurrection. 1 (4). The Computer Conservation Society. Summer 1992. ISSN 0958-7403. Retrieved 19 April 2008. {{cite journal}}: Check date values in: |accessdate= (help)
  11. ^ Lavington 1998, p. 13, 24
  12. ^ Lavington 1998, p. 12
  13. ^ Lavington 1998, pp. 12–13
  14. ^ a b c d Napper 2000, p. 366
  15. ^ Lavington 1998, p. 13
  16. ^ Lavington 1998, p. 16
  17. ^ Lavington 1998, pp. 6–7
  18. ^ The "Baby": The World's First Stored-Program Computer (PDF), Manchester Museum of Science & Industry, retrieved 15 November 2008 {{citation}}: Check date values in: |accessdate= (help)
  19. ^ Lavington 1998, p. 13
  20. ^ a b c Napper 2000, p. 367
  21. ^ a b Lavington 1998, p. 14
  22. ^ a b c Lavington 1998, p. 15
  23. ^ a b Lavington 1998, pp. 16–17
  24. ^ Tootill, Geoff (Summer 1998). "The Original Original Program". Resurrection (20). The Computer Conservation Society. ISSN 0958-7403. Retrieved 19 April 2008. {{cite journal}}: Check date values in: |accessdate= (help)
  25. ^ a b Lavington 1998, p. 17
  26. ^ Lavington 1980, pp. 28, 54–56, 117-8.
  27. ^ Meet Baby, Manchester Museum of Science & Industry, retrieved 17 November 2008 {{citation}}: Check date values in: |accessdate= (help)
  28. ^ Highfield, Roger (17 June 2008), "Photo of great grandfather of modern computers found", Daily Telegraph, retrieved 20 June 2008 {{citation}}: Check date values in: |accessdate= and |date= (help)
Bibliography
  • Brown, Louis (1999), A Radar History of World War II: Technical and Military Imperatives, CRC Press, ISBN 9780750306591
  • Lavington, Simon (1980), Early British Computers: The Story of Vintage Computers and the People who built them (1st ed.), Manchester: Manchester University Press Society, ISBN 0-7190-0803-4
  • Lavington, Simon (1998), A History of Manchester Computers (2 ed.), Swindon: The British Computer Society, ISBN 0902505018 {{citation}}: Check |isbn= value: checksum (help)
  • Napper, R. B. E. (2000), "The Manchester Mark 1 Computers", in Rojas, Raúl; Hashagen, Ulf (eds.), The First Computers: History and Architectures, MIT Press, pp. 356–377, ISBN 0262681374
  • Turing, A. M. (1936), "On Computable Numbers, with an Application to the Entscheidungsproblem", Proceedings of the London Mathematical Society, 2, vol. 42 (published 1937), pp. 230–265. Widely reprinted and available on the web in many places, e.g. at Scribd.

Further reading