SSEM computer of Frederic Williams and Tom Kilburn
The world's first stored-program electronic digital computer, the English Small Scale Experimental Machine (SSEM, nicknamed the Baby) successfully executed its first program on 21st June 1948. That program was written by Tom Kilburn, who actually built the machine, designed by his mentor—Frederic (Freddie) Williams.
Frederic Calland Williams (1911-1977) gained a BSc (1932) and MSc (1933) degrees in Engineering at University of Manchester, and a Doctor degree at Oxford University. Then he took up the post of Assistant Lecturer in his old department at Manchester. During the next few years he made many outstanding contributions to research in electronics, publishing some 20 papers. Two of these were with Prof. Blackett on an automatic curve follower for the Hartree Differential Analyser, a famous mechanical calculator constructed at the University of Manchester in the early thirties.
During the WWII Williams made outstanding contributions to the electronics of radar and other military equipment, producing, amongst other things, the first operational amplifier.
In June 1946 he started investigation into the storage of both analog and digital information on a Cathode Ray Tube. Storage of analog information could help solve the problem of static objects cluttering the dynamic picture on a radar screen. Storage of digital information could solve the problem holding up the development of computers worldwide, i.e. lack of a storage mechanism that would work at electronic speeds. Williams demonstrated the successful operation of a single bit memory using the anticipation pulse method in October, and provisionally patented this system in December 1946.
The bit was stored in the form of a charge on the CRT screen's phosphor, which could be controlled by the electron beam to write a 0 or a 1. Although the phosphor was an electrical insulator, the charge would leak away in the order of a second. Williams arranged to read the charge and then rewrite it continuously at electronic speeds so that information could be kept permanently; this process was called regeneration and the principle is still used today to replenish charge on modern integrated circuit RAMs.
In December 1946 Freddie Williams moved to the University of Manchester to take up a chair in Electro-Technics. He continued to work on the system, and some of his group members followed him, between them was Tom Kilburn (1921-2001), a mathematician, who had worked in his group since 1942. In the end of 1947, 2048 bits were being stored on a standard single 6 inch diameter CRT, and an internal report had been written by Tom Kilburn introducing the "dot-dash" and the "defocus-focus" methods of operation of the CRT and the design of a hypothetical computer. This report aroused considerable interest and was widely circulated in the UK and USA. The CRT storage system became known as the Williams Tube.
Though the store could remember 2048 bits, an individual bit could only be reset by hand, and it was necessary to test its capability of setting and reading any required bit at electronic speeds and remembering its value indefinitely between settings. So the next step was to build a small computer around a CRT memory, to subject it to the "most effective and searching tests possible". Williams and Kilburn knew all for electronics, but a little for computers, so they headed for consultations to their colleagues, the famous mathematician Alan Turing and Max Newman, the creator of Colossus. Using the advises of the computer geniuses, Williams designed the computer, which was built mainly by Kilburn and his colleagues.
This computer was built in half an year—the Small Scale Experimental Machine (SSEM) included the stored-program concept, so that the Random Access Memory was used not only to hold numbers involved in calculations, but to hold the program instructions. This meant that instructions could be read successively at electronic speed, and that running a different program only involved resetting part of the memory using a simple keyboard rather than reconfiguring the electronic circuitry (this could take days on ENIAC).
SSEM in 1948
Work on building the SSEM took place in the first half of 1948, and was mainly carried out by Tom Kilburn with the assistance of Geoff Tootill. The arithmetical device was built by vacuum tubes, while the memory, registers and the display was based on Williams Tubes. The input was a keyboard.
The Baby machine had the following properties:
• 32-bit word length
• Serial binary arithmetic using 2's complement integer numbers
• A single address format order code
• A random access main store of 32 words initially, extendable up to 8192 words
• A computing speed of around 1.2 milliseconds per instruction
There are 4 Williams Tubes in the Baby. The main store was a 32/32 bit array on a Williams Tube. In addition there were two other Williams tubes holding special storage "registers": one held the accumulator A and the other the address of the current Instruction CI ("Control Instruction") and the instruction itself PI ("Present Instruction"). The fourth tube, the Display Tube could be switched to provided a suitable display of the current contents of any of the Williams Tubes.
The instruction format was:
3-bit function field (bits 13 to 15) + 13-bit store address (0 to 12) + 16 bits unused
There were just 7 instructions (with S representing the contents of the word with address S):
• A = - S
• A = A - S
• S = A
• If A < 0, CI = CI + 1 (i.e. if A negative, skip the next instruction)
• CI = S
• CI = CI + S
• Halt the program
Note the surprising use of the minus operator and the complication/sophistication of using the contents of a store location rather than a store address itself as the operand in control jumps. CI had to be reset to the instruction before the next to be obeyed. Note also however that within two months the Baby had been enhanced to a 4-bit instruction code (not all used), including A = S, A = A + S and A = A & S.
Input to the Baby was by setting sequences of bits at chosen addresses using a simple keyboard. Output was by reading the information on the Display Tube.
First program for SSEM
Three demonstration programs were run on the prototype, including one written by Turing, which used a long division routine.
The first program (see the upper image) to run successfully, on June 21st ,1948, was written by Tom Kilburn. It was a program to find the highest proper factor of any number a, which was done by trying every integer b from a-1 downward until one was found that divided exactly into a. The necessary divisions were done not by long division but by repeated subtraction of b (because the "Baby" only had a hardware subtractor).
The original number chosen was quite small, but within a few days the program was tried on 218; here around 130000 numbers were tested, which took about 2.1 million instructions and involved 3 and a half million store accesses. The correct answer was obtained in a 52 minute run.
F.C. Williams later said of the first successful run:
A program was laboriously inserted and the start switch pressed. Immediately the spots on the display tube entered a mad dance. In early trials it was a dance of death leading to no useful result, and what was even worse, without yielding any clue as to what was wrong. But one day it stopped, and there, shining brightly in the expected place, was the expected answer. It was a moment to remember. This was in June 1948, and nothing was ever the same again.
With the SSEM proving both the effectiveness of the Williams Tube and the basic stored-program concept, work was immediately started, with increased manpower, to design and build a more realistic and usable computer, based on the Baby. This was achieved between late 1948 and late 1949, with the Manchester Mark 1 computer, which was built and was used for a variety of purposes in 1949 and 1950, including investigation of the Riemann hypothesis and calculations in optics. Besides that, in October 1948, a request was made from the English government to Ferranti Ltd. to manufacture a commercial machine to Williams' specification. This was the world's first general-purpose commercial computer, the Ferranti Mark 1.