Basisinformationstechnologie I Wintersemester 2012/13 14. November 2012 Rechnertechnologie I Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung Jan G. Wieners // jan.wieners@uni-koeln.de
Themenüberblick Rechnertechnologie I Kurzer Überblick: Rechner-/Computerentwicklung Moore Leibniz Babbage Turing Weizenbaum von Neumann Die John von Neumann Rechnerarchitektur Rechnerhardware: Mainboard CPU und Cache-Speicher Systembus BIOS und Bootvorgang Arbeitsspeicher North- und Southbridge PCI-Bus AGP / PCI-Express, IDE (ATA / ATAPI), S-ATA (Serial ATA), USB
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 Performanz bzw. Performance Ressourcenverbrauch Strukturreduzierung
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
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): GB; Erster elektronischer Digitalrechner; u.a. Turing. Entschlüsselung des dt. Nachrichtenverkehrs (ENIGMA / Lorenz- Schlüsselmaschine)
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
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!
Turingtest Turing-Test
Turingtest: Bots
Joseph Weizenbaum 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.
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!
Rechner-/Computerentwicklung ENIAC (1946, Electronic Numerical Integrator and Computer): US-Armee; 18.000 Vakuumröhren 1500 Relais Gewicht: 30t > 150 kw Programmeingabe von Hand durch Schalter und Kabelstecker an Schalttafeln Verwendungszweck ursprünglich: Berechnung der Flugbahnen von Geschossen Verwendungszweck: Berechnungen über Realisierbarkeit der Wasserstoffbombe John von Neumann
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: Gefangenendilemma ( Prisoner s Dilemma ) Auszahlungsmatrix (Normalform) des Gefangenendilemmas: Spiele in Extensivform
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)
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.
Von-Neumann-Architektur
Von-Neumann-Architektur Steuerwerk Rechenwerk Arbeitsspeicher / Speicherwerk Ein-/Ausgabewerk 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 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 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 Paradigmenwechsel: Ü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.
Central Processing Unit Verarbeitung von Daten, die sich in Form von Bitfolgen / Bytes im RAM 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
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
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 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.
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-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.
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.
Von Eniac zum PC
Moore s Law Das Mooresche Gesetz (1965) sagt voraus, dass sich die Anzahl der Transistoren, die auf einen Chip (IC, Integrated Circuit) gepackt werden können, alle ~2 Jahre verdoppelt. Die spannende Frage: Wie lange wird Moore s Law noch gelten? Moore (2007): 10 15 Jahre Strukturgrößen: Intel Core i7 45 bis 32nm nm Nanometer, 10-9 (ein Millionstel Millimeter)
Rechnerkomponenten: Mainboard Main- / Motherboard u.a.: CPU Chipsatz (North-/Southbridge) RAM BIOS Steckplätze, u.a.: AGP / PCI-E PCI Anschlussmöglichkeiten: USB SATA
Rechnerkomponenten: Systembus Systembus Verbindet Steckplätze untereinander u. mit Mainboard Parallele Datenleitungen zur Übertragung von Daten zwischen CPU und Peripheriegeräten Leistungsfähigkeit von Systembussen gemessen in Anzahl Bytes, die pro Sekunde übertragen werden können. Systembus-Standards: ISA (Industry Standard Architecture) / EISA (Extended ISA) PCI (Peripheral Component Interconnect) AGP (Accelerated Graphics Port) PCI-E (PCI Express) Bildnachweis: Bus: Les Chatfield, http://commons.wikimedia.org/wiki/file:brighton_and_hove_buses_bus.jpg
BIOS Basic Input Output System 1981+ Flash-EEPROM (Electrically Erasable Programmable Read-Only Memory) BIOS: Basale Hilfsprogramme zur Ansteuerung der Hardwarekomponenten (Festplatte, Maus, Tastatur, etc.) Interrupts Brücke zw. Hardware und OS
BIOS: Bootvorgang Mehrstufiger Prozess Prüfung, welche Geräte angeschlossen sind RAM-Check Laden des Betriebssystems (z.b. von Festplatte, USB Stick, etc.) Booten von Bootstrapping
BIOS der Klassiker UEFI (Unified Extensible Firmware Interface, vereinheitlichte erweiterbare Firmware-Schnittstelle)
Arbeitsspeicher Arbeitsspeicher (RAM, Random Access Memory) Dient als Speicher für Daten und Programme Flüchtige, nicht permanente Speicherung von Daten Z.B. DDR3-1600 SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory) mit 12,8 GB/s Bildnachweis: RAM-Baustein: http://commons.wikimedia.org/wiki/file:ram_module_sdram_1gib.jpg http://de.wikipedia.org/w/index.php?title=datei:arbeitsspeicher.jpg&filetimestamp=20101009183652
North- und Southbridge Bildnachweis: http://de.wikipedia.org/w/index.php?title=datei:asrock_k7vt4a_pro_mainboard_labeled_german.jpg&filetimestamp=20050725235004
Chipsatz I: Northbridge Verantwortlich für den Hochgeschwindigkeits-Datenaustausch Enthält in den meisten PC-Systemen u.a. den Speichercontroller, der den Datentransfer zwischen CPU und Hauptspeicher verwaltet. Speichercontroller ist über den Frontsidebus (FSB) an die CPU gekoppelt. Synchronisiert den Datentransfer und die Datensteuerung zwischen CPU und AGP- und/oder PCI-Express Grafikkarte. Gemeinsam mit Southbridge bildet die Northbridge den Chipsatz ~2000: Integration der Bestandteile in CPU
Chipsatz II: Southbridge Stellt die Northbridge die Verbindung zwischen CPU und Arbeitsspeicher dar, ist die Southbridge zuständig für den Datentransfer und die Datensteuerung zwischen peripheren Geräten (PCI-Steckkarten, IDE- Laufwerke wie Festplatten und DVD-ROM). Kontrolliert neben den angeschlossenen Laufwerken auch die Maus und die Tastatur, sowie verschiedene über USB angeschlossene Geräte, wie z.b. Drucker. Häufig in die Southbridge integriert: Peripheriegeräte wie z.b. OnBoard-Soundlösungen und LAN- Schnittstellen. In moderneren Systemen kann die Southbridge sogar direkt in die Northbridge integriert sein, so z.b. bei nvidia's nforce4 Chipsatz. Bildnachweis: Southbridge VIA VT82C686B: MOS6502, http://commons.wikimedia.org/wiki/file:southbridge_via_vt82c686b.jpg
*
Der Kern des Ganzen / und die Klausur? Turing-Test Eliza (Weizenbaum) von-neumann / Morgenstern: Spieltheorie Auszahlungsmatrix Minimax-Theorem Minimax-Algorithmus Spielbaum von-neumann-architektur Aufbau Funktionsweise Von-Neumann-Zyklus Vorzüge / Probleme Von-Neumann-Flaschenhals Moores Law Cache / Caching (Rechneraufbau heute)
/
Hausaufgaben Aufgabe 1 Was macht den Von-Neumann Rechner zu einem Universalrechner? Aufgabe 2 Aus welchen Komponenten setzt sich ein von Neumann-Rechner zusammen? Welche Aufgaben haben die einzelnen Komponenten? Aufgabe 3 Welche Problematik wird als der von Neumann-Flaschenhals bezeichnet? Aufgabe 4 Was ist Cache-Speicher? Erörtern Sie bitte Cache als Bestandteil der CPU und Cache / Caching als allgemeines Prinzip.