Übersicht Einleitung 1 Einleitung Dr.-Ing. Volkmar Sieh 2 Technologische Trends Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009 3 Historischer Rückblick Einleitung 1/50 2008-10-13 Einleitung 2/50 2008-10-13 Übersicht 1 Einleitung 2 Technologische Trends 3 Historischer Rückblick Eine beschreibt eine Gesamtheit von Objekten, die in bestimmter Weise miteinander verbunden sind. Dies geschieht unabhängig von einer Realisierung. Einleitung 3/50 2008-10-13 Einleitung 4/50 2008-10-13
Auswirkungen der Rechnerarchitektur Die bestimmt ganz wesentlich die Rechenleistung eines Computers. Sie beeinflusst die Programmierbarkeit von Computern. Verschiedene Applikations-Klassen verwenden verschiedene en: Datenbank-Anwendungen Office-Anwendungen High-Performance-Computing Embedded Systems Mobile Computing Einleitung 5/50 2008-10-13 Einleitung 6/50 2008-10-13 Datenbank-Anwendungen: viele Benutzer On-Line-Operationen kurze Antwortzeiten kurz laufende Jobs große Datenmengen hohe Verfügbarkeit High-Performance-Computing wenige Benutzer Batch-Jobs lang laufende Jobs hohe Rechenleistung hohe Zuverlässigkeit Einleitung 7/50 2008-10-13 Einleitung 8/50 2008-10-13
Grand Challanges Einflüsse auf die Rechnerarchitektur Grand Challenges Beispiel: 72-Stunden Wettervorhersage Technologie Programmiersprachen / Compiler Betriebssysteme Anwendungen historische Einflüsse... Einleitung 9/50 2008-10-13 Einleitung 10/50 2008-10-13 -Analysen Architekt Machbarkeitsstudie Leistungsbewertung Verläßlichkeitsbewertung Kostenanalyse Architekt sucht im Raum der möglichen Designs nach der besten Lösung Einleitung 11/50 2008-10-13 Einleitung 12/50 2008-10-13
-Analysen kriterien Eigenschaften guter en: hohe Rechenleistung zuverlässig, robust einfach skalierbar, modular handhabbar, programmierbar orthogonal, symetrisch ausgewogen wirtschaftlich, adäquat... Einleitung 13/50 2008-10-13 Einleitung 14/50 2008-10-13 kriterien kriterien Orthogonalität: jedes Modul bietet eine präzise beschriebene Funktionalität; es gibt keine zwei Module, die (in etwa) die gleiche Funktionalität bieten => Wartbarkeit, Kosten, Handhabbarkeit Skalierbarkeit: ohne weitere Änderungen kann durch Hinzufügen weiterer Module ein System verbessert werden => Erweiterbarkeit, Wirtschaftlichkeit Adäquatheit: Die Kosten eines Moduls sind adäquat zur Funktion => Performance, Kosten Symetrie: Existenz eines Moduls impliziert die Existenz eines anderen Moduls => einfache Programmierung Einleitung 15/50 2008-10-13 Einleitung 16/50 2008-10-13
kriterien kriterien (Transparenz) Virtualität: Elimination von physikalischen Grenzen (vitueller Prozessor, virtueller Speicher, virtuelle Kanäle) => skalierbar, ausbaubar, einfache Programmierung Transparenz: unwichtige Details werden verborgen => einfache Programmierung Zugriffstransparenz: identische Operationen um auf Speicher zuzugreifen (Hauptspeicher, Plattenspeicher,...) => einfache Programmierung Ortstransparenz: Zugriff auf Objekte ohne Wissen, wo das Objekt zur Zeit liegt => einfache Programmierung Replikationstransparenz: transparente Nutzung von mehreren Kopien von Objekten => Performance, Zuverlässigkeit Parallelitätstransparenz: transparente Nutzung von Parallelität => Performance, Erweiterbarkeit, Skalierbarkeit Einleitung 17/50 2008-10-13 Einleitung 18/50 2008-10-13 kriterien (Transparenz) Performance-Transparenz: System-Konfiguration kann geändert werden, ohne die Funktionalität zu beeinflussen. => Skalierbarkeit, Wartbarkeit, Zuverlässigkeit Größentransparenz: System kann erweitert werden, so dass sich die Performance verbessert => Skalierbarkeit, Kosten Fehlertransparenz: System verbirgt, maskiert oder toleriert Fehler => Zuverlässigkeit Ein Computer-System besteht aus mehreren Organisationsebenen / Abstraktionsebenen. Rechnerarchitektur beschäftigt sich mit der Maschinenebene. Einleitung 19/50 2008-10-13 Einleitung 20/50 2008-10-13
Rechnerarchitektur: von Computer-Hardware. User Interface (Programmiererschnittstelle): ISA Hardware-System- (Struktur): HSA Hardware-Komponenten bedeutet wichtige Entscheidungen bezüglich der Struktur von Hardware (oder Software): Auswahl von Komponenten und Interfaces Verbindung von Komponenten zu größeren Einheiten Einleitung 21/50 2008-10-13 Einleitung 22/50 2008-10-13 Übersicht Hardware-Ideen müssen von Software-Designern akzeptiert werden; daher sollten Hardware-Designer viel über Software wissen. Software-Designer sollten viel über Hardware lernen, um mit Hardware-Designern über neue Hardware reden und sie damit beeinflussen zu können. 1 Einleitung 2 Technologische Trends 3 Historischer Rückblick Einleitung 23/50 2008-10-13 Einleitung 24/50 2008-10-13
- 1940: Mechanische Maschinen 1938-1953: Elektromechanische Relais, Röhren 1952-1963: Transistor, Magnetkernspeicher 1962-1975: SSI - MSI, Halbleiterspeicher, Mikroprozessoren 1972-1985: LSI - VLSI, Vektorrechner, Multiprozessoren, Pipelining 1982 - : RISC, Super-Skalar, massiv-parallele Multiprozessoren, High-Performance-Workstations und -Netze Zeiten für die Ausführung einzelner Operationen: Elemente Zeit relative Zeit Relais 100ms 10.000.000 Röhre 1ms 100.000 Transistor 100µs 10.000 SSI-MSI 1µs 100 VLSI 10ns 1 Einleitung 25/50 2008-10-13 Einleitung 26/50 2008-10-13 Kapazität und Zugriffszeiten von RAM-Chips: Anzahl Logikelemente in Mikroprozessoren: Jahr Größe Zugriffszeit 1980 64 kbyte 250 ns 1983 256 kbyte 220 ns 1986 1 MByte 190 ns 1989 4 MByte 165 ns 1992 16 MByte 145 ns 1996 64 MByte 120 ns 1999 256 MByte 2002 1 GByte 2006 4 GByte Einleitung 27/50 2008-10-13 Einleitung 28/50 2008-10-13
Instruktionen pro Sekunde / $ Technologie => große Änderungen: Prozessor Anzahl Logikelemente: 30% pro Jahr Taktrate: 20% pro Jahr RAM Kapazität: 60% pro Jahr (alle 3 Jahre vervierfacht) Geschwindigkeit: 10% pro Jahr Kosten pro Bit: 25% pro Jahr Harddisk Kapazität: 60% pro Jahr Einleitung 29/50 2008-10-13 Einleitung 30/50 2008-10-13 Systemverbesserungen Vorhersagen: Einleitung 31/50 2008-10-13 Einleitung 32/50 2008-10-13
- Prozessor-Verbesserungen Verbesserungen in Technologie und auf allen Ebenen: Prozessor RAM System Verbindungsnetzwerk Beispiel: Intel i80x86 1978: 8086 (16 Bit Daten, 20 Bit Adressen) 1980: 8087 Floating-Point-Coprozessor 1982: 80286 (24 Bit Adressen) 1985: 80386 (32 Bit Daten/Adressen) 1989-1997: 80486, Pentium (einige neue Instruktionen) 1999: Merced / Itanium Einleitung 33/50 2008-10-13 Einleitung 34/50 2008-10-13 Übersicht Schickhard 1 Einleitung Wilhelm Schickhard 2 Technologische Trends 3 Historischer Rückblick 1592-1635 Einleitung 35/50 2008-10-13 Einleitung 36/50 2008-10-13
Pascal Leibniz Blaise Pascal Gottfried von Leibniz 1623-1662 1642 1646-1716 Einleitung 37/50 2008-10-13 Einleitung 38/50 2008-10-13 Babbage Hollerith-Maschine Erster programmierbarer Computer Charles Babbage Herman Hollerith 1792-1871 1860-1929 1832 Einleitung 39/50 2008-10-13 Einleitung 40/50 2008-10-13
Zuse Z1 Mark 1 Erster frei programmierbarer Rechner Erster Digitalrechner Konrad Zuse Howard Aiken 1910-1995 1938 1900-1973 1944 1939- Einleitung 41/50 2008-10-13 Einleitung 42/50 2008-10-13 ENIAC 1 John von Neumann Rechner mit elektronischen Röhren John Eckert von-neumann - / IAS bit-parallel Machine 1919-1995 John Mauchly 1903-1957 1907-1980 1945 1952 1946- Einleitung 43/50 2008-10-13 Einleitung 44/50 2008-10-13
DEC PDP-1 Erster kommerzieller Rechner mit Monitor und Tastatur Intel 4004 Erster Mikroprozessor 1960 1971 Einleitung 45/50 2008-10-13 Einleitung 46/50 2008-10-13 ILLIAC IV Erster SIMD-Rechner Cray 1 Erster Vektor-Rechner (> 100 Million FLOPS) Seymour Cray 1925-1996 1972 1976 Einleitung 47/50 2008-10-13 Einleitung 48/50 2008-10-13
Apple 1 Erster Ein-Platinen-Rechner Steven Jobs Heute Mobile Geräte 1955- Steve Wozniak 1950-1976 Einleitung 49/50 2008-10-13 Einleitung 50/50 2008-10-13