Digital Computing in 1951 or, “How I Spent my Summer Vacation”

Bob Braden USC/ISI

21 Sept 01 Braden 1 Why 1951?

• Exactly 50 years (half century) ago (Century >> 1)

• A watershed year in the history of digital computing – Externally-programmed machines ---> stored program machines – Electro-mechanical machines (counter wheels & relays) ---> vacuum tubes – One-of-a-kind machines ---> production machines

21 Sept 01 Braden 2 How was Computing Done in 1951?

• Scientific & engineering computation used: – Books of tables – Mechanical desk calculators – Slide rules – equipment – Large-scale automatic calculators

• Business computing used: – Mechanical desk calculators – Punched card equipment

21 Sept 01 Braden 3 Overview of Talk

• Pre-1951 – Scientific computing with punched cards – Early automatic calculators • 1951: Automatic Calculators – Electronic punched card equipment –SSEC • 1951: Electronic – State of the art in hardware & software –IBM 701 • Wrapup -- later developments

21 Sept 01 Braden 4 Scientific Computing with Punched Cards

• Scientific and engineering computation made extensive use of punched card equipment in 1930s, 1940s, and 1950s.

• Nurtured by IBM center at Columbia University

• Here “programming” => plugging wires into interchangable • Sort of “logical Lego” -- rather a fun puzzle. • Some complex problems used 20 different plugboards. • Sometimes needed to know details of machine logic & timing. and operator instructions.

21 Sept 01 Braden 5 Example: Large ...

Example of upper limit of plugboard complexity (Only top half is shown) Most lines represent 5 - 11 wires each; ~ 260 wires total

21 Sept 01 Braden 6 Timing of plugboard hubs

Typical plugboard timing chart...

21 Sept 01 Braden 7 Operator Instructions: sample

•“Integration of the Differential Equation d2P/dr2 = P* F(r) Using the Type 601 Multiplying Punch”, P. Herget, Proc Scientific Comp Forum, IBM, 1948. • Start with stacks of salmon, blue, green, and manila cards. • On one cycle, [the operator] performs the following ... operations: –1. The salmon card is allowed to fall into the stacker. –2. The blue card is allowed to fall into the stacker. – 3. The top card from the blue pile is picked up and held in one hand. – 4. The first green card is allowed to fall into the stacker. – 5. The second green card is placed behind the blue card being held... – 6. The top card from the green pile is picked up and placed behind the other cards held in one hand. ... – 11. The last salmon card is placed (in the direct position) ahead of all cards being held in one hand, and – 12. This deck is now placed in the feed hopper to begin the next cycle.

21 Sept 01 Braden 8 Scientific Computing with Punched Cards

• Punched Card Machines: – “Accounting Machines” • Read cards, Add/subtract using electro-mechanical counter wheels, and print results. Add time ~ 400ms – “Multiplying Punches” • Plugboards: program limited sequence of + - * /; repeat & test • Multiply time ~ 2-5 sec – , sorters, collators, reproducers, ... • Create, sort, interleave, copy, ... card decks

( Approx 0.5 micro-MIPS)

21 Sept 01 Braden 9 Punched Card Example

Soft X-ray scattering from a solid at small angles – Use IBM 602A multiplying punch --electro-mechanical – Read a, b, c, d from a card, compute, and punch result: sqrt(a*(b-c)+ sqrt(4*(b+c)*2 + d/3.675)) – Used Newton-Rapheson iteration for each sqrt() – Took ~2 minutes (chirping & clicking!) per card. – 2 days to set up and test plugboard

21 Sept 01 Braden 10 Automatic Calculators before 1951

• 19th Century: Babbage’s Analytical Engine

• 1930s (pre-WW II) – John V. Atanasoff, Iowa State • Vacuum tubes, rotating capacitive memory (D-R-RAM!) – Konrad Zuse, Germany • Relays – George Stibitz, Bell Labs • Relays These have been thoroughly chewed over by books and articles...

21 Sept 01 Braden 11 Large-Scale Auto Calculators in 1951

• Consider those built/under construction in 1951. • Ignore UK developments and many secondary efforts. • Distinguish: (1) Automatic calculators Externally programmed using paper tape or punched cards or plugboards and switches... (1a) One-of-a-kind large-scale calculators (1b) Electronic punched card machines

(2) Large-scale electronic computers Stored program (“Von Neumann machines”)

21 Sept 01 Braden 12 Automatic Calculators: 1951

EXTERNAL WORD MEMORY ADD MULTIPLY MACHINE WHO WHEN TECHNOLOGY PROGRAMMING SIZE WORDS TIME TIME (max)

Mark I 2200 ctr wheels 72 Harvard 1943 24 col PT 23D+S 300 ms 6000 ms ASCC + 3300 relays (ctr wh)

10D+S 96 Mark II Harvard 1948 TTY PT 13000 relays 200 ms 700 ms +5exp (relays)

4350 Mark III Harvard 1952 Mag tape 4500 VT 16D+S 4 ms 12.75 ms (drum)

Plug wire, ENIAC U Penn 1946 19000 VT 10D+S 20 (ctr) 0.2 ms 2. ms switches

12000 VT 150 SSEC IBM 1948 80 col PT 19D+S 0.3 ms 20 ms + 21400 relays (relays)

Punched IBM 604 IBM 1948 1400 VT 8D+S ~ 4 0.5 ms 12.5 ms cards

Punched VT (604) & < 100 400 ms 400 ms IBM CPC IBM 1949 10D+S cards Ctr wheels (ctr wh) (FP) (FP)

21 Sept 01 Braden 13 Electronic Punched Card Equipment

• 1948 IBM 604 “Electronic Calculating Punch” • The first mass-produced electronic calculator: 5600 built. • Plugboard with 60 program steps + - * / , repeat, test. • Technologically: miniaturized, The Origins of Digital Computers, Randall Ed., cleverly packaged ENIAC Springer-Verlag, 1975, p 232.

ENIAC IBM 604

Both added by counting pulses; ENIAC: 1 digit = ring ctr of 10 FFs, 604: bcd (1248) ctr of 4 FFs.

21 Sept 01 Braden 14 Electronic Punched Card Equipment

• 1949: IBM Card Programmed Calculator (CPC) • Technological kludge, but ~ 700 built, especially for So Cal aerospace, research labs, universities.

• Several IBM punched card machines cabled together. – 604: plugboard wired as calculator, 10digit floating point. – Accounting machine to read instruction cards and print results; 3 address instructions, one per card. – Storage units using counter wheels < 100 #s – To program a loop: feed same card deck through again...!

The Origins of Digital Computers, Randall Ed., Springer-Verlag, 1975, p 232. 21 Sept 01 Braden 15 IBM SSEC -- 1948

• Selective Sequence Electronic Calculator • TJ : ‘...come up with a “Super Calculator” that would eclipse the Harvard machine and consign it to technological oblivion along with any likely offspring’. C. J. Bashe, Annals of History of Computing Oct 82.

Mark I 2200 ctr wheels Harvard 1943 23D+S 72 300 ms 6000 ms ASCC + 3300 relays

12000 VT 150 SSEC IBM 1948 19D+S 20 ms 20 ms + 21400 relays (relays)

• SSEC: ambitious in size and complexity; ‘... Capable of solving problems far too large for any other machines in existence in 1948.’ C. J. Bashe, ibid.

21 Sept 01 Braden 16 IBM SSEC Public showcase: The SSEC was built into walls of a large room (1800 sq ft), with a plate glass window on 57th st & Madison Ave, NYC, next to IBM World HQ.

Lots of dancing lights and spinning tapes were visible... But when the machine was down, they drew the curtains!

SSEC A Perspective, C. & R. Eames, Harvard U Press, 1973

21 Sept 01 Braden 17 Official SSEC Picture

IBM Corp., 1948

TJ Watson hated the pillars, so they magically disappeared!

21 Sept 01 Braden 18 SSEC Control Console

Now THAT is a proper computer console !! T. J. Watson

21 Sept 01 Braden 19 SSEC

• Conservative , transitional technology -- Relay memory but arithmetic unit.

• Memory hierarchy: Part of Arithmetic Unit – Vacuum tube memory: 8 words – Relay memory: 150 words – Paper tape and cards: indefinite 2 digits (8 FFs)

21 Sept 01 Braden 20 SSEC

• Eccles-Jordan 4 counter with feedback to count to 10

21 Sept 01 Braden 21 SSEC

• Instruction word size same as data word size = 20 digits; instructions fetched over data paths. • Externally programmed, but could compute next instruction. • 3 + 1 address instructions • Instructions normally read from paper tape loops: • Paper tape used IBM card stock, so 1 row held 80 punches ().

21 Sept 01 Braden 22 SSEC: Tape Memory Unit

Each used a separate tape loop. Program execution was visible in the spinning tapes...

And this is the machine that made the program tapes...

21 Sept 01 Braden 23 (almost) Real Sample of SSEC code

Iterate: ;Q &  $ ;Q  % VTUW ;Q  XQWLODEV ;Q;Q   ;Q 

A separate tape loop has iterately computed sqrt(Xn) and left result in relay memory location 129.

EM=electronic RM= relay memory memory

Op First Second Result Shift COMMENT Use value saved in Code Operand Operand electronic memory EM RM EM RM EM RM

Multiply 15 3 120 5 129 1 021 10R B * sqrt(Xn) 02 1 000 2 612 4 022 + 1/4 Add 20 digits

21 Sept 01 Braden 24 (almost) Real Sample of SSEC code

Op First Second Result Shift COMMENT Code Operand Operand ______S EM RM S EM RM EM RM Sqrt tape

15 3 120 5 129 1 021 10R B * sqrt(Xn)

02 1 000 2 612 4 022 + 1/4

15 3 011 5 128 1 023 10R A * Xn

15 1 000 4 000 5 126 * Repeat Tape 15 3 613 5 000 1 194 * 1/12 loop 02 1 000 2 121 5 167 + C -> Xn+1

02 5 000 - 6 000 2 044 Xn+1 - Xn

04 ------5 000 1 100 5R Xn+1/10**5 = tol.

02 1 000 -abs 2 000 3 158 19R (Shift off all but sign)

02 ------6 127 6 128 Xn+1 -> Xn

(Sign in 158 selects next instruction: if -: repeat loop; else: proceed to next) Next

21 Sept 01 Braden 25 SSEC Significance

• Completed ~30 problems over its 4 year lifetime. – Planetary orbits, fluid flow, atomic fields, optics, ordinance, hydrodynamics, ... – Included one large classified problem for AEC/LANL. • SSEC was a technological brontosaurus; no significant effects on later machines. • SSEC did “star” in one movie: “Walk East on Beacon” • SSEC helped shape the popular image of a “Giant Brain”

21 Sept 01 Braden 26 Large-Scale Electronic Computers: 1951

Important stored program machines built/under construction

MULT WORD ADD MACHINE WHO WHEN TECHNOLOGY MEMORY TIME SIZE TIME

3000 VT, 512 EDSAC Cambridge 1949 36b 1400 us 5400 us serial (HgDL)

3600 VT, 1024 EDVAC U Penn 1951 44b 846 us 2900 us serial (HgDL)

Remington ?? VT, 12 DD 1000 Univac I 1951 525 us 2150 us Rand serial (7b chars) (HgDL)

Inst Adv 4096 IAS 1952 VT, parallel 40b 62 us 713 us Study (CRT')

4096 IAS clones (various) later VT, parallel 40b (CRT)

4096/8192 IBM 701 IBM 1952 VT, parallel 36b 60 us 456 us (CRT)

21 Sept 01 Braden 27 Large-Scale Electronic Computers: 1951 • Exploring the design space: – Binary or decimal radix – Serial or parallel arithmetic logic – Various word sizes • Hardware features invented but not yet available in US: – Floating point – Index registers

• Building an arithmetic engine using vacuum tubes was a straightforward engineering problem. • The BIG technical problem was memory!

21 Sept 01 Braden 28 Memory Technologies, 1951 • Acoustic (Hg) delay lines • Circulate acoustic pulses through Hg column • Store 400 - 800 bits in column. Latency ~ 400 usec • Alan Turing suggested gin (H20 & alcohol) • CRTs: dynamic capacitive memories • Secondary electrons create potential wells on tube face • Semi-transparent conductive surface on outside face of tube • Periodically read & dynamically regenerate • Magnetic drums

Best guess: would need 4K words for most problems.

21 Sept 01 Braden 29 Computer Hardware Reliability: 1951

• Hardware reliability was a BIG problem in 1951!! • Electromechanical devices were flaky, of course. • Vacuum tubes often failed in on/off operation. • In early machines, CRT memory failures could be programmed! 40 bits – “Read-around ratio” (how often can read one spot before surrounding spots are compromised.) 32 Tight loops were BAD! words

• Early magnetic drums were flakey, too! CRT face with raster of 1s, 0s 21 Sept 01 Braden 30 Computer Hardware Reliability: 1951

• CRT memory on IBM 701 largely solved read-around problem by interleaving addresses, but still required frequent critical adjustment. MTBF 10 mins to 8 hrs. • 1951 programmers had to expect machine errors => Had to program extensive checking, duplicate calculations, elaborate checkpoint/restart code. • Core memory and better vacuum tubes (and later transistors) cured the reliability problems within a few years.

21 Sept 01 Braden 31 Computer Software: 1951

• Programming basics well understood -- – Basic treatise: Wilkes, Wheeler & Gill, “Programming for an Electronic Digital Computer”, Addison-Wesley, 1951. • Parametrized • Subroutine libraries [on paper tape/punched cards] • Relocating loaders • Interpreters • 2-3 years in future: – Fully symbolic assemblers – • Programmers ~ mathematicians

21 Sept 01 Braden 32 Large-Scale Electronic Computers: 1951

Important stored program machines built/under construction

MULT WORD ADD MACHINE WHO WHEN TECHNOLOGY MEMORY TIME SIZE TIME

3000 VT, 512 EDSAC Cambridge 1949 36b 1400 us 5400 us serial (HgDL)

3600 VT, 1024 EDVAC U Penn 1951 44b 846 us 2900 us serial (HgDL)

Remington VT, 12D 1000 Univac I 1951 525 us 2150 us Rand serial (7b chars) (HgDL)

Inst Adv 4096 IAS 1952 VT, parallel 40b 62 us 713 us Study (CRT')

4096 IAS clones (various) later VT, parallel 40b (CRT)

4096/8192 IBM 701 IBM 1952 VT, parallel 36b 60 us 456 us (CRT)

21 Sept 01 Braden 33 Parallel Binary Computers

• IAS (Institute for Advanced Study) Computer 1952 – Seminal machine, built at IAS to design by Von Neumann & Goldstein.

• IBM 701: “Defense Calculator” 1952 – Elegantly engineered and packaged realization of Von Neumann’s IAS design. – Two one-address instructions per word – Minimalist op code set

21 Sept 01 Braden 34 IAS Computer 1952

John Von Neumann in front of IAS (Institute for Advance Study) Computer

A Computer Perspective, C. & R. Eames, Harvard U Press, 1973

21 Sept 01 Braden 35 From 1/Kind Computers...

Manchester Univ Mark I --1949

IAS Machine 1952 Early British Computers, Lavington, Manchester U Press, 1980, pp 38-39

SEAC 1950

A Computer Perspective, C. & R. Eames, Harvard U Press, 1973

21 Sept 01 Braden A Computer Perspective, C. & R. Eames, Harvard U Press,36 1973 ... To Production Computers

IBM 701 -- “Defense Calculator”

Boxes rolled on wheels; cabled together under the raised floor

21 Sept 01 Braden 37 IBM 701 installed at IBM WHQ, NYC, 1952

(The same room that held the SSEC) . 21 Sept 01 Braden 38 IBM 701 Programming

• 701 was designed as a commercial product: clearly documented, careful human engineering. • WW&G’s programming notation was at best obscure! • IBM foresaw that some programmers might not be graduate mathematicians.

• Programming technology: taken straight from Wilkes, Wheeler, & Gill (EDSAC/EDVAC) • Subroutines • Relocating loader • Regional assembler

21 Sept 01 Braden 39 701 Software

• Dedicated machine -- no OS of any kind! – Read card deck: bootstrap loader, assembler, source program, data. – Had to manually splice magnetic tapes onto leaders • Debugging Tools: – Octal memory dump to printer –Tracing • We really DID stick chad back into punched cards to make binary patches! • There was also a floating point interpreter (Speedcode) (written by ex-SSEC staffer )

21 Sept 01 Braden 40 Regional Assembly Language: IBM 701

'R ;Q &  $ ;Q % VTUW ;Q XQWLO DEV ;Q  ;Q ;Q  

07F 0000 + ADD 00A 0001 Save exit address 07F 0001 + STORE A 07F 0023 07F 0002 + TR 35F 0000 A(sqrt subroutine) 07F 0003 + STOP 00N 0002 A(Xn) 07F 0004 + STOP 00N 0004 A(Xn+1) 07F 0005 - LOAD MQ 00K 0102 Get B 07F 0006 - MPY ROUND 00N 0004 * sqrt(Xn) 07F 0007 - ADD 00K 0006 + 1/4 07F 0008 - STORE 00N 0000 07F 0009 - LOAD MQ 00N 0002 Xn 07F 0010 - MPY ROUND 00K 0100 * A 07F 0011 + L RIGHT 000 0035 AC -> MQ 07F 0012 - MPY ROUND 00K 0008 * 1/12 07F 0013 + L RIGHT 000 0035 AC -> MQ 07F 0014 - MPY ROUND 00N 0000 07F 0015 - ADD 00K 0104 +C 07F 0016 - STORE 00N 0006 = Xn+1 07F 0017 - SUB 00N 0002 - Xn 07F 0018 - STORE 00N 0008 save diff 07F 0019 - R SUB 00N 0006 - Xn+1 07F 0020 + A RIGHT 000 0015 >> 15 = tolerance 07F 0021 - ADD ABS 00N 0008 07F 0022 + TR + 07F 0002 Go around loop again 07F 0023 + TR 000 0000 (exit)

Relocatable (specifies “region ”) or zero (absolute)

21 Sept 01 Braden 41 1954: Future Rumors...

• ... That John Backus was leading a group to develop a program that could write (efficient) programs, given algebraic statements. [I found this hard to believe...!] • ... That IBM was developing a machine with new memory technology (magnetic cores) that could run for months or even (gasp) years without dropping a bit! • ... That the 704 designers had developed a truly symbolic assembler.

21 Sept 01 Braden 42 701: Beginning of a Computer Dynasty

• Beginning of the IBM 36-bit computer dynasty... – 701: CRT memory, basic VonN/IAS design – 704: Core memory, 3 index registers and floating point – 709: Added channels (i.e., DMA I/O) – 7090: Transistorized • Parallel development of decimal business computers – IBM 702, 705, 650, 1401, ... • And there were all the other computer companies...

21 Sept 01 Braden 43 Later Developments

Later software developments: • Indirection, pointers • Stacks and queues • List processing • Operating systems • The word “software” • Computer Science

1951 was just the beginning of the computer story, but this is the end of this talk!

21 Sept 01 Braden 44