B. Einführung B.1. Zielsetzung B.1.1 Grundlage für Hauptstudiumsveranstaltungen/-module Besonders im Bereich Technische & Systemnahe Informatik, z.b.: Medientechnik Computersysteme Kommunikation Echtzeitsysteme Wissenheim 3D Betriebssystemtechnik Verteilte Systeme Robotik Grundstudium B-1 Technische Informatik I + II
B.1.2 Aufbau & Arbeitsweise von Rechnersystemen Möglichkeiten und Grenzen der Hardware: Datenvolumen, Ausführungsgeschwindigkeit Verständnis für spezifisches Systemverhalten: Unglückliche Nutzung von Speicherhierarchien (Cache, RAM, Disk), Systemstart & Konfigurierung, Overhead... Entwicklung hardwarenaher Programme: Implementierung effizienter Programme (z.b. in Maschinensprache) Ansteuerung von Ein- Ausgabegeräten (z.b. Treiber), Intrinsische vs. extrinsische Komplexität => Entwurf schlanker Systeme! B-2
B.1.3 Komponenten & Schnittstellen: CPU, Hauptspeicher, Platine, Bussysteme, Hardwareschnittstellen, Peripheriegeräte, Bildschirm, Vernetzung, Stromversorgung... B-3
B.1.4 Schichtenmodell eines Rechnersystemes Höhere Informatik : - Programmierung, Datenbanken, Verteilte Systeme, Theorie... Systemprogrammierung Betriebsystemkonzepte: - Betriebsmittelverwaltung, z.b. Speicher, Nebenläufigkeit... I K J Ein-& Ausgabegeräte: - Gerätetechnik, Ansteuerung, Interrupts, Treiber... Rechnerarchitektur: - Bussysteme, Rechenfunktionseinheiten, Pufferung, Pipelining Architektur Instruktionssatz (ISA): - Adressenbildung, Registersemantik, Assemblerprogramme... Mikroarchitektur: - Instruktionszyklen, Mikroprogrammierung, RISC/CISC... Rechnerarithmetik: - Zahlendarstellung, Operatoren,... Digitaltechnik Digitale Schaltungen: - mit/ohne Zustand, Zähler, ALU, logische Arrays, Optimierung Digitale Logik: - Gatter, digitale Signale, Signalausbreitung... Elektronik: - Strom & Spannung, Transistoren, Schaltkreisintegration B-4 H G F D C E
B.1.5 Organisation des Unterrichtsstoffes nach dem Sägezahnmodell Betriebssysteme Rechnersysteme Assembler Ti 2 Ti 1 Elektronische GL HWKomponenten SW Komponenten Welche Themen können für Medieninformatik weggelassen werden? Logikbausteine, hardwarenahe Programmierung, OS-Inside. Ein Ansatz auf mittlerer Stufe lässt das Ziel erkennbar werden. Bottom-up Ansatz würde einen langen Atem erfordern. B-5
B.2. Analoge und digitale Rechner B.2.1 Analogrechner Verarbeitung kontinuierlicher Größen: Länge, Spannung, Temperatur Historische Beispiele: Rechenschieber (17. Jahrhundert) Feuerleitrechner (Anfang des 20. Jahrhunderts) elektromechanischer Analogrechner (um 1930) Neuere Analogrechner: Schaltung mit Integratoren und Differentiatoren, Für Differentialgleichungen höherer Ordnung, Weitgehend abgelöst durch Digitalrechner, Für Aufgaben der Regelungstechnik... B-6
B.2.2 Digitale Rechner Diskretisierung physikalischer Größen: mechanische Rasten, Anzahl Perlen, Energiequanten, Spannungsniveaus, Stromfluss, Ladung, Magnetisierung, Quantisierungsfehler bei der Umwandlung. Grösse Zeit Beispiele: Überwiegende Mehrzahl der heutigen Rechner Lochkartenwebstuhl (Anfang 19. Jahrhundert) Abacus (3000 v. Chr.) B-7
B.2.3 Rechengenauigkeit im Vergleich Analogrechner Zumindest theoretisch beliebig genaue Zahlendarstellung, Keine Signalwandlung und wenig Bauelemente erforderlich, Überlagerung des Signales durch kleine Rausch- und Störsignale, Herstellungstoleranzen der Bauelemente bei etwa 0.5%, Temperaturabhängigkeiten der Bauelemente, unpräzise Getriebe, Zeiger und Rasten, Fehlerakkumulation im Laufe der Zeit. Digitalrechner Wortlänge bestimmt die Genauigkeit (8..128 Bit), Ungenauigkeiten bei ungeschickter Programmierung, Ungenauigkeiten entstehen auch bei der Signalwandlung: Sensor A/D Wandler B-8 Motor Digitaler Rechner D/A Wandler
B.2.4 Datenspeicherung im Vergleich Analoge Speicherung: Speicherung von Daten mit Qualitätsverlust, Einigermassen effiziente Bildaufzeichnung, alte Tonkassetten, Schellackplatten, Papierschreiber, Digitale Speicherung: Sehr grosse Hauptspeicher, DVD und Festplatten Speicherung von Daten einfach realisierbar, leistungsfähige Komprimierungen. B-9
B.2.5 Einsatzbereiche im Vergleich Digitalrechner: höhere Genauigkeit lässt sich kostengünstiger erreichen als mit Analogrechnern, Digitale Signalprozessoren ersetzen analoge Elektronik (FFT etc.), heute überwiegend digitale elektronische Rechner im Einsatz Analogrechner: Lösen von Differentialgleichungen, heute nicht mehr in Gebrauch, Einsatz für Spezialprobleme, Filterung von Signalen. Analoges Codeschloss nach PS (auszugsweise): B - 10
B.3. Historische Entwicklung B.3.1 Pionierzeiten, Mechanik 3000 v. Chr: Abacus Älteste Rechenhilfe der Welt noch heute im asiatischen Raum im Einsatz genauer Ursprung unklar verschiedene Versionen. William Oughtred (1629): Rechenschieber. Blaise Pascal: Pascaline (1642): mechanische Rechenmaschine => Zehnerübertrag, nur Addition B - 11
Gottfried Wilhelm Leibniz (1666): Grundlagen der Logik Gottfried Wilhelm Leibniz (1673): Mechanische Rechenmaschine => Präzisionsprobleme bei der Herstellung Stepped Reckoner (Leibniz) vier Grundrechenarten Wurzelziehen Joseph Jacquard (1804): Automatischer Webstuhl, Kette von Lochkarten bestimmt das Web-Muster, Löcher steuern Anheben & Senken der Kettfäden, erster Nur-Lese-Speicher (ROM, Read-Only Memory) B - 12
Charles Babbage (1822): Konzept einer Differenzmaschine, Präzisionsprobleme bei der Herstellung, nie vollendet. Ch. Babbage (1834): Analytische Maschine ( Analytical Engine ) => erste Programmierin: Lady Augusta Ada Lovelace zumindest theoretisch programmierbar, erster universeller Rechenautomat, Einsatz von Lochkarten, Rechenwerk Mill, Speicher Store. George Boole (1847): Boolesche Algebra, als Basis für heutige Digitalrechner, meist binäre logische Operationen. B.3.2 Elektromechanik Vannevar Bush(1930): Differential Analyzer, elektromechanischer Analogrechner. B - 13
Herman Hollerith (1890): elektromechanische Tabelliermaschine => Lochkarten als Datenträger und Operanden, Zähl- und Sortiermaschine (Volkszählung), Holleriths Firma wurde später zur IBM Konrad Zuse, Z3 (1940): 2200 Magnetkontakte (Relais), Steuereinheit mit Sequenzer, Multiplikation in 16 Takten, 10 Hertz Taktfrequenz, Addition in 3 Takten, Speicher mit 64 Wörtern, dezimale Ein-/Ausgabe, 22-stellige Binärzahlen, Gleitkomma-Format. B - 14
1945: von Neumann Rechner-Architektur Team: Presper Eckert, John Mauchly, John von Neumann Leitwerk, Rechenwerk, Speicherwerk, Ein- & Ausgabewerk Leitwerk mit fetch-decode-execute Instruktionszyklus Programme und Daten in einem Speicher Rechenwerk mit ALU und Registern E/A-Werk zur Ein- und Ausgabe klassischer Universalrechner binäre Kodierung. Instruktionen Speicherwerk Daten Steuerwerk Rechenwerk Steuerleitungen E/A-Werk B - 15
B.3.3 Elektronische Computer 1943: Colossus (Alan Turing &al.): Entschlüsselung von Funksprüchen. 1946: ENIAC (John Mauchly, Presper Eckert) gebaut für ballistische Berechnungen (Raketen...), programmiert durch Steckverbindungen, Ein-/Ausgabe mittels Lochkarten, 130 Quadratmeter Grundfläche, 30 Tonnen, 140 Kilowatt, 19000 Elektronenröhren, ca. 5000 Additionen/sek. 3 Funktionstabellen, 20 Akkumulatoren, 1 Multiplizierer. B - 16
B.3.4 Halbleitertechnik 1959: Integrierte Schaltung (Jack Kilby) viele Transistoren und Bauelemente auf einem Siliziumchip. 1961: PDP-1 (Digital Equipment Corporation, DEC) magnetischer Kernspeicher für 4096 18-Bit Worte Transistortechnik, erster Minicomputer, CRT, 512 x 512 Pixel Grafik, 200 khz Taktfrequenz, Minicomputer. 1965: PDP-8 (DEC) Omnibus (erstes Bussystem) B - 17
1965: IBM System/360 => Rechnerfamilie mit gleichem Instruktionssatz 32-Bit Worte, 16 MByte Adressraum Mehrprogrammbetrieb (MFT..) Mikroprogrammierbar. 1972: PDP-11 (DEC) Prozessrfechner, 16-Bit Speicherworte, Entwicklungsumgebung für UNIX und C. 1976: Cray-1, erster Vektorrechner => 1979: DAP (ICL) Distributed Array Processor, massiv paralleler Computer in Serie, Matrix mit 32*32 1-Bit Prozessoren, Single Instruction Multiple Data. B - 18
B.3.5 Arbeitsplatzrechner: 1974: Altair 8800 Heimcomputer, Basic Interpreter. 1981: IBM-PC 5150 - mit 8088 CPU 1985: MIPS - erster RISC-Mikroprozessor. 1992: DEC Alpha 21064-64-Bit RISC-µP. 1997: Supercomputer ASCI Red - 1 Tflops. 2000: Mikroprozessoren mit 1 GHz Takt. 2005: Dual-Core µp (Intel & AMD). 1977: Apple II => 6502 CPU, 1 MHz, 64 Kbyte Speicher, Erweiterbar über Steckkarten, UCSD Pascal, Visicalc. B - 19
B.3.6 Entwicklung der (Intel)-Prozessoren 1971: 4004 Mikroprozessor 1974: 8080, erste universelle 8-Bit CPU auf einem Chip 1978: 8086, 16-Bit CPU auf einem Chip 1981: 8088, Einführung des IBM PC 1986: 80386, erste 32-Bit CPU 1989: 80486, Cache und FPU on-chip 1993: Pentium, interne Parallelisierung 1999: Pentium III, Out-of-Order Ausführung, 2002: Itanium, explizit parallele Ausführung 2003: AMD Opteron, 64 Bit Adressierung 2007: Pentium Core 2, Quad CPU Intel-kompatible CPUs von AMD, VIA, Transmeta,... B - 20
B.3.7 Komplexitätssteigerung Jahr 1971 1972 1974 1978 1982 1986 1989 1993 1995 1997 2001 2002 2002 2005 2007 2008 Transistoren (Ist) 2,300 3,500 4,500 29,000 134,000 275,000 1,200,000 3,100,000 5,500,000 7,500,000 42,000,000 55,000,000 220,000,000 291,000,000 582,000,000 2,100,000,000 CPU 4004 8008 8080 8086 80286 80386 80486 Pentium Pentium Pro Pentium II Pentium 4 Pentium M Itanium II Pentium D Core 2 Quad Itanium Transistoren als Prognose, 2 Jahr*12/22 2.300 3.357 7.150 32.443 147.200 667.883 2.076.324 9.420.800 20.067.078 42.744.526 193.942.603 283.055.370 283.055.370 879.966.091 1.874.400.090 2.735.649.641 Mooresches Gesetz Verdoppelung der Transistorzahl ca. alle 24 Monate, 1 000 000 ~ 220, M ~ 37 Jahre *12/20= 22,2 Monate B - 21
B.3.8 Leistungssteigerung 1975 2005 nach Strey. B - 22
B.3.9 Eckdaten einer aktuellen Intel 7650 CPU (2008/Q1) Das Programm CPU-Z bestimmt Charakteristiken der installierten CPU und weiterer Komponenten. B - 23
B.3.10 Entwicklung der Betriebssysteme -1960: Stapelverarbeitung, Spooling (Ein-/Ausgabe Off-line) 1964: DOS 360 (IBM): allg. OS mit Mehrprogrammbetrieb 1969: Unix (Bell Labs): Betriebssystem für Minicomputer 1972: MVS (IBM): pro Programm ein eigener virtueller Speicher 1976: CPM 80 (Digital Research): OS für Mikroprozessoren 1981: MS/DOS(Microsoft): Durchbruch als µp-betriebssystem 1982 Macintosh Finder => Direkte Manipulation von ICONs, Fenstergestützte Oberfläche, abgeleitet von Xerox Star, graphische Oberfläche, Drag and Drop, Firma Apple, WYSIWYG. B - 24
1985: Netware (Novell): Vernetzung von PCs 1986: MS Windows (Microsoft): graphische Oberfläche für PCs 1996: Linux (Linus Thorvald): Open Source Unix 2005: Windows Vista (Microsoft): bunter, fetter, besser (?) B - 25