1 / 28 History of Electronic Computers 1642 1945 Mechanical Era 1946 Electronic Age: divided into 4/5 generations
2 / 28 Key Developments/Relationships History Electromechanical Electronic George Stibitz Bell Labs (USA) 1937 43 Z1, Z3 Konrad Zuse (Germany) 1938 41 ENIAC J.P. Eckert & J.W. Mauchly 1946 Cryptanalytic Machines (not much info, classified) * special purpose, plugboards & switches * COLOSSUS (1943) allied code breaker Mark I, II Howard Aiken Harvard/IBM (USA) 1939 44 EDSAC M.V. Wilkes Cambridge (England) 1947 49 EDVAC J. von Newmann Princeton 1946 52 ACE A. Turing 1946 47
Electromechanical Systems 3 / 28
4 / 28 Konrad Zuse worked independently of England and U.S. Z3 (1941): first operational, program controlled, computer pgm control: tape, 8 bits/command arithmetic unit: binary, floating point, word length 22-bits (sign, 7-bit exponent, 14-bit mantissa), builtin operations: +, -,,, square root, times (2,.5, 10, 0.1, -1) store: 64 words output: lamp display w/ 4 decimal places and decimal point
5 / 28 Zuse (continued) Z3 destroyed in 1944 air raid believed to have independently developed ideas of: binary arithmetic Liebniz program control Babbage instruction formats Ludgate floating point representation Torres lacked idea of conditional branch
6 / 28 H. Aiken (Grace Hopper) Mark I (1940 1944) 1. Decimal Arithmetic 2. punched paper tape for program control 3. 2-address instructions Mark II (1944 1947) 1. floating point numbers 2. multiple arithmetic units, usable simultaneously
7 / 28 Stibitz Complex Computer (1938 1940) 1. complex numbers: +, -,, 2. binary arithmetic 3. automatic decimal/binary conversions Relay Interpreter (1939 1943) 1. BCD number representation 2. Error detecting codes
8 / 28 Electronic Computers: Instantiation John Atanasoff (1939): applied mathematician, Iowa State Univ designed special purpose machine to solve large systems of linear equations claims to be first with operational electronic computer, largely unrecognized J.P. Eckert and J. Mauchly Moore School of Electrical Engineering, Univ of Pennsylvania ENIAC (1945) first general purpose computer not stored program
9 / 28 ENIAC 1. Vacuum tube technology (18,000) 2. decimal computer 3. 20 word memory (A1, A2,..., A20) called accumulators 4. word size, 10-digits 5. programmed by manual switches/plugboards
10 / 28 EDVAC (1945 1951) First stored program computer design, conceived because ENIAC: difficult to program limited memory capacity slow memory access First draft report of EDVAC written by John von Neumann in 1945; therefore he is credited w/ developing stored program concept.
11 / 28 Moore School Lectures (summer 1946) Moore School Lectures Subject: EDVAC EDSAC (1949) M.V. Wilkes Cambridge U. IAS (1952) J. von Neumann Inst. for Advanced Study EDVAC (1951) (built by others at Moore School) Eckert & Mauchly BINAC (1950) UNIVAC (1951) (taken over by Sperry Rand Co; for several years was undisputed leader of U.S. computer market)
12 / 28 Major Generations in the Evolution of Electronic Computing
13 / 28 First Generation (1946 1954) Technology: vacuum tubes, acoustic/crt memories Hardware/Arch: centralized control, fixed point arithmetic Software: assembly languages
14 / 28 First Generation: Examples EDSAC (1949) Cambridge U. memory hierarchy (primary memory to drum) floating point emulators provided as system routines ISA (1952) Princeton CRT memory allowing entire word access as one operation Whirlwind I (1951) MIT ferrite core memory
15 / 28 First Generation (cont) UNIVAC I (1951) magnetic tapes w/ ability to read fwd/bkwd, and w/ buffering and error checking capabilities. because of slow mercury delay line memory was rapidly replaced w/ ferrite core based UNIVAC II (1957) first successful computer Grace Hopper: Mathematic Algol, Flowmatic COBOL IBM 701 (1953) disk and tape secondary memories MADM (?) Manchester U. index registers
16 / 28 First Generation (cont) IBM 704 (1955) hardwired floating point arithmetic (first) indirect addressing (first) Memory sizes in this era will still quite limited. Therefore, some machines were constructed with drum memories (e.g., IBM 650 (1954)). Because of slow access, the assembly operations were place at strategic points on drum at first by hand, later by programs (e.g., SOAP).
17 / 28 Second Generation (1955 1964) Occurred primarily due to technological advances (transistor). Technology: discrete transistor, ferrite core memories, magnetic drums. Hardware/Arch: floating point arith, index registers, I/O processors. Software: High Level Languages (FORTRAN, COBOL, ALGOL, LISP), system software (e.g., compilers, subroutines libraries, batch monitors).
18 / 28 Second Generation: Examples UNIVAC 1103 (1956) floating point hardware program interrupts (first) IBM 709 (1959) hundreds sold at several million dollars each IBM 1401 (1961) 20,000 sold Honeywell H-800 (?) replaced 1401 w/ movement to S/360 IBM 7094 (?) data channels EDSAC II (?) micro-programming (first)
19 / 28 Second Generation (cont) CDC 6600 (1964) multi-functional units Burroughs B-5000 (1963) designed to efficiently support Algol-60 (first lang directed arch) Atlas (1962) Manchester U. virtual memory (first) IBM Stretch (1961) attempted to push state-of-the-art to the limit instr. lookahead and partial execution interleaved memory hardware support for protecting multiprogrammed tasks Burroughs D-825 (1962) first multiprocessor 2 processors connected to 16 memories (crossbar)
20 / 28 Second Generation (cont) This generation also sees the introduction and widespread use of HLLs (high level languages): FORTRAN (54 57) ALGOL (58 62) introduction of BNF COBOL (59 60) DOD enforced as standard LISP (60 65) MIT
21 / 28 Third Generation (1965 1975) Caused primarily by: 1. development of SSI and MSI integrated circuits, 2. generalized use of micro-programming to implement instruction sets, and 3. the generalization of multiprogrammed operating systems. Technology: integrated circuits (SSI, MSI), semiconductor memories Hardware/Arch: micro-programming, pipelining, multiprogramming, multiprocessing Software: timesharing, virtual memory, O/S
22 / 28 Third Generation: Examples CTSS (early 1960 s) MIT time sharing IBM S/360 (1965) architecture family micro-programming MU 5 (?) pipelining ILLIAC IV array processing (4 quadrants of 64 processors; only 1 quadrant built)
23 / 28 Notes for 3 rd Generation multiprogramming: overlapped execution of different pgms w/ 1 CPU timesharing: multiprogramming system that allows for many interactive users multiprocessing: machines that provide for concurrent execution of programs by multiple CPUs SSI 10 gates/chip MSI 10-100 gates/chip LSI 10,000 gates/chip
24 / 28 Fourth Generation Technology: LSI, VLSI, bit-slice logic Hardware/Arch: large scale multiprocessors, multicomputers, language directed architectures (including RISCs), distributed system architectures (including LANs), fault tolerant processors Software: distributed operating systems, advanced compiler optimization techniques, electronic mail networks, concurrent HLLs
25 / 28 Fourth Generation: Examples SYMBOL (1971) Fairchild HLL directed architecture (SPL) migration of virtually all s/w (including compiler) into h/w only one built C.mmp (1977) CMU multiprocessor (16 PDP-11 s connected by crossbar to 16MM) Cm* (1979) CMU multicomputer (interconnected clusters of processors; each processor has own memory; hierarchical communication structure) Intel iapx 432 (1980) 2 VLSI chips with 160,000 transistors load balancing object oriented arch
26 / 28 Fourth Generation (cont) HP 3000 (?) stack machine Burroughs B1700 (?) multiple-language directed architecture (COBOL, RPG, FORTRAN, Basic, and SDL) bit addressable memory (length specified); variable size ALU dynamically swappable micro-program on low end machines, micro-program resides in MM RISC I, II (1982, 1983) Berkley MIPS (1982) Stanford IBM 801 (1982)
27 / 28 Significant Publications: Leading to Quantitative Analysis for Systems Design D. E. Knuth, An empirical study of FORTRAN programs, Software: Practice and Experience, 1 105 133, 1971. Manolis G. H. Katevenis, Reduced Instruction Set Computer Architectures for VLSI, 1985. J. L. Hennessy and D. A. Patterson, Computer Architecture: A Quantitative Approach, Morgan Kaufmann Publishers, Inc., San Mateo, California, (all editions).
28 / 28 Further Readings Randell, B. (ed), The Origins of Digital Computers, 1975. Shurkin, J. Engines of the Mind, 1985. Wilkes, M.V. Automatic Digital Calculators, 1956. Annals of the History of Computers. Rosen, S., Electronic Computers: A Historical Survey, ACM Computer Surveys, Vol 1, No 1, 7 36, March 1969.