Fact-checked by Grok 6 months ago

CSIRAC

CSIRAC, originally designated the CSIR Mark 1, was Australia's first stored-program digital computer, developed by the Commonwealth Scientific and Industrial Research Organisation (CSIR, now CSIRO) at its Division of Radiophysics laboratory in Sydney during the late 1940s.[1] It successfully executed its inaugural test program on 14 November 1949, establishing it as one of the first stored-program computers worldwide, often ranked as the fourth or fifth, and the first in the Southern Hemisphere.[2][3] Led by British-born engineer Trevor Pearcey, with key contributions from Maston Beard and programmer Geoff Hill, the machine utilized over 2,000 vacuum tubes and mercury delay lines for memory, occupying a room the size of a double garage and consuming power equivalent to an entire suburban street.[1] Officially unveiled in 1951, CSIRAC performed approximately 1,000 instructions per second with a memory capacity of about 2 kilobytes, enabling it to tackle complex calculations in fields such as weather forecasting, radio astronomy, banking, and nuclear physics.[2] Among its notable achievements, it produced the world's first music using a digital computer in 1951, playing tunes like Colonel Bogey through an electrostatic loudspeaker, and supported over 1,000 research projects during its operational life.[1] Relocated to the University of Melbourne's Computation Laboratory in 1956, where it was upgraded to CSIRAC Mark II, the computer continued serving academic and industrial users until its decommissioning in 1964.[1] As the only intact first-generation stored-program computer preserved globally, CSIRAC holds immense historical significance, symbolizing Australia's early contributions to computing amid post-World War II technological advancements inspired by pioneers like Alan Turing.[4] Today, it is displayed at Scienceworks in Melbourne, Victoria, where it stands as a tangible link to the origins of digital innovation and continues to inspire modern CSIRO projects, such as the high-performance Virga supercomputer.[2]

Development and History

Origins and Construction

In 1947, the Commonwealth Scientific and Industrial Research Organisation's (CSIR, later CSIRO) Division of Radiophysics in Sydney initiated the development of what would become Australia's first stored-program computer, known initially as the CSIR Mark 1 and later renamed CSIRAC, to meet the growing needs for scientific computations in post-World War II research.[2] The project stemmed from the division's expertise in wartime radar technologies and pulse techniques, aiming to create a machine capable of handling complex equations that manual methods could not efficiently process.[2] This effort positioned CSIRAC among the early wave of stored-program computers worldwide, drawing on global advancements to establish domestic computing capabilities.[5] The project's inception was driven by key figures, including Dr. Trevor Pearcey, who joined the Radiophysics Laboratory in late 1945 after exposure to the Harvard Mark I and took the lead in conceptual and logical design, and Maston Beard, the engineer responsible for electronic implementation and co-construction.[6] Their collaboration began formally in 1947, influenced by designs such as the Manchester Baby for its simplicity and the University of Cambridge's EDSAC for components like mercury delay lines, while adapting ideas to available resources.[5] Pearcey and Beard's independent work emphasized a prototype focused on reliability over scale, marking a significant Australian contribution to early computing.[6] Construction commenced in 1948 at the Sydney laboratory, utilizing surplus wartime radar equipment to minimize costs and leverage existing infrastructure, supplemented by imported valves essential for the vacuum-tube-based architecture.[5] The effort was supported by Australian government grants channeled through CSIR, enabling the procurement of critical components despite post-war shortages.[5] Assembly progressed through 1949, with major components integrated and tested, culminating in the first successful program run on November 14, 1949—a basic multiplication routine that validated the machine's operation.[2] This milestone confirmed CSIRAC's viability as a functional computing device.[6]

Operational Timeline

CSIRAC began its operational life with the first successful test program executed on November 14, 1949, at the CSIRO's Radiophysics Laboratory in Sydney.[2] It entered restricted operation later in 1950 and became fully operational in 1951, providing computing services to CSIRO scientists for tasks including weather forecasting, radioastronomy, and cloud physics calculations.[1][2] A notable early event was CSIRAC's first public demonstration in August 1951, during Australia's inaugural Conference of Automatic Computing Machines, where it played the tune "Colonel Bogey" as the world's first computer-generated music.[2][7] The machine operated continuously at the Sydney site until 1955, supporting scientific computations under CSIRO auspices.[1] In 1955, due to a shift in CSIRO's priorities, CSIRAC was dismantled and transported by truck along the Hume Highway to the University of Melbourne, where it was reassembled and recommissioned on June 14, 1956, under the name CSIRAC.[2][8] At the university's Computation Laboratory in the School of Physics, it served academic and research needs for eight years, accumulating approximately 30,000 hours of uptime and processing over 700 computing projects.[3] Over its full 14-year lifespan from 1950 to 1964, CSIRAC executed more than 1,000 programs for CSIRO and university researchers across diverse applications.[1][2] It was decommissioned in November 1964, primarily due to its technological obsolescence and the arrival of faster, more reliable transistor-based systems such as the IBM 7044, which replaced it at the University of Melbourne.[9][10][5]

Technical Design

Architecture and Components

CSIRAC was a serial binary stored-program computer, processing data bit by bit through a single-bit trunk in sequential fashion, which distinguished it from parallel architectures of the era.[5] It executed up to 1000 instructions per second, with a main clock frequency of 300 kHz, and ranked as the fourth or fifth such electronic stored-program computer worldwide (sources vary on counting the Manchester Mark 1 separately from the Baby), following the Manchester Baby, EDSAC, and BINAC.[2][3] The design drew brief inspiration from the Manchester Mark 1, reflecting the wartime radar and computing experiences of its lead developer, Trevor Pearcey.[11] The core processing elements relied on approximately 2000 vacuum tubes for logic and arithmetic operations, with most being 6SN7 twin triodes serving as amplifiers and switches, alongside 6V6 tubes as oscillators.[5][3] These tubes formed the basis of the computer's electronic circuitry, enabling the execution of instructions in a von Neumann-style architecture where programs and data shared the same memory space. CSIRAC featured three primary 20-bit registers: the A register functioning as the accumulator for arithmetic results, and auxiliary B and C registers for temporary storage and operations.[5] Additional registers included a 10-bit H register and a D register array of 16 elements, each 20 bits, supporting control and sequencing tasks.[5] The 300 kHz bit clock allowed serial processing, with each 20-bit instruction or data word taking approximately 1 ms to fetch and execute, yielding up to 1000 instructions per second.[12] Instructions were encoded in 20-bit words, comprising a 5-bit destination field (specifying the target register or store), a 5-bit source field (indicating the operand origin), and a 10-bit address field (pointing to memory locations).[3] This format allowed for up to 1024 possible instruction combinations through the 32 source by 32 destination pairings, though only about 256 were commonly implemented and used.[3] The system consumed 30 kW of power via a 415-volt three-phase supply, necessitating extensive cooling through ducted air to manage heat from the vacuum tubes, and occupied a room-sized space of multiple cabinets measuring roughly 4 m by 2 m by 2 m, weighing about 7 tonnes.[13][5]

Memory and Input/Output

CSIRAC employed mercury-filled acoustic delay lines as its primary memory, a technology inspired by earlier designs such as those used in the Manchester Mark 1 and EDSAC computers. These delay lines consisted of 24 stainless steel tubes, each approximately 1.5 meters long, filled with triple-distilled mercury to propagate ultrasonic pulses representing binary data. The system provided a total capacity of 768 words, with each word comprising 20 bits, achieved through interleaving techniques that effectively doubled the storage per line from an initial 16 words to 32 words. Data circulated continuously within the mercury at the speed of sound (approximately 1,450 m/s in mercury), with pulses refreshed electronically at the machine's clock rate to prevent loss, ensuring reliable short-term storage for programs and working data.[5][14] The acoustic delay lines operated in a temperature-controlled environment to maintain consistent propagation times, with access latency varying by up to 1 millisecond depending on the position of the desired word within the circulating pulse train. This serial storage mechanism integrated with CSIRAC's 300 kHz main clock, allowing the central processor to read or write bits sequentially as they emerged from the transducer at the end of each line. While innovative for its era, the technology limited random access and required careful synchronization to avoid data corruption during recirculation.[12][5] For secondary storage, CSIRAC utilized a rotating magnetic drum, introduced in 1952 to handle bulk data and intermediate results beyond the primary memory's capacity. The drum featured 32 tracks, providing up to 4,096 words of 20-bit storage in its later Melbourne configuration, with a rotational speed of approximately 3,000 rpm yielding a mean access time of 5 to 10 milliseconds. Coated with iron oxide or magnetic paint and equipped with precision read/write heads positioned at intervals of 1.5 thousandths of an inch, the drum retained data even when powered off, serving as a non-volatile supplement for larger datasets in computations like numerical integrations. An upgrade to a magnetic disc in 1956 further expanded options, offering 2,048 words across two sides at similar access times, though the drum remained central for most operations.[5][15] Input to CSIRAC was exclusively via punched paper tape, with no direct keyboard interface; programs and data were prepared offline using manual or mechanical punches and fed through a 12-hole reader operating at 35 to 50 characters per second. This 3-inch-wide tape format accommodated 10 data bits per row (plus control holes), processed by photocell detectors for reliable, low-cost entry of binary-encoded instructions and constants. A later addition of a 5-hole Ferranti Mark II reader increased input speeds to around 100 characters per second for compatible tapes, though the core library remained in 12-hole format.[16][5] Output primarily relied on a modified Creed teleprinter, which printed alphanumeric results in 5-bit Baudot code at up to 6 characters per second directly from the output register. This device served as the main textual interface, producing hardcopy listings for verification, though its speed often bottlenecked longer runs. Supplementary paper tape punches—a 12-hole unit at 15 to 18 characters per second and a faster 5-hole Creed model at 20 to 30 characters per second—allowed spooling of results for offline processing or reprinting via Flexowriter devices. For specialized applications, such as waveform generation or structural analysis, analog chart recorders captured continuous outputs like graphical plots of computed moments or oscillations, converting digital results to pen traces on rotating drums.[16][5]

Programming and Instruction Set

CSIRAC's programming was primarily conducted at the machine code level, where instructions were encoded as 20-bit binary words and loaded into memory via punched paper tape. Each instruction consisted of a 5-bit destination field (specifying where the result would be stored), a 5-bit source field (indicating the operand or register involved), and a 10-bit address field (pointing to the memory location). The combination of the source and destination fields formed a function code, yielding 1024 possible instruction variants, though only 256 were regularly utilized in practice. This design emphasized simplicity and efficiency in a resource-constrained environment.[3] The instruction set encompassed core categories: arithmetic operations for addition and subtraction on fixed-point integers, data transfer instructions for moving values between registers and