Computergrundlagen Geschichte des Computers Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2011/12
1641: Rechenmaschine von B. Pascal B. Pascal, 1623-1662 mechanische Rechenmaschine addierte & subtrahierte ganze Zahlen nicht programmierbar http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 2/12
1837: Analytical Engine von C. Babbage C. Babbage, 1791-1871 programmierbare mechanische Rechenmaschine 3 Lochkartenleser für Programm, Konstanten und Eingabezahlen 4 Grundrechenarten, Sprünge nie gebaut http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 3/12
1941: Z3 von K. Zuse K. Zuse, 1910-1995 Zuse Z1 Zuse Z3 Z1, 1937: programmierbare mechanische Rechenmaschine Z3, 1941: elektromechanischer Rechner: Relais und Kernspeicher 0,9 / 1,4 Flops (Fliesskomma-Operationen / Sekunde) Programm und Daten über eigene Lochkartenleser im 2. Weltkrieg zerstört, Rekonstruktion in München http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 4/12
1946: ENIAC erster Röhrenrechner 350 Flops Grundrechenarten + Wurzeln Programmeingabe durch Verdrahtung 1948 Einbau eines Befehlsspeichers http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 5/12
Von Neumann-Architektur (1945) memory 0 1 2 3 4 5 6 7 8 9 10... CPU J. von Neumann, 1903-1957 control unit arithmetic logic unit accumulators input/output Grundlage aller modernen Rechnerarchitekturen nach ENIAC ein linearer Ganzzahl-Speicher für Programme und Daten random access memory (RAM) Speicher mit wahlfreiem Zugriff Befehle sind Zahlen im Speicher, können überschrieben werden http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 6/12
Von Neumann-Architektur (1945) memory 0 1 2 3 4 5 6 7 8 9 10... CPU J. von Neumann, 1903-1957 control unit arithmetic logic unit accumulators input/output Befehle werden sequenziell abgearbeitet Befehlszähler enthält die Adresse des aktuellen Befehls wird normalerweise hochgezählt Sprünge und Verzweigung sind spezielle Befehle http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 6/12
1976: Apple I / II 1976: Apple I, erster Serien -PC, 100 Exemplare 1977: Apple II, 2 Millionen Exemplare 8-bit CPU (6502), 48kB RAM, 1000 Flops Massenmarkt: C64 30 Millionen Exemplare Grund: zahlreiche Computerspiele erst ab ca 1990 setzen sich IBM-kompatible Heim-PCs durch http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 7/12
2008: Intel Nehalem Control unit Intel Nehalem microarchitecture To Input/Output quadruple associative Instruction Cache 32 KByte, Uncore 128-entry TLB-4K, 7 TLB-2/4M per thread 128 Quick Path Prefetch Buffer (16 Bytes) Branch Interconnect Prediction global/bimodal, Predecode & loop, indirect 4 x 20 Bit Instruction Length Decoder jmp 6,4 GT/s Instruction Queue 18 x86 Instructions Alignment MacroOp Fusion DDR3 Memory Controller 3 x 64 Bit To Memory 1,33 GT/s Complex Simple Simple Simple Decoder Decoder Decoder Decoder Loop Stream Decoded Instruction Queue (28 µop entries) Decoder MicroOp Fusion 2 x Retirement 2 x Register Allocation Table (RAT) Register File Reorder Buffer (128-entry) fused Micro Instruction Sequencer Common L3-Cache 8 MByte ALUs + FPUs Store Data AGU Store Addr. Unit Reservation Station (128-entry) fused Port 4 Port 3 Port 2 Port 5 Port 1 Port 0 AGU Load Addr. Unit Integer/ MMX ALU, Branch SSE ADD Move Integer/ MMX ALU SSE ADD Move FP ADD FP MUL Integer/ MMX ALU, 2x AGU SSE MUL/DIV Move 256 KByte 8-way, 64 Byte Cacheline, private L2-Cache 512-entry L2-TLB-4K 128 128 128 Memory Order Buffer (MOB) Result Bus 256 128 128 octruple associative Data Cache 32 KByte, 64-entry TLB-4K, 32-entry TLB-2/4M auch ein Nehalem-Kern ist immer noch eine von Neumann-CPU... aber mit 50-100 Gigaflops Millionen verkaufte Einheiten pro Jahr http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 8/12
Theoretische Informatik, Berechenbarkeit Arbeitsband (Speicher) 1 0 1 0 1 0 1 0 Aktuelle Schreib /Leseposition p A. Turing, 1912-1954 Turingmaschine Zustand s ca 1920, D. Hilbert: Was ist berechnenbar, was beweisbar? 1931, K. Gödel: Entweder widerspruchsfrei oder vollständig! 1936: A. Turing: Turingmaschine, in On Computable Numbers, with an Application to the Entscheidungsproblem Nicht alles ist berechnenbar! Wir können nicht mal bestimmen, was nicht beweisbar ist http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 9/12
Turingmaschinen Eine Turingmaschine ist definiert durch eine endliche Menge Γ, das Arbeitsalphabet, mit Leerzeichen Γ eine endliche Menge Z von Zuständen der Maschine den Startzustand s Z und den Haltezustand h Z eine Überführungsfunktion δ : Z Γ Z Γ {,, } Eine Konfiguration ist eine Zeichenkette w über dem Arbeitsalphabet eine Position p in w, die aktuelle Arbeitsposition der aktuelle Zustand z der Turingmaschine Eine Konfiguration (w, p, z) führt in eine andere (w, p, z ) über, wenn δ(z, w p ) = (z, w p, d), und d p nach p versetzt. Startkonfiguration: Eine Eingabe w, p am Anfang von w, Zustand s. http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 10/12
Darstellung von Turingmaschinen Beispiel: Eine 1 vorne einfügen 0 : 0, A 0 : 1, : 0, 1 : 0, s h 0 : 1, 1 : 1, : 1, B : 1, 1 : 1, A: 0 gemerkt B: 1 gemerkt s 0 A 1 s 1 B 1 s h 1 A 0 A 0 A 1 B 0 A h 0 B 0 A 1 B 1 B 1 B h 1 Ablauf: Schreibe Zustand in das Arbeitsband vor die aktuelle Position, bezeichnet Übergang s101 1B01 11A1 110B 1101h http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 11/12
Turingmaschinen II Turingmaschinen können kombiniert werden Beispiel: Hinter jedem Zeichen eine 0 einfügen universelle Turingmaschine: eine Turingmaschine, die berechnet, was eine Turingmaschine tut Halteproblem: es gibt keine Turingmaschine, die entscheidet, ob eine gegebene Turingmaschine bei leerer Eingabe anhält Turingmaschinen und von Neumann-Computer sind äquivalent Church-Turing-These: Turing-berechenbare Funktionen sind genau die von Menschen intuitiv berechenbaren Funktionen http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 12/12