|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
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 tubeFrederic 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 designFollowing his appointment to the Chair of Electrical Engineering at Manchester University at the end of 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.2 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). ProgrammingThe 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
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., 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 programsThree 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 developmentsThe 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 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.26 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.27 References
Further reading
External links
|
||||||||||||||||||||||||||||||||||||
| All Right Reserved © 2007, Designed by Stylish Blog. |