IBM 704

Overview

The IBM 704 was a large-scale scientific mainframe computer introduced by IBM in 1954. It was the first mass-produced computer with hardware floating-point arithmetic and the first to use magnetic-core memory in mass production, replacing the unreliable Williams tubes of its predecessor, the IBM 701. A total of 123 units were produced between 1955 and 1960.

Key People

  • Gene Amdahl – architect (later famous for Amdahl’s Law and founding Amdahl Corporation)
  • John Backus – co-designer; led the FORTRAN development team
  • Frank Rosenblatt – implemented the first artificial neural network (Perceptron) on a 704 at Cornell Aeronautical Laboratory (1957)

Technical Specifications

Parameter Value
Word size 36 bits
Instruction length 36 bits (full word; expanded from 701’s 18 bits)
Addressing 15-bit addresses (32768 words addressable)
Number representation Signed magnitude, fixed-point and floating-point
Floating-point format Sign (1 bit) + excess-128 exponent (8 bits) + magnitude (27 bits)
Registers 38-bit accumulator; 36-bit multiplier/quotient; three 15-bit index (“decrement”) registers; instruction counter
Memory IBM 737 Magnetic Core Storage: 4096 words of 36 bits (18432 bytes equivalent)
Memory cycle time 12 microseconds
Speed ~40000 instructions/second; up to 12000 floating-point additions/second
Logic technology Vacuum tubes
Weight ~19466 pounds (8.8 metric tons)
Alphanumeric encoding 6-bit BCD, six characters per word

Instruction Set

Two formats:

  • Type A: 3-bit prefix, address, and tag fields
  • Type B: 12-bit instruction code

Instruction set was not compatible with the IBM 701.

Peripherals

  • IBM 711 Punched Card Reader
  • IBM 716 Alphabetic Printer
  • IBM 721 Punched Card Recorder
  • Five IBM 727 Magnetic Tape Units
  • IBM 753 Tape Control Unit
  • IBM 733 Magnetic Drum Reader/Recorder
  • IBM 740 Cathode Ray Tube Output Recorder (21-inch vector display with 20-second phosphor persistence)
  • Control console with 36 control switches and 36 data-input switches

Production and Cost

  • Units produced: 123 (1955–1960)
  • Purchase price: ~$2000000 (basic configuration); some configurations up to $2071600
  • Monthly rental: $33000–$45500/month depending on configuration
  • Weight: ~10 tons (basic configuration)

Design and Construction History

The 704 represented a major architectural leap from the 701:

  • Instruction size doubled from 18 to 36 bits
  • Williams tubes replaced with magnetic-core memory (far more reliable)
  • Hardware floating-point arithmetic added (previously done in software)
  • Three index registers (“decrement registers”) added

The 704 was “much more reliable than its predecessor, the IBM 701, which had a mean time between failure of around 30 minutes.” However, the 704 still failed approximately every 8 hours, which constrained early FORTRAN compiler development.

Key Innovations

Hardware Floating-Point

The 704 was the first mass-produced computer to include hardware floating-point arithmetic, a watershed for scientific computing. Single-precision floats used a sign bit, 8-bit excess-128 exponent, and 27-bit magnitude.

Magnetic-Core Memory in Production

While core memory existed earlier in experimental machines, the 704 brought it to mass production, replacing the fragile and failure-prone Williams tubes.

Index Registers

Three 15-bit index registers (called “decrement registers”) enabled efficient array processing without self-modifying code.

Programming Languages Born on the 704

FORTRAN (1957)

The IBM 704 was the target machine for the first FORTRAN compiler, developed by John Backus and his team. FORTRAN (FORmula TRANslation) became the dominant language of scientific computing for decades. The 704’s ~8-hour mean time between failure limited how large a program could be compiled in one session.

Lisp (1958)

John McCarthy’s Lisp was also first developed for the 704. The language’s fundamental primitives car (“contents of the address part of register”) and cdr (“contents of the decrement part of register”) were named directly after the 704’s instruction format fields – a naming convention that persists in Lisp to this day.

SAP (Symbolic Assembly Program)

Originally an internal IBM assembler, later distributed by the SHARE user group as the “SHARE Assembly Program.”

Computer Music and Speech Synthesis

“Daisy Bell” (1961)

At Bell Labs in Murray Hill, New Jersey, physicist John Larry Kelly Jr. and Carol Lockbaum used the vocoder speech synthesis technology on an IBM 7094 (the 704’s direct descendant) to make a computer sing “Daisy Bell” (also known as “Bicycle Built for Two”). Max Mathews provided the musical accompaniment. The recording was not real-time – Mathews had to record an hour of output, which was then sped up on tape to play back 17 seconds of melody.

Science fiction writer Arthur C. Clarke witnessed a demonstration during a visit to his friend John R. Pierce at Bell Labs. Clarke was so impressed that he incorporated the scene into both his 1968 novel and the screenplay for Stanley Kubrick’s 2001: A Space Odyssey, where the HAL 9000 computer sings “Daisy Bell” as it is shut down.

Max Mathews had earlier developed MUSIC, the first computer music program, on the IBM 704 itself.

Note on Attribution

The Daisy Bell performance is sometimes attributed to the IBM 704, but it was actually performed on the IBM 7094 in 1961. Mathews’s earlier MUSIC program development did take place on the 704.

Weather Forecasting – JNWPU

The Joint Numerical Weather Prediction Unit (JNWPU), established in 1954, was a collaborative effort between the U.S. Weather Bureau, Air Force, and Navy. The JNWPU initially used an IBM 701 (installed March 1955), and the unit’s first operational numerical weather forecast was issued on May 6, 1955. The JNWPU later upgraded to the IBM 704 for its expanded computational power.

By 1958, the JNWPU merged with the National Weather Analysis Center to form the National Meteorological Center (NMC) – the “nerve center” for U.S. weather data that evolved into today’s NCEP.

(Note: Some historical sources attribute the 1955 start to an IBM 704 installation in February 1955, but this appears to be a chronological error; the 704 was not shipped until later in 1955. The operational start was on the 701.)

Science and Applications

Satellite Tracking (1957)

The MIT Computation Center’s 704 served as the official tracker for the Smithsonian Astrophysical Observatory’s Operation Moonwatch during the fall of 1957 (the Sputnik era). IBM provided four staff scientists: Dr. Giampiero Rossoni, Dr. John Greenstadt, Thomas Apple, and Richard Hatch.

Artificial Neural Networks (1957)

Frank Rosenblatt invented and implemented the Perceptron – the first artificial neural network – on the IBM 704 at Cornell Aeronautical Laboratory.

Blackjack Research

Edward O. Thorp, an MIT mathematics instructor, used the 704 and FORTRAN to investigate gambling probabilities, developing his blackjack gaming theory.

Missile Analysis

Used for flight dynamics analyses of the U.S. Naval Research Laboratory’s Vanguard rockets.

Batch Processing

Los Alamos Scientific Laboratory developed SLAM, an early monitor system for batch processing on the 704.

Reliability

The 704 was a significant improvement over the 701:

  • IBM 701: mean time between failure ~30 minutes
  • IBM 704: mean time between failure ~8 hours

This improvement came from replacing Williams tubes with magnetic-core memory, but the vacuum-tube logic circuits still limited reliability.

Notable Anecdotes

  • The Lisp primitives car and cdr are one of computing’s most durable naming fossils – still used daily by programmers who have no idea they refer to address and decrement fields of the IBM 704 instruction word.
  • The 704’s 8-hour MTBF meant that early FORTRAN compiler runs were a race against hardware failure.
  • The 704 weighed nearly 10 tons and cost $2 million – roughly $22 million in 2025 dollars.

Current Status

One IBM 704 is preserved at the Museo Nazionale Scienza e Tecnologia Leonardo da Vinci in Milan, Italy.

Sources