<stefan@net-texde> wwwnet-texde Proseminar Rechnerarchitekturen Parallelcomputer: Multiprozessorsysteme Stefan Schumacher, <stefan@net-texde>, PGP Key <0xB3FBAE33> http://wwwnet-texde/uni Id: mps-folientex,v 1132 2003/11/14 21:14:34 stefan stable
<stefan@net-texde> Gliederung Gliederung Motivation Taxonomie Vektorrechner Feldrechner / systolisches Array Busbasierte Multiprozessorsysteme Schalterbasierte Multiprozessorsysteme Speicherarchitekturen & -verwaltung
<stefan@net-texde> Motivation Warum Multiprozessorsysteme? höhere Leistung bessere Skalierbarkeit besseres Preis/Leistungsverhältnis verteilte Nutzung von Daten und Ressourcen Sicherheit dank Redundanz einfachere Kommunikation
<stefan@net-texde> Motivation Nachteile Verbindungsnetzwerk ist Single Point of Failure Verbindungsnetzwerk meist Bottleneck
<stefan@net-texde> Taxonomie Hardwarekonzepte Kategorisierung nach Verbindung und Kommunikation Einteilung nach Flynn SISD : Single Input Single Data SIMD : Single Input Multiple Data MISD : Multiple Input Single Data MIMD : Multiple Input Multiple Data Stream
<stefan@net-texde> Taxonomie Flynn-Schema Parallelrechner SISD SIMD MISD MIMD von-neuman Vektorprozessor Arrayprozessor nicht existent Multiprozessor Multicomputer
<stefan@net-texde> Taxonomie Tanenbaum-Erweiterung erweitert Flynn-Schema bezgl verteilter Systeme eng gekoppelte Systeme lose gekoppelte Systeme weitere Unterteilung bezgl Kommunikation und Cache Busbasiert Schalterbasiert
<stefan@net-texde> Taxonomie Tanenbaum-Schema MIMD verteilte Systeme und Parallelrechner eng gekoppelt Multiprozessor lose gekoppelt Multicomputer UMA COMA NUMA Gitter Hypercube CoW CC-NUMA NC-NUMA
<stefan@net-texde> Vektorprozessoren Vektorprozessoren Parallelisierbarkeit von Vektoroperationen bestehen aus Skalareinheit und Vektoreinheit Parallelisierbarkeit tranparent in Hardware (Pipeline) Vorteil: gewohnt sequentiell programmierbar einige Compiler können parallelisieren
<stefan@net-texde> Vektorprozessoren Vektorrechner Instruktionspuffer Skalareinheit Vektoreinheit Instruktionsholer Hauptspeicher
<stefan@net-texde> Feldprozessoren Feldprozessoren einen Prozess auf verschiedene Mengen von gleichförmigen Daten anwenden einer Instruktionseinheit instruiert Befehl mehrere nebenläufige spezialisierte CPUs Abarbeitung des Befehls im Gleichtakt auf eigenes Datum
<stefan@net-texde> Feldprozessoren Feldprozessoren Programmspeicher Instruktionsholeeinheit Instruktionsausgabe Maskiereinheit Verarbeitungseinheit Verarbeitungseinheit Verarbeitungseinheit Verarbeitungseinheit Bussystem
<stefan@net-texde> Feldprozessoren Feldprozessorverarbeitungseinheit Skalarkontrolleinheit Maskiereinheit Skalarregister Skalarverarbeitungseinheit Speicher Buskontrolleinheit Instruktion Maske Datenpfad Instruktionspfad
<stefan@net-texde> Feldprozessoren systolisches Array besondere Form des Feldrechners zwei- oder dreidimensionale Verknüpfung von VE taktsynchrones Pipelineverfahren
<stefan@net-texde> Busbasierte Multiprozessorsysteme Busbasierte Multiprozessorsysteme n Prozessoren, 1 Speichermodul, verbunden über Bus Problem: Bus ist Flaschenhals, skaliert suboptimal Lösung: lokaler Cache speichert Blöcke zwischen
<stefan@net-texde> Busbasierte Multiprozessorsysteme Cache CPU 1 CPU 2 CPU 3 CPU n Cache 1 Cache 2 Cache 3 Cache n Speicher I/O
<stefan@net-texde> Busbasierte Multiprozessorsysteme Cache Problem: Cachekoheränz Datum in allen Speichern/Caches gleich Lösung 1: Write-Through-Cache Datum wird sofort in alle Speicher geschrieben Problem: Schreibperformance leidet Lösung 2: Snoopy Cache jeder Cache überwacht Bus auf Schreiboperation bei Treffer eigener gecacheter Daten wird aktualisiert
<stefan@net-texde> Busbasierte Multiprozessorsysteme Cache Lösung 3: Write-Back-Cache Datum wird nicht geändert, sondern als geändert gekennzeichnet Lösung 4: MESI Modified: Cache geändert,hauptspeicher ungültig Exclusive: Zeile liegt nur im Cache und ist unverändert Shared: Zeile liegt auch in anderen Caches Invalid: Zeile nicht im Cache verfügbar
<stefan@net-texde> Schalterbasierte Multiprozessorsysteme Schalterbasierte Multiprozessorsysteme Verschaltung von Speicher und CPUs, mehr als ein Bus Kreuzschienenverteiler (Crossbarswitch) Omeganetzwerk
<stefan@net-texde> Schalterbasierte Multiprozessorsysteme Kreuzschienenverteiler Kreuzschienenverteiler in 4x4 Matrix CP U : 0 CP U : 1 CP U : 2 CP U : n Speicher : 0 Speicher : 1 Speicher : 2 Speicher : n
<stefan@net-texde> Schalterbasierte Multiprozessorsysteme Omega Netzwerk Omeganetz mit 4 2x2-Schaltern CP U : n Speicher : n CP U : 2 Speicher : 2 CP U : 1 Speicher : 1 CP U : 0 Speicher : 0
<stefan@net-texde> Speicherarchitekturen und -verwaltung UMA UMA : Uniform Memory Architecture alle CPU mit Speicher verbunden siehe Einprozessorsysteme gleichförmiger Zugriff auf Speicher geringe Latenzzeit Beispiel: SMP
<stefan@net-texde> Speicherarchitekturen und -verwaltung NUMA NUMA : Non Uniform Memory Architecture nichtgleichförmiger Zugriff auf lokalen oder entfernten RAM Zugriff auf entfernten RAM möglich, aber langsam Beispiel: CM* Cluster aus CPU, MMU, I/O und RAM per Bus verbunden
<stefan@net-texde> Speicherarchitekturen und -verwaltung CM* Bus CPU RAM I/O MMU CPU RAM I/O MMU
<stefan@net-texde> Speicherarchitekturen und -verwaltung ccnuma ccnuma : cache coherent NUMA erweitern NUMA um koheränten Caches Snooping Caches, belasten Bus verzeichnisbasierte Multiprozessoren Datenbank über Cacheverteilung
<stefan@net-texde> Speicherarchitekturen und -verwaltung COMA COMA: Cache Only Memory Architecture RAM einer CPU als lokaler Cache physischer Adressraum Zeilen kann im gesamten System migrieren, benötigt spezielle Speicherverwaltung