Home Page
Description of the BINAC

"The BINAC (Auerbach, 1952) was a bit serial binary computer with a 512 word acoustic mercury delay line memory divided into 16 channels each holding 32 words of 31 bits with an additional 11 bit space between words to allow for circuit delays in switching. The clock rate was 4.25mh which yielded a word time of about 10 microseconds. The actual instruction execution rate was dominated by the access time for instructions and data and would have averaged about 3000-4000 instructions per second, unless minimum latency programming was employed. Each BINAC word held two instructions. Each instruction had a five bit operation code and a three octal digit address. All operands were 31 bit words. Arithmetic was two's complement and there were single bit arithmetic right and left shift instructions as well as addition, subtraction, multiplication and division. There were no logical instructions and no subroutine calls. Jump on negative was the only conditional instruction.

BINAC operations were checked by complete duplication of components, including the memory. It had no I/O instructions, except for some flip-flop set and reset commands. New programs or data had to be entered manually in octal using an eight key keypad. Eight keys were all that were needed since there were no alphabetic characters or other symbols. Memory could be dumped manually onto a console teletype or to the wire recorder. The wire recorder could be used to load the memory, but because of the duplication, both of the twin machines had to be loaded separately.

BINAC was built by Eckert Mauchly Computer Corporation for the Northrop Aircraft Corporation and was intended to be used in a classified airborne application. (Stern, 1979) It was not originally intended to be a general purpose computer; that was the role of the UNIVAC I which in 1949 was still in the design phase. BINAC was never used for its intended purpose but during its short period of use it was an important training ground and a testing place for new ideas.

In order to run a problem it first had to be keyed into the BINAC memory from the keypad. After that it could be debugged, corrected in memory, saved on wire, and finally run. Most programs proceeded by modifying their own instructions so that a restart would not work unless a complete reset was built into the code so the wire recording was very important as a debugging aid. When the program was run the results could be obtained after a programmed stop by dumping the memory manually to the teletype."  [Annals of the History of Computing,  Vol. 10  #1  1988]

Personal Reflections - Roger Mills:

The input/output for the BINAC was octal.  The instructions were absolute machine language and since it was a serial access memory, the trick was to have the data for the instruction follow the instruction far enough behind that it can be acted on by the instruction. An engineer at Northrop converted an IBM 010 keypunch (a small 11 key unit, digits 0 - 9 and a space) to put in three binary bits on tape for each octal digit punched.  After processing the input, the output came out in octal digits.  All of the data gad to be converted from decimal to octal and back since there wasn't room in memory for a conversion subroutine.  The most successful run we made was on a deicing problem for an airplane.  Two operators on electric calculators worked for 6 months computing steps in resolving the differential equations.  The BINAC did these steps and completed the calculations in 15 minutes. The reduction steps could be verified by the output from the two operators, thus adding to the confidence in the results.  The idea behind BINAC was to have all operations checked by running two sections of the computer independently and comparing each step on a high speed bus.  Northrop engineers went back to Philadelphia for the acceptance tests.  After the BINAC was shipped to Hawthorne, it sat out under a tarp for 6 months before it was assembled in its air-conditioned room. The poor engineers were constantly working to get BINAC to run.  One side would be running while they worked on the other side.  The two sides never worked together as long as I was there. Doing all arithmetic in octal sure cause havoc with your check book balance if you weren't careful.