EDSAC Architecture

The EDSAC was a very interesting machine, way ahead of its time, with some very clever design and some surprising features. A lot of different problems had to be solved for the machine to work. One may think of such an early machine as being crudely designed and built. It was not.

Overall architecture

The EDSAC had 512 words of 35 bits each of main RAM - a total of just more than 2 kilobytes. This RAM was made out of 32 long tanks of mercury, along which ultrasonic sound pulses traveled. The system ran at a clock speed of 500kHz, but since the EDSAC was a serial computer, and because of the memory design, it managed about 600 instructions per second. There were 18 different instructions (or "orders"), each of which took 17 bits, or one half-word. Values could either be integers or fixed-point numbers (from -1 to 1), occupying either a whole 35-bit word or a 17-bit half-word. The accumulator was used extensively, and had a capacity of 71 bits.


EDSAC memory was stored by sending ultrasound pulses down a long tube of mercury (called a "tank"), and waiting for them to come out the other end. When they did, they were fed back in the first end again, and could therefore be kept circulating in the tank. The tanks were chosen to be long enough to keep 576 bits circulating, 16 of which were the 36th bit of each word, which separated the words, and allowed time for switching. The tanks had to be very carefully engineered to be all of the same length, and had to have pins placed into the main section near the ends to stop the sound waves reflecting off the ends of the tanks and causing chaos. The tanks were operated in a temperature-controlled oven to keep their characteristics exactly right. The sound waves themselves were in the order of MHz, so the comparatively large transducers used meant that the sound beam was so tight that it did not touch the sides of the tanks (which were only a couple of inches wide, but a couple of yards long). The transducers had to be aligned rather accurately, so the sound beam would point at the transducer at the other end of the tube.

Valves, valves, and more valves

The main operation of the EDSAC was done by vacuum tubes (or valves), which ran at about 300V. The valves had to have a heated element in them (the cathode), and as such, became quite hot. The valves were therefore mounted on large chassis in large racks in order to try and get some airflow over them (the EDSAC 2 had forced-air cooling). The room then had a large fan which would draw hot air outside. The machine produced the heat you would expect from several electric fires on full (6000 Watts).


The EDSAC was wired by hand from the back of the chassis, with the result that the back looked like a bowl of spaghetti.


The input device for the EDSAC was a punched paper tape. The paper tape was created by a machine looking similar to a typewriter. Each line of the tape had a possibility of 32 different symbols. The program was typed out onto the tape, and standard library routines added onto the end of the program automatically, by copying them from another tape. Each paper tape was punched twice, and the two were compared automatically, to make sure there weren't any mistakes.

The paper tape was then handed to the EDSAC operator, who put it in the "job queue". This was a line of paper-clips, which held the paper tapes (with a note with extra information) in a line. The operator then took the first tape off the job queue, and took it to the optical tape reader. The EDSAC would be loaded with "initial orders", which were a set of instructions hard-wired into the system. This program then read the tape in, character by character, translating the instructions, and placing them into the memory as EDSAC machine code.


While the EDSAC is working on the program, it was known to produce a very distinctive sound. This was because the engineers had wired up a loudspeaker across the output from the short mercury tank containing the accumulator. The sound from the loudspeaker could distiguish the algorithm running - programmers could tell from the sound whether or not the program was working correctly.


The EDSAC had a single teletype output - a printer that could manage 6 characters per second. All output was sent to this teletype and recorded on paper, since the programmer might not be present during the execution of the program. The operator then took the paper from the teletype and placed it in the out section of the job queue, for the programmer to pick up later.


The EDSAC had five main switches. "Start" would reset the machine and start reading the tape in. "Stop" would halt the execution of the program. "Reset" would set the machine off from where it was when Stop was pressed. "Single EP" allowed the EDSAC to execute a single instruction while it was stopped, and "Clear" would clear the entire memory of the EDSAC.

Later on, a dial was added to the EDSAC. When the machine was stopped, a turn of the dial would place the number chosen into the accumulator, and restart the machine. This allowed the entry of numbers during program execution.