8. 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
9. 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.“
10. Rechner-/Computerentwicklung
Anno Pief: 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
12. 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. Alan Turing
1912 (London) – 1954
1936: On Computable Numbers,
with an Application to the
“Entscheidungsproblem”
Turingmaschine
2. Weltkrieg: „Code Knacker“, u.a.
„Turing-Bombe“, „Colossus“
15. Alan Turing
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
2012: Turingjahr
20. 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!“
25. 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. VonNeumann-Rechner: Rechner, in dem Daten und
Programm binär codiert in einem Speicher liegen.
30. 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
32. Ein Spiel in Normalform
Koch
Köchin: 50 Euro
Koch: 50 Euro
Koch: 100 Euro
Köchin: 100 Euro
Köchin: 20 Euro
Koch: 0 Euro
Köchin
Köchin: 0 Euro
Koch: 20 Euro
33. 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)
37. 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.
40. Von-Neumann-Architektur
Steuerwerk
Rechenwerk
Interne Datenwege
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
Interne Datenwege
(Bus-System)
41. Von-Neumann-Architektur
Steuerwerk
Rechenwerk
Interne Datenwege
Arbeitsspeicher /
Speicherwerk
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
Interne Datenwege
(Bus-System)
Speicherwerk
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).
45. 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.
46. 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.
47. 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.
48. 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.
50. 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
51. 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 VonNeumann-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.
55. 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
56. CPU-Cache
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ührungsund Verarbeitungsgeschwindigkeit von
Programmen
Nachteil:
Schwer vorhersehbar, welche Teile des
Hauptspeichers von der CPU im nächsten
Schritt benötigt werden Cache-Misses
Teuer
57. 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!).
58. Cache Hierarchie
Cache-Speicher ist sehr schnell,
aber auch sehr teuer, darum
Verwendung mehrerer Caches
in einer Cache-Hierarchie:
Durchnummerierung vom Cache
mit der niedrigsten Zugriffszeit (L1)
bis
zum langsamsten Cache (Ln), z.B. L1
Cache, L2 Cache, etc.
Arbeitsweise:
Zunächst wird der schnellste Cache
durchsucht; enthält der L1 Cache die
benötigten Daten nicht, wird der
nächste (zumeist langsamere und
größere) Cache durchsucht.
59. Cache als allgemeines Prinzip
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-NeumannFlaschenhals“
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.
60. Speicherhierarchie
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.
61. Inhalte der heutigen Sitzung
Kurzer Ü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.
63. Hausaufgaben
Aufgabe 1 (1 Punkt)
Was macht den Von-Neumann Rechner zu einem
Universalrechner?
Aufgabe 2 (1 Punkt)
Aus welchen Komponenten setzt sich ein von Neumann-Rechner
zusammen? Welche Aufgaben haben die einzelnen Komponenten?
Aufgabe 3 (1 Punkt)
Welche Problematik wird als der von Neumann-Flaschenhals
bezeichnet?
Aufgabe 4 (1 Punkt)
Was ist Cache-Speicher? Erörtern Sie bitte
„Cache“ als Bestandteil der CPU
UND (!)
„Cache“ / „Caching“ als allgemeines Prinzip.
64. Hausaufgaben
Aufgabe 5 (3 Punkte)
In seiner 1950 publizierten Arbeit „Computing Machinery and
Intelligence“, wie sie sich unter
http://www.csee.umbc.edu/courses/471/papers/turing.pdf findet,
beschreibt Alan Turing ein Gedankenexperiment, das als „Turingtest“
bezeichnet wird.
Lesen Sie bitte die ersten beiden Kapitel des Aufsatzes („The Imitation
Game“ und „Critique of the New Problem“) und geben sie das
Gedankenexemperiment nach Turing wieder.
Erläutern Sie bitte im Kontext des Turingtests, welche Antworten sich
auf die Fragen des Fragestellers als (menschlich) „intelligent“
bezeichnen lassen.
Nähern Sie den Begriff der Intelligenz an: Wodurch ist menschliche
Intelligenz charakterisiert? Sind Sie / bist Du der Meinung, dass es
möglich ist, ein Computersystem zu implementieren, das den Turingtest
besteht – ein Computersystem also, das sich als „intelligent“
bezeichnen ließe?