IBM 704
Encyclopedia
The IBM 704, the first mass-produced computer
with floating point
arithmetic hardware, was introduced by IBM
in 1954. The 704 was significantly improved over the IBM 701
in terms of architecture as well as implementations which were not compatible with its predecessor.
Changes from the 701 included the use of core memory (instead of Williams tube
s) and addition of three index register
s. To support these new features, the instructions were expanded to use the full 36-bit word. The new instruction set
became the base for the IBM 700/7000 series scientific computers.
To quote the IBM 704 Manual of operation (see external links below):
IBM stated that the device was capable of executing up to 40,000 instructions per second. IBM sold 123 type 704 systems from 1955 to 1960.
The programming languages FORTRAN
and LISP
were first developed for the 704, as was MUSIC
, the first computer music program by Max Mathews
.
In 1962 physicist John Larry Kelly, Jr
created one of the most famous moments in the history of Bell Labs
by using an IBM 704 computer to synthesize speech. Kelly's voice recorder synthesizer vocoder
recreated the song Daisy Bell
, with musical accompaniment from Max Mathews
. Arthur C. Clarke
of 2001: A Space Odyssey
fame was coincidentally visiting friend and colleague John Pierce at the Bell Labs Murray Hill facility at the time of this remarkable speech synthesis
demonstration and was so impressed that 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.
Ed Thorp
also used the IBM 704 as a research tool, investigating the probabilities of winning while developing his blackjack
gaming theory. He used Fortran to formulate the equations of his research model.
The IBM 704 was used as the official tracker for the Smithsonian Astrophysical Observatory
Operation Moonwatch
in the fall of 1957. See The M.I.T. Computation Center and Operation Moonwatch
. IBM provided four staff scientists to aid Smithsonian Astrophysical Observatory
scientists and mathematicians in the calculation of satellite orbits: Dr. Giampiero Rossoni, Satellite Coordinator of IBM Applied Science (Cambridge), Dr. John Greenstadt, Thomas Apple and Richard Hatch.
whose contents were subtracted from the base address instead of being added to it. All three decrement registers could participate in an instruction: the 3 bit tag field in the instruction was a bit map specifying which of the registers would participate in the operation.
Type A instructions had, in sequence, a three bit prefix (instruction code), a 15 bit decrement field, a 3 bit tag field, and a 15 bit address field. They were conditional jump operations based on the values in the decrement registers specified in the tag field. Some also subtracted the decrement field from the contents of the decrement registers. The implementation required 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 had, in sequence, a 12 bit instruction code (with the second and third bits set to 0 to distinguish them from type A instructions), a two bit flag field, four unused bits, a 3 bit tag field, and a 15 bit address field.
The instruction set implicitly subdivided the data format into the same fields as type A instructions: prefix, decrement, tag and address. Instructions existed 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 Lisp used the address and decrement fields to store, respectively, the head and tail of a linked list
. The primitive functions car
("Contents of Address part of Register number") and cdr
("Contents of Decrement part of Register number") were named after these fields. The meaning of the term "Register number" is unclear; possibly it refers to an old use of the word "Register" to mean "memory location". The frequently seen claim that they stand for "contents of address register" and "contents of decrement register" does not match the implementation, and the IBM 704 did not have a programmer-accessible address register.
Computer
A computer is a programmable machine designed to sequentially and automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem...
with floating point
Floating point
In computing, floating point describes a method of representing real numbers in a way that can support a wide range of values. Numbers are, in general, represented approximately to a fixed number of significant digits and scaled using an exponent. The base for the scaling is normally 2, 10 or 16...
arithmetic hardware, was introduced by IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
in 1954. The 704 was significantly improved over the IBM 701
IBM 701
The IBM 701, known as the Defense Calculator while in development, was announced to the public on April 29, 1952, and was IBM’s first commercial scientific computer...
in terms of architecture as well as implementations which were not compatible with its predecessor.
Changes from the 701 included the use of core memory (instead of Williams tube
Williams tube
The Williams tube or the Williams-Kilburn tube , developed in about 1946 or 1947, was a cathode ray tube used to electronically store binary data....
s) and addition of three index register
Index register
An index registerCommonly known as a B-line in early British computers. in a computer's CPU is a processor register used for modifying operand addresses during the run of a program, typically for doing vector/array operations...
s. To support these new features, the instructions were expanded to use the full 36-bit word. The new instruction set
Instruction set
An instruction set, or instruction set architecture , is the part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O...
became the base for the IBM 700/7000 series scientific computers.
To quote the IBM 704 Manual of operation (see external links below):
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.
IBM stated that the device was capable of executing up to 40,000 instructions per second. IBM sold 123 type 704 systems from 1955 to 1960.
The programming languages FORTRAN
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...
and LISP
Lisp
A lisp is a speech impediment, historically also known as sigmatism. Stereotypically, people with a lisp are unable to pronounce sibilants , and replace them with interdentals , though there are actually several kinds of lisp...
were first developed for the 704, as was MUSIC
MUSIC-N
MUSIC-N refers to a family of computer music programs and programming languages descended from or influenced by MUSIC, a program written by Max Mathews in 1957 at Bell Labs. MUSIC was the first computer program for generating digital audio waveforms through direct synthesis...
, the first computer music program by Max Mathews
Max Mathews
Max Vernon Mathews was a pioneer in the world of computer music.-Biography:...
.
In 1962 physicist John Larry Kelly, Jr
John Larry Kelly, Jr
John Larry Kelly, Jr. , was a scientist who worked at Bell Labs. He is best known for formulating the Kelly criterion, an algorithm for maximally investing money....
created one of the most famous moments in the history of Bell Labs
Bell Labs
Bell Laboratories is the research and development subsidiary of the French-owned Alcatel-Lucent and previously of the American Telephone & Telegraph Company , half-owned through its Western Electric manufacturing subsidiary.Bell Laboratories operates its...
by using an IBM 704 computer to synthesize speech. Kelly's voice recorder synthesizer vocoder
Vocoder
A vocoder is an analysis/synthesis system, mostly used for speech. In the encoder, the input is passed through a multiband filter, each band is passed through an envelope follower, and the control signals from the envelope followers are communicated to the decoder...
recreated the song Daisy Bell
Daisy Bell
"Daisy Bell" is a popular song with the well-known chorus "Daisy, Daisy/Give me your answer do/I'm half crazy/all for the love of you" as well as the line "...a bicycle built for two".-History:"Daisy Bell" was composed by Harry Dacre in 1892...
, with musical accompaniment from Max Mathews
Max Mathews
Max Vernon Mathews was a pioneer in the world of computer music.-Biography:...
. Arthur C. Clarke
Arthur C. Clarke
Sir Arthur Charles Clarke, CBE, FRAS was a British science fiction author, inventor, and futurist, famous for his short stories and novels, among them 2001: A Space Odyssey, and as a host and commentator in the British television series Mysterious World. For many years, Robert A. Heinlein,...
of 2001: A Space Odyssey
2001: A Space Odyssey (film)
2001: A Space Odyssey is a 1968 epic science fiction film produced and directed by Stanley Kubrick, and co-written by Kubrick and Arthur C. Clarke, partially inspired by Clarke's short story The Sentinel...
fame was coincidentally visiting friend and colleague John Pierce at the Bell Labs Murray Hill facility at the time of this remarkable speech synthesis
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...
demonstration and was so impressed that he used it in the climactic scene of his novel and screenplay for 2001: A Space Odyssey, where the HAL 9000
HAL 9000
HAL 9000 is the antagonist in Arthur C. Clarke's science fiction Space Odyssey saga. HAL is an artificial intelligence that interacts with the astronaut crew of the Discovery One spacecraft, usually represented as a red television-camera eye found throughout the ship...
computer sings the same song.
Ed Thorp
Edward O. Thorp
Edward Oakley Thorp is an American mathematics professor, author, hedge fund manager, and blackjack player. He was a pioneer in modern applications of probability theory, including the harnessing of very small correlations for reliable financial gain.He was the author of Beat the Dealer, the first...
also used the IBM 704 as a research tool, investigating the probabilities of winning while developing his blackjack
Blackjack
Blackjack, also known as Twenty-one or Vingt-et-un , is the most widely played casino banking game in the world...
gaming theory. He used Fortran to formulate the equations of his research model.
The IBM 704 was used as the official tracker for the Smithsonian Astrophysical Observatory
Smithsonian Astrophysical Observatory
The Smithsonian Astrophysical Observatory is a research institute of the Smithsonian Institution headquartered in Cambridge, Massachusetts, where it is joined with the Harvard College Observatory to form the Harvard-Smithsonian Center for Astrophysics .-History:The SAO was founded in 1890 by...
Operation Moonwatch
Operation Moonwatch
Operation Moonwatch was an amateur science program formally initiated by the Smithsonian Astrophysical Observatory in 1956 . The SAO organized Moonwatch as part of the International Geophysical Year which was probably the largest single scientific undertaking in history...
in the fall of 1957. See The M.I.T. Computation Center and Operation Moonwatch
The M.I.T. Computation Center and Operation Moonwatch
-History of the M.I.T. Computation Center:The M.I.T. Computation Center, USA, organized in 1956, housed an IBM 704 up until 1960.-The M.I.T. Computation Center and Operation Moonwatch:...
. IBM provided four staff scientists to aid Smithsonian Astrophysical Observatory
Smithsonian Astrophysical Observatory
The Smithsonian Astrophysical Observatory is a research institute of the Smithsonian Institution headquartered in Cambridge, Massachusetts, where it is joined with the Harvard College Observatory to form the Harvard-Smithsonian Center for Astrophysics .-History:The SAO was founded in 1890 by...
scientists and mathematicians in the calculation of satellite orbits: Dr. Giampiero Rossoni, Satellite Coordinator of IBM Applied Science (Cambridge), Dr. John Greenstadt, Thomas Apple and Richard Hatch.
Registers
The IBM 704 had a 38 bit accumulator, a 36 bit multiplier quotient register, and three 15 bit decrement registers. The decrement registers were a kind of index registerIndex register
An index registerCommonly known as a B-line in early British computers. in a computer's CPU is a processor register used for modifying operand addresses during the run of a program, typically for doing vector/array operations...
whose contents were subtracted from the base address instead of being added to it. All three decrement registers could participate in an instruction: the 3 bit tag field in the instruction was a bit map specifying which of the registers would participate in the operation.
Instruction and data formats
There were two instruction formats, referred to as "Type A" and "Type B". Most instructions were of type B.Type A instructions had, in sequence, a three bit prefix (instruction code), a 15 bit decrement field, a 3 bit tag field, and a 15 bit address field. They were conditional jump operations based on the values in the decrement registers specified in the tag field. Some also subtracted the decrement field from the contents of the decrement registers. The implementation required 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
IBM 709
The IBM 709 was an early computer system introduced by IBM in August, 1958. It was an improved version of the IBM 704 and the second member of the IBM 700/7000 series of scientific computers....
.
Type B instructions had, in sequence, a 12 bit instruction code (with the second and third bits set to 0 to distinguish them from type A instructions), a two bit flag field, four unused bits, a 3 bit tag field, and a 15 bit address field.
- Fixed point numbers were stored in binary sign/magnitude formatComputer numbering formatsA computer number format is the internal representation of numeric values in digital computer and calculator hardware and software.-Bits:The concept of a bit can be understood as a value of either 1 or 0, on or off, yes or no, true or false, or encoded by a switch or toggle of some kind...
. - Single precision floating pointFloating pointIn computing, floating point describes a method of representing real numbers in a way that can support a wide range of values. Numbers are, in general, represented approximately to a fixed number of significant digits and scaled using an exponent. The base for the scaling is normally 2, 10 or 16...
numbers had a magnitude sign, an 8-bit excess-128 exponent and a 27 bit magnitude - Alphanumeric characters were 6-bit BCD, packed six to a word.
The instruction set implicitly subdivided the data format into the same fields as type A instructions: prefix, decrement, tag and address. Instructions existed 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 Lisp used the address and decrement fields to store, respectively, the head and tail of a linked list
Linked list
In computer science, a linked list is a data structure consisting of a group of nodes which together represent a sequence. Under the simplest form, each node is composed of a datum and a reference to the next node in the sequence; more complex variants add additional links...
. The primitive functions car
Car and cdr
car and cdr are primitive operations on cons cells introduced in the Lisp programming language. A cons cell is composed of two pointers; the car operation extracts the first pointer, and the cdr operation extracts the second.Thus, the expression evaluates to x, and evaluates to...
("Contents of Address part of Register number") and cdr
Car and cdr
car and cdr are primitive operations on cons cells introduced in the Lisp programming language. A cons cell is composed of two pointers; the car operation extracts the first pointer, and the cdr operation extracts the second.Thus, the expression evaluates to x, and evaluates to...
("Contents of Decrement part of Register number") were named after these fields. The meaning of the term "Register number" is unclear; possibly it refers to an old use of the word "Register" to mean "memory location". The frequently seen claim that they stand for "contents of address register" and "contents of decrement register" does not match the implementation, and the IBM 704 did not have a programmer-accessible address register.
Further reading
- Charles J. Bashe, Lyle R. Johnson, John H. Palmer, Emerson W. Pugh, IBM's Early Computers (MIT Press, Cambridge, 1986)
- Steven LevySteven LevySteven Levy is an American journalist who has written several books on computers, technology, cryptography, the Internet, cybersecurity, and privacy.-Career:...
, Hackers: Heroes of the Computer RevolutionHackers: Heroes of the Computer RevolutionHackers: Heroes of the Computer Revolution is a book by Steven Levy about hacker culture. It was published in 1984 in Garden City, New York by Anchor Press/Doubleday... - IBM Type 704 Manual of operation, Form 24-66661-1, IBM, 1956
External links
- Oral history interview with Gene Amdahl Charles Babbage InstituteCharles Babbage InstituteThe Charles Babbage Institute is a research center at the University of Minnesota specializing in the history of information technology, particularly the history since 1935 of digital computing, programming/software, and computer networking....
, University of Minnesota, Minneapolis. AmdahlGene AmdahlGene Myron Amdahl is a Norwegian-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...
discusses his role in the design of several computers for IBM including the STRETCH, IBM 701IBM 701The IBM 701, known as the Defense Calculator while in development, was announced to the public on April 29, 1952, and was IBM’s first commercial scientific computer...
, and IBM 704. He discusses his work with Nathaniel RochesterNathaniel Rochester (computer scientist)Nathan Rochester designed the IBM 701, wrote the first assembler and participated in the founding of the field of artificial intelligence.- Early work :...
and IBM's management of the design process for computers. - Applications and installations of the IBM 704 Data Processing System – From A Third Survey of Domestic Electronic Digital Computing Systems, Report No. 1115, March 1961, by Martin H. Weik. Ballistic Research Laboratories, Aberdeen Proving Ground, Maryland. Text format conversion of source paper document at the Computer History Museum (http://www.computerhistory.org).
- IBM 704 Manual of Operation