The ENIAC was divided into thirty autonomous units,
twenty of which were called accumulators. Each accumulator was
essentially a high-speed ten-digit adding machine that could also store
the results of its calculations. The ENIAC was a decimal machine, which
meant that each of the ten digits in the accumulators counted from zero
(0) through nine (9) using a particular configuration of electronic
circuits known as a ring counter. To accelerate certain arithmetic
operations the ENIAC also had a multiplier and divider-square rooter. The
multiplier employed a resistor matrix to perform one-digit multiplications
and was designed with additional control circuitry to multiply successive
digits drawn from two accumulators holding the multiplier and
multiplicand.
The ENIAC
was controlled through a train of electronic pulses. Each unit
of the ENIAC was capable of issuing a control pulse that would initiate
computation in one or more of the other units. This meant that a
"computer program" on the ENIAC consisted principally of manually wiring
the different units of the machine so that they would perform their
operations in the desired sequence. A typical program on the ENIAC thus
consisted of a nest of wires interconnecting the various units of the
machine. Special wiring trays gave some semblance of order to these
wires, but programming the ENIAC was nevertheless a difficult affair.
| 
"Replacing a bad tube meant checking among ENIAC's
19,000 possibilities." (U.S. Army photo, from archives of the ARL
Technical Library, courtesy of Mike Muuss; caption from Martin H. Weik,
"The ENIAC Story"). |