
The IBM 704 is the model name of a large
digital
Digital usually refers to something using discrete digits, often binary digits.
Businesses
*Digital bank, a form of financial institution
*Digital Equipment Corporation (DEC) or Digital, a computer company
*Digital Research (DR or DRI), a software ...
mainframe computer
A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterprise ...
introduced by
IBM
International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
in 1954. Designed by
John Backus
John Warner Backus (December 3, 1924 – March 17, 2007) was an American computer scientist. He led the team that invented and implemented FORTRAN, the first widely used high-level programming language, and was the inventor of the Backus–N ...
and
Gene Amdahl
Gene Myron Amdahl (November 16, 1922 – November 10, 2015) was an American computer architect and high-tech entrepreneur, chiefly known for his work on mainframe computers at IBM and later his own companies, especially Amdahl Corporation. ...
, it was the first mass-produced computer with hardware for
floating-point arithmetic
In computing, floating-point arithmetic (FP) is arithmetic on subsets of real numbers formed by a ''significand'' (a Sign (mathematics), signed sequence of a fixed number of digits in some Radix, base) multiplied by an integer power of that ba ...
.
The IBM 704 ''Manual of operation'' states:
The type 704 Electronic Data-Processing Machine is a large-scale, high-speed electronic calculator controlled by an internally stored program of the single address type.
The 704 at that time was thus regarded as "pretty much the only computer that could handle complex math". The 704 was a significant improvement over the earlier
IBM 701 in terms of architecture and implementation. Like the 701, the 704 used
vacuum-tube logic circuitry, but increased the instruction size from
18 bits to
36 bits, the same as the memory's word size. Changes from the 701 include the use of
magnetic-core memory
In computing, magnetic-core memory is a form of random-access memory. It predominated for roughly 20 years between 1955 and 1975, and is often just called core memory, or, informally, core.
Core memory uses toroids (rings) of a hard magneti ...
instead of
Williams tube
The Williams tube, or the Williams–Kilburn tube named after inventors Frederic Calland Williams, Freddie Williams and Tom Kilburn, is an early form of computer memory. It was the first Random-access memory, random-access digital storage devi ...
s, floating-point arithmetic instructions, 15-bit addressing and the addition of three
index register
An index register in a computer's central processing unit, CPU is a processor register (or an assigned memory location) used for pointing to operand addresses during the run of a program. It is useful for stepping through String (computer science ...
s. To support these new features, the instructions were expanded to use the full 36-bit word. The new
instruction set
In computer science, an instruction set architecture (ISA) is an abstract model that generally defines how software controls the CPU in a computer or a family of computers. A device or program that executes instructions described by that ISA, s ...
, which is not compatible with the 701, became the base for the
"scientific architecture" subclass of the
IBM 700/7000 series
The IBM 700/7000 series is a series of large-scale (Mainframe computer, mainframe) computer systems that were made by IBM through the 1950s and early 1960s. The series includes several different, incompatible processor architectures. The 700s ...
computers.
The 704 could execute up to 12,000 floating-point additions per second.
IBM produced 123 type 704 systems between 1955 and 1960.
Landmarks
The programming languages
FORTRAN and
LISP
Lisp (historically LISP, an abbreviation of "list processing") is a family of programming languages with a long history and a distinctive, fully parenthesized Polish notation#Explanation, prefix notation.
Originally specified in the late 1950s, ...
were first developed for the 704, as was the SAP assembler—''
Symbolic Assembly Program'', later distributed by
SHARE as ''SHARE Assembly Program''.
MUSIC
Music is the arrangement of sound to create some combination of Musical form, form, harmony, melody, rhythm, or otherwise Musical expression, expressive content. Music is generally agreed to be a cultural universal that is present in all hum ...
, the first computer music program, was developed on the IBM 704 by
Max Mathews.
In 1962, physicist
John Larry Kelly, Jr. created one of the most famous moments in the history of
Bell Labs
Nokia Bell Labs, commonly referred to as ''Bell Labs'', is an American industrial research and development company owned by Finnish technology company Nokia. With headquarters located in Murray Hill, New Jersey, Murray Hill, New Jersey, the compa ...
by using an IBM 704 computer to synthesize speech. Kelly's voice recorder synthesizer ''
vocoder
A vocoder (, a portmanteau of ''vo''ice and en''coder'') is a category of speech coding that analyzes and synthesizes the human voice signal for audio data compression, multiplexing, voice encryption or voice transformation.
The vocoder wa ...
'' recreated the song ''
Daisy Bell'', with musical accompaniment from
Max Mathews.
Arthur C. Clarke was coincidentally visiting friend and colleague John Pierce at the Bell Labs Murray Hill facility at the time of this
speech synthesis
Speech synthesis is the artificial production of human speech. A computer system used for this purpose is called a speech synthesizer, and can be implemented in software or hardware products. A text-to-speech (TTS) system converts normal langua ...
demonstration, and Clarke was so impressed that six years later he used it in the climactic scene of his novel and screenplay for ''
2001: A Space Odyssey'',
where the ''
HAL 9000'' computer sings the same song.
(Bell Laboratories later released a recording, on ten-inch 78-RPM records, of speech and music created this way. It was apparently made with an
IBM 7090
The IBM 7090 is a second-generation Transistor computer, transistorized version of the earlier IBM 709 vacuum tube mainframe computer that was designed for "large-scale scientific and technological applications". The 7090 is the fourth member o ...
, the
solid-state successor to the 704.)
Edward O. Thorp, a math instructor at MIT, used the IBM 704 as a research tool to investigate the probabilities of winning while developing his
blackjack
Blackjack (formerly black jack or ''vingt-un'') is a casino banking game. It is the most widely played casino banking game in the world. It uses decks of 52 cards and descends from a global family of casino banking games known as " twenty-one ...
gaming theory.
[Discovery channel documentary with interviews by Ed and Vivian Thorp] He used FORTRAN to formulate the equations of his research model.
The IBM 704 at the
MIT Computation Center
The MIT Computation Center was organized in 1956 as a 10-year joint venture between the Massachusetts Institute of Technology and IBM to provide computing resources for New England universities. As part of the venture, IBM installed an IBM 704, whi ...
was used as the official tracker for the
Smithsonian Astrophysical Observatory
The Smithsonian Astrophysical Observatory (SAO) is a research institute of the Smithsonian Institution, concentrating on Astrophysics, astrophysical studies including Galactic astronomy, galactic and extragalactic astronomy, cosmology, Sun, solar ...
Operation Moonwatch
Operation Moonwatch (also known as ''Project Moonwatch'' and, more simply, as ''Moonwatch'') was an amateur science program formally initiated by the Smithsonian Astrophysical Observatory (SAO) in 1956. The SAO organized Moonwatch as part of th ...
in the fall of 1957. IBM provided four staff scientists to aid
Smithsonian Astrophysical Observatory
The Smithsonian Astrophysical Observatory (SAO) is a research institute of the Smithsonian Institution, concentrating on Astrophysics, astrophysical studies including Galactic astronomy, galactic and extragalactic astronomy, cosmology, Sun, solar ...
scientists and mathematicians in the calculation of satellite orbits: Dr. Giampiero Rossoni, Dr. John Greenstadt, Thomas Apple and Richard Hatch. The machine was also a stepping stone for
Frank Rosenblatt
Frank Rosenblatt (July 11, 1928July 11, 1971) was an American psychologist notable in the field of artificial intelligence. He is sometimes called the father of deep learning for his pioneering work on artificial neural networks.
Life and career
...
; in 1957 he started something really big. He "invented" a
Perceptron
In machine learning, the perceptron is an algorithm for supervised classification, supervised learning of binary classification, binary classifiers. A binary classifier is a function that can decide whether or not an input, represented by a vect ...
program, on the IBM 704 computer at Cornell Aeronautical Laboratory.
The IBM 704 was used for flight dynamics analyses of the
NRL's
Vanguard
The vanguard (sometimes abbreviated to van and also called the advance guard) is the leading part of an advancing military formation. It has a number of functions, including seeking out the enemy and securing ground in advance of the main force.
...
rockets.
The
Los Alamos Scientific Laboratory (LASL) developed an early
monitor
Monitor or monitor may refer to:
Places
* Monitor, Alberta
* Monitor, Indiana, town in the United States
* Monitor, Kentucky
* Monitor, Oregon, unincorporated community in the United States
* Monitor, Washington
* Monitor, Logan County, Wes ...
named ''SLAM'' to enable
batch processing
Computerized batch processing is a method of running software programs called jobs in batches automatically. While users are required to submit the jobs, no other interaction by the user is required to process the batch. Batches may automatically ...
.
Registers
The IBM 704 had a 38-bit
accumulator, a 36-bit multiplier/quotient register, and three 15-bit
index register
An index register in a computer's central processing unit, CPU is a processor register (or an assigned memory location) used for pointing to operand addresses during the run of a program. It is useful for stepping through String (computer science ...
s. The contents of the index registers are subtracted from the base address, so the index registers are also called "decrement registers". All three index registers can participate in an instruction: the 3-bit ''tag'' field in the instruction is a bit map specifying which of the registers participate in the operation. However, when more than one index register is selected, then their contents are bit-wise
ORed – not added – together before the decrement takes place. This behavior persisted in later scientific-architecture machines (such as the
IBM 709 and
IBM 7090) until the
IBM 7094. The IBM 7094, introduced in 1962, increased the number of index registers to seven and only selected one at a time; the "or" behavior remained available in a compatibility mode of the IBM 7094.
Instruction and data formats
There are two instruction formats, referred to as "Type A" and "Type B". Most instructions were of type B.
Type A instructions have, in sequence, a 3-bit ''prefix'' (instruction code), a 15-bit ''decrement'' field, a 3-bit ''tag'' field, and a 15-bit ''address'' field. There are conditional jump operations based on the values in the index registers specified in the ''tag'' field. Some instructions also subtract the ''decrement'' field from the contents of the index registers. The implementation requires that the second two bits of the instruction code be non-zero, giving a total of six possible type A instructions. One (STR, instruction code binary 101) was not implemented until the
IBM 709.
Type B instructions have, in sequence, a 12-bit instruction code (with bits 2 and 3 set to 0 to distinguish them from type A instructions), a 2-bit ''flag'' field, four unused bits, a 3-bit ''tag'' field, and a 15-bit ''address'' field.
* Fixed-point numbers are stored in binary
sign/magnitude format.
* Single-precision
floating-point
In computing, floating-point arithmetic (FP) is arithmetic on subsets of real numbers formed by a ''significand'' (a Sign (mathematics), signed sequence of a fixed number of digits in some Radix, base) multiplied by an integer power of that ba ...
numbers have a magnitude sign, an 8-bit excess-128 exponent and a 27-bit fraction (no hidden bit).
* Alphanumeric characters were usually 6-bit
BCD, packed six to a word.
The instruction set implicitly subdivides the data format into the same fields as type A instructions: prefix, decrement, tag and address. Instructions exist to modify each of these fields in a data word without changing the remainder of the word, though the ''Store Tag'' instruction was not implemented on the IBM 704.
The original implementation of
Lisp
Lisp (historically LISP, an abbreviation of "list processing") is a family of programming languages with a long history and a distinctive, fully parenthesized Polish notation#Explanation, prefix notation.
Originally specified in the late 1950s, ...
uses the ''address'' and ''decrement'' fields to store the head and tail of a
linked list
In computer science, a linked list is a linear collection of data elements whose order is not given by their physical placement in memory. Instead, each element points to the next. It is a data structure consisting of a collection of nodes whi ...
respectively. The primitive functions ''
car
A car, or an automobile, is a motor vehicle with wheels. Most definitions of cars state that they run primarily on roads, seat one to eight people, have four wheels, and mainly transport people rather than cargo. There are around one billio ...
'' ("contents of the address part of register") and ''
cdr'' ("contents of the decrement part of register") were named after these fields.
Memory and peripherals

Controls are included in the 704 for: one
711 Punched Card Reader, one
716 Alphabetic Printer, one 721 Punched Card Recorder, five
727 Magnetic Tape Units and one 753 Tape Control Unit, one 733
Magnetic Drum
Drum memory was a magnetic data storage device invented by Gustav Tauschek in 1932 in Austria. Drums were widely used in the 1950s and into the 1960s as computer memory.
Many early computers, called drum computers or drum machines, used dru ...
Reader and Recorder, and one 737 Magnetic Core Storage Unit. Total weight was about .
The 704 itself came with a control console having 36 assorted control switches or buttons and 36 data-input switches, one for each bit in a register. The control console essentially allows only setting the binary values of the registers with switches and seeing the binary state of the registers displayed in the pattern of many small neon lamps, appearing much like modern LEDs. For human interaction with the computer, programs would be entered on punched cards initially rather than at the console, and human-readable output would be directed to the printer.
The
IBM 740 Cathode Ray Tube Output Recorder was also available, which is a 21-inch
vector display with a very long
phosphor
A phosphor is a substance that exhibits the phenomenon of luminescence; it emits light when exposed to some type of radiant energy. The term is used both for fluorescent or phosphorescent substances which glow on exposure to ultraviolet or ...
persistence time of 20 seconds for human viewing, together with a 7-inch display receiving the same signal as the larger display but with a fast-decaying phosphor designed to be photographed with an attached camera.
The 737 Magnetic Core Storage Unit serves as RAM and provides 4,096 36-bit words, the equivalent of 18,432 bytes.
The 727 Magnetic Tape Units store over 5 million 6-bit characters per reel.
Reliability
The IBM 704 was much more reliable than its predecessor, the IBM 701, which had a mean time between failure of around 30 minutes. Being a vacuum-tube machine, however, the IBM 704 had very poor reliability by today's standards. On average, the machine failed around every 8 hours, comparable to the
Manchester Mark 1 in 1949.
This limited the program size that the first
Fortran compilers could successfully translate because the machine would fail before a successful compilation of a large program.
See also
*
GM-NAA I/O
*
List of vacuum-tube computers
References
Further reading
* Charles J. Bashe, Lyle R. Johnson, John H. Palmer, Emerson W. Pugh, ''IBM's Early Computers'' (MIT Press, Cambridge, 1986)
*
Steven Levy
Steven Levy (born 1951) is an American journalist and editor at large for '' Wired'' who has written extensively for publications on computers, technology, cryptography, the internet, cybersecurity, and privacy. He is the author of the 1984 boo ...
, ''
Hackers: Heroes of the Computer Revolution''
External links
Oral history interview with Gene AmdahlCharles Babbage Institute
The IT History Society (ITHS) is an organization that supports the history and scholarship of information technology by encouraging, fostering, and facilitating archival and historical research. Formerly known as the Charles Babbage Foundation, ...
, University of Minnesota, Minneapolis.
Amdahl discusses his role in the design of several computers for IBM including the
STRETCH,
IBM 701
The IBM 701 Electronic Data Processing Machine, known as the Defense Calculator while in development, was IBM’s first commercial scientific computer and its first series production mainframe computer, which was announced to the public on May 2 ...
, and IBM 704. He discusses his work with
Nathaniel Rochester and IBM's management of the design process for computers.
{{DEFAULTSORT:Ibm 704
704
7 0704
36-bit computers
Computer-related introductions in 1954