DE102019202870A1 - Parallelization method, parallelization tool and multi-core microcomputer - Google Patents

Parallelization method, parallelization tool and multi-core microcomputer Download PDF

Info

Publication number
DE102019202870A1
DE102019202870A1 DE102019202870.5A DE102019202870A DE102019202870A1 DE 102019202870 A1 DE102019202870 A1 DE 102019202870A1 DE 102019202870 A DE102019202870 A DE 102019202870A DE 102019202870 A1 DE102019202870 A1 DE 102019202870A1
Authority
DE
Germany
Prior art keywords
abnormality diagnosis
diagnosis process
cores
hardware
core
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.)
Pending
Application number
DE102019202870.5A
Other languages
German (de)
Inventor
Kenichi Mineda
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.)
Denso Corp
Original Assignee
Denso Corp
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 Denso Corp filed Critical Denso Corp
Publication of DE102019202870A1 publication Critical patent/DE102019202870A1/en
Pending 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/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/456Parallelism detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/451Code distribution
    • 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/0715Error 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 in a system implementing multitasking
    • 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/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

Ein Parallelisierungsverfahren zum Erzeugen eines parallelen Programms (31a1) eines Multikernmikrocomputers (31) aus einem einzelnen Programm eines Einzelkernmikrocomputers enthält: eine erste Planungsprozedur (10a bis 10e) zum Analysieren einer Abhängigkeit von Verarbeitungseinheiten (A1 bis A3, B1 bis B2, C1 bis C4) in dem einzelnen Programm, zum Zuordnen der Verarbeitungseinheiten zu Kernen des Multikernmikrocomputers, und zum Bestimmen eines ersten Ausführungsplans der Verarbeitungseinheiten; und eine zweite Planungsprozedur (10f) zum Bestimmen eines zweiten Ausführungsplans eines Abnormitätsdiagnoseprozesses für eine Hardware des Multikernmikrocomputers in einer Leerlaufzeit eines Kerns, in dem keine Verarbeitungseinheit ausgeführt wird. Der zweite Ausführungsplan wird unter der Bedingung bestimmt, dass sich eine andere Hardware, die von einer Verarbeitungseinheit verwendet wird, die parallel zu der Leerlaufzeit in einem anderen Kern ausgeführt wird, nicht mit der Hardware als einem Diagnoseobjekt in dem Abnormitätsdiagnoseprozess überdeckt.

Figure DE102019202870A1_0000
A parallelization method for generating a parallel program (31a1) of a multi-core microcomputer (31) from a single program of a single-core microcomputer includes: a first scheduling procedure (10a to 10e) for analyzing a dependency on processing units (A1 to A3, B1 to B2, C1 to C4) in the single program, allocating the processing units to cores of the multi-core microcomputer, and determining a first execution plan of the processing units; and a second scheduling procedure (10f) for determining a second execution plan of an abnormality diagnosis process for a hardware of the multi-core microcomputer in an idle time of a core in which no processing unit is executed. The second execution plan is determined on the condition that other hardware used by one processing unit executed in parallel with the idle time in another core does not overlap with the hardware as a diagnostic object in the abnormality diagnosing process.
Figure DE102019202870A1_0000

Description

Die vorliegende Erfindung betrifft ein Parallelisierungsverfahren und ein Parallelisierungswerkzeug zum Erzeugen eines parallelen Programms für einen Multikernmikrocomputer aus einem einzelnen Programm für einen Einzelkernmikrocomputer und betrifft einen Multikernmikrocomputer zum Ausführen des parallelen Programms, das aus dem Einzelprogramm erzeugt wurde.The present invention relates to a parallelization method and a parallelization tool for generating a parallel program for a multi-core microcomputer from a single program for a single-core microcomputer, and relates to a multi-core microcomputer for executing the parallel program generated from the single program.

Die JP 2015 - 01 807 A beschreibt ein Parallelisierungskompilierungsverfahren als ein Beispiel eines Parallelisierungsverfahrens zum Erzeugen eines parallelen Programms für einen Multikernmikrocomputer aus einem einzelnen Programm für einen Einzelkernmikrocomputer.JP 2015-01807 A describes a parallelization compilation method as an example of a parallelization method for generating a parallel program for a multi-core microcomputer from a single program for a single-core microcomputer.

In dem Parallelisierungskompilierungsverfahren dieses Typs werden eine lexikalische Analyse und eine syntaktische Analyse eines Quellencodes eines einzelnen Programms für die Entwicklung in eine Zwischensprache durchgeführt, und es wird eine Abhängigkeit von mehreren Makroaufgaben analysiert und unter Verwendung der Zwischensprache optimiert. In dem herkömmlichen Parallelisierungskompilierungsverfahren wird ein paralleles Programm durch Zuordnen der Makroaufgaben zu Kernen und Planen der Makroaufgaben auf der Grundlage der Abhängigkeit der Makroaufgaben und einer Ausführungszeit einer jeweiligen Makroaufgabe erzeugt.In the parallelization compilation method of this type, lexical analysis and syntactic analysis of a source code of a single program are performed for development into an intermediate language, and a dependency on several macro-tasks is analyzed and optimized using the intermediate language. In the conventional parallelization compilation method, a parallel program is generated by assigning the macro tasks to cores and scheduling the macro tasks based on the dependency of the macro tasks and an execution time of each macro task.

In den vergangenen Jahren entstand insbesondere auf dem Gebiet der Automobiltechnik der Bedarf, eine Überwachungsvorrichtung oder Ähnliches zum Überwachen des Betriebs einer Steuerungsvorrichtung bereitzustellen, um eine Fehlfunktion (Funktionsfehler) eines Steuerungssystems in Bezug auf eine Steuerungszielvorrichtung zu verhindern, um dadurch die Funktionssicherheit zu gewährleisten. In dem parallelen Programm, das durch das herkömmliche Parallelisierungsverfahren erzeugt wird, wird jedoch kein Mechanismus zum Überwachen des Betriebs der Steuerungsvorrichtung zum Gewährleisten der funktionalen Sicherheit berücksichtigt.In recent years, particularly in the field of automotive engineering, there has been a demand to provide a monitoring device or the like for monitoring the operation of a control device to prevent a malfunction (malfunction) of a control system with respect to a control target device, thereby ensuring the reliability. However, in the parallel program generated by the conventional parallelization method, no mechanism for monitoring the operation of the control device for ensuring functional safety is considered.

Es ist eine Aufgabe der vorliegenden Erfindung, ein Parallelisierungsverfahren, ein Parallelisierungswerkzeug und einen Multikernmikrocomputer zu schaffen, die durch Ausführen eines parallelen Programms in dem Multikernmikrocomputer in der Lage sind, zu überwachen, ob ein Verarbeitungsbetrieb in dem Multikernmikrocomputer normal durchgeführt wird.It is an object of the present invention to provide a parallelization method, a parallelization tool, and a multi-core microcomputer capable of monitoring, by executing a parallel program in the multi-core microcomputer, whether a processing operation in the multi-core microcomputer is normally performed.

Gemäß einem ersten Aspekt der vorliegenden Erfindung enthält ein Parallelisierungsverfahren zum Erzeugen eines parallelen Programms für einen Multikernmikrocomputer, der mehrere Kerne aufweist, aus einem einzelnen Programm für einen Einzelkernmikrocomputer: eine erste Planungsprozedur zum Analysieren einer Abhängigkeit von mehreren Verarbeitungseinheiten, die in dem einzelnen Programm enthalten sind, zum Zuordnen der Verarbeitungseinheiten zu den Kernen auf der Grundlage einer analysierten Abhängigkeit der Verarbeitungseinheiten, und zum Bestimmen eines ersten Ausführungsplans der Verarbeitungseinheiten; und eine zweite Planungsprozedur zum Bestimmen eines zweiten Ausführungsplans eines Abnormitätsdiagnoseprozesses zum Ausführen des Abnormitätsdiagnoseprozesses einer Hardware des Multikernmikrocomputers in einer Leerlaufzeit von einem der Kerne, in dem keine Verarbeitungseinheit ausgeführt wird, auf der Grundlage des ersten Ausführungsplans der Verarbeitungseinheiten in den Kernen, der durch die erste Planungsprozedur bestimmt wird. Das parallele Programm zum Ausführen der Verarbeitungseinheiten und des Abnormitätsdiagnoseprozesses in den Kernen wird entsprechend den ersten und zweiten Ausführungsplänen erzeugt, die durch die jeweiligen ersten und zweiten Planungsprozeduren bestimmt werden. In der zweiten Planungsprozedur wird der zweite Ausführungsplan des Abnormitätsdiagnoseprozesses zum Ausführen des Abnormitätsdiagnoseprozesses in der Leerlaufzeit unter der Bedingung bestimmt, dass eine andere Hardware, die von einer Verarbeitungseinheit verwendet wird, parallel zu der Leerlaufzeit in einem anderen der Kerne ausgeführt wird, der nicht der eine der Kerne in der Leerlaufzeit ist, in dem keine Verarbeitungseinheit ausgeführt wird, sich nicht mit der Hardware als einem Diagnoseobjekt in dem Abnorm itätsdiagnoseprozess überdeckt.According to a first aspect of the present invention, a parallelization method for generating a parallel program for a multi-core microcomputer having a plurality of cores from a single program for a single-core microcomputer includes: a first scheduling procedure for analyzing a dependency of a plurality of processing units included in the single program for assigning the processing units to the cores on the basis of an analyzed dependency of the processing units, and for determining a first execution plan of the processing units; and a second scheduling procedure for determining a second execution plan of an abnormality diagnosis process for executing the abnormality diagnosis process of a hardware of the multi-core microcomputer at an idle time of one of the cores in which no processing unit is executed based on the first execution plan of the processing units in the cores Planning procedure is determined. The parallel program for executing the processing units and the abnormality diagnosis process in the cores is generated in accordance with the first and second execution plans determined by the respective first and second scheduling procedures. In the second scheduling procedure, the second execution plan of the abnormality diagnosis process for executing the abnormality diagnosis process in the idle time is determined on the condition that other hardware used by one processing unit is executed in parallel with the idle time in another one of the cores that is not the one The kernel in the idle time in which no processing unit is executed is not covered with the hardware as a diagnostic object in the abnormality diagnosing process.

Wie es oben beschrieben wurde, wird in dem Parallelisierungsverfahren gemäß der vorliegenden Erfindung das parallele Programm zum Ausführen der Verarbeitungseinheiten und des Abnormitätsdiagnoseprozesses in den Kernen entsprechend dem Ausführungsplan der Verarbeitungseinheiten und dem Ausführungsplan des Abnormitätsdiagnoseprozesses erzeugt. Aus diesem Grund ist es mit der Ausführung des parallelen Programms, das den Abnormitätsdiagnoseprozess des Multikernmikrocomputers enthält, möglich, zu diagnostizieren, ob die Hardware des Multikernmikrocomputers normal betrieben wird, und es ist möglich, zu überwachen, ob der Verarbeitungsbetrieb des Multikernmikrocomputers, der die Hardware verwendet, normal ist.As described above, in the parallelization method according to the present invention, the parallel program for executing the processing units and the abnormality diagnosis process in the cores is generated according to the execution plan of the processing units and the execution plan of the abnormality diagnosis process. For this reason, with the execution of the parallel program including the abnormality diagnosis process of the multi-core microcomputer, it is possible to diagnose whether the hardware of the multi-core microcomputer is normally operated, and it is possible to monitor whether the processing operation of the multi-core microcomputer containing the hardware used, is normal.

Insbesondere wird in dem Parallelisierungsverfahren gemäß der vorliegenden Erfindung der Ausführungsplan des Abnormitätsdiagnoseprozesses in der zweiten Planungsprozedur derart bestimmt, dass der Abnormitätsdiagnoseprozess in der Leerlaufzeit unter der Bedingung ausgeführt wird, dass die Hardware, die von der Verarbeitungseinheit ausgeführt wird, die parallel zu der Leerlaufzeit ausgeführt wird, sich nicht mit der Hardware überdeckt, die in dem Abnormitätsdiagnoseprozess in dem anderen Kern als dem Kern zu diagnostizieren ist, der sich in der Leerlaufzeit befindet, in der die Verarbeitungseinheit nicht ausgeführt wird. Dieses macht es möglich, ein paralleles Programm zu erzeugen, das in der Lage ist, den Abnormitätsdiagnoseprozess der Hardware ohne Beeinflussung der Ausführung der Einheitsverarbeitung, die die Hardware verwendet, auszuführen.Specifically, in the parallelization method according to the present invention, the execution plan of the abnormality diagnosis process in the second scheduling procedure is determined such that the abnormality diagnosis process in the idle time is executed under the condition that the hardware executed by the processing unit, which is executed in parallel with the idle time, does not overlap with the hardware to be diagnosed in the abnormality diagnosing process in the core other than the core which is in the idle time, in which the processing unit is not running. This makes it possible to generate a parallel program capable of executing the abnormality diagnosis process of the hardware without affecting the execution of the unit processing using the hardware.

Gemäß einem zweiten Aspekt der vorliegenden Erfindung enthält ein Parallelisierungswerkzeug zum Erzeugen eines parallelen Programms für einen Multikernmikrocomputer, der mehrere Kerne aufweist, aus einem einzelnen Programm für einen Einzelkernmikrocomputer: eine erste Planungseinheit zum Analysieren einer Abhängigkeit von mehreren Verarbeitungseinheiten, die in dem einzelnen Programm enthalten sind, zum Zuordnen der Verarbeitungseinheiten zu den Kernen auf der Grundlage einer analysierten Abhängigkeit der Verarbeitungseinheiten, und zum Bestimmen eines ersten Ausführungsplans der Verarbeitungseinheiten; und eine zweite Planungseinheit zum Bestimmen eines zweiten Ausführungsplans eines Abnormitätsdiagnoseprozesses zum Ausführen des Abnormitätsdiagnoseprozesses einer Hardware des Multikernmikrocomputers in einer Leerlaufzeit von einem der Kerne, in dem keine Verarbeitungseinheit ausgeführt wird, auf der Grundlage des ersten Ausführungsplans der Verarbeitungseinheiten in den Kernen, der durch die erste Planungseinheit bestimmt wurde. Das parallele Programm zum Ausführen der Verarbeitungseinheiten und des Abnormitätsdiagnoseprozesses in den Kernen wird entsprechend den ersten und zweiten Ausführungsplänen erzeugt, die durch die jeweiligen ersten und zweiten Planungseinheiten bestimmt werden. Die zweite Planungseinheit bestimmt den zweiten Ausführungsplan des Abnormitätsdiagnoseprozesses zum Ausführen des Abnormitätsdiagnoseprozesses in der Leerlaufzeit unter der Bedingung, dass eine andere Hardware, die durch eine Verarbeitungseinheit verwendet wird, die parallel zu der Leerlaufzeit ausgeführt wird, in einem anderen der Kerne als dem einen der Kerne in der Leerlaufzeit, in der keine Verarbeitungseinheit ausgeführt wird, sich nicht mit der Hardware als einem Diagnoseobjekt in dem Abnormitätsdiagnoseprozess überdeckt.According to a second aspect of the present invention, a parallelization tool for generating a parallel program for a multi-core microcomputer having a plurality of cores from a single program for a single-core microcomputer includes: a first scheduling unit for analyzing a dependency of a plurality of processing units included in the single program for assigning the processing units to the cores on the basis of an analyzed dependency of the processing units, and for determining a first execution plan of the processing units; and a second scheduling unit for determining a second execution plan of an abnormality diagnosis process for executing the abnormality diagnosis process of a hardware of the multi-core microcomputer at an idle time of one of the cores in which no processing unit is executed, based on the first execution plan of the processing units in the cores Planning unit was determined. The parallel program for executing the processing units and the abnormality diagnosis process in the cores is generated in accordance with the first and second execution plans determined by the respective first and second scheduling units. The second scheduling unit determines the second execution plan of the abnormality diagnosis process for executing the abnormality diagnosis process in the idle time under the condition that other hardware used by one processing unit executed in parallel with the idle time is in one of the cores other than the one of the cores in the idle time, in which no processing unit is executed, does not overlap with the hardware as a diagnostic object in the abnormality diagnosing process.

Wie es oben beschrieben wurde, enthält das parallele Programm, das durch das Parallelisierungswerkzeug gemäß der vorliegenden Erfindung erzeugt wird, die Verarbeitungseinheiten und den Abnormitätsdiagnoseprozess. Aus diesem Grund ist es mit der Ausführung des parallelen Programms, das den Abnormitätsdiagnoseprozess enthält, durch den Multikernmikrocomputer möglich, zu diagnostizieren, ob die Hardware des Multikernmikrocomputers normal betrieben wird, und es ist möglich, zu überwachen, ob der Verarbeitungsbetrieb des Multikernmikrocomputers, der die Hardware verwendet, normal ist.As described above, the parallel program generated by the parallelization tool according to the present invention includes the processing units and the abnormality diagnosis process. For this reason, with the execution of the parallel program including the abnormality diagnosing process by the multi-core microcomputer, it is possible to diagnose whether the hardware of the multi-core microcomputer is normally operated, and it is possible to monitor whether the processing operation of the multi-core microcomputer containing the multi-core microcomputer Hardware used is normal.

Insbesondere bestimmt die zweite Planungseinheit in dem Parallelisierungswerkzeug gemäß der vorliegenden Erfindung den Ausführungsplan des Abnormitätsdiagnoseprozesses derart, dass der Abnormitätsdiagnoseprozess in der Leerlaufzeit unter der Bedingung ausgeführt wird, dass die Hardware, die von der Verarbeitungseinheit verwendet wird, die parallel zu der Leerlaufzeit ausgeführt wird, sich nicht mit der Hardware überdeckt, die in dem Abnormitätsdiagnoseprozess in dem anderen als dem Kern zu diagnostizieren ist, der als die Leerlaufzeit dient, in dem die Verarbeitungseinheit nicht ausgeführt wird. Aus diesem Grund kann das Parallelisierungswerkzeug ein paralleles Programm erzeugen, das in der Lage ist, den Abnormitätsdiagnoseprozess der Hardware ohne Beeinflussung der Ausführung der Einheitsverarbeitung, die die Hardware verwendet, auszuführen.Specifically, the second scheduling unit in the parallelization tool according to the present invention determines the execution plan of the abnormality diagnosis process such that the abnormality diagnosis process is performed in the idle time under the condition that the hardware used by the processing unit that is executed in parallel with the idle time becomes is not covered with the hardware to be diagnosed in the abnormality diagnosing process in the other than the core serving as the idle time in which the processing unit is not executed. For this reason, the parallelization tool can generate a parallel program capable of executing the abnormality diagnosis process of the hardware without affecting the execution of the unit processing using the hardware.

Gemäß einem dritten Aspekt der vorliegenden Erfindung führt ein Multikernmikrocomputer ein paralleles Programm für einen Multikernmikrocomputer, der mehrere Kerne aufweist, aus, das aus einem einzelnen Programm für einen Einzelkernmikrocomputer erzeugt wird, der einen Kern aufweist. Das parallele Programm enthält mehrere Verarbeitungseinheiten, die in dem einzelnen Programm enthalten sind, und einen Abnormitätsdiagnoseprozess einer Hardware des Multikernmikrocomputers. Die Verarbeitungseinheiten sind den Kernen zugeordnet. Ein erster Ausführungsplan der Verarbeitungseinheiten wird auf der Grundlage einer Abhängigkeit der Verarbeitungseinheiten bestimmt. Ein zweiter Ausführungsplan wird zum Ausführen des Abnormitätsdiagnoseprozesses in einer Leerlaufzeit von einem der Kerne, in dem keine Verarbeitungseinheit ausgeführt wird, auf der Grundlage des ersten Ausführungsplans der Verarbeitungseinheiten in den Kernen bestimmt. Der zweite Ausführungsplan wird zum Ausführen des Abnormitätsdiagnoseprozesses in der Leerlaufzeit unter der Bedingung bestimmt, dass sich eine andere Hardware, die von einer Verarbeitungseinheit verwendet wird, die parallel zu der Leerlaufzeit in einem anderen der Kerne als dem einen der Kerne ausgeführt wird, in dem keine Verarbeitung ausgeführt wird, sich nicht mit der Hardware als einem Diagnoseobjekt in dem Abnormitätsdiagnoseprozess überdeckt.According to a third aspect of the present invention, a multi-core microcomputer executes a parallel program for a multi-core microcomputer having a plurality of cores, which is generated from a single program for a single-core microcomputer having a core. The parallel program includes a plurality of processing units included in the single program and an abnormality diagnosing process of a hardware of the multi-core microcomputer. The processing units are assigned to the cores. A first execution plan of the processing units is determined based on a dependency of the processing units. A second execution plan is determined for executing the abnormality diagnosis process in an idle time of one of the cores in which no processing unit is executed on the basis of the first execution plan of the processing units in the cores. The second execution plan is determined to execute the abnormality diagnosis process in the idle time under the condition that other hardware used by one processing unit executed in parallel with the idle time in another of the cores than the one of the cores in which none Processing does not overlap with the hardware as a diagnostic object in the abnormality diagnosis process.

Da wie oben beschrieben das parallele Programm den Abnormitätsdiagnoseprozess enthält, kann der Multikernmikrocomputer durch Ausführen des parallelen Programms diagnostizieren, ob die Hardware des Multikernmikrocomputers normal betrieben wird, und kann außerdem überwachen, ob der Verarbeitungsbetrieb durch den Multikernmikrocomputer, der die Hardware verwendet, normal ist.As described above, since the parallel program includes the abnormality diagnosis process, by executing the parallel program, the multi-core microcomputer can diagnose whether the hardware of the multi-core microcomputer is being normally operated, and can also monitor whether the Processing operation by the multi-core microcomputer using the hardware is normal.

In dem Abnormitätsdiagnoseprozess wird der Ausführungsplan in dem parallelen Programm derart bestimmt, dass der Abnormitätsdiagnoseprozess in der Leerlaufzeit unter der Bedingung ausgeführt wird, dass die Hardware, die von der Verarbeitungseinheit verwendet wird, die parallel zu der Leerlaufzeit ausgeführt wird, sich nicht mit der Hardware überdeckt, die in dem Abnormitätsdiagnoseprozess in dem anderen Kern als dem Kern zu diagnostizieren ist, der als die Leerlaufzeit dient, in der die Verarbeitungseinheit nicht ausgeführt wird. Aus diesem Grund kann mit der Ausführung des parallelen Programms der Multikernmikrocomputer den Abnormitätsdiagnoseprozess der Hardware ausführen, ohne die Ausführung der Einheitsverarbeitung, die die Hardware verwendet, zu beeinflussen.In the abnormality diagnosing process, the execution schedule in the parallel program is determined such that the abnormality diagnosing process is executed in the idle time under the condition that the hardware used by the processing unit that is executed in parallel with the idle time does not overlap with the hardware to be diagnosed in the abnormality diagnosis process in the core other than the core serving as the idle time in which the processing unit is not executed. For this reason, with the execution of the parallel program, the multi-core microcomputer can execute the abnormality diagnosis process of the hardware without affecting the execution of the unit processing using the hardware.

Die obigen und weitere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden anhand der folgenden detaillierten Beschreibung mit Bezug auf die zugehörigen Zeichnungen deutlich. Es zeigen:

  • 1 ein Blockdiagramm, das eine schematische Konfiguration eines Computers als ein automatisches Parallelisierungswerkzeug gemäß einer Ausführungsform zeigt;
  • 2 ein Blockdiagramm, das die Funktionalität des Computers als das automatische Parallelisierungswerkzeug gemäß der Ausführungsform darstellt;
  • 3 ein Diagramm, das ein Beispiel des Ergebnisses eines Analysierens einer Abhängigkeit einer jeweiligen Verarbeitungseinheit für eine jeweilige Aufgabe in einem einzelnen Programm zeigt;
  • 4 ein Diagramm, das ein Beispiel einer Planung der Zuordnung von mehreren Verarbeitungseinheiten zu mehreren Kernen und einer Ausführungsreihenfolge einer ersten Planungseinheit zeigt;
  • 5 ein Flussdiagramm, das einen Planaktualisierungsprozess zum zusätzlichen Einfügen eines Abnormitätsüberwachungsprozesses zeigt, der von einer zweiten Planungseinheit auszuführen ist;
  • 6 ein Diagramm, das ein Ergebnis eines Einfügens des Abnormitätsdiagnoseprozesses in eine Leerlaufzeit in dem Ausführungsplan von mehreren Verarbeitungseinheiten und eines Aktualisierens des Ausführungsplans durch die zweite Planungseinheit zeigt; und
  • 7 ein Blockdiagramm, das eine schematische Konfiguration einer fahrzeugeigenen Vorrichtung gemäß der Ausführungsform zeigt.
The above and other objects, features and advantages of the present invention will become more apparent from the following detailed description made with reference to the accompanying drawings. Show it:
  • 1 10 is a block diagram showing a schematic configuration of a computer as an automatic parallelizing tool according to an embodiment;
  • 2 a block diagram illustrating the functionality of the computer as the automatic parallelization tool according to the embodiment;
  • 3 Fig. 12 is a diagram showing an example of the result of analyzing a dependency of each processing unit on a respective task in a single program;
  • 4 Fig. 12 is a diagram showing an example of planning the assignment of multiple processing units to multiple cores and an execution order of a first scheduling unit;
  • 5 5 is a flowchart showing a schedule updating process for additionally inserting an abnormality monitoring process to be executed by a second scheduling unit;
  • 6 12 is a diagram showing a result of inserting the abnormality diagnosis process into an idle time in the execution plan of a plurality of processing units and updating the execution plan by the second scheduling unit; and
  • 7 10 is a block diagram showing a schematic configuration of an on-vehicle device according to the embodiment.

Im Folgenden werden Ausführungsformen der Erfindung mit Bezug auf die Zeichnungen beschrieben. In der vorliegenden Ausführungsform wird ein Beispiel beschrieben, bei dem ein Computer 10 als ein Parallelisierungswerkzeug ein paralleles Programm 31a1, das für einen Multikernmikrocomputer 31 parallelisiert wird, das einen ersten Kern 31c und einen zweiten Kern 31d aufweist, aus einem einzelnen Programm für einen Einzelkernmikrocomputer erzeugt, der einen Kern aufweist. Die Anzahl der Kerne, die in dem Multikernmikrocomputer 31 enthalten sind, ist nicht auf zwei beschränkt, sondern kann drei oder mehr betragen.Hereinafter, embodiments of the invention will be described with reference to the drawings. In the present embodiment, an example will be described in which a computer 10 as a parallelization tool a parallel program 31a1 That for a multi-core microcomputer 31 is parallelized, the first core 31c and a second core 31d generated from a single program for a single-core microcomputer having a core. The number of cores that are in the multi-core microcomputer 31 is not limited to two, but may be three or more.

Wie es oben beschrieben wurde, besteht als ein Hintergrund zum Erzeugen des parallelen Programms 31a1 aus dem einzelnen Programm die Tendenz, dass sich die Anzahl der Programme Jahr um Jahr aufgrund der Verfeinerung einer Steuerung erhöht, aber es besteht keine Grenze hinsichtlich einer Verbesserung des Leistungsvermögens des einzelnen Prozessors. Mit anderen Worten, wenn beispielsweise versucht wird, die Verarbeitungskapazität durch Erhöhen einer Betriebsfrequenz des einzelnen Prozessors zu verbessern, besteht keine Grenze hinsichtlich einer Erhöhung der Betriebsfrequenz, und eine Erhöhung der Betriebsfrequenz führt zu einer Erhöhung der erzeugten Wärmemenge und einer Erhöhung des Energieverbrauches. Aus diesem Grund wird es als wirksam erachtet, einen Multikernmikrocomputer zum Verbessern der Verarbeitungskapazität durch Erhöhen der Anzahl der Kerne zu verwenden.As described above, there is a background for generating the parallel program 31a1 the individual program tends to increase the number of programs year by year due to the refinement of a controller, but there is no limit to improving the performance of the single processor. In other words, for example, when trying to improve the processing capacity by increasing an operating frequency of the single processor, there is no limit to an increase in the operating frequency, and an increase in the operating frequency leads to an increase in the amount of heat generated and an increase in power consumption. For this reason, it is considered effective to use a multi-core microcomputer for improving the processing capacity by increasing the number of cores.

Wenn diesbezüglich ein Entwickler des Programms diesen Kernen eine Verarbeitung geeignet zuzuordnen hat und die Verarbeitung derart zu planen hat, dass die Fähigkeit des Multikerns maximiert werden kann, erhöht sich die Last der Entwicklung des Programms. Um die Entwicklungslast eines derartigen Programms zu verringern, ist es technisch bedeutsam, das parallele Programm 31a1 automatisch aus dem einzelnen Programm zu erzeugen. Außerdem wird das parallele Programm 31a1 automatisch aus dem einzelnen Programm erzeugt, wodurch vorhandene Softwareposten, die für den einzelnen Prozessor entwickelt wurden, wirksam verwendet werden können.In this regard, if a developer of the program has to appropriately allocate processing to these cores and plan the processing so as to maximize the capability of the multi-core, the burden of developing the program increases. To reduce the development burden of such a program, it is technically significant to have the parallel program 31a1 automatically generate from the single program. In addition, the parallel program 31a1 automatically generated from the single program, allowing existing software items developed for the single processor to be effectively used.

Zunächst wird eine Konfiguration des Computers 10 mit Bezug auf 1 beschrieben. Der Computer 10 entspricht einem Parallelisierungswerkzeug zum Ausführen eines Parallelisierungsverfahrens und erzeugt eine paralleles Programm 31a1 aus einem einzelnen Programm. In der vorliegenden Ausführungsform erzeugt der Computer 10 das parallele Programm 31a1, das in einer C-Sprache geschrieben ist, auf der Grundlage eines einzelnen Programms, das in der C-Sprache geschrieben ist. Aus diesem Grund wird das parallele Programm 31a1', das in einem ROM 31a einer fahrzeugeigenen Vorrichtung 30 (Multikernmikrocomputer 31) gespeichert und von dem Multikernmikrocomputer 31 ausgeführt wird, weiter durch einen Compiler 20 kompiliert und in binäre Codes übersetzt, wie es in 2 gezeigt ist.First, a configuration of the computer 10 regarding 1 described. The computer 10 corresponds to a parallelization tool for performing a parallelization method and generates a parallel program 31a1 from a single program. In the present embodiment, the computer generates 10 the parallel program 31a1 written in a C language based on a single program written in the C language. For this reason, the parallel program 31a1 ' that in a ROM 31a an on-vehicle device 30 (Multi-core microcomputer 31 ) and from the multi-core microcomputer 31 is executed, further through a compiler 20 compiled and translated into binary codes as in 2 is shown.

Die vorliegende Erfindung ist jedoch nicht auf die obige Konfiguration beschränkt. Das einzelne Programm kann in einer sich von der C-Sprache unterscheidenden Programmierungssprache geschrieben sein. Das parallele Programm 31a1 kann beispielsweise in einer Zwischensprache geschrieben sein, die verwendet wird, wenn ein einzelnes Programm analysiert wird. Alternativ kann der Computer 10 sowohl ein paralleles Programm, das in der C-Sprache geschrieben ist, als auch ein paralleles Programm, das in der Zwischensprache geschrieben ist, erzeugen. Außerdem kann der Computer 10 eine Funktion des Compilers 20 übernehmen und das parallele Programm 31a1' in dem binären Code direkt erzeugen.However, the present invention is not limited to the above configuration. The single program may be written in a programming language different from the C language. The parallel program 31a1 For example, it may be written in an intermediate language that is used when analyzing a single program. Alternatively, the computer 10 generate both a parallel program written in the C language and a parallel program written in the intermediate language. Besides, the computer can 10 a function of the compiler 20 take over and the parallel program 31a1 'generate directly in the binary code.

Wie es in 1 gezeigt ist, enthält der Computer 10 eine Anzeige 11, eine HDD (Festplatte) 12, eine CPU 13, einen ROM 14, einen RAM 15, eine Eingangsvorrichtung bzw. Eingabevorrichtung 16, eine Leseeinheit 17 und Ähnliches. Der Computer 10 kann einen gespeicherten Inhalt, der in dem Speichermedium 18 gespeichert ist, mittels der Leseeinheit 17 auslesen. Wie es in 1 gezeigt ist, ist beispielsweise ein automatischer Parallelisierungscompiler 1 in dem Speichermedium 18 gespeichert. Da der Computer 10 und das Speichermedium 18 dieselben wie ein Personalcomputer 100 und ein Speichermedium 180 sind, die in der JP 2015 - 01 807 A beschrieben sind, wird hinsichtlich der Details auf die JP 2015 - 01 807 A verwiesen.As it is in 1 shown, the computer contains 10 an ad 11 , an HDD (hard disk) 12 , a CPU 13 , a ROM 14 , a ram 15 , an input device or input device 16 , a reading unit 17 and similar. The computer 10 can store a stored content in the storage medium 18 is stored, by means of the reading unit 17 read. As it is in 1 For example, an automatic parallelization compiler is shown 1 in the storage medium 18 saved. Because the computer 10 and the storage medium 18 the same as a personal computer 100 and a storage medium 180 are described in JP 2015 - 01 807 A, reference is made to JP 2015 - 01 807 A for details.

Der automatische Parallelisierungscompiler 1 ist eine Software zum Bewirken, dass der Computer 10 eine Prozedur zum Erzeugen des parallelen Programms 31a1 ausführt. Daher kann der Computer 10 das Parallelisierungsverfahren durch den automatischen Parallelisierungscompiler 1 ausführen. Mit anderen Worten, der automatische Parallelisierungscompiler 1 ist ein Programm, das ein Parallelisierungsverfahren enthält. Der Computer 10 führt den automatischen Parallelisierungscompiler 1 als ein Parallelisierungswerkzeug aus, um das parallele Programm 31a1 zu erzeugen.The automatic parallelization compiler 1 is a software for causing the computer 10 a procedure for generating the parallel program 31a1 performs. Therefore, the computer can 10 the parallelization method by the automatic parallelization compiler 1 To run. In other words, the automatic parallelization compiler 1 is a program that contains a parallelization procedure. The computer 10 runs the automatic parallelization compiler 1 as a parallelization tool to the parallel program 31a1 to create.

Im Folgenden wird mit Bezug auf 2 jede Funktion und eine Verarbeitungsprozedur zum Erzeugen des parallelen Programms 31a1 aus einem einzelnen Programm, das in dem Computer 10 als dem Parallelisierungswerkzeug enthalten ist, beschrieben. 2 ist ein Diagramm, das jede Funktion und die Verarbeitungsprozedur des Computers 10 als Funktionsblöcke zeigt. Wie es in 2 gezeigt ist, weist der Computer 10 Funktionen als lexikalische Analyseeinheit 10a, syntaktisch-semantische Analyseeinheit 10b, Abhängigkeitsanalyseeinheit 10c, Kernzuordnungseinheit 10d, erste Planungseinheit 10e und zweite Planungseinheit 10f auf.The following is with reference to 2 each function and a processing procedure for generating the parallel program 31a1 from a single program that is in the computer 10 as the parallelization tool is described. 2 is a diagram showing each function and the processing procedure of the computer 10 as function blocks shows. As it is in 2 is shown, the computer instructs 10 Functions as a lexical analysis unit 10a , syntactic-semantic analysis unit 10b , Dependency analysis unit 10c , Core allocation unit 10d , first planning unit 10e and second planning unit 10f on.

Wie es in 2 gezeigt ist, analysiert der Computer 10 gemäß der vorliegenden Ausführungsform nicht gleichzeitig das gesamte einzelne Programm zum Steuern einer Steuerungszielvorrichtung, um ein paralleles Programm zu erzeugen, sondern erzeugt das parallele Programm für das einzelne Programm, das für jede unabhängige Verarbeitungsfunktion (Aufgabe) unterteilt wird. Das einzelne Programm, das für jede Aufgabe unterteilt wird, enthält mehrere Verarbeitungseinheiten und kann die Verarbeitungsfunktion, die für eine jeweilige Aufgabe beabsichtigt ist, mit der Ausführung der Verarbeitungseinheiten realisieren. Wie es oben beschrieben wurde, kooperieren die Verarbeitungseinheiten zum Zwecke einer Realisierung einer Zielverarbeitungsfunktion miteinander und enthalten beispielsweise eine anschließende Verarbeitungseinheit, die auf Variablendaten Bezug nimmt, die in einer vorherigen Verarbeitungseinheit verarbeitet wurden, eine anschließende Verarbeitungseinheit, die nach einer Bedingungsabzweigung der vorherigen Verarbeitungseinheit auszuführen ist, und Ähnliches.As it is in 2 shown, the computer analyzes 10 According to the present embodiment, the entire single program for controlling a control target device is not concurrently generated to generate a parallel program, but generates the parallel program for the single program which is divided for each independent processing function (task). The single program, which is subdivided for each task, contains several processing units and can realize the processing function intended for a particular task with the execution of the processing units. As described above, the processing units cooperate with each other for the purpose of realizing a destination processing function, and include, for example, a subsequent processing unit that refers to variable data processed in a previous processing unit, a subsequent processing unit to be executed after a condition branch of the previous processing unit , and similar.

In diesem Beispiel nimmt die Verarbeitungseinheit Bezug auf eine Kernkonfigurationseinheit oder eine Funktion, die eine minimale Einheit zu dem Zeitpunkt der Zuordnung zu einem jeweiligen Kern ist. Die Kernkonfigurationseinheit kann als Verarbeitungsblock, Makroaufgabe oder nur als Verarbeitungseinheit bezeichnet werden. Eine Beziehung zwischen der Kernkonfigurationseinheit und der Funktion erfüllt: Kernkonfigurationseinheit ≥ Funktion. Mit anderen Worten, die Funktion kann eine Kernkonfigurationseinheit selbst sein oder kann eine übergeordnete Funktion oder eine untergeordnete Funktion sein, die in der Kernkonfigurationseinheit enthalten ist.In this example, the processing unit refers to a core configuration unit or function that is a minimum unit at the time of allocation to a respective core. The core configuration unit may be referred to as a processing block, macro task, or just a processing unit. A relationship between the core configuration unit and the function satisfies: Core configuration unit ≥ function. In other words, the function may be a core configuration unit itself or may be a higher-level function or a subordinate function included in the core configuration unit.

Die lexikalische Analyseeinheit 10a und die syntaktisch-semantische Analyseeinheit 10b führen eine lexikalische Analyse, eine Analyse einer Syntax und einer Semantik, die für einen Quellencode des einzelnen Programms vorgesehen sind, das in der C-Sprache geschrieben ist, durch und entwickeln den Quellencode in der Zwischensprache. Die Zwischensprache, die von der lexikalischen Analyseeinheit 10a und der syntaktisch-semantischen Analyseeinheit 10b entwickelt wird, enthält allgemeine Befehle. Da die lexikalische Analyseeinheit 10a und die syntaktisch-semantische Analyseeinheit 10b FE3 der JP 2015 - 01 807 A entsprechen, wird hinsichtlich der Details auf die JP 2015 - 01 807 A verwiesen.The lexical analysis unit 10a and the syntactic-semantic analysis unit 10b carry out a lexical analysis, an analysis of a syntax and a semantics, which are intended for a source code of the individual program, which in the C Language is written, and develop the source code in the intermediate language. The intermediate language used by the lexical analysis unit 10a and the syntactic-semantic analysis unit 10b is developed contains general commands. As the lexical analysis unit 10a and the syntactic-semantic analysis unit 10b FE3 the JP 2015 - 01 807 A will be in terms of details on the JP 2015 - 01 807 A directed.

Die Abhängigkeitsanalyseeinheit 10c analysiert die Abhängigkeit der Verarbeitungseinheit(en), die in dem einzelnen Programm enthalten ist (sind), das in die Zwischensprache erweitert ist, und extrahiert die Verarbeitungseinheit(en), die parallel ausgeführt werden kann (können). Die Abhängigkeit enthält eine Datenabhängigkeit wie beispielsweise eine Verarbeitungseinheit, die später unter Bezugnahme auf Variablendaten auszuführen ist, die in einer früher auszuführenden Verarbeitungseinheit aktualisiert werden, und eine Steuerungsabhängigkeit wie beispielsweise eine Prozesseinheit, die später als Bedingungsverzweigungsziel einer früher auszuführenden Verarbeitungseinheit auszuführen ist. Die Verarbeitungseinheiten, die eine derartige Abhängigkeit aufweisen, müssen in einer Verarbeitungsreihenfolge entsprechend der Abhängigkeit ausgeführt werden. In der vorliegenden Ausführungsform ist das einzelne Programm, das wie oben beschrieben für jede Aufgabe unterteilt wird, zu parallelisieren. Die Verarbeitungseinheiten, die in dem einzelnen Programm enthalten sind, das für jede Aufgabe unterteilt wird, weisen eine Datenabhängigkeit und eine Steuerungsabhängigkeit auf.The dependency analysis unit 10c analyzes the dependency of the processing unit (s), which is included in the single program extended into the intermediate language and extracts the processing unit (s) that can be executed in parallel. The dependency includes a data dependency such as a processing unit to be executed later with reference to variable data to be updated in a processing unit to be executed earlier, and a control dependency such as a process unit to be later executed as a conditional branch target of a processing unit to be executed earlier. The processing units having such a dependency must be executed in a processing order according to the dependency. In the present embodiment, the single program, which is divided for each task as described above, is to be parallelized. The processing units included in the single program divided for each task have a data dependency and a control dependency.

In dem Beispiel, das in 3 gezeigt ist, enthält die Aufgabe A beispielsweise Verarbeitungseinheiten A1 bis A3, und die Verarbeitungseinheiten A2 und A3 weisen eine Abhängigkeit von der Verarbeitungseinheit A1 auf. Die Verarbeitungseinheit A2 und die Verarbeitungseinheit A3 sind Verarbeitungseinheiten, die parallel ausgeführt werden können. Die Aufgabe B enthält Verarbeitungseinheiten B1 bis B2, und die Verarbeitungseinheit B2 weist eine Abhängigkeit von der Verarbeitungseinheit B1 auf. Außerdem enthält die Aufgabe C Verarbeitungseinheiten C1 bis C4, wobei die Verarbeitungseinheit C2 eine Abhängigkeit von der Verarbeitungseinheit C1 aufweist und die Verarbeitungseinheit C4 eine Abhängigkeit von der Verarbeitungseinheit C3 aufweist. Die Verarbeitungseinheiten C1 und C2 und die Verarbeitungseinheiten C3 und C4 können parallel ausgeführt werden.In the example that is in 3 For example, task A includes processing units A1 to A3 , and the processing units A2 and A3 have a dependency on the processing unit A1 on. The processing unit A2 and the processing unit A3 are processing units that can be executed in parallel. The task B contains processing units B1 to B2 , and the processing unit B2 has a dependency on the processing unit B1 on. It also contains the task C processing units C1 to C4 , wherein the processing unit C2 a dependency on the processing unit C1 and the processing unit C4 a dependency on the processing unit C3 having. The processing units C1 and C2 and the processing units C3 and C4 can be executed in parallel.

Die Kernzuordnungseinheit 10d ordnet mehrere Verarbeitungseinheiten dem ersten Kern 31c und dem zweiten Kern 31d auf der Grundlage des Analyseergebnisses zu, das von der Abhängigkeitsanalyseeinheit 10c erhalten wird. Hier ordnet die Kernzuordnungseinheit 10d die Verarbeitungseinheiten beispielsweise derart zu, dass die Verarbeitungseinheiten, die parallel ausgeführt werden können, von dem ersten Kern 31c und dem zweiten Kern 31d parallel ausgeführt werden. Anhand von 3 wird ein Beispiel einer Zuordnung der Verarbeitungseinheiten A1 bis A3, B1 bis B2 und C1 bis C4 zu dem ersten Kern 31c und dem zweiten Kern 31d, wenn die Abhängigkeit der Verarbeitungseinheiten für jede Aufgabe analysiert wird, beschrieben. Zunächst ordnet die Kernzuordnungseinheit 10d unter den Verarbeitungseinheiten A1 bis A3 der Aufgabe A die Verarbeitungseinheiten A1 und A2 dem ersten Kern 31c zu und ordnet die Verarbeitungseinheit A3, die parallel zu der Verarbeitungseinheit A2 ausführbar ist, dem zweiten Kern 31d zu. Die Kernzuordnungseinheit 10d ordnet die Verarbeitungseinheiten B1 und B2 der Aufgabe B dem ersten Kern 31c zu, ordnet in Bezug auf die Verarbeitungseinheiten C1 bis C4 für die Aufgabe C die Verarbeitungseinheiten C1 und C2 dem ersten Kern 31c zu und ordnet die Verarbeitungseinheiten C3 und C4, die parallel zu den Verarbeitungseinheiten C1 und C2 ausgeführt werden können, dem zweiten Kern 31d zu.The core allocation unit 10d maps multiple processing units to the first core 31c and the second core 31d on the basis of the analysis result, that of the dependency analysis unit 10c is obtained. Here assigns the core allocation unit 10d for example, the processing units are such that the processing units that can be executed in parallel are of the first core 31c and the second core 31d be executed in parallel. Based on 3 will be an example of assignment of the processing units A1 to A3 . B1 to B2 and C1 to C4 to the first core 31c and the second core 31d when analyzing the dependency of the processing units for each task is described. First, the core allocation unit maps 10d under the processing units A1 to A3 the task A the processing units A1 and A2 the first core 31c and assigns the processing unit A3 parallel to the processing unit A2 executable, the second core 31d to. The core allocation unit 10d maps the processing units B1 and B2 the task B the first core 31c to, assigns to the processing units C1 to C4 for the task C the processing units C1 and C2 the first core 31c and assigns the processing units C3 and C4 parallel to the processing units C1 and C2 can be performed, the second core 31d to.

Die erste Planungseinheit 10e führt eine Planung bzw. Ablaufplanung der Verarbeitungseinheiten A1 bis A3, B1 bis B2 und C1 bis C4 durch, die dem ersten Kern 31c und dem zweiten Kern 31d zugeordnet sind. Insbesondere bestimmt die erste Planungseinheit 10e die Ausführungspläne der Verarbeitungseinheiten A1 bis A3, B1 bis B2 und C1 bis C4, die dem ersten Kern 31c und dem zweiten Kern 31d zugeordnet sind, auf der Grundlage der Ausführungszeiten und Abhängigkeiten der Verarbeitungseinheiten A1 bis A3, B1 bis B2 und C1 bis C4. Die Abhängigkeitsanalyseeinheit 10c, die Kernzuordnungseinheit 10d und die erste Planungseinheit 10e entsprechen MP5 der JP 2015 - 01 807 A , und somit wird hinsichtlich der Details auf die JP 2015 - 01 807 A verwiesen.The first planning unit 10e leads planning or scheduling of the processing units A1 to A3 . B1 to B2 and C1 to C4 through, the first core 31c and the second core 31d assigned. In particular, the first planning unit determines 10e the execution plans of the processing units A1 to A3 . B1 to B2 and C1 to C4 that the first core 31c and the second core 31d based on the execution times and dependencies of the processing units A1 to A3 . B1 to B2 and C1 to C4 , The dependency analysis unit 10c , the core allocation unit 10d and the first planning unit 10e correspond MP5 the JP 2015 - 01 807 A , and so on the details JP 2015 - 01 807 A directed.

4 zeigt ein Beispiel eines Planungsergebnisses der ersten Planungseinheit 10e. Wie es oben beschrieben wurde, weist jede der Verarbeitungseinheiten A1 bis A3 der Aufgabe A eine Abhängigkeit auf, gemäß der die Verarbeitungseinheit A2 und die Verarbeitungseinheit A3 von der Verarbeitungseinheit A1 abhängen. Gemäß dem Beispiel, das in 4 gezeigt ist, wird die Verarbeitungseinheit A3, die in dem zweiten Kern 31d ausgeführt wird, der sich von dem ersten Kern 31c unterscheidet, in dem die Verarbeitungseinheit A1 ausgeführt wird, derart geplant, dass sie durch einen Synchronisationsprozess ihre Ausführung nach Beendigung der Verarbeitungseinheit A1 startet. Der Synchronisationsprozess kann beispielsweise dadurch realisiert werden, dass der erste Kern 31c Beendigungsinformationen in den RAM 31b schreibt, wenn die Verarbeitungseinheit A1 beendet wurde, und dadurch, dass der zweite Kern 31d die Ausführung der Verarbeitungseinheit A3 startet, wenn die Beendigungsinformationen aus dem RAM 31b ausgelesen und bestätigt werden. Alternativ kann der erste Kern 31c als Synchronisationsprozess dem zweiten Kern 31d ein Beendigungssignal nach der Beendigung der Verarbeitungseinheit A1 mitteilen. 4 shows an example of a planning result of the first planning unit 10e , As described above, each of the processing units has A1 to A3 Task A has a dependency according to which the processing unit A2 and the processing unit A3 from the processing unit A1 depend. According to the example in 4 is shown, the processing unit A3 that in the second core 31d is executed, extending from the first core 31c differs in which the processing unit A1 is executed, scheduled to execute by a synchronization process upon completion of the processing unit A1 starts. The synchronization process can be realized, for example, in that the first core 31c Completion information in the RAM 31b writes when the processing unit A1 has ended, and in that the second core 31d the execution of the processing unit A3 starts when the termination information is out of RAM 31b be read out and confirmed. Alternatively, the first core 31c as a synchronization process the second core 31d a termination signal after the completion of the processing unit A1 report.

In dem Beispiel, das in 4 gezeigt ist, wird nach Beendigung jeder der Verarbeitungseinheiten A1 bis A3 der Aufgabe A die auszuführende Aufgabe in die Aufgabe B gewechselt, und die Verarbeitungseinheiten B1 bis B2 der Aufgabe B werden für die Ausführung geplant. Nach Beendigung der Verarbeitungseinheiten B1 bis B2 der Aufgabe B wird die auszuführende Aufgabe zur Aufgabe C gewechselt, und die Verarbeitungseinheiten C1 bis C4 der Aufgabe C werden für die Ausführung geplant.In the example that is in 4 is shown after completion of each of the processing units A1 to A3 the task A the task to be performed in the task B changed, and the processing units B1 to B2 the task B be for the Execution planned. After finishing the processing units B1 to B2 the task B becomes the task to be performed C changed, and the processing units C1 to C4 the task C are scheduled for execution.

In der Ausführungsform, die in 4 gezeigt ist, weist die Verarbeitungseinheit A1 der Aufgabe A eine Funktion zum Zugreifen auf Variablendaten auf, die in dem RAM 31b gespeichert sind und durch ein Symbol P repräsentiert werden, und zum Schreiben der Variablendaten. Die Verarbeitungseinheit A2 der Aufgabe A weist eine Funktion zum Zugreifen auf Variablendaten, die in dem RAM 31b gespeichert sind und durch die Zeichen X und Z angegeben sind, und zum Schreiben der Variablendaten auf. Außerdem weist die Verarbeitungseinheit B1 der Aufgabe B eine Funktion zum Zugreifen auf Variablendaten, die durch das Symbol W repräsentiert werden, auf, um ein Schreiben durchzuführen, und die Verarbeitungseinheit B2 weist eine Funktion zum Zugreifen auf Variablendaten auf, die durch das Symbol Q repräsentiert werden, um ein Schreiben durchzuführen. Der Zugriff auf die jeweiligen Variablendaten ist jedoch nicht auf das oben beschriebene Beispiel beschränkt und beinhaltet nicht nur den Fall einer Funktion zum Schreiben, sondern auch einen Fall einer Funktion zum Lesen.In the embodiment which is in 4 is shown, the processing unit A1 Task A has a function for accessing variable data stored in the RAM 31b are saved and by a symbol P and to write the variable data. The processing unit A2 Task A has a function of accessing variable data stored in the RAM 31b are stored and by the characters X and Z and writing the variable data. In addition, the processing unit instructs B1 the task B a function for accessing variable data represented by the symbol W on, to perform a write, and the processing unit B2 has a function for accessing variable data represented by the symbol Q be represented to perform a letter. However, the access to the respective variable data is not limited to the above-described example and includes not only the case of a function for writing but also a case of a function for reading.

Wie es in 2 gezeigt ist, enthält der Computer 10 gemäß der vorliegenden Ausführungsform außerdem eine zweite Planungseinheit 10f. Die zweite Planungseinheit 10f fügt einen Abnormitätsdiagnoseprozess einer Hardware des Multikernmikrocomputers 31 in eine Leerlaufzeit in einem Ausführungsplan der Verarbeitungseinheiten ein, die das parallele Programm bilden, das von der ersten Planungseinheit 10e geplant wurde, und aktualisiert den Ausführungsplan des parallelen Programms. Mit anderen Worten, die zweite Planungseinheit 10f bestimmt den Ausführungsplan des Abnormitätsdiagnoseprozesses auf der Grundlage des Ausführungsplans der Verarbeitungseinheiten in dem ersten Kern 31c und dem zweiten Kern 31d, der von der ersten Planungseinheit 10e bestimmt wurde, derart, dass der Abnormitätsdiagnoseprozess der Hardware des Multikernmikrocomputers 31 parallel zu der Leerlaufzeit des Kerns ausgeführt wird, in der keine Verarbeitungseinheit ausgeführt wird. Mit anderen Worten, die zweite Planungseinheit 10f (der Computer 10) hält bzw. speichert ein Programm als einzufügenden Abnormitätsdiagnoseprozess, sucht nach einer Leerlaufzeit, während der der Abnormitätsdiagnoseprozess ausgeführt werden kann, und ordnet den Abnormitätsdiagnoseprozess der gesuchten Leerlaufzeit zu. Als Ergebnis enthält das parallele Programm 31a1, dessen Ausführungsplan durch die zweite Planungseinheit 10f aktualisiert wurde, den Abnormitätsdiagnoseprozess der Hardware des Multikernmikrocomputers 31 zusätzlich zu den Verarbeitungseinheiten einer jeweiligen Aufgabe, die in dem einzelnen Programm enthalten ist.As it is in 2 shown, the computer contains 10 According to the present embodiment, a second planning unit 10f , The second planning unit 10f adds an abnormality diagnosis process to a hardware of the multi-core microcomputer 31 into an idle time in an execution plan of the processing units that make up the parallel program that is the first scheduling unit 10e has been planned and updates the execution plan of the parallel program. In other words, the second planning unit 10f determines the execution plan of the abnormality diagnosis process based on the execution plan of the processing units in the first core 31c and the second core 31d that of the first planning unit 10e was determined, such that the abnormality diagnosis process of the hardware of the multi-core microcomputer 31 in parallel with the idle time of the core in which no processing unit is executed. In other words, the second planning unit 10f (the computer 10 ) holds a program as an abnormality diagnosis process to be inserted, searches for an idle time during which the abnormality diagnosis process can be executed, and associates the abnormality diagnosis process with the searched idle time. As a result contains the parallel program 31a1 , its execution plan by the second planning unit 10f has been updated, the abnormality diagnosis process of the hardware of the multi-core microcomputer 31 in addition to the processing units of a respective task included in the single program.

Im Folgenden wird der Abnormitätsdiagnoseprozess der Hardware des Multikernmikrocomputers 31 beschrieben. Der Abnormitätsdiagnoseprozess dient zum Diagnostizieren, ob eine Abnormität in der Hardware des Multikernmikrocomputers 31 aufgetreten ist, der das parallele Programm 31a1 ausführt. Wie es oben beschrieben wurde, erzeugt der Computer 10, der als das Parallelisierungswerkzeug gemäß der vorliegenden Ausführungsform dient, das parallele Programm 31a1, das den Abnormitätsdiagnoseprozess zum Diagnostizieren der Abnormität der Hardware des Multikernmikrocomputers 31 enthält. Aus diesem Grund kann der Multikernmikrocomputer 31 mit der Ausführung des erzeugten parallelen Programms 31a1 diagnostizieren, ob eine Abnormität in ihrer eigenen Hardware aufgetreten ist und die Hardware normal betrieben wird, und kann somit überwachen, ob der Verarbeitungsbetrieb des Multikernmikrocomputers 31, der die entsprechende Hardware verwendet, normal durchgeführt wird.The following is the abnormality diagnosis process of the hardware of the multi-core microcomputer 31 described. The abnormality diagnosing process is for diagnosing whether there is an abnormality in the hardware of the multi-core microcomputer 31 occurred, which is the parallel program 31a1 performs. As described above, the computer generates 10 serving as the parallelization tool according to the present embodiment, the parallel program 31a1 including the abnormality diagnosing process for diagnosing the abnormality of the hardware of the multi-core microcomputer 31 contains. For this reason, the multi-core microcomputer 31 with the execution of the generated parallel program 31a1 diagnose whether an abnormality has occurred in their own hardware and the hardware is normally operated, and thus can monitor whether the processing operation of the multi-core microcomputer 31 that uses the appropriate hardware is done normally.

Als ein spezielles Beispiel des Abnormitätsdiagnoseprozesses der Hardware kann ein Neuschreibüberprüfungsprozess (Überschreibüberprüfungsprozess) eines RAM 31b genannt werden. Mit anderen Worten, die in dem Abnormitätsdiagnoseprozess zu diagnostizierende Hardware ist ein RAM 31b, der ein wiederbeschreibbarer Speicher des Multikernmikrocomputers 31 ist, und der Neuschreibüberprüfungsprozess als Abnormitätsdiagnoseprozess überprüft, ob die Daten normal in den RAM 31b geschrieben werden können. Der Neuschreibüberprüfungsprozess kann beispielsweise mit den folgenden vier Schritten ausgeführt werden. Zunächst wird als ein erster Schritt ein Wert der Variablendaten aus einem geeigneten Bereich des RAM 31b ausgelesen, in dem der Wert der zu diagnostizierenden Variablendaten gespeichert sind, und die Variablendaten werden in einem anderen Speicherbereich gesichert. Anschließend wird als zweiter Schritt ein Testwert in den geeigneten Bereich, aus dem die Variablendaten ausgelesen wurden, geschrieben. Dann wird als ein dritter Schritt der geschriebene Testwert aus dem geeigneten Bereich ausgelesen, und es wird bestimmt, ob der ausgelesene Wert mit dem Testwert übereinstimmt. Schließlich wird als ein vierter Schritt der gesicherte Wert verwendet, um den geeigneten Bereich auf den Wert der ursprünglichen Variablendaten zurückzuschreiben. Auf diese Weise überprüft der Neuschreibüberprüfungsprozess, ob der Speicherbereich des RAM 31b, der zum Speichern der Variablendaten verwendet wird, individuell neu bzw. wiederbeschrieben werden kann.As a specific example of the hardware abnormality diagnosing process, a rewrite checking process (overwrite checking process) of a RAM 31b to be named. In other words, the hardware to be diagnosed in the abnormality diagnosis process is a RAM 31b , the rewritable memory of the multi-core microcomputer 31 and the rewrite verification process as the abnormality diagnosis process checks whether the data is normal in the RAM 31b can be written. The rewrite verification process may be performed, for example, with the following four steps. First, as a first step, a value of the variable data is extracted from a suitable area of the RAM 31b in which the value of the variable data to be diagnosed is stored, and the variable data is saved in another storage area. Subsequently, as a second step, a test value is written in the appropriate area from which the variable data was read out. Then, as a third step, the written test value is read out of the appropriate range, and it is determined whether the read-out value coincides with the test value. Finally, as a fourth step, the saved value is used to rewrite the appropriate range to the value of the original variable data. In this way, the rewrite checking process checks if the memory area of the RAM 31b , which is used to store the variable data, can be individually rewritten or rewritten.

In der vorliegenden Ausführungsform werden Informationen (RAM-Informationen) 19 hinsichtlich des Speicherbereiches des RAM 31b, der die Neuschreibüberprüfung benötigt, für die zweite Planungseinheit 10f bereitgestellt. Genauer gesagt werden in dem einzelnen Programm Informationen, in denen Symboldaten, die als ein Symbol verwendet werden, das die Variablendaten angibt, gesammelt sind, der zweiten Planungseinheit 10f als RAM-Informationen 19 zugeführt, die die Neuschreibüberprüfung benötigen. Wenn das parallele Programm 31a1 in der C-Sprache oder der Zwischensprache geschrieben ist, werden die jeweiligen Variablendaten mit einem entsprechenden Symbol bezeichnet. Welcher Speicherbereich des RAM 31b des Multikernmikrocomputers 31 die Variablendaten, die durch die Symbole repräsentiert werden, speichert, wird nur durch den Compiler 20 durch Umwandeln der Funktionen, der Symbole der Variablen und Ähnlichem in spezielle Adressinformationen bestimmt. Aus diesem Grund werden der zweiten Planungseinheit 10f Informationen bereitgestellt, in denen Symbole, die die Variablendaten angeben, als RAM-Informationen 19 gruppiert sind, die die Neuschreibüberprüfung benötigen.In the present embodiment, information (RAM information) 19 in terms of the memory area of the RAM 31b who the Rewrite verification needed for the second planning unit 10f provided. More specifically, in the single program, information in which symbol data used as a symbol indicating the variable data is collected is the second scheduling unit 10f as RAM information 19 fed, who need the rewrite verification. If the parallel program 31a1 is written in the C language or the intermediate language, the respective variable data is designated by a corresponding symbol. Which memory area of the RAM 31b of the multi-core microcomputer 31 The variable data represented by the symbols stores is only through the compiler 20 by converting the functions, the symbols of the variables and the like into special address information. For this reason, the second planning unit 10f Information provided in which symbols indicating the variable data as RAM information 19 are grouped, who need the rewrite check.

Als RAM-Informationen 19, die die Neuschreibüberprüfung benötigen, werden Symbole, die die Variablendaten angeben, die zu verwenden sind, wenn das einzelne Programm erzeugt wird, zusammen gruppiert, und die gruppierten Informationen können verwendet werden. In diesem Fall können die gruppierten Informationen als die RAM-Informationen 19 in den Computer 10 eingegeben werden. Wenn der Computer 10 das einzelne Programm analysiert, kann der Computer 10 alternativ die Symbole, die die verwendeten Variablendaten angeben, extrahieren und gruppieren und die extrahierten Symbole als RAM-Informationen 19 verwenden. Als Ergebnis kann in dem Neuschreibüberprüfungsprozess überprüft werden, ob der Speicherbereich, der zum Speichern der Variablendaten verwendet wird, die durch das einzelne Programm definiert werden, individuell neu beschrieben werden kann.As RAM information 19 Those who need the rewrite check are grouped together symbols indicating the variable data to be used when the single program is generated, and the grouped information can be used. In this case, the grouped information can be considered the RAM information 19 in the computer 10 be entered. If the computer 10 the individual program can analyze the computer 10 alternatively, extract and group the symbols indicating the used variable data and the extracted symbols as RAM information 19 use. As a result, in the rewrite checking process, it can be checked whether the memory area used for storing the variable data defined by the single program can be individually rewritten.

Die zweite Planungseinheit 10f kann einen gemeinsamen Neuschreibüberprüfungsprozess für sämtliche Variablendaten durchführen oder kann für die jeweiligen Variablendaten einen unterschiedlichen Neuschreibüberprüfungsprozess durchführen. Die Testwerte können beispielsweise unterschiedlich sein, oder die Anzahl der Überprüfungen kann sich für unterschiedliche Neuschreibüberprüfungsprozesse unterscheiden. In diesem Fall kann die zweite Planungseinheit 10f die unterschiedlichen Neuschreibüberprüfungsprozesse den unterschiedlichen Variablendaten automatisch zuordnen, oder die RAM-Informationen 19, die in die zweite Planungseinheit 10f eingegeben werden, können Informationen enthalten, die den für die jeweiligen Variablendaten zu verwendenden Neuschreibüberprüfungsprozess bezeichnen.The second planning unit 10f may perform a common rewrite verification process for all the variable data or may perform a different rewrite verification process for the respective variable data. For example, the test values may be different, or the number of checks may differ for different rewrite verification processes. In this case, the second planning unit 10f automatically map the different rewrite verification processes to the different variable data, or the RAM information 19 that in the second planning unit 10f may include information designating the rewrite verification process to be used for the respective variable data.

Der Speicherbereich des RAM 31b, der dem Neuschreibüberprüfungsprozess zu unterziehen ist, kann nicht nur einen Speicherbereich enthalten, in dem die Variablendaten, die in dem einzelnen Programm verwendet werden, gespeichert sind, sondern auch einen Speicherbereich, in dem andere Daten des RAM 31b gespeichert sind. Im Gegensatz dazu werden nicht sämtliche Speicherbereiche des RAM 31b, in dem die Variablendaten gespeichert sind, dem Neuschreibüberprüfungsprozess unterzogen, sondern es können die Speicherbereiche der Variablendaten, die weniger beeinflusst bzw. beeinträchtigt sind, aus dem Neuschreibüberprüfungsprozess ausgeschlossen werden, auch wenn die Daten beschädigt sind.The memory area of the RAM 31b to be subjected to the rewrite checking process may include not only a memory area in which the variable data used in the single program is stored, but also a memory area in which other data of the RAM is stored 31b are stored. In contrast, not all memory areas of the RAM 31b in which the variable data is stored undergo the rewrite checking process, but the storage areas of the variable data which are less affected can be excluded from the rewrite checking process even if the data is damaged.

Im Folgenden wird ein Beispiel spezieller Verarbeitungsinhalte des Planaktualisierungsprozesses, bei dem die zweite Planungseinheit 10f zusätzlich den Hardwareabnormitätsüberwachungsprozess in das Planergebnis der ersten Planungseinheit 10e einfügt, um den Plan zu aktualisieren, mit Bezug auf das Flussdiagramm der 5 beschrieben.The following is an example of special processing contents of the schedule update process in which the second scheduling unit 10f additionally the hardware abnormality monitoring process into the planned result of the first planning unit 10e to update the plan, with reference to the flowchart of 5 described.

Zunächst wählt die zweite Planungseinheit 10f in Schritt S100 ein Informationsteil des RAM aus den eingegebenen RAM-Informationen 19 aus. Anschließend wird in Schritt S110 eine Zeitinformation, die zum Ausführen des Abnormitätsdiagnoseprozesses zum Überprüfen des Neubeschreibens des Speicherbereiches des RAM 31b benötigt wird, in dem die ausgewählte Information des RAM, das heißt das Symbol, das die ausgewählten Variablendaten repräsentiert, gespeichert ist, erlangt. Die Zeitinformation, die zum Ausführen des Abnormitätsdiagnoseprozesses benötigt wird, wird im Voraus bestimmt und als Daten zusammen mit dem Abnormitätsdiagnoseprozess vorbereitet.First, select the second planning unit 10f in step S100 an information part of the RAM from the inputted RAM information 19 out. Subsequently, in step S110 time information necessary for executing the abnormality diagnosis process for verifying the rewriting of the memory area of the RAM 31b is required, in which the selected information of the RAM, that is, the symbol representing the selected variable data, is stored. The time information needed to execute the abnormality diagnosis process is determined in advance and prepared as data together with the abnormality diagnosis process.

In Schritt S120 wird in dem ersten Kern 31c und in dem zweiten Kern 31d die Leerlaufzeit des Kerns, in der keine Verarbeitungseinheit ausgeführt wird, auf der Grundlage des Planungsergebnisses der ersten Planungseinheit 10e gesucht. Dann führt die zweite Planungseinheit 10f die Verarbeitung, die unten beschrieben wird, auf der Grundlage der gesuchten Leerlaufzeit des einen Kerns durch.In step S120 becomes in the first core 31c and in the second core 31d the idle time of the core in which no processing unit is executed, based on the planning result of the first planning unit 10e searched. Then leads the second planning unit 10f the processing described below is based on the searched idle time of the one core.

Zunächst wird in Schritt S130 bestimmt, ob die durch einen anderen Kern auszuführende Verarbeitungseinheit auf denselben Speicherbereich des RAM 31b zugreift, der in dem Abnormitätsdiagnoseprozess zu der gesuchten Leerlaufzeit des einen Kerns zu diagnostizieren ist. Mit anderen Worten, es wird bestimmt, ob die Verarbeitungseinheit, die in einem anderen Kern auszuführen ist, eine Verarbeitung hinsichtlich desselben Symbols wie das Symbol durchführt, das die Variablendaten angibt, die in Schritt S100 ausgewählt wurden. In dem Beispiel, das in 6 gezeigt ist, ist ein dritter Abnormitätsdiagnoseprozess CK3 aus den ersten bis vierten Abnormitätsdiagnoseprozessen CK1 bis CK4 für das Symbol W, das die Variablendaten angibt, vorgesehen. Es wird angenommen, dass bestimmt wird, ob der dritte Abnormitätsdiagnoseprozess CK3 in die Leerlaufzeit des zweiten Kerns 31d eingefügt werden kann, die einer Zeitdauer entspricht, während der die Verarbeitungseinheit B1 in dem ersten Kern 31c als dem anderen Kern durchgeführt wird. Wie es in 6 gezeigt ist, enthält die Verarbeitungseinheit B1 einen Prozess zum Schreiben des Symbols W, das die Variablendaten angibt. Daher überdecken sich ein RAM-Speicherbereich, der in dem dritten Abnormitätsdiagnoseprozess CK3 zu diagnostizieren ist, und ein RAM-Speicherbereich, auf den von der Verarbeitungseinheit B1 zugegriffen wird. Wenn der dritte Abnormitätsdiagnoseprozess CK3 in die Leerlaufzeit des zweiten Kerns 31d als einem Bestimmungsziel eingefügt wird, wird aus diesem Grund der RAM-Zugriff in der Verarbeitungseinheit B1 in dem ersten Kern 31c durch den Neuschreibprozess des RAM-Speicherbereiches durch den dritten Abnormitätsdiagnoseprozess CK3 beeinflusst, und es besteht die Möglichkeit, dass die Verarbeitungseinheit B1 nicht normal durchgeführt werden kann.First, in step S130 determines whether the processing unit to be executed by another core is in the same memory area of the RAM 31b which is to be diagnosed in the abnormality diagnosis process at the sought idle time of the one core. In other words, it is determined whether or not the processing unit to be executed in another core performs processing on the same symbol as the symbol indicating the variable data described in step S100 were selected. In the example that is in 6 shown is a third one Abnormitätsdiagnoseprozess CK3 from the first to fourth abnormality diagnosis processes CK1 to CK4 for the symbol W providing the variable data. It is assumed that it is determined whether the third abnormality diagnosis process CK3 in the idle time of the second core 31d can be inserted, which corresponds to a period of time during which the processing unit B1 in the first core 31c as the other core is performed. As it is in 6 is shown contains the processing unit B1 a process of writing the symbol W that specifies the variable data. Therefore, a RAM memory area overlapping in the third abnormality diagnosing process overlaps CK3 to diagnose, and a RAM memory area pointed to by the processing unit B1 is accessed. If the third abnormality diagnosis process CK3 in the idle time of the second core 31d is inserted as a destination, for this reason, the RAM access in the processing unit B1 in the first core 31c by the rewriting process of the RAM memory area by the third abnormality diagnosing process CK3 influenced, and there is a possibility that the processing unit B1 can not be done normally.

Wenn daher in dem Bestimmungsprozess in Schritt S130 bestimmt wird, dass sich der Speicherbereich des RAM 31b für den Abnormitätsdiagnoseprozess vorgesehen ist und auf den Speicherbereich des RAM 31b durch die Verarbeitungseinheiten zugegriffen wird, die in einem anderen Kern auszuführen sind, überdecken (positives Bestimmungsergebnis), schreitet die Verarbeitung zum Schritt S150. In Schritt S150 wird angenommen, dass die Leerlaufzeit des Kerns, der in Schritt S120 gesucht wurde, nicht zur Durchführung des Neuschreibüberprüfungsprozesses des RAM-Speicherbereiches für die ausgewählten Variablendaten geeignet ist, und es wird eine nächste Leerlaufzeit gesucht. Dann wird die Verarbeitung in Schritt S130 erneut mit der nächsten Leerlaufzeit durchgeführt, die als Bestimmungsziel gesucht wurde.Therefore, if in the determination process in step S130 it is determined that the memory area of the RAM 31b is provided for the abnormality diagnosis process and the memory area of the RAM 31b is accessed by the processing units to be executed in another kernel (positive determination result), the processing proceeds to the step S150 , In step S150 It is assumed that the idle time of the core, in step S120 is not suitable for performing the rewrite checking process of the RAM memory area for the selected variable data, and a next idle time is searched for. Then the processing in step S130 again with the next idle time searched for as the destination.

In dem Beispiel, das in 6 gezeigt ist, wird beispielsweise angenommen, dass als nächste Leerlaufzeit zum Einfügen des dritten Abnormitätsdiagnoseprozesses CK3 die Leerlaufzeit des zweiten Kerns 31d, die der Zeitdauer entspricht, während der die Verarbeitungseinheit B2 in dem ersten Kern 31c durchgeführt wird, gesucht bzw. gefunden wird. In diesem Fall enthält die Verarbeitungseinheit B2 nur einen Prozess zum Schreiben des Symbols Q, das die Variablendaten angibt. Aus diesem Grund ist das Ergebnis der Bestimmung in der Bestimmungsverarbeitung in Schritt S130 negativ derart, dass der Speicherbereich des RAM 31b, der dem Abnormitätsdiagnoseprozess zu unterziehen ist, sich nicht mit dem Speicherbereich des RAM 31b überdeckt, auf den von der Verarbeitungseinheit zugegriffen wird, die in dem anderen Kern ausgeführt wird. In diesem Fall schreitet die zweite Planungseinheit 10f zur Verarbeitung in Schritt S140.In the example that is in 6 For example, it is assumed that as the next idle time for inserting the third abnormality diagnosis process CK3 the idle time of the second core 31d , which corresponds to the length of time during which the processing unit B2 in the first core 31c is performed, searched or found. In this case, the processing unit contains B2 just a process to write the symbol Q that specifies the variable data. For this reason, the result of the determination in the determination processing is in step S130 negative such that the memory area of the RAM 31b to be subjected to the abnormality diagnosing process does not match the memory area of the RAM 31b covered by the processing unit being executed in the other core. In this case, the second planning unit proceeds 10f for processing in step S140 ,

In Schritt S140 wird bestimmt, ob die Leerlaufzeit des gesuchten Kerns kürzer als die Zeit ist, die zur Ausführung des Abnormitätsdiagnoseprozesses benötigt wird und in Schritt S110 erlangt wurde. Wenn bestimmt wird, dass die Leerlaufzeit kürzer ist (positives Bestimmungsergebnis), kann die Ausführung des Abnormitätsdiagnoseprozesses in der Leerlaufzeit des Kerns als Bestimmungsziel nicht beendet werden. Aus diesem Grund schreitet der Prozess zum Schritt S150, und die Leerlaufzeit des Kerns wird durch Suchen nach der Leerlaufzeit des nächsten Kerns geändert. Wenn andererseits in dem Bestimmungsprozess in Schritt S140 bestimmt wird, dass die Leerlaufzeit des Kerns nicht kürzer ist (negatives Bestimmungsergebnis), schreitet der Prozess zum Schritt S160.In step S140 determining whether the idle time of the searched kernel is shorter than the time required to execute the abnormality diagnosing process, and in step S110 was obtained. When it is determined that the idle time is shorter (positive determination result), the execution of the abnormality diagnosis process in the idle time of the core as a destination can not be completed. For this reason, the process moves to the step S150 and the idle time of the core is changed by searching for the idle time of the next core. If, on the other hand, in the determination process in step S140 is determined that the idle time of the core is not shorter (negative determination result), the process goes to step S160 ,

In Schritt S160 fügt die zweite Planungseinheit 10f einen Abnormitätsdiagnoseprozess zum Überprüfen des Neubeschreibens des RAM-Speicherbereiches für die ausgewählten Variablendaten in die Leerlaufzeit des bestimmten Kerns ein (ordnet zu) und aktualisiert den von der ersten Planungseinheit 10e bestimmten Plan. Daher kann der Computer 10 als Parallelisierungswerkzeug mit der Erzeugung des parallelen Programms 31a1 gemäß den aktualisierten Plänen das parallele Programm erzeugen, das in der Lage ist, das Neuschreiben bzw. Neubeschreiben des Speicherbereiches des RAM 31b zu überprüfen, ohne die Ausführung der Einheitsverarbeitung in einem anderen Kern zu beeinflussen.In step S160 adds the second planning unit 10f An abnormality diagnosing process for verifying the rewriting of the RAM memory area for the selected variable data into the idle time of the specific core and updates it from the first scheduling unit 10e certain plan. Therefore, the computer can 10 as a parallelization tool with the generation of the parallel program 31a1 According to the updated plans, generate the parallel program capable of rewriting the memory area of the RAM 31b without affecting the execution of unit processing in another core.

Im nächsten Schritt S170 wird bestimmt, ob ein anderer Kern für die Ausführung einer Verarbeitungseinheit zum Zugreifen auf denselben RAM-Speicherbereich wie der Abnormitätsdiagnoseprozess vor und nach der Leerlaufzeit des Kerns, in die der Abnormitätsdiagnoseprozess eingefügt wurde, geplant ist. Wenn bestimmt wird, dass ein anderer Kern auf die obige Weise geplant ist (positives Bestimmungsergebnis), schreitet der Prozess zum Schritt S180. Wenn andererseits bestimmt wird, dass kein anderer Kern auf die obige Weise geplant ist (negatives Bestimmungsergebnis), schreitet der Prozess zum Schritt S200. In Schritt S180 wird bestimmt, ob der Synchronisationsprozess zwischen dem eingefügten Abnormitätsdiagnoseprozess und der Verarbeitungseinheit zum Zugreifen auf denselben RAM-Speicherbereich vor und nach dem Abnormitätsdiagnoseprozess festgelegt ist. Wenn bestimmt wird, dass der Synchronisationsprozess nicht festgelegt ist, schreitet der Prozess zum Schritt S190. Wenn andererseits bestimmt wird, dass der Synchronisationsprozess festgelegt ist, schreitet der Prozess zum Schritt S200.In the next step S170 It is determined whether another core for executing a processing unit for accessing the same RAM memory area as the abnormality diagnosis process before and after the idle time of the core into which the abnormality diagnosis process has been inserted is scheduled. If it is determined that another core is planned in the above manner (positive determination result), the process goes to the step S180 , On the other hand, if it is determined that no other core is planned in the above manner (negative determination result), the process goes to the step S200 , In step S180 It is determined whether the synchronization process between the inserted abnormality diagnosis process and the processing unit for accessing the same RAM memory area is set before and after the abnormality diagnosis process. When it is determined that the synchronization process is not set, the process goes to step S190 , On the other hand, when it is determined that the synchronization process is set, the process goes to the step S200 ,

In Schritt S190 wird der Synchronisationsprozess zwischen dem Abnormitätsdiagnoseprozess und der Verarbeitungseinheit zum Zugreifen auf denselben RAM-Speicherbereich vor und nach dem Abnormitätsdiagnoseprozess hinzugefügt. Mit der Hinzufügung des Synchronisationsprozesses wird, wenn das parallele Programm 31a1 ausgeführt wird, der Abnormitätsdiagnoseprozess ausgeführt, nachdem die Einheitsverarbeitung zum Zugreifen auf denselben RAM-Speicherbereich beendet ist und/oder die Einheitsverarbeitung zum Zugreifen auf denselben RAM-Speicherbereich ausgeführt, nachdem der Abnorm itätsdiagnoseprozess beendet ist. Als Ergebnis kann zuverlässig verhindert werden, dass sich die Ausführungszeit des Abnormitätsdiagnoseprozesses mit der Ausführungszeit der Einheitsverarbeitung zum Zugreifen auf den RAM-Speicherbereich, der in dem Abnormitätsdiagnoseprozess zu diagnostizieren ist, überdecken. In step S190 the synchronization process is added between the abnormality diagnosis process and the processing unit for accessing the same RAM memory area before and after the abnormality diagnosis process. With the addition of the synchronization process, if the parallel program 31a1 is executed, the abnormality diagnosing process is executed after the unit processing for accessing the same RAM memory area is completed and / or the unit processing for accessing the same RAM memory area is executed after the abnormality diagnosis process is completed. As a result, the execution time of the abnormality diagnosis process can be reliably prevented from overlapping with the execution time of the unit processing for accessing the RAM memory area to be diagnosed in the abnormality diagnosis process.

Wenn beispielsweise der Ausführungsplan der Verarbeitungseinheiten A1 bis A3, B1 bis B2 und C1 bis C4 wie in 3 gezeigt durch die erste Planungseinheit 10e bestimmt wird, wird angenommen, dass der erste Abnormitätsdiagnoseprozess CK1 in die Leerlaufzeit des zweiten Kerns 31d entsprechend der Zeitdauer eingefügt wird, während der die Verarbeitungseinheit A1 in dem ersten Kern 31c durchgeführt wird, wie es in 6 gezeigt ist. Wie es in 6 gezeigt ist, wird in diesem Fall nach der Verarbeitung des ersten Abnormitätsdiagnoseprozesses CK1 der erste Kern 31c für die Ausführung der Verarbeitungseinheit A2 geplant, die einen Prozess zum Zugreifen auf denselben RAM-Speicherbereich wie der erste Abnormitätsdiagnoseprozess CK1 enthält. Aus diesem Grund ist das Ergebnis der Bestimmung in Schritt S170 positiv. Der Synchronisationsprozess wurde jedoch bereits zwischen dem ersten Abnormitätsdiagnoseprozess CK1 und der Verarbeitungseinheit A2 festgelegt. Da das Ergebnis der Bestimmung in Schritt S180 positiv ist, wird aus diesem Grund der Prozess in Schritt S190 nicht ausgeführt.For example, if the execution plan of the processing units A1 to A3 . B1 to B2 and C1 to C4 as in 3 shown by the first planning unit 10e is determined, it is assumed that the first abnormality diagnosis process CK1 in the idle time of the second core 31d is inserted according to the period during which the processing unit A1 in the first core 31c is done as it is in 6 is shown. As it is in 6 is shown in this case after the processing of the first abnormality diagnosis process CK1 the first core 31c for the execution of the processing unit A2 which plans a process for accessing the same RAM memory area as the first abnormality diagnosing process CK1 contains. For this reason, the result of the determination in step S170 positive. However, the synchronization process already occurred between the first abnormality diagnosis process CK1 and the processing unit A2 established. As the result of the determination in step S180 is positive, therefore, the process in step S190 not executed.

Wenn andererseits, wie es in 6 gezeigt ist, der dritte Abnormitätsdiagnoseprozess CK3 in die Leerlaufzeit des zweiten Kerns 31d eingefügt wird, die der Zeitdauer entspricht, während der die Verarbeitungseinheit B2 in dem ersten Kern 31c durchgeführt wird, wird die Verarbeitungseinheit B1, die die Verarbeitung zum Zugreifen auf denselben RAM-Speicherbereich enthält, für die Ausführung in dem ersten Kern 31c vor der Ausführung des dritten Abnormitätsdiagnoseprozesses CK3 geplant. Wie es in 3 gezeigt ist, wird außerdem kein Synchronisationsprozess zwischen der Verarbeitungseinheit B1 und der Verarbeitungseinheit B2 eingestellt bzw. festgelegt. Aus diesem Grund wird in Schritt S180 bestimmt, dass der Synchronisationsprozess zwischen dem dritten Abnormitätsdiagnoseprozess CK3 und der Verarbeitungseinheit B1 nicht festgelegt ist. Dementsprechend wird die Verarbeitung in Schritt S190 ausgeführt, und der Synchronisationsprozess wird zwischen der Verarbeitungseinheit B1 und dem dritten Abnormitätsdiagnoseprozess CK3 festgelegt, wie es in 6 gezeigt ist.If, on the other hand, as it is in 6 3, the third abnormality diagnosis process is shown CK3 in the idle time of the second core 31d is inserted, which corresponds to the length of time during which the processing unit B2 in the first core 31c is performed, the processing unit B1 including the processing for accessing the same RAM memory area for execution in the first core 31c before the execution of the third abnormality diagnosis process CK3 planned. As it is in 3 In addition, there is no synchronization process between the processing unit B1 and the processing unit B2 set or fixed. For this reason, in step S180 determines that the synchronization process between the third abnormality diagnosis process CK3 and the processing unit B1 is not fixed. Accordingly, the processing in step S190 executed, and the synchronization process is between the processing unit B1 and the third abnormality diagnosis process CK3 set as it is in 6 is shown.

Schließlich bestimmt die zweite Planungseinheit 10f in Schritt S200, ob die Auswahl sämtlicher RAM-Informationen (sämtlicher Symbole, die sämtlichen Variablendaten entsprechen), die in den gegebenen RAM-Informationen 19 enthalten sind, beendet wurde. Wenn bestimmt wird, dass die Auswahl sämtlicher RAM-Informationen noch nicht beendet wurde, kehrt der Prozess zur Verarbeitung in Schritt S100 zurück, und es wird ein RAM-Informationsteil aus den RAM-Informationsteilen ausgewählt, das noch nicht ausgewählt wurde. Dann wird die Verarbeitung in den Schritten S110 bis S200, die oben beschrieben wurde, wiederholt.Finally, the second planning unit determines 10f in step S200 whether the selection of all RAM information (all symbols corresponding to all variable data) in the given RAM information 19 contained, was terminated. If it is determined that the selection of all the RAM information has not yet been completed, the process returns to the processing in step S100 and a RAM information item is selected from the RAM pieces of information that has not yet been selected. Then the processing is in the steps S110 to S200 repeated as described above.

Im Folgenden wird die Konfiguration der fahrzeugeigenen Vorrichtung 30 beschrieben. Wie es in 7 gezeigt ist, enthält die fahrzeugeigene Vorrichtung 30 einen Multikernmikrocomputer 31, eine Kommunikationseinheit 32, eine Sensoreinheit 33 und einen Eingangs-Ausgangs-Port 34. Der Multikernmikrocomputer 31 enthält einen ROM 31a, einen RAM 31b, einen ersten Kern 31c und einen zweiten Kern 31d. Die fahrzeugeigene Vorrichtung 30 kann beispielsweise für eine Verbrennungsmotorsteuerungsvorrichtung oder eine Hybridsteuerungsvorrichtung verwendet werden, die an einem Kraftfahrzeug montiert ist. Im Folgenden wird ein Beispiel beschrieben, bei dem die fahrzeugeigene Vorrichtung 30 für eine Verbrennungsmotorsteuerungsvorrichtung verwendet wird.The following is the configuration of the on-vehicle device 30 described. As it is in 7 shown contains the on-board device 30 a multi-core microcomputer 31 , a communication unit 32 , a sensor unit 33 and an input-output port 34 , The multi-core microcomputer 31 contains a ROM 31a , a ram 31b , a first core 31c and a second core 31d , The on-board device 30 For example, it may be used for an engine control device or a hybrid control device mounted on a motor vehicle. The following describes an example in which the on-vehicle device 30 is used for an engine control device.

Der erste Kern 31c und der zweite Kern 31d führen ein paralleles Programm 31a1' aus, das in dem ROM 31a gespeichert ist, um beispielsweise eine Verbrennungsmotorsteuerung durchzuführen. Genauer gesagt steuern der erste Kern 31c und der zweite Kern 31d eine Kraftstoffeinspritzmenge, einen Zündzeitpunkt, eine Ansaugluftmenge und Ähnliches durch Ansteuern der jeweiligen Aktuatoren als Steuerungszielvorrichtungen. Der ROM 31a speichert außerdem Konstantendaten und Ähnliches, die in der Verbrennungsmotorsteuerung verwendet werden. Der RAM 31b speichert zeitweilig Variablendaten und Ähnliches, und es wird auf diesen nach Bedarf zugegriffen, wenn der Multikernmikrocomputer 31 das parallele Programm 31a1' ausführt. Die Kommunikationseinheit 32 kommuniziert mit einer anderen ECU, die über ein fahrzeugeigenes LAN oder Ähnlichem verbunden ist. Die Sensoreinheit 33 enthält verschiedene Sensoren zum Erfassen eines Zustands des Verbrennungsmotors. Der Eingangs-Ausgangs-Port 34 überträgt und empfängt verschiedene Signale zum Steuern des Verbrennungsmotors.The first core 31c and the second core 31d run a parallel program 31a1 'in the ROM 31a is stored to perform, for example, an engine control. More specifically, control the first core 31c and the second core 31d a fuel injection amount, an ignition timing, an intake air amount and the like by driving the respective actuators as control target devices. The ROM 31a also stores constant data and the like used in the engine control. The RAM 31b temporarily stores variable data and the like, and it is accessed as needed when the multi-core microcomputer 31 the parallel program 31a1 'executes. The communication unit 32 communicates with another ECU connected via an in-vehicle LAN or the like. The sensor unit 33 contains various sensors for detecting a state of the internal combustion engine. The input-output port 34 transmits and receives various signals for controlling the internal combustion engine.

Das parallele Programm 31a1', das von dem Multikernmikrocomputer 31 der fahrzeugeigenen Vorrichtung 30 ausgeführt wird, enthält den Abnormitätsdiagnoseprozess der Hardware des Multikernmikrocomputers 31, wie es oben beschrieben wurde. Aus diesem Grund kann der Multikernmikrocomputer 31 mit der Ausführung des parallelen Programms 31a1' diagnostizieren, ob die Hardware des Multikernmikrocomputers 31 normal betrieben wird. Als Ergebnis kann der Multikernmikrocomputer 31 überwachen, ob der Verarbeitungsbetrieb, der die Hardware des Multikernmikrocomputers 31 verwendet, normal durchgeführt wird. Wenn eine RAM-Abnormität durch den Neuschreibüberprüfungsprozess als Abnormitätsdiagnoseprozess erfasst wird, kann der Multikernmikrocomputer 31 die Verwendung des RAM-Speicherbereiches, in dem die Abnormität erfasst wird, verhindern oder kann die Abnormitätsverarbeitung wie beispielsweise ein Zurücksetzen des Multikernmikrocomputers 31 oder die Ausfallsicherungsverarbeitung wie beispielsweise eine Kraftstoffunterbrechung ausführen. The parallel program 31a1 'from the multi-core microcomputer 31 the on-board device 30 is executed contains the abnormality diagnosis process of the hardware of the multi-core microcomputer 31 as described above. For this reason, the multi-core microcomputer 31 with the execution of the parallel program 31a1 'Diagnose if the hardware of the multi-core microcomputer 31 is operated normally. As a result, the multi-core microcomputer 31 monitor whether the processing plant, the hardware of the multi-core microcomputer 31 used, performed normally. When a RAM abnormality is detected by the rewrite verification process as the abnormality diagnosis process, the multi-core microcomputer can 31 the use of the RAM memory area in which the abnormality is detected can prevent or prevent the abnormality processing such as resetting the multi-core microcomputer 31 or perform the fail-safe processing such as a fuel cut.

In dem Abnormitätsdiagnoseprozess wird der Ausführungsplan derart bestimmt, dass der Abnormitätsdiagnoseprozess in der Leerlaufzeit in dem parallelen Programm 31a1' unter der Bedingung ausgeführt wird, dass die Hardware, die von der Verarbeitungseinheit verwendet wird, die parallel zu der Leerlaufzeit ausgeführt wird, sich nicht mit der Hardware überdeckt, die in dem Abnormitätsdiagnoseprozess in dem anderen Kern als dem Kern zu diagnostizieren ist, der als die Leerlaufzeit dient, in der die Verarbeitungseinheit nicht ausgeführt wird. Aus diesem Grund kann der Multikernmikrocomputer 31 mit der Ausführung des parallelen Programms 31a1' den Abnormitätsdiagnoseprozess der Hardware ausführen, ohne die Ausführung der Einheitsverarbeitung, die die Hardware verwendet, zu beeinflussen.In the abnormality diagnosis process, the execution plan is determined such that the abnormality diagnosis process in the idle time in the parallel program 31a1 is executed under the condition that the hardware used by the processing unit that is executed in parallel with the idle time does not overlap with the hardware to be diagnosed in the abnormality diagnosing process in the core other than the core, which is referred to as the idle time is used in which the processing unit is not executed. For this reason, the multi-core microcomputer 31 with the execution of the parallel program 31a1 ' perform the abnormality diagnosis process of the hardware without affecting the execution of the unit processing using the hardware.

In einem Fall, in dem in mindestens einer Zeitdauer vor und nach der Ausführung des Abnormitätsdiagnoseprozesses in anderen Kernen als einem Kern, der den Abnormitätsdiagnoseprozess ausführt, eine Einheitsverarbeitung, die Hardware verwendet, die in dem Abnormitätsdiagnoseprozess zu diagnostizieren ist, für die Ausführung geplant ist, enthält das von dem Multikernmikrocomputer 31 auszuführende parallele Programm 31a1' einen Synchronisationsprozess zum Starten einer Ausführung des Abnormitätsdiagnoseprozesses, nachdem die Einheitsverarbeitung, die die Hardware verwendet, beendet ist, und/oder einen Synchronisationsprozess zum Starten einer Ausführung der Einheitsverarbeitung, die die Hardware verwendet, nachdem der Abnormitätsdiagnoseprozess beendet ist. Wenn der Multikernmikrocomputer 31 das parallele Programm 31a1' ausführt, kann aus diesem Grund verhindert werden, dass sich die Ausführungszeit des Abnormitätsdiagnoseprozesses mit der Ausführungszeit der Einheitsverarbeitung überdeckt, die die Hardware verwendet, die durch den Abnormitätsdiagnoseprozess zu diagnostizieren ist.In a case where a unit processing using hardware to be diagnosed in the abnormality diagnosis process is scheduled to be executed for at least a period of time before and after execution of the abnormality diagnosis process in cores other than a core executing the abnormality diagnosis process, contains that from the multi-core microcomputer 31 to be executed parallel program 31a1 ' a synchronization process for starting execution of the abnormality diagnosis process after the unit processing using the hardware is completed, and / or a synchronization process for starting execution of the unit processing using the hardware after the abnormality diagnosis process is ended. If the multi-core microcomputer 31 the parallel program 31a1 ' For this reason, the execution time of the abnormality diagnosis process can be prevented from overlapping with the execution time of the unit processing using the hardware to be diagnosed by the abnormality diagnosis process.

Oben wurde eine bevorzugte Ausführungsform der vorliegenden Erfindung beschrieben. Die vorliegende Erfindung ist jedoch nicht auf die obigen Ausführungsformen beschränkt, sondern es sind verschiedene Modifikationen möglich, ohne von dem Bereich der Erfindung abzuweichen.Above, a preferred embodiment of the present invention has been described. However, the present invention is not limited to the above embodiments, but various modifications are possible without departing from the scope of the invention.

(Modifikation 1)(Modification 1)

In der oben beschriebenen Ausführungsform wurde beispielsweise ein Beispiel beschrieben, bei dem der Neuschreibüberprüfungsprozess des RAM 31b als Abnormitätsdiagnoseprozess ausgeführt wird. Der Abnormitätsdiagnoseprozess kann jedoch ein Prozess zum Diagnostizieren einer Abnormität einer Hardware des Multikernmikrocomputers 31 sein, die nicht der RAM 31b ist. In dem Abnormitätsdiagnoseprozess kann beispielsweise ein beschreibbarer Flash-ROM als Diagnoseziel verwendet werden. Außerdem kann der Abnormitätsdiagnoseprozess ein Prozess zum Überprüfen sein, ob eine Zählerschaltung oder ein A/D-Wandler, der in den Multikernmikrocomputer 31 eingebaut ist, als Diagnoseziel normal betrieben wird.For example, in the embodiment described above, an example was described in which the rewrite checking process of the RAM 31b is performed as an abnormality diagnosing process. However, the abnormality diagnosing process may be a process of diagnosing abnormality of a hardware of the multi-core microcomputer 31 its not the ram 31b is. In the abnormality diagnosing process, for example, a writable flash ROM may be used as a diagnosis target. In addition, the abnormality diagnosing process may be a process of checking whether a counter circuit or an A / D converter operating in the multi-core microcomputer 31 is installed, is operated as a diagnostic target normal.

Man beachte, dass ein Flussdiagramm oder die Verarbeitung des Flussdiagramms der vorliegenden Anmeldung Abschnitte (auch als Schritte bezeichnet) enthält, die jeweils beispielsweise mit S100 angegeben sind. Außerdem kann jeder Abschnitt in mehrere Unterabschnitte unterteilt werden, während mehrere Abschnitte in einen einzelnen Abschnitt kombiniert werden können. Außerdem kann jeder derartig konfigurierte Abschnitt auch als Vorrichtung, Modul oder Einrichtung bezeichnet werden.Note that a flowchart or the processing of the flowchart of the present application includes sections (also referred to as steps) each indicated by S100, for example. In addition, each section can be divided into several subsections, while multiple sections can be combined into a single section. In addition, any portion so configured may also be referred to as a device, module, or device.

Während die vorliegende Erfindung mit Bezug auf ihre Ausführungsformen beschrieben wurde, ist es selbstverständlich, dass die Erfindung nicht auf die Ausführungsformen und Konstruktionen beschränkt ist. Die vorliegende Erfindung deckt verschiedene Modifikationen und äquivalente Anordnungen ab. Zusätzlich zu den verschiedenen Kombinationen und Konfigurationen sind andere Konfigurationen und Kombinationen einschließlich mehr, weniger oder einem einzelnen Element ebenfalls innerhalb des Bereiches der vorliegenden Erfindung möglich.While the present invention has been described with respect to embodiments thereof, it is to be understood that the invention is not limited to the embodiments and constructions. The present invention covers various modifications and equivalent arrangements. In addition to the various combinations and configurations, other configurations and combinations including more, less or a single element are also possible within the scope of the present invention.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • JP 201501807 A [0026, 0030]JP 201501807A [0026, 0030]

Claims (16)

Parallelisierungsverfahren zum Erzeugen eines parallelen Programms (31a1) für einen Multikernmikrocomputer (31), der mehrere Kerne (31c, 31d) aufweist, aus einem einzelnen Programm für einen Einzelkernmikrocomputer, wobei das Verfahren aufweist: eine erste Planungsprozedur (10a bis 10e) zum Analysieren einer Abhängigkeit von mehreren Verarbeitungseinheiten (A1 bis A3, B1 bis B2, C1 bis C4), die in dem einzelnen Programm enthalten sind, zum Zuordnen der Verarbeitungseinheiten zu den Kernen auf der Grundlage einer analysierten Abhängigkeit der Verarbeitungseinheiten und zum Bestimmen eines ersten Ausführungsplans der Verarbeitungseinheiten; und eine zweite Planungsprozedur (10f) zum Bestimmen eines zweiten Ausführungsplans eines Abnormitätsdiagnoseprozesses zum Ausführen des Abnormitätsdiagnoseprozesses einer Hardware des Multikernmikrocomputers in einer Leerlaufzeit von einem der Kerne, in der keine Verarbeitungseinheit ausgeführt wird, auf der Grundlage des ersten Ausführungsplans der Verarbeitungseinheiten in den Kernen, der von der ersten Planungsprozedur bestimmt wird, wobei das parallele Programm zum Ausführen der Verarbeitungseinheiten und des Abnormitätsdiagnoseprozesses in den Kernen entsprechend den ersten und zweiten Ausführungsplänen erzeugt wird, die durch die jeweiligen ersten und zweiten Planungsprozeduren bestimmt werden; und der zweite Ausführungsplan des Abnormitätsdiagnoseprozesses in der zweiten Planungsprozedur derart bestimmt wird, dass der Abnormitätsdiagnoseprozess in der Leerlaufzeit unter der Bedingung ausgeführt wird, dass eine andere Hardware, die von einer Verarbeitungseinheit , die parallel zu der Leerlaufzeit ausgeführt wird, in einem anderen der Kerne als der eine der Kerne in der Leerlaufzeit, in der keine Verarbeitungseinheit ausgeführt wird, verwendet wird, sich nicht mit der Hardware als Diagnoseobjekt in dem Abnorm itätsdiagnoseprozess überdeckt.A parallelization method for generating a parallel program (31a1) for a multi-core microcomputer (31) having a plurality of cores (31c, 31d) from a single program for a single-core microcomputer, the method comprising: a first scheduling procedure (10a to 10e) for analyzing a dependency of a plurality of processing units (A1 to A3, B1 to B2, C1 to C4) included in the single program for allocating the processing units to the cores on the basis of an analyzed dependency the processing units and for determining a first execution plan of the processing units; and a second scheduling procedure (10f) for determining a second execution plan of an abnormality diagnosing process for executing the abnormality diagnosis process of a hardware of the multi-core microcomputer at an idle time of one of the cores in which no processing unit is executed on the basis of the first execution plan of the processing units in the cores the first planning procedure is determined, where generating the parallel program for executing the processing units and the abnormality diagnosis process in the cores according to the first and second execution schedules determined by the respective first and second scheduling procedures; and the second execution plan of the abnormality diagnosis process is determined in the second scheduling procedure such that the abnormality diagnosis process in the idle time is executed under the condition that another hardware executed by one processing unit that is executed in parallel with the idle time is in one of the cores other than the one one of the cores in the idle time in which no processing unit is executed is not covered with the hardware as a diagnostic object in the abnormality diagnosis process. Parallelisierungsverfahren nach Anspruch 1, wobei der zweite Ausführungsplan des Abnormitätsdiagnoseprozesses in der zweiten Planungsprozedur derart bestimmt wird, dass der Abnormitätsdiagnoseprozess in der Leerlaufzeit unter der Bedingung ausgeführt wird, dass eine Zeit, die zur Ausführung des Abnormitätsdiagnoseprozesses benötigt wird, kürzer als die Leerlaufzeit ist.Parallelization method according to Claim 1 wherein the second execution plan of the abnormality diagnosis process in the second scheduling procedure is determined such that the abnormality diagnosis process is performed in the idle time under the condition that a time required for executing the abnormality diagnosis process is shorter than the idle time. Parallelisierungsverfahren nach Anspruch 1 oder 2, wobei in einem Fall, in dem während mindestens einer aus einer Zeitdauer vor und einer Zeitdauer nach der Ausführung des Abnormitätsdiagnoseprozesses in einem anderen der Kerne als dem einen der Kerne, der den Abnorm itätsdiagnoseprozess ausführt, eine Verarbeitungseinheit, die die Hardware als Diagnoseobjekt in dem Abnormitätsdiagnoseprozess verwendet, für die Ausführung geplant ist, die zweite Planungsprozedur außerdem enthält: Hinzufügen mindestens eines aus einem Synchronisationsprozess zum Starten der Ausführung des Abnormitätsdiagnoseprozesses nach Beendigung der Verarbeitungseinheit, die die Hardware verwendet, und einem Synchronisationsprozess zum Starten der Ausführung der Verarbeitungseinheit, die die Hardware verwendet, nach Beendigung des Abnormitätsdiagnoseprozesses.Parallelization method according to Claim 1 or 2 wherein, in a case where, during at least one of a period before and a time after execution of the abnormality diagnosis process in another of the cores than the one of the cores executing the abnormality diagnosis process, a processing unit that detects the hardware as a diagnosis object in the The second scheduling procedure also includes: adding at least one of a synchronization process for starting execution of the abnormality diagnosis process after termination of the processing unit that uses the hardware and a synchronization process for starting the execution of the processing unit that processes the hardware used after completing the abnormality diagnostic process. Parallelisierungsverfahren nach einem der Ansprüche 1 bis 3, wobei die Hardware als das Diagnoseobjekt in dem Abnormitätsdiagnoseprozess ein wiederbeschreibbarer Speicher (31b) des Multikernmikrocomputers ist; und der Abnormitätsdiagnoseprozess ein Neuschreibüberprüfungsprozess zum Überprüfen ist, ob Daten normal in den wiederbeschreibbaren Speicher geschrieben werden können.Parallelization method according to one of Claims 1 to 3 wherein the hardware as the diagnostic object in the abnormality diagnosis process is a rewritable memory (31b) of the multi-core microcomputer; and the abnormality diagnosing process is a rewrite checking process for checking whether data can be normally written in the rewritable memory. Parallelisierungsverfahren nach Anspruch 4, wobei der Neuschreibüberprüfungsprozess überprüft, ob ein Speicherbereich, der zum Speichern von Daten verwendet wird, die durch das einzelne Programm definiert werden, individuell wiederbeschreibbar ist.Parallelization method according to Claim 4 wherein the rewrite checking process checks whether a memory area used for storing data defined by the single program is individually rewritable. Parallelisierungswerkzeug zum Erzeugen eines parallelen Programms (31a1) für einen Multikernmikrocomputer (31), der mehrere Kerne (31 c, 31d) aufweist, aus einem einzelnen Programm für einen Einzelkernmikrocomputer, wobei das Parallelisierungswerkzeug aufweist: eine erste Planungseinheit (10a bis 10e) zum Analysieren einer Abhängigkeit von mehreren Verarbeitungseinheiten (A1 bis A3, B1 bis B2, C1 bis C4), die in dem einzelnen Programm enthalten sind, zum Zuordnen der Verarbeitungseinheiten zu den Kernen auf der Grundlage einer analysierten Abhängigkeit der Verarbeitungseinheiten, und zum Bestimmen eines ersten Ausführungsplans der Verarbeitungseinheiten; und eine zweite Planungseinheit (10f) zum Bestimmen eines zweiten Ausführungsplans eines Abnormitätsdiagnoseprozesses zum Ausführen des Abnormitätsdiagnoseprozesses einer Hardware des Multikernmikrocomputers in einer Leerlaufzeit von einem der Kerne, in dem keine Verarbeitungseinheit ausgeführt wird, auf der Grundlage des ersten Ausführungsplans der Verarbeitungseinheiten in den Kernen, der von der ersten Planungseinheit bestimmt wird, wobei das parallele Programm zum Ausführen der Verarbeitungseinheiten und des Abnormitätsdiagnoseprozesses in den Kernen entsprechend den ersten und zweiten Ausführungsplänen erzeugt wird, die von den jeweiligen ersten und zweiten Planungseinheiten bestimmt werden; und die zweite Planungseinheit den zweiten Ausführungsplan des Abnormitätsdiagnoseprozesses zum Ausführen des Abnormitätsdiagnoseprozesses in der Leerlaufzeit unter der Bedingung bestimmt, dass sich eine andere Hardware, die von einer Verarbeitungseinheit verwendet wird, die parallel zu der Leerlaufzeit ausgeführt wird, in einem anderen der Kerne als der eine der Kerne in der Leerlaufzeit, in der keine Verarbeitungseinheit ausgeführt wird, nicht mit der Hardware als Diagnoseobjekt in dem Abnormitätsdiagnoseprozess überdeckt.A parallelization tool for generating a parallel program (31a1) for a multi-core microcomputer (31) having a plurality of cores (31c, 31d) from a single program for a single-core microcomputer, said parallelization tool comprising: a first planning unit (10a-10e) for analyzing a dependency of a plurality of processing units (A1 to A3, B1 to B2, C1 to C4) included in the single program for allocating the processing units to the cores on the basis of an analyzed dependency of the processing units, and for determining a first execution plan processing units; and a second scheduling unit (10f) for determining a second execution schedule of an abnormality diagnosis process for executing the abnormality diagnosis process of a hardware of the multi-core microcomputer at an idle time of one of the cores in which no processing unit is executed on the basis of the first execution plan of the processing units in the cores is determined by the first scheduling unit, wherein the parallel program for executing the processing units and the abnormality diagnosis process is generated in the cores according to the first and second execution schedules determined by the respective first and second scheduling units; and the second scheduling unit determines the second execution plan of the abnormality diagnosis process for executing the abnormality diagnosis process in the idle time under the condition that another hardware used by one processing unit that is executed in parallel with the idle time is in one of the cores other than the one of the cores Cores in the idle time, in which no processing unit is executed, not covered with the hardware as a diagnostic object in the abnormality diagnosis process. Parallelisierungswerkzeug nach Anspruch 6, wobei die zweite Planungseinheit den zweiten Ausführungsplan des Abnormitätsdiagnoseprozesses zum Ausführen des Abnormitätsdiagnoseprozesses in der Leerlaufzeit unter der Bedingung bestimmt, dass eine Zeit, die zur Ausführung des Abnormitätsdiagnoseprozesses benötigt wird, kürzer als die Leerlaufzeit ist.Parallelization tool after Claim 6 wherein the second scheduling unit determines the second execution plan of the abnormality diagnosis process for executing the abnormality diagnosis process in the idle time under the condition that a time required for executing the abnormality diagnosis process is shorter than the idle time. Parallelisierungswerkzeug nach Anspruch 6 oder 7, wobei in einem Fall, in dem mindestens eine aus einer Zeitdauer vor und einer Zeitdauer nach der Ausführung des Abnormitätsdiagnoseprozesses in einem anderen der Kerne als dem einen der Kerne, der den Abnorm itätsdiagnoseprozess ausführt, eine Verarbeitungseinheit, die die Hardware als das Diagnoseobjekt in dem Abnormitätsdiagnoseprozess verwendet, für die Ausführung geplant ist, die zweite Planungseinheit mindestens einen aus einem Synchronisationsprozess zum Starten der Ausführung des Abnormitätsdiagnoseprozesses nach Beendigung der Verarbeitungseinheit, die die Hardware verwendet, und einem Synchronisationsprozess zum Starten der Ausführung der Verarbeitungseinheit, die die Hardware verwendet, nach der Beendigung des Abnormitätsdiagnoseprozesses hinzufügt.Parallelization tool after Claim 6 or 7 wherein, in a case where at least one of a time period before and a time after execution of the abnormality diagnosis process in another of the cores than the one of the cores executing the abnormality diagnosis process, a processing unit that uses the hardware as the diagnosis object in the The second planning unit uses at least one of a synchronization process for starting the execution of the abnormality diagnosis process after completion of the processing unit that uses the hardware and a synchronization process for starting the execution of the processing unit that uses the hardware after the abnormality diagnosis process scheduled to execute Terminate the abnormality diagnostic process. Parallelisierungswerkzeug nach einem der Ansprüche 6 bis 8, wobei die Hardware als das Diagnoseobjekt in dem Abnormitätsdiagnoseprozess ein wiederbeschreibbarer Speicher (31b) des Multikernmikrocomputers ist; und der Abnormitätsdiagnoseprozess ein Neuschreibüberprüfungsprozess zum Überprüfen ist, ob Daten normal in den wiederbeschreibbaren Speicher geschrieben werden können.Parallelization tool according to one of Claims 6 to 8th wherein the hardware as the diagnostic object in the abnormality diagnosis process is a rewritable memory (31b) of the multi-core microcomputer; and the abnormality diagnosing process is a rewrite checking process for checking whether data can be normally written in the rewritable memory. Parallelisierungswerkzeug nach Anspruch 9, wobei der Neuschreibüberprüfungsprozess überprüft, ob ein Speicherbereich, der zum Speichern von Daten verwendet wird, die durch das einzelne Programm definiert werden, individuell wiederbeschreibbar ist.Parallelization tool after Claim 9 wherein the rewrite checking process checks whether a memory area used for storing data defined by the single program is individually rewritable. Multikernmikrocomputer zum Ausführen eines parallelen Programms (31a1) für einen Multikernmikrocomputer (31), der mehrere Kerne (31c, 31d) aufweist, aus einem einzelnen Programm für einen Einzelkernmikrocomputer, der einen Kern aufweist, wobei das parallele Programm mehrere Verarbeitungseinheiten (A1 bis A3, B1 bis B2, C1 bis C4), die in dem einzelnen Programm enthalten sind, und einen Abnormitätsdiagnoseprozess einer Hardware des Multikernmikrocomputers enthält; die Verarbeitungseinheiten den Kernen zugeordnet werden; ein erster Ausführungsplan der Verarbeitungseinheiten auf der Grundlage einer Abhängigkeit der Verarbeitungseinheiten bestimmt wird; ein zweiter Ausführungsplan auf der Grundlage des ersten Ausführungsplans der Verarbeitungseinheiten in den Kernen derart bestimmt wird, dass der Abnormitätsdiagnoseprozess in einer Leerlaufzeit von einem der Kerne, in dem keine Verarbeitungseinheit ausgeführt wird, ausgeführt wird; und der zweite Ausführungsplan derart bestimmt wird, dass der Abnormitätsdiagnoseprozess in der Leerlaufzeit unter der Bedingung ausgeführt wird, dass sich eine andere Hardware, die von einer Verarbeitungseinheit verwendet wird, die parallel zu der Leerlaufzeit ausgeführt wird, in einem anderen der Kerne als dem einen der Kerne, in dem keine Verarbeitungseinheit ausgeführt wird, nicht mit der Hardware als einem Diagnoseobjekt in dem Abnormitätsdiagnoseprozess überdeckt.A multi-core microcomputer for executing a parallel program (31a1) for a multi-core microcomputer (31) having a plurality of cores (31c, 31d) from a single program for a single-core microcomputer having a core, wherein the parallel program includes a plurality of processing units (A1 to A3, B1 to B2, C1 to C4) included in the single program and an abnormality diagnosing process of a hardware of the multi-core microcomputer; the processing units are assigned to the cores; determining a first execution plan of the processing units based on a dependency of the processing units; determining a second execution plan based on the first execution plan of the processing units in the cores such that the abnormality diagnosis process is executed in an idle time of one of the cores in which no processing unit is executed; and the second execution plan is determined such that the abnormality diagnosis process in the idle time is executed under the condition that another hardware used by one processing unit that is executed in parallel with the idle time is in one of the cores other than the one of the cores in which no processing unit is executed, is not covered with the hardware as a diagnostic object in the abnormality diagnosis process. Multikernmikrocomputer nach Anspruch 11, wobei der Multikernmikrocomputer für eine fahrzeugeigene Vorrichtung (30) zum Steuern einer fahrzeugeigenen Einrichtung, die in einem Fahrzeug montiert ist, verwendet wird; und die fahrzeugeigene Einrichtung durch Ausführen des parallelen Programms gesteuert wird.Multicore microcomputer after Claim 11 wherein the multi-core microcomputer is used for an on-vehicle device (30) for controlling an on-vehicle device mounted in a vehicle; and the on-vehicle device is controlled by executing the parallel program. Multikernmikrocomputer nach Anspruch 11 oder 12, wobei der zweite Ausführungsplan des Abnormitätsdiagnoseprozesses derart bestimmt wird, dass der Abnormitätsdiagnoseprozess in der Leerlaufzeit unter der Bedingung ausgeführt wird, dass eine Zeit, die zur Ausführung des Abnormitätsdiagnoseprozesses benötigt wird, kürzer als die Leerlaufzeit ist.Multicore microcomputer after Claim 11 or 12 wherein the second execution plan of the abnormality diagnosis process is determined such that the abnormality diagnosis process in the idle time is performed under the condition that a time required for executing the abnormality diagnosis process is shorter than the idle time. Multikernmikrocomputer nach einem der Ansprüche 11 bis 13, wobei in einem Fall, in dem mindestens eine aus einer Zeitdauer vor und einer Zeitdauer nach der Ausführung des Abnormitätsdiagnoseprozesses eine Verarbeitungseinheit in einem anderen der Kerne als dem Kern, der den Abnormitätsdiagnoseprozess ausführt, die die Hardware als das Diagnoseobjekt in dem Abnormitätsdiagnoseprozess verwendet, für die Ausführung geplant ist, das parallele Programm mindestens eines aus einem Synchronisationsprozess zum Starten der Ausführung des Abnormitätsdiagnoseprozesses nach Beendigung der Verarbeitungseinheit, die die Hardware verwendet, und einem Synchronisationsprozess zum Starten der Ausführung der Verarbeitungseinheit, die die Hardware verwendet, nach Beendigung des Abnormitätsdiagnoseprozesses enthält; und der Multikernmikrocomputer den Synchronisationsprozess ausführt, um zu verhindern, dass sich eine Ausführungszeitdauer des Abnormitätsdiagnoseprozesses mit einer Ausführungszeitdauer der Verarbeitungseinheit überdeckt, die die Hardware als das Diagnoseobjekt in dem Abnormitätsdiagnoseprozess verwendet.Multicore microcomputer after one of the Claims 11 to 13 wherein, in a case where at least one of a period before and a time after execution of the abnormality diagnosis process, a processing unit in another of the cores than the core executing the abnormality diagnosis process that uses the hardware as the diagnosis object in the abnormality diagnosis process the execution is scheduled, the parallel program of at least one of a synchronization process for starting the execution of the abnormality diagnosis process after completion of the A processing unit using the hardware and a synchronization process for starting the execution of the processing unit using the hardware after completing the abnormality diagnosis process; and the multi-core microcomputer executes the synchronization process to prevent an execution period of the abnormality diagnosis process from overlapping with an execution period of the processing unit that uses the hardware as the diagnosis object in the abnormality diagnosis process. Multikernmikrocomputer nach einem der Ansprüche 11 bis 14, wobei die Hardware als das Diagnoseobjekt in dem Abnormitätsdiagnoseprozess ein wiederbeschreibbarer Speicher (31b) des Multikernmikrocomputers ist; und der Abnormitätsdiagnoseprozess ein Neuschreibüberprüfungsprozess zum Überprüfen ist, ob Daten normal in den wiederbeschreibbaren Speicher geschrieben werden können.Multicore microcomputer after one of the Claims 11 to 14 wherein the hardware as the diagnostic object in the abnormality diagnosis process is a rewritable memory (31b) of the multi-core microcomputer; and the abnormality diagnosing process is a rewrite checking process for checking whether data can be normally written in the rewritable memory. Multikernmikrocomputer nach Anspruch 15, wobei der Neuschreibüberprüfungsprozess überprüft, ob ein Speicherbereich, der zum Speichern von Daten verwendet wird, die durch das einzelne Programm definiert werden, individuell wiederbeschreibbar ist.Multicore microcomputer after Claim 15 wherein the rewrite checking process checks whether a memory area used for storing data defined by the single program is individually rewritable.
DE102019202870.5A 2018-03-14 2019-03-04 Parallelization method, parallelization tool and multi-core microcomputer Pending DE102019202870A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018047058A JP7139633B2 (en) 2018-03-14 2018-03-14 Parallelization method, parallelization tool, and multicore microcomputer
JP2018-047058 2018-03-14

Publications (1)

Publication Number Publication Date
DE102019202870A1 true DE102019202870A1 (en) 2019-09-19

Family

ID=67774725

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019202870.5A Pending DE102019202870A1 (en) 2018-03-14 2019-03-04 Parallelization method, parallelization tool and multi-core microcomputer

Country Status (2)

Country Link
JP (1) JP7139633B2 (en)
DE (1) DE102019202870A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015001807A (en) 2013-06-14 2015-01-05 株式会社デンソー Parallelization compilation method, parallelization compiler, parallelization compilation device, and on-vehicle device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6427053B2 (en) 2015-03-31 2018-11-21 株式会社デンソー Parallelizing compilation method and parallelizing compiler
JP2017102633A (en) 2015-12-01 2017-06-08 ルネサスエレクトロニクス株式会社 Information processing device and semiconductor integrated circuit device
JP2017107448A (en) 2015-12-10 2017-06-15 株式会社デンソー Parallelization method, parallelization tool, and on-vehicle device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015001807A (en) 2013-06-14 2015-01-05 株式会社デンソー Parallelization compilation method, parallelization compiler, parallelization compilation device, and on-vehicle device

Also Published As

Publication number Publication date
JP7139633B2 (en) 2022-09-21
JP2019159931A (en) 2019-09-19

Similar Documents

Publication Publication Date Title
DE102018003142A1 (en) Automatic setting of multitasking configurations for a code checking system
DE69620057T2 (en) optimizer
DE69128571T2 (en) Modular expert system and method for modularizing a set of rules of an expert system
DE102010028259A1 (en) A microcontroller having a computing unit and a logic circuit and method for performing calculations by a microcontroller for control or in-vehicle control
DE102016223939A1 (en) Parallelization method, parallelization tool and on-board device
DE102012009482A1 (en) A functionally expandable vehicle control device and method for supplementing the functionality of a vehicle control device
DE102017210126A1 (en) Parallelization method, parallelization tool and in-vehicle device
DE102012209789B4 (en) ON-VEHICLE ELECTRICAL CONTROL DEVICE
DE112010004037T5 (en) Simulation method, system and program
DE102010003122A1 (en) Control device and control method for performing an operation control of actuators
DE112018002316T5 (en) CODE COVERAGE TRACKING FOR A MICROCONTROLLER PROGRAM
DE10256990A1 (en) Program code generator and program
AT522625B1 (en) Procedure for security screening of a technical unit
DE102019202870A1 (en) Parallelization method, parallelization tool and multi-core microcomputer
DE102010039021A1 (en) Method for reconfiguring software parameters in a microcontroller and microcontroller and controller
DE102016204970A1 (en) Parallelization compilation method, parallelization complicator and vehicle device
DE102016220340A1 (en) PARALLELIZATION METHOD, PARALLELIZATION TOOL AND VEHICLE-BUILDER DEVICE
DE102012210482A1 (en) Method and system for migrating business process instances
DE102019202228A1 (en) Parallelization method, parallelization tool, multi-core microcomputer and in-vehicle device
DE102016219449A1 (en) Parallelization method, parallelization tool and vehicle-mounted device
DE102020111051A1 (en) ARRANGEMENT, SOFTWARE PROGRAM AND COMPUTER-IMPLEMENTED METHOD FOR EXECUTING A RELOADABLE PROGRAM ON AN EMBEDDED SYSTEM OF A VEHICLE
DE102019219730A1 (en) Method and device for model-based analysis
WO2008064616A1 (en) Method and diagnostic system for the diagnosis of a technical system
EP4055472B1 (en) Method for data migration for a pointer element in the course of a data migration for a program state of a control program of an automation system
DE102019207629A1 (en) Multi-core microcomputers and parallelization processes

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence