fbpx
Wikipedia

IBM 650

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

IBM 650
Part of the first IBM 650 computer in Norway (1959), known as "EMMA". 650 Console Unit (right, an exterior side panel is open), 533 Card Read Punch unit (middle, input-output). 655 Power Unit is missing. Punched card sorter (left, not part of the 650). Now at Norwegian Museum of Science and Technology in Oslo.
TypeDigital computer
Release date1954; 70 years ago (1954)
PredecessorIBM CPC (604, 605)
SuccessorIBM 7070 (hi-end)
IBM 1620 (low-end)
RelatedIBM 701, IBM 702;
IBM 608
IBM 650 at Texas A&M University. The IBM 533 Card Read Punch unit is on the right.
IBM 650 console panel, showing bi-quinary indicators.[1]: p. 47ff  Note wear marks around frequently used switches, lower right. Collection of the Museo Nacional de Ciencia y Tecnología. A Coruña (Galicia, Spain).
Close-up of bi-quinary indicators
Memory drum from an IBM 650
Side view of an IBM 650 Console Unit. First computer in Spain (1959) now at National Museum of Science and Technology in A Coruña

The 650 was offered to business, scientific and engineering users as a slower and less expensive alternative to the IBM 701 and IBM 702 computers, which were for scientific and business purposes respectively.[7] It was also marketed to users of punched card machines who were upgrading from calculating punches, such as the IBM 604, to computers.[1]: 5 [9]

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[10] 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.[11]

It was announced in 1953 and in 1956 enhanced as the IBM 650 RAMAC with the addition of up to four disk storage units.[12] The purchase price for the bare IBM 650 console, without the reader punch unit, was $150,000 in 1959,[13] or roughly $1,500,000 as of 2023. Support for the 650 and its component units was withdrawn in 1969.

The 650 was a two-address, bi-quinary coded decimal computer (both data and addresses were decimal), with memory on a rotating magnetic drum. Character support was provided by the input/output units converting punched card alphabetical and special character encodings to/from a two-digit decimal code.

The 650 was clocked at a frequency of 125 kHz.[14] It could add or subtract in 1.63 milliseconds, multiply in 12.96 ms, and divide in 16.90 ms. The average speed of the 650 was estimated to be around 27.6 ms per instruction, or roughly 40 instructions per second.[15]

Donald Knuth's series of books The Art of Computer Programming is famously dedicated to a 650.[15]

History edit

The first 650 was installed on December 8, 1954 in the controller's department of the John Hancock Mutual Life Insurance Company in Boston.[16]

The IBM 7070 (signed 10-digit decimal words), announced 1958, was expected to be a "common successor to at least the 650 and the [IBM] 705".[17] The IBM 1620 (variable-length decimal), introduced in 1959, addressed the lower end of the market. The UNIVAC Solid State (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 edit

The basic 650 system consisted of three units:[18]

  • IBM 650 Console Unit[19] housed the magnetic drum storage, arithmetical device (using vacuum tubes) and the operator's console.
  • IBM 655 Power Unit[20]
  • IBM 533 or IBM 537 Card Read Punch Unit[21][22][23] 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: 5,400–6,263 pounds (2.7–3.1 short tons; 2.4–2.8 t).[24][25]

Optional units:[18]

  • IBM 46 Tape To Card Punch, Model 3[18]
  • IBM 47 Tape To Card Printing Punch, Model 3[18]
  • IBM 355 Disk Storage Unit[26] Systems with a disk unit were known as IBM 650 RAMAC Data Processing Systems
  • IBM 407 Accounting Machine[27]
  • IBM 543 Card Reader Unit
  • IBM 544 Card Punch Unit
  • IBM 652 Control Unit (magnetic tape, disk)[28]
  • IBM 653 Storage Unit (magnetic tape, disk, core storage, index registers, floating-point arithmetic)[29]
  • IBM 654 Auxiliary Alphabetic Unit
  • IBM 727 Magnetic Tape Unit
  • IBM 838 Inquiry Station[30]

Main memory edit

Rotating drum memory provided 1,000, 2,000, or 4,000 words 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 seven bits, 4000 words would be equivalent to 35 kilobytes.)[31][32] 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, 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, SOAP (Symbolic Optimal Assembly Program), was provided that performed rough optimization.[33][34]

The LGP-30, Bendix G-15 and IBM 305 RAMAC 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). 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 edit

The optional IBM 653 Storage Unit, was introduced on May 3, 1955, ultimately providing up to five features:[35]

  • 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) (five extra operation codes)
  • Sixty 10-digit words of magnetic core memory at addresses 9000 to 9059. This small fast memory had an access time of 96μs, a 26-fold improvement relative to the rotating drum. This feature added five operation codes and was needed as a buffer for tape and disk I/O. The 60 words could also be used by programs to speed up inner loops and table lookups.
  • Three four-digit index registers 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 read/write circuitry for the drum memory and were available before 1963. (18 extra operation codes)
  • Floating point – 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 edit

The 650 instructions consisted of a two-digit operation code, 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.[35]

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 columns (maximum of 30 alphanumeric columns) could be read.[1] 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.[citation needed]

 
IBM 650 at Texas A&M, opened up to show rear of front panel, vacuum tube modules and storage drum
 
Vacuum tube circuit module of type used in the 650
 
A classroom in 1960 at the Bronx High School of Science with IBM 650 instruction chart above blackboard, upper right

The base machine operation codes were:[36]

17 AABL Add absolute to lower accumulator
15 AL Add to lower accumulator
10 AU Add to upper accumulator
45 BRNZ Branch on accumulator non-zero
46 BRMIN Branch on minus accumulator
44 BRNZU Branch on non-zero in upper accumulator
47 BROV Branch on overflow
90-99 BRD Branch on 8 in distributor positions 1-10[a]
14 DIV Divide
64 DIVRU Divide and reset upper accumulator
69 LD Load distributor
19 MULT Multiply
00 NO-OP No operation
71 PCH Punch a card
70 RD Read a card
67 RAABL Reset accumulator and add absolute to lower accumulator
65 RAL Reset accumulator and add to lower accumulator
60 RAU Reset accumulator and add to upper accumulator
68 RSABL Reset accumulator and subtract absolute from lower accumulator
66 RSL Reset accumulator and subtract from lower accumulator
61 RSU Reset accumulator and subtract from upper accumulator
35 SLT Shift accumulator left
36 SCT Shift accumulator left and count[b]
30 SRT Shift accumulator right
31 SRD Shift accumulator right and round accumulator
01 STOP Stop if console switch is set to stop, otherwise continue as a NO-OP
24 STD Store distributor into memory
22 STDA Store lower accumulator data address into distributor

Then store distributor into memory

23 STIA Store lower accumulator instruction address into distributor

Then store distributor into memory

20 STL Store lower accumulator into memory
21 STU Store upper accumulator into memory.[c]
18 SABL Subtract absolute from lower accumulator
16 SL Subtract from lower accumulator
11 SU Subtract from upper accumulator
84 TLU Table lookup
  1. ^ Used to allow 533 control panel to signal CPU.
  2. ^ Counts high-order zeros in upper accumulator.
  3. ^ Value stored takes sign of accumulator, except after a divide operation; then sign of remainder is stored.

Notes:

The IBM 653 options could implement additional instruction codes.[35]

Sample program edit

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

 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 first 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) 

Software edit

 
Student program from 1961 written in IBM 650 machine language, based on an exercise in Andree's book[38]

The 650 instruction set is simple enough that small programs could be written in machine language and this was common for student exercises.[38] There was a single-instruction-per-card format that could be loaded directly into the machine and executed.

Machine language was awkward for large programs and, over time, a variety of programming languages and tools were written for the IBM 650. These included:

Assemblers
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,[39] or BLIS — the Bell Lab Interpretive System[40]
    • L1 and (later) L2[41][42] – known outside Bell Labs as "Bell 1" and "Bell 2", among other names (see above)
  • Synthetic Programming System for Commercial Applications [43]
Algebraic languages / compilers
  • Internal Translator (IT) — A compiler[44]
  • Revised Unified New Compiler IT Basic Language Extended (RUNCIBLE) — An extension of IT at Case[45]
  • FOR TRANSIT — A version of Fortran which compiled to IT which in turn was compiled to SOAP[46]
  • FORTRAN[47]
  • GATE — A simple compiler with one character variable names
  • IPL — 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 edit

Notes and references edit

  1. ^ a b c IBM 650 Magnetic Drum Data-Processing Machine: Manual of Operation (PDF). IBM. 1955. 22-6060-1.
  2. ^ . IBM. US. Archived from the original on 2023-04-09. Retrieved September 5, 2019.
  3. ^ . IBM. US. Archived from the original on 2023-10-23. Retrieved September 5, 2019.
  4. ^ "History Of Computers 1937-2011". Old Dominion University. Retrieved June 22, 2021.
  5. ^ "IBM in the Computer Era". The Minnesota Computing History Project. 28 June 2018. Retrieved June 21, 2021.
  6. ^ Pugh, Emerson W. (1995). Building IBM: Shaping an Industry and Its Technology. MIT Press. p. 182. ISBN 978-0-262-16147-3.
  7. ^ a b c "The IBM 650 Magnetic Drum Calculator". Columbia.edu.
  8. ^ Davis, Gordon B. (1971). Introduction to Electronic Computers (Second ed.). New York: McGraw-Hill. p. 10. ISBN 978-0-070-15821-4.
  9. ^ . IBM. Archived from the original on 2023-07-25.
  10. ^ Gray, Wayne D. (2007). Integrated Models of Cognition Systems. New York: Oxford University Press. p. 36. ISBN 978-0-19-518919-3.
  11. ^ "IBM 650 magnetic drum calculator introduced". Computerhistory.
  12. ^ . IBM. Archived from the original on 2023-06-09.
  13. ^ . IBM. 2003-01-23. Archived from the original on 2023-10-23. Retrieved 2023-07-25.
  14. ^ Royse, David (1957). "The IBM 650 RAMAC system disk storage operation". Papers presented at the February 26-28, 1957, western joint computer conference: Techniques for reliability on - IRE-AIEE-ACM '57 (Western). ACM Press. pp. 43–49. doi:10.1145/1455567.1455576.
  15. ^ a b "Knuth Biographic Notes". softpanorama.org. Retrieved 2023-07-25.
  16. ^ . Archived from the original on 2023-04-17.
  17. ^ Bashe, Charles J.; Johnson, Lyle R; Palmer, John H.; Pugh, Emerson W. (1986). IBM's Early Computers. MIT. p. 473. ISBN 0-262-02225-7.
  18. ^ a b c d . Archived from the original on 2023-07-25.
  19. ^ . IBM. Archived from the original on 2023-10-23.
  20. ^ . IBM. Archived from the original on 2023-04-08.
  21. ^ Other IBM names for the 533 included Input-Output Unit and Read-Punch Unit.
  22. ^ . IBM. Archived from the original on 2023-04-08.
  23. ^ . IBM. Archived from the original on 2023-04-09.
  24. ^ Physical Planning Installation Manual 650 System (PDF). IBM. October 1, 1957. p. 32. Retrieved May 31, 2018 – via Bitsavers.
  25. ^ Customer Engineering Manual of Instruction (PDF). IBM. 1956. p. I-17. Retrieved May 31, 2018 – via Bitsavers.
  26. ^ . IBM. Archived from the original on 2023-04-09.
  27. ^ . IBM. Archived from the original on 2023-07-03.
  28. ^ . IBM. Archived from the original on 2023-04-08.
  29. ^ . IBM. Archived from the original on 2023-04-09.
  30. ^ . IBM. Archived from the original on 2023-04-08.
  31. ^ . IBM. Archived from the original on 2023-02-07.
  32. ^ . IBM. Archived from the original on 2023-10-23.
  33. ^ Kugel, Herb (October 22, 2001). "The IBM 650". Dr. Dobb's.
  34. ^ a b IBM (1957). SOAP II for the IBM 650 (PDF). C24-4000-0.
  35. ^ a b c IBM 650 CPU Extensions
  36. ^ IBM 650 System Bulletin, Basic Operation Codes, Program Optimizing, Program Loading (PDF). IBM. 1958.
  37. ^ A 12 punch can be used to identify cards as load cards. Load cards are directly read into words 1-8 of the specified storage band
  38. ^ a b Andree, Richard V. (1958). Programming the IBM 650 Magnetic Drum Computer and Data-Processing Machine (PDF).
  39. ^ Knuth, Donald E. (January–March 1986). "The IBM 650: An Appreciation from the Field". IEEE Annals of the History of Computing. 8 (1): 50–55. doi:10.1109/MAHC.1986.10010. S2CID 34595049.
  40. ^ IBM Reference Manual: Floating-Decimal Interpretive System for the IBM 650 (PDF). IBM. 1959. pp. 63, xxi. 28-4024. This is a reprint of IBM 650 Technical Newsletter No. 11, March 1956, form 31-6822 . This reference manual contains the following report, noting that In its external characteristics, the interpretive system described in this report owes much to the IBM Speedcoding System for the 701. Wolontis, V.M. Complete Floating Decimal Interpretive System for the IBM 650 Magnetic Drum Calculator. Bell Laboratories, Inc, Murray Hill, New Jersey.
  41. ^ Holbrook, Bernard D.; Brown, W. Stanley. "Computing Science Technical Report No. 99 – A History of Computing Research at Bell Laboratories (1937–1975)". Bell Labs. Archived from the original on September 2, 2014. Retrieved August 27, 2020.
  42. ^ Wolontis, V. M. "A Complete Floating-Decimal Interpretive System For The IBM 650 Magnetic Drum Calculator" (PDF). US: IBM – via bitsavers.
  43. ^ 650 Programming Bulletin 2. IBM. 1956. p. 40. 22-6294-0. The Interpretive routine described here is a fixed decimal three address system that provides for mathematical, logical, and input-output operations. The logic for this system was obtained from the Complete Floating Decimal Interpretive System for the 650 that was developed by the Bell Laboratories, Murray Hill, New Jersey.
  44. ^ Perlis, A.J.; Smith, J.W.; VanZoeren, H.R. (1958-04-18). Internal Translator; IT, A Compiler for the 650 (PDF). 650 Library Program 2.1.001.
  45. ^ Donald Knuth published the flowchart of the compiler in 1959;Knuth, D. E. (1959). "RUNCIBLE—algebraic translation on a limited computer". Communications of the ACM. 2 (11): 18–21. doi:10.1145/368481.368507. S2CID 8224014.; this was his first academic paper.
  46. ^ IBM (1959). FOR TRANSIT Automatic Coding System for the IBM 650 (PDF). 28-4028.
  47. ^ IBM (1960). FORTRAN Automatic Coding System for the IBM 650 (PDF). 29-4047.
  48. ^ Gray, George. . Unisys History Newsletter, Volume 1.2 December 1992 (revised 1999). Archived from the original on March 4, 2016.

Further reading edit

  • Andree, Richard V. (1958). Programming the IBM 650 Magnetic Drum Computer and Data-Processing Machine (PDF).
  • IBM (1955). IBM 650 Magnetic Drum Data-Processing Machine Manual of Operation (PDF). 22-6060.
  • IBM (1956). IBM 650 Data-Processing System, Customer Engineering Manual of Instruction (PDF). 22-6284-1.
  • IBM (1955). (PDF). 32-6770. Archived from the original (PDF) on 2012-02-05. Retrieved 2006-09-24.
  • Knuth, Donald E. (January–March 1986). "The IBM 650: An Appreciation from the Field" (PDF). IEEE Annals of the History of Computing. 8 (1): 50–55. doi:10.1109/MAHC.1986.10010. S2CID 34595049.

External links edit

  • Bitsavers.org: IBM 650 documents (PDF files)
  • Columbia University: The IBM 650 at Columbia University
  • at the Wayback Machine (archived 2023-07-12)
  • at the Wayback Machine (archived 2023-07-03) 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
  • Weik, Martin H. (March 1961). A Third Survey of Domestic Electronic Digital Computing Systems. Ballistic Research Laboratories (BRL). Report No. 1115. Includes about 40 pages of IBM 650 survey detail: customers, applications, specifications, and costs.
  • IBM 650 “Magnetic Drum Data Processing Machine"

magnetic, drum, data, processing, machine, early, digital, computer, produced, 1950s, first, mass, produced, computer, world, almost, systems, were, produced, last, 1962, first, computer, make, meaningful, profit, first, installed, late, 1954, most, popular, c. The IBM 650 Magnetic Drum Data Processing Machine is an early digital computer produced by IBM in the mid 1950s 2 3 It was the first mass produced computer in the world 4 5 Almost 2 000 systems were produced the last in 1962 6 7 and it was the first computer to make a meaningful profit 7 The first one was installed in late 1954 and it was the most popular computer of the 1950s 8 IBM 650Part of the first IBM 650 computer in Norway 1959 known as EMMA 650 Console Unit right an exterior side panel is open 533 Card Read Punch unit middle input output 655 Power Unit is missing Punched card sorter left not part of the 650 Now at Norwegian Museum of Science and Technology in Oslo TypeDigital computerRelease date1954 70 years ago 1954 PredecessorIBM CPC 604 605 SuccessorIBM 7070 hi end IBM 1620 low end RelatedIBM 701 IBM 702 IBM 608 IBM 650 at Texas A amp M University The IBM 533 Card Read Punch unit is on the right IBM 650 console panel showing bi quinary indicators 1 p 47ff Note wear marks around frequently used switches lower right Collection of the Museo Nacional de Ciencia y Tecnologia A Coruna Galicia Spain Close up of bi quinary indicators Memory drum from an IBM 650 Side view of an IBM 650 Console Unit First computer in Spain 1959 now at National Museum of Science and Technology in A Coruna The 650 was offered to business scientific and engineering users as a slower and less expensive alternative to the IBM 701 and IBM 702 computers which were for scientific and business purposes respectively 7 It was also marketed to users of punched card machines who were upgrading from calculating punches such as the IBM 604 to computers 1 5 9 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 10 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 11 It was announced in 1953 and in 1956 enhanced as the IBM 650 RAMAC with the addition of up to four disk storage units 12 The purchase price for the bare IBM 650 console without the reader punch unit was 150 000 in 1959 13 or roughly 1 500 000 as of 2023 Support for the 650 and its component units was withdrawn in 1969 The 650 was a two address bi quinary coded decimal computer both data and addresses were decimal with memory on a rotating magnetic drum Character support was provided by the input output units converting punched card alphabetical and special character encodings to from a two digit decimal code The 650 was clocked at a frequency of 125 kHz 14 It could add or subtract in 1 63 milliseconds multiply in 12 96 ms and divide in 16 90 ms The average speed of the 650 was estimated to be around 27 6 ms per instruction or roughly 40 instructions per second 15 Donald Knuth s series of books The Art of Computer Programming is famously dedicated to a 650 15 Contents 1 History 2 Hardware 2 1 Main memory 2 2 IBM 653 Storage Unit 3 Instruction set 4 Sample program 5 Software 6 See also 7 Notes and references 8 Further reading 9 External linksHistory editThe first 650 was installed on December 8 1954 in the controller s department of the John Hancock Mutual Life Insurance Company in Boston 16 The IBM 7070 signed 10 digit decimal words announced 1958 was expected to be a common successor to at least the 650 and the IBM 705 17 The IBM 1620 variable length decimal introduced in 1959 addressed the lower end of the market The UNIVAC Solid State 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 editThe basic 650 system consisted of three units 18 IBM 650 Console Unit 19 housed the magnetic drum storage arithmetical device using vacuum tubes and the operator s console IBM 655 Power Unit 20 IBM 533 or IBM 537 Card Read Punch Unit 21 22 23 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 5 400 6 263 pounds 2 7 3 1 short tons 2 4 2 8 t 24 25 Optional units 18 IBM 46 Tape To Card Punch Model 3 18 IBM 47 Tape To Card Printing Punch Model 3 18 IBM 355 Disk Storage Unit 26 Systems with a disk unit were known as IBM 650 RAMAC Data Processing Systems IBM 407 Accounting Machine 27 IBM 543 Card Reader Unit IBM 544 Card Punch Unit IBM 652 Control Unit magnetic tape disk 28 IBM 653 Storage Unit magnetic tape disk core storage index registers floating point arithmetic 29 IBM 654 Auxiliary Alphabetic Unit IBM 727 Magnetic Tape Unit IBM 838 Inquiry Station 30 Main memory edit Rotating drum memory provided 1 000 2 000 or 4 000 words 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 seven bits 4000 words would be equivalent to 35 kilobytes 31 32 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 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 SOAP Symbolic Optimal Assembly Program was provided that performed rough optimization 33 34 The LGP 30 Bendix G 15 and IBM 305 RAMAC 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 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 edit The optional IBM 653 Storage Unit was introduced on May 3 1955 ultimately providing up to five features 35 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 five extra operation codes Sixty 10 digit words of magnetic core memory at addresses 9000 to 9059 This small fast memory had an access time of 96ms a 26 fold improvement relative to the rotating drum This feature added five operation codes and was needed as a buffer for tape and disk I O The 60 words could also be used by programs to speed up inner loops and table lookups Three four digit index registers 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 read write circuitry for the drum memory and were available before 1963 18 extra operation codes Floating point 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 editThe 650 instructions consisted of a two digit operation code 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 35 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 columns maximum of 30 alphanumeric columns could be read 1 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 citation needed nbsp IBM 650 at Texas A amp M opened up to show rear of front panel vacuum tube modules and storage drum nbsp Vacuum tube circuit module of type used in the 650 nbsp A classroom in 1960 at the Bronx High School of Science with IBM 650 instruction chart above blackboard upper right The base machine operation codes were 36 17 AABL Add absolute to lower accumulator 15 AL Add to lower accumulator 10 AU Add to upper accumulator 45 BRNZ Branch on accumulator non zero 46 BRMIN Branch on minus accumulator 44 BRNZU Branch on non zero in upper accumulator 47 BROV Branch on overflow 90 99 BRD Branch on 8 in distributor positions 1 10 a 14 DIV Divide 64 DIVRU Divide and reset upper accumulator 69 LD Load distributor 19 MULT Multiply 00 NO OP No operation 71 PCH Punch a card 70 RD Read a card 67 RAABL Reset accumulator and add absolute to lower accumulator 65 RAL Reset accumulator and add to lower accumulator 60 RAU Reset accumulator and add to upper accumulator 68 RSABL Reset accumulator and subtract absolute from lower accumulator 66 RSL Reset accumulator and subtract from lower accumulator 61 RSU Reset accumulator and subtract from upper accumulator 35 SLT Shift accumulator left 36 SCT Shift accumulator left and count b 30 SRT Shift accumulator right 31 SRD Shift accumulator right and round accumulator 01 STOP Stop if console switch is set to stop otherwise continue as a NO OP 24 STD Store distributor into memory 22 STDA Store lower accumulator data address into distributor Then store distributor into memory 23 STIA Store lower accumulator instruction address into distributor Then store distributor into memory 20 STL Store lower accumulator into memory 21 STU Store upper accumulator into memory c 18 SABL Subtract absolute from lower accumulator 16 SL Subtract from lower accumulator 11 SU Subtract from upper accumulator 84 TLU Table lookup Used to allow 533 control panel to signal CPU Counts high order zeros in upper accumulator Value stored takes sign of accumulator except after a divide operation then sign of remainder is stored Notes The IBM 653 options could implement additional instruction codes 35 Sample program editThis 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 37 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 first 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 Software edit nbsp Student program from 1961 written in IBM 650 machine language based on an exercise in Andree s book 38 The 650 instruction set is simple enough that small programs could be written in machine language and this was common for student exercises 38 There was a single instruction per card format that could be loaded directly into the machine and executed Machine language was awkward for large programs and over time a variety of programming languages and tools were written for the IBM 650 These included Assemblers Symbolic Optimal Assembly Program SOAP An assembler 34 Technical Assembly System TASS A macro assembler 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 39 or BLIS the Bell Lab Interpretive System 40 L1 and later L2 41 42 known outside Bell Labs as Bell 1 and Bell 2 among other names see above Synthetic Programming System for Commercial Applications 43 Algebraic languages compilers Internal Translator IT A compiler 44 Revised Unified New Compiler IT Basic Language Extended RUNCIBLE An extension of IT at Case 45 FOR TRANSIT A version of Fortran which compiled to IT which in turn was compiled to SOAP 46 FORTRAN 47 GATE A simple compiler with one character variable names IPL 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 SOAPSee also editFerranti Mark 1 History of IBM 1946 1959 Postwar IBM 700 7000 series Bull Gamma 3 one of the main competitors to the IBM 650 LEO computer List of vacuum tube computers Short Code UNIVAC I UNIVAC Solid State 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 48 Notes and references edit a b c IBM 650 Magnetic Drum Data Processing Machine Manual of Operation PDF IBM 1955 22 6060 1 IBM Archives IBM 650 installation with IBM 727 Magnetic Tape Unit and IBM 355 Disk Storage IBM US Archived from the original on 2023 04 09 Retrieved September 5 2019 IBM Archives IBM 650 Assembly at Endicott plant IBM US Archived from the original on 2023 10 23 Retrieved September 5 2019 History Of Computers 1937 2011 Old Dominion University Retrieved June 22 2021 IBM in the Computer Era The Minnesota Computing History Project 28 June 2018 Retrieved June 21 2021 Pugh Emerson W 1995 Building IBM Shaping an Industry and Its Technology MIT Press p 182 ISBN 978 0 262 16147 3 a b c The IBM 650 Magnetic Drum Calculator Columbia edu Davis Gordon B 1971 Introduction to Electronic Computers Second ed New York McGraw Hill p 10 ISBN 978 0 070 15821 4 IBM Archives 650 Customers IBM Archived from the original on 2023 07 25 Gray Wayne D 2007 Integrated Models of Cognition Systems New York Oxford University Press p 36 ISBN 978 0 19 518919 3 IBM 650 magnetic drum calculator introduced Computerhistory IBM Archives 650 RAMAC announcement press release IBM Archived from the original on 2023 06 09 IBM Archives IBM 650 Model 4 announcement press release IBM 2003 01 23 Archived from the original on 2023 10 23 Retrieved 2023 07 25 Royse David 1957 The IBM 650 RAMAC system disk storage operation Papers presented at the February 26 28 1957 western joint computer conference Techniques for reliability on IRE AIEE ACM 57 Western ACM Press pp 43 49 doi 10 1145 1455567 1455576 a b Knuth Biographic Notes softpanorama org Retrieved 2023 07 25 IBM Archives 650 Chronology Archived from the original on 2023 04 17 Bashe Charles J Johnson Lyle R Palmer John H Pugh Emerson W 1986 IBM s Early Computers MIT p 473 ISBN 0 262 02225 7 a b c d IBM Archives 650 Components Archived from the original on 2023 07 25 IBM Archives IBM 650 Console Unit IBM Archived from the original on 2023 10 23 IBM Archives IBM 655 Power Unit IBM Archived from the original on 2023 04 08 Other IBM names for the 533 included Input Output Unit and Read Punch Unit IBM Archives IBM 533 Card Read Punch IBM Archived from the original on 2023 04 08 IBM Archives IBM 537 Card Read Punch IBM Archived from the original on 2023 04 09 Physical Planning Installation Manual 650 System PDF IBM October 1 1957 p 32 Retrieved May 31 2018 via Bitsavers Customer Engineering Manual of Instruction PDF IBM 1956 p I 17 Retrieved May 31 2018 via Bitsavers IBM Archives IBM 355 Disk Storage IBM Archived from the original on 2023 04 09 IBM Archives IBM 407 accounting machine IBM Archived from the original on 2023 07 03 IBM Archives IBM 652 Control Unit IBM Archived from the original on 2023 04 08 IBM Archives IBM 653 Auxiliary Unit IBM Archived from the original on 2023 04 09 IBM Archives IBM 838 Inquiry Station IBM Archived from the original on 2023 04 08 IBM Archives IBM 650 Magnetic Drum IBM Archived from the original on 2023 02 07 IBM Archives IBM 650 Model 4 announcement IBM Archived from the original on 2023 10 23 Kugel Herb October 22 2001 The IBM 650 Dr Dobb s a b IBM 1957 SOAP II for the IBM 650 PDF C24 4000 0 a b c IBM 650 CPU Extensions IBM 650 System Bulletin Basic Operation Codes Program Optimizing Program Loading PDF IBM 1958 A 12 punch can be used to identify cards as load cards Load cards are directly read into words 1 8 of the specified storage band a b Andree Richard V 1958 Programming the IBM 650 Magnetic Drum Computer and Data Processing Machine PDF Knuth Donald E January March 1986 The IBM 650 An Appreciation from the Field IEEE Annals of the History of Computing 8 1 50 55 doi 10 1109 MAHC 1986 10010 S2CID 34595049 IBM Reference Manual Floating Decimal Interpretive System for the IBM 650 PDF IBM 1959 pp 63 xxi 28 4024 This is a reprint of IBM 650 Technical Newsletter No 11 March 1956 form 31 6822 This reference manual contains the following report noting that In its external characteristics the interpretive system described in this report owes much to the IBM Speedcoding System for the 701 Wolontis V M Complete Floating Decimal Interpretive System for the IBM 650 Magnetic Drum Calculator Bell Laboratories Inc Murray Hill New Jersey Holbrook Bernard D Brown W Stanley Computing Science Technical Report No 99 A History of Computing Research at Bell Laboratories 1937 1975 Bell Labs Archived from the original on September 2 2014 Retrieved August 27 2020 Wolontis V M A Complete Floating Decimal Interpretive System For The IBM 650 Magnetic Drum Calculator PDF US IBM via bitsavers 650 Programming Bulletin 2 IBM 1956 p 40 22 6294 0 The Interpretive routine described here is a fixed decimal three address system that provides for mathematical logical and input output operations The logic for this system was obtained from the Complete Floating Decimal Interpretive System for the 650 that was developed by the Bell Laboratories Murray Hill New Jersey Perlis A J Smith J W VanZoeren H R 1958 04 18 Internal Translator IT A Compiler for the 650 PDF 650 Library Program 2 1 001 Donald Knuth published the flowchart of the compiler in 1959 Knuth D E 1959 RUNCIBLE algebraic translation on a limited computer Communications of the ACM 2 11 18 21 doi 10 1145 368481 368507 S2CID 8224014 this was his first academic paper IBM 1959 FOR TRANSIT Automatic Coding System for the IBM 650 PDF 28 4028 IBM 1960 FORTRAN Automatic Coding System for the IBM 650 PDF 29 4047 Gray George The UNIVAC Solid State Computer Unisys History Newsletter Volume 1 2 December 1992 revised 1999 Archived from the original on March 4 2016 Further reading editAndree Richard V 1958 Programming the IBM 650 Magnetic Drum Computer and Data Processing Machine PDF IBM 1955 IBM 650 Magnetic Drum Data Processing Machine Manual of Operation PDF 22 6060 IBM 1956 IBM 650 Data Processing System Customer Engineering Manual of Instruction PDF 22 6284 1 IBM 1955 IBM Presents the 650 Magnetic Drum Data Processing Machine PDF 32 6770 Archived from the original PDF on 2012 02 05 Retrieved 2006 09 24 Knuth Donald E January March 1986 The IBM 650 An Appreciation from the Field PDF IEEE Annals of the History of Computing 8 1 50 55 doi 10 1109 MAHC 1986 10010 S2CID 34595049 External links edit nbsp Wikimedia Commons has media related to IBM 650 Bitsavers org IBM 650 documents PDF files Columbia University The IBM 650 at Columbia University IBM Archives Valuable resources on IBM s history United States at the Wayback Machine archived 2023 07 12 The IBM 650 Workhorse of Modern Industry at the Wayback Machine archived 2023 07 03 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 Weik Martin H March 1961 A Third Survey of Domestic Electronic Digital Computing Systems Ballistic Research Laboratories BRL Report No 1115 Includes about 40 pages of IBM 650 survey detail customers applications specifications and costs IBM 650 Magnetic Drum Data Processing Machine Retrieved from https en wikipedia org w index php title IBM 650 amp oldid 1223928848 IBM 653 Storage Unit, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.