Basisinformationstechnologie I Wintersemester 2014/15 12. November 2014 Rechnertechnologie I Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung Jan G. Wieners // jan.wieners@uni-koeln.de
Inhalte der heutigen Sitzung Überblick: Rechner-/Computerentwicklung Moore Leibniz Babbage Turing Exkurs: Turingtest Weizenbaum von Neumann Exkurs: Spieltheorie Die von Neumann Rechnerarchitektur Konzept: Universalrechner Cache als Hardwareelement Caching als Grundmechanismus Zeitgemäße Rechnerhardware Motherboard, etc.
Rechner-/Computerentwicklung
Rechner-/Computerentwicklung Wenn sich die Luftfahrtindustrie genauso schnell wie die Computertechnologie entwickelt hätte, würde ein Flugzeug 500 Dollar kosten und könnte die Erde in 20 Minuten mit 5 Gallonen Treibstoff umrunden. Allerdings hätte es die Größe eines Schuhkartons. (Gordon Moore, zitiert nach: Tanenbaum, Andrew S.: Computerarchitektur, S. 43.) Kostenreduzierung Leistungsfähigkeit (Performance) Ressourcenverbrauch Strukturreduzierung
Das Mooresche Gesetz (Moore s Law) Die Anzahl der Transistoren, die auf einem Chip (IC, Integrated Circuit) untergebracht werden können, verdoppelt sich alle 2 Jahre.
Rechner-/Computerentwicklung Ganz früher: Abakus, etc. 17. Jahrhundert Blaise Pascal (1623-1662) Rechenmaschine Pascaline [Addition / Subtraktion] Gottfried Wilhelm Leibniz (1646-1716): Rechenmaschine [Addition / Subtraktion Division / Multiplikation] Bildnachweis: Pascaline: David Monniaux Leibniz Rechenmaschine: Kolossos, http://de.wikipedia.org/w/index.php?title=datei:leibnitzrechenmaschine.jpg&filetimestamp=20060706122903
Rechner-/Computerentwicklung Charles Babbage (1792-1871) Difference Engine / Differenzmaschine Lösung polynominaler Fkt. [Addition] Analytical Engine (Entwurf) Sollte von Dampfmaschine betrieben werden Wäre mehr als 30 Meter lang und 10 Meter breit gewesen Deutet zahlreiche Innovationen und Konzepte an, u.a.: Eingabe (Befehle u. Daten) über Lochkarten Ausgabe über Lochkartenstanzer Speicherwerk Rechenwerk Bildnachweis: Detailaufnahme Difference Engine: Carsten Ullrich
Rechner-/Computerentwicklung: Colossus (1943) COLOSSUS (1943, u.a. Turing) ENIGMA / Lorenz-Schlüsselmaschine
Alan Turing 1912 (London) 1954 (Wilmslow, Cheshire) 1936: On Computable Numbers, with an Application to the Entscheidungsproblem Turingmaschine 2. Weltkrieg: Code Knacker, u.a. Turing- Bombe, Colossus 1945-1948: National Physical Laboratory: ACE (Automatic Computing Engine), Referenz zu Babbages Analytical Engine 1948-1949: Manchester Mark I, Röhrencomputer 1950: Computing machinery and intelligence Turingtest
Der Turingtest
Turingtest
Eine Implementierung des Turingtests: ELIZA Benutzer: Ich habe ein Problem mit meinem Auto. ELIZA: Warum, sagen Sie, haben Sie ein Problem mit Ihrem Auto? ----- Benutzer: Ich habe ein Problem mit meinem Vater. ELIZA: Erzählen Sie mir mehr über Ihre Familie! ----- Benutzer: Krieg ist der Vater aller Dinge. ELIZA: Erzählen Sie mir mehr über Ihre Familie!
http://www.cleverbot.com/
Rechnerentwicklung
ENIAC (1946, Electronic Numerical Integrator and Computer)
John von Neumann John von Neumann * 1903 (Budapest) als János von Neumann zu Margitta, 1957 (Washington D.C.) U.a. Arbeiten zur Quantenmechanik, Spieltheorie, Manhattan-Projekt (mit Oppenheimer) Informatik: Von-Neumann-Architektur bzw. Von- Neumann-Rechner: Rechner, in dem Daten und Programm binär codiert in einem Speicher liegen.
Spieltheorie
XO X O
X O XO X O O X O X O X O O
Spieltheorie nach von Neumann und Morgenstern Theory of Games and Economic Behavior (1944) Spiel ( game ): Gesamtheit der Regeln, die das Spiel beschreiben Spielpartie ( play ): Vorgang, in dem das Spiel gespielt wird Spielzug ( move ) Zugwahl ( choice ) Spielregeln determinieren, welche Spielsymbole zu welchem Spielzeitpunkt auf welche Art und Weise bewegt werden dürfen
Spieltheorie nach von Neumann und Morgenstern Formale Definition: Ein Spiel Γ (Gamma) in Normalform ist vollständig beschrieben durch das Tripel Γ N, S, u : die finite Anzahl der Spielerinnen und Spieler aus der Spielermenge 1,,. den Strategieraum. Der Strategieraum gibt die Menge aller,,,, aus möglichen Strategiekombinationen den Strategien der einzelnen Spieler an, d.h.. Der Strategieraum S ist definiert als kartesisches Produkt der, wobei eine endliche Strategiemengen Menge von Entscheidungen und Aktionen für jeden Spieler in bezeichnet.,, die Nutzenfunktionen, wobei die Auszahlungs- oder Nutzenfunktion des Spielers bezeichnet. Wird die Strategiekombination gespielt, so lässt sich mit der Nutzen für Spieler bestimmen.
Ein Spiel in Normalform Koch Bewertet die Bewertet die Köchin positiv Köchin negativ ( ) ( ) Bewertet den Koch Köchin: 50 Euro Köchin: 0 Euro Köchin positiv ( ) Bewertet den Koch Koch: 50 Euro Köchin: 100 Euro Koch: 100 Euro Köchin: 20 Euro negativ ( ) Koch: 0 Euro Koch: 20 Euro
Juul, Jesper: 255,168 ways of playing Tic Tac Toe ( http://www.jesperjuul.net/ludologist/255168-ways-of-playing-tic-tac-toe) Extensivform von Spielen (Tic Tac Toe)
ein wenig abstrakter 3 12 8 2 4 6 14 5 2 Welche Strategie sollte die das Spiel beginnende Spielerin (Dreieck) im oben wiedergegebenen Spiel mit zwei Spielrunden verfolgen, um optimal zu agieren und ihre Auszahlung zu maximieren? Wie wird sich wohl der Spieler (Quadrat) verhalten?
Der Minimax-Algorithmus MAX 3 max(3,2,2)=3 min(2,4,6)=2 min(14,5,2)=2 MIN 3 2 2 min(3,12,8)=3 3 12 8 2 4 6 14 5 2
Die Von-Neuman-Architektur
Universalrechner: Struktur des Rechners ist unabhängig Universalrechner von dem zu lösenden Problem, d.h. keine starre Programmierung des Rechners über hardwareseitige Repräsentation (z.b. Kabelverbindungen bei ENIAC) des Programmes.
Turingmaschine Anforderung: Entwurf eines allgemeinen Automaten Automat, der wahlfreien Zugang (random access) auf alle Speicherplätze erlaubt Formuliert von Alan M. Turing in On computable numbers, with an application to the Entscheidungsproblem (1937)
Entscheidungsproblem
Von-Neumann-Architektur
Von-Neumann-Architektur Steuerwerk Rechenwerk Zentrale Recheneinheit (CPU = Central Processing Unit) Steuerwerk Rechenwerk (ALU)
Von-Neumann-Architektur Steuerwerk Rechenwerk Interne Datenwege Funktionsweise & Eigenschaften Zahlen werden im Rechner binär dargestellt Universalrechner Programme und Daten werden in einem gemeinsamen Speicher abgelegt Befehle geben nur die Speicheradresse an, wo die Daten abgelegt sind, nicht die Daten selbst Zentrale Recheneinheit (CPU = Central Processing Unit) Steuerwerk Interne Datenwege (Bus-System) Rechenwerk (ALU)
Von-Neumann-Architektur Steuerwerk Rechenwerk Interne Datenwege Arbeitsspeicher / Speicherwerk Funktionsweise & Eigenschaften Zahlen werden im Rechner binär dargestellt Universalrechner Programme und Daten werden in einem gemeinsamen Speicher abgelegt Befehle geben nur die Speicheradresse an, wo die Daten abgelegt sind, nicht die Daten selbst Zentrale Recheneinheit (CPU = Central Processing Unit) Steuerwerk Speicherwerk Interne Datenwege (Bus-System) Rechenwerk (ALU)
Von-Neumann-Architektur Steuerwerk Rechenwerk Interne Datenwege Arbeitsspeicher / Speicherwerk Ein-/Ausgabewerk Zentrale Recheneinheit (CPU = Central Processing Unit) Steuerwerk Rechenwerk (ALU) Funktionsweise & Eigenschaften Zahlen werden im Rechner binär dargestellt Universalrechner Programme und Daten werden in einem gemeinsamen Speicher abgelegt Befehle geben nur die Speicheradresse an, wo die Daten abgelegt sind, nicht die Daten selbst Speicherwerk Interne Datenwege (Bus-System) Ein- /Ausgabewerk
Von-Neumann-Architektur Befehlsverarbeitung Von-Neumann-Zyklus in fünf Teilschritten: FETCH DECODE FETCH OPERANDS EXECUTE UPDATE PROGRAM COUNTER (UPC)
Von-Neumann-Architektur Befehlsverarbeitung Von-Neumann-Zyklus in fünf Teilschritten: FETCH DECODE FETCH OPERANDS EXECUTE UPDATE PROGRAM COUNTER (UPC) FETCH: Laden des nächsten zu bearbeitenden Befehls in das Befehlsregister (bildet gemeinsam mit Steuerwerk und Rechenwerk die CPU).
Von-Neumann-Architektur Befehlsverarbeitung Von-Neumann-Zyklus in fünf Teilschritten: FETCH DECODE FETCH OPERANDS EXECUTE UPDATE PROGRAM COUNTER (UPC) FETCH: Laden des nächsten zu bearbeitenden Befehls in das Befehlsregister (bildet gemeinsam mit Steuerwerk und Rechenwerk die CPU). DECODE: Befehl wird durch Steuerwerk in Schaltinstruktionen für das Rechenwerk übersetzt.
Von-Neumann-Architektur Befehlsverarbeitung Von-Neumann-Zyklus in fünf Teilschritten: FETCH DECODE FETCH OPERANDS EXECUTE UPDATE PROGRAM COUNTER (UPC) FETCH: Laden des nächsten zu bearbeitenden Befehls in das Befehlsregister (bildet gemeinsam mit Steuerwerk und Rechenwerk die CPU). DECODE: Befehl wird durch Steuerwerk in Schaltinstruktionen für das Rechenwerk übersetzt. FETCH OPERANDS: Operanden holen, die durch den Befehl verändert werden sollen.
Von-Neumann-Architektur Befehlsverarbeitung Von-Neumann-Zyklus in fünf Teilschritten: FETCH DECODE FETCH OPERANDS EXECUTE UPDATE PROGRAM COUNTER (UPC) FETCH: Laden des nächsten zu bearbeitenden Befehls in das Befehlsregister (bildet gemeinsam mit Steuerwerk und Rechenwerk die CPU). DECODE: Befehl wird durch Steuerwerk in Schaltinstruktionen für das Rechenwerk übersetzt. FETCH OPERANDS: Operanden holen, die durch den Befehl verändert werden sollen. EXECUTE: Rechenwerk führt die Operation aus.
Von-Neumann-Architektur Befehlsverarbeitung Von-Neumann-Zyklus in fünf Teilschritten: FETCH DECODE FETCH OPERANDS EXECUTE UPDATE PROGRAM COUNTER (UPC) FETCH: Laden des nächsten zu bearbeitenden Befehls in das Befehlsregister (bildet gemeinsam mit Steuerwerk und Rechenwerk die CPU). DECODE: Befehl wird durch Steuerwerk in Schaltinstruktionen für das Rechenwerk übersetzt. FETCH OPERANDS: Operanden holen, die durch den Befehl verändert werden sollen. EXECUTE: Rechenwerk führt die Operation aus. UPC: Erhöhung des Befehlszählers, damit der Rechner weiß, an welcher Stelle des Programms er sich gerade befindet. Geschieht parallel zu DECODE und FETCH OPERANDS.
Von-Neumann-Architektur Vor- und Nachteile
Von-Neumann-Architektur Vorteile Bedeutende Idee: Zunächst Laden des Programmes und der Daten in ein und denselben Speicher, danach Ausführung. Vor von Neumanns Ansatz war das Programm hardwareseitig verschaltet / repräsentiert oder wurde über Lochstreifenkarten schrittweise eingelesen und sofort (sequentiell) verarbeitet. Nun möglich: Sprünge auf vorhergehende und spätere Programmsequenzen Modifikation des Programmcodes während des Programmablaufes Paradigmawechsel: Übergang vom starren Programmablauf zur flexiblen Programmsteuerung bzw. von der Rechenmaschine zur Datenverarbeitungsmaschine
Von-Neumann-Architektur Nachteile Da Daten und Befehle im Speicher gehalten werden, wird die Verbindung und Datenübertragung zwischen CPU und Speicher über den Systembus zum Von- Neumann-Flaschenhals: Jeglicher Datenverkehr von und zur CPU wird über den internen Bus abgewickelt, dessen Transfergeschwindigkeit langsamer ist, als die Verarbeitungsgeschwindigkeit der CPU. Dieses Problem versucht man in modernen PC's durch die Verwendung von schnellem Cache-Speicher abzuschwächen, der meist in die CPU integriert ist.
Heutige Computer
CPU-Cache
CPU-Cache Grundidee des Caches: Häufig gebrauchte Speicherworte / Daten sollten im Cache stehen, um das Problem des von-neumann-flaschenhalses zu mindern. Funktionsprinzip des Cache: Die CPU fordert ein gesuchtes Datum oder eine gesuchte Instruktion im Cache an. Bei einem Cache-Hit befindet sich das Datum/Instruktion im Cache. Bei einem Cache-Miss (die gewünschte Information befindet sich nicht im Cache) wird ein bestimmter Bereich, der das gesuchte Datum bzw. die gesuchte Instruktion enthält, aus dem Hauptspeicher in den Cache geladen (in der Hoffnung, dass folgende Zugriffe sich auf diesen aktualisierten Bereich beziehen!).
Cache-Hierarchie L1 L2 L3 Ln
Cache / Caching als allgemeines Prinzip
Speicherhierarchie
Inhalte der heutigen Sitzung Überblick: Rechner-/Computerentwicklung Moore Leibniz Babbage Turing Exkurs: Turingtest Weizenbaum von Neumann Exkurs: Spieltheorie Die von Neumann Rechnerarchitektur Konzept: Universalrechner Cache als Hardwareelement Caching als Grundmechanismus Zeitgemäße Rechnerhardware Motherboard, etc.
/