Go to On Line Documents, Go to Go to Antique Computer home page

Please note: the following text was OCRed from an unidentified source. I will be delighted to give credit, and ask for permission if and when the source is identified. Please excuse the "ask later" attitude, but I think the public is better served this way since the article seems more than 50 years old and the likely hood of cheating the authors (or their decendents) and the publisher is rather remote.

The article is from The Origins of Digital Computers, Selected Papers,
2nd Edition, Edited by Brian Randell, Springer-Verlag, 1975.
It's printed in Germany, and the frontispiece implies a payment to 
Springer-Verlag Berlin.

However, the book reprinted it from Review of Electronic Digital Computers.
Joint AIEE-IRE Computer Conference. 10-12 Dec 1951, pp.30-36. 
New York: American Inst. of Electrical Engineers, 1952.
Reprinted by permission of IEEE, NY.

One option is to find the original (ask IEEE librarians?) and get permission from IEEE.

- Robert

The IBM Card-Programmed Electronic Calculator

JOHN W. SHELDON & LISTON TATUM

JOHN W. SHELDON and LISTON TATUM are with International Business Machines Corporation, New York, N. Y.

TRACKING a guided missile on a test range now is the only way to make sure of its performance. At one Department of Defense facility this is done by planting batteries of cameras or phototheodolites along a 100-mile course. During its flight, the missile position is recorded by each camera at 100 frames per second, together with the camera training angles. Formerly these thousands of pictures from each of many cameras were turned over to a crew of computers, to determine just what happened. It took 2 weeks to make the calculations for a single flight. Now this is done on the International Business Machines (IBM) Card-Programmed Electronic Calculator in about 8 hours, and the tests can proceed.

Several dozen of the CPC's, as they are called, have been delivered and are already turning out answers as of the date of writing. This paper will then concern a field-tested and proved, massproduced electronic calculator.

The forerunner of this machine appeared in the spring of 1946. It was the type 603 electronic calculator, the first mass-produced, commercially available digital electronic calculator. Input and output were on standard 80column punched cards. This machine was followed two years later by the improved type 604 electronic calculator, like its predecessor designed primarily for commercial usage.

Engineers were quick to see, however, that these two machines were as powerful for technical as for commercial calculations. They offered the advantages of electronic computing speeds, rapid input and output via standard media, and availability; that is, they had already been delivered and were being maintained in proper operating condition. Their chief disadvantages were only a lack of memory capacity for larger problems and a lack of a line printing unit to permit immediate inspection of instructions and results.

These two facilities were first provided by an experimental combination of the older type 603 electronic calculator with a type 405 electric accounting machine. This proved to be so successful that the latest type 604 electronic calculating unit was combined with the latest type 402-417 electric accounting machine for printing and a proved electromechanical memory unit to form the Card-Programmed Electronic Calculator. Deliveries were begun in 1949, almost 3 years ago, and production is continuing at a steady rate.

The CPC has proved to be truly a general purpose machine. The following examples may serve to illustrate this point:

The Card-Programmed Electronic Calculator, hereinafter called the "CPC," achieves its great flexibility and high output in a number of ways. Chief among these is the design of the arithmetic unit, which is also the logical place to begin a description of the machine.


Figure 1. Arithmetic unit

The Arithmetic Unit
PLUGGABLE CONTROL PANEL

The heart of the CPC is the type 604 arithmetic unit, shown in Figure 1. This is an electronic unit of approximately 1,400 tubes containing electronic storage units, an elec tronic accumulator of 13 positions, and electronic timing and control circuits which will control the operation of the unit at an operating frequency of 50,000 pulses per second. The fundamental electronic operations provided are addition, subtraction, multiplication, and division, which may be used singly or in any combination under control of a wired program established by the user of the machine.

The extreme flexibility of the arithmetic unit itself arises from the use of a pluggable control panel; that is, a control panel for which all connections can easily be made by hand. This makes it possible to have one control panel wired for floating decimal operations, with factors carried as significant figures times a power of ten; one for fixed decimal operations; one for special functions such as trigonometric and logarithmic; one for matrix inversion; one for selfchecking, for example, by casting out 99's; et cetera. Often a considerable saving in time for a specific purpose can be obtained by wiring a control panel specially tailored for the problem. These control panels are separate units inserted into the calculator, so they may be interchanged readily. Effectively, they tell the arithmetic unit what to do at electronic speeds with the factors it has received at electromechanical speeds. In other words, operation of the arithmetic unit may be thought of as taking place in two phases:
Figure 2. Control panel layout

Figure 2 shows the layout of the control panel, built up by plugging the necessary wires into the connection holes. On it 60 single-address commands or program steps are provided for manipulating the factors read into the arithmetic unit. To carry these out there is an electronic counter of 13 decimal positions and 37 positions of electronic memory, all interconnected by an 8-digit channel system. A typical command may then be, "add the contents of electronic storage unit number 4 into the counter." This is illustrated in Figure 2 for program step number 36.

The following commands are available:
Storage read in
Storage read out
Multiplier quotient unit read in
Multiplier quotient unit read out
Counter read in plus
Counter read in minus
Counter read out
Counter read out and reset
Multiply plus
Multiply minus
Divide
One-half adjust
Zero test for step suppression
Column shift
Sign test for step suppression
Group suppress
Program repeat

Zero test, sign test, and group suppress enable designated groups of program steps to be suppressed selectively. These commands are specified by inserting a properly wired control panel into the machine. Various combinations of them may be selected by means of relays picked up by the operation instruction in each line of instruction. These relays are called calculate selectors, abbreviated calc. sel. on the wiring diagram. The wiring shown passing through calculate selector number 6 will make program step 36 active with an operation 6 instruction.

The wiring diagram, still Figure 2, shows how groups of steps are associated with calculate selectors to form operations in a general purpose 8-digit control panel. Thus it is possible for a single general-purpose control panel to offer a choice of the following: add, subtract, multiply, divide, sin x, cos x, hyperbolic sine, hyperbolic cosine, exponential, logarithmic, or square root functions, and other functions.

Ten by ten multiplication is performed by a partial products expansion. Ten by ten division is done by a quotient expansion. The calculation of special functions such as sin x and square root is effected by series expansions or iteration formulas.

The program repeat feature of the machine enables one to carry out these series or formulas at electronic speeds. This provides for a repetition, at electronic speeds, of all 60 program steps if specified conditions are not met. For example, if an approximate value generated for the square root does not agree closely enough with the previous approximation, the iteration will be carried out again.

A control panel utilizing all 60 program steps can be wired from a planning chart in 2 hours. Having a pluggable interchangeable arithmetic control panel best enables the user to tailor his own machine to his own problem.

STORAGE UNITS AND THEIR INTERCONNECTIONS

The directing center of the arithmetic unit, which is itself of course the calculating center of the CPC, is the pluggable control panel, already described. The commands and operations specified by wiring on this panel are carried out by the various storage units, the counter unit, and their interconnections.

The arithmetic unit contains nine separate storage units with atotal capacity for 37 digits and 9 algebraic signs. There is a 13-position electronic counter where additions and subtractions of algebraic numbers may be performed. Multiplication and division are performed by repeated addition and subtraction.


Figure 3. Interconnections between storage unit:

Figure 3 shows the interconnections between two typical storage units, the multiplier quotient (MQ) unit, and the counter. There is an eight digit channel for entry and exit from the storage and multiplier quotient units. These units may be connected into the channel in various ways by wiring on the control panels. The so-called normal assignment is the one shown. Information leaving a storage unit passes to the column shift unit where a shift left of zero to five digits may be effected before the information enters the counter or another storage unit. The column shift unit is controlled by the tertiary timer, to be discussed later, during multiplication and division and by control panel wiring during other operations. Information leaving the counter also passes into the shift unit, with the shift homed on the high positions of the counter, that is, position 6 of the counter connected to the units position of the channel. Thus a shift of from zero to five digits right may be effected. In this way the same shift unit serves for both right and left shifting.

TIMING

The pluggable control panel and, to some extent, the interconnections between storage units serve to make the arithmetic unit of the CPC extremely flexible. At the same time it is recognized that certain functions of this unit not only do not need to be changed, but should be completely automatic, requiring no attention from the programmer.

Among these functions is that of timing, carried out by internal circuits as described in the following text.

Timing during calculation is governed by three timing circuits constructed from flip-flops. These are: the program control timer, the secondary timer, and the tertiary timer.

The program control timer steps the machine through the 60 program steps described above. Instructions are executed at each of these steps as specified by wiring on the control panel.

The secondary timer takes control each time the program control timer advances to a new step. It has 25 steps itself, which are executed at the fundamental frequency of the machine, 50 kc. This timer controls the actual execution of those orders which are wired on the control panel at the appropriate step in the program control timer. For example, if the number " 5" is to be transferred into a certain storage unit, the secondary timer will control the reading of a pulse into the storage unit at one time, second pulse at two time, et cetera, up to a fifth pulse at five time, at which time the impulses will be cut off.

The tertiary timer controls the functions of the secondary timer during multiplication and division. It determines the number of times the multiplicand is to be added into the counter for each multiplier digit, when a shift should take place, et cetera. Since the calculator operates at a fundamental frequency of 50 kc, and since there are 25 steps in the secondary timer, one program step not involving multiplication or division takes 0.5 millisecond. This time includes that for all switching, column shifting, resetting, and adding. This is the fundamental time for addition, subtraction, and logical operations. The average time for multiplication (5 by 8) is 12.5 milliseconds; for division it is 16.3 milliseconds. These also are overall times.

SPECIAL FEATURES OF CONSTRUCTION AND SERVICING

Much attention has been given in calculator design to matters of flexibility, control, and execution such as those previously described. If the resulting machine is to offer the greatest economy and utility, however, it is equally important that it be carefully designed for ease of construction and maintenance. This has been achieved in the arithmetic unit of the CPC through the use of gates mounting detachable rows of circuit components, and through pluggable circuit units.

Figure 4 shows a rear view of the.arithmetic unit with the left gate open as for servicing. The program steps are located in the detachable rows of panel 2. Storage units are similarly located in panels 4 and 6. Panels 1, 3, and 5 in the right gate contain the secondary timer, tertiary timer, counter, and other special circuits.

Figure 5 shows one of the pluggable circuit units used in the arithmetic unit. The resistors and condensers in the circuit associated with a given tube are mounted in the assembly with that tube. Connections are made with the row chassis by means of a f3-prong plug. These pluggable units facilitate mass production. They also facilitate maintenance because the IBM customer engineer can trace difficulties by functional failure and easily replace the entire unit.

Over-all Operation of the CPC

Thus far the arthmetic unit, the heart of the CPC, has been described. As an independent unit, it is fully capable of handling problems requiring no more than 50 digits of machine capacity at a time, with limited sequencing. Indeed, provision is made for disconnecting it from the other units for separate operation. This leaves the electric accounting machine and the auxiliary memory unit free for work on an entirely different problem if desired.

For many problems, however, additional memory and sequencing capacity is desirable. For more complicated problems, it is almost essential to have a printing unit as well to record the results for immediate inspection. All these functions are provided by the connection of additional units to the arithmetic unit as shown in Figure 6, to form the complete Card-Programmed Electronic Calculator. From left to right these units are the type 941 auxiliary memory unit (two more could be attached), the type 402-417 electric accounting machine, and the tube and the card-handling units of the type 604 arithmetic unit.


Figure 7. Connections between units by function

Figure 7 shows the connections between these units arranged by function. The electronic calculating unit at the right has already been described as the center of the CPC. The counter group storage, the line printer, the card reader, the column-shift unit, and the program control are located physically in the type 402-417 electric accounting machine. Normal operation is with numbers of ten decimal digits and algebraic sign. There are 80 counter positions in the counter group storage. Each type 941 auxiliary memory unit has a capacity for 16 such numbers, and up to three type 941's may be provided, for a total auxiliary memory of 480 digits plus 48 signs.

Both the electric accounting machine and the auxiliary memory unit operate by means of relays, cams, counter wheels, et cetera, and may be classified as electromechanical devices. The fundamental cycle for the operation of these units is 400 milliseconds. Thus there are two basic periods for operation in the CPC, namely, 400 milliseconds when dealing with the electromechanical units of the calculator, and 0.5 millisecond when dealing with the electronic component.

Clearly it is the object of the programmer to load up the electronic unit with as much information as possible, so as to minimize the number of electromechanical cycles. For problems which do not involve the calculation of special functions, the average time per operation can often be reduced to 150 milliseconds. When the program repeat feature of the arithmetic unit is being used to calculate special functions, the average time per operation may become as low as 10 milliseconds.

The electromechanical units are connected to the type 604 electronic calculator (arithmetic unit) by three channels, each carrying 10-decimal-digit numbers with sign (see Figure 7). The first two of these, channels A and B, carry factors and instructions to the electronic unit. The third, channel C, brings information from the electronic unit. Thus a series of calculations is normally reduced to steps of the logical form: a (operation) b yields c, where a and b are any numbers (constants, data, and previous results) to be combined by a specified operation (arithmetic, trigonometric, exponential, or other), and c is the result of this combination. In other words, the CPC operates with a 3-address coding system, normally read from cards. Each line of instruction contains the following:

The CPC operates using standard IBM punched cards. These are an economical, reliable, and flexible medium for intermediate and long-time storage of information. Cards are easy to reorder and merge using standard IBM auxiliary equipment.

A typical instruction card is shown in Figure 8. Note that it provides a full line of instructions, together with room for the introduction of one or two factors, variables or constants, to be read into the machine from the card. This leaves machine memory free for current operations. In effect, the instruction deck and interfiled data cards serve as an extensive auxiliary memory.

With this brief description of the overall operation of the CPC, and having pointed out some of the advantages of the arithmetic unit, one may turn to some of the outstanding features of the CPC as a whole. We shall consider sequencing, choices, parallel operation, and output.


Figure 8. Instruction card

SEQUENCING

As the CPC usually reads its instructions from cards feeding through it, it is not necessary to allocate storage for program. Thus the CPC may be called an externally programmed machine. In an externally programmed machine there is no limit to the length of sequences which may be used. In a stored program machine, on the other hand, it is usually necessary to economize on the length of sequences, on account of the limited storage available. This usually makes it necessary to perform arithmetic operations on the address part of the stored instructions, in order to keep sequences short. Thus a stored program machine often has to keep reassuring itself as it goes along; that is, it has to keep asking itself questions. For example, in a direct matrix inversion the stored program machine has to keep asking itself such questions as: "Am I at the end of the row? Have I reached the last row? Should I go to the calculating sequence now?" In many problems the logical steps required to program a problem in a stored program machine may-exceed by a factor of ten the actual useful arithmetic operations performed. External programming often gives the CPC a factor of ten in speed over a stored program machine with the same basic operation rate.

On the CPC one may choose alternate sequences from the instruction cards based on decisions made in the calculator. This is accomplished by picking up relays which alter the connections of the program control circuits to the reading brushes.

On the CPC subprogramming of up through ten lines of instructions may be effected by means of a relay network called a ten position field selector. Taking timed source pulses from a digit emitter, the field selector will emit up through ten lines of instruction in sequence. This device is useful for calculating iteration loops, where a variable number of iterations may be required. The CPC can store instructions in memory when required.

CHOICES

When choices are necessary, they may be accomplished by wiring relay networks on the electric accounting machine control panel. For example, a number may have to be called from one of 16 different storage units, depending on a 4-binary-digit or 4-bit code. By using the 4-bit code to pick up four relays or selectors on the accounting machine control panel, this selection can be effected in one card cycle (400 milliseconds). To effect the same selection in a stored program machine might take many cycles.

PARALLEL OPERATION

While one operation is being performed in the arithmetic unit it is often possible to perform the additions involved in the problem in the electric accounting machine counters. Also, the choices described in the preceding paragraph take place without loss of time. All this is accomplished by pluggable relays or selectors together with normal instruction coding.

OUTPUT

The output from the CPC is in the form of punched cards and lines of printing. Output in cards is needed so as to have results available for future calculations and as intermediate storage in larger problems. Output of printed information is needed while the calculator is in operation for interpretation by mathematicians and for problem planning. On the CPC lines of instructions as well as data can be printed at a speed compatible with computing speeds. A line of printing consists of $9 characters and takes 400 milliseconds. Print time is simultaneous with other electromechanical functions of the machine, so that there is no time lost for printing.

This feature makes it easy to program problems for the CPC, and easy to deliver reports of results as calculations are completed.

Conclusions

The CPC demonstrates the advantages to be gained from constructing a large calculator of proved, mass-produced units; from utilizing a pluggable control panel for flexibility; from input and output via standard media; from external programming for an intermediate speed machine; from a measure of parallel operation; and from line-printing output operating simultaneously with computing. A few of the applications for which the CPC has been used successfully are:
  1. Systems of ordinary differential equations.
  2. Systems of hyperbolic and parabolic partial differential equations with two independent variables.
  3. Elliptic partial differential equations with two independent variables.
  4. Systems of linear equations.
  5. Transcendental and algebraic equations.
  6. Two-dimensional Monte Carlo problems.
  7. Evaluation of multiple integrals.
  8. Characteristic value problems.
A few of the areas in which the above types of problems have been solved are:
  1. Wind tunnel and phototheodolite data reduction.
  2. Aircraft and missile design and performance calculations.
  3. Heat flow calculations.
  4. Neutron shielding calculations.
  5. Internal and external ballistics, including missile flight.
  6. Chemical dynamics.
  7. Engine design and performance calculations.
These applications are proof of the utility of the CPC as a design and research tool. The flexibilitv of the machine enables it to make a contribution in any field where calculating is required. Its speed and simplicity of programming make it well suited to the computing requirements of many diverse technical groups.


References

  1. CARD-PROGRAMMED ELECTRONIC CALCULATOR: PRINCIPLES OP OPERATION. Form 2_-8654-0. International Business Machines Corporation (New York, N. Y.), 1951.
  2. PROCEEDINGS: SEMINAR SCIENTIFIC COMPUTATION. Form 22-8296-0, International Business Machines Corporation (New York. N. Y.), 1951.
  3. PROCEEDINGS: COMPUTATION SEMINAR. Form 22-8342-0, International Business Machines Corporation (New York, N. Y.), 19.,51.
  4. PROCEEDINGS: INDUSTRIAL COMPUTATION SEMINAR. Form --8415-0, International Business Machines Corporation (New York N. Y.), 1951.
  5. PROCEEDINGS: COMPUTATION SEMINAR. Form 22-8705-0 International Business Machines Corporation (New York, N. Y.), 1951.


Discussion

N. H. Taylor (MIT): Will the speaker make a few remarks concerning the percentage of time that the CPC operates, and then perhaps give an idea of the replacement rate of some of yotor tubes?

L. Tatum: May I say first that the production of these machines is the work of a very large number of people. For this reason we have asked representatives of other groups in our organization to give you more information on matters with which they are directly concerned. On this question I would like to introduce Mr. Dayger from our Endicott Laboratories.

J. E. Dayger (IBM): I would say our experience today is that the "down time," including preventive maintenance, is running between 10 and 15 per cent.

I do not have the exact figures on tube replacement rate, but I will say that tube life has been a critical factor, particularly the 6J6, which has been a major source of trouble. Other types of tubes have also given very poor life. However, there has been some experimentation with still other types which we believe will very materially improve our 6J6 units. A paper on IBM tube experience in detail will appear in the April, 1952 issue of Electrical Engineering.

W. P. Byrnes (Teletype Corporation): Can you tell as a little more about the input and output of the CPC? What is the speed of input?

L. Tatum: The input to the machine is in decimal form, read from a punched card. This card is fed into the "accounting machine" unit, where it forms an insulator between sets of 80 reading brushes and their brass rollers. When a brush passes through a hole in the card, it closes a circuit, giving an input pulse timed by the position of the hole. These cards go in at the rate of 9,000 an hour.

W. P. Byrnes: Is it 80 characters per line for the output?

L. Tatum: Eighty-nine characters per line at 9,000 lines per hour.

W. A. Ferrand (North American Aviation Company): Just what does the electromechanical memory consist of?

J. E. Dayger : The memory unit is the same electromechanical arrangement used in the 602-A Calculator. It is like a mechanical counter. It operates in synchronism with the card feed and has a "stacked" readout. Each of the 16 units has a capacity of ten digits, plus sign.

F. M. Verzuh (MIT): You people have several general types of computers, the 602, 604, CPC, and your Selective Sequence machine. How have you determined which machines to use on different types of problems, and so on?

L. Tatum: Very generally I think that can be determined by the size of the problem and the speed with which an answer is required. In short, you don't send a boy to do a man's job. On the other hand, if you are watching dollars and cents, you don't send a man to do a boy's job, either. Usually we try to work with the people who are using our equipment, to help them determine themselves when they require a larger or faster machine. It is a problem of many angles, different each time.

L. A. Ohlinger (Northrop Aircraft Company): One of our men by the name of Reiss has developed a technique for using the CPC to program some of its own operations. A problem formerly requiring an instruction deck a yard high can now be done with a deck only 7 inches high. We are certainly satisfied with this, and will be glad to describe it for anyone who might be interested. L. Tatum: We certainly would like to hear about it. We encourage the dissemination of information such as this.

The CPC has a 10-position 10-way "relay", by which it can be caused to emit its own programs up to and including ten lines of programming. Is that what you use?

L. A. Ohlinger: In combination with other things.

M. H. Kraus (Eckert-Mauchly Computer Corporation): I would like to ask more about components and reliability. Can you give us some ideas of the relative reliability of tubes and other parts of the computer? What about diodes?

J. E. Dayger: We do not use diodes to any extent. It is principally tubes and relays and circuit breakers that give trouble, and the main source of difficulty is still tubes.

R. E. Breisemeister (Consolidated Edison Company of New York, Inc.): Is it feasible to read information in from the punch unit? And, from the user's point of view, is it possible to call out the correct rate schedules from the auxiliary memory units?

L. Tatum: That depends on the size of your rate schedule. It is not only possible, it is being done on millions of bills every month, using the 604.

R. E. Breisemeister: We have a number of 604's, but our rate schedules are so complex that no more than two can be put into a single 60-program-step control panel. Under these conditions it is entirely impossible to do what you are saying.

L. Tatum: Are your rate tables more complex than an eight place table of logarithms? As mentioned in the talk, it is often possible to avoid the use of large tables altogether (such as a table of logarithms), and cut out that memory requirement simply by generating the function at electronic speeds.

G. T. Hunter (IBM): Let us return to the first of Mr. Breisemeister's questions, about reading from cards in the punch unit. At the present time, you cannot read from the punch unit into the calculator, basically because the punch unit and the accounting machine unit read the cards in opposite directions.

The second question concerned storing the rate tables. So far, utility companies have not been able to set up rates in even, geometric patterns. If that could be done, many of our accounting procedures would be simplified. But the present rate structures must be stored, either in a memory unit internally, or in the punched cards.