A short Computer History Computer System as Multilevel Machine Level 5 Problem-oriented language level Translation (compiler) Level 4 Assembly language level Translation (assembler) Level 3 Operating system machine level Partial interpretation (operating system) Level 2 Instruction set architecture level Interpretation (microprogram) or direct execution Level 1 Microarchitecture level Hardware Level 0 Digital logic level Tanenbaum: Computer Architecture Evolution of Multilevel Machines • Clear distinction between hardware and software • • • Hardware implements machine instructions Software uses those machine instructions for programming The invention of microprogramming • • • 1951 by Maurice Wilkes, University of Cambridge Simplified hardware reduced tube count and enhanced reliability. By 1970 using a microprogram was dominant Evolution of Multilevel Machines • In the early days, people: – – – – – – – – • • reserved the computer for a block of time brought in their FORTRAN program as a desk of punched cards took the FORTRAN compiler out of a cabinet inserted first the compiler and then the program Inserted the program again for a second pass of the compiler the compiler punched out the machine program. put in the machine program … This procedure was normal in many compute centers for years. In 1960 the operators job was automated The Evolution of Multilevel Machines • The invention of the operating system • Operating system was kept in memory • It read and executed jobs consisting of the Fortran code and the data cards for execution. • Interspersed with OS commands like compile and execute • One of the first widespread operating systems was FMS (FORTRAN Monitor System) • Additions, e.g., IO, were called operating system macros or supervisor calls (today system calls) • 1960 the timesharing system was developed at MIT • Multiple users could access the machine simultaneously from remote terminals Computer Generations • Zeroth Generation -1945: Mechanical Computers • First Generation - 1955: Vacuum Tubes • Second Generation - 1965: Transistors • Third Generation – 1980: Integrated Circuits • Fourth Generation - …: Very Large Scale Integration • Fifth Generation: The invisible computer The Zeroth Generation – Mechanical Computers (1642 – 1945) • Blaise Pascal • built 1642 a computer to help his father in tax collection • Gottfried Leibniz • built 1670 a mechanical machine that could also multiply and divide. The Zeroth Generation – Mechanical Computers (1642 – 1945) • Charles Babbage (1792-1871) • Built 1822 the difference engine to compute tables for navy navigation. Result was engraved in a copper plate (write-once medium) • Built 1846 the analytical machine consisting of store (for variables), the mill (processing unit), input and output section. It could execute different programs on punched cards instead of only one (difference engine). • The programs were developed by Ada Augusta Lovelace. The Zeroth Generation • Konrad Zuse (late 1930) • 1938: Z1 mechanical engine, binary system, floating point arithmetic, programs on punched tape • 1941: Z3 machine based on electromagnetic relays, binary arithmetic • Work lost in the war. • Howard Aiken (1944) • Built a relay-based machine with 72 words of 23 decimal digits, and an instruction time of 6 sec. • His work was based on Babbage's work he found in the library. The First Generation – Vacuum Tubes (1945–1955) • British intelligence (1944) • Built COLOSSUS the world first electronic digital computer • Alan Turing helped in the design • Designed to decode German messages • Jon Mauchley and Presper Eckert (1946) • Built ENIAC with 18.000 tubes, 1.500 relays. It weighed 30 tons and consumed 140 kilowatt. • Decimal arithmetic, each digit represented by 10 tubes • Grant by the army. • Maurice Wilkes (1946) • EDSAC, binary arithmetic • First stored program computer • Developed in UK The First Generation – Vacuum Tubes (1945–1955) • John von Neumann • Designed the von Neumann Architecture in 1945 for EDVAC • Built 1952 the IAS machine where program and data were in the same memory. • Parallel addition • It used binary arithmetic. The Second Generation – Transistors (1955–1965) • Transistor was invented at Bell Labs in 1948 • Within 10 years vacuum tube computers were obsolete • The first minicomputer PDP1 was built by DEC in 1961. • It cost $120.000 compared to millions for the twice as fast transistorized computer of IBM, the IBM 7090. • CDC introduced CDC 6600 • It was 10 times faster than IBM 7090. • The CPU had multiple functional units that could run in parallel. • It also had smaller computers inside to do IO etc. • The designer was Seymour Cray The Third Generation – Integrated Circuits (1965–1980) • Integrated circuits were co-invented by Jack Kilby and Robert Noyce in 1958 • Jack Kilby demonstrated it half a year before Noyce on September 12th • • • • @ Texas Instruments Got Nobel Prize in physics in 2000 Germanium based Demonstrated continuous sine wave • Rober Noyce • @ Fairchild Seminconductors (Co-Founder) • Silicon based • 1968 he and Gordon Moore founded Intel The Third Generation – Integrated Circuits (1965–1980) • IBM build the System/360 • It was the first machine with multiprogramming for better CPU utilization. • It could emulate other machines, e.g., the IBM 7094, via special microcode. • It had a huge address space of 224 bytes (16 MB) which was sufficient until mid 1980s • Key features of lasting impact: 8bit byte, byte addressable memory, 32 bit word, two’s complement, EBCDIC character set • DEC developed the PDP-11 The Third Generation – Integrated Circuits (1965–1980) • Xerox designed the Alto I • 1973 • Palo Alto Research Center • First computer with a graphical interface. • Birth of – the mouse – WYSIWYG printing – cut-and-paste – Ethernet The Fourth Generation – Very Large Scale Integration (1980-?) • Personal computer started due to price drop • Apple, Commodore, Atari • IBM PC in 1981 based on Intel CPU • In 1984 the Apple Macintosh was the first personal computer with a Graphical User Interface. • Mid 1980s RISC was born • 1992 DEC produced the first 64-bit RISC processor, the Alpha processor. The Fifth Generation – Invisible Computers • In 1993 the Apple Newton was the first PDA • Small embedded processors are changing the world • Going towards ubiquitous computing or pervasive computing Milestones in Computer Architecture Jahr Bezeichnung Hersteller Anmerkungen 1834 Analytical Engine Babbage Erster Versuch, einen digitalen Computer zu bauen 1941 Z3 Zuse Erste funktionierende Relais-Rechenmaschine 1943 COLOSSUS Britische Regierung Erster elektronischer Computer 1944 Mark I Aiken Erster amerikanischer Universalcomputer 1946 ENIAC I Eckert/Mauchley Beginn der modernen Computergeschichte 1949 EDSAC Wilkes Erster speicherprogrammierter Computer 1951 Whirlwind I M.I.T. Erster Echtzeitcomputer 1952 IAS Von Neumann Die meisten heutigen Maschinen weisen dieses Design auf 1960 PDP-1 DEC Erster Minicomputer (50 Stück verkauft) 1961 1401 IBM Sehr beliebter Rechner bei kleinen Firmen 1962 7094 IBM Beherrschte Anfang der wissenschaftliche Rechenwelt 1963 B5000 Burroughs Erste für eine Hochsprache entwickelte Maschine 1964 360 IBM Erste als Familie ausgelegte Produktlinie 1964 6600 CDC Erster wissenschaftlicher Supercomputer 60er Jahre die Milestones in Computer Architecture 1965 PDP-8 DEC Erster Minicomputer für den Massenmarkt (50.000 Stück verkauft) 1970 PDP-11 DEC Vorherrschender Minicomputer der 70er Jahre 1974 8080 Intel Erster 8-Bit-Universalcomputer auf einem Chip 1974 CRAY-1 Cray Erster Vektor-Supercomputer 1978 VAX DEC Erster 32-Bit-Superminicomputer 1981 IBM PC IBM Beginn der modernen Personalcomputer-Ära 1981 Osborne-1 Osborne Erster portabler Computer 1983 Lisa Apple Erster Personalcomputer Benutzeroberfläche (GUI) 1985 386 Intel Erster 32-Bit-Vorgänger der Pentium-Linie 1985 MIPS MIPS Erster kommerzielle RISC-Rechner 1987 SPARC Sun Erste SPARC-basierte RISC-Workstation 1990 RS6000 IBM Erste superskalare Maschine 1992 Alpha DEC Erster 64-Bit-Personalcomputer 1993 Newton Apple Erster Palmtop-Computer mit grafischer Von Neumann Architecture(1946) 1. Computer consists of 4 units • • • • Memory (programs and data) Control unit (interprets the program) Arithmetic unit I/O unit 2. The structure is indepent of the problem (programmable) 3. Program and data are in the same memory 4. The memory is structured into cells of a fixed length 5. The program consists of instructions that are executed sequentially. 6. There can be (conditional) jumps. 7. The machine is based on binary representation. Predecessors Von-Neumann Computer Mechanical Computer Without compute unit With compute unit Program control Predecessor of the von Neumann Architecture 1500 - v. Chr 1100 Suan Pan (Ostasien) Soroban (Japan) Abakus 0 1623 1645 1674 1805 1823 Schickard: Mechanical ADD/SUB Machine Pascal: “ “ Leibniz: Four operations machine “ Jaquard: Punched card loom Babbage: Analytical Enginge (punched card, programmable system) Decimal representation, never built Punched Cards Computer Exhibition at Deutsches Museum