The
IBM 704, the first mass-produced
computerA 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 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...
arithmetic hardware, was introduced by
IBMInternational 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 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...
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 tubeThe 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 registerAn 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 setAn 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
FORTRANFortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...
and
LISPA 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
MUSICMUSIC-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 MathewsMax Vernon Mathews was a pioneer in the world of computer music.-Biography:...
.
In 1962 physicist
John Larry Kelly, JrJohn 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 LabsBell 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
vocoderA 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" 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 MathewsMax Vernon Mathews was a pioneer in the world of computer music.-Biography:...
.
Arthur C. ClarkeSir 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 Odyssey2001: 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 synthesisSpeech 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 9000HAL 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 ThorpEdward 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
blackjackBlackjack, 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 ObservatoryThe 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 MoonwatchOperation 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-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 ObservatoryThe 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 registerAn 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 709The 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 format
A 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 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...
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 listIn 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
carcar 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
cdrcar 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 Levy
Steven 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 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 Institute
The 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 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 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 RochesterNathan 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