DE102019202228A1 - Parallelization method, parallelization tool, multi-core microcomputer and in-vehicle device - Google Patents

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

Info

Publication number
DE102019202228A1
DE102019202228A1 DE102019202228.6A DE102019202228A DE102019202228A1 DE 102019202228 A1 DE102019202228 A1 DE 102019202228A1 DE 102019202228 A DE102019202228 A DE 102019202228A DE 102019202228 A1 DE102019202228 A1 DE 102019202228A1
Authority
DE
Germany
Prior art keywords
processing units
core
access
program
order information
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
DE102019202228.6A
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
Priority claimed from JP2018171800A external-priority patent/JP7095513B2/en
Application filed by Denso Corp filed Critical Denso Corp
Publication of DE102019202228A1 publication Critical patent/DE102019202228A1/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/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • 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/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • 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/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • 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
    • 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

Abstract

Ein Parallelisierungsverfahren zum Erzeugen eines parallelen Programms für einen Mehrkernmikrocomputer (21) aus einem Einzelprogramm für einen Einzelkernmikrocomputer ist vorgesehen. Das Parallelisierungsverfahren beinhaltet: einen Erzeugungsschritt für ein paralleles Programm, der eine Abhängigkeitsbeziehung zwischen mehreren Verarbeitungseinheiten (MT1 bis MT8) analysiert, die in dem Einzelprogramm beinhaltet sind, Zuteilen der mehreren Verarbeitungseinheiten den mehreren Kernen und eine Ausführungsreihenfolge basierend auf der Abhängigkeitsbeziehung bestimmt und das parallele Programm erzeugt, das die mehreren Verarbeitungseinheiten veranlasst, gemäß der Zuteilung den mehreren Kernen und der Ausführungsreihenfolge ausgeführt zu werden; und einen Ausführungsreihenfolgeinformationserzeugungsschritt, der Zugriffsreihenfolgeinformationen beim Ausführen einer Programmoperation durch den Mehrkernmikrocomputer gemäß der Ausführungsreihenfolge der mehreren Verarbeitungseinheiten erzeugt.

Figure DE102019202228A1_0000
A parallelization method for generating a parallel program for a multi-core microcomputer (21) from a single program for a single-core microcomputer is provided. The parallelization method includes: a parallel program generation step that analyzes a dependency relationship between a plurality of processing units (MT1 to MT8) included in the single program, allocates the plurality of processing units to the plurality of cores, and determines an execution order based on the dependency relationship and the parallel program which causes the plurality of processing units to be executed according to the allocation of the plural cores and the execution order; and an execution order information generating step that generates access order information upon execution of a program operation by the multi-core microcomputer according to the execution order of the plurality of processing units.
Figure DE102019202228A1_0000

Description

Die vorliegende Offenbarung betrifft ein Parallelisierungsverfahren und ein Parallelisierungswerkzeug zum Erzeugen eines parallelen Programms für einen Mehrkernmikrocomputer aus einem Einzelprogramm für einen Einzelkernmikrocomputer und einen Mehrkernmikrocomputer und eine fahrzeuginterne Vorrichtung zum Ausführen des parallelen Programms, das aus einem Einzelprogramm erzeugt wird.The present disclosure 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 a multi-core microcomputer and an in-vehicle apparatus for executing the parallel program generated from a single program.

Ein Parallelisierungskompilierverfahren, das in Patentdokument 1 offenbart ist, ist ein Beispiel eines herkömmlichen Parallelisierungsverfahrens, das ein paralleles Programm für einen Mehrkernmikrocomputer aus einem Einzelprogramm für einen Einzelkernmikrocomputer erzeugt.A parallelization compilation method disclosed in Patent Document 1 is an example of a conventional parallelization method that generates a parallel program for a multi-core microcomputer from a single program for a single-core microcomputer.

Dieses Parallelisierungskompilierverfahren führt beispielsweise lexikalische Analyse und Syntaxanalyse für Quellcodes eines Einzelprogramms zum Erzeugen einer Zwischensprache aus und analysiert und optimiert eine Abhängigkeitsbeziehung zwischen mehreren Makroaufgaben (nachfolgend als Verarbeitungen MT bezeichnet) unter Verwendung der Zwischensprache aus. Das Parallelisierungskompilierverfahren führt ferner Zeitplanung basierend auf der Abhängigkeitsbeziehung zwischen dem jeweiligen Verarbeitungen MT und einer Ausführungszeit für jede Verarbeitung MT zum Erzeugen eines parallelen Programms aus.For example, this parallelization compiling method performs lexical analysis and syntax analysis on source code of a single program for generating an intermediate language, and analyzes and optimizes a dependency relation among a plurality of macro tasks (hereinafter referred to as processes MT) using the intermediate language. The parallelization compiling method further executes scheduling based on the dependency relationship between the respective processings MT and an execution time for each processing MT for generating a parallel program.

Patentdokument 1: JP 2015-1807A Patent Document 1: JP 2015-1807A

Insbesondere kann im automotiven Bereich oder dergleichen ein Bedarf bestehen, eine Überwachungseinrichtung oder dergleichen bereitzustellen, die eine Operation einer Steuereinrichtung überwacht, um eine fehlerhafte Operation (Fehlfunktion) eines Steuersystems für eine Steuerzieleinrichtung zu vermeiden, um dabei funktionale Sicherheit sicherzustellen. Jedoch zieht ein paralleles Programm, das durch ein herkömmliches Parallelisierungsverfahren erzeugt wird, keinen Mechanismus zur Operationsüberwachung zum Sicherstellen von funktionaler Sicherheit in Betracht.In particular, in the automotive field or the like, there may be a need to provide a monitor or the like which monitors operation of a controller to avoid erroneous operation (malfunction) of a control target device control system, thereby ensuring functional safety. However, a parallel program generated by a conventional parallelization method does not consider an operation monitoring mechanism for ensuring functional security.

Es ist eine Aufgabe der vorliegenden Offenbarung ein Parallelisierungsverfahren, ein Parallelisierungswerkzeug, einen Mehrkernmikrocomputer und eine fahrzeuginterne Vorrichtung bereitzustellen, die einfach überwachen können, ob ein paralleles Programm in einer bestimmten Ausführungsreihenfolge ausgeführt wird.It is an object of the present disclosure to provide a parallelization method, a parallelization tool, a multi-core microcomputer, and an in-vehicle device that can easily monitor whether a parallel program is executed in a certain execution order.

Gemäß einem Aspekt der vorliegenden Offenbarung kann ein Parallelisierungsverfahren zum Erzeugen eines parallelen Programms für einen Mehrkernmikrocomputer, der mehrere Kerne beinhaltet, aus einem Einzelprogramm für einen Einzelkernmikrocomputer, der einen Kern beinhaltet, bereitgestellt werden. Das Parallelisierungsverfahren kann beinhalten: einen Erzeugungsschritt für ein paralleles Programm, der eine Abhängigkeitsbeziehung zwischen mehreren Verarbeitungseinheiten analysiert, die in dem Einzelprogramm beinhaltet sind, eine Zuteilung der mehreren Verarbeitungseinheiten den mehreren Kernen und eine Ausführungsreihenfolge der mehreren Verarbeitungseinheiten basierend auf der analysierten Abhängigkeitsbeziehung zwischen den mehreren Verarbeitungseinheiten bestimmt, und das parallele Programm erzeugt, das die mehreren Verarbeitungseinheiten veranlasst, gemäß der bestimmten Zuteilung den mehreren Kernen und der Ausführungsreihenfolge ausgeführt zu werden; und einen Ausführungsreihenfolgeinformationserzeugungsschritt, der Zugriffsreihenfolgeinformationen beim Ausführen einer Programmoperation durch den Mehrkernmikrocomputer gemäß der Ausführungsreihenfolge der mehreren Verarbeitungseinheiten erzeugt, die durch den Erzeugungsschritt für ein paralleles Programm bestimmt wird.According to one aspect of the present disclosure, a parallelization method for generating a parallel program for a multi-core microcomputer including a plurality of cores may be provided from a single program for a single-core microcomputer including a core. The parallelization method may include: a parallel program generation step that analyzes a dependency relationship between a plurality of processing units included in the single program, an allocation of the plurality of processing units to the plurality of cores, and an execution order of the plurality of processing units based on the analyzed dependency relationship among the plurality of processing units determines and generates the parallel program that causes the plurality of processing units to be executed in accordance with the determined allocation to the plural cores and the execution order; and an execution order information generating step that generates access order information upon execution of a program operation by the multi-core microcomputer according to the execution order of the plurality of processing units determined by the parallel program generation step.

Gemäß dem Parallelisierungsverfahren der vorliegenden Offenbarung erzeugt der Zugriffsreihenfolgeinformationserzeugungsschritt die Zugriffsreihenfolgeinformation, die die Zugriffsreihenfolge zum Zugreifen auf Daten, die in den Speicher gespeichert sind, durch die mehreren Verarbeitungseinheiten angibt, wenn das parallele Programm, das in dem Parallelprogrammerzeugungsschritt erzeugt wird, ausgeführt wird. In diesem Fall werden die Verarbeitungseinheiten entsprechend Ausführungszielen erfasst und mit der Zugriffsreihenfolgeinformation verglichen, wenn das parallele Programm ausgeführt wird. Demzufolge kann, ob die mehreren Verarbeitungseinheiten in einer bestimmten Ausführungsreihenfolge ausgeführt werden, einfach überwacht werden. Auf diese Weise kann funktionale Sicherheit während der Steuerung der Steuerzieleinrichtungen durch das erzeugte parallele Programm sichergestellt werden.According to the parallelization method of the present disclosure, the access-order information-generating step generates the access-order information indicating the access order for accessing data stored in the memory by the plurality of processing units when the parallel program generated in the parallel-program generation step is executed. In this case, the processing units are detected according to execution targets and compared with the access-order information when the parallel program is executed. As a result, whether the multiple processing units are executed in a particular execution order can be easily monitored. In this way, functional safety can be ensured during the control of the control target devices by the generated parallel program.

Gemäß einem weiteren Aspekt der vorliegenden Offenbarung kann ein Parallelisierungswerkzeug zum Erzeugen eines parallelen Programms für einen Mehrkernmikrocomputer, der mehrere Kerne beinhaltet, aus einem Einzelprogramm für einen Einzelkernmikrocomputer, der einen Kern beinhaltet, bereitgestellt werden. Das Parallelisierungswerkzeug kann beinhalten: einen Erzeugungsabschnitt für ein paralleles Programm, der eine Abhängigkeitsbeziehung zwischen mehreren Verarbeitungseinheiten analysiert, die in dem Einzelprogramm beinhaltet sind, eine Zuteilung der mehreren Verarbeitungseinheiten den mehreren Kernen und eine Ausführungsreihenfolge der mehreren Verarbeitungseinheiten basierend auf der analysierten Abhängigkeitsbeziehung zwischen den mehreren Verarbeitungseinheiten bestimmt, und das parallele Programm erzeugt, das die mehreren Verarbeitungseinheiten veranlasst, gemäß der bestimmten Zuteilung den mehreren Kernen und der Ausführungsreihenfolge ausgeführt zu werden; und einen Ausführungsreihenfolgeinformationserzeugungsabschnitt, der Zugriffsreihenfolgeinformationen beim Ausführen einer Programmoperation durch den Mehrkernmikrocomputer gemäß der Ausführungsreihenfolge der mehreren Verarbeitungseinheiten erzeugt, die durch den Erzeugungsschritt für ein paralleles Programm bestimmt wird.According to another aspect of the present disclosure, a parallelization tool for generating a parallel program for a multi-core microcomputer including a plurality of cores may be provided from a single program for a single-core microcomputer including a core. The parallelization tool may include: a parallel program generation section that analyzes a dependency relationship between a plurality of processing units included in the single program, an allocation of the plurality of processing units to the plurality of cores, and an execution order of the plurality of processing units based on the analyzed dependency relationship among the plurality Determines processing units, and generates the parallel program that causes the plurality of processing units to be executed according to the determined allocation to the plural cores and the execution order; and an execution order information generating section that generates access order information upon execution of a program operation by the multi-core microcomputer according to the execution order of the plurality of processing units determined by the parallel program generation step.

Der Zugriffsreihenfolgeinformationserzeugungsabschnitt erzeugt die Zugriffsreihenfolgeinformation. Demzufolge werden ähnlich zum vorstehenden Parallelisierungsverfahren die Verarbeitungseinheiten entsprechend Ausführungszielen erfasst und mit der Zugriffsreihenfolgeinformation verglichen, wenn das parallele Programm ausgeführt wird. Demzufolge kann, ob die mehreren Verarbeitungseinheiten in der bestimmten Ausführungsreihenfolge ausgeführt werden, einfach überwacht werden. Auf diese Weise kann funktionale Sicherheit während der Steuerung der Steuerzieleinrichtungen durch das erzeugte parallele Programm sichergestellt werden.The access order information generating section generates the access order information. Accordingly, similar to the foregoing parallelization method, the processing units are detected according to execution destinations and compared with the access-order information when the parallel program is executed. As a result, whether the multiple processing units are executed in the particular execution order can be easily monitored. In this way, functional safety can be ensured during the control of the control target devices by the generated parallel program.

Gemäß einem weiteren Aspekt der vorliegenden Offenbarung kann ein Mehrkernmikrocomputer, der eine Steuerzieleinrichtung durch Ausführen eines parallelen Programms für den Mehrkernmikrocomputer steuert, der mehrere Kerne beinhaltet, bereitgestellt werden. Das parallele Programm wird aus einem Einzelprogramm für einen Einzelkernmikrocomputer erzeugt, der einen Kern beinhaltet. Das parallele Programm ist ein erzeugtes Programm, das mehrere Verarbeitungseinheiten, die in dem Einzelprogramm beinhaltet sind, veranlasst, gemäß einer Zuteilung der mehreren Verarbeitungseinheiten den mehreren Kernen und einer Ausführungsreihenfolge der mehreren Verarbeitungseinheiten ausgeführt zu werden, wobei die Zuteilung und die Ausführungsreihenfolge basierend auf einer Abhängigkeitsbeziehung der mehreren Verarbeitungseinheiten bestimmt werden. Der Mehrkernmikrocomputer kann einen Speicherabschnitt, der Zugriffsreihenfolgeinformationen beim Ausführen einer Programmoperation durch den Mehrkernmikrocomputer gemäß der Ausführungsreihenfolge der mehreren Verarbeitungseinheiten speichert, die durch das parallele Programm ausgeführt werden, und einen Überwachungsabschnitt beinhalten, der Informationen bezüglich der Verarbeitungseinheiten, die in den mehreren Kernen ausgeführt werden, erlangt und überwacht, ob die mehreren Verarbeitungseinheiten in einer Reihenfolge entsprechend der Zugriffsreihenfolgeinformationen ausgeführt werden, die in dem Speicherabschnitt gespeichert sind.According to another aspect of the present disclosure, a multi-core microcomputer that controls a control target device by executing a parallel program for the multi-core microcomputer including a plurality of cores may be provided. The parallel program is generated from a single program for a single-core microcomputer that includes a core. The parallel program is a generated program that causes a plurality of processing units included in the individual program to be executed according to an allocation of the plurality of processing units to the plural cores and an execution order of the plurality of processing units, the allocation and the execution order being based on a dependency relationship the plurality of processing units are determined. The multi-core microcomputer may include a storage section that stores access order information in executing a program operation by the multi-core microcomputer according to the execution order of the plurality of processing units executed by the parallel program and a monitor section that obtains information regarding the processing units executed in the plural cores. acquires and monitors whether the plural processing units are executed in an order according to the access order information stored in the storage section.

Der Mehrkernmikrocomputer gemäß der vorliegenden Offenbarung beinhaltet den Überwachungsabschnitt, der Informationen bezüglich der Verarbeitungseinheiten, die in den mehreren Kernen ausgeführt werden, erlangt und überwacht, ob Datenzugriff in einer Reihenfolge entsprechend der Zugriffsreihenfolgeinformation ausgeführt wird. Demzufolge kann überprüft werden, ob das parallele Programm in der korrekten Reihenfolge ausgeführt wird und ob Steuerzieleinrichtungen normal gesteuert werden. Auf diese Weise kann funktionale Sicherheit während der Steuerung der Steuerzieleinrichtungen durch das erzeugte parallele Programm sichergestellt werden.The multi-core microcomputer according to the present disclosure includes the monitoring section that acquires and monitors information regarding the processing units that are executed in the plural cores, whether data access is executed in an order according to the access-order information. As a result, it can be checked whether the parallel program is executed in the correct order and whether control target devices are normally controlled. In this way, functional safety can be ensured during the control of the control target devices by the generated parallel program.

Gemäß einem weiteren Aspekt der vorliegenden Offenbarung kann eine fahrzeuginterne Vorrichtung, die eine Steuerzieleinrichtung durch Ausführen eines parallelen Programms für einen Mehrkernmikrocomputer steuert, der mehrere Kerne beinhaltet, bereitgestellt werden. Das parallele Programm wird aus einem Einzelprogramm für einen Einzelkernmikrocomputer erzeugt, der einen Kern beinhaltet. Das parallele Programm ist ein erzeugtes Programm, das mehrere Verarbeitungseinheiten, die in dem Einzelprogramm beinhaltet sind, veranlasst, gemäß einer Zuteilung der mehreren Verarbeitungseinheiten den mehreren Kernen und einer Ausführungsreihenfolge der mehreren Verarbeitungseinheiten ausgeführt zu werden, wobei die Zuteilung und die Ausführungsreihenfolge basierend auf einer Abhängigkeitsbeziehung der mehreren Verarbeitungseinheiten bestimmt werden. Die fahrzeuginterne Vorrichtung kann einen Speicherabschnitt, der Zugriffsreihenfolgeinformationen beim Ausführen einer Programmoperation durch den Mehrkernmikrocomputer gemäß der Ausführungsreihenfolge der mehreren Verarbeitungseinheiten speichert, die durch das parallele Programm ausgeführt werden, und einen Überwachungsabschnitt beinhalten, der Informationen bezüglich der Verarbeitungseinheiten, die in den mehreren Kernen ausgeführt werden, erlangt und überwacht, ob die mehreren Verarbeitungseinheiten in einer Reihenfolge entsprechend der Zugriffsreihenfolgeinformationen ausgeführt werden, die in dem Speicherabschnitt gespeichert sind.According to another aspect of the present disclosure, an in-vehicle device that controls a control target device by executing a parallel program for a multi-core microcomputer including a plurality of cores may be provided. The parallel program is generated from a single program for a single-core microcomputer that includes a core. The parallel program is a generated program that causes a plurality of processing units included in the individual program to be executed according to an allocation of the plurality of processing units to the plural cores and an execution order of the plurality of processing units, the allocation and the execution order being based on a dependency relationship the plurality of processing units are determined. The in-vehicle device may include a storage section that stores access order information in executing a program operation by the multi-core microcomputer according to the execution order of the plurality of processing units executed by the parallel program and a monitor section that obtains information regarding the processing units that are executed in the plurality of cores , obtains and monitors whether the plural processing units are executed in an order according to the access order information stored in the storage section.

Demzufolge kann ähnlich zu dem Mehrkerncomputer, der vorstehend beschrieben ist, durch den Überwachungsabschnitt überprüft werden, ob das parallele Programm in der korrekten Reihenfolge ausgeführt wird und ob Steuerzieleinrichtungen normal gesteuert werden. Auf diese Weise kann funktionale Sicherheit während der Steuerung der Steuerzieleinrichtungen durch das erzeugte parallele Programm sichergestellt werden.Accordingly, similar to the multi-core computer described above, it can be checked by the monitoring section whether the parallel program is executed in the correct order and whether control target devices are normally controlled. In this way, functional safety can be ensured during the control of the control target devices by the generated parallel program.

Die vorstehenden und weitere Aufgaben, Merkmale und Vorteile der vorliegenden Offenbarung werden aus der nachfolgenden detaillierten Beschreibung in Zusammenschau mit den Zeichnungen ersichtlicher.The foregoing and other objects, features and advantages of the present disclosure will become more apparent from the following detailed description Description in conjunction with the drawings apparent.

Es zeigen:

  • 1 ein Blockschaltbild, das eine schematische Konfiguration eines Computers als ein automatisches Parallelisierungswerkzeug gemäß einer Ausführungsform darstellt;
  • 2 ein Blockschaltbild, das Funktionen eines Computers als ein automatisches Parallelisierungswerkzeug gemäß der Ausführungsform darstellt;
  • 3 ein Diagramm, das ein Beispiel einer Zeitplanung zur Zuteilung mehrerer Verarbeitungseinheiten mehreren Kernen und eine Ausführungsreihenfolge darstellt;
  • 4 ein Diagramm, das ein Beispiel von Zugriffsreihenfolgeinformationen darstellt, die durch den Computer, der das automatische Parallelisierungswerkzeug darstellt, ausgeführt werden;
  • 5 ist ein Diagramm, das ein Beispiel einer Zugriffsreihenfolgeinformationstabelle darstellt, die durch einen Kompilierer basierend auf Zugriffsreihenfolgeinformationen und Speicheraufzeichnungsinformationen erzeugt wird;
  • 6 ein Blockschaltbild, das eine schematische Konfiguration einer fahrzeuginternen Vorrichtung gemäß der ersten Ausführungsform darstellt,
  • 7 ein Blockschaltbild, das eine interne Konfiguration eines Mehrkernmikrocomputers der fahrzeuginternen Vorrichtung darstellt;
  • 8 ein Ablaufdiagramm, das eine Überwachungsverarbeitung darstellt, die durch einen Überwachungsabschnitt des Mehrkernmikrocomputers ausgeführt wird.
Show it:
  • 1 10 is a block diagram illustrating a schematic configuration of a computer as an automatic parallelization tool according to an embodiment;
  • 2 FIG. 10 is a block diagram illustrating functions of a computer as an automatic parallelizing tool according to the embodiment; FIG.
  • 3 Fig. 12 is a diagram illustrating an example of scheduling for allocating a plurality of processing units to a plurality of cores and an execution order;
  • 4 a diagram illustrating an example of access order information executed by the computer representing the automatic parallelization tool;
  • 5 Fig. 15 is a diagram illustrating an example of an access order information table generated by a compiler based on access order information and storage record information;
  • 6 FIG. 10 is a block diagram showing a schematic configuration of an in-vehicle device according to the first embodiment; FIG.
  • 7 FIG. 12 is a block diagram illustrating an internal configuration of a multi-core microcomputer of the in-vehicle device; FIG.
  • 8th FIG. 10 is a flowchart illustrating monitoring processing performed by a monitoring section of the multi-core microcomputer.

Eine Ausführungsform zum Ausführen der vorliegenden Offenbarung wird mit Bezug auf die Zeichnungen beschrieben. Gemäß der vorliegenden Ausführungsform erzeugt ein Computer 10 als ein Parallelisierungswerkzeug ein paralleles Programm 21a1, dass für einen Mehrkernmikrocomputer 21, der einen ersten Kern 21c und einen zweiten Kern 21d aufweist, aus einem Einzelprogramm für einen Einzelkernmikrocomputer, der einen Einzelkern aufweist parallelisiert ist. Die Anzahl von Kernen, die in dem Mehrkernmikrocomputer 21 beinhaltet sind, ist nicht auf zwei beschränkt, sondern kann auch drei oder mehr sein.An embodiment for carrying out the present disclosure will be described with reference to the drawings. According to the present embodiment, a computer generates 10 as a parallelization tool a parallel program 21a1 that for a multi-core microcomputer 21 who is a first core 21c and a second core 21d has parallelized from a single program for a single-core microcomputer having a single core. The number of cores that are in the multi-core microcomputer 21 are not limited to two, but may be three or more.

Eine Notwendigkeit zum Erzeugen des parallelen Programms 21a1 aus dem Einzelprogramm wird beschrieben. Ein Programmvolumen (ebenso als die Programmmenge bezeichnet) neigt dazu Jahr für Jahr mit einem Fortschritt bei Steuerungen zuzunehmen, während eine Verbesserung einer Leistung des Einzelprozessors beschränkt ist. Insbesondere darf sogar bei einem Versuch eine Operationsfrequenz eines Einzelprozesses zum Verbessern von Verarbeitungsleistung zu erhöhen, die Operationsfrequenz nur innerhalb eines beschränkten Bereichs zunehmen. Ferner erhöht die Zunahme der Operationsfrequenz einen Wärmeerzeugungsbetrag und Energieverbrauch. Demzufolge wird das Auswählen eines Mehrkernmikrocomputers, der die Verarbeitungsleistung durch Erhöhung der Anzahl von Kernen verbessern kann, als effektiv erachtet.A need to create the parallel program 21a1 from the individual program will be described. A program volume (also referred to as the program amount) tends to increase with advances in controls year by year, while an improvement in performance of the single processor is limited. In particular, even in an attempt to increase an operation frequency of a single process for improving processing performance, the operation frequency may increase only within a limited range. Further, the increase in the operation frequency increases a heat generation amount and power consumption. As a result, selecting a multi-core microcomputer that can improve the processing performance by increasing the number of cores is considered effective.

Wenn ein Programmentwickler Verarbeitungen jeweiligen Kernen richtig zuteilen muss oder Zeitplanung ausführen muss, um eine maximale Fähigkeit des Mehrkerns zu erzielen, nimmt eine Entwicklungsbelastung für das Programm zu. Es ist demnach wichtig, das parallele Programm 21a1 automatisch aus einem Einzelprogramm zu erzeugen und die Entwicklungsbelastung für das Programm zu reduzieren.If a program developer needs to properly allocate processings to respective cores or must schedule to achieve the maximum capability of the multi-core, a development burden on the program increases. It is therefore important to use the parallel program 21a1 automatically from a single program to generate and reduce the development burden on the program.

Ferner können existierende Softwarebestände, die für einen Einzelprozessor entwickelt wurden, effektiv verwendet werden, wenn das parallele Programm 21a1 automatisch aus einem Einzelprogramm erzeugt wird.Further, existing software invented for a single processor can be effectively used when the parallel program 21a1 automatically generated from a single program.

Eine Konfiguration des Computers 10 wird anfänglich gemäß 1 beschrieben. Der Computer 10 entspricht einem Parallelisierungswerkzeug zum Ausführen eines Parallelisierungsverfahrens und erzeugt das parallele Programm 21a1 aus einem Einzelprogramm. Gemäß der vorliegenden Ausführungsform ist der Computer 10 konfiguriert, um das parallele Programm 21a1, das in C (Programmiersprache C) beschrieben ist, basierend auf einem Einzelprogramm zu erzeugen, das in C geschrieben ist. Demzufolge, wie in 2 dargestellt ist, wird ein paralleles Programm 21a1', das tatsächlich in einem Nur-Lese-Speicher (ROM) 21a einer fahrzeuginternen Vorrichtung 20 (Mehrkernmikrocomputer 21) gespeichert und auszuführen ist, weiter in binäre Codes durch einen Kompilierer 19 übersetzt.A configuration of the computer 10 is initially according to 1 described. The computer 10 corresponds to a parallelization tool for performing a parallelization method and generates the parallel program 21a1 from a single program. According to the present embodiment, the computer 10 configured to the parallel program 21a1 , this in C (Programming language C ), based on a single program to be generated in C is written. Consequently, as in 2 is shown, becomes a parallel program 21a1 ' that is actually in a read-only memory (ROM) 21a an in-vehicle device 20 (Multicore microcomputer 21 ) is stored and executed, further into binary codes by a compiler 19 translated.

Jedoch ist die vorliegende Offenbarung nicht auf dieses spezifische Beispiel beschränkt. Das Einzelprogramm kann in einer Programmiersprache geschrieben sein, die sich von C unterscheidet. Das parallele Programm 21a1 kann beispielsweise in einer Zwischensprache geschrieben sein, die zur Analyse eines Einzelprogramms verwendet wird. Alternativ kann der Computer 10 als ein Parallelisierungswerkzeug sowohl ein paralleles Programm geschrieben in C und ein paralleles Programm geschrieben in einer Zwischensprache erzeugen. Ferner kann der Computer 10 als ein Parallelisierungswerkzeug ebenso eine Funktion als der Kompilierer 19 beinhalten, um direkt das parallele Programm 21a1' mit Binärcodes zu erzeugen.However, the present disclosure is not limited to this specific example. The individual program can be written in a programming language other than C different. The parallel program 21a1 For example, it may be written in an intermediate language that is used to analyze a single program. Alternatively, the computer 10 as a parallelization tool both a parallel program written in C and generate a parallel program written in an intermediate language. Furthermore, the computer can 10 as a parallelization tool as well as a function as the compiler 19 involve to directly the parallel program 21a1 'to generate with binary codes.

Wie in 1 dargestellt ist, beinhaltet der Computer 10 eine Anzeige 11, ein Festplattenlaufwerk (HDD) 12, eine zentrale Verarbeitungseinheit (CPU) 13, ein ROM 14, einen Speicher 15 mit wahlfreiem Zugriff (RAM), eine Eingabeeinrichtung 16, einen Leseabschnitt 17 oder dergleichen. Der Computer kann Speicherinhalte, die in einem Speichermedium 18 gespeichert sind, durch Verwendung des Leseabschnitts 17 lesen. Wie in 1 dargestellt ist, speichert das Speichermedium 18 beispielsweise einen automatischen Parallelisierungskompilierer 1. Der Computer 10 und das Speichermedium 18 sind ähnlich zu einem Personalcomputer 100 und einem Speichermedium 180, die in der JP 2015 - 1807A beschrieben sind. Demzufolge wird für mehr Details auf die JP 2015 - 1807A verwiesen.As in 1 is shown, the computer includes 10 an ad 11 , a hard disk drive (HDD) 12 , a central processing unit (CPU) 13 , a ROM 14 , a store 15 random access (RAM), an input device 16 , a reading section 17 or similar. The computer can store memory contents in a storage medium 18 are stored by using the reading section 17 read. As in 1 is shown, stores the storage medium 18 for example, an automatic parallelization compiler 1 , The computer 10 and the storage medium 18 are similar to a personal computer 100 and a storage medium 180 in the JP 2015 - 1807a are described. Consequently, for more details on the JP 2015 - 1807a directed.

Der automatische Parallelisierungscomputer 1 ist eine Software, mit der der Computer 10 einen Schritt zum Erzeugen des parallelen Programms 21a1 ausführt. Demnach führt mit dem automatischen Parallelisierungskompilierer 1 der Computer 10 ein Parallelisierungsverfahren aus. In anderen Worten ist der automatische Parallelisierungskompilierer 1 ein Programm einschließlich eines Parallelisierungsverfahrens. Der Computer 10 erzeugt das parallele Programm 21a1 durch Ausführen des automatischen Parallelisierungskompilierers 1.The automatic parallelization computer 1 is a software that the computer uses 10 a step for generating the parallel program 21a1 performs. Accordingly, using the automatic parallelization compiler 1 the computer 10 a parallelization method. In other words, the automatic parallelization compiler 1 a program including a parallelization procedure. The computer 10 generates the parallel program 21a1 by running the automatic parallelization compiler 1 ,

Gemäß 2 werden jeweilige Funktionen und Verarbeitungsschritte des Computers 10, der ein Parallelisierungswerkzeug darstellt, zum Erzeugen des parallelen Programms 21a1 aus einem Einzelprogramm beschrieben. 2 ist ein Diagramm, das die jeweiligen Funktionen und Verarbeitungsschritte des Computers 10 als funktionale Blöcke darstellt. Wie in 2 dargestellt ist, hat der Computer 10 Funktionen eines lexikalischen Analyseabschnitts 10a, eines Syntax-/Semantik-Analyseabschnitts 10b, eines Abhängigkeitsanalyseabschnitts 10c, eines Kernzuteilungsabschnitts 10d, eines Zeitplanungsabschnitts 10e und eines Zugriffsreihenfolgeinformationsausgabeabschnitts 10f. Im Übrigen kann mindestens einer des lexikalischen Analyseabschnitts 10a, des Syntax-/Semantik-Analyseabschnitts 10b, des Abhängigkeitsanalyseabschnitts 10c, des Kernzuteilungsabschnitts 10d oder des Zeitplanungsabschnitt 10e einem Parallelprogrammerzeugungsschritt und einem Parallelprogrammerzeugungsabschnitt entsprechen. Der Zugriffsreihenfolgeinformationsausgabeabschnitt 10f kann einem Ausführungsreihenfolgeinformationserzeugungsschritt und einem Ausführungsreihenfolgeinformationserzeugungsabschnitt entsprechen.According to 2 become respective functions and processing steps of the computer 10 , which is a parallelization tool, for generating the parallel program 21a1 described from a single program. 2 is a diagram showing the respective functions and processing steps of the computer 10 represents as functional blocks. As in 2 is shown, the computer has 10 Functions of a lexical analysis section 10a , a syntax / semantic analysis section 10b , a dependency analysis section 10c , a core allotment section 10d , a scheduling section 10e and an access order information output section 10f , Incidentally, at least one of the lexical analysis section 10a , the syntax / semantic analysis section 10b , the dependency analysis section 10c , the core allotment section 10d or the scheduling section 10e a parallel program generation step and a parallel program generation section. The access order information output section 10f may correspond to an execution order information generating step and an execution order information generation section.

In der folgenden Ausführungsform wird nicht das gesamte Einzelprogramm zum Steuern einer Steuerzieleinrichtung in dem Computer 10 auf einmal eingegeben, sondern jeweilige Teile des Einzelprogramms, das für jede unabhängige Verarbeitungsfunktion (Aufgabe) unterteilt ist, werden wie in 2 dargestellt ist, eingegeben. Das Einzelprogramm, das für jede Aufgabe unterteilt ist, beinhaltet mehrere Verarbeitungseinheiten und implementiert Zielverarbeitungsfunktionen für jeweilige Aufgaben durch Ausführen der mehreren Verarbeitungseinheiten. Wie vorstehend beschrieben ist, operieren die mehreren Verarbeitungseinheiten in Kooperation miteinander, um die Zielverarbeitungsfunktionen zu implementieren. Beispielsweise beinhalten die Verarbeitungseinheiten eine Verarbeitungseinheit, die später mit Bezug auf variable Daten verarbeitet wird, die durch eine Verarbeitungseinheit erlangt werden, die früher verarbeitet wird, und eine Verarbeitungseinheit, die später verarbeitet wird, und durch eine bedingte Abzweigung einer Verarbeitungseinheit ausgeführt wird, die früher verarbeitet wird.In the following embodiment, the entire single program for controlling a control target device in the computer is not used 10 entered at once, but respective parts of the individual program, which is subdivided for each independent processing function (task), as in 2 is shown entered. The individual program divided for each task includes a plurality of processing units and implements target processing functions for respective tasks by executing the plurality of processing units. As described above, the plurality of processing units operate in cooperation with each other to implement the destination processing functions. For example, the processing units include a processing unit that is later processed with respect to variable data obtained by a processing unit that is processed earlier, and a processing unit that is later processed and executed by a conditional branch of a processing unit earlier is processed.

Die Verarbeitungseinheiten beziehen sich hierbei auf Kernanordnungseinheiten, von denen jede eine Minimaleinheit ist, die einem entsprechenden Kern zugeteilt ist, und Funktionen. Jede der Kernanordnungseinheiten kann beispielsweise ebenso als ein Verarbeitungsblock, eine Makroaufgabe oder einfach eine Verarbeitung MT bezeichnet werden. Eine Beziehung von Kernanordnungseinheit ≥ Funktion gilt zwischen Kernanordnungseinheiten und Funktionen. Insbesondere kann eine Funktion eine Kernanordnungseinheit selbst konfigurieren oder eine Elternfunktion oder eine Unterfunktion, die in einer Kernanordnungseinheit beinhaltet ist. Gemäß der vorliegenden Ausführungsform wird angenommen, dass die Verarbeitungseinheit aus der Verarbeitung MT konfiguriert ist.The processing units here refer to core array units, each of which is a minimum unit allocated to a corresponding core, and functions. For example, each of the core array units may also be referred to as a processing block, a macro task, or simply a processing MT. A relationship of core arrangement unit ≥ function holds between core arrangement units and functions. In particular, a function may itself configure a core array unit or a parent function or subfunction included in a core array unit. According to the present embodiment, it is assumed that the processing unit is out of the processing MT is configured.

Der lexikalische Analyseabschnitt 10a und der Syntax-/Semantik-Analyseabschnitt 10b führen lexikalische Analyse und Syntax- und Semantik-Analyse für Quellcodes eines Einzelprogramms, das mit C geschrieben ist, aus und entwickeln die Quellcodes in eine Zwischensprache. Die Zwischensprache, die durch den lexikalischen Analyseabschnitt 10a und den Syntax-/Semantik-Analyseabschnitt 10b entwickelt wird, beinhaltet Universalanweisungen. Der lexikalische Analyseabschnitt 10a und der Syntax-/Semantik-Analyseabschnitt 10b entsprechen einem FE3 in der JP 2015-1807A . Demzufolge wird für Details auf die JP 2015 - 1807A verwiesen.The lexical analysis section 10a and the syntax / semantic analysis section 10b perform lexical analysis and syntax and semantics analysis for source code of a single program using C is written, and develop the source code in an intermediate language. The intermediate language through the lexical analysis section 10a and the syntax / semantic analysis section 10b is developed, includes universal instructions. The lexical analysis section 10a and the syntax / semantic analysis section 10b correspond to one FE3 in the JP 2015-1807A , Consequently, for details on the JP 2015 - 1807a directed.

Der Abhängigkeitsanalyseabschnitt 10c analysiert eine Abhängigkeitsbeziehung zwischen den jeweiligen Verarbeitungen MT, die in dem Einzelprogramm beinhaltet sind, dass in die Zwischensprache entwickelt ist, und extrahiert die Verarbeitungen MT, die parallel ausgeführt werden dürfen. Die Abhängigkeitsbeziehung beinhaltet eine Datenabhängigkeitsbeziehung, wie eine Abhängigkeit, das die Verarbeitung MT, die später ausgeführt wird, sich auf gemeinsame Daten bezieht, die durch die Verarbeitung MT aktualisiert werden, die früher ausgeführt wird, und eine Steuerabhängigkeitsbeziehung, wie eine Abhängigkeit, dass die Verarbeitung MT, die später ausgeführt wird, ein Ziel einer bestimmten Abzweigung der Verarbeitung MT wird, die früher ausgeführt wird. Die mehreren Verarbeitungen MT, die die vorstehenden Abhängigkeitsbeziehungen aufweisen, müssen in einer Verarbeitungsreihenfolge entsprechend der Abhängigkeitsbeziehungen ausgeführt werden. Gemäß der vorliegenden Ausführungsform ist ein Einzelprogramm, das für jede Aufgabe unterteilt ist, ein wie vorstehend beschriebenes Parallelisierungsziel. Die mehreren Verarbeitungen MT, die in dem Einzelprogramm beinhaltet sind, haben eine Datenabhängigkeitsbeziehung oder eine Steuerabhängigkeitsbeziehung.The dependency analysis section 10c analyzes a dependency relationship between the respective processes MT which are included in the individual program developed into the intermediate language and extract the processings MT which may be executed in parallel. The dependency relationship involves a data dependency relationship, such as a dependency that the processing MT , which is later executed, refers to common data obtained through the processing MT to be updated, which is executed earlier, and a control dependency relationship, such as a dependency, that the processing MT which will be executed later, a target of a particular branch of processing MT will be executed earlier. The several processes MT having the above dependency relationships must be executed in a processing order according to the dependency relationships. According to the present embodiment, a single program divided for each task is a parallelization target as described above. The several processes MT that are included in the single program have a data dependency relationship or a tax dependency relationship.

Der Kernzuteilungsabschnitt 10d teilt die mehreren Verarbeitungen MT den jeweiligen Kernen 21c und 21d (verteilt die mehreren Verarbeitungen MT an die jeweiligen Kerne 21c und 21d) basierend auf einem Analyseergebnis zu, das durch die Abhängigkeitsanalyseabschnitt 10c erlangt wird. In diesem Fall teilt der Kernzuteilungsabschnitt 10d die mehreren Verarbeitungen MT so zu, dass beispielsweise die Verarbeitungen MT, die parallel ausgeführt werden dürfen, parallel in den jeweiligen Kernen 21c und 21d ausgeführt werden. Der Zeitplanungsabschnitt 10e führt Zeitplanung der mehreren Verarbeitungen MT durch, die den jeweiligen Kernen 21c und 21d zugeteilt sind. Beispielsweise bestimmt der Zeitplanungsabschnitt 10e einen Ausführungszeitplan der Verarbeitungen MT, die den jeweiligen Kernen zugeteilt sind, basierend auf einer Ausführungszeit und einer Abhängigkeitsbeziehung jeder der Verarbeitungen MT. Der Abhängigkeitsanalyseabschnitt 10c, der Kernzuteilungsabschnitt 10d und der Zeitplanungsabschnitt 10e entsprechen MP5 der JP 2015-1807A . Demzufolge wird für Details auf die JP 2015-1807A verwiesen.The core allocation section 10d shares the multiple processes MT the respective cores 21c and 21d (distributes the multiple processes MT to the respective cores 21c and 21d) based on an analysis result obtained by the dependency analysis section 10c is obtained. In this case, the core allocation section informs 10d the several processes MT so that, for example, the processing MT , which may be executed in parallel, parallel in the respective cores 21c and 21d be executed. The scheduling section 10e performs scheduling of multiple processes MT through, the respective cores 21c and 21d allocated. For example, the scheduling section determines 10e an execution schedule of the processings MT assigned to the respective cores based on an execution time and a dependency relationship of each of the processings MT , The dependency analysis section 10c , the core allotment section 10d and the scheduling section 10e correspond MP5 the JP 2015-1807A , Consequently, for details on the JP 2015-1807A directed.

3 zeigt ein Beispiel eines Zeitplanungsergebnisses, das durch den Zeitplanungsabschnitt 10e erlangt wird. Gemäß dem in 3 dargestellten Beispiel beinhaltet das parallele Programm mehrere Verarbeitungen MT1 bis MT8. Ferner hat das parallele Programm eine derartige Abhängigkeitsbeziehung, das die Verarbeitung MT2 und die Verarbeitung MT3 von der Verarbeitung MT1 abhängig sind. Demzufolge wird bei der Synchronisationsverarbeitung die Verarbeitung MT3, die in dem zweiten Kern 21 wird, der ein Kern ist, der sich von dem ersten Kern 21c unterscheidet, in dem die Verarbeitung MT1 ausgeführt wird, zeitlich geplant, um ihre Ausführung nach Abschluss der Verarbeitung MT1 zu starten. Gemäß einem möglichen Beispiel der Synchronisationsverarbeitung schreibt der erste Kern 21c Abschlussinformationen in das RAM 21b, wenn die Verarbeitung MT1 abgeschlossen ist. Der zweite Kern 21d startet Ausführen der Verarbeitung MT3, wenn er die Abschlussinformationen aus dem RAM 21b liest und die Abschlussinformationen bestätigt. Ferner zeigt das Beispiel in 3 eine derartige Abhängigkeitsbeziehung, das die Verarbeitung MT6 und die Verarbeitung MT7 von der Verarbeitung MT5 abhängig sind. Demzufolge wird bei der Synchronisationsverarbeitung der erste Kern 21c zeitlich geplant, um die Verarbeitung MT6 nach Abschluss der Verarbeitung MT5 in dem zweiten Kern 21d zu starten. 3 shows an example of a scheduling result generated by the scheduling section 10e is obtained. According to the in 3 As illustrated, the parallel program includes multiple processes MT1 to MT8 , Furthermore, the parallel program has such a dependency relationship that the processing MT2 and the processing MT3 from the processing MT1 are dependent. As a result, in the synchronization processing, the processing MT3 that in the second core 21 which is a core that is different from the first core 21c differs in which the processing MT1 is executed, scheduled to complete its execution upon completion of processing MT1 to start. According to a possible example of the synchronization processing, the first core writes 21c Completion information in the RAM 21b when the processing MT1 is completed. The second core 21d starts executing the processing MT3 when he gets the completion information from the ram 21b reads and confirms the completion information. Further, the example in FIG 3 such a dependency relationship that the processing MT6 and the processing MT7 from the processing MT5 are dependent. As a result, in the synchronization processing, the first core becomes 21c scheduled to process MT6 after completion of processing MT5 in the second core 21d to start.

Gemäß dem in 3 dargestellten Beispiel hat die Verarbeitung MT1 eine Funktion y zum Zugreifen auf variable Daten, die in den RAM 21b zurückgehalten (gespeichert) sind, während die Verarbeitung MT3 in ähnlicher Weise eine Funktion z zum Zugreifen auf dieselben variablen Daten x hat. Die Verarbeitung MT5 hat eine Funktion v zum Zugreifen auf die variablen Daten x, während die Verarbeitung MT6 eine Funktion w zum Zugreifen auf die variablen Daten x hat.According to the in 3 example shown has the processing MT1 a function y for accessing variable data stored in the RAM 21b are withheld (stored) while processing MT3 similarly has a function z for accessing the same variable data x. The processing MT5 has a function v for accessing the variable data x while processing MT6 has a function w for accessing the variable data x.

Wie in 2 dargestellt ist, beinhaltet der Computer 10 der vorliegenden Ausführungsform fernen den Zugriffsreihenfolgeinformationsausgabeabschnitt 10f. Basierend auf einem Zeitplanungsergebnis, das durch den Zeitplanungsabschnitt 10e erlangt wird, erzeugt der Zugriffsreihenfolgeinformationsausgabeabschnitt 10f mit dem erzeugten parallelen Programm 21a1 Zugriffsreihenfolgeinformationen 21a1 und gibt diese aus, welche eine Zugriffsreihenfolge auf variable Daten und/oder konstante Daten angeben, die durch mehrere Verarbeitungen erlangt werden und in einem Speicher in einer Ausführungsreihenfolge der mehreren Verarbeitungen zur Zeit einer Ausführung eines parallelen Programms gespeichert werden. Die Zugriffreihenfolgeinformationen können als Ausführungsreihenfolgeinformationen bezeichnet werden.As in 2 is shown, the computer includes 10 In the present embodiment, the access-order information output section removes 10f , Based on a scheduling result generated by the scheduling section 10e is obtained, the access order information output section generates 10f with the generated parallel program 21a1 Access order information 21a1 and outputs them indicating an access order to variable data and / or constant data obtained by a plurality of processings and stored in a memory in an execution order of the plurality of processes at the time of execution of a parallel program. The access order information may be referred to as execution order information.

Beispielsweise werden die Zugriffsreihenfolgeinformationen 21a2, die durch den Zugriffsreihenfolgeinformationenausgabeabschnitt 10f erzeugt werden, unter Verwendung eines Falls beschrieben, in dem das Zeitplanungsergebnis, das in 3 dargestellt ist, als ein Beispiel erlangt wird. Wie vorstehend beschrieben ist, beinhaltet das parallele Programm 21a1 die mehreren Verarbeitungen MT, die eine Abhängigkeitsbeziehung, wie eine Datenabhängigkeitsbeziehung und eine Steuerabhängigkeitsbeziehung haben. In den jeweiligen Verarbeitungen MT berechnen insbesondere die Verarbeitungen MT, die eine Datenabhängigkeitsbeziehung haben (MT1 und MT3 und MT5 und MT6 im Beispiel von 3), ein Verarbeitungsergebnis, dass sich von einem erwarteten Verarbeitungsergebnis unterscheidet, wenn sich die Reihenfolge der Verarbeitungen MT ändert.For example, the access order information becomes 21a2 indicated by the access order information output section 10f are described using a case where the scheduling result obtained in 3 is shown as an example. As described above, the parallel program includes 21a1 the several processes MT that have a dependency relationship, such as a data dependency relationship and a tax dependency relationship. In the respective processing MT especially calculate the processing MT that have a data dependency relationship ( MT1 and MT3 and MT5 and MT6 in the example of 3 ), a processing result that differs from an expected processing result when the order of processings MT changes.

Demnach wird in der vorliegenden Ausführungsform der Zugriffsreihenfolgeinformationsausgabeabschnitt 10f bereitgestellt, um die Zugriffsreihenfolgeinformationen 21a2 zu erzeugen und auszugeben, welche zum Bestätigen verwendet werden, ob die Verarbeitungen MT, die mindestens eine Datenabhängigkeitsbeziehung haben, in der zeitlich geplanten Reihenfolge mit dem erzeugten parallelen Programm 21a1 (21a1') ausgeführt wurden. Insbesondere fokussiert sich der Zugriffsreihenfolgeinformationsausgabeabschnitt 10f auf alle Daten, auf die durch die mehreren Verarbeitungen MT zugegriffen wird, und extrahiert eine Reihenfolge jeweiliger Verarbeitungen MT, die auf gemeinsame Daten zugreifen, aus einem Zeitplanungsergebnis zum Erzeugen der Zugriffsreihenfolgeinformationen 21a2 für alle Daten. Thus, in the present embodiment, the access order information output section becomes 10f provided the access order information 21a2 to generate and output, which are used to confirm whether the processing MT having at least one data dependency relationship in the scheduled order with the generated parallel program 21a1 ( 21a1 ' ) were executed. In particular, the access order information output section focuses 10f on all the data, due to the multiple processing MT is accessed, and extracts an order of respective processings MT that access common data from a scheduling result for generating the access order information 21a2 for all data.

Beispielsweise, wenn das Zeitplanungsergebnis, das in 3 dargestellt ist, erlangt wird, sind die Verarbeitungen MT, die auf die variablen Daten x zugreifen, durch die Verarbeitung MT1, die Verarbeitung MT3, die Verarbeitung MT5 und die Verarbeitung MT6 konfiguriert. Wenn das parallele Programm normal ausgeführt wird, wird erwartet, dass die Verarbeitungen MT1, MT3, MT5 und MT6 auf die variablen Daten x in der Reihenfolge der Verarbeitung MT1, der Verarbeitung MT3, der Verarbeitung MT5 und die Verarbeitung MT6 zugreifen. Ferner ist jede der Verarbeitungen MT1, MT3, MT5 und MT6 basierend auf Funktionsinformationen identifizierbar, die Funktionen zum Zugreifen auf die variablen Daten x angeben. Ferner, wenn Kerninformationen (erster Kern 21c und zweiter Kern 21d), die Kerne zum Ausführen der entsprechenden Verarbeitungen MT angeben, adaptiert werden, verbessert sich die Identifikationsgenauigkeit für die jeweiligen Verarbeitung MT1, MT3, MT5 und MT6.For example, if the scheduling result is in 3 is obtained, are the processing MT that access the variable data x through the processing MT1 , the processing MT3 , the processing MT5 and the processing MT6 configured. If the parallel program is running normally, it is expected that the processings MT1 . MT3 . MT5 and MT6 to the variable data x in the order of processing MT1 , the processing MT3 , the processing MT5 and the processing MT6 access. Further, each of the processing is MT1 . MT3 . MT5 and MT6 identifiable based on function information indicating functions for accessing the variable data x. Further, if core information (first core 21c and second core 21d) , the cores to perform the appropriate processing MT can be adapted, the identification accuracy for the respective processing improves MT1 . MT3 . MT5 and MT6 ,

Demnach extrahiert der Zugriffsreihenfolgeinformationsausgabeabschnitt 10f eine Funktion zum Zugreifen auf entsprechende Daten und Kerninformationen, die den Kern zum Ausführen der Funktion angeben, aus einem Zeitplanungsergebnis, das von dem Zeitplanungsabschnitt 10e für alle Daten einschließlich variabler Daten erlangt wird und in dem Speicher gespeichert ist (beispielsweise ROM 21a, ROM 21b). Dann, wie in 4 dargestellt ist, erzeugt der Zugriffsreihenfolgeinformationsausgabeabschnitt 10f die Zugriffsreihenfolgeinformationen 21a2, die die Zugriffsreihenfolge der jeweiligen Verarbeitungen MT1, MT3, MT5 und MT6 spezifizieren, die auf die variablen Daten x zugreifen, beispielsweise basierend auf den Kerninformationen und den Funktionsinformationen. Wenn das parallele Programm 21a1' mehrere Verarbeitungen beinhaltet, die auf unterschiedliche variable Daten zugreifen, erzeugt der Zugriffsreihenfolgeinformationsausgabeabschnitt 10f ebenso Zugriffsreihenfolgeinformationen bezüglich der unterschiedlichen variablen Daten.Thus, the access order information output section extracts 10f a function for accessing corresponding data and core information indicating the kernel for executing the function from a scheduling result obtained from the scheduling section 10e for all data including variable data is obtained and stored in the memory (for example, ROM 21a , ROME 21b ). Then, as in 4 is shown, the access order information output section generates 10f the access order information 21a2 indicating the access order of each processing MT1 . MT3 . MT5 and MT6 specifying the variable data x, for example, based on the core information and the function information. If the parallel program 21a1 ' includes multiple processes accessing different variable data, generates the access order information output section 10f also access order information regarding the different variable data.

Daten die Ziel der Zugriffsreihenfolgeinformationen sind, sind nicht nur auf variable Daten beschränkt, sondern können konstante Daten beinhalten. Der Grund dafür ist, dass, wenn die mehreren Verarbeitungen MT, die auf dieselben konstanten Daten zugreifen, die in dem ROM 21a oder dem RAM 21b gespeichert sind, in dem erzeugten parallelen Programm 21a1' vorliegen, ob das parallele Programm 21a1' in der normalen Reihenfolge ausgeführt wurde, ebenso basierend auf der Zugriffsreihenfolge der jeweiligen Verarbeitungen MT auf die konstanten Daten bestimmt werden kann.Data that is the target of the access order information is not limited to only variable data but may include constant data. The reason is that when the multiple processes MT that access the same constant data stored in the ROM 21a or the RAM 21b stored in the generated parallel program 21a1 ' present, whether the parallel program 21a1 ' in the normal order, as well as based on the access order of the respective processings MT can be determined on the constant data.

Wie in 2 dargestellt ist, wird das parallele Programm 21a, das durch den Computer 10, der ein Parallelisierungswerkzeug darstellt, erzeugt wird, durch den Kompilierer 19 kompiliert und in das parallele Programm 21a1' konvertiert, das in Binärcodes übersetzt ist. Zusätzlich werden Symbole wie Funktionen und Variablen, die in den Zugriffsreihenfolgeinformationen 21a enthalten sind, die durch den Computer 10 erzeugt werden, durch den Kompilierer 19 in spezifische Adressinformationen konvertiert. Ein Satz von Zugriffsreihenfolgeinformationen, dessen Symbole wie Funktionen und Daten in Adressinformationen konvertiert wurde, wird nachfolgend als eine Zugriffsreihenfolgeinformationstabelle 21a2' bezeichnet.As in 2 is shown becomes the parallel program 21a that through the computer 10 , which is a parallelization tool generated by the compiler 19 compiled and into the parallel program 21a1 ' converted into binary codes. Additionally, symbols such as functions and variables appear in the access order information 21a are included by the computer 10 be generated by the compiler 19 converted into specific address information. A set of access order information whose symbols such as functions and data have been converted into address information will be hereinafter referred to as an access order information table 21a2 ' designated.

Die Zugriffsreihenfolgeinformationstabelle 21a2' wird nachfolgend detaillierter erläutert. Wie in 4 dargestellt ist, werden jeweilige Daten und Funktionen, die in den Zugriffsreihenfolgeinformationen 21a2 enthalten sind, als Symbole in einer Stufe einer Ausgabe von dem Zugriffsreihenfolgeinformationsausgabeabschnitt 10f ausgedrückt. Werden die Zugriffsreihenfolgeinformationen 21a2 durch den Kompilierer 19 kompiliert, werden die jeweiligen Daten und Funktionen in Adressinformationen konvertiert, die Orte des Speichers (beispielsweise ROM 21a, RAM 21b) angeben, wo die Daten und Funktionen gespeichert werden, wie in 5 dargestellt ist. Das heißt, der Kompilierer 19 konvertiert die jeweiligen Daten und Funktionen in der Form von Symbolen in Adressinformationen durch Bezugnahme auf Speicheraufzeichnungsinformationen, die in den Kompilierer 19 gehalten werden und Daten und Anweisungen angeben. Die Zugriffsreihenfolgeinformationstabelle 21a2', die so konvertiert ist, wird in dem ROM 21a des Mehrkernmikrocomputers 21 gespeichert.The access order information table 21a2 ' will be explained in more detail below. As in 4 are represented, respective data and functions are in the access order information 21a2 are included as symbols in a stage of an output from the access-order information output section 10f expressed. Be the access order information 21a2 through the compiler 19 The data and functions are converted into address information, the locations of the memory (for example, ROM 21a , RAM 21b ) specify where the data and functions are stored, as in 5 is shown. That is, the compiler 19 converts the respective data and functions in the form of symbols into address information by referring to memory record information stored in the compiler 19 and provide data and instructions. The access order information table 21a2 ' that is converted in the ROM 21a of the multi-core microcomputer 21 saved.

Wie vorstehend beschrieben ist, beinhaltet der Computer 10 als das Parallelisierungswerkzeug den Zugriffsreihenfolgeinformationsausgabeabschnitt 10f. Der Zugriffsreihenfolgeinformationsausgabeabschnitt 10f erzeugt die Zugriffsreihenfolgeinformationen 21a2, die die Zugriffsreihenfolge auf variable Daten und/oder konstante Daten angeben, die durch die mehreren Verarbeitungen MT1 bis MT8 erlangt und in dem Speicher in der Ausführungsreihenfolge der mehreren Verarbeitungen MT1 bis MT8 gespeichert werden, die in dem erzeugten parallelen Programm 21a enthalten sind. Demzufolge kann während der Ausführung des parallelen Programms 21a1 (21a1') die nachfolgend beschriebene fahrzeuginterne Vorrichtung 20 Verarbeitungseinheiten entsprechend Ausführungszielen erfassen und die erfassten Verarbeitungseinheiten mit den Zugriffsreihenfolgeinformationen 21a2 (21a2') vergleichen. Demzufolge kann, ob mehrere Verarbeitungseinheiten in der bestimmten Ausführungsreihenfolge ausgeführt wurden, einfach überwacht werden. Auf diese Weise kann die fahrzeuginterne Vorrichtung 20 funktionale Sicherheit während der Steuerung von Steuerzieleinrichtungen mit dem erzeugten parallelen Programm 21a1' sicherstellen.As described above, the computer includes 10 as the parallelization tool, the access-order information output section 10f , The access order information output section 10f generates the access order information 21a2 indicating the access order to variable data and / or constant data caused by the multiple processes MT1 to MT8 attained and in the memory in the Execution order of the multiple processes MT1 to MT8 stored in the generated parallel program 21a are included. As a result, during execution of the parallel program 21a1 ( 21a1 ' ) the vehicle-internal device described below 20 Capture processing units according to execution goals and the acquired processing units with the access order information 21a2 ( 21a2 ' ) to compare. As a result, whether multiple processing units have been executed in the particular execution order can be easily monitored. In this way, the in-vehicle device 20 functional safety during the control of control target devices with the generated parallel program 21a1 ' to ensure.

Eine Konfiguration der fahrzeuginternen Vorrichtung 20 wird nachfolgend beschrieben. Wie in 6 dargestellt ist, beinhaltet die fahrzeuginterne Vorrichtung 20 den Mehrkernmikrocomputer 21, eine Kommunikationseinheit 22, eine Sensoreinheit 23 und einen Eingabe-/Ausgabe-Port 24. Der Mehrkernmikrocomputer 21 beinhaltet ein ROM 21a, ein RAM 21b, einen ersten Kern 21c, einen zweiten Kern 21d und einen Überwachungsabschnitt 21e. Die fahrzeuginterne Vorrichtung 20 ist auf eine Brennkraftmaschinensteuervorrichtung, eine Hybridsteuervorrichtung und dergleichen anwendbar, die beispielsweise in einem Fahrzeug montiert sind. Ein Beispiel, das die fahrzeuginterne Vorrichtung 20 auf eine Brennkraftmaschinensteuervorrichtung anwendet, ist nachfolgend beschrieben.A configuration of the in-vehicle device 20 is described below. As in 6 is shown includes the in-vehicle device 20 the multi-core microcomputer 21 , a communication unit 22 , a sensor unit 23 and an input / output port 24 , The multi-core microcomputer 21 includes a ROM 21a , a ram 21b , a first core 21c , a second core 21d and a monitoring section 21e , The in-vehicle device 20 is applicable to an engine control device, a hybrid control device and the like, which are mounted, for example, in a vehicle. An example showing the in-vehicle device 20 to an engine control device is described below.

Beispielsweise führen der erste Kern 21c und der zweite Kern 21d Brennkraftmaschinensteuerung durch Ausführen des parallelen Programms 21a1' aus, das in dem ROM 21a gespeichert ist. Die Zugriffsreihenfolgeinformationstabelle 21a2', ist in den ROM21a ebenso wie das parallele Programm 21a1' gespeichert. Konstante Daten und dergleichen, die für die Brennkraftmaschinensteuerung verwendet werden, sind ebenso in den ROM 21a gespeichert. Das RAM 21b ist ein Speicher, der temporär variable Daten und dergleichen speichert, und auf ihn wird angemessen zugegriffen, wenn der Mehrkernmikrocomputer 21 das parallele Programm 21a1' ausführt. Die Kommunikationseinheit 22 kommuniziert mit anderen elektronischen Steuereinheiten (ECUs), die mittels eines fahrzeuginternen Nahbereichsnetzwerks (Local Area network, LAN) oder dergleichen verbunden sind. Die Sensoreinheit 23 beinhaltet unterschiedliche Sensoren zum Erfassen eines Brennkraftmaschinenzustands. Der Eingabe-/Ausgabe-Port 24 sendet und empfängt unterschiedliche Signale zum Steuern einer Brennkraftmaschine.For example, lead the first core 21c and the second core 21d Engine control by executing the parallel program 21a1 ' in the ROM 21a is stored. The access order information table 21a2 ' , is in the ROM21a as well as the parallel program 21a1 ' saved. Constant data and the like used for the engine control are also in the ROM 21a saved. The RAM 21b is a memory that stores temporarily variable data and the like, and it is appropriately accessed when the multi-core microcomputer 21 the parallel program 21a1 ' performs. The communication unit 22 communicates with other electronic control units (ECUs) connected by a local area network (LAN) or the like. The sensor unit 23 includes different sensors for detecting an engine condition. The input / output port 24 sends and receives different signals to control an internal combustion engine.

Der Überwachungsabschnitt 21e überwacht, ob das parallele Programm 21a1' in der korrekten Reihenfolge in dem ersten Kern 21c und dem zweiten Kern 21d ausgeführt wurde. Eine Konfiguration und eine Operation des Überwachungsabschnitts 21e wird nachfolgend im Detail mit Bezugnahme auf ein Blockschaltbild, das in 7 dargestellt ist, und ein Ablaufdiagramm von 8 beschrieben. 7 ist ein Blockschaltbild, das eine interne Konfiguration des Mehrkernmikrocomputers 21 darstellt. 8 ist ein Ablaufdiagramm, das Details einer Überwachungsverarbeitung darstellt, die durch den Überwachungsabschnitt 21e ausgeführt wird.The monitoring section 21e monitors whether the parallel program 21a1 ' in the correct order in the first core 21c and the second core 21d was executed. A configuration and operation of the monitoring section 21e will be described below in detail with reference to a block diagram shown in FIG 7 and a flowchart of FIG 8th described. 7 FIG. 16 is a block diagram showing an internal configuration of the multi-core microcomputer. FIG 21 represents. 8th FIG. 10 is a flowchart illustrating details of monitoring processing performed by the monitoring section. FIG 21e is performed.

Wie in 7 dargestellt ist, beinhaltet der erste Kern 21c, der ähnlich zu einem bekannten Kern ist, ein Anweisungsregister 21c1, ein Universalregister 21c2, einen Programmzähler (PC) 21c3, eine arithmetische Einheit 21c4 und anderes. Das Anweisungsregister hält Anweisungscodes zurück, die Anweisungen angeben, die in dem ersten Kern 21c ausgeführt werden. Die zurückgehaltenen Anweisungscodes im Anweisungsregister 21c1 werden durch einen nicht dargestellten Anweisungsdecodierungsabschnitt decodiert. Anweisungen entsprechend den Anweisungscodes werden ausgeführt. Das Universalregister 21c2 hält Daten zurück, die zur Berechnung verwendet werden, und hält Ergebnisse zurück, die durch Berechnung erlangt werden. Der Programmzähler 21c3 gibt eine Adresse einer gegenwärtig ausgeführten Anweisung an. Die Adresse wird jedes Mal inkrementiert, wenn eine Anweisung ausgeführt wird. Die Arithmetikeinheit 21c4 führt arithmetische Operationen wie Addition und Subtraktion, Multiplikation und Division und andere gemäß einer empfangenen Anweisung aus. Der zweite Kern 21d hat eine Konfiguration, die kleiner als die des ersten Kerns 21c ist.As in 7 is shown, includes the first core 21c , which is similar to a known kernel, an instruction register 21c1 , a universal register 21c2 , a program counter (PC) 21c3 , an arithmetic unit 21c4 and other things. The statement register retains instruction codes indicating instructions that are in the first core 21c be executed. The retained instruction codes in the instruction register 21c1 are decoded by an instruction decoding section, not shown. Instructions corresponding to the instruction codes are executed. The universal register 21c2 holds back data used in the calculation and keeps results obtained by calculation. The program counter 21c3 specifies an address of a currently executing statement. The address is incremented each time a statement is executed. The arithmetic unit 21c4 performs arithmetic operations such as addition and subtraction, multiplication and division, and others according to a received instruction. The second core 21d has a configuration smaller than that of the first core 21c is.

Der Überwachungsabschnitt 21e ist mit dem ersten Kern 21c und dem zweiten Kern 21d mittels eines Anweisungsbusses und eines Datenbusses verbunden. Der Überwachungsabschnitt 21e beinhaltet eine Speicherschutzeinheit (MPU) 21e1, einen zugriffsbezogenen Informationserlangungsabschnitt 21e2 und einen Übereinstimmungsbestimmungsabschnitt 21e3.The monitoring section 21e is with the first core 21c and the second core 21d connected by means of an instruction bus and a data bus. The monitoring section 21e includes a memory protection unit (MPU) 21e1 , an access-related information acquiring section 21e2 and a match determination section 21e3 ,

Beispielsweise verbietet die Speicherschutzeinheit 21e1 Zugriff auf eine Region außer einer vordefinierten Speicherregion durch jede Verarbeitung, die in dem parallelen Programm 21a1' ausgeführt werden soll, um Programme und Daten zu schützen, die in dem Speicher (ROM 21a, RAM 21b) gespeichert sind. Die Speicherschutzeinheit 21e1 kann individuell Speicherregionen, auf die zugegriffen werden darf, für jeden Kern definieren. Insbesondere, wenn der erste Kern 21c und der zweite Kern 21d versuchen auf den Speicher zuzugreifen, werden Adressinformationen, die Anweisungscodes speichern, oder Adressinformationen, die variable Daten speichern, an die Speicherschutzeinheit 21e1 beispielsweise mittels des Anweisungsbusses gesendet. Zu dieser Zeit senden der erste Kern 21c und der zweite Kern 21d ebenso Kerninformationen, die die jeweiligen Kerne angeben, an die Speicherschutzeinheit 21e1. Demnach kann die Speicherschutzeinheit 21e1 Adressinformationen, die die variablen Daten entsprechend einer Zugriffsanfrage angeben, Kerninformationen, die den Kern angeben, der den Zugriff anfordert, und Adressinformationen, die die Funktion zum Verarbeiten der angeforderten variablen Daten als eine Anweisung enthalten, zurückhalten.For example, the memory protection unit prohibits 21e1 Access to a region other than a predefined storage region by any processing that occurs in the parallel program 21a1 ' should be executed to protect programs and data stored in the memory (ROM 21a , RAM 21b ) are stored. The memory protection unit 21e1 can individually define storage regions that may be accessed for each core. Especially if the first core 21c and the second core 21d To attempt to access the memory, address information storing instruction codes or address information storing variable data is sent to the memory protection unit 21e1 for example, sent by means of the instruction bus. To this time send the first core 21c and the second core 21d as well, core information indicating the respective cores to the memory protection unit 21e1 , Accordingly, the memory protection unit 21e1 Address information indicating the variable data according to an access request, core information indicating the core requesting access, and address information containing the function for processing the requested variable data as an instruction.

Der zugriffsbezogene Informationserlangungsabschnitt 21e2 erlangt von der Speicherschutzeinheit 21e1 als zugriffsbezogene Informationen die vorhergehenden Adressinformationen, die die variablen Daten entsprechend der Zugriffsanforderung angeben, Kerninformationen, die den Kern angeben, der den Zugriff anfordert, und Adressinformationen, die die Funktion zum Verarbeiten der angeforderten variablen Daten als eine Anweisung speichern. Der Übereinstimmungsbestimmungsabschnitt 21e3 bestimmt, ob die zugriffsbezogenen Informationen, die durch den zugriffsbezogenen Informationserlangungsabschnitt 21e2 erlangt werden, der normalen Ausführungsreihenfolge des parallelen Programms 21a1' mit Bezug auf die Zugriffsreihenfolgeinformationstabelle, die in den ROM 21a des Speichers gespeichert ist, folgen. Wird bestimmt, dass das parallele Programm 21a1' nicht der normalen Ausführungsreihenfolge der parallelen Programme 21a1' folgt, gibt der Übereinstimmungsbestimmungsabschnitt 21e3 ein Abnormalitätserfassungssignal an einen nicht dargestellten Abnormalitätsverarbeitungsabschnitt der fahrzeuginternen Vorrichtung 20 aus. In Antwort auf dieses Abnormalitätserfassungssignal führt der Abnormalitätsverarbeitungsabschnitt beispielsweise eine Abnormalitätsverarbeitung wie Rücksetzen des Mehrkernmikrocomputers 21 der fahrzeuginternen Vorrichtung 20 und Ausfallsicherungsverarbeitung einschließlich Kraftstoffzufuhrunterbrechung aus.The Access Related Information Acquisition Section 21e2 obtained from the memory protection unit 21e1 as access-related information, the preceding address information indicating the variable data according to the access request, core information indicating the core requesting the access, and address information storing the function for processing the requested variable data as an instruction. The matching determination section 21e3 determines whether the access-related information provided by the access-related information acquisition section 21e2 be obtained, the normal execution order of the parallel program 21a1 ' with reference to the access order information table stored in the ROM 21a the memory is stored, follow. It is determined that the parallel program 21a1 ' not the normal execution order of the parallel programs 21a1 ' follows, gives the match determination section 21e3 an abnormality detection signal to an unillustrated abnormality processing section of the in-vehicle device 20 out. For example, in response to this abnormality detection signal, the abnormality processing section performs abnormality processing such as resetting the multi-core microcomputer 21 the in-vehicle device 20 and failsafe processing including fuel cut.

Details einer Überwachungsverarbeitung, die durch den Überwachungsabschnitt 21e ausgeführt wird, werden nachfolgend gemäß dem Ablaufdiagramm in 8 beschrieben.Details of monitoring processing performed by the monitoring section 21e are executed, are subsequently according to the flowchart in 8th described.

Bei der Anfangsverarbeitung von S100 initialisiert der Überwachungsabschnitt 21e eine Referenzposition der Zugriffsreihenfolgeinformationstabelle 21a2' für jede Aufgabe zur Zeit eines Aufwachens jeder Aufgabe. Demzufolge werden Informationen, die zum Bestimmen einer Übereinstimmung mit zugriffsbezogenen Informationen verwendet werden, auf die ersten Informationen in der Zugriffsreihenfolge für alle Daten festgelegt, die in der Zugriffsreihenfolgeinformationstabelle 21a2' beinhaltet sind. Ob die gegenwärtige Zeit die Aufwachzeit jeder Aufgabe ist, kann basierend auf Adressinformationen entsprechend der ersten Anweisung jeder Aufgabe und Kerninformationen, die den Kern zum Ausführen der Aufgabe angeben, bestimmt werden.In the initial processing of S100 the monitoring section initializes 21e a reference position of the access order information table 21a2 ' for each task at the time of awakening each task. As a result, information used to determine a match with access-related information is set to the first information in the access order for all data included in the access-order information table 21a2 ' are included. Whether the current time is the wakeup time of each task can be determined based on address information corresponding to the first instruction of each task and core information indicating the kernel for executing the task.

In der anschließenden Verarbeitung von S110 wird bestimmt, ob eine Zugriffsanforderung zum Zugreifen auf variable oder konstante Daten, die in dem Speicher (RAM 21a, RAM 21b) gespeichert sind und in der Zugriffsreihenfolgeinformationstabelle 21a2' beinhaltet sind, abgegeben wurde. Diese Bestimmung kann basierend auf Adressinformationen bezüglich Daten entsprechend einem Ziel der Zugriffsanforderung getätigt werden. Wird bestimmt, dass die Anforderung eine Zugriffanforderung für auf im Speicher gespeicherte Daten ist, die in der Zugriffsreihenfolgeinformationstabelle 21a2' beinhaltet sind, fährt die Verarbeitung mit S120 fort. Andererseits, wenn bestimmt wird, dass die Anforderung keine Datenzugriffsanforderung ist, wird die Verarbeitung S110 zur Bereitschaft wiederholt.In the subsequent processing of S110 It is determined whether an access request for accessing variable or constant data stored in the memory (RAM 21a , RAM 21b ) and in the access order information table 21a2 ' are included. This determination may be made based on address information regarding data corresponding to a destination of the access request. If it is determined that the request is an access request for data stored in memory stored in the access order information table 21a2 ' are included, the processing continues S120 continued. On the other hand, when it is determined that the request is not a data access request, the processing becomes S110 repeated for readiness.

In der Verarbeitung von S120 werden die Adressinformationen bezüglich der Daten entsprechend dem Ziel der Zugriffsanforderung von der Speicherschutzeinheit 21e2 erlangt. In der nachfolgenden Verarbeitung von S130 werden Kerninformationen, die den Kern angeben, der einen Zugriff auf die im Speicher gespeicherten Daten anfordert, von der Speicherschutzeinheit 21e1 erlangt. In der Verarbeitung von S140 werden ferner die Adressinformationen, die die Funktion zum Verarbeiten der angeforderten Daten als eine Anweisung speichern, ferner erlangt. In der Verarbeitung von S150 werden die drei Informationsstücke (zugriffsbezogene Informationen), die mit den Verarbeitungen von S120 bis S140 erlangt werden, mit Informationen verglichen, die die Zugriffsreihenfolge entsprechend einer gegenwärtigen Referenzposition der entsprechenden Daten in der Zugriffsreihenfolgeinformationstabelle 21a2' angeben.In the processing of S120 becomes the address information regarding the data according to the destination of the access request from the storage protection unit 21e2 obtained. In the subsequent processing of S130 Core information indicating the core requesting access to the data stored in the memory is provided by the memory protection unit 21e1 obtained. In the processing of S140 Further, the address information storing the function for processing the requested data as an instruction is further obtained. In the processing of S150 are the three pieces of information (access related information) associated with the processing of S120 to S140 obtained are compared with information indicating the access order corresponding to a current reference position of the corresponding data in the access order information table 21a2 ' specify.

In der Verarbeitung von S160 wird bestimmt, ob die zugriffsbezogenen Informationen mit den Informationen übereinstimmen, die die gegenwärtige Referenzposition angeben, das heißt, ob die Datenadressinformationen, die Kerninformationen und die Funktionsadressinformationen, die in den zugriffsbezogenen Informationen beinhaltet sind, mit den Zugriffsreihenfolgeinformationen in der Vergleichsverarbeitung von S150 übereinstimmen. Wenn eine Übereinstimmung im Vergleichsergebnis in der Bestimmungsverarbeitung bestimmt wird, fährt die Verarbeitung mit S170 fort. Andererseits, wenn keine Übereinstimmung in dem Vergleichsergebnis bestimmt wird, fährt die Verarbeitung mit S180 fort.In the processing of S160 whether or not the access-related information matches the information indicating the current reference position, that is, whether the data-address information, the core information, and the function-address information included in the access-related information is determined by the access-order information in the comparison processing of S150 to match. If a match is determined in the comparison result in the determination processing, the processing proceeds S170 continued. On the other hand, if no match is determined in the comparison result, the processing proceeds S180 continued.

Bei S170 wird die Referenzposition der Daten entsprechend dem Ziel der Übereinstimmungsbestimmung in der Zugriffsreihenfolgeinformationstabelle 21a2' inkrementiert. Auf diese Weise können die Zugriffsreihenfolgeinformationen, die mit den zugriffsbezogenen Informationen verglichen werden, auf Informationen entsprechend einem nächsten Zugriff zur Zeit einer Abgabe einer Anforderung für einen nächsten Zugriff auf dieselben Daten aktualisiert werden. Andererseits geben bei S180 die erlangten zugriffsbezogenen Informationen eine Differenz von der regulären Reihenfolge, die in der Zugriffsreihenfolgeinformationstabelle gespeichert ist, an. Ein Abnormalitätserfassungssignal wird ausgegeben, unter der Berücksichtigung, dass irgendeine Abnormalität verursacht wurde.at S170 becomes the reference position of the data according to the purpose of the coincidence determination in the access order information table 21a2 ' incremented. In this way, the access order information associated with the access-related information is updated to information corresponding to a next access at the time of issuing a request for a next access to the same data. On the other hand, give S180 the obtained access-related information is a difference from the regular order stored in the access-order information table. An abnormality detection signal is output, considering that any abnormality has been caused.

In der vorstehend beschriebenen Verarbeitung entsprechen die Verarbeitungen von S120 bis S140 dem zugriffsbezogenen Informationserlangungsabschnitt 21e2 des Blockschaltbilds von 7, während die Verarbeitung von S150 bis S180 den Übereinstimmungsbestimmungsabschnitt 21e3 entspricht.In the above-described processing, the processes of FIG S120 to S140 the access-related information acquisition section 21e2 of the block diagram of 7 while processing of S150 to S180 the matching determination section 21e3 equivalent.

Die bevorzugte Ausführungsform der vorliegenden Offenbarung wurde beschrieben. Jedoch ist die vorliegende Ausführungsform nicht auf die vorstehende Ausführungsform beschränkt. Unterschiedliche Modifikationen können getätigt werden, ohne den Umfang und Geist der vorliegenden Offenbarung zu verlassen.The preferred embodiment of the present disclosure has been described. However, the present embodiment is not limited to the above embodiment. Various modifications may be made without departing from the scope and spirit of the present disclosure.

(Erste Modifikation)(First modification)

Beispielsweise wird in der vorstehend beschriebenen Ausführungsform die Zugriffsreihenfolgeinformationstabelle 21a2' durch Definieren der Verarbeitung zum Zugreifen auf Daten basierend auf dem Kern, der die Verarbeitung ausführt, und der Funktion, die die Verarbeitung angibt, für alle Daten, die in den Speicher in einer Verarbeitungsreihenfolge gespeichert sind, definiert. Jedoch sind die Inhalte der Zugriffsreihenfolgeinformationstabelle 21a2' nicht auf diese Inhalte beschränkt.For example, in the above-described embodiment, the access order information table becomes 21a2 ' by defining the processing for accessing data based on the kernel executing the processing and the function indicating the processing for all data stored in the memory in a processing order. However, the contents of the access order information table are 21a2 ' not limited to this content.

Beispielsweise kann als die Zugriffsreihenfolgeinformationstabelle 21a2' die Funktion, die die Verarbeitung zum Zugreifen auf alle Daten angibt, die in dem Speicher gespeichert werden, in der Zugriffsreihenfolge zur Zeit des Ausführens des parallelen Programms 21a1' ohne Klassifizierung aller Daten gespeichert werden. Die Zugriffsreihenfolgeinformationstabelle 21a2' kann ferner Kerninformationen beinhalten, die den Kern zum Ausführen jeweiliger Verarbeitungen angeben. Sogar wenn die so konfigurierte Zugriffsreihenfolgeinformationstabelle 21a2' verwendet wird, kann, ob das parallele Programm 21a1' in der korrekten Reihenfolge ausgeführt wird, die vorab geplant wird, ähnlich bestimmt werden.For example, as the access order information table 21a2 ' the function indicating the processing for accessing all the data stored in the memory in the access order at the time of executing the parallel program 21a1 ' stored without classification of all data. The access order information table 21a2 ' may further include core information indicating the core for performing respective processings. Even if the access order information table thus configured 21a2 ' can be used, whether the parallel program 21a1 ' is executed in the correct order, which is planned in advance, similarly determined.

Wenn jedoch die Reihenfolge der Funktionen, die die Verarbeitung zum Zugreifen auf die im Speicher gespeicherten Daten angibt, die Zugriffsreihenfolgeinfomationen ohne Klassifizierung für alle Daten ist, werden die mehreren Verarbeitungen MT paralleler Verarbeitung in den mehreren Kernen 21c und 21d unterworfen und können simultan auf den Speicher zugreifen. Ferner kann die Reihenfolgebeziehung der mehreren Verarbeitungen MT geändert werden. In diesem Fall, wenn mehrere Verarbeitungen, die paralleler Verarbeitung unterworfen sind, jeweils auf Daten in einer Reihenfolge von Funktionen zugreifen, die jeweils eine Verarbeitung zum Zugreifen auf im Speicher gespeicherte Daten angeben, ist es erforderlich, simultanen Zugriff durch Funktionen zu erlauben, die diese Verarbeitungen angeben, oder Wechseln der Reihenfolgebeziehung zu erlauben. Demzufolge, wenn mehrere Verarbeitungen, die paralleler Verarbeitung unterworfen sind, beispielsweise in der n-ten Zugriffsreihenfolge bzw. mit dem n-ten Zugriffsrang vorliegen, sind Funktionen, die die mehreren Verarbeitungen angeben, als Verarbeitungen zum Zugreifen in der n-ten Reihenfolge bzw. mit den n-ten Zugriffsrang definiert. In diesem Fall werden eine zeitliche Reihenfolgebeziehung und ein konkurrierender Zugriff durch diese Funktionen nicht berücksichtigt.However, if the order of the functions indicating the processing for accessing the data stored in the memory is the unclassified access order information for all the data, the plural processes will become MT parallel processing in the multiple cores 21c and 21d subjected and can access the memory simultaneously. Further, the order relationship of the plurality of processes MT be changed. In this case, when a plurality of processes subjected to parallel processing each access data in a sequence of functions each indicating a processing for accessing data stored in the memory, it is necessary to allow simultaneous access by functions including these Specify processings or allow switching of the order relationship. Accordingly, when there are plural processes subjected to parallel processing, for example, in the n-th access order and the n-th access rank, respectively, functions indicating the plurality of processings are processes for accessing in the n-th order or defined with the nth access rank. In this case, temporal order relationship and concurrent access are not taken into account by these functions.

(Zweite Modifikation)(Second modification)

Gemäß der in der Ausführungsform beschriebenen Konfiguration beinhaltet der Überwachungsabschnitt 21e die Speicherschutzeinheit 21e1. Jedoch kann die Speicherschutzeinheit 21e1 separiert werden und unabhängig vom Überwachungsabschnitt 21e zum Konfigurieren des Überwachungsabschnitts 21e und der Speicherschutzeinheit 21e1 als separate Schaltungen gemacht werden.According to the configuration described in the embodiment, the monitoring section includes 21e the memory protection unit 21e1 , However, the memory protection unit 21e1 be separated and independent of the monitoring section 21e to configure the monitoring section 21e and the memory protection unit 21e1 be made as separate circuits.

(Dritte Modifikation)(Third modification)

In der vorstehend beschriebenen Ausführungsform ist die eine Speicherschutzeinheit 21g1 für den gesamten Speicher wie den ROM 21a und den RAM 21b vorgesehen. Jedoch können mehrere der Speicherschutzeinheiten 21e1 einzeln für das ROM 21a und das RAM 21b und andere vorgesehen sein.In the embodiment described above, the one memory protection unit 21g1 for the entire memory like the ROM 21a and the RAM 21b intended. However, several of the memory protection units 21e1 individually for the ROM 21a and the RAM 21b and others are provided.

Die Ablaufdiagramme oder die Verarbeitungen in Ablaufdiagrammen der vorliegenden Anmeldung beinhalten mehrere Schritt (bzw. Abschnitte), die jeweils als S100 oder dergleichen bezeichnet werden. Jeder dieser Schritte kann in mehrere Unterschritte unterteilt werden, wobei mehrere Schritte zu einem einzelnen Schritt kombiniert werden können.The flowcharts or processings in flowcharts of the present application include a plurality of steps (or sections), each referred to as S100 or the like. Each of these steps can be divided into several sub-steps, whereby several steps can be combined into a single step.

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 2015001807 A [0004, 0030]JP 2015001807A [0004, 0030]
  • JP 2015 [0023, 0028]JP 2015 [0023, 0028]
  • JP 1807 A [0023, 0028]JP 1807 A [0023, 0028]
  • JP 20151807 A [0028]JP 20151807 A [0028]

Claims (24)

Parallelisierungsverfahren zum Erzeugen eines parallelen Programms für einen Mehrkernmikrocomputer (21), der mehrere Kerne (21c, 21d) beinhaltet, aus einem Einzelprogramm für einen Einzelkernmikrocomputer, der einen Kern beinhaltet, wobei das Parallelisierungsverfahren umfasst: einen Erzeugungsschritt für ein paralleles Programm, der eine Abhängigkeitsbeziehung zwischen mehreren Verarbeitungseinheiten (MT1 bis MT8) analysiert, die in dem Einzelprogramm beinhaltet sind, eine Zuteilung der mehreren Verarbeitungseinheiten den mehreren Kernen und eine Ausführungsreihenfolge der mehreren Verarbeitungseinheiten basierend auf der analysierten Abhängigkeitsbeziehung zwischen den mehreren Verarbeitungseinheiten bestimmt, und das parallele Programm erzeugt, das die mehreren Verarbeitungseinheiten veranlasst, gemäß der bestimmten Zuteilung den mehreren Kernen und der Ausführungsreihenfolge ausgeführt zu werden; und einen Ausführungsreihenfolgeinformationserzeugungsschritt, der Zugriffsreihenfolgeinformationen beim Ausführen einer Programmoperation durch den Mehrkernmikrocomputer gemäß der Ausführungsreihenfolge der mehreren Verarbeitungseinheiten erzeugt, die durch den Erzeugungsschritt für ein paralleles Programm bestimmt wird.A parallelization method for generating a parallel program for a multicore microcomputer (21) including a plurality of cores (21c, 21d) from a single program for a single core microcomputer including a core, the parallelization method comprising: a parallel program generation step, analyze a dependency relationship between multiple processing units (MT1 to MT8) included in the single program, determines an allocation of the plurality of processing units to the plurality of cores and an execution order of the plurality of processing units based on the analyzed dependency relationship between the plurality of processing units, and generates the parallel program that causes the plurality of processing units to be executed according to the determined allocation to the plural cores and the execution order; and an execution order information generation step that generates access order information upon execution of a program operation by the multi-core microcomputer according to the execution order of the plurality of processing units determined by the parallel program generation step. Parallelisierungsverfahren gemäß Anspruch 1, wobei: die Zugriffsreihenfolgeinformationen eine Reihenfolge der Verarbeitungseinheiten beinhaltet, die auf gemeinsame Daten zugreifen, die in einem Speicher in den mehreren Verarbeitungseinheiten gespeichert sind.Parallelization method according to Claim 1 wherein: the access order information includes an order of the processing units accessing common data stored in a memory in the plurality of processing units. Parallelisierungsverfahren gemäß Anspruch 2, wobei: die Reihenfolge der Verarbeitungseinheiten, die auf die gemeinsamen Daten zugreifen, als eine Reihenfolge von Funktionen spezifiziert ist, die in den jeweiligen Verarbeitungseinheiten verwendet werden.Parallelization method according to Claim 2 wherein: the order of the processing units accessing the shared data is specified as a sequence of functions used in the respective processing units. Parallelisierungsverfahren gemäß Anspruch 2 oder 3, wobei: die Zugriffsreihenfolgeinformationen ebenso Informationen beinhalten, die mindestens einen Kern angeben, dem die Verarbeitungseinheiten, die auf die gemeinsamen Daten zugreifen, zugeteilt sind.Parallelization method according to Claim 2 or 3 wherein: the access order information also includes information indicating at least one core to which the processing units accessing the shared data are allotted. Parallelisierungsverfahren gemäß Anspruch 1, wobei: die Zugriffsreihenfolgeinformationen eine Reihenfolge von Funktionen beinhalten, die verwendet werden, wenn die mehreren Verarbeitungseinheiten auf Daten zugreifen, die in einem Speicher gespeichert sind.Parallelization method according to Claim 1 wherein: the access order information includes a sequence of functions used when the plurality of processing units access data stored in a memory. Parallelisierungsverfahren gemäß Anspruch 5, wobei: die Zugriffsreihenfolgeinformationen ebenso Informationen beinhalten, die mindestens einen Kern angeben, dem die Verarbeitungseinheiten zugeteilt sind, die die Funktionen zum Zugreifen auf Daten verwenden, die in dem Speicher gespeichert sind.Parallelization method according to Claim 5 wherein: the access order information also includes information indicating at least one core to which the processing units using the functions for accessing data stored in the memory are assigned. Parallelisierungswerkzeug zum Erzeugen eines parallelen Programms für einen Mehrkernmikrocomputer (21), der mehrere Kerne (21c, 21d) beinhaltet, aus einem Einzelprogramm für einen Einzelkernmikrocomputer, der einen Kern beinhaltet, wobei das Parallelisierungswerkzeug aufweist: einen Erzeugungsabschnitt für ein paralleles Programm, der eine Abhängigkeitsbeziehung zwischen mehreren Verarbeitungseinheiten (MT1 bis MT8) analysiert, die in dem Einzelprogramm beinhaltet sind, eine Zuteilung der mehreren Verarbeitungseinheiten den mehreren Kernen und eine Ausführungsreihenfolge der mehreren Verarbeitungseinheiten basierend auf der analysierten Abhängigkeitsbeziehung zwischen den mehreren Verarbeitungseinheiten bestimmt, und das parallele Programm erzeugt, das die mehreren Verarbeitungseinheiten veranlasst, gemäß der bestimmten Zuteilung den mehreren Kernen und der Ausführungsreihenfolge ausgeführt zu werden; und einen Ausführungsreihenfolgeinformationserzeugungsabschnitt, der Zugriffsreihenfolgeinformationen beim Ausführen einer Programmoperation durch den Mehrkernmikrocomputer gemäß der Ausführungsreihenfolge der mehreren Verarbeitungseinheiten erzeugt, die durch den Erzeugungsschritt für ein paralleles Programm bestimmt wird.A parallelization tool for generating a parallel program for a multi-core microcomputer (21) including a plurality of cores (21c, 21d) from a single program for a single core microcomputer including a core, the parallelization tool comprising: a parallel program generation section which analyze a dependency relationship between multiple processing units (MT1 to MT8) included in the single program, determines an allocation of the plurality of processing units to the plurality of cores and an execution order of the plurality of processing units based on the analyzed dependency relationship between the plurality of processing units, and generates the parallel program that causes the plurality of processing units to be executed according to the determined allocation to the plural cores and the execution order; and an execution order information generating section that generates access order information upon execution of a program operation by the multi-core microcomputer according to the execution order of the plurality of processing units determined by the parallel program generation step. Parallelisierungswerkzeug gemäß Anspruch 7, wobei: die Zugriffsreihenfolgeinformationen eine Reihenfolge der Verarbeitungseinheiten beinhaltet, die auf gemeinsame Daten zugreifen, die in einem Speicher in den mehreren Verarbeitungseinheiten gespeichert sind.Parallelization tool according to Claim 7 wherein: the access order information includes an order of the processing units accessing common data stored in a memory in the plurality of processing units. Parallelisierungswerkzeug gemäß Anspruch 8, wobei: die Reihenfolge der Verarbeitungseinheiten, die auf die gemeinsamen Daten zugreifen, als eine Reihenfolge von Funktionen spezifiziert ist, die in den jeweiligen Verarbeitungseinheiten verwendet werden.Parallelization tool according to Claim 8 wherein: the order of the processing units accessing the shared data is specified as a sequence of functions used in the respective processing units. Parallelisierungswerkzeug gemäß Anspruch 8 oder 9, wobei: die Zugriffsreihenfolgeinformationen ebenso Informationen beinhalten, die mindestens einen Kern angeben, dem die Verarbeitungseinheiten, die auf die gemeinsamen Daten zugreifen, zugeteilt sind.Parallelization tool according to Claim 8 or 9 wherein: the access order information also includes information indicating at least one core to which the processing units accessing the shared data are allotted. Parallelisierungswerkzeug gemäß Anspruch 7, wobei: die Zugriffsreihenfolgeinformationen eine Reihenfolge von Funktionen beinhalten, die verwendet werden, wenn die mehreren Verarbeitungseinheiten auf Daten zugreifen, die in einem Speicher gespeichert sind. Parallelization tool according to Claim 7 wherein: the access order information includes a sequence of functions used when the plurality of processing units access data stored in a memory. Parallelisierungswerkzeug gemäß Anspruch 11, wobei: die Zugriffsreihenfolgeinformationen ebenso Informationen beinhalten, die mindestens einen Kern angeben, dem die Verarbeitungseinheiten zugeteilt sind, die die Funktionen zum Zugreifen auf Daten verwenden, die in dem Speicher gespeichert sind.Parallelization tool according to Claim 11 wherein: the access order information also includes information indicating at least one core to which the processing units using the functions for accessing data stored in the memory are assigned. Mehrkernmikrocomputer (21) der eine Steuerzieleinrichtung durch Ausführen eines parallelen Programms für den Mehrkernmikrocomputer (21) steuert, der mehrere Kerne (21c, 21d) beinhaltet, wobei das parallele Programm aus einem Einzelprogramm für einen Einzelkernmikrocomputer erzeugt wird, der einen Kern beinhaltet, wobei: das parallele Programm (21a1) ein erzeugtes Programm ist, das mehrere Verarbeitungseinheiten (MT1 bis MT8), die in dem Einzelprogramm beinhaltet sind, veranlasst, gemäß einer Zuteilung der mehreren Verarbeitungseinheiten den mehreren Kernen und einer Ausführungsreihenfolge der mehreren Verarbeitungseinheiten ausgeführt zu werden, wobei die Zuteilung und die Ausführungsreihenfolge basierend auf einer Abhängigkeitsbeziehung der mehreren Verarbeitungseinheiten bestimmt werden; und der Mehrkernmikrocomputer aufweist einen Speicherabschnitt (21a), der Zugriffsreihenfolgeinformationen (21a2) beim Ausführen einer Programmoperation durch den Mehrkernmikrocomputer gemäß der Ausführungsreihenfolge der mehreren Verarbeitungseinheiten speichert, die durch das parallele Programm ausgeführt werden, und einen Überwachungsabschnitt (21i), der Informationen bezüglich der Verarbeitungseinheiten, die in den mehreren Kernen ausgeführt werden, erlangt und überwacht, ob die mehreren Verarbeitungseinheiten in einer Reihenfolge entsprechend der Zugriffsreihenfolgeinformationen ausgeführt werden, die in dem Speicherabschnitt gespeichert sind.A multi-core microcomputer (21) which controls a control target device by executing a parallel program for the multi-core microcomputer (21) including a plurality of cores (21c, 21d), the parallel program being generated from a single-core microcomputer individual program including a core; in which: the parallel program (21a1) is a generated program that causes a plurality of processing units (MT1 to MT8) included in the individual program to be executed according to an allocation of the plurality of processing units to the plural cores and an execution order of the plurality of processing units Allocation and the execution order are determined based on a dependency relationship of the plurality of processing units; and having the multi-core microcomputer a memory section (21a) which stores access order information (21a2) in execution of a program operation by the multi-core microcomputer according to the execution order of the plurality of processing units executed by the parallel program, and a monitor section (21i) that obtains information regarding the processing units that are executed in the plurality of cores, and monitors whether the plurality of processing units are executed in an order according to the access-order information stored in the memory section. Mehrkernmikrocomputer gemäß Anspruch 13, ferner aufweisend: einen Speicher (21a, 21b), der Daten speichert, wobei: die Zugriffsreihenfolgeinformationen eine Reihenfolge der Verarbeitungseinheiten beinhaltet, die auf gemeinsame Daten zugreifen, die in dem Speicher in den mehreren Verarbeitungseinheiten gespeichert sind.Multi-core microcomputer according to Claim 13 , further comprising: a memory (21a, 21b) storing data, wherein: the access-order information includes an order of the processing units accessing common data stored in the memory in the plurality of processing units. Mehrkernmikrocomputer gemäß Anspruch 14, wobei: die Reihenfolge der Verarbeitungseinheiten, die auf die gemeinsamen Daten zugreifen, als eine Reihenfolge von Funktionen spezifiziert ist, die in den jeweiligen Verarbeitungseinheiten verwendet werden.Multi-core microcomputer according to Claim 14 wherein: the order of the processing units accessing the shared data is specified as a sequence of functions used in the respective processing units. Mehrkernmikrocomputer gemäß Anspruch 14 oder 15, wobei: die Zugriffsreihenfolgeinformationen ebenso Informationen beinhalten, die mindestens einen Kern angeben, dem die Verarbeitungseinheiten, die auf die gemeinsamen Daten zugreifen, zugeteilt sind.Multi-core microcomputer according to Claim 14 or 15 wherein: the access order information also includes information indicating at least one core to which the processing units accessing the shared data are allotted. Mehrkernmikrocomputer gemäß Anspruch 13, ferner aufweisend: einen Speicher (21a, 21b), der Daten speichert, wobei: die Zugriffsreihenfolgeinformationen eine Reihenfolge von Funktionen beinhalten, die verwendet werden, wenn die mehreren Verarbeitungseinheiten auf Daten zugreifen, die in dem Speicher gespeichert sind.Multi-core microcomputer according to Claim 13 , further comprising: a memory (21a, 21b) storing data, wherein: the access-order information includes a sequence of functions used when the plurality of processing units access data stored in the memory. Mehrkernmikrocomputer gemäß Anspruch 17, wobei: die Zugriffsreihenfolgeinformationen ebenso Informationen beinhalten, die mindestens einen Kern angeben, dem die Verarbeitungseinheiten zugeteilt sind, die die Funktionen zum Zugreifen auf Daten verwenden, die in dem Speicher gespeichert sind.Multi-core microcomputer according to Claim 17 wherein: the access order information also includes information indicating at least one core to which the processing units using the functions for accessing data stored in the memory are assigned. Fahrzeuginterne Vorrichtung (20), die eine Steuerzieleinrichtung durch Ausführen eines parallelen Programms für einen Mehrkernmikrocomputer (21) steuert, der mehrere Kerne (21c, 21d) beinhaltet, wobei das parallele Programm aus einem Einzelprogramm für einen Einzelkernmikrocomputer erzeugt wird, der einen Kern beinhaltet, wobei: das parallele Programm (21a1) ein erzeugtes Programm ist, das mehrere Verarbeitungseinheiten (MT1 bis MT8), die in dem Einzelprogramm beinhaltet sind, veranlasst, gemäß einer Zuteilung der mehreren Verarbeitungseinheiten den mehreren Kernen und einer Ausführungsreihenfolge der mehreren Verarbeitungseinheiten ausgeführt zu werden, wobei die Zuteilung und die Ausführungsreihenfolge basierend auf einer Abhängigkeitsbeziehung der mehreren Verarbeitungseinheiten bestimmt werden; und die fahrzeuginterne Vorrichtung aufweist einen Speicherabschnitt (21a), der Zugriffsreihenfolgeinformationen (21a2) beim Ausführen einer Programmoperation durch den Mehrkernmikrocomputer gemäß der Ausführungsreihenfolge der mehreren Verarbeitungseinheiten speichert, die durch das parallele Programm ausgeführt werden, und einen Überwachungsabschnitt (21i), der Informationen bezüglich der Verarbeitungseinheiten, die in den mehreren Kernen ausgeführt werden, erlangt und überwacht, ob die mehreren Verarbeitungseinheiten in einer Reihenfolge entsprechend der Zugriffsreihenfolgeinformationen ausgeführt werden, die in dem Speicherabschnitt gespeichert sind.An in-vehicle device (20) which controls a control target device by executing a parallel program for a multi-core microcomputer (21) including a plurality of cores (21c, 21d), the parallel program being generated from a single program for a single-core microcomputer including a core, wherein: the parallel program (21a1) is a generated program that causes a plurality of processing units (MT1 to MT8) included in the individual program to be executed according to an allocation of the plurality of processing units to the plural cores and an execution order of the plurality of processing units; wherein the allocation and the execution order are determined based on a dependency relationship of the plurality of processing units; and the in-vehicle device has a storage section (21a) which stores access order information (21a2) in execution of a program operation by the multi-core microcomputer according to the execution order of the plurality of processing units executed by the parallel program, and a monitor section (21i) for information regarding the Processing units executing in the plural cores obtains and monitors whether the plural processing units are arranged in an order corresponding to Access order information is stored, which are stored in the memory section. Fahrzeuginterne Vorrichtung gemäß Anspruch 19, ferner aufweisend: einen Speicher (21a, 21b), der Daten speichert, wobei: die Zugriffsreihenfolgeinformationen eine Reihenfolge der Verarbeitungseinheiten beinhaltet, die auf gemeinsame Daten zugreifen, die in dem Speicher in den mehreren Verarbeitungseinheiten gespeichert sind.In-vehicle device according to Claim 19 , further comprising: a memory (21a, 21b) storing data, wherein: the access-order information includes an order of the processing units accessing common data stored in the memory in the plurality of processing units. Fahrzeuginterne Vorrichtung gemäß Anspruch 20, wobei: die Reihenfolge der Verarbeitungseinheiten, die auf die gemeinsamen Daten zugreifen, als eine Reihenfolge von Funktionen spezifiziert ist, die in den jeweiligen Verarbeitungseinheiten verwendet werden.In-vehicle device according to Claim 20 wherein: the order of the processing units accessing the shared data is specified as a sequence of functions used in the respective processing units. Fahrzeuginterne Vorrichtung gemäß Anspruch 20 oder 21, wobei: die Zugriffsreihenfolgeinformationen ebenso Informationen beinhalten, die mindestens einen Kern angeben, dem die Verarbeitungseinheiten, die auf die gemeinsamen Daten zugreifen, zugeteilt sind.In-vehicle device according to Claim 20 or 21 wherein: the access order information also includes information indicating at least one core to which the processing units accessing the shared data are allotted. Fahrzeuginterne Vorrichtung gemäß Anspruch 19, ferner aufweisend: einen Speicher (21a, 21b), der Daten speichert, wobei: die Zugriffsreihenfolgeinformationen eine Reihenfolge von Funktionen beinhalten, die verwendet werden, wenn die mehreren Verarbeitungseinheiten auf Daten zugreifen, die in dem Speicher gespeichert sind.In-vehicle device according to Claim 19 , further comprising: a memory (21a, 21b) storing data, wherein: the access-order information includes a sequence of functions used when the plurality of processing units access data stored in the memory. Fahrzeuginterne Vorrichtung gemäß Anspruch 23, wobei: die Zugriffsreihenfolgeinformationen ebenso Informationen beinhalten, die mindestens einen Kern angeben, dem die Verarbeitungseinheiten zugeteilt sind, die die Funktionen zum Zugreifen auf Daten verwenden, die in dem Speicher gespeichert sind.In-vehicle device according to Claim 23 wherein: the access order information also includes information indicating at least one core to which the processing units using the functions for accessing data stored in the memory are assigned.
DE102019202228.6A 2018-02-21 2019-02-19 Parallelization method, parallelization tool, multi-core microcomputer and in-vehicle device Pending DE102019202228A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2018028803 2018-02-21
JP2018-28803 2018-02-21
JP2018171800A JP7095513B2 (en) 2018-02-21 2018-09-13 Multi-core microcomputers and in-vehicle devices
JP2018-171800 2018-09-13

Publications (1)

Publication Number Publication Date
DE102019202228A1 true DE102019202228A1 (en) 2019-08-22

Family

ID=67482302

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019202228.6A Pending DE102019202228A1 (en) 2018-02-21 2019-02-19 Parallelization method, parallelization tool, multi-core microcomputer and in-vehicle device

Country Status (1)

Country Link
DE (1) DE102019202228A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115220990A (en) * 2021-12-09 2022-10-21 广州汽车集团股份有限公司 Multi-core system program flow monitoring method, device, equipment and storage medium
CN115220990B (en) * 2021-12-09 2024-04-19 广州汽车集团股份有限公司 Multi-core system program flow monitoring method, device, equipment and storage medium

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

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115220990A (en) * 2021-12-09 2022-10-21 广州汽车集团股份有限公司 Multi-core system program flow monitoring method, device, equipment and storage medium
CN115220990B (en) * 2021-12-09 2024-04-19 广州汽车集团股份有限公司 Multi-core system program flow monitoring method, device, equipment and storage medium

Similar Documents

Publication Publication Date Title
DE102014211047A1 (en) Parallelization compilation method, parallelization compiler, parallelization compiler device and on-board device
DE102016214786A1 (en) Application profiling job management system, program and method
DE112013001747T5 (en) Optimizing the linking of instructions
DE102017210126A1 (en) Parallelization method, parallelization tool and in-vehicle device
DE102016223939A1 (en) Parallelization method, parallelization tool and on-board device
DE102012209789B4 (en) ON-VEHICLE ELECTRICAL CONTROL DEVICE
DE102016204963A1 (en) Parallelization compilation method, parallelization compiler and vehicle device
DE102017213160B4 (en) Compilation for node device GPU-based parallel processing
DE112013001735T5 (en) Optimizing the linking of instructions
DE102016208339A1 (en) PARALLELIZING COMPILING METHOD, PARALLELIZING COMPILER AND VEHICLE-ASSOCIATED DEVICE
DE102016219403A1 (en) PARALLELIZATION PROCESSING, PARALLELIZATION TOOL AND VEHICLE-ASSIGNED DEVICE
DE102018206720A1 (en) Method for performing a software update in a control unit of a motor vehicle and a correspondingly configured motor vehicle
DE102016204970A1 (en) Parallelization compilation method, parallelization complicator and vehicle device
DE102016204960A1 (en) Parallelization compilation method, parallelization compiler and vehicle device
DE102019202228A1 (en) Parallelization method, parallelization tool, multi-core microcomputer and in-vehicle device
DE102016220340A1 (en) PARALLELIZATION METHOD, PARALLELIZATION TOOL AND VEHICLE-BUILDER DEVICE
DE102019202870A1 (en) Parallelization method, parallelization tool and multi-core microcomputer
DE102021129862A1 (en) Method and device for identifying hardware performance count events for detecting and classifying malware or workload using artificial intelligence
EP3705993B1 (en) System and method for locating and identifying computing nodes in a network
DE102017216745A1 (en) Determination of vehicle-specific adjustments for a vehicle fleet
CN107122287B (en) System performance analysis method and device
DE102019207629A1 (en) Multi-core microcomputers and parallelization processes
DE102016201614A1 (en) Parallelization compilation method, parallelization compiler and electronic device
DE102019205674A1 (en) Parallelization method, parallelizing tool and multi-core microcomputer
DE102016219449A1 (en) Parallelization method, parallelization tool and vehicle-mounted device

Legal Events

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