Bit wisem 2015-wieners-sitzung-11_Software-Entwicklung II: Entwurfsmuster
BIT I WiSe 2014 | Basisinformationstechnologie I - 04: Rechnertechnologie I
1. Basisinformationstechnologie I
Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung
Jan G. Wieners // jan.wieners@uni-koeln.de
Wintersemester 2014/15
12. November 2014 – Rechnertechnologie I
2. 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.
4. 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
5. 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.“
6. 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
7.
8. 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
14. 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!“
19. 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.
24. 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
25. 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
möglichen Strategiekombinationen 푠 = (푠1, … , 푠푖 , … , 푠푛) aus
den Strategien der einzelnen Spieler an, d.h. 푠 ∈ 푆. Der
Strategieraum S ist definiert als kartesisches Produkt der
Strategiemengen 푆 = 푆1 × ⋯ × 푆푛, wobei 푆푖 eine endliche
Menge von Entscheidungen und Aktionen für jeden Spieler 푖 in
푁 bezeichnet.
푢 = (푢1, … , 푢푛) 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.
26. Koch
Ein Spiel in Normalform
Bewertet die
Köchin positiv
(푠21)
Bewertet die
Köchin negativ
(푠22)
Köchin
Bewertet den Koch
positiv (푠11)
Köchin: 50 Euro
Koch: 50 Euro
Köchin: 0 Euro
Koch: 100 Euro
Bewertet den Koch
negativ (푠12)
Köchin: 100 Euro
Koch: 0 Euro
Köchin: 20 Euro
Koch: 20 Euro
푁 = {1, 2}
푆 = 푠11, 푠12 × 푠21, 푠22
= { 푠11, 푠21 , 푠11, 푠22 , 푠12, 푠21 , 푠12, 푠22 }
27. 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)
28. …ein wenig abstrakter…
푥0
푠푀퐴푋1
푠푀퐴푋2
푥1 푥2
푥3
푠푀퐴푋3
푥4 푥5 푥6 푥7 푥8 푥9 푥10 푥11 푥12
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?
31. Universalrechner: Struktur des Rechners ist unabhängig
von Universalrechner
dem zu lösenden Problem, d.h. keine starre
Programmierung des Rechners über hardwareseitige
Repräsentation (z.B. Kabelverbindungen bei ENIAC) des
Programmes.
32. 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)
36. Zentrale Recheneinheit
Von-Neumann-Architektur
(CPU = Central Processing Unit)
Steuerwerk
Rechenwerk
(ALU)
Interne Datenwege
(Bus-System)
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
37. Zentrale Recheneinheit
Von-Neumann-Architektur
(CPU = Central Processing Unit)
Steuerwerk
Rechenwerk
(ALU)
Interne Datenwege
(Bus-System)
Speicherwerk
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
38. Zentrale Recheneinheit
Von-Neumann-Architektur
(CPU = Central Processing Unit)
Steuerwerk
Rechenwerk
(ALU)
Interne Datenwege
(Bus-System)
Speicherwerk
Ein-
/Ausgabewerk
Steuerwerk
Rechenwerk
Interne Datenwege
Arbeitsspeicher /
Speicherwerk
Ein-/Ausgabewerk
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
40. 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).
41. 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.
42. 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.
43. 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.
44. 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.
46. 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
47. 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.
52. 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!).
Ein Automat: die mechanische Ente (de Vaucanson, 1738)
COLOSSUS (1943):GB; Erster elektronischer Digitalrechner; u.a. Turing.
Entschlüsselung des dt. Nachrichtenverkehrs (ENIGMA / Lorenz-Schlüsselmaschine)
2012: Turingjahr
Unreal Tournament 2004: 2K Botprize
2012 gelang es zwei Teams, die Jury davon zu überzeugen, dass ihre Bots „echte“ Menschen seien
1923 in Berlin geboren. 1936 floh die jüdische Familie in die USA nach Detroit.
Studium der Mathematik in Detroit
1963 wechselte er als Associate Professor an das Massachusetts Institute of Technology (MIT), an dem er schließlich von 1970 bis 1988 Professor für Computer Science war.
Berühmt wurde Weizenbaum 1966 durch sein Spracherkennungsprogramm ELIZA, das als Meilenstein in der Entwicklung der künstlichen Intelligenz gefeiert wurde und als Prototyp der Chatbots gilt.
1975: „Computer Power and Human Reason“(„Die Macht der Computer und die Ohnmacht der Vernunft“)
Intention: Verantwortungsvoller Umgang mit Wissenschaft und Technik
Weizenbaum starb im März 2008.
ENIAC (1946, Electronic Numerical Integratorand Computer): US-Armee;
18.000 Vakuumröhren
1500 Relais
Gewicht: 30t
> 150 kW
Programmeingabe von Hand durchSchalter und Kabelstecker an Schalttafeln
Verwendungszweck ursprünglich: Berechnung der Flugbahnen von Geschossen
Verwendungszweck: Berechnungen über Realisierbarkeit der Wasserstoffbombe John von Neumann
Weiß kann Schwarz in zwei Zügen schachmatt setzen
Handeln und Agieren: Welche Handlungsmöglichkeiten stehen den Spielern zu einem bestimmten Zeitpunkt des Spieles zur Verfügung? Für welche Handlungsoption sollten (und werden) sich die einzelnen Spieler entscheiden? Handeln die Spieler gleichzeitig? – und gliedert sich das Spiel in mehrere Runden?
Anzahl der Spielerinnen und Spieler: Inwiefern verändert sich die Situation, wenn weitere Spieler am Spiel teilnehmen würden?
Kommunikation: Welchen Einfluss hätte Kommunikation vor Spielbeginn auf die Spielentscheidungen der Spielerinnen und Spieler?
Rationalität: Welche Auffassung hat ein Spieler über die Denk- und Handlungsweise seiner Gegenspielerin? Würde es die eigene Handlungsweise beeinflussen, wenn nicht davon ausgegangen werden kann, dass die Gegenspielerin das für sie beste Spielergebnis zu erreichen sucht?
Wiederholung: Würden die Spieler anders entscheiden, wenn das Spiel nicht nur einmal, sondern wiederholt gespielt würde?
agierenden und interagierenden Individuen, die versuchen, ihre Umwelt zu manipulieren, während die Umwelt im Gegenzug versucht, jene Individuen, die Spielerinnen und Spieler des Spiels, zu manipulieren.
Kartesisches Produkt x
Extensivform
Central Processing Unit
Verarbeitung von Daten, die sich in Form von Bitfolgen / Bytes im RAM (Random Access Memory) befinden
CPU-Bestandteile:
Register: Hilfsspeicherzellen, mit ALU verknüpft
Breite: z.B. 32 oder 64 Bit
ALU: Erwartet Daten / Argumente in Registern, legt Ergebnisse in Registern ab
Schneller (aus Kostengründen kleiner) Pufferspeicher, in dem Kopien des RAM (in Auszügen) vorgehalten werden, die möglicherweise als nächstes von der CPU benötigt werden.
Intention / Ziele:
Verringerung der Zugriffszeit bzw. Verringerung der Anzahl der Zugriffe auf den zu cachenden Speicher Von-Neumann Flaschenhals
Vorteil:
Durch Umgehung des Von-Neumann Flaschenhalses: Steigerung der Ausführungs- und Verarbeitungsgeschwindigkeit von Programmen
Nachteil:
Schwer vorhersehbar, welche Teile des Hauptspeichers von der CPU im nächsten Schritt benötigt werden Cache-Misses
Teuer
Cache-Speicher ist sehr schnell,aber auch sehr teuer, darumVerwendung mehrerer Cachesin einer Cache-Hierarchie:
Durchnummerierung vom Cachemit der niedrigsten Zugriffszeit (L1) biszum langsamsten Cache (Ln), z.B. L1Cache, L2 Cache, etc.
Arbeitsweise:
Zunächst wird der schnellste Cachedurchsucht; enthält der L1 Cache diebenötigten Daten nicht, wird dernächste (zumeist langsamere undgrößere) Cache durchsucht.
Cache Speicher ist keine Idee, die allein der CPU vorbehalten ist allgemeines Prinzip
Beispiele im Alltag:
Buffering: Video-Dateien aus dem Web (z.B. bei youtube) werden gepuffert und anschließend wiedergegeben, um die – im Vergleich zur Festplatte - niedrige Übertragungsrate des Internets auszugleichen Stichw. „Von-Neumann-Flaschenhals“
Cache kann überall da sinnvoll eingesetzt werden, wo Speichermedien unterschiedlicher Geschwindigkeit miteinander kommunizieren.
Auch wenn sich in den kommenden Jahren die aktuelle Technik völlig verändert, wird es immer Speicher geben, der schneller ist als anderer.
Faktum I: Die Zugriffszeit vergrößert sich, je weiter wir nach unten gehen.
Faktum II: Die Speicherkapazität vergrößert sich, je weiter wir nach unten gehen.
Faktum III: Die Anzahl der „Bits pro Dollar“ vergrößert sich, je weiter wir nach unten gehen, i.e.: Die Preise für die Speichermedien sinken, je weiter wir uns nach unten bewegen.