On This Day

EDSAC

1940s–1950s British computer

Anúncio

The Electronic Delay Storage Automatic Calculator (EDSAC) was an early British computer. Inspired by John von Neumann's seminal First Draft of a Report on the EDVAC, the machine was constructed by Maurice Wilkes and his team at the University of Cambridge Mathematical Laboratory in England to provide a service to the university. EDSAC was the second electronic digital stored-program computer, after the Manchester Mark 1, to go into regular service.

Later the project was supported by J. Lyons & Co. Ltd., intending to develop a commercially applied computer and resulting in Lyons' development of the LEO I, based on the EDSAC design. Work on EDSAC started during 1947, and it ran its first programs on 6 May 1949, when it calculated a table of square numbers and a list of prime numbers. EDSAC was finally shut down on 11 July 1958, having been superseded by EDSAC 2, which remained in use until 1965.

The conception of the EDSAC I can be traced back to 1945, during early planning of the EDVAC. In June of that year, John von Neumann wrote his First Draft of a Report on the EDVAC after taking on a consulting role while J. Presper Eckert and John Mauchly were the designers. The document described the concept of a stored-program computer, where both the program and data are stored in the same memory, which is now known as the Von Neumann architecture; it briefly explains the idea that computer instructions, or the program, could be stored in the same memory as the data, allowing for flexibility and automation in computation.

Later in August 1946, when Wilkes participated in the final weeks of the Moore School Lectures, he was exposed to the principles of the ENIAC – Eckert and Mauchly's previous invention – and their proposed next project, the EDVAC. He proposed the concept of microprogramming, a system that simplifies the logical design of computers, which later became widely adopted in the industry. Using the knowledge he gathered about the EDVAC's working concept in the lectures, he began development of the EDSAC I in October of that year.

As soon as EDSAC was operational, it began serving the university's research needs. It used mercury delay lines for memory and derated vacuum tubes for logic. Power consumption was 11 kW of electricity. Cycle time was 1.5 ms for all ordinary instructions, 6 ms for multiplication. Input was via five-hole punched tape, and output was via a teleprinter.

Initially, registers were limited to an accumulator and a multiplier register. In 1953, David Wheeler, returning from a stay at the University of Illinois, designed an index register as an extension to the original EDSAC hardware.

A magnetic-tape drive was added in 1952 but never worked sufficiently well to be of real use.

Until 1952, the available main memory (instructions and data) was only 512 18-bit words, and there was no backing store. The delay lines (or "tanks") were arranged in two batteries providing 512 words each. The second battery came into operation in 1952.

The full 1024-word delay-line store was not available until 1955 or early 1956, limiting programs to about 800 words until then.

John Lindley (diploma student 1958–1959) mentioned "the incredible difficulty we had ever to produce a single correct piece of paper tape with the crude and unreliable home-made punching, printing and verifying gear available in the late 50s".

The EDSAC's main memory consisted of 1024 locations, though only 512 locations were initially installed. Each contained 18 bits, but the topmost bit was always unavailable due to timing problems, so only 17 bits were used. An instruction consisted of a five-bit instruction code, one spare bit, a 10-bit operand (usually a memory address), and one length bit to control whether the instruction used a 17-bit or a 35-bit operand (two consecutive words, little-endian). All instruction codes were by design represented by one mnemonic letter, so that the Add instruction, for example, used the EDSAC character code for the letter A.

Internally, the EDSAC used two's complement binary numbers. Numbers were either 17 bits (one word) or 35 bits (two words) long. Unusually, the multiplier was designed to treat numbers as fixed-point fractions in the range −1 ≤ x < 1, i.e. the binary point was immediately to the right of the sign. The accumulator could hold 71 bits, including the sign, allowing two long (35-bit) numbers to be multiplied without losing any precision.

The instructions available were:

AND-and-add (called "Collate")

Store (and optionally clear) accumulator

There was no division instruction (but various division subroutines were supplied) and no way to directly load a number into the accumulator (a "Store and zero accumulator" instruction followed by an "Add" instruction were necessary for this). There was no unconditional jump instruction, nor was there a procedure call instruction – it had not yet been invented.

Maurice Wilkes discussed relative addressing modes for the EDSAC in a paper published in 1953. He was making the proposals to facilitate the use of subroutines.

The initial orders were hard-wired on a set of uniselector switches and loaded into the low words of memory at startup. By May 1949, the initial orders provided a primitive relocating assembler taking advantage of the mnemonic design described above, all in 31 words. This was the world's first assembler, and arguably the start of the global software industry. There is a simulation of EDSAC available, and a full description of the initial orders and first programs.

Anúncio

Coming soon to the World in Stories app

Audio, offline download, no ads and more.

Learn about Premium
EDSAC | World in Stories