-
Die vorliegende Offenbarung betrifft eine elektronische Steuervorrichtung.
-
In jüngsten Jahren wurden in der elektronischen Steuervorrichtung für ein Fahrzeug Verbesserungen der Verarbeitungsleistung des Mikrocontrollers gemacht, um zunehmend komplexere Steuerungen handzuhaben. Beispielsweise beinhaltet ein Mikrocontroller mehrere Kerne und eine Parallelarithmetikverarbeitungseinheit. Der Kern fordert die Parallelarithmetikverarbeitungseinheit auf, eine arithmetische Anweisungsgruppe, die ein Satz der arithmetischen Anweisungen ist, zu verarbeiten, und die Parallelarithmetikverarbeitungseinheit verarbeitet die arithmetischen Anweisungen parallel, um die arithmetischen Anweisungen mit hoher Geschwindigkeit zu verarbeiten.
-
Die Parallelarithmetikverarbeitungseinheit ist konfiguriert, um die arithmetischen Anweisungen von der arithmetischen Anweisungsgruppe, deren Verarbeitung der der Kern angefordert hat, zu extrahieren und automatisch und optimal Ressourcen der Arithmetikeinheiten unter Verwendung der Hardwarefunktion zuzuordnen. Dementsprechend ist die Parallelarithmetikverarbeitungseinheit konfiguriert, um die parallele Verarbeitung mit hoher Geschwindigkeit auszuführen.
-
Jedoch, da die allgemeine Parallelarithmetikverarbeitungseinheit eine Hardware ist, die konfiguriert ist, um die arithmetischen Anweisungen parallel durch Zuordnen der Verarbeitungen von dem Kern zu dem verfügbaren Thread ungeachtet der Reihenfolge zum Verarbeiten der arithmetischen Anweisungen zu verarbeiten, können die arithmetischen Anweisungen korrekt verarbeitet werden, wenn die Parallelarithmetikverarbeitungseinheit die arithmetische Anweisungsgruppe verarbeitet, in der die Reihenfolge zum Verarbeiten der arithmetischen Anweisungen definiert ist.
-
Hinsichtlich des vorstehend beschriebenen Punkts ist es eine Aufgabe der vorliegenden Offenbarung, eine elektronische Steuervorrichtung bereitzustellen, die konfiguriert ist, um korrekt eine arithmetische Anweisungsgruppe zu verarbeiten, in der eine Reihenfolge zum Verarbeiten arithmetischer Anweisungen definiert ist, wenn die arithmetische Anweisungsgruppe durch eine Parallelarithmetikverarbeitungseinheit verarbeitet wird.
-
Gemäß einem Aspekt der vorliegenden Offenbarung beinhaltet eine elektronische Steuervorrichtung einen Mikrocontroller, der beinhaltet: eine Steuereinheit, die konfiguriert ist, um anzufordern, eine arithmetische Anweisungsgruppe zu verarbeiten, die ein Satz arithmetischer Anweisungen ist; und eine Parallelarithmetikverarbeitungseinheit, die konfiguriert ist, um die arithmetischen Anweisungen von der arithmetischen Anweisungsgruppe zu extrahieren, für die Steuereinheit angefordert hat, sie zu verarbeiten, wobei die Parallelarithmetikverarbeitungseinheit konfiguriert ist, um jede arithmetische Anweisung einer entsprechenden Arithmetikeinheit zuzuordnen, wodurch die Parallelarithmetikverarbeitungseinheit konfiguriert ist, um die arithmetischen Anweisungen parallel zu verarbeiten. Die Steuereinheit ist konfiguriert, um anzufordern, die arithmetische Anweisungsgruppe zu verarbeiten, in der eine Reihenfolge zum Verarbeiten der arithmetischen Anweisungen definiert ist. In einem Fall, in dem die Parallelarithmetikverarbeitungseinheit die arithmetische Anweisungsgruppe, in der die Reihenfolge zum Verarbeiten der arithmetischen Anweisungen definiert ist, in Antwort auf die Anforderung von der Steuereinheit verarbeitet, bestimmt die Parallelarithmetikverarbeitungseinheit, dass es eine Abnormalität gibt, wenn die arithmetische Anweisung die vorab verarbeitet werden muss, nicht verarbeitet wurde.
- 1 ist ein Funktionsblockschaltbild, das eine Konfiguration eines Mikrocontrollers gemäß einer ersten Ausführungsform illustriert.
- 2 ist ein Blockschaltbild, das Verbindungen zwischen einer Brennkraftmaschinen-ECU und jeder ECU illustriert.
- 3 ist ein Blockschaltbild, das schematisch eine Konfiguration einer Parallelarithmetikverarbeitungseinheit illustriert.
- 4 ist ein Blockschaltbild das eine Datenkommunikation zwischen einer Kerngruppe und der Parallelarithmetikverarbeitungseinheit illustriert.
- 5 ist ein Diagramm, das eine Graphstruktur illustriert.
- 6 ist ein Diagramm, das eine Warteschlange illustriert, die in einem normalen Zustand auf einen freien Thread wartet.
- 7 ist ein Diagramm, das eine Warteschlange illustriert, die in einem abnormalen Zustand auf einen freien Thread wartet.
- 8 ist ein Diagramm, das eine Beziehung zwischen Knoten und Bezeichnern illustriert.
- 9 ist ein Ablaufdiagramm, das schematisch eine Operation der Parallelarithmetikverarbeitungseinheit illustriert.
- 10 ist ein Diagramm, das eine Beziehung zwischen Knoten und Bezeichnern gemäß einer zweiten Ausführungsform illustriert.
- 11 ist ein Ablaufdiagramm, das schematisch eine Operation einer Parallelarithmetikverarbeitungseinheit illustriert.
- 12 ist ein Diagramm, das eine Beziehung zwischen Knoten und Bezeichnern gemäß einer dritten Ausführungsform illustriert.
- 13 ist ein Ablaufdiagramm, das schematisch eine Operation einer Parallelarithmetikverarbeitungseinheit illustriert.
- 14 ist ein Diagramm, das eine Beziehung zwischen Knoten und Bezeichnern gemäß einer vierten Ausführungsform illustriert.
- 15 ist ein Ablaufdiagramm, das schematisch eine Operation einer Parallelarithmetikverarbeitungseinheit illustriert.
- 16 ist ein Diagramm, das eine Beziehung zwischen Knoten und Bezeichnern gemäß einer fünften Ausführungsform illustriert.
- 17 ist ein Ablaufdiagramm, das schematisch eine Operation einer Parallelarithmetikverarbeitungseinheit illustriert.
- 18 ist ein Ablaufdiagramm, das schematisch eine Operation einer Parallelarithmetikverarbeitungseinheit gemäß einer sechsten Ausführungsform illustriert.
-
Ausführungsformen der vorliegenden Offenbarung werden nachfolgend mit Bezug auf die Zeichnungen beschrieben. In den Ausführungsformen kann ein Teil der einer in einer vorhergehenden Ausführungsform beschriebenen Sache entspricht mit den gleichen Bezugszeichen versehen werden und redundante Erläuterung für den Teil kann weggelassen werden. Wenn nur ein Teil einer Konfiguration in einer Ausführungsform beschrieben ist, kann eine andere vorhergehende Ausführungsform auf die anderen Teile der Konfiguration angewandt werden. Die Teile können kombiniert werden, obwohl es nicht explizit beschrieben ist, dass die Teile kombiniert werden können. Die Ausführungsformen können teilweise kombiniert werden, obwohl es nicht explizit beschrieben ist, dass die Ausführungsformen kombiniert werden können, sofern es keinen Schaden bei der Kombination gibt.
-
Nachfolgend werden mehrere Ausführungsformen gemäß den Zeichnungen beschrieben. In den mehreren Ausführungsformen sind funktional oder strukturell entsprechende Teile mit den gleichen Bezugszeichen versehen.
-
(Erste Ausführungsform)
-
Eine erste Ausführungsform wird gemäß 1 bis 9 beschrieben. Wie in 2 gezeigt ist, ist eine Brennkraftmaschinen-ECU (Elektronische Steuereinheit) 1 in einem Fahrzeug installiert. Die Brennkraftmaschinen-ECU 1 entspricht einer elektronischen Steuervorrichtung. Die Brennkraftmaschinen-ECU 1 ist mit anderen ECUs wie einer Automatikgetriebe-ECU 3, einer Instrumenten-ECU 4, einer Klimatisierungs-ECU 5 durch ein fahrzeuginternes LAN 2 zum Ausführen von Datenkommunikation verbunden. Das Protokoll des fahrzeuginternen LAN 2 ist beispielsweise CAN (Controller Area Network). CAN ist eine eingetragene Marke.
-
Die ECU 1 beinhaltet einen Mikrocontroller 11 als eine Hauptkomponente. Wie in 1 gezeigt ist, beinhaltet der Mikrocontroller 11 eine Kerngruppe 12 mehrerer Kerne 12a bis 12d und eine Parallelarithmetikverarbeitungseinheit 13. Die Kerne 12a bis 12d und die Parallelarithmetikverarbeitungseinheit 13 verarbeiten parallel mehrere arithmetische Verarbeitungen zum Verwirklichen einer Hochgeschwindigkeitsverarbeitung. Die Kerne 12a bis 12d entsprechen einer Steuereinheit.
-
Die Kerne 12a bis 12d und die Parallelarithmetikverarbeitungseinheit 13 sind miteinander durch einen internen Bus 14 verbunden und sind mit einem Speicher 15 wie einem ROM und einem RAM und peripheren Schaltungen wie einem AD-Wandler und einer CAN-Schnittstelle verbunden.
-
Der AD-Wandler ist konfiguriert, um Erfassungssignale von Sensoren, die konfiguriert sind, um Operationen eines Aktuators zum Steuern der Brennkraftmaschine und von Sensoren, die konfiguriert sind, um Operationszustände der Brennkraftmaschine zu erfassen, in Digitalwerte zu wandeln. Die Kerne 12a bis 12d sind konfiguriert, um gewandelte Digitalwerte von dem AD-Wandler zu erlangen. Wenn eine arithmetische Verarbeitung zum Berechnen eines spezifischen physikalischen Werts durch Verarbeitung der Digitalwerte benötigt wird, fordern die Kerne 12a bis 12d die Parallelarithmetikverarbeitungseinheit 13 auf, eine Verarbeitung auszuführen, durch Ausgeben einer Verarbeitungsanweisung an die Parallelarithmetikverarbeitungseinheit 13.
-
Wie in 3 gezeigt ist, beinhaltet die Parallelarithmetikverarbeitungseinheit 13 einen Speicher 17, eine Steuerschaltung 18 und mehrere Arithmetikeinheiten 19. Der Speicher 17 speichert arithmetische Anweisungen, die von den Kernen 12a bis 12c bereitgestellt werden, der Reihe nach.
-
Die Steuerschaltung 18 verarbeitet arithmetische Anweisungen, die in dem Speicher 17 gespeichert sind, in Kooperation mit den Arithmetikeinheiten 19. Das heißt, die Steuerschaltung 18 hat eine Zeitplanungsfunktion zum automatischen Zuordnen der arithmetischen Anweisungen, die in dem Speicher 17 gespeichert sind, dem entsprechenden Thread.
-
Die Arithmetikeinheiten 19 sind vom FIFO-Typ (First in First Out; der Reihe nach) zum sequentiellen Verarbeiten der arithmetischen Anweisungen, die durch die Steuerschaltung 18 verfügbaren Threads zugeordnet sind. Die Arithmetikeinheit 19 beinhaltet mehrere Arithmetikeinheiten desselben Typs und unterschiedlicher Typen. Die Arithmetikeinheiten 19 sind konfiguriert, um parallel arithmetische Anweisungen desselben Typs und unterschiedlicher Typen zu verarbeiten, indem sie die Anweisungen entsprechenden Threads zuordnet. Die Arithmetikeinheit 19 ist konfiguriert, um das Ergebnis der arithmetischen Verarbeitung in dem Speicher 17 zu speichern.
-
Wenn die Kerne 12a bis 12c die Parallelarithmetikverarbeitungseinheit 13 auffordern, die arithmetischen Anweisungen zu verarbeiten, erlangen die Arithmetikeinheiten 19 die Ergebnisse der arithmetischen Verarbeitung durch den Speicher 17 und führen anschließend Verarbeitung basierend auf den Ergebnissen der arithmetischen Verarbeitung aus.
-
In der vorliegenden Ausführungsform werden die Kerne 12a bis 12c in der Kerngruppe 12 als ein erster Kern 12a, ein zweiter Kern 12b und ein dritter Kern 12c verwendet und der Kern 12d wird als ein Rückgabekern 12 verwendet, wie in 4 gezeigt ist. Der Kern 12 hat eine Rückgabefunktion zum Zurückzugeben des Knotens, der von der Parallelarithmetikverarbeitungseinheit 13 zurückgegebenen wird, zum ursprünglichen Kern, der die Verarbeitung angefordert hat.
-
In manchen Fällen ist die Reihenfolge zum Verarbeiten der arithmetischen Anweisungen in der arithmetischen Anweisungsgruppe, für die die arithmetisch Kerne 12 bis 12c Verarbeitung anfordern, definiert. Beispielsweise ist in der arithmetischen Anweisungsgruppe, die in 5 gezeigt ist, die Reihenfolge derart definiert, dass die arithmetischen Anweisungen B bis D verarbeitet werden, nachdem die Verarbeitung der arithmetischen Anweisung A abgeschlossen ist, und die arithmetisch Anweisung E verarbeitet wird, nachdem die Verarbeitung der arithmetischen Anweisungen B bis D abgeschlossen sind. Nachfolgend wird die arithmetische Anweisung als ein Knoten bezeichnet und die arithmetische Anweisungsgruppe wird als ein Graph bezeichnet. In der Graphstruktur, die in 5 gezeigt ist, werden die Knoten korrekt verarbeitet, wenn die Knoten A bis E, die in Warteschlangen zum Warten auf freie Threads zugeordnet sind, in der in 6 gezeigten Reihenfolge verarbeitet werden.
-
Jedoch, da die Parallelarithmetikverarbeitungseinheit 13 konfiguriert ist, um automatisch die Knoten entsprechenden verfügbaren Threads zuzuordnen, kann die Verarbeitung des Knotens E gestartet werden, bevor die Verarbeitung der Knoten B, D, D abgeschlossen ist, wenn die Knoten A bis E, die wie in 7 gezeigt, zugeordnet sind, beispielsweise der Reihe nach verarbeitet werden. In so einem Fall kann auf vorhergehende Werte während der Verarbeitung des Knotens E Bezug genommen werden und die Verarbeitung wird möglicherweise nicht korrekt ausgeführt.
-
In dieser Hinsicht ist in der vorliegenden Ausführungsform die Parallelarithmetikverarbeitungseinheit 13 konfiguriert, um korrekt die Knoten wie nachstehend beschrieben zu verarbeiten, sogar, wenn die Reihenfolge zum Verarbeiten der Knoten in dem Graph definiert ist. Das heißt, wenn die Verarbeitungsreihenfolge der Knoten des Graphen definiert ist, fügen die arithmetischen Kerne 12a bis 12c den Knoten A bis E Bezeichner hinzu und fordern dann auf, die Knoten zu verarbeiten, wie in 8 gezeigt ist. Der Bezeichner entspricht einer Identifikationsinformation. Der Anfangswert des Bezeichners ist Null, was angibt, dass der Knoten noch nicht verarbeitet wurde.
-
Wenn die Parallelarithmetikverarbeitungseinheit 13 durch die arithmetischen Kerne 12a bis 12c aufgefordert wird, den Graphen zu verarbeiten, extrahiert die Parallelarithmetikverarbeitungseinheit 13 Knoten von dem Graphen und ordnet die Knoten den entsprechenden Threads zu. Zu diesem Zeitpunkt wird der Knoten unmittelbar verarbeitet, wenn der Thread verfügbar ist, und der Knoten wird in die Warteschlange, die auf einen freien Thread wartet, verschoben, wenn der Thread nicht verfügbar ist. Wenn die Verarbeitung des Knotens abgeschlossen ist, nachdem der Thread verfügbar wird, wird der Bezeichner entsprechend dem abgeschlossenen Knoten inkrementiert, um auf 1 aktualisiert zu werden. Diese „1“ gibt an, dass die Verarbeitung abgeschlossen ist, und entspricht einer Abschlussinformation.
-
Die Parallelarithmetikverarbeitungseinheit 13 ist konfiguriert, um den Verarbeitungszielknoten unter einer Bedingung zu verarbeiten, dass Knoten, die verarbeitet werden sollen, bevor die Verarbeitung des Verarbeitungszielknotens gestartet wird, abgeschlossen wurden. Das heißt, wenn die Parallelarithmetikverarbeitungseinheit 13 den Knoten verarbeitet, bestimmt die Parallelarithmetikverarbeitungseinheit 13, ob der Knoten eine vorherige Verarbeitung (S1) erfordert, und die Parallelarithmetikverarbeitungseinheit 13 führt die Verarbeitung (S2) aus, wenn die vorherige Verarbeitung nicht benötigt wird (S1: NEIN), wie in 9 gezeigt ist. Im Gegensatz dazu, wenn der Knoten die vorherige Verarbeitung erfordert (S1: JA), bestimmt die Parallelarithmetikverarbeitungseinheit 13, ob der Bezeichner des Knotens, wo die Verarbeitung abgeschlossen sein soll, aktualisiert wurde (S3), und die Parallelarithmetikverarbeitungseinheit 13 führt die Verarbeitung (S4) aus, wenn der Bezeichner aktualisiert wurde (S3: JA).
-
Wenn der Bezeichner des Knotens, wo die Verarbeitung abgeschlossen sein soll, nicht aktualisiert wurde (S3: NEIN), führt die Parallelarithmetikverarbeitungseinheit 13 eine Aufschuboperation durch Zurückgeben des Verarbeitungszielknotens zu dem ursprünglichen Kern 12a bis 12c durch, der die Verarbeitung benötigte (S5). Der Knoten wird verarbeitet, nachdem der Bezeichner des Knotens, an dem die Verarbeitung abgeschlossen sein soll, aktualisiert ist.
-
Beispielsweise wird angenommen, dass die Knoten, die in die Warteschlange, die auf den freien Thread wartet, verschoben werden, in der in 8 gezeigten Reihenfolge verarbeitet werden. Der Knoten B wird unter einer Bedingung verarbeitet, dass der Bezeichner des Knotens A auf 1 aktualisiert wurde, aber der Bezeichner des Knotens A wurde noch nicht aktualisiert und ist 0, wenn die Parallelarithmetikverarbeitungseinheit 13 versucht, den Knoten B zu verarbeiten. Wenn die Verarbeitung des Knotens A zu dem Zeitpunkt, wenn die Parallelarithmetikverarbeitungseinheit 13 versucht, den Knoten B zu verarbeiten, noch nicht abgeschlossen wurde, wird dies als Abnormalität bestimmt. In so einem Fall kann der Knoten B nicht verarbeitet werden und wird zurückgegeben.
-
Der Rückgabekern 12d ist konfiguriert, um den Knoten B zu empfangen, der von der Parallelarithmetikverarbeitungseinheit 13 zurückgegeben wird, und den Knoten B zu dem ursprünglichen Kern 12a bis 12c zu transferieren, der die Verarbeitung angefordert hat. Die Operation, die vorstehend beschrieben ist, kann durch Speichern der Korrespondenzbeziehung zwischen den Knoten des Graphen und den Kernen 12a bis 12c, die angefordert haben, die Knoten zu verarbeiten, wenn die arithmetischen Kerne 12a bis 12c anfordern, den Graphen zu verarbeiten, verwirklicht werden.
-
Wenn der Knoten B von der Parallelarithmetikverarbeitungseinheit 13 zurückgegeben wird, fordert der ursprüngliche Kern 12a bis 12c, der die Verarbeitung angefordert hat, erneut die Parallelarithmetikverarbeitungseinheit 13 auf, den Knoten B zu verarbeiten. Die Parallelarithmetikverarbeitungseinheit 13 verschiebt den Knoten B in die Warteschlange, die auf den freien Thread wartet, in Antwort auf die Anforderung von dem arithmetischen Kern 12a bis 12c. Nachdem die Verarbeitung der Knoten, die auf den freien Thread warten, fortfährt, wird der Knoten B unter einer Bedingung verarbeitet, dass der Bezeichner des Knotens A auf 1 aktualisiert wurde. Wenn der Bezeichner des Knotens A 0 bleibt, wird die vorstehend beschriebene Operation wiederholt, bis der Bezeichner des Knotens A auf 1 aktualisiert ist.
-
Auf ähnliche Weise wird der Knoten E unter einer Bedingung verarbeitet, dass alle Bezeichner der Knoten B bis D, deren Verarbeitung abgeschlossen sein soll, bevor gestartet wird, den Knoten E zu verarbeiten, auf 1 aktualisiert sind. Wenn mindestens einer der Bezeichner der Knoten B bis D 0 ist, das heißt, wenn mindestens der Verarbeitungen der Knoten B bis D nicht abgeschlossen wurde, wird eine Abnormalität bestimmt. In so einem Fall kann der Knoten E nicht verarbeitet werden und wird zum ursprünglichen Kern 12a bis 12c zurückgegeben, der angefordert hat, den Knoten E zu verarbeiten.
-
Wenn der Knoten E von der Parallelarithmetikverarbeitungseinheit 13 zurückgegeben wird, fordert der ursprüngliche Kern 12a bis 12c erneut die Parallelarithmetikverarbeitungseinheit 13 auf, den Knoten E zu verarbeiten. Die Parallelarithmetikverarbeitungseinheit 13 verschiebt den Knoten E in die Warteschlange, die auf den freien Thread wartet, in Antwort auf die Anforderung von dem arithmetischen Kern 12a bis 12c. Nachdem die Verarbeitung der Knoten, die auf den freien Thread warten, fortfährt, wird der Knoten E unter einer Bedingung verarbeitet, dass alle der Bezeichner der Knoten B bis D auf 1 aktualisiert wurden. Wenn mindestens einer der Bezeichner der Knoten B bis D null bleibt, wird die vorstehend beschriebene Operation wiederholt, bis alle der Bezeichner auf eins aktualisiert sind.
-
Wie vorstehend beschrieben ist, gibt die Parallelarithmetikverarbeitungseinheit 13 den Verarbeitungszielknoten wiederholt an den ursprünglichen Kern 12a bis 12c, der angefordert hat, den Knoten zu verarbeiten, zurück, bis die Bezeichner von Knoten, die vor der Verarbeitung des Verarbeitungszielknotens verarbeitet werden müssen, auf 1 aktualisiert sind. Da die arithmetischen Kerne 12a bis 12c konfiguriert sind, um erneut anzufordern, den zurückgegebenen Knoten zu verarbeiten, kann der Graph, in dem die Verarbeitungsreihenfolge der Knoten definiert ist, erfolgreich verarbeitet werden.
-
Gemäß der vorstehend beschriebenen Ausführungsform, können die folgenden Wirkungen erreicht werden. Die Parallelarithmetikverarbeitungseinheit 13 ist konfiguriert, um den Verarbeitungszielknoten zum ursprünglichen Kern zurückzugeben, der angefordert hat, den Knoten zu verarbeiten, wenn die Verarbeitung der Knoten, die vor der Verarbeitung des Verarbeitungszielknotens verarbeitet werden müssen, noch nicht abgeschlossen ist. Die arithmetischen Kerne 12a bis 12b sind konfiguriert, um erneut die Parallelarithmetikverarbeitungseinheit 13 aufzufordern, den zurückgegebenen Knoten zu verarbeiten. Demzufolge kann der Graph, in dem die Verarbeitungsreihenfolge der Knoten definiert ist, erfolgreich verarbeitet werden.
-
(Zweite Ausführungsform)
-
Nachfolgen wird eine zweite Ausführungsform gemäß 10 und 11 beschrieben. Die zweite Ausführungsform zeichnet sich darin aus, dass der Verarbeitungszielknoten und alle Knoten, die später zu starten sind, zu ursprünglichen Kernen zurückgegeben werden, die angefordert haben, die Knoten zu verarbeiten, wenn die Abnormalität erfasst wird.
-
Wenn der Verarbeitungszielknoten eine vorherige Verarbeitung benötigt (S1: JA) und wenn der Bezeichner des Knotens, wo die Verarbeitung abgeschlossen sein soll, nicht aktualisiert wurde (S3: NEIN), führt die Parallelarithmetikverarbeitungseinheit 13 die Aufschuboperation (S6) durch Zurückgeben des Verarbeitungszielknoten und aller Knoten, die später zu starten sind, an die ursprünglichen Kerne 12a bis 12c, die die Verarbeitung angefordert haben, aus, wie in 11 gezeigt ist. Der Knoten (S4) wird verarbeitet, nachdem der Bezeichner des Knotens, bei dem die Verarbeitung vorab abgeschlossen werden soll, aktualisiert ist (S3: JA).
-
Beispielsweise wird angenommen, dass die Knoten, die in die Warteschlange, die auf den freien Thread wartet, verschoben werden, in der in 10 gezeigten Reihenfolge verarbeitet werden. Da der Bezeichner des Knotens A, dessen Verarbeitung abgeschlossen sein soll, nicht aktualisiert wurde, bevor gestartet wird, den Knoten B zu verarbeiten, der die vorherige Verarbeitung benötigt, wird Abnormalität bestimmt und der Knoten B und alle Knoten C bis E, die später zu starten sind, werden an die ursprünglichen Kerne 12a bis 12c zurückgegeben, die die Verarbeitung angefordert haben. Das heißt, die Knoten B bis E werden an die ursprünglichen Kerne 12a bis 12c zurückgegeben.
-
Werden die Knoten B bis E von der Parallelarithmetikverarbeitungseinheit 13 zurückgegeben, fordern die ursprünglichen Kerne 12a bis 12c die Parallelarithmetikverarbeitungseinheit 13 erneut auf, die Knoten B bis E zu verarbeiten. Die Parallelarithmetikverarbeitungseinheit 13 verschiebt die Knoten B bis E in die Warteschlange, die auf den freien Thread wartet, in Antwort auf die Anforderung von den arithmetischen Kernen 12a bis 12c. Nachdem die Verarbeitung der Knoten, die auf den freien Thread warten, fortfährt, wird der Knoten B unter einer Bedingung verarbeitet, dass der Bezeichner des Knotens A auf 1 aktualisiert wurde. Die vorstehend beschriebene Operation wird wiederholt, während der Bezeichner des Knotens A 0 bleibt. Auf ähnliche Weise, wenn die Verarbeitung des Knotens, dessen Verarbeitung vorab verarbeitet sein soll, nicht abgeschlossen wurde, werden der Verarbeitungszielknoten und alle Knoten, die später zu starten sind, an die ursprünglichen Kerne 12a bis 12c, die die Verarbeitung angefordert haben, zurückgegeben.
-
Wie vorstehend beschrieben ist, gibt die Parallelarithmetikverarbeitungseinheit 13 wiederholt den Verarbeitungszielknoten und alle Knoten, die später zu starten sind, an den ursprünglichen Kern 12a bis 12c, der angefordert hat, die Knoten zu verarbeiten, zurück, bis die Bezeichner von Knoten, die vor der Verarbeitung des Verarbeitungszielknotens verarbeitet werden müssen, auf 1 aktualisiert sind. Da die arithmetischen Kerne 12a bis 12c konfiguriert sind, um erneut die Parallelarithmetikverarbeitungseinheit 13 aufzufordern, den zurückgegebenen Knoten zu verarbeiten, kann der Graph, in dem die Verarbeitungsreihenfolge der Knoten definiert ist, korrekt verarbeitet werden.
-
Gemäß der vorliegenden Ausführungsform ist die Parallelarithmetikverarbeitungseinheit 13 konfiguriert, um den Verarbeitungszielknoten und alle Knoten, die später zu starten sind, an die ursprünglichen Kerne, die die Verarbeitung angefordert haben, zurückzugeben, wenn die Verarbeitung der Knoten, die vorab abgeschlossen sein soll, nicht abgeschlossen ist. Die arithmetischen Kerne 12a bis 12b sind ferner konfiguriert, um erneut die Parallelarithmetikverarbeitungseinheit 13 aufzufordern, die zurückgegebenen Knoten zu verarbeiten. Dementsprechend kann die Anzahl der Bestimmungen der Abnormalität reduziert werden und die Verarbeitungszeit insgesamt kann verkürzt werden.
-
(Dritte Ausführungsform)
-
Nachfolgen wird eine dritte Ausführungsform gemäß 12 und 13 beschrieben. Die dritte Ausführungsform zeichnet sich dadurch aus, dass der Verarbeitungszielknoten zurück in die Warteschlange, die auf den freien Thread wartet, geschoben wird, wenn die Abnormalität erfasst wird. In der vorliegenden Ausführungsform ist der arithmetische Kern 12d anstelle des Rückgabekerns 12d der ersten Ausführungsform vorgesehen, wie in 12 gezeigt ist.
-
Wenn der Verarbeitungszielknoten eine vorherige Verarbeitung benötigt (S1: JA) und wenn der Bezeichner des Knotens, dessen Verarbeitung vorab abgeschlossen sein sollte sein sollte, nicht aktualisiert wurde (S3: NEIN), führt die Parallelarithmetikverarbeitungseinheit 13 die Aufschuboperation durch Zurückschieben des Verarbeitungszielknotens in die Warteschlange, die auf den freien Thread wartet, aus (S7), wie in 13 gezeigt ist. Der Knoten (S4) wird verarbeitet, nachdem der Bezeichner des Knotens, bei dem die Verarbeitung vorab abgeschlossen werden soll, aktualisiert ist (S3: JA).
-
Beispielsweise wird angenommen, dass die Knoten, die in die Warteschlange, die auf den freien Thread wartet, verschoben werden, in der in 12 gezeigten Reihenfolge verarbeitet werden. Da der Bezeichner des Knotens A, dessen Verarbeitung abgeschlossen sein soll, nicht aktualisiert wurde, bevor gestartet wird, den Knoten B zu verarbeiten, der die vorherige Verarbeitung benötigt, wird Abnormalität bestimmt und der Knoten B wird in die Warteschlange zurückgeschoben, die auf den freien Thread wartet. Auf ähnliche Weise, da die Bezeichner der Knoten B bis D, deren Verarbeitung abgeschlossen sein soll, nicht aktualisiert wurden, bevor gestartet wird, den Knoten E zu verarbeiten, der die vorherige Verarbeitung benötigt, wird Abnormalität bestimmt und der Knoten E wird in die Warteschlange zurückgeschoben.
-
Gemäß der vorliegenden Ausführungsform, in einem Fall, in dem der Graph, in dem die Verarbeitungsreihenfolge der Knoten definiert ist, durch die arithmetischen Kerne 12a bis 12c angefordert wird, verarbeitet zu werden, schiebt die Parallelarithmetikverarbeitungseinheit 13 den Verarbeitungszielknoten zurück in die Warteschlange, die auf den freien Thread wartet, wenn der Knoten, dessen Verarbeitung vorab abgeschlossen sein soll, nicht abgeschlossen wurde. Demzufolge kann der Graph, in dem die Verarbeitungsreihenfolge definiert ist, erfolgreich verarbeitet werden.
-
(Vierte Ausführungsform)
-
Nachfolgen wird eine vierte Ausführungsform gemäß 14 und 15 beschrieben. Die vierte Ausführungsform zeichnet sich dadurch aus, dass der Verarbeitungszielknoten und alle Knoten, die später zu starten sind, zurück in die Warteschlange, die auf den freien Thread wartet, geschoben werden, wenn die Abnormalität erfasst wird.
-
Wenn der Verarbeitungszielknoten eine vorherige Verarbeitung benötigt (S1: JA) und wenn der Bezeichner des Knotens, dessen Verarbeitung abgeschlossen sein soll, nicht aktualisiert wurde (S3: NEIN), führt die Parallelarithmetikverarbeitungseinheit 13 die Aufschuboperation durch Zurückschieben des Verarbeitungszielknotens und all der Knoten, die später zu starten sind, in die Warteschlange, die auf den freien Thread wartet, aus (S8), wie in 15 gezeigt ist. Der Knoten (S4) wird verarbeitet, nachdem der Bezeichner des Knotens, bei dem die Verarbeitung vorab abgeschlossen werden soll, aktualisiert ist (S3: JA).
-
Beispielsweise wird angenommen, dass die Knoten, die in die Warteschlange, die auf den freien Thread wartet, verschoben werden, in der in 14 gezeigten Reihenfolge verarbeitet werden. Da der Bezeichner des Knotens A, dessen Verarbeitung abgeschlossen sein soll, nicht aktualisiert wurde, bevor gestartet wird, den Knoten B zu verarbeiten, der eine vorherige Verarbeitung benötigt, wird Abnormalität bestimmt und der Verarbeitungszielknoten B und alle Knoten C bis E, die später zu starten sind, werden in die Warteschlange zurückgeschoben, die auf den freien Thread wartet. Das heißt, die Knoten B bis E werden in die Warteschlange, die auf den freien Thread wartet, zurückgeschoben.
-
Gemäß der vorliegenden Ausführungsform ist die Parallelarithmetikverarbeitungseinheit 13 konfiguriert, den Verarbeitungszielknoten und alle Knoten, die später zu starten sind, zurück in die Warteschlange, die auf den freien Thread wartet, zu schieben, wenn der Knoten, dessen Verarbeitung vorab abgeschlossen sein soll, noch nicht verarbeitet wurde. Dementsprechend kann die Anzahl der Bestimmungen der Abnormalität reduziert werden und die Verarbeitungszeit insgesamt kann verkürzt werden.
-
(Fünfte Ausführungsform)
-
Eine fünfte Ausführungsform wird gemäß 16 und 17 beschrieben. In der fünften Ausführungsform wird, wenn die Abnormalität erfasst wird, die Verarbeitung des Verarbeitungszielknotens aufgeschoben.
-
Wenn der Verarbeitungszielknoten eine vorherige Verarbeitung benötigt (S1: JA) und wenn der Bezeichner des Knotens, dessen Verarbeitung abgeschlossen sein soll, nicht aktualisiert wurde (S3: NEIN), führt die Parallelarithmetikverarbeitungseinheit 13 die Aufschuboperation aus, in dem sie die Verarbeitung des Knotens auf Bereitschaft hält, wie in 17 gezeigt ist. Der Knoten (S4) wird verarbeitet, nachdem der Bezeichner des Knotens, bei dem die Verarbeitung vorab abgeschlossen werden soll, aktualisiert ist (S3: JA).
-
Beispielsweise wird angenommen, dass die Knoten, die in die Warteschlange, die auf den freien Thread wartet, verschoben werden, in der in 16 gezeigten Reihenfolge verarbeitet werden. Die Parallelarithmetikverarbeitungseinheit 13 ist konfiguriert, um den Knoten B, der eine vorherige Verarbeitung benötigt, in Bereitschaft zu haben, bis der Bezeichner des Knotens A, dessen Verarbeitung vorab abgeschlossen sein soll, aktualisiert ist, und Verarbeitung des Knotens B zu starten, wenn der Knoten A aktualisiert ist. Auf ähnlich Weise ist die Parallelarithmetikverarbeitungseinheit 13 konfiguriert, um den Knoten E, der eine vorherige Verarbeitung benötigt, in Bereitschaft zu haben, bis die Bezeichner der Knoten B bis D, deren Verarbeitung vorab abgeschlossen sein soll, aktualisiert sind, und Verarbeitung des Knotens E zu starten, wenn die Bezeichner der Knoten B bis D aktualisiert sind.
-
Gemäß der vorliegenden Ausführungsform ist die Parallelarithmetikverarbeitungseinheit 13 konfiguriert, um den Knoten, der eine vorherige Verarbeitung benötigt, in Bereitschaft zu haben, während der Knoten, dessen Verarbeitung vorab abgeschlossen sein soll, nicht verarbeitet wurde. Demzufolge kann der Graph, in dem die Verarbeitungsreihenfolge der Knoten definiert ist, erfolgreich verarbeitet werden.
-
(Sechste Ausführungsform)
-
Eine sechste Ausführungsform wird gemäß Fig. 18 beschrieben. In der sechsten Ausführungsform wird die Verarbeitung aller Knoten, die später zu starten sind, aufgeschoben, wenn die Verarbeitung des Verarbeitungszielknotens aufgeschoben wird.
-
Wenn der Verarbeitungszielknoten eine vorherige Verarbeitung benötigt (S1: JA) und wenn der Bezeichner des Knotens, wo die Verarbeitung abgeschlossen sein soll, nicht aktualisiert wurde (S3: NEIN), führt die Parallelarithmetikverarbeitungseinheit 13 die Aufschuboperation aus, indem sie den Verarbeitungszielknoten und alle Knoten, die später zu starten sind, in Bereitschaft hat (S9), wie in 18 gezeigt ist. Der Bereitschaftszustand wird freigegeben und die Verarbeitung wird ausgeführt (S4), nachdem der Bezeichner des Knotens, bei dem die Verarbeitung vorab abgeschlossen werden soll, aktualisiert ist (S3: JA). Zu dieser Zeit werden die Bereitschaftszustände aller Knoten, die später zu starten sind, gleichzeitig freigegeben.
-
Gemäß der vorliegenden Ausführungsform ist die Parallelarithmetikverarbeitungseinheit 13 konfiguriert, um den Verarbeitungszielknoten und alle Knoten, die später zu starten sind, in Bereitschaft zu haben, während der Knoten, dessen Verarbeitung vorab abgeschlossen sein soll, nicht verarbeitet wurde. Dementsprechend kann die Anzahl der Bestimmungen der Abnormalität reduziert werden und die Verarbeitungszeit insgesamt kann verkürzt werden.
-
(Weitere Ausführungsformen)
-
In der ersten Ausführungsform kann der Rückgabekern 12d ebenso als ein arithmetischer Kern dienen. Ein Teil der Rückgabefunktion, die durch den Rückgabekern 12d ausgeführt wird, kann auf jeden der andere arithmetischen Kerne 12a bis 12c verteilt werden und durch die arithmetischen Kerne 12a bis 12c ausgeführt werden. Die Abschlussinformation ist nicht auf 1 beschränkt und kann Zeichendaten sein. Obwohl die vorliegende Offenbarung gemäß den Ausführungsformen beschrieben wurde, ist es ersichtlich, dass die vorliegende Offenbarung nicht auf solche Ausführungsformen oder Strukturen beschränkt ist. Die vorliegende Offenbarung umfasst unterschiedliche Modifikationen und Variationen innerhalb des Umfangs von Äquivalenten. Darüber hinaus fallen verschiedene Kombinationen und Ausführungen sowie andere Kombinationen und Ausbildungen, die nur ein Element oder mehr oder weniger als diese Elemente enthalten, ebenfalls in den Geist und Umfang der vorliegenden Offenbarung.
-
Zusätzliche Vorteile und Modifikationen werden dem Fachmann leicht einfallen. Die Offenbarung im weiteren Sinne ist demnach nicht auf spezifische Details, repräsentative Vorrichtungen und illustrative Beispiele beschränkt, die vorstehend gezeigt und beschrieben sind.