slide 1 Vorlesung Systeme 1: Architektur Prof. Dr. Ulrich Ultes-Nitsche Forschungsgruppe Departement für Informatik Universität Freiburg
slide 2 Prüfung 18. Februar 2004 8h00-11h40 13h00-18h20 20 Minuten pro Prüfung Prüfungsgespräch keine Vorbereitungszeit nötig
slide 3 Maschinenprogramm...... steuert direkt das Verhalten des Prozessors instruction set architecture
slide 4 Beispiel eines Prozessorinstruktionssatzes (unvollständig, Pentium II)
slide 5 Bedingte Sprünge CMP Op1, Op2 vergleiche die Operanden Op1 und Op2 hierdurch wird faktisch eine Subtraktion Op2 - Op1 durchgeführt und daraufhin so genannte Flaggen im Prozessor gesetzt (flags; Flaggenregister [flag register]) JLT Adr jump if less than; Sprung, falls im vorherigen Vergleichsbefehl Op1 kleiner als Op2 war JGT Adr jump if greater than; Sprung, falls im vorherigen Vergleichsbefehl Op1 grösser als Op2 war JLE Adr jump if less than or equal; Sprung, falls im vorherigen Vergleichsbefehl Op1 kleiner als oder gleich Op2 war JGE Adr jump if greater than or equal; Sprung, falls im vorherigen Vergleichsbefehl Op1 grösser als oder gleich Op2 war JEQ Adr jump if equal; Sprung, falls im vorherigen Vergleichsbefehl Op1 gleich Op2 war JNE Adr jump if not equal; Sprung, falls im vorherigen Vergleichsbefehl Op1 nicht gleich Op2 war
slide 6 Beispielprogramm MOV R1, #0 MOV R2, #1024 MOV R3, #1040 loop: ADD (R2), R1 ADD #4, R2 CMP R2, R3 JLT loop??? Was wissen wir hier??? R1 enthält die Summe der (4 Bytes grossen) Worte an den Speicheradressen 1024, 1028, 1032, 1036
slide 7 Probieren Sie selbst Schreiben Sie ein Maschinenprogramm, das an die Adresse 3000 springt, falls der Inhalt von Register R1 grösser als 500 und kleiner als oder gleich 15000 ist, an die Adresse 3000000, falls der Inhalt von Register R1 kleiner als oder gleich 500 ist, sonst an die Adresse 3 springt.
slide 8 Und zu guter letzt Schreiben Sie ein Programm, das die ersten n Fibonacci Zahlen berechnet und im Speicher ab Adresse 4000 ablegt. n ist hierin der Wert in Register R1. Die Fibonacci Zahlen sind definiert als: 1, 1, 2, 3, 5, 8, 13, 21, 34,... f 0 = 1 f 1 = 1 f n = f n-2 + f n-1, für n 2.
slide 9 Parallelarchitekturen Motivation: Effizienz Bsp. Matrizenmultiplikation: in der Ergebnismatrix werden alle Einträge gemäss dem Schema Zeile mal Spalte hat der Computer so viele Prozessoren, wie die Ergebnismatrix (z.b. n m) Einträge enthält, könnte jeder Eintrag gleichzeitig durch einen Prozessor berechnet werden Beschleunigung um den Faktor n m kann bei grossen Matrizen erheblich sein z.b.: 1000 1000 Matrizen; theoretisch 1 Sekunde statt ca. 11.5 Tagen man bräuchte allerdings einen Computer mit 1 000 000 Prozessoren
slide 10 Parallelarchitekturen SISD = Single Instruction Single Data normaler (nicht-paralleler Computer) von Neumann Rechner SIMD = Single Instruction Multiple Data Vektorrechner Array-Rechner MISD = Multiple Instructions Single Data existiert nicht MIMD = Multiple Instructions Multiple Data Parallelrechner Rechner-Cluster aufgeteilte und lokale Speicherarchitekturen
slide 11 Übersicht über Parallelarchitekturen
slide 12 SIMD Es wird pro Zeiteinheit die gleiche Operation von allen Prozessoren ausgeführt ein Programm für alle Prozessoren Jeder Prozessor arbeitet allerdings auf einem anderen Datensatz Verknüpfungen aus der Vektorgeometrie und - analysis sind effizient durchführbar Einsatz bei bestimmten numerischen Problemen z.b. vektor- und matrizenlastige Algorithmen Number crunching
slide 13 SIMD schematisch
slide 14 MIMD - gemeinsamer Speicher (Teilweise) unabhängige Prozessoren, die alle auf den gleichen Speicher zugreifen Interprozessorkommunikation über Speicherinhalt SMP = symmetric multi-processor ein Systemtakt für alle Prozessoren synchronisierte Prozessorzyklen (fetch cycles) NUMA = non-uniform memory access jeder Prozessor stellt in gewisser Weise einen unabhängigen Computer dar nur, dass alle diese Computer einen gemeinsamen Speicher haben Prozessoren laufen asynchron
slide 15 Gemeinsamer Speicher schematisch
slide 16 MIMD - Lokaler Speicher Cluster unabhängiger Computer mit eigenem, lokalem Speicher Kommunikation über Kommunikationskanäle in einen so genannten Verbindungsnetzwerk In diese Kategorie fallen auch alle Arten von Rechnernetzen Aktuelle Schlagworte: E-Science Grid Computing
slide 17 Lokaler Speicher schematisch
slide 18 Allgemeine Architektur
slide 19 Bus Architektur
slide 20 Speicherports
slide 21 Komplexe Architektur
slide 22 Resultierende Probleme Gleichzeitige Speicherzugriffe Transaktionslösungen locking von Speicheradressen manche dieser Probleme treten auch im Kontext von Datenbanken auf viele Benutzer, eine Datenbanktabelle viele Prozessoren, ein Speicher Cache-/Speicheraktualität (Cache-Kohärenz) enthält der lokale Cache-Speicher eines Prozessors noch den tatsächlichen Speicherinhalt nicht nur ich, auch andere verändern den Speicherinhalt Die dargestellten Probleme werden noch in anderen Vorlesungen behandelt Datenbanken verteilte Systeme
slide 23 Das war s für heute. Das ist alles, was ich in der Vorlesungsreihe machen wollte. Nächste Woche: Wiederholung/Fragen zur Prüfungsvorbereitung Eine schönen Rest der Woche!