The IBM 1401
The IBM 1401 "Data Processing System", introduced in October 1959, was the "Model-T Ford of the computer industry" and "one of the most important and successful products IBM had ever announced." About 15,000 1401-family computers were manufactured and delivered worldwide in the 1960’s, far exceeding initial expectations. By March 1961, after only a single year of full production, 2,800 machines had already been delivered to customers. By the very next year, 1962, income from the IBM 1401 surpassed older card-punch/unit-record accounting machines for the first time. By 1964, 40% of all existent computers were IBM 1401-family machines.
Its follow-on family compatible machines, 1410, 1440 and 1460, were sold until 1970. A rumored 1480 was discontinued in favor of the 360/25. In fact, the 1400 family was so successful that it led to the industry’s first nearly-program-compatible computer clone, the Honeywell H-200, or "Liberator."
The goal of the 1401 design was to offer a flexible business computer of at least three times the speed and at a lower cost than the ubiquitous, card/unit-record, collate/merge/print, plug-board-based accounting machines of the 1950’s (such as the IBM 407 and 604). Although offering a general-purpose computer with programmable magnetic-core memory was a cost risk, by clever architecture design and use of moderate-speed, economic transistor circuits, IBM achieved this goal. By first reading card/unit-record information into the main memory of the 1401 before manipulating it, collate/merge/print operations were much faster than on the old card machines. And the data could be quickly accessed to and from magnetic tape for storage—much faster than handling decks of cards (which also wore out and had to be rejuvenated via duplication).
The 1401 architecture was designed for handling business data-processing applications. Its Central Processing Unit (CPU) can efficiently manipulate variable-length character strings and perform variable-length decimal arithmetic (unlike today’s fixed-width binary arithmetic). For instance, the CPU can operate on two numbers where each is of an arbitrary length or number of characters. A 1401 character is encoded in 6 bits, an end-of-word "word mark" flag bit, and a parity check bit. Note that even though a character was 8 bits wide, the term "byte" had not been invented yet.
1401 systems could be configured with 1,400 to 16,000 characters of magnetic core memory (4,000 min typical). Memory is addressed via decimal character strings, not binary digits as in nearly all contemporary computers. Magnetic cores retain either a "1" or "0" depending on the clockwise or counterclockwise direction of the stored magnetic field.
An exalted feature of the 1401 was its reliable and robust input/output peripherals—a long IBM tradition, including an 800-card per minute card reader, a 250-card-per-minute card punch, a 600-line-per-minute line "chain" printer, up to six reel-to-reel tape drives, and a 20-million-byte magnetic disk storage unit. The system and peripherals contained considerable error checking logic.
The 1401 may have been equivalent to the Model-T in popularity for IBM, but was far more complicated to manufacture. Whereas the Model-T has about xx components, a large 1401 system comprises about 20,000 mechanical parts and about 50,000 electrical components (10,000 transistors and 14,000 diodes on 3,000 cards).
A typical, 4k-character 1401 system rented for about $7,000 per month in the 1960’s, equivalent to $42,000 per month in today’s dollars (6x due to inflation). This rental fee included maintenance service and options features. A typical 1401 system would have cost about $370,000 if purchased outright in 1961 or $2,240,000 in today’s dollars. Most systems were rented, a "cash cow" for IBM.
Main memory itself was very expensive in the 1960’s: One 8-bit character of 1401 core memory in the 1960’s cost about five dollars (or $30 today). This is 300,000,000 (300 million) times more expensive than today’s cost of memory (about 0.1 micro-dollars per byte).
IBM 1401 Technical Features
The architecture of the IBM 1401 was designed around a simple, elegant and human-friendly approach: decimal arithmetic and variable-length text strings for its instructions and data. The 1401 can be characterized as a cost-effective input and output data processing computer whose speed was tailored to that of the ubiquitous IBM mechanical unit record card processing equipment of the era.
All numbers in the 1401 are stored and operated on in a decimal notation, not binary (as all contemporary machines are). Variable-length decimal numbers can be any length, only limited by memory considerations.
Instructions are defined by a single character and can be from 1 to 8 characters long. There are 31 primary instructions: "A" was for add, "B" for branch, "C" for compare, "E" for edit, "L" for load, "M" for move, "S" for subtract, "1" for read, "2" for print, etc..
The "WordMark" bit field of a character determines the length of instructions and data. The WordMark bit indicates to the CPU the first character of an instruction (and thus where the previous instruction stops) or the last, high-order character of a variable-length data string.
Arithmetic decimal instructions operate on two variable-length operands in memory given by the A and B addresses and write the result in the memory location given by the B address. Arithmetic is performed serially, from least significant to most significant character, until finishing up with the longest string. Arithmetic characters are encoded in the Binary Coded Decimal (BCD) notation.
Memory size ranged from 1,400 to 16,000 characters, although most systems were sold with 4,000 minimum characters. Memory is addressed via 3-character strings. For example, the instruction "A299500" adds memory location "299" to location "500" and deposits result into location "500".
SMS (Standard Modular System) 2.5" x 4.5" single-layer cards. Complementary Diode-Transistor Logic (CDTL), with alternating PNP and NPN transistor logic voltage levels. Discrete Germanium point-contact diodes, Germanium Alloy-junction transistors, resistors, inductors, and capacitors are used throughout.
Speed of Operation:
The 1401’s clock frequency is 86,957 cycles per second, or about 87 kiloHertz! This corresponds to an 11.5 micro-second system clock cycle time.
To compare the 1401’s variable length instruction and data processing against today’s fixed-width instruction and data architectures makes comparing even simple operations involved. The 1401 CPU does everything in a character-serial manner. In order to add say two N-digit numbers, the CPU takes several cycles to fetch the instruction itself and then one cycle for every character of the instruction’s two operands or arguments, or 2N cycles total. The result is written back into memory as the addition is performed (although certain negative results require an entire re-recalculation of the result).
Thus, the average time to add two 10-digit numbers is 40 cycles, or about a 2.2 kHz add rate. Adding two 20-digit numbers is 70 cycles, or an add rate of 1.2 kHz. Compare that to a modern superscalar microprocessor with a peak add rate of two 64-bit add instructions per cycle at 3-GigaHertz, or an add rate of 6 Ghz; the modern microprocessor is 6,000,000,000 / 1,000 = 6,000,000 times faster!
Operating System: NONE!
This 1401’s History
Built: May, 1964 (43 years ago)
Monthly Rental Cost (estimated): $10,600/month in 1961 dollars.
Equivalent to $64,000/month in 2006 dollars.
Purchase Cost (estimated): $500,000 in 1961 dollars.
Equivalent to $2,240,000 in 2006 dollars.
Original owner: Volkswohl Versicherung ("People’s Welfare") Insurance Company, in the town of Dortmund, Germany. Used for financial control and insurance policies. Operated round-the-clock, 24/7 until 1972. Its IBM customer engineer (CE) was Arnold Schweinsberg.
Second owner: Arnold Schweinsberg purchased the 1401 for his own accounting services company catering to small businesses such as newspaper and magazine publishers and companies under 100 employees. He operated the machine in two 8-hour shifts per day until 1977. He then stored it in a shipping company warehouse for 11 years until 1988 and then moved it to his home automobile garage in the hamlet of Hamm, Germany where it was stored for another 16 years until 2004.
Arnold listed the system on www.ebay.de in May 2003, where it was spotted by Eric Smith, a Museum volunteer. Arnold, contacted by Mike Cheponis, a Museum volunteer, enthusiastically supported a proposition that it be purchased, donated, and restored at the Computer History Museum. Robert Garner, a Museum volunteer, began the evaluation process, including an on-site inspection by an old-time IBM colleague he was working with (Heinz Lenk). Via aggregation of several personal donations, the 1401 was purchased in October 2003 for €xxxxx.
Shipping Logistics: The 4-ton system was meticulously crated and transported by IBM Euro surface Division in Germany and then shipped by Maersk Logistics, via the Dusseldorf Express ocean freighter into the port of Oakland, California. Shipping cost was €8,580, entirely funded by the IBM Almaden Research Center, San Jose. It arrived in its shipping container at the Computer History Museum on March 18, 2004.
Operating power-on time meter, on arrival: 68,730 hours (7.8 years)
Serial number: # 28,421
1402 Card Reader/Punch
1403 Chain Printer
729 Tape Drives: 2 - Model V, 1 - Model IV, 2 - Model II
Storage: 16,000 characters (12,000 char in 1406 expansion unit)
1401 Special Features: Multiply/Divide, Advanced Programming with Index Registers, High-Low-Equal Compare, Printer Storage, Overlap, Sterling
Power: 380Y/220V 3-phase, 50-Hertz, Total power ~13,000 Watts
Building power (208Y, 60-Hertz) is converted via a 1985 Pacific Power 18-kVA 390-G solid-state static converter, purchased from IBM San Jose. This keeps the 1401’s many ferro-resonnant transformers in tune, and tape and card 3-phase, synchronous motors turning at their proper speed.
Weight: ~ 4 tons
1401 Peripheral Devices
Primary Input-Output Peripherals:
Miscellaneous Input-Output Peripherals:
The IBM 1401 was with much self-checking in hardware, in order to improve the reliability of the input, output, and CPU processing. These features included: