In modern terms the ABC can be described as a hard-wired bit-serial Single-Instruction-Multiple-Data (SIMD) processor: a vector of 30 elements is processed in parallel, the same operation being performed on all elements, and each element being a binary number of 50 bits processed serially. In essence, the proof-of-concept machine was multiplied by 30 and the bits per number (coefficient) doubled to 50. Four I/O devices and a more sophisticated control system were added.
Figure 1 shows the functional units of the ABC and the data paths and switches interconnecting them. To avoid clutter the numerous control connections are not shown. Following are brief descriptions of each of the functional units.
|Figure 1: Architecture of the ABC|
CA and KA drums: Counter Abaci and Keyboard Abaci. The CA and KA drums are nearly identical in construction, each consists of 32 bands along the length of the drum, each band being constituted of 50 contacts mounted around the circumference. Each contact connects to one lead of a corresponding capacitor, the other lead of all the capacitors connects to a common. Each capacitor is storage for one bit and each band is one vector element (coefficient). The extra two bands are spares in the event of capacitor failure. There are actually 60 physical positions around the drums, but only 50 of the positions per band are filled with capacitors. On the KA drum, the 51st position is filled with a contact connected to the preceding capacitor [ref: comm. from C. Shorb/2006]. This is to ensure sign preservation when shifting right the values stored in the drum (Arithmetic Shift Right instead of Logical Shift Right).
The 'counter' and 'keyboard' terms are holdovers from the original conceptions of the machine in mechanical adding machines, in which a counter unit holds an accumulated total, and a value punched on the keyboard is added or subtracted to/from the counter. Atanasoff referred to each band on the drums as an abacus, drawing an analogy with another discrete calculating aid.
Refresh Amplifiers: Simple electronic amplifiers providing refresh of the capacitive charge for the KA drum.
Add-Subtract Mechanisms (ASMs): These are 1-bit arithmetic units capable of addition and subtraction. The ASMs also function as refresh amplifiers for the CA drum. In spite of the word 'mechanism', these units are fully electronic. They are described more thoroughly in the ASM description.
Carry Drum: Holds the carry state from the processing of one bit to the next. There is one carry bit per vector element, so 30 carry bits in total.
Base-2 Reader and Punch: The base-2 devices with cards function as an intermediate storage facility. The punch burns, or chars, holes in the card with pulses of several kilovolts supplied via thyratrons. The reader uses a somewhat lower voltage to sense the increased conductivity of the charred bits of the card.
Conversion Drum: Functions as a ROM containing the binary representations of the decimal numbers 1..9, 10..90, 100..900, thru 1*10^14..9*10^14. The conversion drum is used during both base-10-to-base-2 and base-2-to-base-10 conversion. A total of 135=15*9 lines come from the drum. Where factor-of-2 relations exist a single band on the drum supplies multiple lines, reducing the number of bands needed to 61. For example, the lines for 100, 200, 400 and 800 are fed from the same band by using additional brushes located around the circumference to pick up the delayed bit pattern.
Base-10 Reader: Used for input of the initial coefficients. Base-10 cards are standard 80-column IBM cards. When reading a card, a bank of 5 coefficients is read in parallel, but the 15 digits of the coefficients are read sequentially starting with the most significant digit. For each digit in a coefficient, the base-2 representation of a base-10 value (1*10^d, 2*10^d, .. 9*10^d) from the conversion drum is fed through the hole (1..9) punched in that digit position on the base-10 card. That base-2 number is added to a selected element on the CA, the selection having been made by the BANK SELECT switches. See stage 1 of the flowchart of operation.
Base-10 Display: An electromechanical odometer-type display. Each digit can be individually incremented or decremented. There is no carry facility and only a single-digit borrow facility (0002-10=0992, not 9992). During a base-2 to base-10 conversion operation, base-2 constants of the form 1*10^14, 1*10^13, down to 1, are fed from the conversion drum, through the Base-10 Conversion Card (all "1"s) placed in the base-10 reader, and subtracted or added from/to the selected coefficient of CA. The control section watches for sign changes to move to the next digit, the coefficient reaching zero terminates the conversion. Each time a subtraction/addition is performed, the 'current' digit of the display is incremented or decremented. See stage 4 of the flowchart of operation.
Control: Numerous manual controls provide the operator with the ability to sequence the operations of the machine. The control section provides automatic sequencing within the base conversion and pair-combining (elimination) operations, relying on the two signals from the selection plugs for indication of data-state changes. See stage 2 or 3 of the flowchart of operation for the pair-combining algorithm. The control section is constructed from a mixture of electromechanical relays and electronic vacuum tubes.
Timing Drum: The timing drum generates various timing signals for use by the control section. The time occupied by the block of 10=60-50 unused bit positions on the memory drums is used for control changes.
The CA, KA, timing and conversion drums all rotate at 60 RPM (1 revolution per second). In one revolution, one vector operation is performed. The carry drum rotates at 900 RPM which is (60 RPM)*(60 bit positions)/4. In theory, the carry drum would rotate at 3600 RPM; in practice a lower speed is preferable, and there are 4 contacts around each carry element connected to the one capacitor.