**Home Page**

**Description of the IBM 704**

"Major Features

1. Double Arithmetic Speed in Multiplication and
Division

The Type 704 executes multiplication and division
commands at double the speed of the present Type 701. The Type 701 performs the
operations of multiplication or division in 456 microseconds, or approximately
2000 operations per second. The Type 704 multiplies or divides in 240
microseconds, or approximately 4000 operations per second. The doubling of
speed in arithmetic, plus the use of index commands, more than doubles the
effectiveness of the present Type 701.

2. Automatic Floating-Point Operation

The Type 704 is the first large-scale commercially
available computer to employ fully automatic floating-point arithmetic
commands. These commands enable the machine to record automatically and keep
track of the size of all numbers during thousands of computing steps. At each
step the most significant digits of any given number are always used in
performing arithmetic. This ability is of tremendous importance in long
sequential calculations which might typically involve millions of steps with
numbers and their combined results varying from extremely small to unusually
large numbers on any given step. Heretofore, this has been done by interpretive
programs such as the IBM 701 SpeedCoding System.

The execution times for the various floating-point
operations are:

a. Floating-Point Addition—84 microseconds*, or
11,000 per second.

b. Floating-Point Subtractions—84 microseconds*, or
11,000 per second.

c. Floating-Point Multiplication—204 microseconds, or
4,500 per second.

d. Floating-Point Division—216 microseconds, or 4,500
per second.

*In case the operands differ by 10 or less and
normalization does not require more than 4 shifts.

This means floating-point addition can be accomplished in approximately 1/20 of the time and multiplication can be performed in approximately 1/7 of the time presently required on the Type 701.

3. Index Registers

Three special electronic registers have been added to
the machine to facilitate the writing of programs. In normal practice many
programs involve the repeated application of the same sequence of steps to data
located in different parts of the memory. This requires writing programs to
shift the sequence of steps so as to operate on the proper data at the proper
time. Such manipulation of programs is done automatically in the Type 704 by
reference to index registers which control the repeated application of a programmed
routine. These registers increase the logical ability of the machine and, at
the same time, provide for a reduction in the number of instructions now needed
to perform the proper shifting and manipulation of a given sequence.

4. High-Speed Drum Switching and Transmission

Changes in switching techniques and equipment have
been made on the Type 731 Magnetic Drum unit to provide more than a twelve fold
speed increase in the transfer rate between magnetic drum and electrostatic
storage. In the present Type 701 the magnetic drum is read at a rate of 800
words per second or the equivalent of 8000 digits per second. The Type 704 will
read at 10,000 words per second or at the rate of 100,000 decimal digits per
second. In addition to this, the initial access time has been reduced from an
average of 50 milliseconds to an average of 12 milliseconds.

The addition of new commands enables the Type 704 to use the drum most effectively in table lookup operations. It is possible to consult tables stored on the drums without the necessity of bringing into the main memory any portion of the table other than that desired. The use of such high-speed table lockups is invaluable in many engineering and scientific applications.

5. New Logical Operations

The Type 701 has a total of 32 operations available
to the programmer. In the Type 704 this number has been increased to 73. Among
these new commands are:

a. Logical Multiplication to Accumulator.

b. Logical Multiplication to Memory.

c. Logical Addition to the Accumulator.

d. Logical Addition to the Memory.

These commands facilitate the extraction and combination of small pieces of information within the main memory . With such commands it is possible to perform processing and arithmetic efficiently on fields smaller or larger than 10 digits.

Another command, END AROUND CARRY ADD, has been added which will simplify the handling of the methods used in checking the flow of information among the various input/output units and the main memory. This will increase the overall checking ability to the machine with a simultaneous reduction in programming requirements.

Many additional transfer and test commands have
been added to increase the logical power and flexibility of the machine, as
well as to reduce the memory positions necessary to effect a given
program." [Annals of the History of Computing, Vol.5

**Personal Reflections - Roger
Mills:**

One of the first operating systems developed for the IBM 704
was developed at North American Aviation (NAA). IBM developed a card-to-tape
reader and a tape-to-printer output unit. NAA developed programs to batch
cards for input from tape and to batch output on tape for printing. The
computing groups from NAA, Rand, and Lockheed combined to generate various areas
of computing for the IBM 704.