-
HINTERGRUND
-
Die vorliegende Erfindung bezieht sich auf die Detektion von Fehlern in einer Vorrichtung für eine parallele Arithmetik.
-
In den letzten Jahren wird eine KI-Funktion in eine Ausrüstung auf einer Randseite (beispielsweise Kraftfahrzeuge oder Industrieausrüstung) anstelle von oder zusätzlich zu einer Ausrüstung auf einer Cloud-Seite eingegliedert.
-
Im Allgemeinen wird die KI-Funktion (Funktion von künstlicher Intelligenz) durch eine GPU (Graphikverarbeitungseinheit) implementiert, die ein Beispiel der Vorrichtung für eine parallele Arithmetik (einer Vorrichtung, die zu einer parallelen Arithmetik in der Lage ist) implementiert. Die Genauigkeit des Rückschlusses durch die KI-Funktion hängt auch von der Genauigkeit der GPU, die den Rückschluss durchführt, zusätzlich zur Genauigkeit von Rückschlussmodellen ab. Elemente in der GPU können grob in ein Datensystem und ein Steuersystem unterteilt werden.
-
Als Verfahren zum Detektieren von Fehlern im Datensystem ist es möglich, eine Fehlerdetektion unter Verwendung von redundanten Codes (beispielsweise ECC [Fehlerkorrekturcode] und CRC [zyklischer Redundanzcode]) zu übernehmen.
-
Andererseits ist es als Verfahren zum Detektieren von Fehlern im Steuersystem möglich, Redundanz (beispielsweise Duplikation) von Hardware-Ressourcen, die das Steuersystem umfassen, zu übernehmen. Dieses Verfahren erfordert jedoch viele Hardware-Ressourcen.
-
Um die Redundanz der Hardware-Ressourcen, die das Steuersystem umfassen, zu vermeiden, kann möglicherweise ein Verfahren, das in der Referenz 1 offenbart ist, das heißt ein Verfahren zum Einbetten eines Codes zum arithmetischen Betreiben einer Signatur, die eine arithmetische Geschichte darstellt, in ein Programm vor der Ausführung des Programms durch eine CPU (Zentraleinheit) verwendet werden. Wegen der Zweckmäßigkeit wird die Arithmetik, die durch den im Programm beschriebenen Code dargestellt wird, bevor der Signaturarithmetikcode eingebettet wird (das heißt das ursprüngliche Programm), nachstehend als „Anwendungsarithmetik“ bezeichnet.
-
Referenz 1: Japanische Patentoffenlegungsschrift (Kokai) Veröffentlichungsnr. H6-83663
-
ZUSAMMENFASSUNG
-
Gemäß dem in Referenz 1 offenbarten Verfahren wird erwartet, dass, ob ein Fehler im Steuersystem vorliegt oder nicht, durch regelmäßiges Vergleichen eines Signaturwerts mit einem erwarteten Wert geprüft werden kann.
-
Wenn jedoch das in Referenz 1 offenbarte Verfahren auf die GPU angewendet wird, besteht die Befürchtung dass sich der Durchsatz verschlechtert. Dies liegt daran, dass: die GPU mehrere arithmetische Gruppen (gemeinsam SM [Streaming-Multiprozessor] genannt) umfasst und jede arithmetische Gruppe mehrere Kerne und ein Steuersystem (typischerweise eine Ablaufsteuerung) zum Zuweisen von Befehlen zu den mehreren Kernen umfasst; und wenn das in Referenz 1 offenbarte Verfahren auf die GPU mit einer solchen Konfiguration angewendet wird, die Signaturarithmetik allen Kernen der mehreren arithmetischen Gruppen zugewiesen wird.
-
Diese Art von Problem kann auch bei anderen Vorrichtungen für parallele Arithmetik als der GPU passieren.
-
Ein Programm zum Bewirken, dass eine Vorrichtung für eine parallele Arithmetik mit mehreren arithmetischen Gruppen eine parallele Arithmetik einer vorbestimmten Verarbeitung ausführt, wird eingegeben. Das Programm umfasst Informationen, die jede der Folgenden definieren: eine Anwendungsarithmetik, die mehrere arithmetische Operationen ist, die die vorbestimmte Verarbeitung bilden; eine redundante Arithmetik (die eine redundante Arithmetik der Anwendungsarithmetik ist und eine Arithmetik ist, die (einem) Überschusskern(en) in einer ersten arithmetischen Gruppe zugewiesen ist); und eine Diagnosearithmetik (eine Arithmetik, die ein Vergleich von Ergebnissen der redundanten Arithmetik derselben redundanten Arithmetik durch zwei oder mehr Überschusskerne ist, die im Besitz von jeder von zwei oder mehr ersten arithmetischen Gruppen stehen, und die Überschusskernen in einer zweiten arithmetischen Gruppe zugewiesen ist). Der (die) Überschusskern(e) ist (sind) ein Kern, dem die Anwendungsarithmetik nicht zugewiesen ist. Gemäß einer Ausführungsform ist eine Programmerzeugungseinrichtung zum Erzeugen eines solchen Programms strukturiert.
-
Gemäß der vorliegenden Erfindung ist es möglich, das Programm zu erzeugen, das nicht die Redundanz der Hardware-Ressourcen der Vorrichtung für eine parallele Arithmetik induziert, und die Durchsatzverschlechterung unterdrückt und Fehler im Steuersystem detektiert.
-
Figurenliste
-
- 1 ist eine Beispielkonfiguration für eine Programmerzeugungseinrichtung gemäß einer ersten Ausführungsform;
- 2 stellt ein Beispiel eines Überblicks einer parallelen Arithmetik gemäß einem zweiten Programm für eine parallele Arithmetik dar;
- 3 stellt ein Beispiel eines Verarbeitungsablaufs dar, der durch die Programmerzeugungseinrichtung gemäß der ersten Ausführungsform ausgeführt wird;
- 4 ist eine Beispielkonfiguration für eine Programmerzeugungseinrichtung gemäß einer zweiten Ausführungsform;
- 5 stellt ein Beispiel eines Verarbeitungsablaufs dar, der durch die Programmerzeugungseinrichtung gemäß der zweiten Ausführungsform ausgeführt wird;
- 6 ist eine Beispielkonfiguration für eine Vorrichtung für eine parallele Arithmetik gemäß einer dritten Ausführungsform;
- 7 stellt ein Beispiel eines Verarbeitungsablaufs dar, der durch die Vorrichtung für eine parallele Arithmetik gemäß der dritten Ausführungsform ausgeführt wird;
- 8 ist eine Beispielkonfiguration für eine Vorrichtung für eine parallele Arithmetik gemäß einer vierten Ausführungsform;
- 9 stellt ein Beispiel eines Verarbeitungsablaufs dar, der durch die Vorrichtung für eine parallele Arithmetik gemäß der vierten Ausführungsform ausgeführt wird;
- 10 stellt ein Beispiel einer Verarbeitung dar, die durch die Vorrichtung für eine parallele Arithmetik gemäß der vierten Ausführungsform ausgeführt wird; und
- 11 stellt eine Beispielkonfiguration für ein zweites Programm für eine parallele Arithmetik dar.
-
BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
-
In der folgenden Erläuterung kann eine „Schnittstelleneinrichtung“ eine oder mehrere Schnittstellenvorrichtungen sein. Die eine oder die mehreren Schnittstellenvorrichtungen können mindestens eine der Folgenden sein:
- - Eine oder mehrere E/A-Schnittstellenvorrichtungen (Eingabe/Ausgabe-Schnittstellenvorrichtungen). Die E/A-Schnittstellenvorrichtung (Eingabe/Ausgabe-Schnittstellenvorrichtung) ist eine Schnittstellenvorrichtung für eine E/A-Vorrichtung und/oder einen entfernten Anzeigecomputer. Die E/A-Schnittstellenvorrichtung für den Anzeigecomputer kann eine Kommunikationsschnittstellenvorrichtung sein. Mindestens eine E/A-Vorrichtung kann beispielsweise eine Benutzerschnittstellenvorrichtung, eine von Eingabevorrichtungen wie z. B. einer Tastatur und einer Zeigevorrichtung und Ausgabevorrichtungen wie z. B. einer Anzeigevorrichtung sein.
- - Eine oder mehrere Kommunikationsschnittstellenvorrichtungen. Die eine oder die mehreren Kommunikationsschnittstellenvorrichtungen können eine oder mehrere Kommunikationsschnittstellenvorrichtungen desselben Typs (beispielsweise eine oder mehrere NICs [Netzschnittstellenkarten]) oder zwei oder mehr Kommunikationsschnittstellenvorrichtungen verschiedener Typen (beispielsweise eine NIC und ein HBA [Host-Busadapter]) sein.
-
In der folgenden Erläuterung ist ferner ein „Arbeitsspeicher“ eine oder mehrere Arbeitsspeichervorrichtungen, die ein Beispiel von einer oder mehreren Speichervorrichtungen sind, und kann typischerweise eine Hauptspeichervorrichtung sein. Mindestens eine Arbeitsspeichervorrichtung im Arbeitsspeicher kann eine flüchtige Arbeitsspeichervorrichtung oder eine nichtflüchtige Arbeitsspeichervorrichtung sein.
-
In der folgenden Erläuterung kann ferner eine „dauerhafte Speichereinrichtung“ eine oder mehrere dauerhafte Speichervorrichtungen sein, die ein Beispiel von einer oder mehreren Speichervorrichtungen sind. Die dauerhafte Speichervorrichtung kann typischerweise eine nichtflüchtige Speichervorrichtung (wie z. B. eine Hilfsspeichervorrichtung) sein und kann speziell beispielsweise ein HDD (Festplattenlaufwerk), SSD (Halbleiterlaufwerk), NVME-Laufwerk (nichtflüchtiges Arbeitsspeicherexpresslaufwerk) oder SCM (Speicherklassenarbeitsspeicher) sein.
-
Ferner kann in der folgenden Erläuterung eine „Speichereinrichtung“ ein Arbeitsspeicher und mindestens ein Arbeitsspeicher für die dauerhafte Speichereinrichtung sein.
-
Ferner kann in der folgenden Erläuterung ein „Prozessor“ eine oder mehrere Prozessorvorrichtungen sein. Mindestens eine Prozessorvorrichtung kann typischerweise eine Mikroprozessorvorrichtung wie z. B. eine CPU (Zentraleinheit) sein. Mindestens eine Prozessorvorrichtung kann ein Einzelkern oder Mehrfachkern sein.
-
Ferner wird (werden) in der folgenden Erläuterung (eine) Funktion(en) manchmal unter Verwendung des Ausdrucks „yyy-Einheit“ erläutert; die Funktion(en) kann (können) jedoch durch Ausführung von einem oder mehreren Computerprogrammen durch einen Prozessor implementiert werden, kann (können) durch eine oder mehrere Hardware-Schaltungen (wie z. B. FPGA oder ASIC) implementiert werden oder kann (können) durch eine Kombination der Ausführung von einem oder mehreren Computerprogrammen durch den Prozessor und die eine oder die mehreren Hardware-Schaltungen implementiert werden. Wenn die Funktion durch die Ausführung des Programms (der Programme) durch den Prozessor implementiert wird, wird eine vorbestimmte Verarbeitung unter Verwendung beispielsweise einer Speichereinrichtung und/oder einer Schnittstelleneinrichtung, wie geeignet, ausgeführt; und daher kann die Funktion als zumindest Teil des Prozessors erkannt werden. Die mit Bezug auf die Funktion als Gegenstand erläuterte Verarbeitung kann eine Verarbeitung sein, die durch den Prozessor oder eine Einrichtung mit diesem Prozessor ausgeführt wird. Das (die) Programm(e) kann (können) von einer Programmquelle installiert werden. Die Programmquelle kann beispielsweise ein Programmverteilungscomputer oder ein computerlesbares Aufzeichnungsmedium (wie z. B. ein nichttransitorisches Aufzeichnungsmedium) sein. Die Erläuterung über jede Funktion ist ein Beispiel; und mehrere Funktionen können in eine Funktion integriert sein oder eine Funktion kann in mehrere Funktionen unterteilt sein.
-
In der folgenden Erläuterung wird überdies eine ID als „Identifikationsinformationen“ jedes Elements übernommen; ein anderer Typ von Informationen (wie z. B. ein Name) kann jedoch anstelle der oder zusätzlich zur ID übernommen werden.
-
Wenn in der folgenden Erläuterung Elemente desselben Typs erläutert werden, ohne sie voneinander zu unterscheiden, wird ferner ein gemeinsames Bezugszeichen in Bezugszeichen verwendet; und wenn die Elemente desselben Typs voneinander unterschieden werden, können die Bezugszeichen manchmal verwendet werden.
-
Einige Ausführungsformen werden nachstehend erläutert.
-
[Erste Ausführungsform]
-
1 stellt eine Beispielkonfiguration für eine Programmerzeugungseinrichtung gemäß einer ersten Ausführungsform dar.
-
Eine Programmerzeugungseinrichtung 100 ist eine Einrichtung, die ein Programm für eine parallele Arithmetik erzeugt, das ein Computerprogramm ist, das bewirkt, dass eine Vorrichtung 160 für eine parallele Arithmetik eine vorbestimmte Verarbeitung unter Verwendung einer parallelen Arithmetik ausführt. Die Vorrichtung 160 für eine parallele Arithmetik umfasst mehrere arithmetische Gruppen 161. Jede arithmetische Gruppe 161 umfasst mehrere Kerne 10 und ein Steuersystem 20, das denselben arithmetischen Befehl zu den mehreren Kernen 10 zuweist. Im Übrigen ist in dieser Ausführungsform „derselbe arithmetische Befehl“ das Äquivalent eines Befehls mit derselben Rechenformel. Ferner ist in dieser Ausführungsform, selbst wenn die Rechenformel dieselbe ist, wenn die verwendeten Variablenwerte unterschiedlich sind, die Arithmetik (die arithmetische Operation) unterschiedlich. Mit anderen Worten, mehrere arithmetische Operationen, die unter Verwendung derselben Rechenformel und von mehreren verschiedenen Variablenwerten ausgeführt werden, sind unterschiedliche arithmetische Operationen.
-
Die Programmerzeugungseinrichtung 100 kann eine Gruppe von physikalischen Computern (einem oder mehreren physikalischen Computern) oder eine logische Vorrichtung sein, die auf einer Gruppe von physikalischen Computern implementiert wird (beispielsweise eine Cloud-Infrastruktur). Die Gruppe von physikalischen Computern ist als physikalische oder logische Rechenressourcen mit einer Schnittstelleneinrichtung 101, einer Speichervorrichtung 102 und einem Prozessor 103, der mit ihnen verbunden ist, ausgestattet. Die Programmerzeugungseinrichtung 100 umfasst eine Überschusskernfestlegungseinheit 111 und eine Programmerzeugungseinheit 112.
-
Ein erstes Programm 140 für eine parallele Arithmetik und Vorrichtungstypinformationen 141 werden in die Programmerzeugungseinrichtung 100 über die Schnittstelleneinrichtung 101 eingegeben. Das erste Programm 140 für eine parallele Arithmetik ist ein Computerprogramm, das die Anwendungsarithmetik definiert, die eine vorbestimmte Verarbeitung bildet, und bewirkt, dass die Vorrichtung 160 für eine parallele Arithmetik (beispielsweise eine GPU) die parallele Arithmetik in der vorbestimmten Verarbeitung ausführt. Die Vorrichtungstypinformationen 141 umfassen Informationen, die den Typ (beispielsweise Vorrichtungsname und/oder Modellnummer) der Vorrichtung 160 für eine parallele Arithmetik angeben.
-
Ein zweites Programm 150 für eine parallele Arithmetik wird aus der Programmerzeugungseinrichtung 100 über die Schnittstelleneinrichtung 101 ausgegeben. Das zweite Programm 150 für eine parallele Arithmetik ist ein Computerprogramm, das durch die Programmerzeugungseinrichtung 100 auf der Basis des ersten Programms 140 für eine parallele Arithmetik erzeugt wird. Insbesondere ist das zweite Programm 150 für eine parallele Arithmetik ein Computerprogramm, das bewirkt, dass die Vorrichtung 160 für eine parallele Arithmetik zusätzlich zur vorbestimmten Verarbeitung, die durch das erste Programm 140 für eine parallele Arithmetik angegeben wird, die Detektion der Anwesenheit oder Abwesenheit von Fehlern im Steuersystem 20 (typischerweise eine Ablaufsteuerung) der Vorrichtung 160 für eine parallele Arithmetik ausführt.
-
Die Speichervorrichtung 102 speichert eine Gruppe von Computerprogrammen (einem oder mehreren Computerprogrammen), die durch den Prozessor 103 ausgeführt werden, und Informationen, auf die durch den Prozessor 103 Bezug genommen wird oder die durch diesen aktualisiert werden. Die Informationen sind beispielsweise eine DB (Datenbank) 116 der Vorrichtung für eine parallele Arithmetik. Die DB 116 der Vorrichtung für eine parallele Arithmetik enthält für jeden Vorrichtungstyp von Vorrichtung für eine parallele Arithmetik Vorrichtungskonfigurationsinformationen, die die Konfiguration der Vorrichtung für eine parallele Arithmetik angeben. Für jeden Vorrichtungstyp von Vorrichtung für eine parallele Arithmetik umfassen die Konfigurationsinformationen mindestens ein Element (a) aus den nachstehenden Elementen (a) bis (d).
- (a) Die Gesamtkernzahl in der Vorrichtung für eine parallele Arithmetik („Kernzahl“ ist die Anzahl von Kernen).
- (b) Die Anzahl von arithmetischen Gruppen 161.
- (c) Gruppenkonfigurationsinformationen, die Konfigurationsinformationen für jede arithmetische Gruppe 161 sind. Für jede arithmetische Gruppe 161 sind die Gruppenkonfigurationsinformationen die ID der relevanten arithmetischen Gruppe 161 und/oder die ID jedes Kerns 10 in der relevanten arithmetischen Gruppe 161.
- (d) Der Adressenumfang des Speicherbereichs der Vorrichtung für eine parallele Arithmetik.
-
Die Überschusskernfestlegungseinheit 111 und die Programmerzeugungseinheit 112 werden durch den Prozessor 103 implementiert, der einen Satz von Computerprogrammen ausführt, die sich in der Speichervorrichtung 102 befinden. Die Überschusskernfestlegungseinheit 111 legt auf der Basis des ersten Programms 140 für eine parallele Arithmetik die Überschusskernzahl in der parallelen Arithmetik fest. Die Programmerzeugungseinheit 112 erzeugt das zweite Programm 150 für eine parallele Arithmetik auf der Basis des ersten Programms 140 für eine parallele Arithmetik.
-
Die Überschusskernfestlegungseinheit 111 umfasst eine Überschusskernzahlberechnungseinheit 121. Die Überschusskernzahlberechnungseinheit 121 erhält Vorrichtungskonfigurationsinformationen von der DB 116 der Vorrichtung für eine parallele Arithmetik unter Verwendung der Eingabevorrichtungstypinformationen als Schlüssel und legt die durch die Vorrichtungskonfigurationsinformationen angegebene Gesamtkernzahl fest. Ferner berechnet die Überschusskernzahlberechnungseinheit 121 eine Zahl von verwendeten Kernen, die die Gesamtanzahl von verwendeten Kernen 10c ist, auf der Basis des ersten Programms 140 für eine parallele Arithmetik (insbesondere beispielsweise eines Quellencodes des ersten Programms 140 für eine parallele Arithmetik). Ein „verwendeter Kern“ ist ein Kern, dem die Anwendungsarithmetik zugewiesen ist. Die Überschusskernzahlberechnungseinheit 121 berechnet die Überschusskernzahl durch Subtrahieren der Zahl von verwendeten Kernen von der Gesamtkernzahl. Die Überschusskernzahl ist die Gesamtanzahl von Überschusskernen 10r. Ein „Überschusskern“ ist ein Kern, dem keine Anwendungsarithmetik zugewiesen ist (beispielsweise ein Kern, der sich in einem Leerlaufzustand befindet).
-
Die Programmerzeugungseinheit 112 umfasst eine Kernbezeichnungseinheit 131 für die redundante Arithmetik und eine Diagnosearithmetikkernbezeichnungseinheit 132.
-
Auf der Basis der berechneten Überschusskernzahl, des ersten Programms 140 für eine parallele Arithmetik und der erhaltenen Vorrichtungskonfigurationsinformationen führt die Kernbezeichnungseinheit 131 für die redundante Arithmetik beispielsweise Folgendes aus.
-
Genau gesagt bestimmt die Kernbezeichnungseinheit 131 für die redundante Arithmetik zwei oder mehr erste arithmetische Gruppen 161A und eine oder mehrere zweite arithmetische Gruppen 161B aus den mehreren arithmetischen Gruppen 161 auf der Basis der Vorrichtungskonfigurationsinformationen. Die erste arithmetische Gruppe 161A ist eine arithmetische Gruppe, die einer Diagnose unterzogen wird, einschließlich bezüglich der Anwesenheit oder Abwesenheit von Fehlern im Steuersystem 20. Die zweite arithmetische Gruppe 161B ist eine arithmetische Gruppe, die mit Bezug auf jede erste arithmetische Gruppe 161A diagnostiziert, ob sich ein Fehler im Steuersystem 20A der ersten arithmetischen Gruppe 161A befindet oder nicht.
-
Überdies bestimmt die Kernbezeichnungseinheit 131 für die redundante Arithmetik (einen) Überschusskern(e) 10r für jede erste arithmetische Gruppe 161A auf der Basis der Vorrichtungskonfigurationsinformationen. Mit anderen Worten, jede erste arithmetische Gruppe 161A weist mindestens einen Überschusskern 10r auf. Im Übrigen sind für die zweite arithmetische Gruppe 161B alle Kerne 10 Überschusskerne 10r.
-
Die Kernbezeichnungseinheit 131 für die redundante Arithmetik erzeugt auch Informationen, die eine redundante Arithmetik definieren, auf der Basis des ersten Programms 140 für eine parallele Arithmetik. Die „redundante Arithmetik“ ist die redundante Arithmetik der Anwendungsarithmetik, die durch das erste Programm 140 für eine parallele Arithmetik definiert ist. Spezielle Beispiele der redundanten Arithmetik werden später erläutert.
-
Die Kernbezeichnungseinheit 131 für die redundante Arithmetik weist auch die redundante Arithmetik dem (den) Überschusskern(en) 10r der ersten arithmetischen Gruppe 161A zu und bestimmt die Speicherstelle (Speicherstelle im Speicherbereich, der im Besitz der Vorrichtung 160 für eine parallele Arithmetik steht) zum Speichern der Ergebnisse der redundanten Arithmetik.
-
Außerdem legt die Kernbezeichnungseinheit 131 für die redundante Arithmetik Informationen fest, die die redundante Arithmetik definieren. Ein „Programm, das einer Überarbeitung unterzogen wird“, kann ein Programm sein, das das erste Programm 140 für eine parallele Arithmetik aufweist und das Informationen enthält, die die Anwendungsarithmetik definieren, und entspricht einem Programm auf dem Weg zum zweiten Programm 150 für eine parallele Arithmetik. Die „Informationen, die die redundante Arithmetik definieren“ können Informationen umfassen, die die Speicherstelle (beispielsweise Arbeitsspeicheradresse) des Ergebnisses der redundanten Arithmetik angeben. Die „Informationen, die die redundante Arithmetik definieren“, können auch die ID des Kerns umfassen, dem die redundante Arithmetik zugewiesen ist. Außerdem kann die Kernbezeichnungseinheit 131 für die redundante Arithmetik Informationen im Programm festlegen, das einer Überarbeitung unterzogen wird, die mindestens eines angeben von: welche arithmetische Gruppe 161 die erste arithmetische Gruppe 161A ist und welche arithmetische Gruppe 161 die zweite arithmetische Gruppe 161B ist, und kann auch Informationen im Programm festlegen, das der Überarbeitung unterzogen wird, die mindestens eine angeben von: der Anzahl von ersten arithmetischen Gruppen 161A und der Anzahl von zweiten arithmetischen Gruppen 161B. Überdies kann die Kernbezeichnungseinheit 131 für die redundante Arithmetik auch Informationen im Programm festlegen, das einer Überarbeitung unterzogen wird, die mindestens eine angeben von: der Überschusskernzahl und der Zahl von verwendeten Kernen.
-
Die Diagnosearithmetikkernbezeichnungseinheit 132 erzeugt Informationen, die eine Diagnosearithmetik definieren, auf der Basis der Informationen, die aus der Kernbezeichnungseinheit 131 für die redundante Arithmetik ausgegeben werden, und legt die Informationen im Programm fest, das einer Überarbeitung unterzogen wird. Unter diesem Umstand umfassen die „Informationen, die aus der Kernbezeichnungseinheit 131 für die redundante Arithmetik ausgegeben werden“, das Programm, das einer Überarbeitung unterzogen wird, oder die Informationen, die es aufweist. Ferner ist die „Diagnosearithmetik“ ein Vergleich der Ergebnisse der Ausführung derselben redundanten Arithmetik durch zwei oder mehr Überschusskerne in jeder von zwei oder mehr ersten arithmetischen Gruppen, und ist eine Arithmetik, die den Überschusskernen in der zweiten arithmetischen Gruppe zugewiesen ist. Die „Informationen, die die Diagnosearithmetik definieren“, können Informationen umfassen, die die Speicherstelle der Ergebnisse der Diagnosearithmetik angeben. Die „Informationen, die die Diagnosearithmetik definieren“, können auch die ID des Kerns umfassen, dem die Diagnosearithmetik zugewiesen ist.
-
Das Programm, das der Überarbeitung unterzogen wird, in dem die redundante Arithmetik und Diagnosearithmetik definiert sind, entspricht dem erzeugten zweiten Programm 150 für eine parallele Arithmetik. Das zweite Programm 150 für eine parallele Arithmetik wird über die Schnittstelleneinrichtung 101 ausgegeben.
-
Gemäß der vorangehenden Beschreibung weist das zweite Programm 150 für eine parallele Arithmetik zusätzlich zu den Informationen, die die Anwendungsarithmetik definieren, die im ersten Programm 140 für eine parallele Arithmetik definiert ist, Informationen, die die redundante Arithmetik definieren, und Informationen, die die Diagnosearithmetik definieren, auf. Unter diesem Umstand kann mit Bezug auf jede der Anwendungsarithmetik, der redundanten Arithmetik und der Diagnosearithmetik, ob die Arithmetik dieselbe oder unterschiedlich ist, beispielsweise davon abhängen, ob die in der Arithmetik selbst verwendete Funktion dieselbe oder unterschiedlich ist, oder ob die Funktion selbst dieselbe ist, aber Variablenwerte gleich oder verschieden sind. Die Anwendungsarithmetik mit derselben Funktion, aber unterschiedlichen Variablenwertebereichen kann beispielsweise eine unterschiedliche Anwendungsarithmetik sein.
-
Ferner kann das zweite Programm 150 für eine parallele Arithmetik Informationen umfassen, die mindestens eines der folgenden (A) bis (E) darstellen. Dies ermöglicht eine detaillierte Spezifikation für die Vorrichtung 160 für eine parallele Arithmetik bei der Ausführung des zweiten Programms 150 für eine parallele Arithmetik.
- (A) welche arithmetische Gruppe die erste arithmetische Gruppe ist und/oder die Anzahl von ersten arithmetischen Gruppen.
- (B) welche arithmetische Gruppe die zweite arithmetische Gruppe ist und/oder die Anzahl von zweiten arithmetischen Gruppen.
- (C) Mindestens eines der folgenden (c1) und (c2) mit Bezug auf die redundante Arithmetik.
- (c1) Die Überschusskerne, denen die redundante Arithmetik zugewiesen ist.
- (c2) Die Speicherstelle der Ergebnisse der redundanten Arithmetik in der Vorrichtung für eine parallele Arithmetik.
- (D) Mindestens eines der folgenden (d1) und (d2) mit Bezug auf die Diagnosearithmetik.
- (d1) Die Überschusskerne, denen die Diagnosearithmetik zugewiesen ist.
- (d2) Die Speicherstelle der Ergebnisse der Diagnosearithmetik in der Vorrichtung für eine parallele Arithmetik.
- (E) Die Überschusskernzahl und/oder die Anzahl von verwendeten Kernen.
-
Das zweite Programm 150 für eine parallele Arithmetik wird durch die Vorrichtung 160 für eine parallele Arithmetik ausgeführt, um Folgendes zu verwirklichen, wie durch 1 dargestellt. Im Übrigen kann im Folgenden, welche arithmetische Gruppe 161 die erste arithmetische Gruppe 161A ist und welche arithmetische Gruppe 161 die zweite arithmetische Gruppe 161B ist, im zweiten Programm 150 für eine parallele Arithmetik bezeichnet werden oder kann durch die Vorrichtung 160 für eine parallele Arithmetik bestimmt werden. Welche Kerne 10 die verwendeten Kerne 10c sind und welche Kerne die Überschusskerne 10r sind, kann ferner im zweiten Programm 150 für eine parallele Arithmetik bezeichnet werden oder kann durch die Vorrichtung 160 für eine parallele Arithmetik bestimmt werden.
- - Jede der zwei oder mehr arithmetischen Gruppen 161 der mehreren arithmetischen Gruppen 161 ist eine erste arithmetische Gruppe 161A und eine arithmetische Gruppe 161 ist eine zweite arithmetische Gruppe 161B.
- - Für jede der zwei oder mehr arithmetischen Gruppen 161Aa und 161Ab ist (sind) ein (oder mehrere) Kern(e) 10 (ein) Überschusskern(e) 10r und die anderen Kerne 10 als der (die) Überschusskern(e) 10r sind verwendete Kerne 10c.
- - In der zweiten arithmetischen Gruppe 161B sind alle Kerne 10 Überschusskerne 10r.
-
Die Anzahl von zweiten arithmetischen Gruppen 161B hängt von der Anzahl von ersten arithmetischen Gruppen 161A ab. Typischerweise sind weniger zweite arithmetische Gruppen 161B als erste arithmetische Gruppen 161A vorhanden.
-
2 stellt ein Beispiel eines Überblicks einer parallelen Arithmetik gemäß dem zweiten Programm 150 für eine parallele Arithmetik dar.
-
Gemäß dem zweiten Programm 150 für eine parallele Arithmetik wird ein Befehl A zwei oder mehr ersten arithmetischen Gruppen 161Aa, 161Ab und so weiter zugewiesen und der Befehl A wird in jeder der zwei oder mehr ersten arithmetischen Gruppen 161Aa, 161Ab und so weiter im Cache gespeichert. Der Befehl A ist ein Befehl für die Anwendungsarithmetik und ihre redundante Arithmetik. In jeder ersten arithmetischen Gruppe 161A weist das Steuersystem 20A den im Cache gespeicherten Befehl A mehreren Kernen in der ersten arithmetischen Gruppe 161A zu. Insbesondere wird die Anwendungsarithmetik, die den Befehl A befolgt, den verwendeten Kernen 10c zugewiesen und die redundante Arithmetik, die den Befehl A befolgt, wird den Überschusskernen 10r zugewiesen.
-
Gemäß dem zweiten Programm 150 für eine parallele Arithmetik wird ein Befehl B der zweiten arithmetischen Gruppe 161B zugewiesen und der Befehl B wird in der zweiten arithmetischen Gruppe 161B im Cache gespeichert. Der Befehl B ist ein Diagnosearithmetikbefehl. In der zweiten arithmetischen Gruppe 161B weist das Steuersystem 20B den im Cache gespeicherten Befehl B allen Überschusskernen 10rB in der zweiten arithmetischen Gruppe 161B zu.
-
Indem der Befehl A jeder ersten arithmetischen Gruppe 161A zugewiesen wird und der Befehl B der zweiten arithmetischen Gruppe 161B zugewiesen wird, beispielsweise für jede feste Zeit T, werden die Anwendungsarithmetik, die redundante Arithmetik und die Diagnosearithmetik parallel in der Vorrichtung 160 für eine parallele Arithmetik ausgeführt.
-
Insbesondere führen beispielsweise in einem Uhrzeitintervall (Zeitintervall) t1-t2 zwei oder mehr erste arithmetische Gruppen 161Aa, 161Ab und so weiter jeweils eine Anwendungsarithmetik und ihre redundante Arithmetik aus und speichern die Anwendungsarithmetikergebnisse und die Ergebnisse D1a, D1b und so weiter der redundanten Arithmetik beispielsweise in Speicherbereichen, die jeweils im zweiten Programm 150 für eine parallele Arithmetik definiert sind. Dann liest die zweite arithmetische Gruppe 161B die Ergebnisse D1a, D1b und so weiter der redundanten Arithmetik aus den Speicherbereichen und führt die Diagnosearithmetik aus, die ein Vergleich der gelesenen Ergebnisse D1a, D1b und so weiter der redundanten Arithmetik ist (beispielsweise vergleicht der Überschusskern 10rB1 Dia mit D1b). Wenn die Ergebnisse D1a, D1b und so weiter der redundanten Arithmetik alle gleich sind, ist das Diagnosearithmetikergebnis das Ergebnis, dass kein Fehler in irgendeinem der Steuersysteme 20A besteht. Wenn mindestens ein Überschusskern 10rB eine Diskrepanz im Ergebnis der redundanten Arithmetik detektiert, gibt er das Ergebnis aus, dass ein Fehler besteht. Aus diesem Ergebnis kann angenommen werden, dass ein Fehler im Steuersystem 20A in der arithmetischen Gruppe 161A besteht, die den Überschusskern 10r umfasst, der das Ergebnis der redundanten Arithmetik mit der Diskrepanz erzeugt hat. Wenn irgendeines der Steuersysteme 20A einen Fehler aufweist, weist der Befehl A, der vom Steuersystem 20A zugewiesen wird, einen Fehler auf, und folglich stimmt das Ergebnis der redundanten Arithmetik, die den Befehl A vom Steuersystem 20A befolgt, nicht mit dem Ergebnis der redundanten Arithmetik, die den Befehl A von einem normalen Steuersystem 20A befolgt, überein. Es ist möglich, dass ein System außerhalb der Vorrichtung 160 für eine parallele Arithmetik (beispielsweise ein Host-System) identifiziert, welches der Ergebnisse der redundanten Arithmetik, die aus den zwei oder mehr ersten arithmetischen Gruppen 161A ausgegeben werden, die Diskrepanz aufwies, beispielsweise aus Informationen, die durch den Überschusskern 10rB ausgegeben werden, der die Diskrepanz in den Ergebnissen der redundanten Arithmetik detektiert hat (beispielsweise Informationen, die die ID der ersten arithmetischen Gruppe 161 enthalten, die die Ergebnisse der redundanten Arithmetik ausgibt).
-
Dieselbe Verarbeitung wird danach ausgeführt. Mit anderen Worten, die folgenden (X) und (Y) werden parallel während des Uhrzeitintervalls tn-t(n+1) ausgeführt (wobei n eine natürliche Zahl ist). Zumindest ein Teil der Informationen, die die Arithmetik definieren, wird als Kernel in der Vorrichtung 160 für eine parallele Arithmetik implementiert und die durch diese Informationen angegebene Arithmetik wird in der Vorrichtung 160 für eine parallele Arithmetik ausgeführt.
- (X) Jede erste arithmetische Gruppe 161A führt die Anwendungsarithmetik und die redundante Arithmetik aus und speichert das Anwendungsarithmetikergebnis und die Ergebnisse Dna, Dnb und so weiter der redundanten Arithmetik in einem Speicherbereich.
- (Y) Die zweite arithmetische Gruppe 161B liest die gespeicherten Ergebnisse Dna, Dnb und so weiter der redundanten Arithmetik, führt die Diagnosearithmetik aus, die ein Vergleich von ihnen ist, und speichert die Diagnosearithmetikergebnisse im Speicherbereich.
-
In dieser Ausführungsform sind die arithmetische Gruppe 161 und ihre Rolle (ob sie das Ziel einer Diagnose ist oder eine Diagnose ausführt) ungeachtet des Werts von n im Uhrzeitintervall tn-t(n+1) fest, aber die arithmetische Gruppe 161 und ihre Rolle können sich auch in Abhängigkeit vom Wert von n ändern. Beispielsweise können eine arithmetische Gruppe 161, die von der ersten arithmetischen Gruppe 161A auf die zweite arithmetische Gruppe 161B auf einer regelmäßigen oder unregelmäßigen Basis umschaltet, und eine arithmetische Gruppe 161, die von der zweiten arithmetischen Gruppe 161B auf die erste arithmetische Gruppe 161A auf einer regelmäßigen oder unregelmäßigen Basis umschaltet, vorhanden sein. Informationen, die die Änderung der Rolle der arithmetischen Gruppe 161 und den Zeitpunkt davon angeben, können im zweiten Programm 150 für eine parallele Arithmetik beschrieben sein, und auf der Basis dieser Informationen kann die Änderung der Rolle der arithmetischen Gruppe 161 in der Vorrichtung 160 für eine parallele Arithmetik durchgeführt werden. Im Übrigen können die Anzahl von ersten arithmetischen Gruppen 161A und die Anzahl von zweiten arithmetischen Gruppen 161B aufrechterhalten werden, selbst wenn die Rollenänderung stattfindet.
-
3 stellt ein Beispiel des Verarbeitungsablaufs dar, der durch die Programmerzeugungseinrichtung 100 ausgeführt wird.
-
Das erste Programm 140 für eine parallele Arithmetik wird in die Überschusskernfestlegungseinheit 111 und die Programmerzeugungseinheit 112 von einer ersten Eingabequelle eingegeben (S301). Die erste Eingabequelle kann eine externe Speichervorrichtung oder ein Benutzerendgerät usw. sein.
-
Vorrichtungstypinformationen 141 werden in die Überschusskernfestlegungseinheit 111 von der ersten Eingabequelle oder einer zweiten Eingabequelle eingegeben (S302). Die zweite Eingabequelle kann beispielsweise ein Befehl oder eine GUI (graphische Benutzerschnittstelle) sein.
-
Die Überschusskernzahlberechnungseinheit 121 in der Überschusskernfestlegungseinheit 111 berechnet die Überschusskernzahl (S303). Insbesondere erhält die Überschusskernzahlberechnungseinheit 121 Vorrichtungskonfigurationsinformationen von der DB 116 der Vorrichtung für eine parallele Arithmetik unter Verwendung der Vorrichtungstypinformationen 141, die in S302 eingegeben werden, als Schlüssel. Anstelle der Eingabe der Vorrichtungstypinformationen 141 und der Existenz der DB 116 der Vorrichtung für eine parallele Arithmetik können die Vorrichtungskonfigurationsinformationen selbst beispielsweise von der ersten Eingabequelle oder der zweiten Eingabequelle eingegeben werden. Die Überschusskernzahlberechnungseinheit 121 identifiziert die Gesamtkernzahl, die durch die erfassten Vorrichtungskonfigurationsinformationen angegeben wird. Ferner legt die Überschusskernzahlberechnungseinheit 121 die Anzahl von verwendeten Kernen auf der Basis des ersten Programms 140 für eine parallele Arithmetik fest, das in S301 eingegeben wird. Die Überschusskernzahlberechnungseinheit 121 berechnet die Überschusskernzahl durch Subtrahieren der Anzahl von verwendeten Kernen von der Gesamtkernzahl. Insbesondere legt beispielsweise die Überschusskernzahlberechnungseinheit 121 die Anzahl von Threads (beispielsweise entspricht ein Thread einem Kern) und die Anzahl von Blöcken (Bündeln von Threads) auf der Basis des ersten Programms 140 für eine parallele Arithmetik fest und legt die Anzahl von verwendeten Kernen auf der Basis der Anzahl von Threads und der Anzahl von Blöcken fest. Wenn beispielsweise die Anzahl von Blöcken 1 ist und die Anzahl von Threads, die einen Block bilden, 700 ist, ist, wenn die Anzahl von Blöcken 1 ist, die Anzahl von verwendeten Kernen 700 (= 1 x 700). Wenn beispielsweise die Anzahl von Threads, die einen Block bilden, 200 ist und die Anzahl von Blöcken 5 ist, ist überdies die Anzahl von verwendeten Kernen 1000 (= 5 x 200). Die Überschusskernzahlberechnungseinheit 121 berechnet die Überschusskernzahl durch Subtrahieren einer solchen Anzahl von verwendeten Kernen von der Gesamtkernzahl.
-
Die Kernbezeichnungseinheit 131 für die redundante Arithmetik in der Programmerzeugungseinheit 112 bestimmt die redundante Arithmetik, den (die) Kern(e), dem (denen) die redundante Arithmetik zugewiesen wird (Überschusskern(e) für die redundante Arithmetik), und die Speicherstelle für die Ergebnisse der redundanten Arithmetik auf der Basis des ersten Programms 140 für eine parallele Arithmetik, das in S301 eingegeben wird, der Überschusskernzahl, die in S303 berechnet wird, und der Vorrichtungskonfigurationsinformationen, die in S302 erhalten werden, und legt die Informationen, die diese bestimmten Details angeben, im Programm fest, das einer Überarbeitung unterzogen wird (S304).
-
Auf der Basis der in S304 bestimmten Details und der Vorrichtungskonfigurationsinformationen, die in S302 erhalten werden, bestimmt die Diagnosearithmetikkernbezeichnungseinheit 132 in der Programmerzeugungseinheit 112 die Diagnosearithmetik, den (die) Kern(e), dem (denen) die Diagnosearithmetik zugewiesen wird (Überschusskern(e) für die Diagnosearithmetik) und die Speicherstelle für die Ergebnisse der Diagnosearithmetik, und die Informationen, die diese bestimmten Details angeben, werden in dem Programm festgelegt, das der Überarbeitung unterzogen wird (S305). Dies bewirkt, dass das Programm, das der Überarbeitung unterzogen wird, zum zweiten Programm 150 für eine parallele Arithmetik wird oder mit anderen Worten das zweite Programm 150 für eine parallele Arithmetik erzeugt wird.
-
Die Diagnosearithmetikkernbezeichnungseinheit 132 gibt das erzeugte zweite Programm 150 für eine parallele Arithmetik aus (S306).
-
In dieser Weise werden gemäß der ersten Ausführungsform mehrere Überschusskerne 10r, denen die die Anwendungsarithmetik, die im ersten Programm 140 für eine parallele Arithmetik definiert ist, nicht zugewiesen ist, festgelegt, die redundante Arithmetik in der Anwendungsarithmetik wird den Überschusskernen 10r in der ersten arithmetischen Gruppe 161A zugewiesen (arithmetische Diagnosezielgruppe) und die Diagnosearithmetik wird den Überschusskernen 10r in der zweiten arithmetischen Gruppe 161B (arithmetische Gruppe für die Diagnose) zugewiesen. Die Überschusskerne 10r jeder ersten arithmetischen Gruppe 161A führen die redundante Arithmetik aus und die Überschusskerne 10r der zweiten arithmetischen Gruppe 161B führen die Diagnosearithmetik aus, die ein Vergleich der Ergebnisse der redundanten Arithmetik ist. Wenn eine Diskrepanz in einem Ergebnis der redundanten Arithmetik besteht, kann detektiert werden, dass ein Fehler im Steuersystem 20A in der ersten arithmetischen Gruppe 161A besteht, die den Überschusskern 10r umfasst, der das Ergebnis der redundanten Arithmetik erzeugt hat. In dieser Weise ist es möglich, ein Programm automatisch zu erzeugen, das Fehler im Steuersystem 20A detektiert, ohne eine Redundanz in den Hardware-Ressourcen der Vorrichtung 160 für eine parallele Arithmetik zu verursachen, und während irgendeine Durchsatzverschlechterung unterdrückt wird.
-
Gemäß der ersten Ausführungsform wird überdies die Gesamtkernzahl in der Vorrichtung 160 für eine parallele Arithmetik festgelegt, die Anzahl von verwendeten Kernen wird auf der Basis des ersten Programms 140 für eine parallele Arithmetik festgelegt und die Differenz zwischen ihnen wird als Überschusskernzahl berechnet. Dies ermöglicht eine genaue Festlegung der Anzahl von Überschusskernen, die in der Vorrichtung 160 für eine parallele Arithmetik erzeugt werden, die das erste Programm 140 für eine parallele Arithmetik ausführt.
-
Die Konfiguration des zweiten Programms 150 für eine parallele Arithmetik kann die in 11 dargestellte Konfiguration sein. Mit anderen Worten, die nachstehend beschriebene Konfiguration kann übernommen werden.
-
Das zweite Programm 150 für eine parallele Arithmetik umfasst Anwendungsarithmetikdefinitionsinformationen 1101, Definitionsinformationen 1102 der redundanten Arithmetik und Diagnosearithmetikdefinitionsinformationen 1103.
-
Die Anwendungsarithmetikdefinitionsinformationen 1101 sind Informationen, die die Anwendungsarithmetik definieren. Die Anwendungsarithmetikdefinitionsinformationen 1101 umfassen beispielsweise Anwendungsarithmetikbefehlsinformationen 1111 (beispielsweise Informationen, die die Rechenformel und den Variablenwertebereich für die Anwendungsarithmetik enthalten), die einen Befehl für die Anwendungsarithmetik angeben, Anwendungsarithmetikeingabepositionsinformationen 1112, die eine Stelle (beispielsweise Adresse eines Speicherbereichs) angeben, an der die Informationen, die in der Anwendungsarithmetik verwendet werden (beispielsweise Variablenwerte für die Rechenformel), eingegeben werden, und Anwendungsarithmetikausgabepositionsinformationen 1113, die das Ausgabeziel (Speicherstelle) der Ergebnisse der Anwendungsarithmetik angeben. Die verwendeten Kerne 10c, denen die Anwendungsarithmetik zugewiesen ist, lesen beispielsweise die Werte von der durch die Informationen 1112 angegebenen Stelle, führen die Anwendungsarithmetik gemäß den Informationen 1111 unter Verwendung der Werte als Eingabe aus und geben die Ergebnisse der Anwendungsarithmetik an das durch die Informationen 1113 angegebene Ausgabeziel aus.
-
Die Definitionsinformationen 1102 der redundanten Arithmetik sind Informationen, die die redundante Arithmetik definieren. Die Definitionsinformationen 1102 der redundanten Arithmetik umfassen beispielsweise Befehlsinformationen 1121 der redundanten Arithmetik (beispielsweise Informationen, die die Rechenformel und den Variablenwertebereich für die redundante Arithmetik enthalten), die einen Befehl für die redundante Arithmetik angeben, Eingabepositionsinformationen 1122 der redundanten Arithmetik, die eine Stelle angeben, an der die in der redundanten Arithmetik verwendeten Informationen (beispielsweise Variablenwerte für die Rechenformel) eingegeben werden, und Ausgabepositionsinformationen 1123 der redundanten Arithmetik, die das Ausgabeziel der Ergebnisse der redundanten Arithmetik angeben. Die Überschusskerne 10r, denen die redundante Arithmetik zugewiesen ist, lesen beispielsweise die Werte von der durch die Informationen 1122 angegebenen Stelle, führen die redundante Arithmetik gemäß den Informationen 1121 unter Verwendung der Werte als Eingabe aus und geben die Ergebnisse der redundanten Arithmetik an das durch die Informationen 1123 angegebene Ausgabeziel aus.
-
Die Diagnosearithmetikdefinitionsinformationen 1103 sind Informationen, die die Diagnosearithmetik definieren. Die Diagnosearithmetikdefinitionsinformationen 1103 umfassen beispielsweise Diagnosearithmetikbefehlsinformationen 1131 (beispielsweise Informationen, die die Rechenformel und den Variablenwertebereich für die Diagnosearithmetik enthalten), die einen Befehl für die Diagnosearithmetik angeben, Diagnosearithmetikeingabepositionsinformationen 1132, die eine Stelle angeben, an der die in der Diagnosearithmetik verwendeten Informationen (die Ergebnisse der redundanten Arithmetik) eingegeben werden, und Diagnosearithmetikausgabepositionsinformationen 1133, die das Ausgabeziel der Ergebnisse der Diagnosearithmetik angeben. Die Überschusskerne 10rB, denen die Diagnosearithmetik zugewiesen ist, lesen beispielsweise die Werte von der durch die Informationen 1132 angegebenen Stelle, führen die Diagnosearithmetik gemäß den Informationen 1131 unter Verwendung der Werte als Eingabe aus und geben die Ergebnisse der Diagnosearithmetik an das durch die Informationen 1133 angegebene Ausgabeziel aus.
-
Die Informationen 1101 können als Anwendungsarithmetikcode, die Informationen 1102 als Code der redundanten Arithmetik und die Informationen 1103 als Diagnosearithmetikcode bezeichnet werden. Der Anwendungsarithmetikcode, der Code der redundanten Arithmetik und/oder der Diagnosearithmetikcode können mehrfach existieren.
-
Die in 11 dargestellte Konfiguration kann eine konzeptionelle Konfiguration sein und in der Praxis können einige Teile überlappen.
-
Zumindest ein Teil der Anwendungsarithmetikbefehlsinformationen 1111 (beispielsweise Informationen, die die Rechenformel angeben) und zumindest ein Teil der Befehlsinformationen 1121 der redundanten Arithmetik können beispielsweise überlappen. Insbesondere soll beispielsweise angenommen werden, dass ein einzelner Anwendungsarithmetikcode im ersten Programm 140 für eine parallele Arithmetik die Formel y = a*x+b beschreibt, dass eine erste arithmetische Gruppe 160Aa für 0 ≤ x ≤ 31 verantwortlich ist und dass eine erste arithmetische Gruppe 160Ab für 32 ≤ x ≤ 63 verantwortlich ist. Die Programmerzeugungseinheit 112 definiert die redundante Arithmetik durch Einstellen des x-Bereichs (Variablenwertebereichs) jeder ersten arithmetischen Gruppe 160A so, dass ein Abschnitt des x-Bereichs mit einem Abschnitt des x-Bereichs der anderen ersten Operationsgruppen 160A überlappt. Durch Ändern des x-Bereichs einer ersten arithmetischen Gruppe 160Ab auf 30 ≤ x ≤ 61 definiert beispielsweise die Programmerzeugungseinheit 112 eine redundante Arithmetik (die Rechenformel ist y = a*x+b, die dieselbe wie jene der Anwendungsarithmetik ist), in der x = 30, 31 mit dem x-Bereich der ersten Rechengruppe 160Aa (0 ≤ x ≤ 31) überlappt. Folglich wurde ein Teil des Anwendungsarithmetikcodes auf den Code geändert, der die Anwendungsarithmetik und redundante Arithmetik durchführt (wobei der x-Bereich 30 ≤ x ≤ 31 ist). Mit anderen Worten, zumindest ein Teil des Anwendungsarithmetikcodes kann von zumindest einem Teil des Codes der redundanten Arithmetik untrennbar werden. Daher kann ein Kombinationscode des Anwendungsarithmetikcodes und des Codes der redundanten Arithmetik existieren. Ein Code wie dieser ist ein Beispiel des Codes, der die Anwendungsarithmetik und redundante Arithmetik definiert.
-
Ferner können beispielsweise in der Diagnosearithmetik die Informationen 1123 und die Informationen 1132 dieselben Informationen sein, da die Ergebnisse der redundanten Arithmetik vom Ausgabeziel der Ergebnisse der redundanten Arithmetik gelesen werden.
-
[Zweite Ausführungsform]
-
Eine Erläuterung über eine zweite Ausführungsform wird bereitgestellt. Dabei findet die Erläuterung hauptsächlich hinsichtlich der Unterschiede von der ersten Ausführungsform statt und beliebige gemeinsame Punkte mit der ersten Ausführungsform werden weggelassen oder vereinfacht.
-
4 stellt eine Beispielkonfiguration für eine Programmerzeugungseinrichtung gemäß einer zweiten Ausführungsform dar.
-
In einer Programmerzeugungseinrichtung 400 umfasst eine Überschusskernfestlegungseinheit 411 eine Überschusskernzahlberechnungseinheit 121 und eine Überschusskernsicherungseinheit 401. Wenn die berechnete Überschusskernzahl eine Anzahl ist, die einen Mangel an Überschusskernen impliziert (mit anderen Worten, wenn die berechnete Überschusskernzahl geringer ist als die erforderliche Überschusskernzahl), sichert die Überschusskernsicherungseinheit 401 die Anzahl von Überschusskernen, die für die Überschusskernzahl (oder mehr) erforderlich ist.
-
5 stellt ein Beispiel des Verarbeitungsablaufs dar, der durch die Programmerzeugungseinrichtung 100 ausgeführt wird.
-
Nach S301 bis S303 (siehe 3) legt die Überschusskernsicherungseinheit 401 die erforderliche Überschusskernzahl auf der Basis des ersten Programms 140 für eine parallele Arithmetik fest (legt beispielsweise die erforderliche Überschusskernzahl aus den Informationen, die die Anwendungsarithmetik definieren, die im ersten Programm 140 für eine parallele Arithmetik beschrieben ist, und auf der Basis der Anzahl der Operationen der redundanten Arithmetik, die als erforderlich abgeschätzt werden, fest), und führt eine Mangelbeurteilung durch, die eine Beurteilung dessen ist, ob die in S303 berechnete Überschusskernzahl geringer ist als die festgelegte erforderliche Überschusskernzahl (S501). Wenn das Ergebnis der Mangelbeurteilung falsch ist (S501: NEIN), werden S304 bis S306 (siehe 3) auf der Basis der berechneten Überschusskernzahl durchgeführt.
-
Wenn das Ergebnis der Mangelbeurteilung wahr ist (beispielsweise wenn die berechnete Überschusskernzahl 0 ist) (S501: JA), sichert die Überschusskernsicherungseinheit 401 die erforderliche Anzahl der Überschusskernzahl von Überschusskernen durch Festlegen von einigen der verwendeten Kerne von den mehreren verwendeten Kernen in der Zahl von verwendeten Kernen, die auf der Basis des ersten Programms 140 für eine parallele Arithmetik festgelegt wird, als Überschusskerne (S502). Auf der Basis der Anzahl von gesicherten Überschusskernen oder mit anderen Worten der erforderlichen Überschusskernzahl werden S304 bis S306 (siehe 3) durchgeführt.
-
Gemäß der zweiten Ausführungsform können, selbst wenn ein Mangel an Überschusskernen besteht, die redundante Arithmetik und die Diagnosearithmetik parallel mit der Anwendungsarithmetik unter Verwendung der erforderlichen Anzahl der Überschusskernzahl von Überschusskernen ausgeführt werden.
-
[Dritte Ausführungsform]
-
Eine Erläuterung über eine dritte Ausführungsform wird bereitgestellt. Die dritte Ausführungsform bezieht sich auf eine Vorrichtung 160 für eine parallele Arithmetik, die das zweite Programm 150 für eine parallele Arithmetik ausführt, das durch die Programmerzeugungseinrichtung 100 der ersten Ausführungsform oder die Programmerzeugungseinrichtung 400 der zweiten Ausführungsform erzeugt wird.
-
6 stellt eine Beispielkonfiguration für eine Vorrichtung 160 für eine parallele Arithmetik gemäß einer dritten Ausführungsform dar.
-
Die Vorrichtung 160 für eine parallele Arithmetik weist zusätzlich zu mehreren arithmetischen Gruppen 161 eine Befehlszuweisungseinheit 601 und einen Speicherbereich 602 (beispielsweise einen Arbeitsspeicher) auf.
-
Die Befehlszuweisungseinheit 601 weist Befehle mehreren arithmetischen Gruppen 161 auf der Basis der Informationen zu, die im zweiten Programm 150 für eine parallele Arithmetik beschrieben sind, das in die Vorrichtung 160 für eine parallele Arithmetik eingegeben wird (beispielsweise Informationen, die eine Arithmetik wie z. B. die Anwendungsarithmetik, redundante Arithmetik und Diagnosearithmetik definieren).
-
Der Speicherberiech 602 umfasst einen Anwendungsarithmetikergebnisbereich 621, der der Bereich ist, in dem Anwendungsarithmetikergebnisse gespeichert werden, einen Ergebnisbereich für die redundante Arithmetik 622, der der Bereich ist, in dem Ergebnisse der redundanten Arithmetik gespeichert werden, und einen Diagnosearithmetikergebnisbereich 623, der der Bereich ist, in dem Diagnosearithmetikergebnisse gespeichert werden. Die Bereiche 621, 622 und 623 sind alle Bereiche, die durch die Informationen angegeben werden, die im zweiten Programm 150 für eine parallele Arithmetik definiert sind. Insbesondere ist beispielsweise der Anwendungsarithmetikergebnisbereich 621 der Bereich, der durch die in 11 gezeigten Informationen 1113 angegeben wird, der Ergebnisbereich 622 für die redundante Arithmetik ist der Bereich, der durch die in 11 gezeigten Informationen 1123 angegeben wird, und der Diagnosearithmetikergebnisbereich 623 ist der Bereich, der durch die in 11 gezeigten Informationen 1133 angegeben wird.
-
Die im Anwendungsarithmetikergebnisbereich 621 gespeicherten Anwendungsarithmetikergebnisse werden an ein Host-System ausgegeben (beispielsweise durch dieses ausgelesen), das eine Verarbeitung auf der Basis der Anwendungsarithmetikergebnisse ausführt. Ferner werden die im Diagnosearithmetikergebnisbereich 623 gespeicherten Diagnosearithmetikergebnisse an das Host-System ausgegeben (beispielsweise durch dieses ausgelesen). Das Host-System ist beispielsweise gewöhnlich dazu ausgelegt, eine automatische Verarbeitung auf der Basis der Eingabe (beispielsweise Auslesung) der Anwendungsarithmetikergebnisse durchzuführen und die Verarbeitung ohne irgendwelche Daten zu betreiben, die von einem Benutzer eingegeben werden. Das Host-System ist beispielsweise dazu ausgelegt, die automatische Verarbeitung fortzusetzen, bis ein Fehler im Steuersystem 20 detektiert wird. Wenn das Host-System beispielsweise identifiziert, dass ein Fehler im Steuersystem 20 aus den empfangenen (beispielsweise ausgelesenen) Diagnosearithmetikergebnissen detektiert wurde, betreibt es anstelle der automatischen Verarbeitung eine manuelle Verarbeitung, die gegebenenfalls eine Dateneingabe vom Benutzer erfordert. In dieser Weise kann das Host-System entscheiden, ob irgendeine bestimmte Verarbeitung (beispielsweise Verarbeitungsmodus) geändert oder fortgesetzt werden soll, in Abhängigkeit davon, ob ein Fehler im Steuersystem 20 aus den Diagnosearithmetikergebnissen detektiert wurde. Im Übrigen kann das Host-System ein Beispiel von mindestens einem des einen oder der mehreren externen Systeme der Vorrichtung 160 für eine parallele Arithmetik sein. Überdies können das externe System, an das die Anwendungsarithmetikergebnisse ausgegeben werden, und das externe System, an das die Diagnosearithmetikergebnisse ausgegeben werden, gleich oder verschieden sein.
-
Die Vorrichtung 160 für eine parallele Arithmetik umfasst eine externe Schnittstelle 630, die eine Schnittstelle zu einem externen System wie z. B. einem Host-System ist, und umfasst eine Funktion, um Daten zu verarbeiten, die an das externe System ausgegeben werden. Beispielsweise kann die externe Schnittstelle 630 die im Diagnosearithmetikergebnisbereich 623 gespeicherten Daten analysieren und die Analyseergebnisse an das Host-System als Diagnosearithmetikergebnisse ausgeben. Ferner kann die Funktion als externe Schnittstelle 630, wie in 6 veranschaulicht, außerhalb der arithmetischen Gruppe 161 implementiert werden oder alternativ oder zusätzlich kann die externe Schnittstelle für die Ausgabe von Anwendungsarithmetikergebnissen durch die verwendeten Kerne 10c von jeder ersten arithmetischen Gruppe 161A implementiert werden und die externe Schnittstelle für die Ausgabe von Diagnosearithmetikergebnissen kann durch die Überschusskerne 10r der zweiten arithmetischen Gruppe 161B implementiert werden.
-
7 stellt ein Beispiel des Verarbeitungsablaufs dar, der durch die Vorrichtung 160 für eine parallele Arithmetik ausgeführt wird.
-
Das zweite Programm 150 für eine parallele Arithmetik wird in die Befehlszuweisungseinheit 601 eingegeben (S701).
-
Die Befehlszuweisungseinheit 601 weist dem Steuersystem 20 jeder arithmetischen Gruppe 161 auf der Basis des zweiten Programms 150 für eine parallele Arithmetik einen Befehl zu (S702). Insbesondere weist die Befehlszuweisungseinheit 601 der ersten arithmetischen Gruppe 161A einen Befehl A und der zweiten arithmetischen Gruppe 161B einen Befehl B zu. Die Befehle A und B sind wie vorstehend beschrieben. Mit anderen Worten, der Befehl A ist ein Befehl für die Anwendungsarithmetik und ihre redundante Arithmetik (beispielsweise ein Befehl für die Arithmetik, die durch einen oder mehrere Anwendungsarithmetikcodes und Codes der redundanten Arithmetik für jeden des einen oder der mehreren Anwendungsarithmetikcodes angegeben wird). Der Befehl B ist ein Befehl für die Diagnosearithmetik (beispielsweise ein Befehl für die Arithmetik, die durch einen oder mehrere Diagnosearithmetikcodes angegeben wird). In der ersten arithmetischen Gruppe 161A weist das Steuersystem 20A den Anwendungsarithmetikcode den verwendeten Kernen 10c und den Code der redundanten Arithmetik den Überschusskernen 10R gemäß dem Befehl A zu. In der zweiten arithmetischen Gruppe 161B weist ein Steuersystem 20B den Diagnosearithmetikcode den Überschusskernen 10r gemäß dem Befehl B zu.
-
Die Anwendungsarithmetik und die redundante Arithmetik werden parallel ausgeführt und die Ergebnisse von jeder werden im Speicherbereich 602 gespeichert (S703). Insbesondere beschreibt beispielsweise das zweite Programm 150 für eine parallele Arithmetik für jede der Anwendungsarithmetik und der redundanten Arithmetik Informationen, die die Speicherstelle (in diesem Fall die Adresse des Speicherbereichs 602) angeben. Die verwendeten Kerne 10c in jeder ersten arithmetischen Gruppe 161A führen die zugewiesene Anwendungsarithmetik aus und speichern die Anwendungsarithmetikergebnisse im Anwendungsarithmetikergebnisbereich 621, der als Speicherstelle für die Anwendungsarithmetikergebnisse bezeichnet ist. Die Überschusskerne 10r in jeder ersten arithmetischen Gruppe 161A führen die zugewiesene redundante Arithmetik aus und speichern die Ergebnisse der redundanten Arithmetik im Ergebnisbereich 622 für die redundante Arithmetik, der als Speicherstelle für die Ergebnisse der redundanten Arithmetik bezeichnet ist. Dieser S703 wird wiederholt, bis die ganze Anwendungsarithmetik und redundante Arithmetik gemäß dem Befehl A vollendet sind.
-
Die Diagnosearithmetik wird parallel mit S703 durchgeführt und das Ergebnis der Diagnosearithmetik wird im Speicherbereich 602 gespeichert (S704). Insbesondere sind beispielsweise im zweiten Programm 150 für eine parallele Arithmetik Informationen, die die Speicherstelle angeben, für die Diagnosearithmetik beschrieben. Die Überschusskerne 10r in der zweiten arithmetischen Gruppe 161B lesen gemäß dem zugewiesenen Befehl B die Ergebnisse der redundanten Arithmetik aus dem Ergebnisbereich 622 für die redundante Arithmetik, der als Speicherstelle für die Ergebnisse der redundanten Arithmetik bezeichnet ist, führen die Diagnosearithmetik aus, um die gelesenen Ergebnisse der redundanten Arithmetik zu vergleichen, und speichern die Diagnosearithmetikergebnisse im Diagnosearithmetikergebnisbereich 623, der als Speicherstelle für die Diagnosearithmetikergebnisse bezeichnet ist. Dieser S704 wird wiederholt, bis alle Vergleiche von Ergebnissen der redundanten Arithmetik vollendet sind.
-
Die Anwendungsarithmetikergebnisse im Anwendungsarithmetikergebnisbereich 621 werden an das Host-System beispielsweise über die externe Schnittstelle 630 ausgegeben (S705). S705 kann, nachdem die ganze Anwendungsarithmetik gemäß dem Befehl A vollendet ist, oder periodisch (beispielsweise jede feste Zeit T [beispielsweise jedes Mal, wenn die Anwendungsarithmetik durchgeführt wird]) durchgeführt werden.
-
Die externe Schnittstelle 630 beurteilt beispielsweise, ob das Ergebnis der Diagnosearithmetik im Diagnosearithmetikergebnisbereich 623 ein Ergebnis ist, das impliziert, dass ein Ergebnis der redundanten Arithmetik mit einer Diskrepanz erhalten wurde (S706). Wenn das Ergebnis der Beurteilung in S706 wahr ist (S706: JA), gibt die externe Schnittstelle 630 Steuersystemfehlerinformationen, die Informationen sind, die implizieren, dass ein Fehler im Steuersystem 20 besteht, an das Host-System als Ergebnis der Diagnosearithmetik aus (S707). S706 und S707 können, nachdem die ganze Diagnosearithmetik gemäß dem Befehl B vollendet ist, oder periodisch (beispielsweise jede feste Zeit [beispielsweise jedes Mal, wenn die Diagnosearithmetik durchgeführt wird]) durchgeführt werden.
-
Gemäß der dritten Ausführungsform kann das zweite Programm 150 für eine parallele Arithmetik, das in der ersten oder zweiten Ausführungsform erzeugt wird, verwendet werden, um Fehler im Steuersystem 20 der Vorrichtung 160 für eine parallele Arithmetik zu detektieren, während irgendeine Vermehrung der Hardware-Ressourcen oder irgendeine Durchsatzverschlechterung unterdrückt wird.
-
Im Übrigen kann das zweite Programm für eine parallele Arithmetik in die Vorrichtung 160 für eine parallele Arithmetik im Voraus eingegliedert werden. Ferner kann in der dritten Ausführungsform das zweite Programm 150 für eine parallele Arithmetik ein Programm sein, das durch etwas anderes als die Programmerzeugungseinrichtung 100 oder 400 (beispielsweise durch einen Benutzer) erzeugt wird.
-
[Vierte Ausführungsform]
-
Eine Erläuterung über eine vierte Ausführungsform wird bereitgestellt. Dabei findet die Erläuterung hauptsächlich hinsichtlich der Unterschiede zur dritten Ausführungsform statt und irgendwelche gemeinsamen Punkte mit der dritten Ausführungsform werden weggelassen oder vereinfacht.
-
6 stellt eine Beispielkonfiguration für eine Vorrichtung für eine parallele Arithmetik gemäß einer vierten Ausführungsform dar.
-
Eine Vorrichtung 860 für eine parallele Arithmetik umfasst ferner eine Informationsmanagementeinheit 801 und eine Merkmalsbeurteilungseinheit 804.
-
Die Informationsmanagementeinheit 801 managt eine Steuersystemfehler-DB 803 (ein Beispiel von Fehlermanagementinformationen), die Informationen hinsichtlich eines Fehlerergebnisses (eines Diagnosearithmetikergebnisses, das bedeutet, dass ein Fehler existiert) ist, das aus dem Diagnosearithmetikergebnisbereich 623 identifiziert wird. Die Steuersystemfehler-DB 803 ist eine Datenbank, die in einem Speicherbereich 802 der Vorrichtung 860 für eine parallele Arithmetik gespeichert ist. Der Speicherbereich 802 ist beispielsweise ein Bereich in einem Arbeitsspeicher, der derselbe wie der Speicherbereich 602 oder davon verschieden ist. Diese Informationsmanagementeinheit 801 ermöglicht die Beurteilung von nachstehend beschriebenen Vorrichtungsmerkmalen für die Vorrichtung 860 für eine parallele Arithmetik. Die Steuersystemfehler-DB 803 umfasst beispielsweise, wie nachstehend beschrieben, Informationen, die die Anzahl von Fehlern (die Anzahl von Malen, die ein Fehlerergebnis erhalten wurde) für jeden Befehl angeben, für den ein Fehlerergebnis erhalten wurde, und Informationen, die eine Eintrittsuhrzeit für jedes Fehlerergebnis angeben.
-
Auf der Basis der Steuersystemfehler-DB 803 beurteilt die Merkmalsbeurteilungseinheit 804 die Vorrichtungsmerkmale, einschließlich der Charakteristiken und/oder des Stauts der Vorrichtung 860 für eine parallele Arithmetik. Die externe Schnittstelle 630 gibt beispielsweise Informationen, die die beurteilten Vorrichtungsmerkmale angeben, an das Host-System aus. Dies ermöglicht, dass das Host-System eine Verarbeitung auf der Basis der Vorrichtungsmerkmale ausführt. Diese Ausführungsform verwendet mindestens eine der folgenden als zumindest Teil der Vorrichtungsmerkmale: (einen) anfällige(n) Befehl(e) und einen Fehlertyp. Die anfälligen Befehle und der Fehlertyp werden jeweils später beschrieben.
-
Im Übrigen kann das externe System, an das die Informationen, die die Vorrichtungsmerkmale angeben, ausgegeben werden, dasselbe wie das Ausgabeziel der Anwendungsarithmetikergebnisse oder davon verschieden sein oder kann dasselbe wie das Ausgabeziel der Diagnosearithmetikergebnisse oder davon verschieden sein.
-
9 stellt ein Beispiel des durch die Vorrichtung 860 für eine parallele Arithmetik ausgeführten Verarbeitungsablaufs dar.
-
Zusätzlich zu S701 bis S707 in 7 werden, wenn das Ergebnis in S706 JA ist, S908 und S909 durchgeführt. Mit anderen Worten, die Informationsmanagementeinheit 801 aktualisiert die Steuersystemfehler-DB 803 (S908). Auf der Basis der Steuersystemfehler-DB 803 beurteilt die Merkmalsbeurteilungseinheit 804 die Vorrichtungsmerkmale der Vorrichtung 860 für eine parallele Arithmetik und beispielsweise gibt die externe Schnittstelle 630 Informationen, die die beurteilten Vorrichtungsmerkmale angeben, an das Host-System aus (S909).
-
10 stellt ein Beispiel der durch die Vorrichtung 860 für eine parallele Arithmetik durchgeführten Verarbeitung dar.
-
Es befindet sich eine Uhrzeitquelle 1011 innerhalb oder außerhalb der Vorrichtung 860 für eine parallele Arithmetik. Die Uhrzeitquelle 1011 kann beispielsweise ein GPS-Sensor (Sensor eines globalen Positionsbestimmungssystems) oder Zeitgeber sein und gibt Informationen aus, die die Uhrzeit angeben. Die Uhrzeitquelle 1011 gibt beispielsweise regelmäßig Informationen aus, die die Uhrzeit angeben.
-
Die Steuersystemfehler-DB 803 umfasst eine erste Tabelle 1001, eine zweite Tabelle 1002 und eine dritte Tabelle 1003. Die erste Tabelle 1001 und die zweite Tabelle 1002 sind Beispiele von Informationen, die verwendet werden, um einen anfälligen Befehl zu beurteilen, und die dritte Tabelle 1003 ist ein Beispiel von Informationen, die verwendet werden, um einen Fehlertyp zu beurteilen. Die dritte Tabelle 1003 kann ohne die erste Tabelle 1001 und die zweite Tabelle 1002 existieren oder die erste Tabelle 1001 und die zweite Tabelle 1002 können ohne die dritte Tabelle 1003 existieren.
-
Die erste Tabelle 1001 ist eine Tabelle, die die Entsprechung zwischen einer Uhrzeit und einem Befehl A zeigt. Die Informationsmanagementeinheit 801 kann den Befehl A von der Befehlszuweisungseinheit 601 oder von der ersten arithmetischen Gruppe 161A erhalten. Außerdem kann anstelle des Befehls A selbst die ID des Befehls A erhalten und in der ersten Tabelle 1001 registriert werden.
-
Die zweite Tabelle 1002 ist eine Tabelle, die die Entsprechung zwischen dem Befehl A und der Anzahl von Fehlern zeigt. Die „Anzahl von Fehlern“ ist die Anzahl von Malen, die ein Fehlerergebnis eingetreten ist.
-
Die dritte Tabelle 1003 ist eine Tabelle, die einer Liste von Fehlereintrittsuhrzeiten entspricht. Die „Fehlereintrittsuhrzeit(en)“ ist (sind) die Uhrzeit(en), zu der (denen) ein Fehlerergebnis eingetreten ist.
-
Für jedes Uhrzeitintervall tn-t(n+1), wenn der Befehl A irgendeiner der ersten arithmetischen Gruppen 161A zugewiesen wird, führt die Vorrichtung 860 für eine parallele Arithmetik beispielsweise die folgende Verarbeitung innerhalb dieses Uhrzeitintervalls tn-t(n+1) durch.
- - Die Informationsmanagementeinheit 801 erfasst den zugewiesenen Befehl A (beispielsweise einen Befehl A3) und eine Uhrzeit tn (beispielsweise eine Uhrzeit t11), die durch Informationen angegeben wird, die durch die Uhrzeitquelle 11 angegeben werden, und fügt das Paar der erfassten Uhrzeit und des Befehls A zur ersten Tabelle 1001 hinzu.
- - Die redundante Arithmetik und die Diagnosearithmetik werden für den Befehl A zur Uhrzeit tn-t(n+1) durchgeführt.
- - Wenn ein Fehlerergebnis im Diagnosearithmetikergebnisbereich 623 gespeichert wird, identifiziert die Informationsmanagementeinheit 801 den Befehl A (beispielsweise den Befehl A3) von der ersten Tabelle 1001 unter Verwendung der Uhrzeit tn (beispielsweise der Uhrzeit t11) als Schlüssel und inkrementiert die Anzahl von Fehlern, die dem identifizierten Befehl A entsprechen (die Anzahl von Fehlern, die in der zweiten Tabelle 1002 registriert sind), um eins. In dieser Weise wird die Anzahl von Fehlern für den Befehl A (beispielsweise den Befehl A3) aktualisiert.
- - Wenn ein Fehlerergebnis im Diagnosearithmetikergebnisbereich 623 gespeichert wird, registriert die Informationsmanagementeinheit 801 die Uhrzeit tn als Fehlereintrittsuhrzeit in der dritten Tabelle 1003.
-
Die Merkmalsbeurteilungseinheit 804 bezieht sich beispielsweise regelmäßig oder unregelmäßig auf die zweite Tabelle 1002 in der Steuersystemfehler-DB 803 und beurteilt, dass der Befehl A mit der höchsten Anzahl von Fehlern ein anfälliger Befehl ist. Der „Befehl A mit der höchsten Anzahl von Fehlern“ ist ein Beispiel eines Befehls A mit einer relativ hohen Anzahl von Fehlern, die durch die zweite Tabelle 1002 angegeben wird. Anstelle des „Befehls A mit der höchsten Anzahl von Fehlern“ kann der Befehl A mit der Anzahl von Fehlern in den oberen X% als anfälliger Befehl beurteilt werden. Alternativ kann ferner ein Befehl A mit der Anzahl von Fehlern, die größer ist als ein vorbestimmter Schwellenwert, mit anderen Worten, der Befehl A mit einer absolut hohen Anzahl von Fehlern, als anfälliger Befehl beurteilt werden. Ein „anfälliger Befehl“ ist ein Befehl A, von dem beurteilt wird, dass er leicht Fehlerergebnisse erzeugt. Es wird erwartet, dass die Fähigkeit, anfällige Befehle zu beurteilen, zur Erzeugung des zweiten Programms 150 für eine parallele Arithmetik beiträgt, was die Fehlertoleranz des Steuersystems 20A verbessert. Wenn beispielsweise ein bestimmter Befehl A leicht Fehlerergebnisse erzeugt, ist es möglich, einen arithmetischen Code für einen anderen Befehl A zu schreiben, der dieselben Anwendungsarithmetikergebnisse wie der vorstehend beschriebene Befehl A erzeugt.
-
Die Merkmalsbeurteilungseinheit 804 nimmt beispielsweise regelmäßig oder unregelmäßig auf die dritte Tabelle 1003 in der Steuersystemfehler-DB 803 Bezug und beurteilt den Fehlertyp auf der Basis eines Trends im Fehlereintrittsuhrzeitintervall. Wenn beispielsweise die Länge des Fehlereintrittsuhrzeitintervalls (des Intervalls zwischen der Uhrzeit, zu der ein Fehler eintritt, und der Uhrzeit, zu der der nächste Fehler eintritt) geringer ist als ein vorbestimmter Schwellenwert, beurteilt die Merkmalsbeurteilungseinheit 804 den Fehlertyp der Ursache des Fehlerergebnisses als vorübergehenden Fehler. Wenn unterdessen die Länge des Fehlereintrittsuhrzeitintervalls einen vorbestimmten Schwellenwert überschreitet, beurteilt die Merkmalsbeurteilungseinheit 804 den Fehlertyp der Ursache des Fehlerergebnisses als dauerhaften Fehler. In dieser Weise wird erwartet, dass der Typ von Fehler in der Vorrichtung 860 für eine parallele Arithmetik ohne Verwendung des Host-Systems effizient identifiziert werden kann.
-
Obwohl mehrere Ausführungsformen vorstehend erläutert wurden, sind sie lediglich Beispiele für den Zweck des Erläuterns der Erfindung und sollen den Schutzbereich der Erfindung nicht auf diese Ausführungsformen allein begrenzen. Die vorliegende Erfindung kann ebenso in verschiedenen anderen Formen implementiert werden. In den vorstehend erwähnten Ausführungsformen ist beispielsweise, um die Erläuterungen zu vereinfachen, angenommen, dass die Anwendungsarithmetik, die redundante Arithmetik und die Diagnosearithmetik für denselben Befehl A während desselben Uhrzeitintervalls durchgeführt werden, aber die Zeit, die es vom Start der redundanten Arithmetik, bis die Diagnosearithmetik gestartet werden kann, für denselben Befehl A dauert und die Zeit, die für die Diagnosearithmetik erforderlich ist, können im Voraus abgeschätzt werden, und dann können auf der Basis der verschiedenen abgeschätzten Zeiten, die Uhrzeit, die dem Befehl A zugeordnet ist, und die Uhrzeit, die als Fehlereintrittsuhrzeit betrachtet wird, korrigiert werden, wonach Nachkorrekturuhrzeiten in der Steuersystemfehler-DB 803 aufgezeichnet werden können.
-
Bezugszeichenliste
-
- 100
- Programmerzeugungseinrichtung