Mehrere Anweisungen, einzelne Daten

MISD.svg

Im Computer, Mehrere Anweisungen, einzelne Daten (Misd) ist eine Art von Art von Parallele Computing die Architektur wobei viele funktionale Einheiten unterschiedliche Vorgänge für die gleichen Daten ausführen. Pipeline Architekturen gehören zu diesem Typ, obwohl ein Purist sagen könnte, dass die Daten nach jeder Phase in der Pipeline unterschiedlich sind. Fehlertoleranz Ausführen der gleichen Anweisungen redundant, um Fehler auf eine Weise zu erkennen und zu maskieren Aufgabenreplikation, kann als zu diesem Typ angesehen werden. Anwendungen für diese Architektur sind viel seltener als Mimd und Simd, da die beiden letzteren oft für gemeinsame Daten parallele Techniken geeignet sind. Insbesondere ermöglichen sie eine bessere Skalierung und Verwendung von Rechenressourcen. Ein herausragendes Beispiel für Misd bei der Berechnung sind jedoch die Space Shuttle Flugsteuerungscomputer.[2]

Systolische Arrays

Systolische Arrays (< Wellenfront Prozessoren), zuerst beschrieben von H. T. Kung und Charles E. Leiserson sind ein Beispiel für Misd die Architektur. In einem typischen systolischen Array,, parallel Eingang Daten fließt durch ein Netzwerk von fest verdrahteten Prozessor Knoten, der dem Menschen ähnelt Gehirn welche kombinieren, verarbeiten, verschmelzen oder Sortieren Die Eingabedaten in ein abgeleitetes Ergebnis.

Systolische Arrays sind oft fest verdraht parallel Integration, Faltung, Korrelation, Matrix-Multiplikation oder Datensortierungsaufgaben. Ein systolisches Array besteht typischerweise aus einem großen monolithischen Netzwerk primitiver Computing Knoten, die für eine bestimmte Anwendung fest verdrahtet oder softwarekonfiguriert werden können. Die Knoten sind normalerweise fest und identisch, während die Verbindung programmierbar ist. Allgemeiner Wellenfront Im Gegensatz dazu verwenden Prozessoren hoch entwickelte und individuell programmierbare Knoten, die je nach Arraygröße und Designparametern monolithisch sein können oder nicht. Weil die Welle-ähnliche Ausbreitung von Daten durch a systolisch Array ähnelt dem Impuls Aus dem menschlichen Kreislaufsystem wurde der Name systolisch aus medizinischer Terminologie geprägt.

Ein signifikanter Vorteil von systolischen Arrays besteht darin, dass alle Operandendaten und Teilergebnisse innerhalb (durchlaufen) des Prozessorarrays enthalten sind. Während jedes Vorgangs müssen Sie nicht auf externe Busse, Hauptspeicher oder interne Caches zugreifen, wie dies bei Standard -Sequentialmaschinen. Die sequentiellen Grenzen der parallelen Leistung diktiert von Amdahls Gesetz Bewerben Sie sich auch nicht auf die gleiche Weise, da Datenabhängigkeiten implizit von der programmierbaren Knotenverbindung behandelt werden.

Daher sind systolische Arrays äußerst gut in der künstlichen Intelligenz, der Bildverarbeitung, der Mustererkennung, der Computersicht und anderen Aufgaben, die tierische Gehirne außergewöhnlich gut abschneiden. Wellenfrontprozessoren können im Allgemeinen auch sehr gut im maschinellen Lernen sein, indem sie selbst konfigurierte neuronale Netze in Hardware implementieren.

Während systolische Arrays offiziell als MISD eingestuft werden, ist ihre Klassifizierung etwas problematisch. Da die Eingabe typischerweise ein Vektor unabhängiger Werte ist, ist das systolische Array nicht Sisd. Da diese Eingang Werte werden zusammengeführt und in die Ergebnisse zusammengefasst und behalten ihre nicht bei Unabhängigkeit wie sie in einem Simd Vektor -Verarbeitungseinheit, die Array kann nicht als solche klassifiziert werden. Folglich kann das Array nicht als klassifiziert werden Mimd Da MIMD als bloße Sammlung kleinerer SISD- und SIMD -Maschinen angesehen werden kann.

Schließlich, weil die Daten Schwarm wird transformiert, wenn es durch das Array vom Knoten zum Knoten passt Fehlbezeichnung. Der andere Grund, warum sich ein systolisches Array nicht als qualifizieren sollte Misd ist das gleich Single Datenwert, obwohl man argumentieren könnte, dass ein bestimmter Eingabevektor ein einzelner Datensatz ist.

Ungeachtet der obigen systolischen Arrays werden häufig als klassisches Beispiel für MISD -Architektur in Lehrbüchern zum parallelen Computer und in der Ingenieurklasse angeboten. Wenn das Array von außen als betrachtet wird Atomic es sollte vielleicht als klassifiziert werden als Sfmudmer = Einzelfunktion, mehrere Daten, fusionierte Ergebnisse (en).[3][4][5][6]

Fußnoten

  1. ^ Flynn, Michael J. (September 1972). "Einige Computerorganisationen und ihre Effektivität" (PDF). IEEE -Transaktionen auf Computern. C-21 (9): 948–960. doi:10.1109/tc.1972.5009071.
  2. ^ Spector, a.; Gifford, D. (September 1984). "Das Space Shuttle Primary Computer System". Kommunikation der ACM. 27 (9): 872–900. doi:10.1145/358234.358246.
  3. ^ Michael J. Flynn, Kevin W. Rudd. Parallele Architekturen. CRC Press, 1996.
  4. ^ Quinn, Michael J. Parallele Programmierung in C mit MPI und OpenMP. Boston: McGraw Hill, 2004.
  5. ^ Ibaroudene, Djaffer. "Parallele Verarbeitung, EG6370G: Kapitel 1, Motivation und Geschichte." St. Mary's University, San Antonio, TX. Frühjahr 2008.
  6. ^ Null, Linda; Lobur, Julia (2006). Das Wesentliche der Computerorganisation und Architektur. 468: Jones und Bartlett.{{}}: CS1 Wartung: Standort (Link)