-
Die vorliegende Erfindung bezieht sich generell auf Feldrechner
(Vektorrechner), z. B. Abbildrechner, die Datenströme
verarbeiten, die über Felder von Prozessor- bzw. Verarbeitungselementen
geleitet werden, wobei jedes Verarbeitungselement einen
bestimmten Befehl ausführt.
-
Typische Feldrechner werden in folgenden Referenzdokumenten
beschrieben:
-
NCR GEOMETRIC ARITHMETIC PARALLEL PROCESSOR,
Produktspezifikation NCR45CG72, NCR Corp., Dayton, OH, 84, Seiten 1-12,
beschreibt physische Merkmale eines repräsentativen
Feldrechners.
-
Cloud et al., HIGHER EFFICIENCY FOR PARALLEL PROCESSORS, IEEEE
Southcon, Neuauflage veröffentlicht von NCR Corporation Micro-
Electronics Div., For Collins, Collins, CO, Seiten 1-7, enthält
eine detaillierte Beschreibung der Funktionsweise des Geometric
Arithmetic Parallel Processor (GAPP) von NCR.
-
Die derzeitigen Rechnersysteme werden nach Befehlsstrom und
Datenstrom in viert Kategorien eingeteilt:
-
SISD (Single Instruction stream Single Data stream)
(Ein Befehlsstrom, ein Datenstrom)
-
SIMD (Single Instruction stream Multiple Data stream)
(Ein Befehlsstrom, mehrere Datenströme)
-
MISD (Multiple Instruction stream Single Data stream)
(Mehrere Befehlsströme, ein Datenstrom)
-
MIMD (Mehrere Befehlsströme, mehrere Datenströme).
-
Als Beispiele für auf dem Markt angebotene Superrechner seien
hier die Cyber-Baureihe von CDC, die CRAY-Baureihe von CRAY
Research und die AP-Baureihe von NEC genannt. Alle diese
Maschinen basieren auf der MISD-Architektur und benötigen einen
erheblichen Zeitaufwand für das Einrichten der Befehls-Pipe für
die Verarbeitung eines Vektors. Der Aufwand ist besonders hoch,
wenn die Pipe-Einrichtung häufig erfolgt oder der Vektor sehr
kurz ist; entsprechend niedrig ist die Leistung des Rechners in
diesen Fällen.
-
Durch Datenabhängigkeit in einer Schleife verringert sich die
Leistung dieser Superrechner. Die Maschinen müssen entweder mit
der Vorabeinrichtung der Pipe solange warten, bis die
Datenabhängigkeit aufgelöst ist (d. h. der Status genau bekannt ist)
oder sie richten die Pipe für einen Pfad ein (d. h. der Status
ist "wahr"), wenn die Wahrscheinlichkeit entsprechend hoch ist
In ersterem Fall wird die Ausführung verzögert, in letzterem
Fall muß die Pipe zurückgesetzt werden (d. h. die
Einrichthäufigkeit für die Pipe erhöht sich), wenn "falsch geraten" wurde. In
beiden Fällen verringert sich die Leistung.
-
Das Fehlen von räumlicher und/oder Datenadaption führt zu
folgenden Nachteilen:
-
1. Datenabhängige Operationen werden sequentiell verarbeitet,
dadurch wird die parallele Hardware nicht optimal genutzt,
was zu einer Leistungsminderung führt.
-
2. Daten mit räumlicher Wertigkeit werden als Ausnahme
behandelt, dadurch keine parallele Verarbeitung.
-
3. Verbindungen bei Parallelrechnern sind fix, dadurch wird die
Vielseitigkeit der Algorithmen eingeschränkt.
-
4. Komplementäre Operationen (z. B. SEND/RECEIVE-Paar), die
durch Daten- oder räumliche Abhängigkeit verursacht werden,
werden sequentiell ausgeführt, wodurch sich die
Ausführungszeit verlängert.
-
5. Entsprechend wird die Übertragungsbandbreite nicht optimal
genutzt.
-
6. Für Verarbeitungselemente mit unterschiedlichen räumlichen
Zuständen müssen unterschiedliche Programmkopien generiert
werden, wodurch sich der Software-Aufwand erhöht.
(1) Datenabhängige Parallelverarbeitung
-
Die derzeitigen Parallelrechner können effizient zur
Verarbeitung von Schleifen mit langlaufendem Index eingesetzt werden,
Schleifen mit Datenabhängigkeit werden jedoch nicht effizient
unterstützt. Als Beispiel hier eine typische datenunabhängige
Schleife:
-
for (i=O; i< 300; i++)
-
for (j=0; j< 500; j++)
-
c [i,j]=a[i,j]+b[i,j];
-
Die Verarbeitung ist auf den meisten gängigen SIMD-, MISD- und
MIMD-Rechnern problemlos möglich.
-
Wird das Programm ,jedoch um Datenabhängigkeit erweitert, wie im
folgenden Beispiel gezeigt, sind bisherige Parallelrechner nicht
in der Lage, dieses Programm effizient zu bearbeiten.
-
for (i=0; i< 300; i++)
-
for (j=0; j< 500; j++)
-
if (status)
-
c [i,j]=a[i,j]+b[i,j];
-
else
-
c [i,j]=a[i,j]-b[i,j].
(2) Räumlich abhängige Parallelverarbeitung
-
Bei der Abbildverarbeitung oder anderen Anwendungen, bei denen
den Daten räumliche Zustände zugeordnet sind, werden die Daten
nicht homogen bearbeitet, sondern vielmehr entsprechend ihrer
räumlichen Abhängigkeit. So werden z. B. Daten am Rand eines
Abbilds anders bearbeitet als Daten aus randfernen Bereichen;
dies ist eine Art der räumlichen Abhängigkeit bei Daten. Bei
dieser Situation treten bei der Parallelverarbeitung zwei
wesentliche Nachteile auf:
-
1. Der Grad der Parallelität kann nur auf den homogenen Teil
der Daten ausgedehnt werden; nicht-homogene Daten (z. B.
Ränder) werden daher zwangsweise sequentiell verarbeitet.
Dadurch verschlechtert sich die Leistung des
Parallelsystems.
-
2. Das Programm (bzw. die Codierung) für die nicht-homogenen
Daten unterscheidet sich vom Programm für den homogenen
Teil, daher muß die Codierung in mehreren Exemplaren
erstellt werden. Dadurch erhöht sich der Aufwand für die
Software.
-
In der Europäischen Patentanmeldung EP-A-0121763 wird ein
Feldrechner beschrieben, bei dem einzelne Prozessoren des Feldes
ein programmierbares logisches Feld enthalten, das als
voreinstellbarer Befehlsdecodierer dient, dessen Ausgabedaten als
Reaktion auf anstehende Daten modifiziert werden können, so daß
eine einfache Wahlmöglichkeit für den Rechnerbetrieb besteht.
-
Zwar besteht hier ein gewisses Maß an Adaptionsfähigkeit, doch
ist die Palette der alternativen Funktionen stark eingeschränkt,
wie in Tabelle 2 dieser Anmeldung dargestellt. Insbesondere ist
die für die vorstehenden Beispiele erforderliche Adaption nicht
vorgesehen.
-
US-Patentschrift 3,287,702 beschreibt ein weiteres Konzept.
Hierbei können einzelne Prozessoren von einer zentralen
Steuereinheit so voreingestellt werden, daß sie in einem von
mehreren Modi arbeiten, um das Feld auf die Anforderungen der
jeweiligen Anwendungen abzustimmen. Es ist jedoch keine
Einrichtung vorgesehen, die die Funktionsweise der einzelnen
Prozessoren dynamisch einstellt, nachdem die verschiedenen Modusregister
neu geladen wurden; dadurch ist eine effiziente Lösung des
vorstehend beschriebenen Problems wiederum ausgeschlossen.
-
Gemäß der Erfindung ist ein Feldrechner (Vektorrechner)
vorgesehen, der eine Steuereinheit mit Befehlsausgabefähigkeit und
einer Reihe individueller Verarbeitungselemente zum Verarbeiten
von Daten entsprechend Befehlen besitzt, die von der
Steuereinheit gleichzeitig an die Verarbeitungselemente ausgegeben
werden, wobei jedes Verarbeitungselement Verarbeitungsmittel und
Ein-/Ausgabemittel besitzt, die mit anderen
Verarbeitungselementen verbunden sind, dadurch gekennzeichnet, daß jedes gewählte
Verarbeitungselement einen Befehlsadapter enthält, der ein
Register zur Prozessoridentifizierung, einen Bitgruppenselektor,
eine Übereinstimmungsüberprüfung und einen Befehlsmodifizierer
enthält, wobei das Register zur Prozessoridentifizierung, der
Bitgruppenselektor und die Übereinstimmungsüberprüfung dazu
dienen, ein bewegbares Fenster festzulegen, um
Modifizierungsbits zur Anwendung im Befehlsmodifizierer zu wählen.
-
Zum besseren Verständnis der Erfindung wird im folgenden anhand
der beigefügten Zeichnungen ein Ausführungsbeispiel der
Erfindung beschrieben.
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Fig. 1 ist ein Blockdiagramm eines Feldrechners mit einem
repräsentativen adaptiven Verarbeitungselement gemäß der
Erfindung.
-
Fig. 2 zeigt ein detailliertes Blockdiagramm des Befehlsadapters
von Fig. 1.
-
Fig. 3 zeigt ein detailliertes Blockdiagramm eines
Befehlsadapters in einer vereinfachten Ausführung.
-
Fig. 4 zeigt ein detailliertes Blockdiagramm eines
Befehlsadapters für einen Feldrechner mit multidimensionalem Netzwerk.
-
Fig. 5 zeigt ein detailliertes Blockdiagramm einer weiteren
Ausführung des Befehlsadapters.
BESCHREIBUNG EINES AUSFÜHRUNGSBEISPIELS DER ERFINDUNG
-
Der adaptive Befehlsprozessor ordnet jedem adaptiven
Verarbeitungselement in dem Parallelrechner eine Prozessoridentifikation
(PID) zu. Er erfaßt eine Reihe von Bits mit dem datenabhängigen
Status (data-dependent-status bits = DDS-Bits) aus dem
Rechenwerk (ALU = arithmetic and logic unit) des adaptiven
Verarbeitungselements. Anschließend leitet er mit Hilfe eines
Befehlsadapters (IA = instruction adapter) den Befehl entsprechend der
räumlichen Abhängigkeit und Datenabhängigkeit ab, die durch PID,
DDS und den ursprünglichen Befehl reflektiert wird.
-
Fig. 1 zeigt den Feldrechner, der hinsichtlich Aufbau und
Funktionsweise Feldrechnern nach dem Stand der Technik
entspricht, ausgenommen die Bearbeitung von Datenabhängigkeit
und räumlicher Abhängigkeit. Der Abbildprozessor enthält ein
Feld mit adaptiven Verarbeitungselementen (APEA = adaptive
processing element array) 1 und eine Feld-Steuereinheit (AC =
array controller) 2, beide schematisch dargestellt. Die
Feldsteuereinheit 2 übermittelt auf Befehlsleitung 3 eine Reihe von
Befehlen und stellt einen Übertragungspfad 4 für Eingabe- und
Ausgabedaten bereit. Das Verarbeitungselementefeld 1 enthält
eine große Anzahl von einzelnen adaptiven Verarbeitungselementen
5, die jeweils für Adaption gemäß dieser Erfindung ausgelegt
sind. Das Verarbeitungselementefeld 1 kann herkömmliche
Verarbeitungselemente 6 enthalten, solange bekannt ist, welche
Art von Verarbeitungselementen sich an den einzelnen Positionen
befindet und sich die Organisation danach richtet; diese Art der
Ausführung ist jedoch nicht unbedingt erwünscht. Bevorzugt wird
der Einsatz identischer adaptiver Verarbeitungselemente; wird
herkömmliche Rechnerleistung gewünscht, können diese Elemente,
z. B. die mit 6 bezeichneten Elemente, entsprechend für
herkömmliche Verarbeitung angepaßt werden.
-
Die Abbildverarbeitung läuft hinsichtlich des Datenflusses nach
dem herkömmlichen Verfahren zur Abbildverarbeitung ab; die Daten
gelangen in das Verarbeitungselementfeld und fließen
entsprechend der anfänglichen Datenwerte, die durch die
Verarbeitungselemente modifiziert wurden, die sie passieren, von
Verarbeitungselement zu Verarbeitungselement, ohne zwischengeschalteten
Zugriff auf den Systemspeicher. Die einzelnen
Verarbeitungselemente werden vor Beginn des Datenflusses eingerichtet. Bei
einem herkömmlichen Abbildprozessor besteht kaum eine
Möglichkeit während der Ausführung Änderungen vorzunehmen, da die
genaue Position der Daten während der Ausführung nicht bekannt
ist. Kurz: Ein Abbildprozessor ist nach der Einrichtung für die
Dauer der Ausführung ein spezialisierter Rechner für feste
Operationen. Diese Erfindung ermöglicht dynamische Änderungen
der Einrichtung während der Ausführung, da jedes der
adaptierbaren adaptiven Verarbeitungselemente ein eigenes Register zur
Prozessoridentifizierung und einen eigenen
Befehlsadaptionsmechanismus erhält, der auf die Gesamtheit von
Prozessoridentifikationsdaten, Statusdaten und angewendetem Befehl reagiert, um
die interne Auswahl der Operation für das adaptive
Verarbeitungselement zu ermöglichen. Auf Systembasis ermöglicht dies die
bequeme Adaption von räumlichen und Datenabhängigkeiten, wodurch
das System für die Art der verarbeiteten Daten optimiert werden
kann.
-
Das adaptive Verarbeitungselement 7 wird repräsentativ für die
zahlreichen adaptiven Verarbeitungselemente 5 detaillierter
dargestellt. Übertragungspfad 70, lokaler Speicher (LMR = local
memory) 71 und Rechenwerk (ALU) 72 sind konventionell angelegt,
entsprechen also hinsichtlich Funktionsweise und Wirkung den
analogen Teilen in einem herkömmlichen Verarbeitungselement.
Generell können diese Teile eine Zuordnung (Befehl) akzeptieren
und diese Zuordnung für jedes anstehende Datenelement ausführen.
-
Der in Zeitlinie 8 vereinfacht dargestellte Berechnungszyklus
leitet aus einem ursprünglichen Befehl (als Ansicht eines
ursprünglichen Befehls 9 vereinfacht dargestellt) einen Befehl
zur Ausführung ab. Im Betriebsablauf stehen der ursprüngliche
Befehl, räumlich abhängige und datenabhängige Statuswerte in
einem frühen Stadium des Zyklus zur Verfügung, wie aus den
Werten X, Y, Z in Zeitlinie 8 ersichtlich. Der abgeleitete
Befehl ist anschließend für die Steuerung der Rechenoperation C
verfügbar.
-
Die Adaptionsfähigkeit wird durch den Befehlsadapter (IA) 73
erreicht, der von der Leitung für den ursprünglichen Befehl 74
einen Befehl empfängt, der die Adaptionsfähigkeit veranlaßt; er
führt bei den anstehenden Daten Prüfungen aus, bestimmt anhand
der Prüfungsergebnisse, ob die Adaption durch Ableitung eines
Ersatzbefehls erfolgen soll, und legt den abgeleiteten
Ersatzbefehl über die Leitung für den abgeleiteten Befehl 75 an das
Rechenwerk 72 an. Das Rechenwerk umfaßt ein bzw. dient als
Register für den datenabhängigen Status (DDS) und übermittelt
gerade verarbeitete Bits zum datenabhängigen Status auf der DDS-
Prüfungsdatenleitung 76 an den IA 73. Der Befehl, der die
Adaptionsfähigkeit veranlaßt und der über die Steuerleitung für
die Adaptionsfähigkeit 74 angelegt wird, wird für den Block für
den räumlich abhängigen Status (SDS = spatial dependent status)
77, den Block für die Abhängigkeitswahl und -überprüfung (DSV =
dependence select and verify) 78 und den Block für die
Befehlsmodifikation und -erweiterung (IME = instruction modify and
extend) 79 verfügbar gemacht. Der Block für den Befehlsadapter
(IA) 73 akzeptiert einen ursprünglichen Befehl (der Art, die
unter bestimmten Bedingungen die eigene Modifikation veranlaßt)
und generiert als Ausgabe einen abgeleiteten Befehl, der auf
Leitung 75 an den ALU-Block 72 angelegt wird. Auf diese Weise
wird der Funktionsablauf des adaptiven Verarbeitungselements
gesteuert.
-
Ein typischer Befehlssatz, wie in NCR45CG72, 1984, auf Seite 7
dargestellt, umfaßt einen Mikro-NOP-Befehl, mehrere
Lade-/Speicher-Befehle für die Kommunikation zwischen den
Verarbeitungselementen sowie arithmetische/logische Operationen.
Fig. 1 zeigt in der eingefügten Darstellung 80 das Befehlsformat
für den abgeleiteten Befehl. Bei dem abgeleiteten Befehl ist an
einer oder mehreren vorgegebenen Bitpositionen ein
"Übereinstimmungsbit" in den Eingabebefehl integriert. Das
"Übereinstimmungsbit" ist eine Funktion von PID, DDS und
Eingabebefehl, während die "vorgegebene Bitposition" anhand des
Formats des Eingabebefehls und des abgeleiteten Befehls
vorbestimmt werden kann. Das "Übereinstimmungsbit" kann auch die
Bits des Eingabebefehls überschreiben, die sich an den
vorgegebenen Positionen befinden.
-
Das einzelne adaptive Verarbeitungselement ist nach wie vor ganz
einfach aufgebaut. Zu den drei großen Systembausteinen gehören
Register, Schieberegister und Multiplexer, alles handelsübliche
Teile, die von verschiedenen Lieferanten angeboten werden und
Fachleuten durchaus vertraut sind. Diese Teile werden in THE TTL
DATA BOOK FOR DESIGN ENGINEERS, Zweite Auflage, Texas
Instruments Corporation, LCC4112 74062-116-AI, Seiten 7-471, 7-
316 und 7-181, beschrieben. Nachfolgend einige Beispiele für
geeignete Systembausteine:
-
Teile-Nr. Systembaustein
-
74374 8-Bit-Register
-
74194 bidirektionales 4-Bit-Schieberegister
-
74157 Multiplexer
-
Fig. 2 zeigt den Aufbau des Befehlsadapters (IA) 73, der die
drei folgenden Funktionsblöcke enthält:
-
1. Block für den räumlich abhängigen Status (SDS) 77
-
2. Block für Abhängigkeitswahl und -überprüfung (DSV) 78
-
3. Block für Befehlsmodifikation und -erweiterung (IME) 79
-
Der SDS-Block 77 akzeptiert einen Teil des Eingabebefehls als
Steuerung und erzeugt als Ausgabe SDS-Bits, die die räumliche
Abhängigkeit angeben. Dieser Block enthält ein PID-Register 81,
dessen Inhalt aus der PID des Verarbeitungselements besteht. Das
PID-Register kann vom Eingabebefehl vorab geladen werden. Der
Inhalt des PID-Registers 81 muß zur räumlichen Lage, z. B. X-Y-
Koordinaten, in Beziehung gesetzt werden. Außerdem enthält der
Block ein Schieberegister 82 mit der gleichen Größe wie PID-
Register 81. Das Schieberegister 82 kann logische Verschiebungen
von jeweils einem Bit in beliebiger Richtung durchführen. Damit
kann jede beliebige Bitgruppe des PID-Registers auf Leitung 88
als Eingabe für den DSV-Block 78 zur Verfügung gestellt werden.
-
Bei dem zweiten Funktionsblock handelt es sich um den DSV-Block
78 zur Wahl und Überprüfung der Abhängigkeit. Der DSV-Block 78
enthält einen Multiplexer 83 zur Auswahl bestimmter SDS-Bits
oder DDS-Bits. Weiter enthält der DSV-Block ein
Schablonenregister 84 für Abgleich, Maskierung und Vergleich. Die
ausgewählten abhängigen Bits und die Schablone werden zur
"Übereinstimmungsüberprüfung" 85 weitergeleitet, wo ein
"Übereinstimmungsbit" generiert wird. Schieberegister 84 enthält
Entscheidungs-Schwellenwertinformationen, die bei der
Initialisierung gesetzt werden. Bei einem typischen Funktionsablauf
werden alle Schablonenregister auf den gleichen Wert gesetzt, um
eine bestimmte Untergruppe von Bits zu maskieren. In einem
bestimmten Zyklus funktionieren sämtliche Schieberegister
entsprechend dem Befehl ähnlich, um die Erfassung einer Gruppe
von Bits in dem zugehörigen PID-Register zu erreichen und diese
Bits entsprechend auszurichten.
-
Schablonenregister und Schieberegister zusammen dienen zur
Auswahl der relevanten Bits aus der PID.
-
Normalerweise wird mit einem bewegbaren Fenster gearbeitet, das
zwei aufeinanderfolgende Bits enthält, um die Hardware für
unterschiedliche relevante Objekte oder unterschiedliche Abbild-
Untergruppen unterschiedlich zuzuordnen.
-
Die Übereinstimmungsüberprüfung kann die Operationen VERGLEICH,
UND, ODER und Exklusiv-ODER ausführen. Zusammengefaßt: Der DSV-
Block akzeptiert SDS-Bits und DDS-Bits als Eingabe und generiert
als Ausgabe das "Übereinstimmungsbit". Der DSV-Block akzeptiert
einen Teil des Eingabebefehls als Steuerung.
-
Die DDS-Bits bezeichnen die Art der Daten und dienen zur
Datenadaption. Zu den üblichen DDS-Bits zählen positiv/negativ,
null/nicht-null, positiv/nicht-positiv, wahr/falsch,
größer/gleich/kleiner, gerade/ungerade. Jeder andere Status, der
vom Rechenwerk (ALU) 72 des adaptierbaren Verarbeitungselements
7 abgeleitet werden kann, kann durch Statusbits identifiziert
werden.
-
Beim dritten Block handelt es sich um den IME-Block 79 zur
Modifikation und Erweiterung von Befehlen. Der IME-Block 79
akzeptiert das Übereinstimmungsbit und den Eingabebefehl als
Eingaben und generiert als Ausgabe den abgeleiteten Befehl. Der
IME-Block 79 verfügt über einen "Bitüberschreiber", der
bestimmte Bits des Eingabebefehls an den vorgegebenen Positionen
durch das Übereinstimmungsbit ersetzt. Der Block weist außerdem
einen "Biteinfüger" auf, der das Übereinstimmungsbit an den
vorgegebenen Positionen in den Eingabebefehl einfügt. Die
Entscheidung, ob überschrieben oder eingefügt werden soll oder
beides sowie die Bestimmung der Positionen werden von einem Teil
des Eingabebefehls gesteuert.
-
Mit diesen drei Funktionsblöcken kann der IA die folgenden
"abhängigen Operationen" ausführen, um die räumliche und/oder
Datenadaption zu erreichen:
-
(1) Ermittlung von auf "1" gesetzten DDS-Bits;
-
(2) Ermittlung des i-ten auf "1" gesetzten Bits im PID-
Register und
-
(3) Ermittlung von M zusammenhängenden Bits im PID-
Register, die der Schablone entsprechen, wobei M
kleiner oder gleich der Gesamtzahl der Bits der PID
ist.
-
Das vorstehend beschriebene allgemeine Ausführungsbeispiel umfaßt
die gesamte Erfindung. Spezifische Implementierungen können aus
den einzelnen Funktionsblöcken zusammengesetzt sein.
Implementierung eines vereinfachten adaptiven
Verarbeitungselements
-
Fig. 3 zeigt eine stark vereinfachte Implementierung des
Befehlsadapters (IA) 73. Der Inhalt des PID-Registers 81 wird in
ein logisches Schieberegister (LSR) 91 kopiert, das logische
Verschiebungen in beide Richtungen ausführen kann. Bei den nach
außen geschobenen Bits und dem Bit an der Position rechts außen
im logischen Schieberegister 91 handelt es sich um die SDS-Bits.
Ein Multiplexer wählt anschließend eines der SDS- oder DDS-Bits
als Übereinstimmungsbit aus. Mit einer derartigen
Implementierung können eindimensionale und zweidimensionale Operationen
ausgeführt werden. Diese Implementierung eignet sich für
adaptive Verarbeitungselemente mit geringerer Komplexität, da das
Schieberegister 84 (Fig. 2) und die Übereinstimmungsüberprüfung
85 entfallen.
Implementierung für ein multidimensionales Netzwerk
-
Fig. 4 zeigt den SDS-Block in genereller Konfiguration zur
Ermittlung der räumlichen Abhängigkeit bei einem Netzwerk eines
Parallelrechners mit multidimensionaler Verbindung, wie z. B. ein
zweidimensionales Feld oder eine dreidimensionale Pyramide. Das
PID-Register kann K Abschnitte 1-K umfassen. Das Schieberegister
92 im SDS-Block 77, das analog zu den Schieberegistern 82 und 91
in Fig. 1 und 2 aufgebaut ist, ist in K Abschnitte
untergliedert, wobei K die Dimension des Netzwerks angibt. Jeder
Abschnitt bearbeitet die räumliche Abhängigkeit für eine
Dimension des Netzwerks. Die Bits rechts und links außen in
jedem Abschnitt sind SDS-Bits, die zur Ermittlung der räumlichen
Abhängigkeit an den Multiplexer 83 im DSV-Block 78 übergeben
werden.
ANWENDUNGSBEREICH UND VORTEILE
(1) Datenabhängige und räumlich abhängige Parallelverarbeitung
-
Bei der adaptiven Befehlsverarbeitung gemäß dieser Erfindung ist
folgende Umstrukturierung möglich:
-
for (i=O; i< 300; i++)
-
for (j=0; j< 500; j++)
-
if (Zustand)
-
action 1
-
else
-
action 2; (wenn action 1 und action 2 komplementär
sind)
-
in
-
for (i=0; i< 300; i++)
-
for (j=0; j< 500; j++)
-
action 3.
-
Komplementäre Operationen sind möglich. Als Beispiel für eine
komplementäre Operation sei das Paar +/- (addieren oder
subtrahieren) genannt. Das "Übereinstimmungsbit" wird von dem
"Zustand" abgeleitet, der datenabhängig oder räumlich abhängig
sein kann. Als Ergebnis der Umstrukturierung kann die
sequentielle Ausführung von action 1/action 2 in eine absolut
parallele vereinheitlichte action 3 umgewandelt werden.
-
Das Problem kann auch wie folgt umstrukturiert werden:
-
Ein "Übereinstimmungsbit" wird von dem "Zustand" abgeleitet
und dazu verwendet, einen "Adreßversatz" zu generieren, und
zwar entweder durch Überschreiben oder durch Einfügen des
entsprechenden Feldes des Eingabebefehls. Der Code für
action 1 und action 2 wird dann mit einem Abstand D
strukturiert, wobei D dem "Adreßversatz" entspricht. Bei der
Ausführung "springen" die einzelnen Verarbeitungselemente
entsprechend dem räumlichen Zustand der Daten zum richtigen
Eintrag des Codes. Zu beachten ist dabei, daß lediglich eine
Version der Codierung erforderlich ist. Eine nicht-homogene
Problemstellung aufgrund der räumlichen Abhängigkeit kann
durch diese Erfindung in eine homogene Problemstellung
umgewandelt werden, so daß ein höheres Maß an Parallelität
möglich ist und sich der Aufwand für die Software
verringert.
(2) Universal-Netzwerkemulation
-
Diese Erfindung löst die räumliche Abhängigkeit aufgrund der
relativen oder absoluten Lage (oder Koordinate) von
Verarbeitungselementen in einem Parallelrechner, der über ein einziges
"Fixed Baseline Network" zur Verbindung der Verarbeitungselemente
in dem System verfügt.
-
Unter dem Gesichtspunkt der Algorithmusentwicklung ist es von
Vorteil, wenn mehrere Netzwerke (oder Verbindungen) in ein
Parallelverarbeitungssystem integriert sind, da ein einziges
Netzwerk nicht optimal auf verschiedene Algorithmen abgestimmt
ist. Bei einem Parallelsystem mit derartiger
Netzwerkemulationsfähigkeit kann ein Netzwerk über den adaptiven Befehlsprozessor
von der Baseline-Verbindung aus emuliert werden.
-
Beispiel: Das Pyramidennetzwerk kann durch den adaptiven
Befehlsprozessor aus der Baseline-Feldverbindung der Größe N·N
emuliert werden. Die PID-Register der einzelnen adaptiven
Verarbeitungselemente in dem Feld werden mit dem entsprechenden
kartesischen Koordinatenwert (x, Y) geladen. Zum Zeitpunkt t=1
sind alle Verarbeitungselemente aktiv. Bei t=2 sind nur
diejenigen adaptiven Verarbeitungselemente aktiv, bei denen x oder y
einem Vielfachen von 2 entspricht. Bei t=3 sind nur diejenigen
adaptiven Verarbeitungselemente aktiv, bei denen x oder y einem
Vielfachen von 4 entspricht. Zusammengefaßt bedeutet dies: Zum
Zeitpunkt t=i sind nur diejenigen adaptiven
Verarbeitungselemente aktiv, bei denen x oder y einem Vielfachen von 2·(i-1)
entspricht. Mit dem vorstehend beschriebenen Verfahren wird aus
dem Baseline-Feldnetzwerk ein Pyramidennetzwerk mit
Schrumpfungsfaktor 2 emuliert (d. h. bei jedem weiteren Zeitschritt wird
nur 1/4 aller Verarbeitungselemente mit Abstand eins verbunden).
Die Steuerung der Emulation kann durch Untersuchung des Inhalts
des zweidimensionalen PID-Registers erfolgen; das
Verarbeitungselement wird dann ,aktiviert, wenn das "Übereinstimmungsbit"
"wahr" ist.
-
Derselbe adaptive Befehlsprozessor kann auch für die Emulation
von Netzwerken wie Baum, Ring, "perfect shuffle" usw. aus einer
Baseline-Verbindung eingesetzt werden.
-
Die Netzwerkemulation ist ein sehr leistungsfähiger Mechanismus
zur Erstellung mehrerer paralleler Architekturen aus einem
einzigen Typus von Verarbeitungselementen. Abgesehen von den
Vorteilen bezüglich Kosten und Logistik kann der Algorithmus
besser an die Architektur angepaßt werden, so daß sich eine
Leistungssteigerung ergibt. Da nur Elemente eines Typs benötigt
werden, eignet sich ein derartiges Emulationskonzept
insbesondere für die VLSI-Implementierung.
(3) Komplementäre Operationen
-
Eine komplementäre Operation besteht aus einem Paar von
Operationen, die auf zwei adaptive Verarbeitungselemente aufgeteilt
und gleichzeitig ausgeführt werden können. Beispiele für
komplementäre Operationen: das SEND/RECEIVE-Paar bei der Kommunikation
zwischen Prozessoren sowie die "Butterfly"-Berechnung von FFT
(Fast Fourier Transform). Ein weiteres Beispiel ist der unter
Anwendung (1) beschriebene "+/-"-Befehl. Bei Anwendung auf
komplementäre Operationen kann das adaptive Befehlskonzept die
Ausführung beschleunigen und zu Einsparungen bei der
Übertragungsbandbreite beitragen.
-
Als Beispiel sei das SEND/RECEIVE-Paar für die
SIMD-Feldarchitektur angeführt. Ein adaptives Verarbeitungselement sendet
(aufgrund der Kenntnis seiner Position im Feld, d. h. der
"räumlichen Kenntnis") über eine Verbindung Daten an das
benachbarte Verarbeitungselement, während das benachbarte
Verarbeitungselement (aufgrund dieser "räumlichen Kenntnis") diese Daten
über dieselbe Verbindung empfängt. Die Operation kann innerhalb
eines Zyklus ausgeführt werden, wobei für ein Datelement eine
Einheit der Übertragungsbandbreite verwendet wird. Bei der SIMD-
Architektur ohne topologieabhängige Adaption sind für diese
Operation zwei Ausführungszyklen und/oder zwei Einheiten der
Übertragungsbandbreite erforderlich.
-
Bei der "Butterfly"-Rechenoperation kann die sequentielle
Ausführung in einem herkömmlichen Abbildprozessor bis zu 4
Zyklen beanspruchen. Mit dem adaptiven Befehlsprozessor läßt
sich dieser Zeitaufwand auf 2 Zyklen (bei 2 adaptiven
Verarbeitungselementen) oder sogar nur 1 Zyklus (bei 4 adaptiven
Verarbeitungselementen) reduzieren. Dazu wird zunächst an alle
adaptiven Verarbeitungselemente der Befehl ADD/SUB gesendet. Die
einzelnen adaptiven Verarbeitungselemente adressiert dann den
Befehl entsprechend dem jeweiligen räumlichen Zustand entweder
an ADD oder an SUB.
-
Der Anwendungsbereich für komplementäre Operationen ist nicht
auf die genannten Beispiele beschränkt. In den Bereichen
Abbildverarbeitung, Computer Vision (maschinelles Sehen), digitale
Signalverarbeitung, mathematische Transformation und allgemeine
wissenschaftliche Berechnungsverfahren lassen sich zahlreiche
weitere Anwendungsmöglichkeiten finden.
(4) Adaptive Superrechner
-
Mit der adaptiven Befehlsverarbeitung läßt sich das Problem der
Datenabhängigkeit lösen und die Leistung von Superrechnern
steigern. Dazu kann ein Befehl mit der Bezeichnung OPA/OPB
(Operation A oder Operation B) definiert und ein
Übereinstimmungsbit ausgewählt werden, um den Befehl zu adaptieren. Wenn
das Übereinstimmungsbit auf "1" gesetzt ist, führt der
abgeleitete Befehl OPA aus, wenn das Übereinstimmungsbit auf "0"
gesetzt ist, wird OPB ausgeführt. Die Pipes in den Superrechnern
können vorab für den Befehl OPA/OPB eingerichtet werden, und die
Vektorausführung kann gestartet werden, sobald das
Übereinstimmungsbit zur Verfügung steht. Die Wahrscheinlichkeit, daß
"richtig geraten" wird, ist aufgrund der Datenadaption immer
"1".
BEISPIEL ZUR VERANSCHAULICHUNG DER ERFINDUNG
-
Dieses Beispiel veranschaulicht die Funktionsweise des adaptiven
Befehlsprozessors im Falle einer räumlichen Adaption. Anhand von
Fig. 5 wird gezeigt, wie ein ursprünglicher Befehl als Funktion
der Prozessoridentifizierung (PID) modifiziert wird. Als
Ergebnis kann die folgende Berechnung
-
for (i=0; i< 300; i++)
-
for (j=0; j< 500; j++)
-
if (PID< 0> ==1))
-
c [i,j]=a[i,j]+b[i,j];
-
else
-
c [i,j]=a[i,j]-b[i,j];
-
effizient ausgeführt werden.
-
Zunächst werden ein vereinfachter ursprünglicher Befehl und
abgeleitete Befehle als Hintergrundinformation beschrieben,
anschließend wird anhand von Fig. 5 ein Aufbau beschrieben, mit
dem die Erfindung realisiert wird.
Befehlsformat
-
Das K-te Bit der M Bits des ursprünglichen Befehls steuert die
Ausführung von SEND/REC oder +/- wie folgt:
-
Wenn Bit< K> =1, dann führt das Verarbeitungselement SEND aus,
wenn der lokale status S für das Verarbeitungselement "wahr"
ist;
-
ist der lokale Status S für das Verarbeitungselement
"falsch", führt das Verarbeitungselement REC aus;
-
Wenn Bit< K> =0, dann führt das Verarbeitungselement "+" aus, wenn
der lokale Status S für das Verarbeitungselement "wahr" ist;
-
ist der lokale Status S für das Verarbeitungselement
"falsch", führt das Verarbeitungselement "-" aus.
-
Im Gegensatz zu dem ursprünglichen Befehl weist der abgeleitete
Befehl in diesem Beispiel zwei Bits, nämlich das Bit r und das
Bit r+1 auf. Das adaptive Verarbeitungselement verhält sich dann
wie folgt:
Aktion
-
Beispiel: Wenn das r-te Bit des modifizierten Befehls "0" ist
und das r+1ste Bit "1" ist, führt das Verarbeitungselement "+"
aus.
Ausführungsbeispiel der Erfindung
-
Fig. 5 zeigt ein weiteres Ausführungsbeispiel mit mehreren
Multiplexern. Ein Teil des ursprünglichen Befehls veranlaßt das
Schieberegister 91, das die Prozessoridentifizierung PID
enthält, eine Verschiebung um eine Bitposition nach rechts
(SHIFT RIGHT) vorzunehmen. Dadurch wird das niedrigstwertige Bit
im Register zur Prozessoridentifizierung (LSBPID) in eine der
Eingaben für den DSV-Block (Abhängigkeitswahl und -überprüfung)
78 gestellt.
-
Fig. 5 zeigt ein Ausführungsbeispiel für die Übersetzung des
K-ten Bits (I< K> ) des ursprünglichen Befehls in das r-te und
r+1ste Bit (IM< r> und IM< r+1> ) des modifizierten Befehls
entsprechend dem niedrigstwertigen Bit im PID-Register (LSBPID,
d. h. PID< 0> ).
-
Ein anderer Teil des ursprünglichen Befehls veranlaßt dann über
die Steuerleitungen für die Adaptionsfähigkeit 74' den DSV-Block
78 das LSBPID als Ausgabe des Multiplexers im DSV-Block aus
zuwählen (SELECT). Daraufhin wird das LSBPID in die Leitung für
das "Übereinstimmungsbit" gestellt.
-
Als Eingaben für den IME-Block (Befehlsmodifikation und
-erweiterung) 79 werden das "Übereinstimmungsbit" (das jetzt das
LSBPID enthält) und der ursprüngliche Befehl (der I< K> und
weitere Bits enthält) in eine Gruppe von Multiplexern 84-86
weitergeleitet, um den abgeleiteten Befehl zu erzeugen. Für
einen abgeleiteten Befehl mit J Bits werden J Multiplexer
benötigt - jeweils ein Multiplexer erzeugt ein Bit des
abgeleiteten Befehls. Zur Erzeugung von IM< r> veranlaßt der
ursprüngliche Befehl den "Multiplexer r" dazu, I< K> als Ausgabe
auszuwählen (SELECT). Entsprechend veranlaßt der ursprüngliche Befehl
den "Multiplexer r+1" dazu, das "Übereinstimmungsbit" als
IM< r+1> auszuwählen (SELECT).
-
Die nachstehende Tabelle zeigt die Beziehung zwischen dem
ursprünglichen Befehl (I< K> ), dem LSBPID und dem modifizierten
Befehl (IM< r> und IM< r+1> ), die die Realisierung der Erfindung
mit dem in Fig. 5 dargestellten Aufbau belegt.