Vorlesung 2 2. A RCHITEKTUR VON PARALLELRECHNERN Z WEI B ETRACHTUNGSEBENEN SIND M ÖGLICH :: • Architektur eines Prozessors • Systemaufbau aus mehreren Prozessoren Wir werden sehen, daß auf beiden Ebenen ähnliche Ansätze zur Parallelität benutzt werden. Moderne Rechner, sogar einzelne Mikroprozessoren, kann/sollte man als parallele Systeme betrachten ! c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 1 2.1. PARALLELIT ÄT IN M IKROPROZESSOREN A KTUELLE S TEIGERUNGSRATEN : ➀ Steigerung der Taktrate um ca. 30% p.a. ➁ Steigerung der Performance: ca. 55% – 75% p.a. ➂ Aus 1.< 2. folgt, daß ausser der Taktrate noch weitere, architektonische Faktoren zur Performance-Steigerung beitragen. V IER PARALLELIT ÄTSEBENEN IM P ROZESSOR : ➜ (a) Parallelität auf Bitebene ➜ (b) Parallelität durch Pipelining ➜ (c) Parallelität durch mehrere Funktionseinheiten ➜ (d) Parallelität auf Prozeß- bzw. Thread-Ebene werden im Folgenden einzeln kurz besprochen. c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 2 ( A ) PARALLELIT ÄT AUF B ITEBENE : • Alle Bits der Wortbreite können potentiell parallel verarbeitet werden • Entwicklung: 8 −→ 16 −→ 32 −→ 64 Bits • Die Weiterentwicklung ist vorläufig gestoppt, da 64 Bits (vorerst) ausreichende Genauigkeit und Adressraumgröße bieten • Moderne Hardware-Algortihmen für Addition, Multiplikation, etc. sind Parallelalgorithmen (wir werden diese hier nicht näher betrachten) c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 3 ( B ) PARALLELIT ÄT DURCH P IPELINING : M OTIVATION : ➜ Das Pipelining ist eine der grundlegenden Ideen/Paradigmen, die auch im täglichen Leben reichlich benutzt wird (z.B. von Henry Ford in der Autoindustrie eingeführt) ➜ Bearbeitung einer Instruktion besteht aus Schritten/Stufen, z.B.: • • • • F (fetch): das Laden der nächsten Instruktion D (decode): das Dekodieren dieser Instruktion E (execute): das Ausführen der Instruktion W (write-back): das Schreiben des Resultates F D E W ➜ Üblicherweise führt der Prozessor die Stufen einer Instruktion nacheinander (sequentiell) aus: F1 → D1 → E1 → W1 ➜ Auch ein und dieselbe Stufe verschiedener Instruktionen ist häufig nur sequentiell ausführbar: E1 → E2 → E3 → E4 c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 4 P IPELINING : D IE I DEE ➜ Möglichkeit der Parallelität bei diesen Abhängigkeiten zwischen den Stufen: gleichzeitig unterschiedliche Stufen mehrerer Instruktionen, z.B.: W1 || E2 || D3 || F4 ➜ Dies erreicht man durch Pipelining ≈ verzahnt-parallele Ausführung, z.B. wie folgt: Instruktionen F4 D4 E4 F3 D3 E3 W3 F2 D2 E2 W2 D1 E1 W1 4 3 2 1 F1 W4 Zeit 4 Instruktionen brauchen anstatt 4*4=16 lediglich 7 Zeitschritte c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 5 P IPELINING : B EOBACHTUNGEN ➜ Der Speedup wächst mit der Anzahl der Instruktionen ➜ Pipelining ist effizient, wenn verschiedene Pipelinestufen etwa gleich lange dauern ➜ Die Anzahl der Stufen (in der Praxis: zwischen 2 und 20) bestimmt den Parallelitätsgrad ➜ Prozessoren mit vielen Stufen heißen super-pipelined. ➜ Grenzen für die Stufenanzahl/Parallelitätsgrad: • Instruktionen nicht beliebig in gleich große Stufen zerlegbar • Datenabhängigkeiten zwischen Instruktionen • ... und viele andere c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 6 ( C ) PARALLELIT ÄT DURCH MEHRERE F UNKTIONSEINHEITEN ➜ Abkürzung FU = Functional Unit ➜ ALUs, FPUs, etc. können parallel zueinander arbeiten ➜ Zwei Prozessorarten, die mehrere FUs benutzen: ➀ VLIW-Prozessoren (z.B. IA 64) • Beim Übersetzen wird Maschinencode erzeugt, der die zeitliche Verteilung von Instruktionen auf FUs angibt • Die Instruktionsworte werden dadurch lang =⇒ Very Long Instruction Word = VLIW • Das ist statisches Scheduling, d.h. vor der Ausführung, im Gegensatz zum Scheduling zur Laufzeit (dynamisch) ➁ Superscalare Prozessoren (z.B. Pentium) • Teile des Maschinencodes werden per Hardware während der Ausführung den FUs zugeteilt, d.h. zur Laufzeit • Dies ist dynamisches Scheduling durch Analyse der bestehenden Datenabhängigkeiten! ➜ Moderne Prozessoren: 2 bis 6 gleichzeitige Instruktionen c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 7 S UPERSCALARE P ROZESSOREN UND I NSTRUKTIONSFENSTER ➜ Dynamisches Scheduling kostet viel Overhead (Chipfläche), trotzdem werden z.Zt. superscalare Prozessoren bevorzugt ➜ Kosten vs. Nutzen: bei ca. 4 absetzbaren Instruktionen ist die Grenze in etwa erreicht (z.B. in Pentium maximal 3) ➜ Dekodierte Instruktionen werden im sog. Instruktionsfenster abgelegt und, sobald Operanden verfügbar sind, an FU weitergegeben (dispatch) ➜ Korrektheit: Die (funktionale) Semantik des Programms darf durch die parallele Abarbeitung nicht geändert werden ➜ Dies wird vom reorder buffer garantiert: die Ergebnisse werden erst dann in die Register geschrieben, wenn alle vorherige Instruktionen ihre Ergebnisse reingeschrieben haben. c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 8 ( D ) PARALLELIT ÄT AUF P ROZESS - BZW. T HREADEBENE ➜ Bisher sind wir immer von einem Kontrollfluß ausgegangen ➜ Zusätzliche Möglichkeit: Erhöhung des Parallelitätsgrades durch mehrere Kontrollflüsse ➜ Heutzutage auf Prozessorebene noch selten benutzt, ist Gegenstand aktueller Forschung & Entwicklung ➜ Einschlägige Techniken aus der Parallelprogrammierung (siehe später) werden zunehmend in einzelnen Prozessoren eingesetzt, z.B. HTT - Hyper-Threading Technology von Intel ➜ Siehe “Multithreading” in späteren Kapiteln Drei allgemeine Informatik-Aspekte spielen hier eine Rolle: ➜ Statisch vs. Dynamisch (zur Compile- vs. zur Laufzeit) ➜ Nutzen/Optimierung vs. Kosten/Overhead ➜ Korrektheit: Semantik-erhaltende Transformationen c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 9 2.2. K LASSIFIZIERUNG VON PARALLELRECHNERN Wir widmen uns nun dem Aufbau von Parallelrechnern durch das Verbinden mehrerer Prozessoren Eine (noch intuitive und vage) Definition: Ein Parallelrechner ist eine Ansammlung von Recheneinheiten (Prozessoren), die durch koordinierte Zusammenarbeit komplexe Anwendungen schneller lösen können Viele Details in dieser Definition bleiben offen: ➜ ➜ ➜ ➜ Anzahl und Komplexität der Recheneinheiten Struktur der Verbindungen zwischen den Prozessoren Art der Koordination ... und vieles mehr Diese Details werden durch Klassifizierungen festgelegt c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 10 K LASSIFIZIERUNG NACH M. F LYNN [1972] ➜ ➜ ➜ ➜ Eine der ersten Klassifizierungen überhaupt Ist immer noch die meistbenutzte Vorteil: sehr einfach Klassifiziert wird nach zwei Merkmalen: ➀ I ( Instruction): Organisation des Kontrollflusses ➁ D ( Data): Organisation des Datenflusses ➜ Jedes Merkmal kann einen der zwei Werte annehmen: ➀ S: für Single ➁ M: für Multiple ➜ Somit erhält man 4 mögliche Kombinationen: Instruction Data c 2006 BY S M S SISD MISD M SIMD MIMD S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 11 F LYNNSCHE K LASSIFIKATION : SISD Ein Verarbeitungsschritt besteht aus: ➜ Laden einer Instruktion aus dem Programmspeicher ➜ Laden angesprochener Daten aus dem Datenspeicher ➜ Anwendung der Instruktion auf die Daten ➜ Zurückspeichern des Resultates Datenspeicher Prozessor Programmspeicher SISD ≈ Klassisches Von-Neumann-Rechnermodell c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 12 F LYNNSCHE K LASSIFIKATION : MISD Ein Verarbeitungsschritt besteht aus: ➜ Laden einer Instruktion aus eigenem Programmspeicher ➜ Laden derselben Daten aus dem Datenspeicher ➜ Anwendung verschiedener Instruktionen auf dasselbe Datum Datenspeicher Prozessor 1 Programmspeicher 1 . . . . . . Prozessor n Programmspeicher n Keine der gegenwärtigen Architekturen entspricht genau dem MISD-Modell ⇒ bisher keine praktische Bedeutung c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 13 F LYNNSCHE K LASSIFIKATION : SIMD Verarbeitungsschritt: ➜ Laden derselben Instruktion aus (globalem) Programmspeicher ➜ Laden separater Daten aus (gemeinsamem oder verteiltem) Datenspeicher ➜ Synchrone Ausführung der Instruktion auf allen Daten ➜ Beispielanwendung: Seismologie Prozessor 1 Daten speicher .. . Programmspeicher Prozessor n Mehrere realisierte SIMD-Rechner: z.B. Connection Machine (bis ca. 65K Prozessoren), MasPar, etc. bis zur Mitte der 90er c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 14 F LYNNSCHE K LASSIFIKATION : MIMD Ein Verarbeitungsschritt besteht aus: ➜ Laden einer Instruktion aus eigenem Programmspeicher ➜ Laden separater Daten ➜ Asynchrone Abarbeitung der jeweiligen Instruktionen Daten speicher Prozessor 1 Programmspeicher 1 . .. . .. Prozessor n Programmspeicher n MIMD ist das z.Zt. populärste Parallelrechnermodell. Die meisten Parallelrechner sind MIMD-Architekturen, bzw. Hybride, z.B.: MIMD-Maschinen mit SIMD-Knoten c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 15 V ERGLEICH : SIMD VS . MIMD • Vorteil SIMD: nur ein Kontrollfluß =⇒ einfach zu programmieren, da alle Prozessoren gleichzeitig nur ein Kommando ausführen (oder setzen durch Maskierung aus) • Nachteile SIMD: ➜ Streng synchrone Abarbeitung bremst die Geschwindigkeit ⇒ Statement if (b==0) c=a; else c=a/b; benötigt zur Ausführung zwei Schritte: (1) Ein Teil der Prozessoren berechnet c=a; (2) Anderer Teil berechnet c=a/b. ➜ SIMD-Rechner benötigen spezialisierte Prozessoren • Renaissance von SIMD – PlayStation 3 von Sony! Verwendet den Cell-Prozessor von IBM (s. nächste Folie) c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 16 C ELL -P ROZESSOR VON IBM Hohe Leistung durch 8 Synergistic Processor Elements (SPEs) erreicht: ➜ SPE – vollständiger SIMD-Processor mit 128 Registern je 128 Bit ➜ 4 Floating-point Units + 4 Integer Units, insg. 32 GFlops/GOps ➜ Peak Performance des Prozessors: 32 X 8 SPEs = 256 GFLOPS ➜ Die Parallelisierung für PPEs wird vom Compiler gemacht, Prozessor selbst ändert die Reihenfolge der Instruktionen nicht. c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 17 K LASSIFIKATION NACH DER O RGANISATION DES S PEICHERS ➀ Physisch (aus der Sicht des Systemarchitekten) : Parallele und verteilte MIMD-Rechnersysteme Multicomputer Speicher ist physisch verteilt Rechner mit virtuell (durch Hardware) gemeinsamem Speicher Multiprozessoren Speicher ist physisch gemeinsam ➁ Logisch (aus der Sicht des Programmierers) : ➜ verteilter Adreßraum ➜ gemeinsamer Adreßraum Physische und logische Sicht sind zueinander orthogonal ! c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 18 R ECHNER MIT PHYSISCH VER TEILTEM S PEICHER I AUFBAU : ➜ Mehrere Recheneinheiten (Knoten) bestehend aus: Prozessor, lokalem bzw. privatem Speicher, I/O ➜ Verbindungsnetzwerk, das die Knoten durch physische Leitungen verbindet Verbindungsnetzwerk P = Prozessor M = lokaler Speicher P P M M ... P M DATENSPEICHERUNG : ➜ Speicherung und direkter Zugriff auf lokalen Speicher ➜ Zugriff auf Speicher anderer Knoten nur über das Netzwerk, mit “Einverständnis” des Eigentümers c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 19 R ECHNER MIT PHYSISCH VER TEILTEM S PEICHER II P ROGRAMMIERMODELL : ➜ Entspricht dem physischen Aufbau ➜ Expliziter Nachrichtenaustausch (message passing) über das Verbindungsnetzwerk ➜ Komplementäre Sende- und Empfangsbefehle (Send – Receive) • Sendebefehl: PA sendet Nachricht m an PB • Empfangsbefehl: PB empfängt Nachricht von PA in Puffer b und bearbeitet den Puffer anschließend H ERAUSFORDERUNG F ÜR P ROGRAMMIERER : Das Programmieren vom expliziten Nachrichtenaustausch ist aufwendig und fehleranfällig, insb. müssen einzelne Sende- und Empfangsbefehle aufeinander abgestimmt werden. Details dazu – später. c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 20 H ISTORISCHE E NTWICKLUNG VON VER TEILTEM S PEICHER I P UNKT- ZU -P UNKT V ERBINDUNG ( IN ERSTEN PARALLELRECHNERN ): ➜ Ein Knoten ist mit einer festen Menge von anderen Knoten durch physische Leitungen (Links) verbunden ➜ Kommunikation nur mit direkten Nachbarn, entfernte Kommunikation durch die Nachbar-Verbindungen realisiert ➜ Gleichzeitiges Senden und Empfangen evtl. möglich ➜ Die Kommunikation wird vom Programmierer explizit organisiert Computer with distributed memory and a hypercube network c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 21 E NTWICKLUNG VON VER TEILTEM S PEICHER II: DMA-C ONTROLLER ➜ DMA = direct memory access ➜ Direkter Datentransfer zwischen lokalem Speicher und I/O-Anschluß: entkoppelt Kommunikation vom Prozessor ➜ Kommunikation zwischen Nachbar-Knoten ist nicht-blockierend: • Sender initiiert die Kommunikation (und arbeitet weiter) • Die Nachricht wird vom DMA im Empfänger gepuffert • Empfänger entnimmt die Nachricht aus dem Puffer ➜ Entfernte Kommunikation wird durch Software über Nachbar-Links aufgebaut und dauert relativ lange Parallelrechner mit DMA−Verbindungen zum Netzwerk Verbindungsnetzwerk .. . DMA M c 2006 BY P DMA M P S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 22 E NTWICKLUNG VON VER TEILTEM S PEICHER III: H ARDWARE -R OUTER ➜ Entfernte Kommunikation wird von Routern (einer pro Knoten) realisiert, was die Zwischenknoten zusätzlich entlastet ➜ Folge: Entfernungen im Netzerk spielen immer geringere Rolle ➜ Router und Leitungen bilden das eigentliche Netzwerk ➜ Aufgaben des Routers: Pipelining von Nachrichten, Vermeidung von Konflikten und Verklemmungen im Netz ➜ So werden hierarchische Systeme (Cluster) aufgebaut N N R R N R R N N R R c 2006 R BY N = Knoten bestehend aus Prozessor und lokalem Speicher N R M R = Router N N R P N .. ... ... Router externe Eingabekanaele S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 .. . externe Ausgabekanaele 23 R ECHNER MIT PHYSISCH GEMEINSAMEM S PEICHER I AUFBAU : ➜ mehrere Prozessoren ➜ gemeinsamer bzw. globaler Speicher, evtl. in Speichermodulen aufgeteilt, siehe b) ➜ Verbindungsnetzwerk, das die Prozessoren und gemeinsamen Speicher verbindet a) b) P . . . P P M c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 P Verbindungsnetzwerk Verbindungsnetzwerk Gemeinsamer Speicher . . . . . . M Speichermodule 24 R ECHNER MIT PHYSISCH GEMEINSAMEM S PEICHER II P ROGRAMMIERMODELL : ➜ Gemeinsame Variablen (shared variables) ➜ Verwendung von Multithreading: mehrere leichtgewichtige Prozesse arbeiten gleichzeitig (mehr dazu später) ➜ Prozessoren greifen auf gemeinsamen Speicher zu ⇒ Lese- und Schreibkonflikte möglich B EWER TUNG : + relativ einfache Programmierung (Diskussionsfrage, da Konflikte und Synchronisierungsprobleme möglich) + gute Speicherausnutzung: keine Datenreplizierung nötig – Speicherzugriffe aller Prozessoren erfolgen über ein Netzwerk: ⇒ hohe Hardware-Anforderung ⇒ Skalierbarkeit/Erweiterbarkeit des Systems problematisch c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 25 SMP – SYMMETRISCHE M ULTIPROZESSOREN I “Symmetrisch” bedeutet: Alle Prozessoren haben gleiche Funktionalität und gleiche Sicht auf den Gesamtspeicher, insb. gleiche Zugriffsdauer AUFBAU : ➜ Speicherzugriff über einen Bus (potentieller Flaschenhals) ➜ Kein zusätzlicher privater Speicher, evtl. Prozessor-Caches P1 Cache P2 . . . P3 Cache Cache Bus Speicher c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 26 SMP – SYMMETRISCHE M ULTIPROZESSOREN II E INSATZ VON SMP S : • Quasi Industrie-Standard seit mehr als 20 Jahren für Hochleistungsserver, z.B. bei Großbanken. • Werden auch als UMA-Maschinen bezeichnet UMA = Uniform Memory Access • Beispiele: SUN Enterprise und SGI Challenge Systeme • Relativ niedrige Anzahl von Prozessoren wegen Skalierbarkeit (Flaschenhals s.o.!), i.d.R.: bis 30-60 c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 27 R ECHNER MIT VIR TUELL GEMEINSAMEM S PEICHER ➜ Physisch: verteilter Speicher, i.d.R. hierarchisch ➜ Logisch: gemeinsamer Adreßraum durch Kohärenzprotokolle (mehr dazu später) ➜ Unterschiedliche Speicherzugriffszeiten in Abhängigkeit von der Speicheradresse ➜ Bezeichnung: NUMA-Maschinen = Non-Uniform Memory Access p p 1 ... 2 p n schnell M1 M2 Mn langsam Verbindungsnetzwerk c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 28 M ETHODEN ZUR R EDUKTION DER S PEICHERZUGRIFFSZEITEN ➜ Multithreading: jeder physische Prozessor simuliert eine feste Anzahl von virtuellen Prozessoren (abwechselnd) ⇒ verbirgt die Latenz der Speicherzugriffe ➜ Cache: kleiner, sehr schneller Speicher zwischen Prozessor und Hauptspeicher; mehr dazu nächste Vorlesung ⇒ Reduktion der transportierten Daten durch Speicherung häufig genutzter Daten im Cache ➜ Beachte: Cache 6= Cash :–) es wird jedoch manchmal Zeichen $ für Cache verwendet. c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 29 CC-NUMA ➜ CC-NUMA – Cache-Coherent NUMA (siehe Bild) ➜ Der Cache kann Daten aus lokalem und aus virtuell gemeinsamem Speicher aufnehmen ➜ Die “Richtigkeit” von Daten (Cache-Kohärenz) wird von Hardware gewährleistet ➜ Beispiele: SGI Origin 2000, Cray T3E P1 P2 C1 C2 M1 ... Pn Cn M2 Mn Verbindungsnetzwerk c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 30 NC-NUMA UND COMA ➜ NC-NUMA = Non-Coherent NUMA: Hardware gewährleistet keine Kohärenz, deshalb enthält der Cache nur Daten der lokalen Speicher oder Variablen, die nur gelesen werden können ➜ Beispiel: Cray T3D – Vorgänger von Cray T3E ➜ COMA = Cache Only Memory Access (z.B. KSR 1/2): der ganze Speicher besteht aus individuellen Caches Prozessor P1 P2 Cache C1 C2 . . . Pn Cn Verbindungsnetzwerk ➜ Dynamische Speicherzuordnung, hoher Hardwareaufwand c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 31 WAS HABEN WIR HEUTE GELERNT ➜ Bereits im Prozessor gibt es 4 Ebenen der Parallelität ➜ Viele Ideen (Pipelining, Multithreading, etc.) sind an mehreren Ebenen der Parallelität einsetzbar ➜ Moderne Prozessoren sind i.d.R. super-pipelined, sowie superscalar oder VLIW ➜ Flynnsche Klassifizierung unterscheidet 4 Architekturklassen: SISD, MISD, SIMD, MIMD ➜ Speicher kann gemeinsam, verteilt oder virtuell gemeinsam sein ➜ DMA und Router befreien den Programmierer von expliziter Kommunikations-Organisation ➜ Beim (virtuell) gemeinsamen Speicher spielt die Daten-Kohärenz eine entscheidende Rolle Nächste Vorlesungen: Caches, Kohärenz, Konsistenz, etc. c 2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 2 32