Modul EPI (Einführung in die Praktische Informatik) Vorlesung: Grundlagen der Programmierung (GPR)
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Modul EPI (Einführung in die Praktische Informatik) Vorlesung: Grundlagen der Programmierung (GPR) V01 Computer – Algorithmus – Programm (1) Prof. Dr. Detlef Krömker Professur für Graphische Datenverarbeitung Institut für Informatik Fachbereich Informatik und Mathematik (12)
Rückblick Organisation 1. Sie sollten sich in drei Moodle-Kursen (GPR, EPR und STO/EIS) angemeldet haben! 2. Sie sollten sich zu den Übungsgruppen GPR und EPR und einer Mentorengruppe (STO/EIS) angemeldet haben und eingeteilt worden sein! 3. Sie sollten ihre eigene Arbeitsumgebung für Python anlegen. 4. Sie sollten Zweierteams (x2 = 4 ➔ Lerngruppe) bilden! 5. Sie sollten das Quiz Q00 „Testkurs“ gemacht haben. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
FAQs (die kleinen Trostpflästerchen) ‣ Wenn ich den Anmelde-Termin verpasst habe, was dann? ‣ Wenn ich die Übungsgruppe wechseln will - egal warum? ‣ In Moodle Änderungswünsche annoncieren und Tauschpartner suchen! Wenn erfolgreich, gleich zu 2.(unten) gehen. ‣ Nachrücker/Wechsler können sich noch anmelden! ‣ 1. Moodle schauen, wo noch Platz ist ‣ 2. Direkt zur Tutor*in gehen und sie/ihn fragen, ob er/sie noch jemanden aufnimmt. Dieser gibt uns dann ggf. die Änderung bekannt. ‣ Fragen? Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Unser heutiges Lernziel Zentrale Grundbegriffe kennen lernen: ‣ Computer Als Zwischenruf: Digitale Daten – Bits und Bytes ‣ Algorithmus und erste Beschreibungsmöglichkeiten ‣ Programm (und Programmiersprachen: kommt beides nächste Woche: Genealogie und Paradigmen) Begriffsbestimmung/-klärung ist unser Ziel – nicht strenge Definition! Und „informatische Bildung“ für Sie! Grundsätzlich geht es in GPR um das WARUM? Dazu gehört manchmal ein bisschen Geschichte. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Übersicht 0. Prolog 1. Was ist ein Computer? 2. Zwischenruf: Digitale Daten – Bits und Bytes 3. Das Konzept des von-Neumann-Rechners 4. Eine sehr kurze Geschichte des Digitalrechners 5. Die Vielgestaltigkeit heutiger Computer 6. Performance von Computern 7. Zusammenfassung Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Was ist ein Computer? - Begriffsbestimmung Eine Maschine (heute i.d.R. eine digital-elektronische) zur Speicherung und automatischen Verarbeitung von Daten resp. Informationen (z.B. für mathematische Berechnungen oder allgemeiner Zeichenersetzungen) durch Angabe einer programmierbaren (Rechen-)vorschrift. Die programmierbare, d.h. veränderbare (Rechen-)vorschrift, nennen wir Programm oder Software ➔ Hardware (die Elektronik + Gehäuse), das „unveränderbare“, ➔ Software (das Programm), das „veränderbare“. Aus der Begriffsbestimmung ergibt sich u.a.: Was war der erste Computer? – Wer war der Erfinder des Computers? Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Der Begriff „Computer“ ‣ Computer = Rechner oder Rechenanlage lässt sich aus dem lateinischen computare (zählen, rechnen) herleiten. ‣ Entstammt im modernen Deutsch eher dem Englischen computer. Abgeleitet vom Verb to compute (rechnen). ‣ Ursprünglich im Englischen: „computer“ war ein Beruf: bezeichnete Menschen, die im Mittelalter für Astronomen die quälend langwierigen Berechnungen vornahmen. Thomas J. ‣ Zunächst wurden die „Arbeiter“, die Rechenmaschinen bedienten, Watsonals (CEO) Computer bezeichnet, Erste IBM- Computer Ende später ging der Begriff auf „diese“ Maschinen über. 40er nannte er „Calculator“ Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Zwischenruf: Was ist das - "digital-elektronische Maschine"? ‣ elektronisch? Elektronik ist ein Teilgebiet der Elektrotechnik und wird durch die benutzen Bauelemente gekennzeichnet: (Elektronenröhre, Transistor, Mikroelektronik = miniaturisierte elektronischen Schaltungen, integrierte Schaltungen, IC) ‣ Beispiele für elektronische Bauelemente Röhren (bis ca. 1960) Prozessorchip (2017) Diskrete Elemente (bis 1980) Youtube, Mr1996steffen: AMD Quelle Wikipedia Quelle Wikipedia Ryzen CPU …installieren Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Zwischenruf: Was ist das - "digital-elektronische Maschine"? elektronisch? Elektronik ist ein Teilgebiet der Elektrotechnik und wird durch die benutzen Bauelemente gekennzeichnet: (Elektronenröhre, Transistor, Mikroelektronik = miniaturisierte elektronischen Schaltungen, integrierte Schaltungen, Integrated Circuit (IC)). Für Informatiker ist das die Hardware. Zu unterscheiden sind: Analogrechner: Signale sind wert- und zeitkontinuierlich. Digitalrechner: Signale sind wert- und zeitdiskret. Vorgang der Wandlung nennt man Digitalisierung: zeitlich: Abtastung wertmäßig: Quantisierung Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Zusammenfassung: Digitalrechner Ein Digitalrechner (von lat. digitus = Finger; mit Fingern wird gezählt und gerechnet) kennt nur ‣ diskrete (quantisierte) Werte und ‣ in der zeitlichen Abfolge, Werte nur zu bestimmten diskreten Zeitpunkten, den Abtastzeitpunkten ‣ Die in der Praxis bedeutenste Form stellt die binäre Digitaltechnik dar, die nur zwei gültige diskrete Signalzustände kennt. Diese werden üblicherweise als Bit mit den Werten (logisch) Null (0) und als (logisch) Eins (1) bezeichnet. ‣ Eigentlich müssten unsere Computer "Binärrechner" heißen, aber das sagt niemand. ‣ Größere Wertebereiche deckt man durch geeignete Binär-Codes ab. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Zusammenfassung: Warum darf man fast alles auf einem Digitalrechner berechnen, obwohl fast alle Größen in der Physik kontinuierlich (analog) sind? 1. Die Präzision der Berechnungen auf einem Digitalrechner kann man beliebig hoch treiben. Aber natürlich muss man mögliche Rechenungenauigkeiten (Rundungsfehler) geeignet überwachen. [Das betrachten wir noch genauer bei Floating-Point Zahlen, siehe dort.] 2. Es gibt das Shannonsche Abtasttheorem: d.h. man kann die Abtastraten so wählen (wenn es auch manchmal in der Praxis schwer ist), dass das Signal exakt rekonstruiert werden kann, d.h. gar kein Unterschied mehr zwischen dem analogen Signal und dem aus dem digitalen rekonstruierten Signal bestehtHierzu muss man „nur“ die maximale Änderungsrate (genauer die Grenzfrequenz) eines Signals bestimmen und mit mehr als doppelt so viel abtasten. Echt spannend. 3. Gelegentlich kann man die Einhaltung des Theorems nicht sicher- stellen, dann entstehen allerdings unvermeidbar Fehler. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Übersicht 0. Prolog 1. Was ist ein Computer? 2. Zwischenruf: Digitale Daten – Bits und Bytes 3. Das Konzept des von-Neumann-Rechners 4. Eine sehr kurze Geschichte des Digitalrechners 5. Die Vielgestaltigkeit heutiger Computer 6. Performance von Computern 7. Zusammenfassung Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Zwischenruf Was ist ein Bit? ‣ Ein Bit lässt zwei mögliche Antworten (Werte) auf eine Frage zu, z.B. ‣ Ja oder Nein, ‣ Rechts oder Links, ‣ Wahr oder Falsch. ‣ Ist elementar (nicht weiter teilbar). ‣ Oft werden in diesem Zusammenhang die beiden Werte 0 und 1 benutzt, früher auch 0 und L. ‣ Bit ist eine Wortkreuzung aus binary digit, englisch für Binärziffer. vorgeschlagen von John W. Tukey (1943) 1946. ‣ In der Fachliteratur 1948 zum ersten Mal von Claude Shannons in seiner berühmten Arbeit „A Mathematical Theory of Communication“ erwähnt. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Bitfolgen (Bitvektor) als Code genutzt Daten Zahl Richtung (Code) 000 0 Nord 001 1 Nordost 010 2 Ost 011 3 Südost 100 4 Süd 101 5 Südwest 110 6 West 111 7 Nordwest Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Technische Realisierungen für ein Bit ‣ Das Vorhandensein einer Spannung, die größer oder kleiner als ein vorgegebener Wert ist, z.B. [0..0,8V] = 0 und [2,4..5V] = 1 (Werte im Bereich (0,8...2,4V) sind undefinierte fehlerhafte Zustände. ‣ Die Stellung eines Kippschalters mit zwei Zuständen, zum Beispiel mit den Stellungen EIN oder AUS. ‣ Der Schaltzustand eines Transistors, "geringer Widerstand" oder "hoher Widerstand". ‣ Magnetisierung (auf einer Festplatte) ‣ Loch oder Vertiefung in einer CD (Compact Disk) ‣ Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Bedeutungen und Schreibweisen in Deutsch „Bit oder bit“ ‣ als Element in einer Folge von Binärwerten (einem Vektor, einem Wort) meist Bit, z.B. Bit 3 ‣ als Speicherzelle, meist Bit. ‣ als Stelle in einem nach dem Stellenwertsystem codierten Binärwort meist Bit (von z. B. 32 Bit). ‣ als Einheit des Datentyps Boole, der True (Wahr) oder False (Falsch) sein kann, meist Bit. ‣ als Einheit für eine Datenmenge, meist bit. ‣ als Einheit für den Informationsgehalt (siehe Shannon, später), meist bit. Aber, die Schreibweisen werden leider uneinheitlich genutzt. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Präfixe SI Internationales Einheitensystem Abweich Binär-Einheiten ISO/IEC ung IEC 60027-2 2000-11 Name Name Symbol Vielfaches Symbol Vielfaches (Vorsilbe) (Vorsilbe) Kilo k 103 + 2,4% Kibi Ki 210 = 1024 Mega M 106 + 4,9% Mebi Mi 220 Giga G 109 + 7,4% Gibi Gi 230 Tera T 1012 +10,0% Tebi Ti 240 Peta P 1015 +12,6% Pebi Pi 250 Exa E 1018 +15,3% Exbi Ei 260 Zetta Z 1021 +18,1% Zebi Zi 270 Yotta Y 1024 +20,9% Yobi Yi 280 Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Anmerkungen zu Präfixe Die angegebenen Präfixe für Binäreinheiten sind die strenge (und korrekte) Version nach IEC 60027-2. Man muss jedoch feststellen, dass sich die IEC Norm auch im Fachjargon allgemein nicht durchgesetzt hat. Also wird man anstelle von gibibit (Gibit) = 230 bit = (210)3 bit sehr häufig „einfach“ gigabit (Gbit) hören oder lesen. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Noch eine übliche Einheit: „Byte“ ‣ (fach-)umgangssprachlich die eines Tupels von 8 Bit, deren formale ISO-konforme Bezeichnung Oktett wäre. (1 Byte = 8 Bit) ‣ eine adressierbare Speichereinheit in einem Rechensystem ‣ einen Datentyp in einigen Programmiersprachen für eine 8 Bit breite Einheit, die 256 mögliche Zustände annehmen kann ‣ eine Maßeinheit für 8 Bit bei Größenangaben für Datenmengen (Kapazitäten) 1 Byte = 23 Bit = 8 Bit) ‣ eine Datenmenge von zwei Nibbles (1 Nibble = 4 Bit = 1/2 Byte) (selten genutzt! ‣ gleiche Präfixe wie Bit Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Zur Info Wortherkunft von „Byte“ ‣ Kunstwort abgeleitet vom englischen „bit“ (deutsch: bisschen) und „bite“ (deutsch: Happen). ‣ Speichermenge oder Datenmenge, die ausreicht, um ein alphanu- merisches Zeichen (Buchstaben, Zahlen, Sonderzeichen) darzustellen. ‣ 1956 von Werner Buchholz geprägt in einer frühen Designphase eines IBM-Computers. (Im Original beschrieb Bite eine Breite von 6 Bit und stellte die kleinste direkt adressierbare Speichereinheit dieses Computers dar) ‣ Bereits Ende 1956 erfolgte aber der Übergang zu 8 Bit. Die Schreibweise Bite wurde zu Byte geändert, um versehentliche Verwechslungen mit Bit zu vermeiden. ‣ Byte wird auch als Abkürzung für „binary term“ erklärt – dabei handelt es sich aber um ein Backronym. ‣ Weitere Erklärung: als Kurzform "by eight", frei übersetzt "achtfach". Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Zusammenfassung des Zwischenrufs ‣ Bit und Byte die Mengeneinheiten für Daten. ‣ 1 Bit repräsentiert genau 2 mögliche Zustände. ‣ 1 Byte sind (heute) 8 Bit. ‣ Mit Präfixen kennzeichnet man größere Datenmengen: ‣ kilobyte, Megabyte, Gigabyte, Terabyte, ‣ Die genormten Präfixe (Vielfache von 1024), z.B. Mebibyte, werden in der Regel nicht benutzt! Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Übersicht 0. Prolog 1. Was ist ein Computer? 2. Zwischenruf: Digitale Daten – Bits und Bytes 3. Das Konzept des von-Neumann-Rechners 4. Eine sehr kurze Geschichte des Digitalrechners 5. Die Vielgestaltigkeit heutiger Computer 6. Performance von Computern 7. Zusammenfassung Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Heute haben fast alle Digitalrechner eine von-Neumann-Architekur (1) benannt nach John von Neumann ist ein Schaltungskonzept (eine Architektur) zur Realisierung universeller Rechner (von-Neumann- Rechner) welches folgende Komponenten enthält: ‣ Rechenwerk (führt Rechenoperationen und logische Verknüpfungen aus) ‣ Speicher (speichert sowohl Programme als auch Daten ‣ Steuerwerk (interpretiert die Anweisungen eines Programms und steuert die Ausführung dieser Befehle) ‣ Eingabe-/Ausgabewerke (steuert die Ein- und Ausgabe von Daten) ‣ (Verbindungssystem) Das Rechen- und Steuerwerk (wird zusammen manchmal auch Leitwerk genannt) bilden die so genannte Zentraleinheit, den Prozessor (CPU). Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
von Neumann Architekur (2) Dieses Konzept wurde 1945 in dem Papier “First Draft of a Report on the EDVAC” im Rahmen des Baus der EDVAC beschrieben war zur Zeit seiner Entwicklung „revolutionär“ (oder auch nicht: Konrad Zuse hatte schon 1938 seinen Z3 (Relaisrechner) realisiert). Anderer Rechner jener Zeit hatten ein festes Programm, das z.B. durch Schaltdrähte „programmiert“ wurde oder waren nicht programmierbar. In einer Von-Neumann-Architektur war es nun möglich, Änderungen an Programmen sehr schnell durchzuführen oder in kurzer Folge ganz verschiedene Programme ablaufen zu lassen, ohne Veränderungen an der Hardware vornehmen zu müssen Die „von Neumann-Architektur“ setzte sich sehr schnell durch. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Die „Original“ von Neumann-Architektur Dies Schema hat R I A very high speed automatic digital computing system nur historische outside recording input: organs M Bedeutung … to transfer medium ... numerical conciderable memory for at least the four following phases muss man sich a) intermediate (partial) results must be remembered a stack of (or other) information b) the instructions which govern the complicated problems NICHT merken. punch-cards, c) specific functions, usually in form of a table a teletype from R to M d) ... h) diverse other data tape, etc.: ... tempting to treat the entire memory as one organ information can be instructions (numerical) data produced O directly by output: organs human action to transfer C and sensed numerical directly by information CC CA human organs from M to R proper sequencing of + the machines operations ICA − x OCA ... a general / central organ ÷ functions: JCA (1) receive orders from M (2) interpret them perform the elementary (3) carry them out or operations of aritmetic: stimulate other organs to carry them out +, −, x, ÷ Extrahiert aus dem Text „First Draft of Report on the EDVAC“ mit Datum 30.6.1945 [DK] Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
von-Neumann-Architektur modern dargestellt (3) Das muss man sich merken! Daten Adressen CPU CPU Befehle Central Processing Bedingungen Unit, Zentraleinheit Events = Prozessor Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Das EVA-Prinzip (als Entwurfsmuster) entspricht der von-Neumann-Architektur Verabeitungseinheiten Prozessor, CPU Alle Einheiten und Controller Geräte bestehen heute aus Software und Eingabe Verarbeitung Ausgabe Hardware! Schlüsselfragen: Eingabegeräte Ausgabegeräte • Was ist die Eingabe und Tastatur Monitor /Display womit soll sie erfolgen? Maus Lautsprecher Touchpad Kopfhörer Joystick Speicher Beamer • Was ist die Ausgabe und Scanner Drucker womit soll sie erfolgen? Barcode-Leser Plotter … Speichermedien und -geräte … • Was ist die Verarbeitung Hauptspeicher / Arbeitsspeicher und wie soll sie erfolgen? RAM / ROM, SD-Karten USB-Sticks Festplatte • Was muss zwischen- CD / DVD-laufwerk … gespeichert werden? Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Basis-Architektur des Hauptspeichers … 0 1 0 1 1 0 ‣ heute: 4-64 Gbyte, 1 2 meist Byteweise (=8 Bit) adressierbar ‣ n = 16 ➔ 216 = 65.536 Wörter (Bytes) n Adressbits Speicherkapazität ‣ n = 32 ➔ 232 = 4 Gbyte R/W 2n-2 ‣ Prinzip: Man legt eine Adresse an und 2n-1 (Maschinen-)Wort ‣ heraus kommt ein Maschinenwort Daten und Befehle oder 8 Bit … 256 Bit … ‣ ein Wort wird in den Speicher geschrieben, Je nach Zustand des Signals R/W. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Das Speicher-Dilemma Ein optimaler Speicher sollte ‣ möglichst schnell sein (so, dass der Prozessor nicht warten muss), ‣ die Daten persistent (d.h. auch ohne Stromzufuhr) dauerhaft speichern, … ist also nicht flüchtig. ‣ kapazitätsmäßig möglichst groß sein, ‣ physisch möglichst klein sein und wenig Strom verbrauchen, ‣ möglichst wenig kosten. Dies ist mit einer einzigen Technologie (Realisierung) heute nicht machbar.. Ein Ausweg aus diesem Dilemma ist eine Speicherhierarchie. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Die Speicherhierarchie: Register, Cache, Hauptspeicher, Sekundärspeicher, Tertiärspeicher Prozessor Im Prozessor integriert findet sich ein Registersatz als superschneller Speicher (für Daten und ggf. auch Programm). i.d.R. flüchtig Cache Hauptspeicher (Arbeitsspeicher, Primärspeicher, main memory, Hauptspeicher primary memory, RAM = Random Access Memory = Speicher mit wahlfreiem Zugriff) eines Computers ist die Bezeichnung für den i.d.R. perssistent Speicher, der die gerade auszuführenden Programmteile und die dabei benötigten Daten enthält.. Sekundärspeicher Das (Maschinen-)Programm (die Software) bezieht sich auf die Adressen des Hauptspeichers. Dessen Leistungsfähigkeit und Größe, aktuell ca. (4 – 256 Gbyte), beeinflussen die Leistungsfähigkeit des Computers ganz wesentlich. Tertiärspeicher Dieser Speicher ist typischwerweise flüchtig. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Die Speicherhierarchie: Cache, Hauptspeicher, Sekundärspeicher, Tertiärspeicher Prozessor Problem: Der Hauptspeicher ist für moderne Prozessoren (mit n Kernen) viel zu langsam, beschränkt also die Geschwindigkeit ➔ i.d.R. flüchtig Einführung von Caches (= schneller Puffer-Speicher) Cache Cache: Lehnwort aus dem Englischen von cache = Lager, Versteck, übernommen aus dem Französischen cacher. Der Begriff wurde für die schnellen Zwischenspeicher gewählt, da deren Verwendung transparent, also unsichtbar für den Hauptspeicher Programmierer geschieht, und somit "versteckt" ist. Heute(2020) meist auch noch einmal hierarchisiert: fast immer auf i.d.R. perssistent dem CPU Chip lokalisiert, hält Ausschnitte des Hauptspeichers L1 Cache (First-Level-Cache) sehr schnell, 4 bis 256 KiBit/Kern, Sekundärspeicher oft getrennt für Befehle und Daten L2 Cache (Second-Level-Cache) 64 bis 512 KBit/Kern L3 Cache (Third-Level-Cache) 2 bis 32 MB gemeinsam für alle Kerne Tertiärspeicher Problem: Ersetzungsstrategien? … was passiert beim "Cache Miss" Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Die Speicherhierarchie: Cache, Hauptspeicher, Sekundärspeicher, Tertiärspeicher Prozessor Als Sekundärspeicher bezeichnet man den Speicher eines Computers, auf den nicht direkt vom Prozessor zugegriffen werden kann und der daher die Verwendung der Ein-/Ausgabekanäle des Computers erfordert. i.d.R. flüchtig Sekundärspeicher verwendet, um Daten zu speichern, die nicht im Cache aktiven Gebrauch sind. Sind persistent (nicht flüchtig). Werden nach der zu Grunde liegenden Technik gegliedert: • Magnetische Speicher, Festplatten, Hauptspeicher • (Optische Speicher : CD, DVD, …) • Elektronische Speicher: Flash-Speicher (USB-Sticks, i.d.R. perssistent Solid-State-Drives) • Mechanische Speicher Lochstreifen, Lochkarten obsolet Sekundärspeicher Sekundärspeicher werden i.d.R. mit einem Dateisystem formatiert, das als Abstraktionsschicht für die geordnete Ablage von Dateien und Verzeichnissen fungiert und die Speicherung von Metadaten Tertiärspeicher (Dateibesitzers, Dateiberechtigungen, Zugriffszeiten) unterstützt. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Die Speicherhierarchie: Cache, Hauptspeicher, Sekundärspeicher, Tertiärspeicher Prozessor i.d.R. flüchtig Tertiärspeicher (tertiary storage) sind Langzeitspeicher Cache für die Archivierung von Daten. Sie sind in der Speicherhierarchie die Speicher mit den größten Speicherkapazitäten, aber auch längsten Zugriffzeiten. Hauptspeicher Technisch werden Tertiärspeicher durch Bandlaufwerke und i.d.R. perssistent Magnetbänder, Automated Tape Libraries (ATL), oder große magnetische oder optische Plattenspeicher realisiert. Sekundärspeicher Ggf. auch Wechselsysteme (Juke-Box, Band-Roboter) Die Speicherkapazitäten liegen im Bereich von Tertiärspeicher Petabytes (1015) und Exabytes (1018). Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Zurück zur von-Neumann-Architektur Das muss man sich merken! Daten Adressen CPU CPU Befehle Central Processing Bedingungen Unit, Zentraleinheit Events = Prozessor Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Übersicht 0. Prolog 1. Was ist ein Computer? 2. Zwischenruf: Digitale Daten – Bits und Bytes 3. a) Das Konzept des von-Neumann-Rechners und die Speicherhierarchie b) Ein von-Neumann Maschinenwort (Befehl oder Daten) 4. Eine sehr kurze Geschichte des Digitalrechners 5. Die Vielgestaltigkeit heutiger Computer 6. Performance von Computern 7. Zusammenfassung Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Zurück zur von-Neumann-Architektur Die drei Kernideen 1. Ein Computer besteht aus 4/5 Funktionseinheiten: Speicher, Steuerwerk (oder Leitwerk), Rechenwerk, Eingabe, Ausgabe (Steuerwerk und Rechenwerk bilden zusammen den Prozessor, die CPU) 2. Im Speicher sind sowohl die zu bearbeitenden Daten als auch das Programm abgelegt. 3. Ein Befehls-Ausführungszyklus besteht aus der Folge: 1. Befehl aus dem Speicher holen FETCH (von der Adresse im Befehlszähler) 2. Befehl im Steuerwerk interpretieren DECODE 3. Operand(en) holen FETCH OPERAND(S) 4. Befehl ausführen EXECUTE (5. Erhöhen des Befehlszählers UPDATE IC) Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Wie funktioniert ein Computer? Ein typisches von-Neumann-Maschinenbefehlswort (Maschinen-)Befehl einer Registermaschine Mit fester Einteilung in: Daten Befehle Bedin- gungen Op-Code kodiert Operandenfeld: kodiert die die auszuführen- zugehörigen Operanden de Operation Die Maschinenbefehle beziehen sich auf die Hardware (Rechenwerk, Hauptspeicher, Register = superschnelle Speicher Eingabe und Ausgabewerk) genau dieser im Prozessortakt Maschine. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Beispiele 16 Bit-Befehl: „Lade den Inhalt der Speicherzelle Nr. 108 ins Register Nr. 5“ Binär 0 0 0 1 0 1 0 1 0 1 1 0 1 1 0 0 Op-Code Zieloperand
Zusammenfassung 3: von-Neumann-Architektur: Kernideen ‣ Das ist die Basis aller heutigen Rechner, auch wenn es heute viele Varianten gibt. ‣ Die Verarbeitungseinheiten eines von Neuman Rechners sind: ‣ Steuerwerk ‣ Rechenwerk ‣ Speicher ‣ Ein-/Ausgabewerk ‣ Daten und Programm (Befehle) stehen alle in einem (Haupt-)Speicher. ‣ Die Mikrozyklen einer Befehlsausführung sind: ‣ FETCH (Instruction) ‣ DECODE ‣ FETCH OPERAND(S) ‣ EXECUTE ‣ UPDATE IC (instruction counter) Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Übersicht 0. Prolog 1. Was ist ein Computer? 2. Zwischenruf: Digitale Daten – Bits und Bytes 3. Das Konzept des von-Neumann-Rechners 4. Eine sehr kurze Geschichte des Digitalrechners 5. Die Vielgestaltigkeit heutiger Computer 6. Performance von Computern 7. Zusammenfassung Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
voll erfüllt Noch etwas mehr Geschichte teilweise erfüllt Wie war es davor? (1) nicht erfüllt Was heißt hier Turing-vollständig? Ein Berechnungsmodell ist Turing-vollständig, wenn es alle Turing-Maschinen simulieren kann, d.h. es ist mindestens so leistungsfähig wie Turing-Maschinen. Ein Modell zur Präzisierung des Begriffs „berechenbar“. Alle von-Neumann-Rechner sind Turing-vollständig (Beweis durch Hans Hermes) Die Church-Turing-These trifft Aussagen über die Fähigkeiten einer Rechen- maschine. Sie lautet: „Die Klasse der „Turing-berechenbaren Funktionen“ stimmt mit der Klasse der intuitiv berechenbaren Funktionen überein.“ … ist leider nicht beweisbar! siehe Theorie Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Architektur der „Analytical Engine“ (1833 – 1842) Auch dieses Ingress Axis 2 Mill 2 nicht lernen … Exgress Axis + - Nur zur Info! x Ingress Axis 1 Store ÷ 1 Exgress Axis from store Primed Ingress Axis 1 Primed Run-Up Lever Sollte mit einer Dampfmaschine angetrieben werden! Number Cards Variable Cards Operations Cards Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
voll erfüllt teilweise erfüllt Wie war es davor? (1) nicht erfüllt Name Haupt- Fertigstel- Techno- Program- Turing- entwickler lung logie mierbar? vollständig Analytical Charles (1833 -1842) Mechanik Lochstreifen Ja Engine (nicht Babbage 100 realisiert) Jahre ABC John V. 1941 Elektronen- Nein Nein Computer Atanasoff röhren Clifford Berry Z3 Konrad Zuse 1941 Relais Lochstreifen (Ja) Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
voll erfüllt teilweise erfüllt Wie war es davor? (1) nicht erfüllt Name Haupt- Fertigstel- Techno- Program- Turing- entwickler lung logie mierbar? vollständig Analytical Charles (1833 -1842) Mechanik Lochstreifen Ja Engine (nicht Babbage 100 realisiert) Jahre ABC John V. 1941 Elektronen- Nein Nein Computer Atanasoff röhren Nur lineare Clifford Berry Gleichungen Z3 Konrad Zuse 1941 Relais Lochstreifen (Ja) Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
voll erfüllt teilweise erfüllt Wie war es davor? (1) nicht erfüllt Name Haupt- Fertigstel- Techno- Program- Turing- entwickler lung logie mierbar? vollständig Analytical Charles (1833 -1842) Mechanik Lochstreifen Ja Engine (nicht Babbage 100 realisiert) Jahre ABC John V. 1941 Elektronen- Nein Nein Computer Atanasoff röhren Clifford Berry Z3 Konrad Zuse 1941 Relais Lochstreifen (Ja) Colossus M.H. 1944 Elektronen- Datenband Nein Newman I.J. röhren und Good Verkabelung Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Wie war es davor? (2) Name Haupt- Fertigstel- Techno- Program- Turing- entwickler lung logie mierbar? vollständig Harvard Howard H. 1944 Mechanik Lochstreifen Ja Mark I Aiken (und Relais) (ASCC) ➔ IBM ENIAC Mauchley 1946 Elektronen- Verkabelung Ja und Eckert röhren von Neumann Architektur (First Draft ... EDVAC „Electronic Discrete Variable Computer“ 1945 datiert, veröffentlicht 1946 aus der Gruppe Eckert+Mauchly heraus, beide ENIAC) Manchester F. Williams 1948 Elektronen- „stored Ja Mark I U Man röhren program“ Prototyp „Baby“ und fast alle nachfolgenden Computer! Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Also, wer war der Erfinder des Computers? Z3 Konrad Zuse? ENIAC John Mauchley, Presper Eckert? Analytical Engine Charles Babbage? John von Neumann 30.6.1945? … ... also: Es gibt nicht den “einen Erfinder”(!) Der Computer ist eine “Gemeinschaftserfindung”! Mehrere Personen haben dazu beigetragen. (Auch wenn sich die Erfinder meist nicht persönlich kannten!) Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Entwicklung ab 1950 – „Elektronengehirne“ In den USA vor allem ‣ mit „Starthilfe“ von Howard Aiken ➔ (der Computerhersteller) IBM ‣ Eckert und Mauchly (eigene Firma) ➔ UNIVAC ‣ F. Williams ( U Manchester) ➔ Ferranti ‣ Konrad Zuse ➔ Zuse KG (AG) 1960 in den USA: „IBM und die sieben Zwerge“ – gemeint waren UNIVAC 12 % Marktanteil , Burroughs 3 %, NCR 3 %, CDC, RCA, Honeywell, GE: IBM beherrschte 70% des US Marktes: „Big Blue“ Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Heute Die allermeisten Computer haben heute eine (modifizierte) von-Neumann- Architektur. Sind Multiprozessoren, d.h. haben oft mehrere Prozessorkerne (Cores). Wir unterscheiden: CISC RISC Complex Instruction Set Computer Reduced Instruction Set Computer Viel mehr hierzu lernen Sie in den Veranstaltungen der Hardware Kollegen, namentlich in der Veranstaltung „Automaten und Rechner- architekturen“ (ARA). Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Zusammenfassung: Die Geschichte des Computers ‣ Heute haben fast alle Computer eine Variante der von-Neumann- Architektur. ‣ Diese erfüllt die Anforderungen an einen Computer: Eine Maschine (heute i.d.R. eine digital-elektronische) zur Speicherung und automatischen Verarbeitung von Daten resp. Informationen (z.B. für mathematische Berechnungen oder allgemeiner Zeichenersetzungen) durch Angabe einer programmierbaren (Rechen-)vorschrift. ‣ Außerdem ist ein solcher Rechner turing-vollständig, kann also alle denkbaren Algorithmen ausführen. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Übersicht 0. Prolog 1. Was ist ein Computer? 2. Zwischenruf: Digitale Daten – Bits und Bytes 3. Das Konzept des von-Neumann-Rechners 4. Eine sehr kurze Geschichte des Digitalrechners 5. Die Vielgestaltigkeit heutiger Computer 6. Performance von Computern 7. Zusammenfassung Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Digitalcomputer vs. Analogcomputer Unsere Definition ist eingeschränkt auf Digitalrechner, also solche Rechner, die mit diskreten, endlichen Zahlenmengen oder Zeichenmengen arbeiten (informationstragenden Größen = Daten) Historisch gibt es eine andere Art: die Analogcomputer oder Analogrechner: Sie repräsentieren ihre Daten nicht als diskrete Werte, sondern als kontinuierliche (analoge) Größen, zum Beispiel in Form von geometrischen Längen oder Winkeln (mechanisch, z.B. Rechenschieber, Planimeter) oder elektrischen Spannungen oder Strömen. Das Einhalten des Shannonschen Abtasttheorems sichert die Korrektheitt der digitalen Berechnungen. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Digitalcomputer Analogcomputer Frage: "Was sind Bausteine des Programmierens?“ Elementare Operatoren Elementare Operatoren: ‣ Addition, Subtraktion, ‣ Summierer, Multiplizierer, Inverter Konkatenation, etc. Integratoren, Differentiatoren ‣ Zuweisung: ‣ Funktionsgeber (Sinus, Sprung, A = B, A:=B, AB Impuls, etc.), ‣ Verzweigung ‣ Verbinungen, if then ... Koeffizienteneinsteller elementares Rechnen, Löst gewöhnliche Vergleichen, Ersetzen Differentialgleichungen Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Programm und Ausgabe eines Analogrechners Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
… und so sah ein Analogcomputer aus! Bildquelle: iee.et.tu-dresden.de Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Nachteile des Analogcomputers Entscheidendes Problem analoger Rechner ist die Genauigkeit (Präzision), bedingt durch unvermeidliches Rauschen (Störsignale, die entstehen, sobald Strom fließt). Wir können (auch heute) nur Messgeräte bauen, die einen maximalen Messbereich von 6–7 Zehnerpotenzen (= Stellen) aufweisen. ➔ das Gewicht eines Lkws gerade noch aufs Gramm genau angeben, aber z.B. nicht den Umsatz eines Großunternehmens in Cent genau oder die Berechnung einer Flugbahn zum Mars durchführen. Nur bis in die 70er Jahre waren Analogrechner gebräuchlich. Die digitale Mikroelektronik war danach so leistungsfähig, dass man sie auch zur Integration, Differentiation, usw. nutzen konnte (➔ Numerik) – ohne die genannten Nachteile. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Herausforderungen (Nachteile) mit Digitalcomputern ‣ Unsere reale Umwelt besteht meist aus kontinuierlichen Größen: Längen, Massen, Zeit, … (zumindest solang, wie die klassischen Naturgesetze (Ursache-Wirkung) gelten (also wir nicht in Bereichen der Planck-Einheiten agieren. Planck- Einheiten markieren minimale Grenzen, z. B. für die Länge: 1,616 255(18) · 10−35 m für die Zeit: 5,391 247(60) · 10−44 s.) Geld ist aber diskret. ‣ Also müssen wir die kontinuierlichen Größen diskretisieren und quantisieren. ‣ Hier gibt es gehöriges Fehlerpotential. Die möglichen Fehler nennen wir bei der Abtastung und Rekonstruktion Aliasing. Wir müssen insbeson- dere dafür sorgen, dass das Abtasttheorem (C. Shannon) erfüllt ist! Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Vielgestalt des heutigen Computers ‣ die meisten Computer sind als solche teilweise kaum erkennbar: ubiquitous (allgegenwärtig) als embedded System im Handy, im Auto, in der Waschmaschine, … ‣ smart watches, smart everything … ‣ PDA (Handy, Smartphone, Tablett): Personal Digital Assistant ‣ Laptop (= "Auf dem Schoß"), oder Notebook ‣ Arbeitsplatzrechner (Desktop Computer, Personalcomputer, PC): ‣ Server (Pendant zum Arbeitsplatzrechner, bietet zentrale Dienste) ‣ Host (mehrere Server) ‣ Mainframe (Großrechner ≈ Host: Server für max. Benutzer Transaktionen) ‣ Supercomputer (maximale Rechenleistung – TeraFlops – PetaFlops) ‣ Eingebettete Systeme Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Supercomputer sind Hoch-(Höchst-)leistungsrechner, die zum Zeitpunkt ihrer Einführung im obersten realisierbaren Leistungsbereich operieren, siehe http://www.top500.org (Halbjährlich wird die Liste der 500 schnellsten Supercomputer veröffentlicht) . Typisches Merkmale eines heutigen Supercomputers sind seine große Anzahl an Prozessoren (einige Hundert bis einige Hunderttausend), i.d.R. sehr großer Hauptspeicher. Zum Vergleich: Sämtliche Berechnungen aller Computer weltweit aufaddiert, im Zeitraum on 1960 bis 1970 (in 10 Jahren) könnte ein heutiger Supercomputer in etwa 30 Sekunden durchführen. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
… und so sahen sie 2019 aus: Im Juni 2019: Summit: DOE/SC/Oak Ridge National Laboratory No. 1 since June 2018 Summit, an IBM-built supercomputer Performance: 122.3 petaflops on High Performance Linpack (HPL) Summit has 4,356 nodes, each one equipped with two 22-core Power9 CPUs, and six NVIDIA Tesla V100 GPUs. Quelle: https://www.top500.org/resources/top- systems/summit-doescoak-ridge-national-laboratory/ Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Performance von Supercomputern (Juni 2019) Entwicklung zeigt: Erhöhung um den Faktor 2 jedes Jahr. Achtung: Die Ordinate ist eine Logarithmische Skala. Die Performance wird in FLOPS gemessen. Genutzt wird der LINPACK-benchmark (Lösung eines sehr großen Gleichungssystems mit dem Gaußalgorithmus als LR-Zerlegung. 2020: Fujitsu Fugado Rmax = 415.530 Tflops, Kobe Japan Aus: Author Morn https://commons.wikimedia.org/wiki/File: Supercomputing-rmax-graph2.svg Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
An der Goethe-Uni ‣ wird der Rechner selbst gebaut (➔ Prof. Lindenstruth), ‣ wird Systemsoftware entwickelt (➔ Prof. Kisel), ‣ gewinnt man Preise für Energie-effizientes Sortieren (➔ Prof. Meyer), ‣ Geht man auch echte Zukunftsthemen an: Quanten Computing (➔ Prof. Lippert) ‣ Eine weitere Professur ist ausgeschrieben „Green Computing“ ‣ … und gibt es viele interessante Anwendungen: Physik, Chemie, Klimatologie, …, Bioinformatik Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Eingebettete Systeme (1) ‣ Ein eingebettetes System (embedded system) ist ein Computersystem, das in ein umgebendes technisches System integriert/eingebunden ist und mit diesem in Wechselwirkung steht. ‣ Dabei übernimmt der Rechner meist Überwachungs-, Steuerungs- oder Regelfunktionen oder erfüllt Dienste zur Daten- bzw. Signalverarbeitung, z.B. zum Ver-/Entschlüsseln, Codieren/Decodieren oder Filtern. Auch die Realisierung eines geeigneten User Interfaces (einer Benutzungs-schnittstelle) gehört dazu. ‣ Heute sind mehr als 95% der produzierten Chips für eingebettete Systeme bestimmt. ‣ Es ist durchaus möglich, dass sehr bald mehr Objekte als Menschen mit dem Internet verbunden werden und interagieren ➔ Internet of Things. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Eingebettete Systeme (2) ‣ Eingebettete Systeme verrichten – weitestgehend unsichtbar für den Benutzer ihren Dienst – in einer Vielzahl von Anwendungsbereichen und Geräten. Beispiele sind: ‣ Haushaltsgeräte: Waschmaschinen, Kühlschränke, … (weiße Ware) ‣ Unterhaltungselektronik: Fernseher, DVD-Player, … (braune Ware) ‣ Flugzeuge, ‣ Kraftfahrzeugen (in der Oberklasse > 100 ECUs (Steuergeräte)) ‣ Werkzeugmaschinen, ‣ Geräten der Medizintechnik, ‣ Mobiltelefone, usw. usw. ‣ Größere Gesamtsysteme betreiben oft ein Netzwerk mit einer Vielzahl von ansonsten autonomen, eingebetteten Systemen. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Zusammenfassung ‣ Die Anzahl der Computer in unserem Lebensumfeld ist enorm! ‣ Die meisten sind "embedded". Siehe die Professuren Uwe Brinkschulte, Lars Hedrich (Kopplung zur Analogwelt!) ‣ Die Goethe-Uni bietet ein tolles Umfeld fürs Kennenlernen von Höchstleistungsrechnen und eingebetteten Systemen und natürlich anderen Sachen: Künstliche Intelligenz. ‣ Die Leistungsfähigkeit der Rechner verdoppelt sich in etwa jedes Jahr! Die sogenannte Moore's Law sagte zwar Verdopplung alle 18 Monate, aber … tatsächlich sind wir etwas schneller. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Übersicht 0. Prolog 1. Was ist ein Computer? 2. Zwischenruf: Digitale Daten – Bits und Bytes 3. Das Konzept des von-Neumann-Rechners 4. Eine sehr kurze Geschichte des Digitalrechners 5. Die Vielgestaltigkeit heutiger Computer 6. Performance von Computern 7. Zusammenfassung + Ausblick Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Übrigens: Rechenleistung (Performance) ‣ anfangs wurde sehr grob gemessen in ‣ MIPS (Millionen Instruktionen pro Sekunde) und/oder ‣ FLOPS (Floating Point Operationen pro Sekunde) = Gleitkommaoperationen (für rationale Zahlen) geringe Aussagekraft über Laufzeit einer Anwendung. ‣ Seit den frühen 80er-Jahren: Messung durch Dhrystones und Whetstones durch sogenannte Benchmarks (fest vereinbarte „künstliche“ Programme (zu keinem anderen Zweck), die typische Anweisungsfolgen aufweisen). = typischer Mix von Anweisungen, gibt Anzahl Operationen dieser Mischung an. Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Performance (2) Dhrystone (von Reinhold Weicker 1984 entwickelt) enthält nur Integer-Operationen (Ganze Zahlen) sein Name ist ein Wortspiel auf den damals sehr populären Gleitkomma-Benchmark Whetstone. Whetstone (dt. Wetzstein) schon 1976 in den National Physical Laboratories in Großbritannien entwickelt Er verwendet dazu Fließkomma-Operationen, aber auch Integer- Arithmetik und Zugriffe auf Array-Elemente: [KWIPS oder MWIPS] Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Performance-Messung heute (2020) ‣ Seit 1989 benutzt man Anwendungs-Benchmark-Tests ‣ Z.B. Standard Performance Evaluation Corporation (SPEC) ‣ Enthält neuronale Netze, finite Elemente, Videoenkodierung usw., ‣ in Integer-bezogene (SpecInt) und Floatingpoint-bezogene (SpecFp)- Programme eingeteilt. ‣ heute: Neue Benchmarks für Anwendungen aus dem Bereich der Künstlichen Intelligenz (Artificial Intelligence) ➔ AI-HPC Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Der State-of-the-Art für General Purpose CPUs Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Zusammenfassung ‣ Computer sind aus unserem Lebensumfeld nicht mehr wegzudenken. ‣ Die Leistungsfähigkeit steigt seit 50 Jahren in etwas gleich stark: Verdoppelung alle 18-24 Monate. ‣ Sie müssen die Grundfunktionen einer von-Neumann-Maschine verstehen, um den ganzen Software-Überbau erfassen zu können: Betriebssystem, Interpreter/Compiler, Anwendungssoftware, … Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Durchatmen – wir haben den ersten Teil des Tripels Computer – Algorithmus – Programm ✓ geschafft. In EPI ist das Thema „Computer“ nur „Nebenthema“ (Viel) mehr dazu in Automaten und Rechnerarchitekturen (im SoSe) Nächste Woche geht es hier weiter mit echten Softwarethemen: den Kernbegriffen Algorithmus und Programm: Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Ausblick ‣ Also, nicht vergessen: ‣ Aufgaben für GPR und EPR anschauen, um ggf. im nächsten Tutorium Fragen stellen zu können. ‣ Diese Aufgaben individuell lösen und abgeben (Moodle). ‣ Das Quizz "QG01-Computer" durchführen. … und danke für Ihre Aufmerksamkeit Vorlesung VG01 Computer Prof. Dr. Detlef Krömker
Sie können auch lesen