History
ECE 795
History of Electronic Computers
1642–1945 Mechanical Era 1946– Electronic Age: divided into 4/5 generations
History of Electronic Computers
1
History
ECE 795
History
Electromechanical Z1, Z3 Konrad Zues (Germany) 1938−1941 G. Stibitz Bell Labs (USA) 1937−1943 Mark I, II Howard Aiken IBM (USA) 1939−1944 EDSAC M.V. Wilkes (England) 1946−1949 EDVAC J. von Neumann 1946−1950 ENIAC J.P. Eckert & J.W. Mauchly 1946
Electronic
Cryptanalytic Machines (not much info, classified) −special purpose, plugboards & switches −COLOSSUS (1943) allied code−breaker
ACE A. Turing 1946−1947
History of Electronic Computers
2
History
ECE 795
Electromechanical
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
Electromechanical
3
History
ECE 795
• 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
Electromechanical
4
History
ECE 795
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
H. Aiken (Grace Hopper)
5
History
ECE 795
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
Stibitz
6
History
ECE 795
Electronic Computers: Instantiation
John Atanasoff (1939): applied mathematician, Iowa State Univ • developed 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
Electronic Computers: Instantiation 7
History
ECE 795
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
ENIAC
8
History
ECE 795
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.
EDVAC (1945–1951)
9
History
ECE 795
Moore School Lectures (summer 1946)
EDVAC Moore School Lectures
EDVAC (1951) (built by others at Moore School) IAS (1952) J. von Neumann Inst. for Advanced Study EDSAC (1949) M.V. Wilkes Cambridge U.
Eckert & Mauchly BINAC (1950) UNIVAC (1951) (taken over by Sperry Rand Co. for several years was undisputed leader of U.S. computer market)
Moore School Lectures (summer 1946)
10
History
ECE 795
First Generation (1946–1954)
Technology: vacuum tubes, acoustic/CRT memories Hardware/Arch: centralized control, fixed point arithmetic Software: assembly languages 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
First Generation (1946–1954) 11
History
ECE 795
• Whirlwind I (1951) MIT – ferrite core memory • 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
First Generation (1946–1954) 12
History
ECE 795
• 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).
First Generation (1946–1954)
13
History
ECE 795
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) Examples: • UNIVAC 1103 (1956) – floating point hardware – program interrupts (first)
Second Generation (1955–1964) 14
History
ECE 795
• 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
Second Generation (1955–1964)
15
History
ECE 795
• EDSAC II (?) – micro-programming (first) • 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)
Second Generation (1955–1964)
16
History
ECE 795
• 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)
Second Generation (1955–1964)
17
History
ECE 795
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
Second Generation (1955–1964)
18
History
ECE 795
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.
Third Generation (1965–1975)
19
History
ECE 795
Technology: integrated circuits (SSI, MSI), semiconductor memories Hardware/Arch: micro-programming, pipelining, multiprogramming, multiprocessing Software: timesharing, virtual memory, O/S Examples • CTSS (early 1960’s) MIT – time sharing • IBM S/360 (1965) – architecture family – micro-programming
Third Generation (1965–1975) 20
History
ECE 795
• MU 5 (?) – pipelining • ILLIAC IV – array processing (4 quadrants of 64 processors; only 1 quadrant built)
Third Generation (1965–1975)
21
History
ECE 795
Notes for 3rd 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
Third Generation (1965–1975)
22
History
ECE 795
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 Examples: • SYMBOL (1971) Fairchild – HLL directed architecture (SPL) – migration of virtually all s/w (including compiler) into h/w – only one built
Fourth Generation 23
History
ECE 795
• 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
Fourth Generation
24
History
ECE 795
• 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)
Fourth Generation 25
History
ECE 795
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.
Further Readings
26