IBM 704

Last updated
An IBM 704 computer at NACA in 1957 IBM Electronic Data Processing Machine - GPN-2000-001881.jpg
An IBM 704 computer at NACA in 1957
An IBM 704 computer, with IBM 727 tape drives and IBM 780 CRT display IBM 704 mainframe.gif
An IBM 704 computer, with IBM 727 tape drives and IBM 780 CRT display
IBM 704 at the Museo Nazionale Scienza e Tecnologia Leonardo da Vinci, Milan Unita centrale - Museo scienza tecnologia Milano D1260 foto.jpg
IBM 704 at the Museo Nazionale Scienza e Tecnologia Leonardo da Vinci, Milan

The IBM 704 is a large digital mainframe computer introduced by IBM in 1954. It was the first mass-produced computer with hardware for floating-point arithmetic. [1] The IBM 704 Manual of operation states: [2]

Contents

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". [3] The 704 was a significant improvement over the earlier IBM 701 in terms of architecture and implementation. Like the 701, the 704 uses 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 instead of Williams tubes, floating-point arithmetic instructions, 15-bit addressing and the addition of three index registers. To support these new features, the instructions were expanded to use the full 36-bit word. The new instruction set, which is not compatible with the 701, became the base for the "scientific architecture" subclass of the IBM 700/7000 series computers.

The 704 can execute up to 12,000 floating-point additions per second. [1] IBM produced 123 type 704 systems between 1955 and 1960. [4]

Landmarks

The programming languages FORTRAN [5] and LISP [6] were first developed for the 704, as was the SAP assembler— Symbolic Assembly Program , later distributed by SHARE as SHARE Assembly Program.

MUSIC, 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 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 was coincidentally visiting friend and colleague John Pierce at the Bell Labs Murray Hill facility at the time of this speech synthesis 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 , [7] where the HAL 9000 computer sings the same song. [8] (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 solid-state successor to the 704.)[ citation needed ]

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 gaming theory. [9] [10] He used FORTRAN to formulate the equations of his research model.

The IBM 704 at the MIT Computation Center was used as the official tracker for the Smithsonian Astrophysical Observatory Operation Moonwatch in the fall of 1957. IBM provided four staff scientists to aid Smithsonian Astrophysical Observatory scientists and mathematicians in the calculation of satellite orbits: Dr.  Giampiero Rossoni, Dr. John Greenstadt, Thomas Apple and Richard Hatch.

The IBM 704 was used for flight dynamics analyses of the NRL's Vanguard rockets. [11]

The Los Alamos Scientific Laboratory (LASL) developed an early monitor named SLAM to enable batch processing. [12]

Registers

IBM 704 vacuum-tube circuit module Circuito di calcolo per il sistema IBM 704 - Museo scienza tecnologia Milano D1207.jpg
IBM 704 vacuum-tube circuit module

The IBM 704 has a 38-bit accumulator, a 36-bit multiplier/quotient register, and three 15-bit index registers. 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 remains available in a compatibility mode of the IBM 7094. [13]

Instruction and data formats

There are two instruction formats, referred to as "Type A" and "Type B". [14] 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 2 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, 4 unused bits, a 3-bit tag field, and a 15-bit address field.

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 uses the address and decrement fields to store the head and tail of a linked list respectively. The primitive functions car ("contents of the address part of register") and cdr ("contents of the decrement part of register") were named after these fields. [15]

Memory and peripherals

Loading punch card into the IBM 711 reader 1960 Quinten Johnson.png
Loading punch card into the IBM 711 reader

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 Reader and Recorder, and one 737 Magnetic Core Storage Unit. Total mass was about 19,466 pounds (9.7 short tons; 8.8 t). [16] [17]

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 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. [18]

The 737 Magnetic Core Storage Unit serves as RAM and provides 4,096 36-bit words, the equivalent of 18,432 bytes. [19] 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. [20] [21] [22] 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. [21]

See also

Related Research Articles

IBM mainframes are large computer systems produced by IBM since 1952. During the 1960s and 1970s, IBM dominated the computer market with the 7000 series and the later System/360, followed by the System/370. Current mainframe computers in IBM's line of business computers are developments of the basic design of the System/360.

<span class="mw-page-title-main">PDP-10</span> 36-bit computer by Digital (1966–1983)

Digital Equipment Corporation (DEC)'s PDP-10, later marketed as the DECsystem-10, is a mainframe computer family manufactured beginning in 1966 and discontinued in 1983. 1970s models and beyond were marketed under the DECsystem-10 name, especially as the TOPS-10 operating system became widely used.

<span class="mw-page-title-main">IBM System/360</span> IBM mainframe computer family (1964–1977)

The IBM System/360 (S/360) is a family of mainframe computer systems that was announced by IBM on April 7, 1964, and delivered between 1965 and 1978. It was the first family of computers designed to cover both commercial and scientific applications and a complete range of applications from small to large. The design distinguished between architecture and implementation, allowing IBM to release a suite of compatible designs at different prices. All but the only partially compatible Model 44 and the most expensive systems use microcode to implement the instruction set, featuring 8-bit byte addressing and binary, decimal and hexadecimal floating-point calculations.

The GE-600 series was a family of 36-bit mainframe computers originating in the 1960s, built by General Electric (GE). When GE left the mainframe business the line was sold to Honeywell, which built similar systems into the 1990s as the division moved to Groupe Bull and then NEC.

<span class="mw-page-title-main">IBM 1401</span> 1960s decimal computer

The IBM 1401 is a variable-wordlength decimal computer that was announced by IBM on October 5, 1959. The first member of the highly successful IBM 1400 series, it was aimed at replacing unit record equipment for processing data stored on punched cards and at providing peripheral services for larger computers. The 1401 is considered by IBM to be the Ford Model-T of the computer industry due to its mass appeal. Over 12,000 units were produced and many were leased or resold after they were replaced with newer technology. The 1401 was withdrawn on February 8, 1971.

<span class="mw-page-title-main">IBM 650</span> Vacuum-tube 1950s computer system

The IBM 650 Magnetic Drum Data-Processing Machine is an early digital computer produced by IBM in the mid-1950s. It was the first mass produced computer in the world. Almost 2,000 systems were produced, the last in 1962, and it was the first computer to make a meaningful profit. The first one was installed in late 1954 and it was the most-popular computer of the 1950s.

<span class="mw-page-title-main">IBM 7090</span> Mainframe computer

The IBM 7090 is a second-generation 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 of the IBM 700/7000 series scientific computers. The first 7090 installation was in December 1959. In 1960, a typical system sold for $2.9 million or could be rented for $63,500 a month.

<span class="mw-page-title-main">IBM 701</span> Vacuum-tube computer system

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 21, 1952. It was designed and developed by Jerrier Haddad and Nathaniel Rochester and was based on the IAS machine at Princeton.

In computer programming, CAR (car) and CDR (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.

<span class="mw-page-title-main">IBM 709</span> Vacuum tube computer system

The IBM 709 was a computer system, initially announced by IBM in January 1957 and first installed during August 1958. The 709 was an improved version of its predecessor, the IBM 704, and was the third of the IBM 700/7000 series of scientific computers. The improvements included overlapped input/output, indirect addressing, and three "convert" instructions which provided support for decimal arithmetic, leading zero suppression, and several other operations. The 709 had 32,768 words of 36-bit magnetic core memory and could execute 42,000 add or subtract instructions per second. It could multiply two 36-bit integers at a rate of 5000 per second.

<span class="mw-page-title-main">IBM 700/7000 series</span> Mainframe computer systems made by IBM through the 1950s and early 1960s

The IBM 700/7000 series is a series of large-scale (mainframe) computer systems that were made by IBM through the 1950s and early 1960s. The series includes several different, incompatible processor architectures. The 700s use vacuum-tube logic and were made obsolete by the introduction of the transistorized 7000s. The 7000s, in turn, were eventually replaced with System/360, which was announced in 1964. However the 360/65, the first 360 powerful enough to replace 7000s, did not become available until November 1965. Early problems with OS/360 and the high cost of converting software kept many 7000s in service for years afterward.

<span class="mw-page-title-main">PDP-6</span> 36-bit mainframe computer (1964–1966)

The PDP-6, short for Programmed Data Processor model 6, is a computer developed by Digital Equipment Corporation (DEC) during 1963 and first delivered in the summer of 1964. It was an expansion of DEC's existing 18-bit systems to use a 36-bit data word, which was at that time a common word size for large machines like IBM mainframes. The system was constructed using the same germanium transistor-based System Module layout as DEC's earlier machines, like the PDP-1 and PDP-4.

<span class="mw-page-title-main">Index register</span> CPU register used for modifying operand addresses

An index register in a computer's CPU is a processor register used for pointing to operand addresses during the run of a program. It is useful for stepping through strings and arrays. It can also be used for holding loop iterations and counters. In some architectures it is used for read/writing blocks of memory. Depending on the architecture it may be a dedicated index register or a general-purpose register. Some instruction sets allow more than one index register to be used; in that case additional instruction fields may specify which index registers to use.

<span class="mw-page-title-main">36-bit computing</span> Computer architecture bit width

In computer architecture, 36-bit integers, memory addresses, or other data units are those that are 36 bits wide. Also, 36-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers, address buses, or data buses of that size. 36-bit computers were popular in the early mainframe computer era from the 1950s through the early 1970s.

In computer architecture, 31-bit integers, memory addresses, or other data units are those that are 31 bits wide.

<span class="mw-page-title-main">Front panel</span>

A front panel was used on early electronic computers to display and allow the alteration of the state of the machine's internal registers and memory. The front panel usually consisted of arrays of indicator lamps, digit and symbol displays, toggle switches, dials, and push buttons mounted on a sheet metal face plate. In early machines, CRTs might also be present. Prior to the development of CRT system consoles, many computers such as the IBM 1620 had console typewriters.

<span class="mw-page-title-main">Sense switch</span> A switch on the console of a computer that can be read by software

A sense switch, or program switch, is a switch on the front panel of a computer whose state can be tested by conditional branch instructions in software. Most early computers had several sense switches. They were typically used by the operator to set program options.

<span class="mw-page-title-main">IBM 711</span> Punched card reader for early computers

The IBM 711 was a punched card reader used as a peripheral device for IBM mainframe vacuum tube computers and early transistorized computers. Announced on May 21, 1952, it was first shipped with the IBM 701. Later IBM computers that used it were the IBM 704, the IBM 709, and the transistorized IBM 7090 and 7094.

Philco was one of the pioneers of transistorized computers. After the company developed the surface barrier transistor, which was much faster than previous point-contact types, it was awarded contracts for military and government computers. Commercialized derivatives of some of these designs became successful business and scientific computers. The TRANSAC Model S-1000 was released as a scientific computer. The TRANSAC S-2000 mainframe computer system was first produced in 1958, and a family of compatible machines, with increasing performance, was released over the next several years.

References

  1. 1 2 "704 Data Processing System". IBM Archives – Exhibits – IBM Mainframes – Mainframes reference room – Mainframes product profiles. IBM. 23 January 2003. Retrieved 2016-08-18.
  2. "IBM Electronic Data-Processing Machines TYPE 704" (PDF). IBM 704 Manual of Operation. International Business Machines Corporation. 1955. Retrieved 2017-12-28.
  3. Pesce, Mark (26 Feb 2015). "Assemblers were once people: My aunt did it for NASA". Software – Developer. The Register. Retrieved 2016-08-18.
  4. "History of IBM Timeline". IBM. 23 January 2003. Retrieved 2019-07-04.
  5. "History of FORTRAN and FORTRAN II". Software Preservation Group.
  6. "LISP prehistory – Summer 1956 through Summer 1958". www-formal.stanford.edu.
  7. "Arthur C. Clarke online Biography". Archived from the original on December 11, 1997.
  8. "Bell Labs: Where "HAL" First Spoke (Bell Labs Speech Synthesis website)". Archived from the original on April 1, 2014.
  9. Discovery channel documentary with interviews by Ed and Vivian Thorp
  10. Levinger, Jeff (February 10, 1961). "Math Instructor Programs Computor: Thorpe, 704 Beat Blackjack" (PDF). The Tech. 81 (1). Cambridge, MA: Massachusetts Institute of Technology: 1.
  11. "Vanguard Satellite Launching Vehicle -- An Engineering Summary".
  12. Kaisler, Stephen H. (Nov 2018). First Generation Mainframes: The IBM 700 Series. Cambridge Scholars Publishing. p. 69. ISBN   978-1-5275-0650-3 . Retrieved Apr 25, 2019.
  13. IBM 7094 Principles of Operation (PDF), IBM Systems Reference Library (fifth ed.), IBM, 1962, p. 8, A22-6703-4.
  14. John Savard. "From the IBM 704 to the IBM 7094" . Retrieved 2009-11-15.
  15. McCarthy, John (1960). "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I". Archived from the original on 2013-10-04. Retrieved 2009-02-14. p. 28.
  16. Weik, Martin H. (March 1961). "IBM 704". ed-thelen.org. A Third Survey of Domestic Electronic Digital Computing Systems.
  17. Weik, Martin H. (December 1955). "IBM-704". ed-thelen.org. A Survey of Domestic Electronic Digital Computing Systems.
  18. "IBM Archives: 704 Cathode Ray Tube Output Recorder". 23 January 2003. Retrieved 10 December 2012.
  19. "IBM Archives: IBM 737 Magnetic core storage unit". 23 January 2003. Retrieved 10 December 2012.
  20. Patrick, Robert L. "General Motors/North American Monitor for the IBM 704 Computer" (PDF). Archived from the original (PDF) on 2021-08-31.
  21. 1 2 Lorenzo, Mark Jones (2019). Abstracting Away the Machine: The History of the FORTRAN Programming Language (FORmula TRANslation). Independently published. ISBN   978-1082395949.
  22. "The Manchester Mark 1", University of Manchester, archived from the original on 21 November 2008, retrieved 24 January 2009

Further reading