The UNIVAC Solid State Computer

From Folklore
Jump to: navigation, search

Unisys History Newsletter
Volume 1, Number 2
December 1992 (revised 1999)
by George Gray

The UNIVAC Solid State Computer was one of the first to use solid state components in its central processing unit. Although the prototype was accepted by the Air Force in 1956, Remington Rand was not able to market a commercial version for three years. This delay reduced the number sold, but, even so, the Solid State was a success, bringing in badly needed revenue during the company's troubled times in the early 1960s. I found a notebook full of Solid State manuals, making it possible to take a closer look at this interesting machine.

First generation computers, such as the UNIVAC I and II, used vacuum tubes for the logic and control circuits of their CPUs. This is the distinguishing characteristic of the first generation of computer hardware, and the switch to transistors takes us into the second generation. Vacuum tubes were slow, bulky, hot, and prone to failure, so computer designers looked for alternatives. The transistor was invented at Bell Labs in 1948, but it was several years before transistors became fast and reliable enough to be useful for computers.

In the meantime, engineers looked at other devices, including thryratons, trionodes, and magnetic amplifiers. Thryratons and trionodes were two types of gas-filled tubes with electrical components. Neither ever found very wide use, although the Colossus cryptoanalytic computer built in Britain during World War II did have thryraton rings as counters. Magnetic amplifiers had been developed during the 1930s, and the Germans used them in devices to control the firing of battleship guns. Amplifiers were solid-state iron or ferrite core inductors whose inductance could be varied by an electrical current.

Remington Rand and several other companies conducted research on magnetic amplifiers in the years after World War II. The UNIVAC Solid State Computer had its genesis in the Air Force Cambridge Research Center (AFCRC) computer, which the Philadelphia division of Remington Rand developed from 1952 to 1955. Aside from fifteen vacuum tubes, all the CPU circuitry used magnetic amplifiers, which Remington Rand named FERRACTORs. For memory, the AFCRC computer had a magnetic drum.

Several types of memory were used in first generation computers: mercury delay lines, electrostatic tubes, magnetic drums, and magnetic cores. The BINAC and UNIVAC I had mercury delay lines, which were slow. The UNIVAC 1103 and the IBM 701 used electrostatic memory, essentially cathode ray tubes, which was faster than mercury lines, but not very reliable. Drums were reliable, but slow, due to the inherent rotational delay. Engineering Research Associates, which was acquired by Remington Rand in December 1951, was a leader in drum memory development. The ERA Atlas I (or, 1101 in its commercial designation) which was delivered to the Navy in December 1950 had a drum memory of 16,384 24-bit words. Core memory was superior to the other three types, and, as we know, eventually prevailed. It was initially very expensive, so that for some time the drum continued to be the memory device for small-scale, low-cost systems.

The Remington Rand product line needed such a system. Both the UNIVAC I from the Philadelphia division and the 1103 from St. Paul were large systems, selling for about $1 million. IBM's drum memory 650 computer, announced in 1953, sold for $200,000 to $400,000 and was a great success: over 1800 were sold or leased. The drum memory of the AFCRC computer was faster (16,500 rpm versus 12,500) and bigger (4000 words versus 2000) than that of the the original IBM 650. The AFCRC computer was completed in June 1955 and shipped to Hanscom Air Base in Massachusetts, where it passed its acceptance test in April 1956. The total project cost was $800,000. The Air Force used it for various scientific computation problems, and Air Force engineers added a large three-color display scope for plotting output.

A commercial version of the AFCRC computer was an obvious response to the success if the IBM 650. The Philadelphia division developed an improved version, which was called the UNIVAC Card Tabulator (UCT). The prototype was completed in December 1957. A production line at the Remington Rand factory in Ilion, New York was ready in June 1958, but it could only produce three machines per month. The first delivery was to the Hamburg Credit Bank in the second half of 1958. It was renamed the UNIVAC Solid State Computer for its U.S. announcement in December 1958. The first U.S. delivery was in early 1959 to Economics Laboratory, Inc., a St. Paul, Minnesota company which manufactured detergents and cleaning compounds.

The UNIVAC Solid State Computer came in two versions: the Solid State 80 handled IBM-style 80 column cards, while the Solid State 90 was adapted for Remington Rand's 90 column cards. A Solid State system consisted of the CPU and drum memory, card reader, card punch, and printer. There was the option of adding a tape controller and up to ten UNISERVO II tape drives. The drives could read both mylar tape and the old UNIVAC metallic tape: the mode was selected by a switch on the front of the drive. The CPU had twenty vacuum tubes, 700 transistors, and 3000 FERRACTOR amplifiers.

The drum was five inches in diameter and eight inches long, with 25 bands of 200 ten-digit words, for a total capacity of 5000 words. Its speed had been increased to 17,670 rpm. Twenty of the bands had one read-write head each, giving a maximum access time of 3.4 milliseconds, that is, one revolution. The remaining five bands had four equally spaced read-write heads to reduce their maximum access time to 0.85 milliseconds.

Instruction words consisted of a two-digit function code, a four-digit operand address (referred to as m), and the four-digit address of the next instruction (referred to as c). The address of the next instruction was important in a drum memory environment. Since the drum was constantly rotating, it would move some distance while each instruction was being executed. So, to minimize the delay between instructions, it would be best to have the next instruction positioned on the drum at the place where the read-write head was when execution of the current instruction was completed. As a result, instructions which followed each other in program logic would be scattered around the drum, not physically next to each other. The manuals for the Solid State computer gave instruction timings, so that programmers could try to reduce rotational delays. This approach was called minimum latency programming. It was complicated by the need to fetch operands, so that the programmer had to keep in mind the locations of data and of the next instruction. Generally speaking, data items were stored in the five bands which had four read-write heads, since data would be accessed more frequently than instructions.

The Solid State used four bits (plus a parity bit) to represent a digit. The bits stood for five, four, two, and one. This table shows how it was done:

Solid State Digit Representation
5 4 3 2 1 value

1 1 0 0 9
1 0 1 1 8
1 0 1 0 7
1 0 0 1 6
1 0 0 0 5
0 1 0 0 4
0 0 1 1 3
0 0 1 2
0 0 0 1 1

This scheme, called biquinary coded decimal, was also used on the LARC, the large computer which the Philadelphia division developed for the Atomic Energy Commission during the late 1950s. Variations of coded decimal were common on businessoriented computers during the 1950s and early 1960s. Scientific computers, such as the UNIVAC 1103A and 1105 operated in pure binary, with instructions for both fixed and floating-point arithmetic, but none for decimal. The UNIVAC III, first delivered in 1962, had instructions for binary (fixed point) and decimal arithmetic. Third generation computers, such as the IBM 360 and the later UNIVAC 1100s, had a full range of arithmetic instructions, ending the division between business and scientific machines. The Solid State computer had three ten-digit arithmetic registers, referred to as A, X, and L. Their use varied according to the operation being performed. Addition and subtraction used the A register: the value in the operand (m) was added to or subtracted from the value in A, with the result remaining in A. For multiplication, the value in L was multiplied by the value in m; the ten most significant digits of the product went into A and the ten least significant went into X. In division, the value in m was divided by L with the quotient in A and the remainder in X.

The X register was not an index register. Index registers had just started being used in the mid-1950s, and the AFCRC computer did not have them. On the Solid State computer they were an option, costing an extra $7500 (or $150 per month), and many customers chose not to spend the money. Without index registers, the task of moving through data tables was performed by modifying the address portion of instructions. This technique, which seems foreign in today's climate of read-only instruction areas, was extensively used. In fact the Solid State programming manual said that the ability to do instruction modification was an "invaluable feature" of the machine. For those who paid the extra money, there were three index registers, designated B1, B2, and B3. Each could hold a four-digit value, which was enough, since the address field of an instruction was also just four digits. Use of an index register was indicated by setting the sign bit and the sixth bit in the operation code field, which was otherwise unused.

Programming was ordinarily done in machine code, although an assembler called X-6 was developed. As an example of machine code, 25 1202 0050 meant to load the contents of address 1202 into the A register and find the next instruction at address 0050. There were instructions for loading into and storing from registers, arithmetic operations, ANDing (which was called erasing) and ORing (referred to as buffing or superimposition), right and left shift, magnitude comparison, and equality comparison. The test for equality was operation code 82; if the contents of A were equal to the contents of L, then the address of the next instruction was in the m (operand) field, otherwise the address of the next instruction was in the usual c field. In all, there were 53 instructions, including some for input-output and for translation between XS-3 code and the Solid State's internal biquinary coded decimal.

Remington Rand provided customers with subroutine libraries for various functions to help cut down the labor of machine language programming. The X-6 assembler was primitive by today's standards. It allowed replacement of the numeric function code with a mnemonic, assignment of names to instruction addresses, and limited use of data tables, but not much more than that. Although the binary coded decimal arithmetic operation classed the Solid State as a "business" computer, customers in fact used it for both business and scientific computing. The U.S. Army Chemical Corps did mathematical and statistical work, as well as payroll and accounting. Shell Oil used a Solid State primarily for engineering calculations.

A basic Solid State card system was priced at $350,000 or leased for $7000 per month. Since the Solid State was faster and more capable than the IBM 650, sales were brisk during 1959 and 1960. In June 1959, Remington Rand announced that it had written an IBM 650 emulator program to ease conversion. But the market life of the Solid State was cut short by the announcement of the IBM 1401 in October 1959. For the same price, it was faster than the Solid State. As the pace of sales slowed, Remington Rand announced a somewhat improved version called STEP (Simple Transition Electronic Processing). It was the same CPU hardware, but it could be ordered with a smaller or larger capacity drum memory. A system with one tape drive sold for $250,000. This was a better price than on the Solid State, but still did not match the price-performance of the IBM 1401. Altogether, about 600 Solid State and 200 STEP computers were sold.

It is unfortunate that the Solid State was not marketed sooner, so that more could have been sold before the arrival of the IBM 1401. It is not clear why a more powerful follow-on, one which was fully transistorized, was not developed so that there would have been something to compete with the 1401. This may have been due to the concentration of the Philadelphia division on the LARC computer, which fell way behind schedule and swallowed up several million dollars. In the absence of a follow-on, Solid State customers had no reason to stay with UNIVAC, since any upgrade involved a conversion.

The late 1950s and the beginning of the 1960s was a bad time for UNIVAC. Many computer models were late, and the company's market share fell dramatically. It is sad to look back and see promising new products, such as the UNIVAC I and Solid State, which were not aggressively developed and marketed.


Unisys, UNIVAC, UNISERVO, and FERRACTOR are registered trademarks of Unisys Corporation. Copyright 1992, 1999, by George Gray