In 1269 A.D. an engineer in the French army laying siege to the Italian city of Lucera wrote a long letter to his friend Sigerus. Several copies of the letter—the oldest written report of research in magnetic phenomena—are in existence. Fifty years after Peregrinus wrote his “Epistola ad Sigerum’’’ applied research in magnetism led Flavio Gioja to adapt the magnetic compass for shipboard use, a revolutionary development for the navies of the world. Now, seven hundred years later, a magnetic phenomenon again appears destined to affect naval warfare profoundly. Modern science has cooked up a batch of tiny iron doughnuts strung in a maze of wires, like Cheerios enmeshed in Shredded Wheat, to form a “magnetic core matrix memory.” A revolutionary development? We shall see.
“Giant brains” have filled our headlines for two decades with their successes in high speed computation of problems a man might take years to solve with paper and pencil. Ashore, the Navy has made extensive use of these computers in applications ranging from personnel accounting to printing the Nautical Almanac. But to use them at sea was quite impractical. The memories and computing circuits of the early electronic brains were built with vacuum tubes, resulting in the generation of an enormous amount of heat in the thousands of filaments. Huge power supplies and heavy air conditioning equipment were required for reliable operation. These machines were truly giant brains, literally as big as a house. Furthermore, they were “digital” devices—performing simple arithmetic in step-by-step processes. Even with their additional capability of making “logical decisions,” such as deciding if one number were larger than another and then responding in one of two modes of operation, it did not appear that these machines could be of use aboard ship. What could such a computer do with the problem of computing surface gun orders for a moving target from a rolling and pitching platform? Fifteen years ago nobody gave this question a passing thought since it was apparent that “digital” computers were too big and heavy to take to sea. The Navy quite rightly concentrated efforts on improving “analog” devices like the Mark 1A Computer and in developing simpler analog systems capable of equal accuracy.
The development of the magnetic core matrix memory coupled with improvements in the transistor has drastically changed the concepts of shipboard computer design. A diet of tiny iron doughnuts and germanium sandwiches has reduced the giant brain to the size of an office desk and at the same time has made it more reliable and a hundred times faster. The multiplication of two fifteen-digit numbers now can be performed in ten millionths of a second. In one second a digital computer can compute weapon orders for more than a dozen different targets. In terms of equipment, one digital computer and one scanning radar can replace all the fire control radars and computers aboard any warship.
The remarkable flexibility of the general purpose digital computer makes it a tool not only for computing multiple weapon orders but also for such varied purposes as ordering spare parts and supplies, controlling air interceptions, reducing and displaying tactical data, printing pay lists, designating targets, maintaining personnel records, and computing positions from star sights for the navigator.
A goal of a naval commander is to make the maximum effective use of the information available to him. In the present state of the art, data handling in a naval force lags far behind data collection because of the necessity of relying on human brains for virtually all of the data handling functions. Target data relayed by voice radio to control ships is mismatched and out of date before it ever is presented to the force commander. Voice channels for combat information can be supplanted by computer-to-computer radio data links. Iron brains can chop the loss of information to a small fraction of its present rate. The large capacity and extreme accuracy of the computer in fact will make demands of improved range, accuracy, and resolution of the radars and other data gathering units linked with it.
With this revolution in brains at sea will come a flood of new technology to confound the captain and bewilder the boatswain. We have survived fission, fusion, reactors, roentgens, mesons, and neutrinos; not to mention mach numbers, telemetry, spin tabs, and beam - rider-with-terminal - passive-homing guidance systems. To our shipboard language we soon will add Boolean algebra, logic circuits, bit, programming, binary-to-decimal conversion, “And” and “Or” circuits, access time, bistable element and subroutine; in the new navy, when the sailor gets the “word” it likely will be a “thirty-four bit word (with sign)” from a five thousand word fast memory. A preview of what we must know in the future seems worth our while.
Digital computers are calculating machines which operate on a step-by-step principle, like counting by ticking off one finger at a time. In this respect they are very different from “analog” computers now found aboard ship. Analog computers are usually physical models of the problem to be solved. A slide rule is a good example of an analog computer. In a slide rule the physical quantity length is used as a model to represent the logarithm of the numbers on the scales. Adding the lengths is the analog of multiplying the numbers. The precision of analog computers is limited by manufacturing difficulties. A simple example of a digital computer is the scoring string fitted with sliding beads used over billiard tables. Each bead represents a count of one point. The beads are marked so the total can be read easily. By using enough beads any number can be scored, so that precision of a digital computer is limited only by space or expense. Great precision is an important advantage of a digital computer.
To be useful as an automatic calculating device, a digital computer has to be more complicated than an arrangement of beads on strings. The general purpose digital computer is usually equipped with four basic parts. The arithmetic unit, essentially an adding device, is ordinarily constructed so as to add, subtract, multiply, and divide the numbers fed into it. The input-output unit changes the information given the machine into the form used internally for calculating. The memory unit stores the information until it is needed in the calculation. Finally, the control unit regulates the sequence of operations performed by the other three units.
The design of digital computers depends on two basic components: a storage element where information can be stored; and a switching element through which information can be transferred. These components usually appear in all four basic parts of the computer—the input-output, arithmetic unit, memory, and control unit—and determine the size and operating speed of the machine for a given degree of precision.
We want a storage element which is small, requires no maintenance, “remembers” an indefinitely long time regardless of power failure, is capable of very fast changes of information, is not affected by its operating environment, and can be “consulted” extremely rapidly without loss of the stored information. The simplest storage element is one which holds one “bit” of information. A bistable device which is always in one of only two possible states such as on or off, plus or minus, “is or ain’t” qualifies as a one-bit storage element. There are numerous types of bistable elements but the one which appears most suited for shipboard use is the recently developed ferromagnetic matrix cell, a tiny iron doughnut molded from a ferrospinel powder, featuring a square hysteresis loop. Such a cell is always magnetized with one of two possible polarities, minus or plus. If a large enough current is passed through a wire threaded through the cell, the magnetization can be caused to flip from one polarity to the other. When a lesser value of current is passed through the cell, the polarity remains unchanged. When such a cell is connected in a matrix as shown in the accompanying figure, it can be selected from all the other cells in the matrix for the purpose of storing a “bit” of information. When a pulse of electric current is passed simultaneously through the two wires corresponding to the row and column of the matrix in which the selected cell is located, the additive effect of the two currents is sufficient to cause a reversal of polarity in the selected cell only; all the other cells are unaffected because the current of only one wire at most flows through them. Reversing the direction of the current will return the cell to its former polarity, again leaving the other cells unaffected. In addition to two “read-in’ wires, a third wire is threaded through the cores. This wire is the “read-out” wire which senses any reversal of magnetic polarity within the core. For read-out, a negative current is passed through the read-in wires; if a bit of information has been previously stored in the cell, the negative current will cause the polarity to reverse to its ordinary state and the reversal will cause a pulse of current to appear in the read-out wire. In this manner the cell can be used as a memory: if the polarity is in the ordinary state, the cell is said to store a zero; reversed, a one. It is apparent that the method of read-out used destroys the contents of the memory; an automatic read-in after each read-out restores the information as it was.
A memory capable of storing zeroes and ones, like this cell, can be used as a counting device, counting by two’s. Habitually we count in the decimal system, using ten characters; but there is no reason why we could not count in the binary system as well, using only two characters, 0 and 1. In the decimal system we have columns representing units, tens, hundreds, thousands, and so on. In the binary system the columns represent powers of two instead of powers of ten—units, twos, fours, eights, sixteens, etc. The number seven in the binary system is written 111, that is, 1 four plus 1 two plus 1 unit. Similarly, the number eight is represented in the binary system by 1000. The numbers one through ten are written 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010. As an extreme example, the ten- column decimal number 9999999999 requires thirty-four columns in the binary system:
1001010100000010111110001111111111.
Fractions can also be represented, the successive columns to the right of the binary point being halves, fourths, eighths, etc. To tie our magnetic memory into this binary system we can let each cell represent a different column. We can now see that to count up to ten we need four cells, one for each of the four binary number columns. If we like, we can let a group of four cells represent one decimal column, using as many such 4-bit groups as we need for the number of decimal columns we are going to be working with. This would be called a “coded decimal system” and is a little wasteful of bits. We have seen that a ten-digit decimal number can be represented with 34 bits; this coded decimal system would require forty bits. Because of the economy of bits and the greater simplicity of the circuits, very fast computers usually use the binary system internally for calculating instead of a coded decimal system. A translating device at the input converts decimal numbers into the binary system. To add three and four, the machine adds the binary representations 11 and 100 to obtain 111, the binary equivalent of seven.
Switching circuits, now constructed of miniature germanium diodes, resistors, and transistors, are used to transfer information to the various parts of the computer. For example, an “And” circuit is one which yields an output signal only when the signals to the several input channels occur simultaneously, while an “Or” circuit yields an output whenever a signal appears at any input. Pyramids of these circuits can be used for addition, shifting, and the other elementary arithmetic operations; for selection of the memory locations whose contents are to be used in these operations, and for control of other switching circuits. Incidentally, a matrix of ferrospinel cells can be used as a switching device and is especially useful in grouping the individual memory cells into a multi-bit memory location, all the cells of which respond to a selecting signal fed into the matrix switch.
Control of the computer is effected by loading the control unit with an “instruction.” An instruction is nothing more than a group of bits (a “word” of 0’s and l’s) which, when stored in the control unit, energize the switching units to initiate some elementary operation. The ability of the computer to respond to internally stored instructions is the feature which sets it apart from the desk calculator (aside from greater speed) and which has inspired men like Berkeley to say flatly that these machines think. The computer has a number of built-in operations such as “Multiply” which once initiated will run to completion just as an automatic washer goes through its cycle. The significant feature of the computer is that after completing the operation “Multiply” it automatically proceeds to its memory, picks out the next instruction in its routine, executes that instruction, then returns to the memory for the next instruction, and so on. If one of the instructions in the sequence returns the computer to a previous instruction in the sequence, the computer will repeat the loop over and over again. By the use of such a loop, the computer can be used to obtain a solution to a problem by successive approximations, the results of the previous run through the loop being used as the starting approximation for the succeeding run. A common method of stopping the iterative process when the desired accuracy is obtained is to include in the loop a comparison of the difference between the last two approximations with an arbitrary small number. When the arbitrary number exceeds the difference, the machine executes a conditional “jump” to a new sequence of instructions to commence a new portion of the problem. The computer is said to operate on a stored program.
The electronic brain is extremely fast—- and equally stupid. An instruction must be provided for each eventuality. A sequence of instructions is called a “routine.” A program is a plan of routines for solving a problem. The instruction always contains at least two parts—a code group for an operation to be performed and an address group designating a memory location whose contents are to be used in performing the operation. A “two-address” code has three parts—the operation, the address of the operand, and the address of the next instruction in the routine. The “three-address” code is in wide use. The instruction may be in the form of a ten-digit number such as 1997998999. The machine separates this into four parts, 1-997- 998-999. If 1 is the operation code for “add,” the machine would interpret this instruction as “Add the contents of memory location 998 to that in location 997 and store the sum in 999, then proceed to the next instruction.” A three-address machine must have a program register which automatically directs the machine to the next instruction after each operation, usually by adding one to the memory location of the instruction just performed.
If you have ever operated a desk calculator or slide rule, you are familiar with the difficulty of getting the decimal point in the right place. Digital computers now include a “floating- decimal” internal program which automatically lines up the decimal point properly in all calculations while maintaining the greatest possible number of significant figures. Inputs and outputs are expressed in the form of several digits and a decimal location indicator, corresponding to the familiar exponential form of a number, such as 5.32X10—2 to represent .0532. Where no such feature is installed in the internal circuitry, it can be put into the machine in the form of a stored program if there are enough memory locations to spare. As an example of what can be done, Dr. Wolontis of Bell Telephone Laboratories has programmed the IBM 650 computer, a two-address fixed-decimal 2,000-word memory machine featuring only arithmetic and logical decision operations in its internal program, to respond as if it were a general purpose three- address floating decimal 1,000-word machine internally programmed to extract square roots and form logarithmic, exponential, and trigonometric functions.
These machines can be programmed to interpolate in a table of numbers stored in the memory; ballistics problems and other problems requiring the introduction of empirical data can be solved employing this device. Practically any problem expressible in terms of elementary mathematical operations can be solved by digital computers. Converters to change mechanical or electrical analog input signals into digital form and vice versa are on the market. With the aid of these devices every computer now in use aboard ship, whatever its function, could be replaced by a digital computer.
We do not mean by this statement that digital computers should replace all the analog computers now aboard ship. We are only indicating the great versatility of digital computers in solving a wide range of problems. In fact, for some specialized operations the analog computer is far superior to the digital computer because of size, simplicity of construction, and reliability in that particular application. The advantages to be gained by the use of either type must be weighed against the disadvantages. The digital computer is markedly superior in flexibility and precision—in general, in any application where large masses of data must be processed. Using sequential data sampling and computation, one digital computer can replace a substantial number of analog computers. This could prove to be very economical, but against this must be weighed the disadvantage of putting all the eggs in one basket. The same digital computer used for weapons control can be diverted to conducting air interceptions if battle conditions make it desirable. Air controlling is becoming too difficult for human controllers as air speeds increase. The spoken word is too slow a means of communication. Interceptions should be controlled by a computer through a radio link to some visual indication in the cockpit. In port, this same digital computer could produce the pay list for a carrier crew in a couple of minutes. If fed a list of spare parts used and received, the computer can be programmed to adjust the inventory records, compare on-hand stocks with minimum inventory levels, and print requisitions for shortages. Given a series of star sights the computer can produce a mathematical best guess of the latitude and longitude.
The digital computer has several other advantages over the conventional shipboard computer. There are no moving parts—unless you count electrons—no cams, no cogs, no motors. Maintenance is simplified by the use of plug-in blocks of standard circuits. The modern computer has several built-in checks on its operation, flashing a warning when a mistake is made or repairs are needed. If a new type of projectile is used in the weapons system there is no need to cut and install new ballistic cams. The conversion to a different ballistic could be as simple as typing a letter. Even an entirely new weapon could be connected into the system without altering the basic computer. All that is required is a change in the stored program. This computer is one which will not be outmoded by weapons changes.
Computers which can fit into such a scheme are on the market today. Complex programming problems and special analog-to-digital adapters still stand between what we have and what we should have. Here are some problems which must be considered:
Should automatic detection be included in the program? If so, what criteria determine when a radar blip is truly a target? Can these criteria be built into the logic circuits of the computer without exhausting the memory?
Assuming that automatic tracking is an essential part of the scheme, how many plots on each target should be included in the computation of course and speed? Should the computation of target course be a straight line or a fitted curve? Should target acceleration be computed? How many targets should the computer be allocated for most effective utilization?
Should automatic target designation and weapons control be a feature of the system? If so, what criteria should be programmed into the computer for deciding which targets should be taken under fire by what weapons?
The list is not endless, but you can see that the task is not a small one. Many of the problems have not been faced before because the means for solving them were obviously lacking. The means are now available. In the “ship of the future” the weapons and data display systems are almost certain to have one or more digital computers at the core of the scheme.
The prospect of having a single “3-D” high resolution long range electronic scan radar coupled with a large memory high speed digital computer to replace all the multiple search radars, target designators, fire control radars, and fire control computers which now comprise our weapons systems is a dream we may yet make come true. And we are not forgetting that this computer in off-duty hours will order spare parts and pay the crew.