The IBM 650 Magnetic Drum Data-Processing Machine is an early
digital computer
A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations ( computation) automatically. Modern digital electronic computers can perform generic sets of operations known as programs. These pro ...
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.
The 650 was marketed to business, scientific and engineering users as a general-purpose version of the
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 ...
and
IBM 702
The IBM 702 was an early generation tube-based digital computer produced by IBM in the early to mid-1950s. It was the company's response to Remington Rand's UNIVAC—the first mainframe computer to use magnetic tapes. As these machines wer ...
computers which were for scientific and business purposes respectively.
It was also marketed to users of
punched card machines who were upgrading from
calculating punches, such as the
IBM 604
The IBM 604 Electronic Calculating Punch was the world's first mass-produced electronic calculator along with its predecessor the IBM 603. , to computers.
Because of its relatively low cost and ease of
programming, the 650 was used to pioneer a wide variety of applications, from modeling submarine crew performance to teaching high school and college students computer programming. The IBM 650 became highly popular in universities, where a generation of students first learned programming.
It was announced in 1953 and in 1956 enhanced as the IBM 650 RAMAC with the addition of up to four disk storage units. Support for the 650 and its component units was withdrawn in 1969.
The 650 was a
two-address,
bi-quinary coded decimal
Bi-quinary coded decimal is a numeral encoding scheme used in many abacuses and in some early computers, including the Colossus. The term ''bi-quinary'' indicates that the code comprises both a two-state (''bi'') and a five-state (''quin''ary) ...
computer (both data and addresses were decimal), with
memory
Memory is the faculty of the mind by which data or information is encoded, stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If past events could not be remembered, ...
on a rotating magnetic
drum
The drum is a member of the percussion group of musical instruments. In the Hornbostel-Sachs classification system, it is a membranophone. Drums consist of at least one membrane, called a drumhead or drum skin, that is stretched over a she ...
.
Character
Character or Characters may refer to:
Arts, entertainment, and media Literature
* ''Character'' (novel), a 1936 Dutch novel by Ferdinand Bordewijk
* ''Characters'' (Theophrastus), a classical Greek set of character sketches attributed to The ...
support was provided by the input/output units converting punched card alphabetical and special
character encoding
Character encoding is the process of assigning numbers to Graphics, graphical character (computing), characters, especially the written characters of Language, human language, allowing them to be Data storage, stored, Data communication, transmi ...
s to/from a two-digit decimal code.
History
The first 650 was installed on December 8, 1954 in the
controller
Controller may refer to:
Occupations
* Controller or financial controller, or in government accounting comptroller, a senior accounting position
* Controller, someone who performs agent handling in espionage
* Air traffic controller, a person ...
's department of the
John Hancock Mutual Life Insurance Company in Boston.
The
IBM 7070
IBM 7070 was a decimal-architecture intermediate data-processing system that was introduced by IBM in 1958. It was part of the IBM 700/7000 series, and was based on discrete transistors rather than the vacuum tubes of the 1950s. It was the compan ...
(signed 10-digit decimal words), announced 1958, was expected to be a "common successor to at least the 650 and the
705">BM705". The
IBM 1620
The IBM 1620 was announced by IBM on October 21, 1959, and marketed as an inexpensive scientific computer. After a total production of about two thousand machines, it was withdrawn on November 19, 1970. Modified versions of the 1620 were used as ...
(variable-length decimal), introduced in 1959, addressed the lower end of the market. The
UNIVAC Solid State
The UNIVAC Solid State was a magnetic drum-based solid-state computer announced by Sperry Rand in December 1958 as a response to the IBM 650. It was one of the first computers to be (nearly) entirely solid-state, using 700 transistors, and 3000 m ...
(a two-address computer, signed 10-digit decimal words) was announced by Sperry Rand in December 1958 as a response to the 650. None of these had an instruction set that was compatible with the 650.
Hardware
The basic 650 system consisted of three units:
[IBM Archives: 650 Components]
/ref>
* IBM 650 Console Unit housed the magnetic drum storage, arithmetical device (using vacuum tubes) and the operator's console.
* IBM 655 Power Unit
* IBM 533
The IBM 533 Input-Output Unit, announced on July 2, 1953, was a punched card reader and punch that served as the primary input-output unit for the IBM 650 computer. It had two independent card paths, one for reading and one for punching. IBM car ...
or IBM 537 Card Read Punch Unit The IBM 533 had separate feeds for reading and punching; the IBM 537 had one feed, thus could read and then punch into the same card.
Weight: .
Optional units:[
* IBM 46 Tape To Card Punch, Model 3][Offline]
* IBM 47 Tape To Card Printing Punch, Model 3
* IBM 355
IBM manufactured magnetic disk storage devices from 1956 to 2003, when it sold its hard disk drive business to Hitachi. Both the hard disk drive (HDD) and floppy disk drive (FDD) were invented by IBM and as such IBM's employees were responsible for ...
Disk Storage Unit Systems with a disk unit were known as ''IBM 650 RAMAC Data Processing Systems''
* IBM 407
The IBM 407 Accounting Machine, introduced in 1949, was one of a long line of IBM tabulating machines dating back to the days of Herman Hollerith. It had a card reader and printer; a summary punch could be attached. Processing was directed by ...
Accounting Machine
* IBM 543 Card Reader Unit
* IBM 544 Card Punch Unit
* IBM 652 Control Unit (magnetic tape, disk)
* IBM 653
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 firs ...
Storage Unit (magnetic tape, disk, core storage, index registers, floating-point arithmetic
In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can be ...
)
* IBM 654 Auxiliary Alphabetic Unit
* IBM 727
The IBM 727 Magnetic Tape Unit was announced for the IBM 701 and IBM 702 on September 25, 1953. It became IBM's standard tape drive for their early vacuum-tube era computer systems. Later vacuum-tube machines and first-generation transistor co ...
Magnetic Tape Unit
* IBM 838 Inquiry Station
Main memory
Rotating drum memory
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.
For many early computers, drum memory formed the main working memory ...
provided 1,000, 2,000, or 4,000 words
A word is a basic element of language that carries an objective or practical meaning, can be used on its own, and is uninterruptible. Despite the fact that language speakers often have an intuitive grasp of what a word is, there is no consen ...
of memory at addresses 0000 to 0999, 1999, or 3999 respectively. Each word had 10 bi-quinary coded decimal digits, representing a signed 10-digit number or five characters. (Counting a bi-quinary coded digit as 7 bits, 4000 words would be equivalent to 35 kilobytes.) Words on the drums were organized in bands around the drum, fifty words per band, and 20, 40, or 80 bands for the respective models. A word could be accessed when its location on the drum surface passed under the read/write heads during rotation (rotating at 12,500 rpm
Revolutions per minute (abbreviated rpm, RPM, rev/min, r/min, or with the notation min−1) is a unit of rotational speed or rotational frequency for rotating machines.
Standards
ISO 80000-3:2019 defines a unit of rotation as the dimensionl ...
, the non-optimized average access time was 2.5 ms). Because of this timing, the second address in each instruction was the address of the next instruction. Programs could then be optimized by placing instructions at addresses that would be immediately accessible when execution of the previous instruction was completed. IBM provided a form with ten columns and 200 rows to allow programmers to keep track of where they put instructions and data. Later an assembler
Assembler may refer to:
Arts and media
* Nobukazu Takemura, avant-garde electronic musician, stage name Assembler
* Assemblers, a fictional race in the ''Star Wars'' universe
* Assemblers, an alternative name of the superhero group Champions of A ...
, SOAP (Symbolic Optimal Assembly Program), was provided that performed rough optimization.
The LGP-30
The LGP-30, standing for Librascope General Purpose and then Librascope General Precision, was an early off-the-shelf computer. It was manufactured by the Librascope company of Glendale, California (a division of General Precision Inc.), and so ...
, Bendix G-15
The Bendix G-15 is a computer introduced in 1956 by the Bendix Corporation, Computer Division, Los Angeles, California. It is about and weighs about . The G-15 has a drum memory of 2,160 29-bit words, along with 20 words used for special purpos ...
and IBM 305 RAMAC
The IBM 305 RAMAC was the first commercial computer that used a moving-head hard disk drive (magnetic disk storage) for secondary storage. The system was publicly announced on September 14, 1956, computers used vacuum tubes and drum memory, too, but they were quite different from the IBM 650.
Instructions read from the drum went to a ''program register'' (in current terminology, an instruction register
In computing, the instruction register (IR) or current instruction register (CIR) is the part of a CPU's control unit that holds the instruction currently being executed or decoded. In simple processors, each instruction to be executed is loaded ...
). Data read from the drum went through a 10-digit ''distributor.'' The 650 had a 20-digit ''accumulator'', divided into 10-digit lower and upper accumulators with a common sign. Arithmetic was performed by a one-digit adder. The console (10 digit switches, one sign switch, and 10 bi-quinary display lights), distributor, lower and upper accumulators were all addressable; 8000, 8001, 8002, 8003 respectively.
IBM 653 Storage Unit
The optional IBM 653 Storage Unit, was introduced on May 3, 1955, ultimately providing up to five features:[
* Magnetic tape controller (for IBM 727 Magnetic Tape units) (10 extra operation codes)
* Disk storage controller (1956 enhancement for then new IBM 355 Disk Storage Unit) (5 extra operation codes)
* Sixty 10-digit words of ]magnetic core
A magnetic core is a piece of magnetic material with a high magnetic permeability used to confine and guide magnetic fields in electrical, electromechanical and magnetic devices such as electromagnets, transformers, electric motors, generators, in ...
memory at addresses 9000 to 9059; a small ''fast memory'' (this device gave a memory access time of 96µs
A microsecond is a unit of time in the International System of Units (SI) equal to one millionth (0.000001 or 10−6 or ) of a second. Its symbol is μs, sometimes simplified to us when Unicode is not available.
A microsecond is equal to 1000 n ...
, a 26-fold raw improvement relative to the rotating drum), needed for a tape and disk I/O buffer. (5 extra operation codes)
* Three four-digit index register
An index register in a computer's 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 strings and arrays. It can also be used for hol ...
s at addresses 8005 to 8007; drum addresses were indexed by adding 2000, 4000 or 6000 to them, core addresses were indexed by adding 0200, 0400 or 0600 to them. If the system had the 4000 word drum then indexing was by adding 4000 to the first address for index register A, adding 4000 to the second address for index register B, and by adding 4000 to each of the two addresses for index register C (the indexing for 4000-word systems only applied to the first address). The 4000-word systems required transistorized
upright=1.4, gate (G), body (B), source (S) and drain (D) terminals. The gate is separated from the body by an insulating layer (pink).
A transistor is a semiconductor device used to Electronic amplifier, amplify or electronic switch, switch e ...
read/write circuitry for the drum memory and were available before 1963. (18 extra operation codes)
* Floating point
In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can be ...
– arithmetic instructions supported an eight-digit mantissa and two-digit characteristic (offset exponent) – MMMMMMMMCC, providing a range of ±0.00000001E-50 to ±0.99999999E+49. (seven extra operation codes)
Instruction set
The 650 instructions
Instruction or instructions may refer to:
Computing
* Instruction, one operation of a processor within a computer architecture instruction set
* Computer program, a collection of instructions
Music
* Instruction (band), a 2002 rock band from Ne ...
consisted of a two-digit operation code
In computing, an opcode (abbreviated from operation code, also known as instruction machine code, instruction code, instruction syllable, instruction parcel or opstring) is the portion of a machine language instruction that specifies the operat ...
, a four-digit data address and the four-digit address of the next instruction. The sign was ignored on the basic machine, but was used on machines with optional features. The base machine had 44 operation codes. Additional operation codes were provided for options, such as floating point, core storage, index registers and additional I/O devices. With all options installed, there were 97 operation codes.[IBM 650 CPU Extensions]
/ref>
The Table lookup (TLU) instruction could high-equal compare a referenced 10-digit word with 48 consecutive words on the same drum band in one 5ms revolution and then switch to the next band in time for the next 48 words. This feat was about one-third the speed of a one-thousand times faster binary machine in 1963 (1,500 microseconds on the IBM 7040 to 5,000 microseconds on the 650) for looking up 46 entries as long as both were programmed in assembler. There was an optional Table lookup Equal instruction, with the same performance.
The Read (RD) instruction read an 80 column card of numeric data into ten memory words; the distribution of digits to words determined by the card reader's control panel wiring. When used with the 533 Reader Punch unit's Alphabetic device, a combination of numeric and alphanumeric
Alphanumericals or alphanumeric characters are a combination of alphabetical and numerical characters. More specifically, they are the collection of Latin letters and Arabic digits. An alphanumeric code is an identifier made of alphanumeric ch ...
columns (maximum of 30 alphanumeric columns) could be read. An expansion feature allowed more alphanumeric columns but certainly not over 50, as only ten words (five characters per word) were stored on the drum by a card read operation.
The base machine operation codes were:
Notes:
The IBM 653 options could implement additional instruction codes.[
]
Sample program
This one-card program, taken from the ''650 Programming Bulletin 5, IBM, 1956, 22-6314-0'', will set most of the drum storage to minus zeros. The program includes examples of instructions being executed from the console switches and from an accumulator.
To begin, a load card is keypunched with 80 consecutive digits (the second column below) so that, when read, drum locations 0001 through 0008 contents will be as shown.
0001 0000010000
0002 0000000000-
0003 1000018003
0004 6100080007
0005 2400008003
0006 0100008000
0007 6900060005
0008 2019990003
The console digit switches (address 8000) are manually set to a Read instruction with data address 0004.
loc- op, data, next
ation , addr, instruction
, , addr
8000 RD 70 0004 xxxx Read load card into first band read area
Each drum band has a read area; these read areas are in locations 0001-0010, 0051-0060, 0101-0110 and so on. Any address in a band can be used to identify that band for a read instruction; the address 0004 identifies the 1st band. Execution begins then, from the console with the reading of the eight words on the load card into locations 0001-0008 of the first memory band. In the case of reading a load card, the "next instruction address" is taken from the data address field, not the next instruction address field (shown above as xxxx). Thus execution continues at 0004
0004 RSU 61 0008 0007 Reset entire accumulator, subtract into upper (8003) the value 2019990003
0007 LD 69 0006 0005 Load distributor with 0100008000
0005 STD 24 0000 8003 Store distributor in location 0000, next instruction is in 8003 (the upper accumulator)
Note: the moving of data or instructions from one drum location to another
requires two instructions: LD, STD.
Now a two instruction loop executes:
8003 STL 20 1999 0003 Store lower accumulator (that accumulator was reset to 0- by the RSU instruction above)
The "1999" data address is decremented, below, on each iteration.
This instruction was placed in the upper accumulator by the RSU instruction above.
Note: this instruction, now in the upper accumulator, will be decremented and then
executed again while still in the accumulator.
0003 AU 10 0001 8003 Decrement data address of the instruction in the accumulator by 1
(by adding 10000 to a negative number)
The STL's data address will, eventually, be decremented to 0003, and the AU ... instruction at 0003 will be overwritten with zeros. When that occurs (the STL's next instruction address remains 0003) execution continues as follows:
0003 NOOP 00 0000 0000 No-operation instruction, next instruction address is 0000
0000 HALT 01 0000 8000 Halt, next instruction address is the console
(this Halt instruction was stored in 0000 by the STD instruction above)
Donald Knuth
Donald Ervin Knuth ( ; born January 10, 1938) is an American computer scientist, mathematician, and professor emeritus at Stanford University. He is the 1974 recipient of the ACM Turing Award, informally considered the Nobel Prize of computer sc ...
's series of books ''The Art of Computer Programming
''The Art of Computer Programming'' (''TAOCP'') is a comprehensive monograph written by the computer scientist Donald Knuth presenting programming algorithms and their analysis. Volumes 1–5 are intended to represent the central core of compu ...
'' is famously dedicated to a 650.
Software
Software
Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work.
At the lowest programming level, executable code consists ...
written for the IBM 650 included:
; Assemblers
*Symbolic Optimal Assembly Program
The Symbolic Optimal Assembly Program (SOAP) is an Assembler (computing), assembler for the IBM 650 Magnetic Drum Data-Processing Machine, an early computer first used in 1954. It was developed by Stan Poley at the IBM Thomas J. Watson Research Ce ...
(SOAP) — An assembler
Assembler may refer to:
Arts and media
* Nobukazu Takemura, avant-garde electronic musician, stage name Assembler
* Assemblers, a fictional race in the ''Star Wars'' universe
* Assemblers, an alternative name of the superhero group Champions of A ...
*Technical Assembly System (TASS) — A macro assembler
Macro (or MACRO) may refer to:
Science and technology
* Macroscopic, subjects visible to the eye
* Macro photography, a type of close-up photography
* Image macro, a picture with text superimposed
* Monopole, Astrophysics and Cosmic Ray Observato ...
.
; Interpretive systems
* An Interpretive application virtual machine package originally published as "Complete Floating Decimal Interpretive System for the IBM 650 Magnetic Drum Calculator". This was known by several names:
** the Wolontis–Bell Labs Interpreter, the Bell System, the Bell interpreter, the Bell interpretive system,[
] or BLIS — the Bell Lab Interpretive System
** L1 and (later) L2 – known outside Bell Labs as "Bell 1" and "Bell 2", among other names (see above)
*Synthetic Programming System for Commercial Applications
; Algebraic languages / compilers
* Internal Translator (IT) — A compiler
* Revised Unified New Compiler IT Basic Language Extended (RUNCIBLE) — An extension of IT at Case
Case or CASE may refer to:
Containers
* Case (goods), a package of related merchandise
* Cartridge case or casing, a firearm cartridge component
* Bookcase, a piece of furniture used to store books
* Briefcase or attaché case, a narrow box to c ...
*FOR TRANSIT FOR TRANSIT (also incorrectly FORTRANSIT) is a subset of the FORTRAN programming language for the IBM 650 Magnetic Drum Data-Processing Machine, developed by a group led by Bob Bemer. FORTRAN, the first high-level programming language, was develope ...
— A version of Fortran which compiled to IT which in turn was compiled to SOAP
* FORTRAN
*GATE — A simple compiler with one character variable names
*IPL
The Indian Premier League (IPL), also known as TATA IPL for sponsorship reasons, is a men's T20 franchise cricket league of India. It is annually contested by ten teams based out of seven Indian cities and three Indian states. The leagu ...
— The first list processing language. The best-known version was IPL-V.
*SPACE (Simplified Programming Anyone Can Enjoy) — A business-oriented two-step compiler through SOAP
See also
* Ferranti Mark 1
The Ferranti Mark 1, also known as the Manchester Electronic Computer in its sales literature, and thus sometimes called the Manchester Ferranti, was produced by British electrical engineering firm Ferranti Ltd. It was the world's first commer ...
* History of IBM#1946–1959: Postwar recovery, rise of business computing, space exploration, the Cold War
* 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 ...
* LEO (computer)
The LEO I (Lyons Electronic Office I) was the first computer used for commercial business applications.
The prototype LEO I was modelled closely on the Cambridge EDSAC. Its construction was overseen by Oliver Standingford, Raymond Thompson and ...
* List of vacuum-tube computers
Vacuum-tube computers, now called first-generation computers, are programmable digital computers using vacuum-tube logic circuitry. They were preceded by systems using electromechanical relays and followed by systems built from discrete transis ...
* Short Code
codes, or short numbers, are short digit sequences, significantly shorter than telephone numbers, that are used to address messages in the Multimedia Messaging System (MMS) and short message service (SMS) systems of mobile network operators. I ...
* UNIVAC I
The UNIVAC I (Universal Automatic Computer I) was the first general-purpose electronic digital computer design for business application produced in the United States. It was designed principally by J. Presper Eckert and John Mauchly, the invento ...
* UNIVAC Solid State
The UNIVAC Solid State was a magnetic drum-based solid-state computer announced by Sperry Rand in December 1958 as a response to the IBM 650. It was one of the first computers to be (nearly) entirely solid-state, using 700 transistors, and 3000 m ...
announced by Sperry Rand in December 1958 as a response to the IBM 650. In June 1959, Remington Rand announced that it had written an IBM 650 emulator program to ease conversion.
Notes and references
Further reading
*
*
*
*
*
External links
Bitsavers.org: IBM 650 documents
(PDF files)
IBM Archives
Includes a chronology, technical specifications, photographs, representative customers, and applications the 650 was used for.
Video clip of IBM 650 and RAMAC in operation
alternate version
* Includes about 40 pages of IBM 650 survey detail: customers, applications, specifications, and costs.
IBM 650 “Magnetic Drum Data Processing Machine"
{{DEFAULTSORT:Ibm 650
1950s computers
650
__NOTOC__
Year 650 ( DCL) was a common year starting on Friday (link will display the full calendar) of the Julian calendar. The denomination 650 for this year has been used since the early medieval period, when the Anno Domini calendar era bec ...
Computer-related introductions in 1954
Decimal computers