Tuesday, September 2, 2008

Atanasoff–Berry Computer


The Atanasoff–Berry Computer (ABC) was the first electronic digital computing device.[1] Conceived in 1937, the machine was not programmable, being designed only to solve systems of linear equations. It was successfully tested in 1942. However, its intermediate result storage mechanism, a paper card writer/reader, was unreliable, and when Atanasoff left Iowa State University for World War II assignments, work on the machine was discontinued.[2] The ABC pioneered important elements of modern computing, including binary arithmetic and electronic switching elements,[3] but its special-purpose nature and lack of a changeable, stored program distinguish it from modern computers.

John Vincent Atanasoff's and Clifford Berry's computer work was not widely known until it was rediscovered in the 1960s, amidst conflicting claims about the first instance of an electronic computer. The ENIAC computer was considered to be the first computer in the modern sense, but in 1973 a U.S. District Court invalidated the ENIAC patent and concluded that the ABC was the first "computer"

Design and construction


According to Atanasoff's account, several key principles of the Atanasoff–Berry Computer (ABC) were conceived in a sudden insight after a long nighttime drive during the winter of 1937–38. The ABC innovations included electronic computation, binary arithmetic, parallel processing, regenerative capacitor memory, and a separation of memory and computing functions. The mechanical and logic design was worked out by Dr. Atanasoff over the next year. A grant application to build a proof of concept prototype was submitted in March, 1939 to the Agronomy department which was also interested in speeding up computation for economic and research analysis. $5,000 of further funding to complete the machine came from the nonprofit Research Corporation of New York City.

The ABC was built by Dr. Atanasoff and graduate student Clifford Berry in the basement of the physics building at Iowa State College during 1939–42. The initial funds were released in September, and the 11-tube prototype was first demonstrated in October, 1939. A December demonstration prompted a grant for construction of the full-scale machine.[4] The ABC was built and tested over the next two years. It was described in a January 15, 1941 notice in the Des Moines Register. The system weighed more than seven hundred pounds (320 kg). It contained approximately 1 mile (1.6 km) of wire, 280 dual-triode vacuum tubes, 31 thyratrons, and was about the size of a desk.

It was not a Turing complete computer, which distinguishes it from more general machines, like contemporary Konrad Zuse's Z3 (1941), or later machines like the 1946 ENIAC, 1949 EDVAC, the University of Manchester designs, or Alan Turing's post-War designs at NPL and elsewhere. Nor did it implement the stored program architecture that made practical fully general-purpose, reprogrammable computers.


The machine was, however, the first to implement three critical ideas that are still part of every modern computer:

1. Using binary digits to represent all numbers and data
2. Performing all calculations using electronics rather than wheels, ratchets, or mechanical switches
3. Organizing a system in which computation and memory are separated.

In addition, the system pioneered the use of regenerative capacitor memory, as in the DRAM still widely used today.

The memory of the Atanasoff–Berry Computer was a pair of drums, each containing 1600 capacitors that rotated on a common shaft once per second. The capacitors on each drum were organized into 32 "bands" of 50 (30 active bands and 2 spares in case a capacitor failed), giving the machine a speed of 30 additions/subtractions per second. Data was represented as 50-bit binary fixed point numbers. The electronics of the memory and arithmetic units could store and operate on 60 such numbers at a time (3000 bits).

The AC power line frequency of 60 Hz was the primary clock rate for the lowest level operations.

The arithmetic logic functions were fully electronic, implemented with vacuum tubes. The family of logic gates ranged from inverters to two and three input gates. The input and output levels and operating voltages were compatible between the different gates. Each gate consisted of one inverting vacuum tube amplifier, preceded by a resistor divider input network that defined the logical function. The control logic functions, which only needed to operate once per drum rotation and therefore did not require electronic speed, were electromechanical, implemented with relays.

Although the Atanasoff–Berry Computer was an important step up from earlier calculating machines, it was not able to run entirely automatically through an entire problem. An operator was needed to operate the control switches to set up its functions, much like the electro-mechanical calculators and unit record equipment of the time. Selection of the operation to be performed, reading, writing, converting to or from binary to decimal, or reducing a set of equations was made by front panel switches and in some cases jumpers.

There were two forms of input and output. Primary user input and output and an intermediate results output and input. The intermediate results storage allowed operation on problems too large to be handled entirely within the electronic memory. (The largest problem that could be solved without the use of the intermediate output and input was two simultaneous equations, a trivial problem.)

Intermediate results were binary, written onto paper sheets by electrostatically modifying the resistance at 1500 locations to represent 30 of the 50 bit numbers (one equation). Each sheet could be written or read in one second. The reliability of the system was limited to about 1 error in 100,000 calculations by these units, primarily attributed to lack of control of the sheets' material characteristics. In retrospect a solution could have been to add a parity bit to each number as written. This problem was not solved by the time Atanasoff left the university for war-related work.

Primary user input was decimal, via standard IBM 80 column punched cards and output was decimal, via a front panel display.

No comments: