Grundlagen der Informatik Unter Verwendung von Folien von Prof Grundlagen der Informatik Unter Verwendung von Folien von Prof. Helmut Balzert MICHAEL M. RESCH (HLRS) Rechneraufbau
Motivation / Inhalte Programm Betriebssystem Rechner Logik / Sprache Was ist Informatik
Kapitel 3: Rechneraufbau MICHAEL M. RESCH (HLRS) Rechneraufbau
Zahlen und Automaten Rechneraufbau
Rechnerentwicklung Zielsetzung Voraussetzung Automatisierung und Beschleunigung einfacher Rechnungen Voraussetzung Automatisierbares Zahlensystem Feinmechanik / Elektronik Rechneraufbau
Reine Symbolsysteme: Symbole stehen für Zahlen Zahlensysteme (I) Reine Symbolsysteme: Symbole stehen für Zahlen Römische Zahlen: I, II, III, IV, V, VI, VII, .. X, L, C, D, M, … MDCCXLIV + CXVII = ? Chinesische / Japanische Zahlen: Rechneraufbau
Zahlensysteme (II) Positionssystem: Man verfügt über eine Menge von Symbolen und ordnet sie in Positionen an. Dezimalsystem 3 6 8 7 2 4 9 109 108 107 106 105 104 103 102 101 100 =3*109+6*108+8*107+7*106+2*105+0*104+4*103+9*102+6*101+8*100 Basis: 10 Symbole: 0,1,2,3,4,5,6,7,8,9 Rechneraufbau
Zahlensysteme (III) Die Bedeutung der 0 Geschichte der 0 Ca. 700 v. Chr. In Babylon (nicht Teil des positionalen Zahlensystems) Ca. 500 v. Chr. in China Ca. 300 v. Chr. in Indien bzw. Griechenland Ca. 825 n.Chr. in Bagdad (al-Chwarizmi „Das Buch über das Rechnen mit indischen Ziffern“) 1202 n.Chr. in Italien (Leonard Fibonacci, „Liber abbaci“ [Buch der Rechenkunst] erlernt in Algier) Rechneraufbau
Mechanische Rechenmaschinen (I) Erste Versuche einer Rechenmaschine Tübinger Prof. Wilhelm Schickard (1592 – 1635) Erfand 1623 eine mechanische Rechenmaschine mit allen vier Grundrechenarten mit automatischem Zehnerübertrag. Rechneraufbau
Mechanische Rechenmaschinen (II) Babbage, Charles (1792-1871), British mathematician and inventor, who designed and built mechanical computing machines on principles that anticipated the modern electronic computer. Babbage was born in Teignmouth, Devonshire, and was educated at the University of Cambridge. He became a fellow of the Royal Society in 1816 and was active in the founding of the Analytical, the Royal Astronomical, and the Statistical societies. © 1993-2003 Microsoft Corporation. All rights reserved. Difference Engine (1823 - 1834) wurde nie beendet Analytical Engine – kam über Designstudien nicht hinaus Ada Lovelace schrieb 1842/43 ein erstes “Programm” zur Programmierung des Analytical Engine für die Berechnung von Bernoulli-Zahlen. Rechneraufbau
Elektronische Verarbeitung Rechneraufbau
Elektronische Rechner 0 kein Strom – keine Spannung 1 Strom – Spannung 1 Rechneraufbau
Binärsystem Positionssystem Basis: 2 Symbole: 0,1 29 28 27 26 25 24 23 22 21 20 =1*29+0*28+0*27+0*26+1*25+1*24+1*23+0*22+1*21+0*20 = 512+32+16+8+2 = 570 Rechneraufbau
Umrechnung: Dezimal in Binär Teile die Dezimalzahl durch 2 Speichere den Rest (0 oder 1) Teile weiter durch 2 bis 0 erreicht ist Notiere die Reste in umgekehrter Reihenfolge 30:2 = 15 Rest 0 15:2 = 7 Rest 1 7:2 = 3 Rest 1 3:2 = 1 Rest 1 1:2 = 0 Rest 1 Rechneraufbau
Berechnen Sie folgende Zahlen Die Binärzahl 101010 in eine Dezimalzahl Die Dezimalzahl 101010 in eine Binärzahl Rechneraufbau
Lösungen 101010 binär ist dezimal 0*1+1*2+0*4+1*8+0*16+1*32 = 42 101010 dezimal ist binär 11000101010010010 101010/2 = 50505 Rest 0 50505/2 = 25252 Rest 1 25252/2 = 12626 Rest 0 12626/2 = 6313 Rest 0 6313/2 = 3156 Rest 1 3156/2 = 1578 Rest 0 1578/2 = 789 Rest 0 789/2 = 394 Rest 1 394/2 = 197 Rest 0 197/2 = 98 Rest 1 98/2 = 49 Rest 0 49/2 = 24 Rest 1 24/2 = 12 Rest 0 12/2 = 6 Rest 0 6/2 = 3 Rest 0 3/2 = 1 Rest 1 1/2 = 0 Rest 1 Rechneraufbau
Erster elektronischer Rechner Konrad Zuse Z1 (1939) und Z3 (1941) ENIAC: 17468 Vakuumröhren 1500 Relais 174 kW Leistung 30t Gewicht 0,2ms Additionszeit 2,8ms Multiplikationszeit Nicht programmierbar! Rechneraufbau
Was heißt „programmierbar“ Die Frage der Programmierbarkeit führt darauf hinaus, dass ein System vorab Information erhält, was es im Ablauf des Geschehens zu tun hat Information erhält was in bestimmten Fällen zu tun ist Wir wollen ein System erhalten, das „selbständig“ agieren kann Rechneraufbau
John von Neumann „Neumann, John von (1903-57), Hungarian-American mathematician, who developed the branch of mathematics known as the game theory. He was born in Budapest, Hungary, and educated at Zürich, Switzerland, and at the universities of Berlin and Budapest. He went to the United States in 1930 to join the faculty of Princeton University. After 1933 he was associated with the Institute for Advanced Study in Princeton, New Jersey. He became a U.S. citizen in 1937 and during World War II served as a consultant on the Los Alamos atomic-bomb project. In March 1955 he became a member of the U.S. Atomic Energy Commission.” © 1993-2003 Microsoft Corporation. All rights reserved. Rechneraufbau
John von Neumann Architektur Hauptidee Gemeinsamer Speicher/Memory für Programme und Daten, wodurch sich das Programm selbst verändern kann So aufgebaute Computer bezeichnet man heute als von Neumann-Computer bzw. von Neumann-Architektur. Programme und Daten liegen im Speicher/Memory MEMORY Rechneraufbau
Prozessoren Rechneraufbau
Schaltelemente (I) 1 1 1 Eingangssignale Schaltelement Ausgangssignal Rechneraufbau
Addition zweier Zahlen = + Die Addition von E1 und E2 erfordert die Verwendung eines Überlaufs Rechneraufbau
XOR Schaltelemente (II) 1 1 Eingangssignale Schaltelement XOR 1 Eingangssignale Schaltelement Ausgangssignal Rechneraufbau
XOR Schaltelemente (II) 1 1 Eingangssignale Schaltelement 1 XOR 1 Eingangssignale Schaltelement Ausgangssignal Rechneraufbau
AND Schaltelemente (III) 1 1 1 Eingangssignale Schaltelement Ausgangssignal Rechneraufbau
AND Schaltelemente (IV) 1 Eingangssignale Schaltelement Ausgangssignal AND 1 Eingangssignale Schaltelement Ausgangssignal Rechneraufbau
Kombination für die Addition (I) Ergebnis XOR 1 1 1 AND Übertrag 1 Rechneraufbau
Kombination für die Addition (II) 1 Ergebnis XOR 1 1 1 1 AND Übertrag 1 1 Rechneraufbau
Prozessor (I) Aus vielen Schaltelementen werden einzelne Funktionseinheiten aufgebaut Die Schaltelemente müssen synchron geschaltet werden Es gibt also einen Takt für die Schaltung Taktfrequenz: Die Frequenz mit der Schaltelemente geschaltet werden Leistung: Ergibt sich aus der Taktfrequenz multipliziert mit der Anzahl der Operationen, die pro Takt ausgeführt werden können Synonym für Prozessor: CPU (Central Processing Unit; Siehe später) Rechneraufbau
Prozessor (II) Technischer Hintergrund Größe der Schaltelemente Strukturen derzeit 0,032µm Geschwindigkeit der Schaltelemente Taktraten derzeit 4 GHz Immer kleiner werdend immer schneller Moore‘sches Gesetz: Alle 1½ Jahre verdoppelt sich die Anzahl der Transistoren Rechneraufbau
Moore‘sches Gesetz (I) Quelle: Moore, Electronics, 38(8), 1965 Rechneraufbau
Moore‘sches Gesetz (II) Quelle: Intel Rechneraufbau
Moore‘sches Gesetz (III) Quelle: Intel Rechneraufbau
Moore‘sches Gesetz (IV) Quelle: International Technology Roadmap for Semiconductors – 2007 Edition Rechneraufbau
Energieproblem Quelle: Gordon Moore, ISSCC 2003 Rechneraufbau
Parallelität statt Taktrate (I) AMD 6-core die shot Intel 8-core die shot Rechneraufbau
Parallelität statt Taktrate (II) Intel Many Integrated Core (MIC): 50 Cores NVIDIA GeFORCE GTX 680: 1536 Cores 3.5 Milliarden Schaltelemente Rechneraufbau
Welchen Prozessor hat Ihr Rechner? Stellen Sie fest Welchen Prozessor hat Ihr Rechner? Welche Taktfrequenz hat Ihr Prozessor? Wie viele Kerne/Cores hat Ihr Prozessor? Wie groß ist der Hauptspeicher Ihres Prozessors? Rechneraufbau
Funktionsweise des Prozessors Rechneraufbau
Wie arbeitet die CPU einen Befehl ab? Fünf wesentliche Schritte Rechnerarchitektur Wie arbeitet die CPU einen Befehl ab? Fünf wesentliche Schritte Lesen der Anweisung (Teil des Programms) aus dem Memory Entschlüsselung der Anweisung Lesen der benötigten Daten aus dem Memory Ausführen der Anweisung Schreiben eines Ergebnisses in das Memory Rechneraufbau
Prozessorarchitektur Funktionseinheiten der CPU Lesen einer Anweisung Instruction Fetch Unit (IFU) Entschlüsselung Instruction Processing Unit (IPU) Lesen der Daten Load Unit (LD) Operation ausführen Arithmetic Unit (ALU [Arithmeitc Logic unit], FPU [Floating Point Unit], …) Schreiben des Ergebnisses Store Unit (ST) Rechneraufbau
Prozessorarchitektur Instruction Proc. Unit Instruction Fetch Unit Floating Point Unit Load/Store Unit Rechneraufbau
Hauptspeicher Rechneraufbau
John von Neumann Architektur Hauptidee Gemeinsamer Speicher/Memory für Programme und Daten, wodurch sich das Programm selbst verändern kann So aufgebaute Computer bezeichnet man heute als von Neumann-Computer bzw. von Neumann-Architektur. Programme und Daten liegen im Speicher/Memory MEMORY Rechneraufbau
Speichergeschwindigkeit Main Memory Cache Floating Point Registers Load Arithmetic Unit Memory Switch Pre-fetch Pre-load Hohe Rechengeschwindigkeit bei Mikroprozessoren nur aus Cache Vektorrechner haben wesentlich höhere Bandbreite Zugriffszeit zum Speicher Latency: ~ 30–200 Zyklen Kann mit pre-fetch und pre-load umgangen werden (latency hiding) Rechneraufbau
Speichergeschwindigkeit Speicherbandbreite Vergleiche Rechner- und Speichergeschwindigkeit: Bsp.: 2 GHz Takt /2 Floating Point Units theoretisch max. 4 GFLOP/s Problem a=b+c 3 Operanden 24 Bytes/FLOP Bsp. Speicherbandbreite 6.4 GB/s max. aus dem Speicher 6.4 GB/s / 24 B/FLOP = 0.27 GFLOP/s = 6.7% der 4 GFLOP/s Peak-Performance Rechneraufbau
Grundbegriffe Rechneraufbau
Binäre Zahlen Binärsystem Speichereinheiten / Größeneinheiten Basis 2 Speichereinheiten / Größeneinheiten Bit (binary digit) Byte = 8 bit Word = Gruppe von 2,4 oder 8 Byte (Herstellerabhängig) Wertebereich des bit 0 oder 1 Off oder On False oder True (Falsch oder Wahr) Rechneraufbau
Zahlendarstellung (I) Arten von Zahlen Ganze Zahlen 0, 3, 2987, -876, 10, -18765 Kommazahlen 0.00000009; 3.14159; -273.16; 115680000000.00 Fließkommazahlen 0.9*10-7, 0.314159*101, -0.27316*103, 0.11568*1012 Rechneraufbau
Zahlendarstellung (II) Fließkommazahlen Vorzeichen Vorzeichen Exponent Mantisse Rechneraufbau
Größeneinheiten (I) Kilo Mega Giga Tera Peta Milli Micro Nano Rechneraufbau
Größeneinheiten (II) Rechneraufbau
Größeneinheiten (III) Floating Point Operation per Second (FLOPS) Bezieht sich auf Fließkommazahlen Ist für die meisten Anwendungen wichtig Zahlendarstellung beachten 4 Byte (32 bit) geht schneller 8 Byte (64 bit) geht langsamer Typische Leistungszahlen Prozessor: 48 GFLOPS (G steht für Giga) Schnellster Rechner: 2,5 PFLOPS (P steht für Peta) Rechneraufbau
Fragen Rechneraufbau