DE102021204690A1 - Programmerzeugungseinrichtung und Vorrichtung für eine parallele Arithmetik - Google Patents

Programmerzeugungseinrichtung und Vorrichtung für eine parallele Arithmetik Download PDF

Info

Publication number
DE102021204690A1
DE102021204690A1 DE102021204690.8A DE102021204690A DE102021204690A1 DE 102021204690 A1 DE102021204690 A1 DE 102021204690A1 DE 102021204690 A DE102021204690 A DE 102021204690A DE 102021204690 A1 DE102021204690 A1 DE 102021204690A1
Authority
DE
Germany
Prior art keywords
arithmetic
parallel
program
redundant
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102021204690.8A
Other languages
English (en)
Inventor
Hiroaki ITSUJI
Takumi UEZONO
Kenichi Shimbo
Tadanobu Toba
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE102021204690A1 publication Critical patent/DE102021204690A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Detection And Correction Of Errors (AREA)
  • Advance Control (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

Ein Programm zum Bewirken, dass eine Vorrichtung für eine parallele Arithmetik mit mehreren arithmetischen Gruppen eine parallele Arithmetik ausführt, wird eingegeben. Das Programm umfasst Informationen, die jede der Folgenden definieren: eine Anwendungsarithmetik, die eine vorbestimmte Verarbeitung bildet; eine redundante Arithmetik (die eine redundante Arithmetik der Anwendungsarithmetik ist und eine Arithmetik ist, die (einem) Überschusskern(en) in einer arithmetischen Diagnosezielgruppe zugewiesen ist); und eine Diagnosearithmetik (eine Arithmetik, die ein Vergleich von Ergebnissen derselben redundanten Arithmetik durch zwei oder mehr arithmetische Diagnosezielgruppen ist und Überschusskernen in einer arithmetischen Gruppe für die Diagnose zugewiesen ist). Der (die) Überschusskern(e) ist (sind) (ein) Kern(e), dem (denen) keine Anwendungsarithmetik zugewiesen ist.

Description

  • 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).
    1. (a) Die Gesamtkernzahl in der Vorrichtung für eine parallele Arithmetik („Kernzahl“ ist die Anzahl von Kernen).
    2. (b) Die Anzahl von arithmetischen Gruppen 161.
    3. (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.
    4. (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.
    1. (A) welche arithmetische Gruppe die erste arithmetische Gruppe ist und/oder die Anzahl von ersten arithmetischen Gruppen.
    2. (B) welche arithmetische Gruppe die zweite arithmetische Gruppe ist und/oder die Anzahl von zweiten arithmetischen Gruppen.
    3. (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.
    4. (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.
    5. (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

Claims (10)

  1. Programmerzeugungseinrichtung, die umfasst: eine Überschusskernfestlegungseinheit, die dazu konfiguriert ist, eine Überschusskernzahl in einer parallelen Arithmetik auf der Basis von Vorrichtungskonfigurationsinformationen, die eine Konfiguration einer Vorrichtung für eine parallele Arithmetik darstellen, die eine Vorrichtung mit mehreren arithmetischen Gruppen ist und zu einer parallelen Arithmetik in der Lage ist, und ein erstes Programm für eine parallele Arithmetik zum Definieren einer Anwendungsarithmetik, die eine vorbestimmte Verarbeitung bildet, und Bewirken, dass die Vorrichtung für eine parallele Arithmetik die parallele Arithmetik der vorbestimmten Verarbeitung ausführt, festzulegen, wobei jede der mehreren arithmetischen Gruppen mehrere Kerne und ein Steuersystem umfasst, das dazu konfiguriert ist, denselben arithmetischen Befehl den mehreren Kernen zuzuweisen, und wobei ein Überschusskern ein Kern ist, dem die Anwendungsarithmetik nicht zugewiesen ist; und eine Programmerzeugungseinheit, die dazu konfiguriert ist, auf der Basis des ersten Programms für eine parallele Arithmetik ein zweites Programm für eine parallele Arithmetik zum Definieren einer redundanten Arithmetik und Diagnosearithmetik sowie der Anwendungsarithmetik und Bewirken, dass die Vorrichtung für eine parallele Arithmetik die parallele Arithmetik der vorbestimmten Verarbeitung ausführt, zu erzeugen; wobei die redundante Arithmetik eine redundante Arithmetik der Anwendungsarithmetik ist und eine Arithmetik ist, die einem Überschusskern in einer ersten arithmetischen Gruppe zugewiesen ist, und wobei die Diagnosearithmetik ein Vergleich von Ausführungsergebnissen derselben redundanten Arithmetik durch zwei oder mehr Überschusskerne ist, die im Besitz von jeder von zwei oder mehr ersten arithmetischen Gruppen stehen, und eine Arithmetik ist, die einem Überschusskern in einer zweiten arithmetischen Gruppe zugewiesen ist.
  2. Programmerzeugungseinrichtung nach Anspruch 1, wobei die Überschusskernfestlegungseinheit: eine Zahl von verwendeten Kernen der Vorrichtung für eine parallele Arithmetik auf der Basis des ersten Programms für eine parallele Arithmetik festlegt; und eine Überschusskernzahl durch Subtrahieren der festgelegten Zahl von verwendeten Kernen von einer Gesamtkernzahl berechnet, die durch die Vorrichtungskonfigurationsinformationen dargestellt wird; wobei ein verwendeter Kern ein Kern ist, dem die Anwendungsarithmetik zugewiesen ist; und wobei die berechnete Überschusskernzahl die festgelegte Überschusskernzahl ist.
  3. Programmerzeugungseinrichtung nach Anspruch 2, wobei die Überschusskernfestlegungseinheit: eine erforderliche Überschusskernzahl auf der Basis des ersten Programms für eine parallele Arithmetik festlegt; eine Mangelbeurteilung durchführt, um zu beurteilen, ob die berechnete Überschusskernzahl geringer ist als die festgelegte erforderliche Überschusskernzahl oder nicht; und die festgelegte erforderliche Überschusskernzahl durch Festlegen von so vielen einigen von mehreren verwendeten Kernen wie die berechnete Zahl von verwendeten Kernen als Überschusskerne sichert, wenn ein Ergebnis der Mangelbeurteilung wahr ist; und wobei die gesicherte erforderliche Überschusskernzahl die festgelegte Überschusskernzahl ist.
  4. Programmerzeugungseinrichtung nach Anspruch 1, wobei das zweite Programm für eine parallele Arithmetik Informationen umfasst, die mindestens eines der folgenden (A) bis (E) darstellen: (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) eine Speicherstelle eines Ergebnisses 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) eine Speicherstelle eines Ergebnisses der Diagnosearithmetik in der Vorrichtung für eine parallele Arithmetik; und (E) die Überschusskernzahl und/oder die Zahl von verwendeten Kernen.
  5. Vorrichtung für eine parallele Arithmetik, die eine Vorrichtung ist, die zu einer parallelen Arithmetik zum Ausführen des zweiten Programms für eine parallele Arithmetik in der Lage ist, das durch die Programmerzeugungseinrichtung nach Anspruch 1 erzeugt wird, wobei die Vorrichtung für eine parallele Arithmetik umfasst: mehrere arithmetische Gruppen; eine Befehlszuweisungseinheit, die dazu konfiguriert ist, gemäß dem zweiten Programm für eine parallele Arithmetik einen ersten Befehl, der ein Befehl für die Anwendungsarithmetik und die redundante Arithmetik der Anwendungsarithmetik ist, zu zwei oder mehr ersten arithmetischen Gruppen unter den mehreren arithmetischen Gruppen zuzuweisen, und einen zweiten Befehl, der ein Befehl für die Diagnosearithmetik ist, zu einer oder mehreren zweiten arithmetischen Gruppen unter den mehreren arithmetischen Gruppen zuzuweisen; und Speicherbereiche, wobei jede der mehreren arithmetischen Gruppen mehrere Kerne und ein Steuersystem zum Zuweisen desselben arithmetischen Befehls zu den mehreren Kernen umfasst; wobei ein Überschusskern ein Kern ist, dem die Anwendungsarithmetik nicht zugewiesen ist; wobei hinsichtlich jeder der zwei oder mehr ersten arithmetischen Gruppen ein verwendeter Kern die Anwendungsarithmetik gemäß dem ersten Befehl vom Steuersystem ausführt und ein Ergebnis der Anwendungsarithmetik in einem ersten Speicherbereich speichert, der durch das zweite Programm für eine parallele Arithmetik definiert ist; wobei hinsichtlich jeder der zwei oder mehr ersten arithmetischen Gruppen ein Überschusskern die redundante Arithmetik parallel mit der Anwendungsarithmetik gemäß dem ersten Befehl vom Steuersystem ausführt und ein Ergebnis der redundanten Arithmetik in einem zweiten Speicherbereich speichert, der durch das zweite Programm für eine parallele Arithmetik definiert ist; wobei hinsichtlich jeder der einen oder mehreren zweiten arithmetischen Gruppen der Überschusskern die Diagnosearithmetik zum Vergleichen von zwei oder mehr Ergebnissen der redundanten Arithmetik im zweiten Speicherbereich gemäß dem zweiten Befehl vom Steuersystem ausführt und ein Ergebnis der Diagnosearithmetik, einschließlich, ob ein Fehler existiert oder nicht, in einem dritten Speicherbereich speichert, der durch das zweite Programm für eine parallele Arithmetik definiert ist; wobei das im ersten Speicherbereich gespeicherte Anwendungsarithmetikergebnis zu mindestens einem von einem oder mehreren externen Systemen für die Vorrichtung für eine parallele Arithmetik geliefert wird; und wobei das im dritten Speicherbereich gespeicherte Diagnosearithmetikergebnis zu mindestens einem des einen oder der mehreren externen Systeme für die Vorrichtung für eine parallele Arithmetik geliefert wird.
  6. Vorrichtung für eine parallele Arithmetik nach Anspruch 5, die ferner eine Informationsmanagementeinheit umfasst, die Fehlermanagementinformationen managt, die Informationen hinsichtlich eines Fehlerergebnisses sind, das heißt, dass das Diagnosearithmetikergebnis bedeutet, dass ein Fehler besteht.
  7. Vorrichtung für eine parallele Arithmetik nach Anspruch 6, die ferner eine Merkmalsbeurteilungseinheit umfasst, die dazu konfiguriert ist, ein Vorrichtungsmerkmal, einschließlich Charakteristiken und/oder eines Status der Vorrichtung für eine parallele Arithmetik, auf der Basis der Fehlermanagementinformationen zu beurteilen, wobei Informationen, die das beurteilte Vorrichtungsmerkmal darstellen, zu zumindest dem einen oder den mehreren externen Systemen geliefert werden.
  8. Vorrichtung für eine parallele Arithmetik nach Anspruch 7, wobei die Fehlermanagementinformationen Informationen umfassen, die die Anzahl von Malen von Fehlern, die die Anzahl von Malen ist, die ein Fehlerergebnis erhalten wird, mit Bezug auf jeden ersten Befehl darstellen, für den das Fehlerergebnis erhalten wird; und wobei das Vorrichtungsmerkmal einen anfälligen Befehl umfasst, der der erste Befehl ist, hinsichtlich dessen die Anzahl von Malen von Fehlern absolut oder relativ groß ist.
  9. Vorrichtung für eine parallele Arithmetik nach Anspruch 7, wobei die Fehlermanagementinformationen Informationen umfassen, die eine Fehlereintrittszeit, die eine Zeit ist, zu der das Fehlerergebnis eingetreten ist, mit Bezug auf jedes Fehlerergebnis darstellen; und wobei das Vorrichtungsmerkmal einen Fehlertyp gemäß der Länge eines Intervalls zwischen einer Fehlereintrittszeit und einer nächsten Fehlereintrittszeit umfasst.
  10. Computerprogramm zum Bewirken, dass eine Vorrichtung für eine parallele Arithmetik mit mehreren arithmetischen Gruppen eine parallele Arithmetik einer vorbestimmten Verarbeitung ausführt, wobei das Computerprogramm umfasst: Informationen, die eine Anwendungsarithmetik definieren, die eine Arithmetik ist, die die vorbestimmte Verarbeitung bildet, wobei jede der mehreren arithmetischen Gruppen mehrere Kerne und ein Steuersystem umfasst, das den mehreren Kernen mehrere arithmetische Befehle zuweist, und wobei ein Überschusskern ein Kern ist, dem die Anwendungsarithmetik nicht zugewiesen ist; Informationen, die eine Arithmetik sind, die einem Überschusskern in einer ersten arithmetischen Gruppe unter den mehreren arithmetischen Gruppen zugewiesen ist, und eine redundante Arithmetik der Anwendungsarithmetik definieren; und Informationen, die eine Diagnosearithmetik definieren, 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 eine Arithmetik ist, die einem Überschusskern in einer zweiten arithmetischen Gruppe unter den mehreren arithmetischen Gruppen zugewiesen ist.
DE102021204690.8A 2020-05-13 2021-05-10 Programmerzeugungseinrichtung und Vorrichtung für eine parallele Arithmetik Withdrawn DE102021204690A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-084388 2020-05-13
JP2020084388A JP7419157B2 (ja) 2020-05-13 2020-05-13 プログラム生成装置、並列演算デバイス、及び、並列演算デバイスに並列演算を実行させるためのコンピュータプログラム

Publications (1)

Publication Number Publication Date
DE102021204690A1 true DE102021204690A1 (de) 2021-11-18

Family

ID=78280747

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021204690.8A Withdrawn DE102021204690A1 (de) 2020-05-13 2021-05-10 Programmerzeugungseinrichtung und Vorrichtung für eine parallele Arithmetik

Country Status (4)

Country Link
US (1) US20210357285A1 (de)
JP (1) JP7419157B2 (de)
CN (1) CN113672377A (de)
DE (1) DE102021204690A1 (de)

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5074290B2 (ja) * 2008-05-13 2012-11-14 株式会社日立国際電気 冗長切替システム、冗長管理装置およびアプリケーション処理装置
JP4886826B2 (ja) 2009-08-24 2012-02-29 インターナショナル・ビジネス・マシーンズ・コーポレーション フォールト・トレラント・コンピュータ・システム、方法及びプログラム
JP5684514B2 (ja) * 2010-08-19 2015-03-11 株式会社東芝 冗長化制御システム、及びその演算データの伝送方法
US8914706B2 (en) * 2011-12-30 2014-12-16 Streamscale, Inc. Using parity data for concurrent data authentication, correction, compression, and encryption
US10423421B2 (en) 2012-12-28 2019-09-24 Intel Corporation Opportunistic utilization of redundant ALU
US9329936B2 (en) * 2012-12-31 2016-05-03 Intel Corporation Redundant execution for reliability in a super FMA ALU
CN103294169B (zh) * 2013-05-31 2015-10-28 上海交通大学 一种功耗优化的众核系统的冗余保护系统及方法
US9448933B2 (en) * 2013-08-29 2016-09-20 Advanced Micro Devices, Inc. Using redundant transactions to verify the correctness of program code execution
CN103678013A (zh) * 2013-12-18 2014-03-26 哈尔滨工业大学 多核处理器操作系统级进程的冗余检测系统
CN104391763B (zh) * 2014-12-17 2016-05-18 中国人民解放军国防科学技术大学 基于设备视图冗余的众核处理器容错方法
CN105279049A (zh) * 2015-06-16 2016-01-27 康宇星科技(北京)有限公司 一种故障自主恢复三模冗余容错计算机ip核的设计方法
DE102015222321A1 (de) * 2015-11-12 2017-05-18 Siemens Aktiengesellschaft Verfahren zum Betrieb eines Mehrkernprozessors
JP6834446B2 (ja) * 2016-12-14 2021-02-24 オムロン株式会社 制御システム、制御プログラムおよび制御方法
JP6843650B2 (ja) * 2017-02-27 2021-03-17 三菱重工業株式会社 冗長化システム及び冗長化方法
US10776121B2 (en) * 2017-05-10 2020-09-15 Atlantic Technical Organization System and method of execution map generation for schedule optimization of machine learning flows
US10621022B2 (en) * 2017-10-03 2020-04-14 Nvidia Corp. System and methods for hardware-software cooperative pipeline error detection
US10621020B2 (en) * 2017-11-15 2020-04-14 Accenture Global Solutions Limited Predictive self-healing error remediation architecture
US10942824B2 (en) * 2018-10-08 2021-03-09 Hewlett Packard Enterprise Development Lp Programming model and framework for providing resilient parallel tasks
US10725788B1 (en) * 2019-03-25 2020-07-28 Intel Corporation Advanced error detection for integer single instruction, multiple data (SIMD) arithmetic operations
US20210149763A1 (en) * 2019-11-15 2021-05-20 Intel Corporation Systems and methods for error detection and control for embedded memory and compute elements

Also Published As

Publication number Publication date
CN113672377A (zh) 2021-11-19
US20210357285A1 (en) 2021-11-18
JP2021179774A (ja) 2021-11-18
JP7419157B2 (ja) 2024-01-22

Similar Documents

Publication Publication Date Title
DE102012215384A1 (de) Architektur für verteiltes Rechnen mit dynamisch rekonfigurierbaren Hypervisor-Knoten
DE102012102770A1 (de) System und Verfahren zur Fehleranalyse und Fehlereingrenzung basierend auf Netzmodellierung
DE112018002176T5 (de) Anormalitätsbestimmungsvorrichtung, Anormalitätsbestimmungsverfahren und Anormalitätsbestimmungsprogramm
DE112018004637T5 (de) Maschinelles lernen zum verbessern von wiederherstellungen von redundanten anordnungen von unabhängigen festplatten
DE102019218138A1 (de) Ein proaktives und automatisiertes System und Verfahren davon zum Reparieren eines suboptimalen Betriebs einer Maschine
DE112019003288T5 (de) Verwenden eines moduls mit maschinellem lernen, um zu ermitteln, wann eine fehlerprüfung eines speicherelements durchzuführen ist
DE102018116911A1 (de) Verfahren zur Erzeugung von Quellcode
DE19811864A1 (de) Redundante Steuerungsvorrichtung und Fehlererholungsverfahren für diese
WO2022179996A1 (de) Vorhersagen eines bevorstehenden auftretens einer funktionsstörung anhand einer log-daten analyse
DE112011100168T5 (de) Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung
DE102021126726A1 (de) Verteiltes system und datenübertragungsverfahren
DE102012101405B4 (de) Steuervorrichtung zum Steuern eines Datenlesens und - schreibens von und zu einem Flash-Speicher
DE102021204690A1 (de) Programmerzeugungseinrichtung und Vorrichtung für eine parallele Arithmetik
DE102019132679A1 (de) Überwachungsverfahren für cpu-nutzungsmenge im betrieb von fahrzeug-ecu und überwachungseinheit
DE102012210482A1 (de) Verfahren und System zum Migrieren von Geschäftsprozessinstanzen
DE102007010264B4 (de) Verfahren zum Betreiben eines ersten und eines zweiten Steuergeräts und Geräteanordnung mit dem ersten und dem zweiten Steuergerät
DE102019111564A1 (de) Verfahren und system zum konfigurieren von filterobjekten für eine controller area network-steuerung
EP1997007B1 (de) Verfahren und managementsystem zum konfigurieren eines informationssystems
DE102021130117A1 (de) Diagnosemuster-erzeugungsverfahren und computer
DE112015002881B4 (de) Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm
DE102019217427A1 (de) Steuern und/oder Überwachen einer Maschinenanordnung
DE112016006791B4 (de) Datenverarbeitungsvorrichtung, Datenverarbeitungsverfahren und Datenverarbeitungsprogramm
DE102018219700B4 (de) Steuervorrichtung
DE102005040917A1 (de) Datenverarbeitungssystem und Betriebsverfahren dafür
DE102019208129B4 (de) Elektronische Steuereinheit

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee