IBM 650
Encyclopedia

The IBM 650 was one of IBM’s early computer
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...

s, and the world’s first mass-produced
Mass production
Mass production is the production of large amounts of standardized products, including and especially on assembly lines...

 (photo) computer. It was announced in 1953, and over 2000 systems were produced between the first shipment in 1954 and its final manufacture in 1962. Support for the 650 and its component units was withdrawn in 1969.

The 650 is a two-address, bi-quinary coded decimal
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 and a five-state component...

 machine (both data and addresses were decimal), with memory on a rotating drum
Drum memory
Drum memory is a magnetic data storage device and was an early form of computer memory widely used in the 1950s and into the 1960s, invented by Gustav Tauschek in 1932 in Austria....

. The 650 was marketed to scientific and engineering users as well as users of existing IBM unit record equipment
Unit record equipment
Before the advent of electronic computers, data processing was performed using electromechanical devices called unit record equipment, electric accounting machines or tabulating machines. Unit record machines were as ubiquitous in industry and government in the first half of the twentieth century...

 (electro-mechanical punched card
Punched card
A punched card, punch card, IBM card, or Hollerith card is a piece of stiff paper that contains digital information represented by the presence or absence of holes in predefined positions...

-processing machines) upgrading from so-called Calculating Punches, like the IBM 604
IBM 604
The IBM 604 was a control panel programmable Electronic Calculating Punch introduced in 1948, and was a machine on which considerable expectations for the future of IBM were pinned and in which a corresponding amount of planning talent was invested...

 model, to computers proper.Because of its relatively low cost and simple programming, the 650 pioneered a wide variety of applications, from modeling submarine crew performance to teaching high school students computer programming.

Hardware

The basic 650 system consisted of three components:
  • Console Unit (IBM 650)
  • Power Unit (IBM 655)
  • Card Reader/Punch Unit (IBM 533
    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 cards were fed face down, 12-edge first...

     or IBM 537)

Optional components:
  • Disk Unit (IBM 355) Systems with a disk unit were known as a IBM RAMAC 650 Data Processing System
  • Card Reader Unit (IBM 543)
  • Card Punch Unit (IBM 544)
  • Control Unit (IBM 652) Magnetic Tape Controller
  • Auxiliary Unit (IBM 653) Core storage, index registers, floating point arithmetic
  • Auxiliary Alphabetic Unit (IBM 654)
  • Magnetic Tape Unit (IBM 727)
  • Inquiry Station (IBM 838)
  • Tape To Card Punch IBM 46 Model 3
  • Tape To Card Punch IBM 47 Model 3
  • Alphabetical Accounting Machine IBM 407
    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 was the central component of any unit record equipment shop. In the late 1950s, the 407 was adapted as an input/output device on early computers,...



The rotating drum memory
Drum memory
Drum memory is a magnetic data storage device and was an early form of computer memory widely used in the 1950s and into the 1960s, invented by Gustav Tauschek in 1932 in Austria....

 (photo) provided 2,000 signed 10-digit words of memory (5 characters per word) at addresses 0000 to 1999. A Model 4, introduced in 1959, doubled the drum capacity to 4,000 words. A word could not be accessed until its location on the drum surface passed under the read/write heads during rotation (rotating at 12,500 rpm
Revolutions per minute
Revolutions per minute is a measure of the frequency of a rotation. It annotates the number of full rotations completed in one minute around a fixed axis...

, the non-optimized average access time was 2.5 ms
Millisecond
A millisecond is a thousandth of a second.10 milliseconds are called a centisecond....

). Because of this timing restriction, the second address in each instruction word was the address of the next instruction. Programs could be optimized by placing instructions around the drum based on the expected execution time of the previous instruction. One specialized instruction, 'Table lookup', could high-equal compare a reference 10 digit word with 46 consecutive following words on the drum in one 5ms revolution and then switch to the next track in time for the next 46 words (there were fifty words per track/revolution). This feat was about one third the speed of a one-thousand times faster binary machine in 1963 (1500 microsecs on the IBM 7040 to 5000 microsecs on the IBM 650 for looking up 46 entries as long as both were programmed in assembler. One higher level language made the IBM 7040 dramatically slower at table-look-up.
An upgraded 4,000 word drum became available in 1959.
The optional Auxiliary Unit (IBM 653), was introduced on May 3, 1955, providing up to three features:
  • 60 10-digit words of magnetic core memory at addresses 9000 to 9059; a small fast memory (this device gave a memory access time of 96µs
    Microsecond
    A microsecond is an SI unit of time equal to one millionth of a second. Its symbol is µs.A microsecond is equal to 1000 nanoseconds or 1/1000 millisecond...

    , a 26-fold raw improvement relative to the rotating drum), needed for a tape and disk I/O buffer
  • 3 4-digit 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 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 memory drum then indexing was by adding 4000 to the first address for index reg A, adding 4000 to the second address for index reg B, and by adding 4000 to each of the two addresses for index reg C. (the indexing for 4000 word systems only applied to the first address). The 4000 word systems required transistorized
    Transistor computer
    A transistor computer is a computer which uses discrete transistors instead of vacuum tubes. The "first generation" of electronic computers used vacuum tubes, which generated large amounts of heat, were bulky, and were unreliable. A "second generation" of computers, through the late 1950s and...

     read/write circuitry for the drum memory and were available before 1963.
  • 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 instructions with 8 digit mantissa and 2 digit characteristic (offset exponent) – MMMMMMMMCC, providing a range of ±0.00000001E-50 to ±0.99999999E+49

The IBM 533 reader punch unit could only read a maximum of 26 columns of alphanumerics from cards in mostly fixed columns. An expansion allowed more but certainly not over 50, as only ten words could be read from a card (5 characters per word).

The IBM 650 (pictured here) at the Haus zur Geschichte der IBM Datenverarbeitung (House for the History of IBM
Data Processing), Sindelfingen
Sindelfingen
Sindelfingen is a German town near Stuttgart at the headwaters of the Schwippe that is the site of a Mercedes-Benz assembly plant.-History:* 1155 First documented mention of Sindelfingen...

, is still running and will process an income tax program of the time, with input and output on punched cards.

The IBM 7070
IBM 7070
IBM 7070 was a decimal architecture intermediate data processing system that was introduced by IBM in June 1960. 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 company's first transistorized stored-program...

, announced 1960, was designed to provide a "transistorized IBM 650" upgrade path. The IBM 1620
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...

, introduced in 1959, addressed the lower end of the market. Both were decimal machines, but neither were instruction set compatible.

Instruction set

IBM 650 instructions consisted of a two digit op code, a four digit data address and the four digit address of the next instruction. The sign was ignored. The 650 had a 20 digit accumulator, divided into 10 digit upper and lower sections with a common sign. Data read from the drum went through a 10 digit distributer. Instructions went to a program register. Arithmetic was performed by a one digit adder. Additional instructions were provided for options, such as floating point, core storage, index registers and additional I/O devices. The base machine had 42 op codes. With all options installed, there were 97 op codes.
70 RD Read
71 PCH Punch
69 LD Load distributor
24 STD Store distributor
10 AU Add to upper
15 AL Add to lower
11 SU Subtract from upper
16 SL Subtract from lower
60 RAU Reset (entire accumulator) and add into upper
65 RAL Reset and add into lower
61 RSU Reset and subtract into upper
66 RSL Reset and subtract into lower
20 STL Store lower into memory
21 STU Store upper into memory *
22 STDA Store lower data address
23 STIA Store lower instruction address
17 AABL Add absolute to lower
67 RAABL Reset and add absolute to lower
18 SABL Subtract absolute from lower
68 RSABL Reset and subtract absolute into lower
19 MULT Multiply
14 DIV Divide
64 DIVRU Divide and reset upper
44 BRNZU Branch on non-zero in upper
45 BRNZ Branch on (accumulator) non-zero
46 BRMIN Branch on minus
47 BROV Branch on overflow
90-99 BRD Branch on 8 in distributor positions 1-10 **
30 SRT Shift (accumulator) right
31 SRD Shift and round
35 SLT Shift left
36 SCT Shift left and count ***
84 TLU Table lookup
00 No-Op No operation
01 Stop Stop if console switch is set to stop, otherwise no-op


Notes:
  • * Value stored takes sign of accumulator, except after a divide operation; then sign of remainder is stored.
  • ** Used to allow 533 control panel to signal CPU.
  • *** Counts high-order zeros in upper accumulator

Software

Software included:
  • BLIS (Bell Laboratories
    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...

     Interpretive System), which used a numeric-only three-address approach
  • IPL the first list processing language. The best known version was IPL-V.
  • SPACE (Simplified Programming Anyone Can Enjoy) which was a business-oriented two-step compiler (through SOAP)
  • Symbolic Optimal Assembly Program, A version of Fortran
    Fortran
    Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...

    which compiled to IT which in turn was compiled to SOAP.
    • GATE, a simple compiler with one character variable names
    • Revised Unified New Compiler IT Basic Language Extended (RUNCIBLE)
    • Technical Assembly System (TASS), a macro assembler.

    External links


    The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK