DE112019005584T5 - ARITHMETIC CONTROL DEVICE - Google Patents

ARITHMETIC CONTROL DEVICE Download PDF

Info

Publication number
DE112019005584T5
DE112019005584T5 DE112019005584.4T DE112019005584T DE112019005584T5 DE 112019005584 T5 DE112019005584 T5 DE 112019005584T5 DE 112019005584 T DE112019005584 T DE 112019005584T DE 112019005584 T5 DE112019005584 T5 DE 112019005584T5
Authority
DE
Germany
Prior art keywords
task
parallelization
processing
sub
control device
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
DE112019005584.4T
Other languages
German (de)
Inventor
Tatsuya HORIGUCHI
Tasuku Ishigooka
Yasuhiro Oda
Fumio Narisawa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Astemo Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Publication of DE112019005584T5 publication Critical patent/DE112019005584T5/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Abstract

In einem System unter Verwendung eines Prozessors, der mehrere Kerne besitzt, ist es möglich, eine Fluktuation einer Verarbeitungszeit, wenn verschiedene Arten der Verarbeitung in den mehreren Kernen gleichzeitig durchgeführt werden, zu verringern, und somit wird eine Zusicherungsmöglichkeit einer Ausführungszeitabhängigkeit durch Erhöhen einer Verhaltensvorhersagbarkeit des Systems erhöht. Eine Arithmetiksteuervorrichtung gemäß der vorliegenden Erfindung ist eine Arithmetiksteuervorrichtung, die einen Prozessor, der mehrere Kerne besitzt, und eine Aufgabenzuweisungseinheit, die den mehreren Kernen Aufgaben zuweist, enthält. Die Aufgabenzuweisungseinheit ist konfiguriert, zu bestimmen, ob mehrere Unteraufgaben, die die Aufgabe bilden, zu Zielen der Parallelisierungsverarbeitung gemacht werden können oder nicht, und die mehreren Unteraufgaben unter einer vorgegebenen Bedingung den mehreren Kernen zuzuweisen, wenn die Parallelisierungsverarbeitung möglich ist.In a system using a processor having multiple cores, it is possible to reduce fluctuation in processing time when various kinds of processing are performed in the multiple cores at the same time, and thus an assurance possibility of execution time dependency by increasing behavior predictability of the System increased. An arithmetic control device according to the present invention is an arithmetic control device that includes a processor having a plurality of cores and a task assignment unit that assigns tasks to the plurality of cores. The task assignment unit is configured to determine whether or not a plurality of subtasks constituting the task can be made targets of the parallelization processing, and to assign the plurality of subtasks to the multiple cores under a predetermined condition when the parallelization processing is possible.

Description

Technisches GebietTechnical area

Die vorliegende Erfindung bezieht sich auf eine Arithmetiksteuervorrichtung und insbesondere auf eine Arithmetiksteuervorrichtung, die einen Prozessor, der mehrere Kerne besitzt und als Mehrkern oder Vielkern bezeichnet wird, steuert.The present invention relates to an arithmetic control device, and more particularly, to an arithmetic control device that controls a processor having multiple cores, referred to as multi-core or multi-core.

Technischer HintergrundTechnical background

In den letzten Jahren ist die Leistungsverbesserung von eingebauten Prozessoren fortgeschritten und die Einführung einer Hochlastarithmetikverarbeitung ist in den Gebieten von (insbesondere selbstfahrenden) Personenkraftwägen, der Massendatenverarbeitung, der Arzneimittelentdeckung, der Genanalyse, von Industrieanlagen und dergleichen fortgeschritten. Als Ergebnis hat sich die Verarbeitungsleistung, die in einer Steuervorrichtung in diesen Gebieten benötigt wird, erhöht. Deshalb wird eine Steuervorrichtung (eine elektronische Steuereinheit (ECU)) angewendet, die einen Prozessor, der mehrere Kerne besitzt, wie z. B. ein Mehrkern- oder ein Vielkernprozessor verwendet, und eine Verbesserung der Verarbeitungsleistung davon wird benötigt.In recent years, the performance improvement of built-in processors has progressed, and the introduction of heavy-duty arithmetic processing has progressed in the fields of passenger cars (especially self-driving), mass data processing, drug discovery, genetic analysis, industrial equipment and the like. As a result, the processing power required in a control device in these areas has increased. Therefore, a control device (an electronic control unit (ECU)) is applied which includes a processor having multiple cores such as a processor. For example, a multi-core or a multi-core processor is used, and an improvement in processing performance thereof is needed.

Zum Beispiel ist im Gebiet von Personenkraftwagen, um ein fortschrittliches selbstfahrendes System zu realisieren, eine Zunahme einer Verarbeitungslast einer Steuervorrichtung wie z. B. einer Selbstfahr-ECU, die eine höherwertige Steuervorrichtung zum Steuern des Selbstfahrens ist, ein Problem. Deshalb hat auch im Gebiet von Personenkraftwagen die Einführung von Mehrkernprozessoren wie z. B. Zweikernprozessoren, Vierkernprozessoren und Achtkernprozessoren begonnen. Die Zahl von Kernen wird sich in Zukunft weiter erhöhen und es wird außerdem angenommen, dass begonnen wird, Vieikernprozessoren, bei denen die Anzahl von Kernen z. B. 10 oder mehr ist, zu verwenden.For example, in the field of passenger cars, in order to realize an advanced self-driving system, an increase in a processing load of a control device such as a computer is required. A self-driving ECU, which is a superior control device for controlling self-driving, poses a problem. Therefore, the introduction of multi-core processors such. B. two-core processors, four-core processors and eight-core processors started. The number of cores will continue to increase in the future, and it is also assumed that multi-core processors in which the number of cores e.g. B. 10 or more to use.

Andererseits kann im Software-Entwurf in diesem Gebiet noch ein Entwurfsverfahren für einen Einzelkernprozessor wie z. B. eine automatische Quellcodeerzeugung aus z. B. einem modellbasierten Entwurf verwendet werden. Es ist schwierig, den Leistungsvorteil dieser Prozessoren in einem Lasterhöhungstrend in Zukunft lediglich durch Wechseln zu den Mehrkernprozessoren oder den Vielkernprozessoren ohne Ändern eines vorhandenen Entwurfsverfahrens für Einzelkernprozessoren auszunutzen. Als ein derartiger Hintergrund offenbart PTL 1 ein Beispiel, in dem einem Mehrkernprozessor mehrere Aufgaben effizient zugewiesen werden (eine suboptimale Planung wird vorgesehen).On the other hand, in software design in this field, a design method for a single core processor such as B. an automatic source code generation from z. B. a model-based design can be used. It is difficult to take advantage of the performance advantage of these processors in a load increasing trend in the future simply by switching to the multi-core processors or the multi-core processors without changing an existing design method for single core processors. As one such background, PTL 1 discloses an example in which multiple tasks are efficiently allocated to a multi-core processor (sub-optimal scheduling is provided).

Andererseits offenbart PTL 1 ein Beispiel, in dem normalerweise eine statische Planung auf der Grundlage eines Planungsverfahrens, das im Voraus definiert wurde, zum Zuweisen einer Verarbeitung zu jedem Prozessorkern verwendet wird, jedoch eine dynamische Planung zum wirksamen Ausführen der Aufgabe in einer Situation, in der eine Last hoch ist, durchgeführt wird. Im Gebiet von Personenkraftwagen und im Gebiet von Industrieanlagen liegt eine starke Notwendigkeit des Garantierens einer Ausführungszeitabhängigkeit für eine Steuerstabilität vor. Allerdings ist es mindestens dann, wenn die Planung dynamisch durchgeführt wird, schwierig, die Ausführungszeitabhängigkeit zu garantieren, obwohl diese Literatur die Ausführungszeitabhängigkeit nicht erwähnt und ein Entwerfer eine geeignete Planung während des Normalbetriebs (wenn ein Betrieb durch statische Planung durchgeführt wird) durchführt. Insbesondere kann im Mehrkernprozessor eine bestimmte Verarbeitung die Ausführungszeit einer weiteren Verarbeitung beeinträchtigen. In diesem Fall kann es schwierig sein, die Ausführungszeitabhängigkeit zu garantieren. Somit ist, um die Ausführungszeitabhängigkeit zu erfüllen, ein Verfahren zum Bewältigen einer Fluktuation einer Verarbeitungszeit, wenn Arithmetikoperationen in den mehreren Kernen gleichzeitig durchgeführt werden, erforderlich.On the other hand, PTL 1 discloses an example in which static planning based on a planning method that has been defined in advance is normally used to assign processing to each processor core, but dynamic planning is used to efficiently execute the task in a situation where a load is high is performed. In the automobile field and industrial plant field, there is a strong need of guaranteeing execution time dependency for tax stability. However, at least when planning is performed dynamically, it is difficult to guarantee execution time dependency, although this literature does not mention execution time dependency and a designer performs appropriate planning during normal operation (when operation is performed by static planning). In particular, certain processing in the multi-core processor can impair the execution time of further processing. In this case, it can be difficult to guarantee execution time dependency. Thus, in order to satisfy the execution time dependency, a method of coping with a fluctuation in processing time when arithmetic operations are performed in the plural cores at the same time is required.

EntgegenhaltungslisteCitation list

PatentliteraturPatent literature

PTL 1: JP 2008-171153 A PTL 1: JP 2008-171153 A

Zusammenfassung der ErfindungSummary of the invention

Technisches ProblemTechnical problem

Eine Aufgabe der vorliegenden Erfindung ist, eine Arithmetiksteuervorrichtung zu schaffen, die eine Fluktuation einer Verarbeitungszeit verringern kann, wenn verschiedene Verarbeitungsarten in den mehreren Kernen gleichzeitig durchgeführt werden, und eine Zusicherungsmöglichkeit einer Ausführungszeitabhängigkeit durch Erhöhen einer Verhaltensvorhersagbarkeit eines Systems unter Verwendung eines Prozessor, der mehrere Kerne besitzt, im System erhöhen kann.An object of the present invention is to provide an arithmetic control apparatus which can reduce fluctuation in processing time when various kinds of processing are performed in the plural cores at the same time, and an assurance possibility of execution time dependency by increasing behavior predictability of a system using a processor having plural cores owns, can increase in the system.

Lösung des Problemsthe solution of the problem

Eine Arithmetiksteuervorrichtung gemäß der vorliegenden Erfindung ist eine Arithmetiksteuervorrichtung, die einen Prozessor, der mehrere Kerne besitzt, und eine Aufgabenzuweisungseinheit, die den mehreren Kernen Aufgaben zuweist, enthält. Die Aufgabenzuweisungseinheit ist konfiguriert, zu bestimmen, ob mehrere Unteraufgaben, die die Aufgabe bilden, zu Zielen der Parallelisierungsverarbeitung gemacht werden können oder nicht, und die mehreren Unteraufgaben unter einer vorgegebenen Bedingung den mehreren Kernen zuzuweisen, wenn die Parallelisierungsverarbeitung möglich ist.An arithmetic control device according to the present invention is an arithmetic control device that includes a processor having a plurality of cores and a task assignment unit that assigns tasks to the plurality of cores. The task assignment unit is configured to determine whether or not a plurality of sub-tasks constituting the task can be made targets of the parallelization processing, and the plurality of sub-tasks under a predetermined condition to be assigned to the multiple cores when parallelization processing is possible.

Vorteilhafte Wirkungen der ErfindungAdvantageous Effects of the Invention

Gemäß der vorliegenden Erfindung ist es in der Arithmetiksteuervorrichtung unter Verwendung des Mehrkernprozessors möglich, eine Fluktuation einer Verarbeitungszeit zu verringern, wenn verschiedene Verarbeitungsarten in den mehreren Kernen gleichzeitig durchgeführt werden, und ist es möglich, eine Zusicherungsmöglichkeit der Ausführungszeitabhängigkeit durch Erhöhen einer Verhaltensvorhersagbarkeit des Systems zu erhöhen.According to the present invention, in the arithmetic control apparatus using the multi-core processor, it is possible to reduce fluctuation in processing time when various kinds of processing are performed in the plural cores at the same time, and it is possible to increase assurance possibility of execution time dependency by increasing behavior predictability of the system .

FigurenlisteFigure list

  • [1] 1 ist ein schematisches Blockdiagramm, das Komponenten in Bezug auf eine Arithmetikverarbeitung in einer Arithmetiksteuervorrichtung eines Mehrkernprozessors gemäß einer ersten Ausführungsform veranschaulicht.[ 1 ] 1 Fig. 13 is a schematic block diagram illustrating components related to arithmetic processing in an arithmetic control apparatus of a multi-core processor according to a first embodiment.
  • [2] 2 ist ein schematisches Diagramm, das eine Beziehung zwischen einer Arithmetiksteuervorrichtung 1 und Software-Komponenten (Mount-Funktionen) in der ersten Ausführungsform veranschaulicht.[ 2 ] 2 Fig. 13 is a schematic diagram showing a relationship between an arithmetic control device 1 and software components (mount functions) illustrated in the first embodiment.
  • [3] 3 ist ein schematisches Diagramm zum Beschreiben eines Beispiels einer Abhängigkeitsbeziehung zwischen den Software-Komponenten (Mount-Funktionen).[ 3 ] 3 Fig. 13 is a schematic diagram for describing an example of a dependency relationship among the software components (mount functions).
  • [4] 4 ist eine Tabelle, die eine Beziehung zwischen den Software-Komponenten (Mount-Funktionen) und entsprechenden Aufgaben darstellt.[ 4th ] 4th is a table showing a relationship between software components (mount functions) and corresponding tasks.
  • [5] 5 ist ein Diagramm, das die Mount-Funktionen, die der Arithmetiksteuervorrichtung 1 durch ein modellbasiertes Entwurfsverfahren zugewiesen werden, veranschaulicht.[ 5 ] 5 Fig. 13 is a diagram showing the mount functions performed by the arithmetic control device 1 can be assigned by a model-based design process.
  • [6] 6 ist eine Tabelle, die die Aufgaben, die den Mount-Funktionen, die der Arithmetiksteuervorrichtung 1 während des modellbasierten Entwurfs zugewiesen werden, entsprechen, darstellt.[ 6th ] 6th is a table showing the tasks performed by the mount functions performed by the arithmetic control device 1 assigned during model-based design correspond to represents.
  • [7] 7 ist eine Tabelle zum Beschreiben eines Beispiels verschiedener Parameter, die den Aufgaben in der ersten Ausführungsform zugewiesen werden.[ 7th ] 7th Fig. 13 is a table for describing an example of various parameters assigned to the tasks in the first embodiment.
  • [8] 8 ist ein Beispiel eines Aufgabengraphen, der eine Datenabhängigkeitsbeziehung in der ersten Ausführungsform veranschaulicht.[ 8th ] 8th Fig. 13 is an example of a task graph illustrating a data dependency relationship in the first embodiment.
  • [9] 9 ist eine Tabelle, die ein Beispiel von Parametern von Prioritäten, die den Aufgaben in der ersten Ausführungsform zugewiesen werden, darstellt.[ 9 ] 9 Fig. 13 is a table showing an example of parameters of priorities assigned to the tasks in the first embodiment.
  • [10] 10 ist ein Beispiel eines Zeitdiagramms, wenn keine Parallelisierung von Unteraufgaben in einer Aufgabe D in der ersten Ausführungsform durchgeführt wird.[ 10 ] 10 Fig. 13 is an example of a timing chart when parallelization of subtasks is not performed in a task D in the first embodiment.
  • [11] 11 ist eine Tabelle, die eine Beziehung zwischen einem Aufgabengraphen und einer Durchschnittsausführungszeit, die eingestellt werden soll, wenn eine Parallelisierungsverarbeitung an Untermasken durchgeführt wird, an denen eine Parallelisierungsverarbeitung in der Aufgabe D durchgeführt wird, darstellt.[ 11 ] 11 FIG. 13 is a table showing a relationship between a task graph and an average execution time to be set when parallelization processing is performed on sub-forms on which parallelization processing is performed in task D. FIG.
  • [12] 12 ist ein Beispiel eines Zeitdiagramms, wenn die Unteraufgaben in der Aufgabe D in der ersten Ausführungsform parallelisiert werden.[ 12th ] 12th Fig. 13 is an example of a timing chart when the sub-tasks in task D are parallelized in the first embodiment.
  • [13] 13 ist ein Beispiel eines Zeitdiagramms, wenn eine Zeitabhängigkeitsverletzung aufgrund des Auftretens einer ereignisgesteuerten Verarbeitungsaufgabe H in der ersten Ausführungsform auftritt.[ 13th ] 13th Fig. 13 is an example of a timing chart when a time dependency violation occurs due to the occurrence of an event-driven processing task H in the first embodiment.
  • [14] 14 ist ein Diagramm, das ein Verfahren des Parallelisierens der Aufgabe D und des Setzens einer Priorität im Änderungsbeispiel 1 der ersten Ausführungsform veranschaulicht.[ 14th ] 14th Fig. 13 is a diagram showing a method of parallelizing the task D and setting a priority in the change example 1 illustrated in the first embodiment.
  • [15] 15 ist eine Liste, die ein Einstellbeispiel eines Aufgabenprioritätsparameters im Änderungsbeispiel 1 der ersten Ausführungsform darstellt.[ 15th ] 15th is a list showing a setting example of a task priority parameter in the change example 1 of the first embodiment.
  • [16] 16 ist ein Beispiel eines Zeitdiagramms, das eine Operation im Änderungsbeispiel 2 der ersten Ausführungsform veranschaulicht.[ 16 ] 16 Fig. 13 is an example of a timing chart illustrating an operation in Modification Example 2 of the first embodiment.
  • [17] 17 ist ein schematisches Blockdiagramm, das Komponenten in Bezug auf eine Arithmetikverarbeitung in einer Arithmetiksteuervorrichtung eines Mehrkernprozessors gemäß einer zweiten Ausführungsform veranschaulicht.[ 17th ] 17th Fig. 13 is a schematic block diagram illustrating components related to arithmetic processing in an arithmetic control apparatus of a multi-core processor according to a second embodiment.
  • [18] 18 ist eine Tabelle zum Beschreiben eines Beispiels verschiedener Parameter, die Aufgaben in der zweiten Ausführungsform zugewiesen sind.[ 18th ] 18th Fig. 13 is a table for describing an example of various parameters assigned to tasks in the second embodiment.
  • [19] 19 ist eine Liste, die ein Einstellbeispiel eines Fristparameters in der zweiten Ausführungsform veranschaulicht.[ 19th ] 19th Fig. 13 is a list illustrating a setting example of a deadline parameter in the second embodiment.

Beschreibung der AusführungsformenDescription of the embodiments

Im Folgenden werden Ausführungsformen der vorliegenden Erfindung unter Bezugnahme auf die begleitenden Zeichnungen beschrieben. In den begleitenden Zeichnungen können funktionell identische Elemente durch identische Bezugszeichen oder entsprechende Bezugszeichen repräsentiert werden. Obwohl die begleitenden Zeichnungen Ausführungsformen und Implementierungsbeispiele auf der Grundlage der Prinzipien der vorliegenden Offenbarung veranschaulichen, sind die Zeichnungen zum Verständnis der vorliegenden Offenbarung vorgesehen und werden nicht verwendet, um die vorliegende Offenbarung einschränkend zu interpretieren. Die Beschreibung in der vorliegenden Spezifikation ist lediglich ein Beispiel und ist nicht vorgesehen, um die Ansprüche oder die Anwendungsbeispiele der vorliegenden Offenbarung in irgendeinem Sinne zu beschränken.In the following, embodiments of the present invention will be described with reference to the accompanying drawings. In the accompanying drawings, functionally identical elements may be represented by identical reference characters or corresponding reference characters. Although the accompanying drawings show embodiments and implementation examples based on the principles of the present To illustrate the disclosure, the drawings are provided for understanding of the present disclosure and are not used to interpret the present disclosure in a limiting sense. The description in the present specification is merely an example and is not intended to limit the claims or the application examples of the present disclosure in any sense.

Obwohl die Beschreibung ausreichend detailliert gestaltet wird, damit Fachleute die vorliegende Offenbarung in der vorliegenden Ausführungsform implementieren können, versteht sich, dass weitere Implementierungen und Ausführungsformen möglich sind, und Änderungen der Konfigurationen und Strukturen und ein Austausch verschiedener Elemente sind möglich, ohne vom Umfang und Geist des technischen Gedankens der vorliegenden Offenbarung abzuweichen. Entsprechend wird die folgende Beschreibung nicht als darauf beschränkt interpretiert.Although the description is made sufficiently detailed for those skilled in the art to implement the present disclosure in the present embodiment, it should be understood that other implementations and embodiments are possible, and changes in configurations and structures, and the substitution of various elements, are possible without departing from the scope and spirit deviate from the technical spirit of the present disclosure. Accordingly, the following description is not to be interpreted as being limited thereto.

[Erste Ausführungsform][First embodiment]

Eine Arithmetiksteuervorrichtung gemäß einer ersten Ausführungsform wird unter Bezugnahme auf 1 beschrieben. Im Folgenden wird eine Arithmetiksteuervorrichtung, die einen Mehrkernprozessor, der acht Kerne besitzt, steuert, als Beispiel beschrieben, jedoch ist die Anzahl von Kernen nicht auf eine spezifische Anzahl beschränkt. Zum Beispiel kann auch eine Arithmetiksteuervorrichtung, die einen Vielkernprozessor steuert, in dem die Anzahl von Kernen 10 oder mehr ist, auf eine ähnliche Weise angewendet werden, ohne vom Umfang und Geist des technischen Gedankens der vorliegenden Offenbarung abzuweichen.An arithmetic control device according to a first embodiment will be described with reference to FIG 1 described. In the following, an arithmetic control device that controls a multi-core processor having eight cores will be described as an example, but the number of cores is not limited to a specific number. For example, an arithmetic control device that controls a multi-core processor in which the number of cores is 10 or more can also be applied in a similar manner without departing from the scope and spirit of the technical spirit of the present disclosure.

1 ist ein schematisches Blockdiagramm, das Komponenten in Bezug auf eine Arithmetikverarbeitung in der Arithmetiksteuervorrichtung des Mehrkernprozessors gemäß der ersten Ausführungsform veranschaulicht. Die Arithmetiksteuervorrichtung 1 enthält eine Parameterzuweisungseinheit 101, einen Mehrkernprozessor 102 und eine Aufgabenzuweisungseinheit 103. 1 Fig. 13 is a schematic block diagram illustrating components related to arithmetic processing in the arithmetic control apparatus of the multi-core processor according to the first embodiment. The arithmetic control device 1 contains a parameter assignment unit 101 , a multi-core processor 102 and a task assignment unit 103 .

Die Parameterzuweisungseinheit 101 besitzt die Funktion des Zuweisens von Datenstücken hinsichtlich Hardware und Software, die zum Steuern eines Fahrzeugs nötig sind, als Parameter zu Aufgaben und des Speicherns der Datenstücke in einer Speichereinheit. Die Parameter in Bezug auf die Hardware enthalten eine Mehrkernkonfiguration des Mehrkernprozessors 102, Busverdrahtungsdaten, Erfassungsdaten (einen Sensorwert) eines Sensors (der nicht veranschaulicht ist) und dergleichen.The parameter assignment unit 101 has the function of assigning pieces of data in terms of hardware and software necessary for controlling a vehicle as parameters to tasks and storing the pieces of data in a memory unit. The parameters related to the hardware include a multi-core configuration of the multi-core processor 102 , Bus wiring data, detection data (a sensor value) of a sensor (which is not illustrated), and the like.

Die Parameter, die in der Parameterzuweisungseinheit 101 gespeichert sind, können auch Bestimmungsindizes sein, wenn eine Zuweisung durch die Aufgabenzuweisungseinheit 103 durchgeführt wird. Als Beispiel enthält die Parameterzuweisungseinheit 101 eine Aufgabensteuerzeitraum-Parameterspeichereinheit 1011, eine Aufgabenprioritäts-Parameterspeichereinheit 1012 und einen Aufgabenabhängigkeitsbeziehungsparameter 1013. Die Aufgabensteuerzeitraum-Parameterspeichereinheit 1011 speichert einen Parameter, der einen Steuerzeitraum jeder Aufgabe, die durch den Mehrkernprozessor 102 ausgeführt wird, definiert. Die Aufgabenprioritäts-Parameterspeichereinheit 1012 speichert einen Parameter, der eine Priorität definiert, die einen Grad angibt, zu dem jede Aufgabe in einer Beziehung zwischen jeder Aufgabe und einer weiteren Aufgabe bevorzugt verarbeitet (ausgeführt) werden soll.The parameters that are in the parameter assignment unit 101 are stored can also be destination indices if an assignment by the task assignment unit 103 is carried out. As an example, includes the parameter assignment unit 101 a task control period parameter storage unit 1011 , a task priority parameter storage unit 1012 and a task dependency relationship parameter 1013 . The task control period parameter storage unit 1011 stores a parameter specifying a control period of each task performed by the multi-core processor 102 is executed. The task priority parameter storage unit 1012 stores a parameter defining a priority indicating a degree to which each task in a relationship between each task and another task should be preferentially processed (performed).

Die Aufgabenabhängigkeitsbeziehungs-Parameterspeichereinheit 1013 speichert einen Abhängigkeitsbeziehungsparameter, der eine Abhängigkeitsbeziehung zwischen den Aufgaben angibt. Zum Beispiel gibt, da ein Ergebnis, das in einer bestimmten Aufgabe A verarbeitet wurde, als eine Eingabe der nächsten Aufgabe B verarbeitet wird, der Abhängigkeitsbeziehungsparameter eine Beziehung an, in der ein Ende der Aufgabe A eine Startbedingung der Aufgabe B ist.The task dependency relationship parameter storage unit 1013 stores a dependency relationship parameter indicating a dependency relationship between the tasks. For example, since a result processed in a certain task A is processed as an input of the next task B, the dependency relationship parameter indicates a relationship in which an end of the task A is a start condition of the task B.

Der Mehrkernprozessor 102 enthält mehrere Kerne 1 bis 8 und jeder der Kerne 1 bis 8 ist konfiguriert, eine Aufgabenverarbeitung parallel ausführen zu können. Als Beispiel kann der Mehrkernprozessor 102 vier Kerne für jeden von zwei Typen von Kernen, die verschiedene Leistungsfähigkeiten besitzen, enthalten. Hier werden die Kerne 1 bis 4, die eine relativ hohe Leistungsfähigkeit besitzen, als Hochgeschwindigkeitsbetriebskerne 1021 bezeichnet und werden die Kerne 5 bis 8, die eine niedrige Leistungsfähigkeit besitzen, als Niedergeschwindigkeitsbetriebskerne 1022 bezeichnet. Der Leistungszustand ist nicht auf zwei Zustände beschränkt und es können drei oder mehr Zustände vorliegen oder alle Kerne können dieselbe Leistungsfähigkeit besitzen.The multi-core processor 102 contains several cores 1 to 8 and each of the cores 1 to 8 is configured to be able to execute a task processing in parallel. As an example, the multicore processor 102 four cores for each of two types of cores that have different capabilities. Here, the cores 1 to 4, which have relatively high performance, are used as high-speed operation cores 1021 and the cores 5 to 8, which have a low performance, are referred to as low-speed operation cores 1022 designated. The performance state is not limited to two states, and there may be three or more states, or all cores can have the same performance.

Die Aufgabenzuweisungseinheit 103 weist jede Aufgabe jedem Kern des Mehrkernprozessors 102 auf der Grundlage von Parametern (eines Aufgabensteuerzeitraums, einer Aufgabenpriorität, einer Aufgabenabhängigkeitsbeziehung und dergleichen), die von der Parameterzuweisungseinheit 101 erfasst werden, zu.The task assignment unit 103 assigns each task to each core of the multi-core processor 102 based on parameters (a task control period, a task priority, a task dependency relationship and the like) given by the parameter assignment unit 101 to be captured, too.

Mount-Funktionen, die für die Arithmetiksteuervorrichtung 1 erforderlich sind, sind in mehreren Formaten gegeben. Zum Beispiel wird, wie in 2 veranschaulicht ist, ein Fall betrachtet, in dem verschiedene Funktionen 1, 2, 3, 4 ... als Software-Komponenten in Quellcode wie z. B. der C-Sprache beschrieben sind und zur Arithmetiksteuervorrichtung 1 gegeben werden.Mount functions required for the arithmetic control device 1 are given in several formats. For example, as in 2 is illustrated, a case is considered in which various functions 1, 2, 3, 4 ... as software components in source code such as. B. the C language and to the arithmetic control device 1 are given.

In diesem Fall wird, wie in 3 veranschaulicht ist, eine Abhängigkeitsbeziehung zwischen den Funktionen 1, 2, 3, 4 ... (zwischen den Software-Komponenten) auf der Grundlage des Quellcodes entschlüsselt. Zum Beispiel wird die Abhängigkeitsbeziehung, in der die Funktion 2 ausgeführt werden kann, nachdem die Ausführung der Funktion 1 abgeschlossen worden ist, und die Funktion 3 ausgeführt werden kann, nachdem die Ausführung der Funktion 2 abgeschlossen worden ist, auf der Grundlage des Quellcodes entschlüsselt.In this case, as in 3 is illustrated, a dependency relationship between the functions 1, 2, 3, 4 ... (between the software components) is decoded on the basis of the source code. For example, the dependency relationship in which function 2 can be performed after the function is performed 1 has been completed and the function 3 can be executed after the execution of the function 2 has been decrypted based on the source code.

Eine Aufgabe zum Zuweisen jeder der Funktionen 1, 2, 3, 4 ... zum Mehrkernprozessor 102 wird definiert. Ein Beispiel einer Beziehung zwischen jeder der Funktionen 1, 2, 3 und 4 (den Software-Komponenten) und der Aufgabe ist in 4 veranschaulicht ist.A task to assign each of the functions 1, 2, 3, 4 ... to the multi-core processor 102 is defined. An example of a relationship between each of functions 1, 2, 3 and 4 (the software components) and the task is shown in FIG 4th is illustrated.

Als Beispiel verschiedener Stücke von Eingabedaten, wenn ein Modell, das durch ein modellbasiertes Entwurfsverfahren, das in 5 veranschaulicht ist, beschrieben wird, gegeben ist, ist eine Aufgabe in einer Form definiert, die jeder Funktion, die in 6 veranschaulicht ist, entspricht. Zum Beispiel sind entsprechende Aufgaben für die Unterfunktionen 2-1, 2-2, 2-3, 4-1 und 4-2 in den Funktionen 2 bzw. 4 definiert.As an example of various pieces of input data, when a model created by a model-based design process included in 5 illustrated, described, given, a task is defined in a form corresponding to any function included in 6th is illustrated corresponds to. For example, corresponding tasks are defined for sub-functions 2-1, 2-2, 2-3, 4-1 and 4-2 in functions 2 and 4, respectively.

Wenn die Aufgaben definiert werden, wie in einer Tabelle von 7 veranschaulicht ist, werden verschiedene Parameter für jede der Aufgaben z. B. auf der Grundlage des Quellcodes der Software-Komponenten erzeugt. Als Beispiel werden, wie in 7 veranschaulicht ist, Parameter wie z. B. eine Durchschnittsausführungszeit (wenn ein Hochgeschwindigkeitskern verwendet wird), die für Unteraufgaben, die in jeder Aufgabe enthalten sind, parallelisierbar oder nicht parallelisierbar sind, und ein Aufgabensteuerzeitraum erzeugt. Unter diesen Parametern wird der Parameter des Aufgabensteuerzeitraums in der Aufgabensteuerzeitraum-Parameterspeichereinheit 1011 gespeichert.When the tasks are defined as in a table of 7th As illustrated, various parameters are set for each of the tasks e.g. B. generated on the basis of the source code of the software components. As an example, as in 7th is illustrated, parameters such as An average execution time (when using a high speed core) parallelizable or non-parallelizable for subtasks included in each task, and creates a task control period. Among these parameters, the task control period parameter is stored in the task control period parameter storage unit 1011 saved.

7 veranschaulicht einen Fall, in dem die Durchschnittsausführungszeit berechnet wird und der Parameter für eine Aufgabe H, die einer ereignisgesteuerten Verarbeitung (einer Unterbrechungsverarbeitung) entspricht und von den Funktionen 1 bis 4 verschieden ist, festgelegt wird. 7th Fig. 11 illustrates a case where the average execution time is calculated and the parameter is set for a task H which corresponds to event-driven processing (interrupt processing) and is different from functions 1 to 4.

8 veranschaulicht ein Beispiel von Aufgabengraphen, wenn die Aufgaben, die in 7 veranschaulicht sind, ausgeführt werden. Die Arithmetiksteuervorrichtung 1 erzeugt die Aufgabengraphen in Übereinstimmung mit dem Aufgabensteuerzeitraum, der Aufgabenabhängigkeitsbeziehung und weiteren Parametern. Die Aufgaben werden mittels Aufgaben, die denselben Aufgabensteuerzeitraum besitzen, eingestuft und werden in Übereinstimmung mit der Aufgabenabhängigkeitsbeziehung geordnet. In diesem Beispiel wird ein Aufgabengraph für die Aufgaben A bis E, die in einem Steuerzeitraum von 30 ms arbeiten, gebildet und wird ein weiterer Aufgabengraph für die Aufgaben F und G, die in einem Steuerzeitraum von 50 ms arbeiten, gebildet. 8th illustrates an example of task graphs when the tasks included in 7th are illustrated. The arithmetic control device 1 generates the task graphs in accordance with the task control period, the task dependency relationship and other parameters. The tasks are classified using tasks that have the same task control period and are ordered in accordance with the task dependency relationship. In this example, a task graph is formed for tasks A to E, which work in a control period of 30 ms, and a further task graph is formed for tasks F and G, which work in a control period of 50 ms.

In den Aufgabengraphen, die in 8 veranschaulicht sind, wird eine Abhängigkeitsbeziehung zwischen den Aufgaben durch Pfeile zwischen den Aufgaben ausgedrückt. Diese Abhängigkeitsbeziehung wird im Aufgabenabhängigkeitsbeziehungsparameter 1013 beschrieben. Wenn ein derartiger Aufgabengraph gebildet wird, kann ein Satz von mehreren Aufgaben, die in Serie angeordnet sind, in einem Kern des Mehrprozessors 102 ausgeführt werden und ein verschiedener Satz von Aufgaben kann in einem verschiedenen Kern ausgeführt werden. Zum Beispiel können die Aufgaben A, B und E im Kern 1 ausgeführt werden, können die Aufgaben C und D im Kern 2 ausgeführt werden und können die Aufgaben F und G im Kern 3 ausgeführt werden.In the task graphs that are included in 8th illustrated, a dependency relationship between the tasks is expressed by arrows between the tasks. This dependency relationship is specified in the task dependency relationship parameter 1013 described. When such a task graph is formed, a set of multiple tasks arranged in series can be incorporated into a core of the multiprocessor 102 and a different set of tasks can be performed in a different core. For example, tasks A, B, and E can be performed in core 1, tasks C and D can be performed in core 2, and tasks F and G can be performed in core 3.

Wenn die Aufgaben definiert werden, wird die Priorität als der Parameter für jede Aufgabe definiert und wird in der Aufgabenprioritäts-Parameterspeichereinheit 1012 gespeichert. 9 veranschaulicht ein Beispiel der Priorität, die für jede Aufgabe definiert ist. Je kleiner der Zahlenwert in 9 ist, desto höher ist die Priorität. Zum Beispiel besitzen die Aufgaben F und G eine Priorität „15“ und besitzen die Aufgaben A bis E eine höhere Priorität „10“. Die Aufgabe H besitzt eine höhere Priorität „5“. In diesem Beispiel werden die Priorität und der Aufgabensteuerzeitraum jeder Aufgabe durch eine Steuerstrategie, dass einer Aufgabe, die einen kürzeren Aufgabensteuerzeitraum besitzt, eine höhere Priorität gegeben wird, gegeben.When defining the tasks, the priority is defined as the parameter for each task and is stored in the task priority parameter storage unit 1012 saved. 9 illustrates an example of the priority defined for each task. The smaller the numerical value in 9 is, the higher the priority. For example, tasks F and G have a priority “15” and tasks A through E have a higher priority “10”. Task H has a higher priority "5". In this example, the priority and the task control period of each task are given by a control strategy that a task that has a shorter task control period is given a higher priority.

10 veranschaulicht ein Beispiel eines Zeitdiagramms, wenn jede Aufgabe in Übereinstimmung mit dem Aufgabensteuerzeitraum, der Abhängigkeitsbeziehung und der Priorität, die wie oben beschrieben festgelegt wurden, ausgeführt wird (die Berechnung ausgeführt wird). In 10 wird angenommen, dass kein Zeitmehraufwand aufgrund eines Aufgabenwechsels oder einer Aufgabenteilung im Kern auftritt. 10 Fig. 13 illustrates an example of a timing chart when each task is performed (calculation is performed) in accordance with the task control period, dependency relationship, and priority set as described above. In 10 it is assumed that there is no additional expenditure of time due to a task change or a task sharing in the core.

Die Aufgaben A bis E, die einen Aufgabensteuerzeitraum von 30 ms besitzen, werden auf der Grundlage der Abhängigkeitsbeziehung in Übereinstimmung mit dem Aufgabenabhängigkeitsbeziehungsparameter ausgeführt. Zum jetzigen Zeitpunkt können die Aufgaben A und B und die Aufgaben C und D durch die verschiedenen Kerne 1 und 2 parallel (gleichzeitig) ausgeführt werden. Allerdings müssen A, C, D und E in dieser Reihenfolge ausgeführt werden und somit wird die Verarbeitung ein Flaschenhals (ein kritischer Pfad). Als Ergebnis kann eine Zeitraumabhängigkeit von 30 [ms] abhängig von einer Ausführungszeit jeder Aufgabe nicht erfüllt werden und eine Zeitabhängigkeitsverletzung tritt auf.Tasks A to E, which have a task control period of 30 ms, are executed based on the dependency relationship in accordance with the task dependency relationship parameter. At this point in time, tasks A and B and tasks C and D can be performed in parallel (simultaneously) by the different cores 1 and 2. However, must A, C, D and E are executed in that order and thus the processing becomes a bottleneck (a critical path). As a result, a period dependency of 30 [ms] depending on an execution time of each task cannot be satisfied, and a time dependency violation occurs.

Somit wird in der vorliegenden Ausführungsform die Ausführungszeit durch Ausführen einer Parallelisierung unter einer vorgegebenen Bedingung für eine Aufgabe, die ferner in mehrere Unteraufgaben unterteilt ist und unter den mehreren Aufgaben A, C, D und E im kritischen Pfad parallelisierbar ist, verkürzt. Die Aufteilung der Aufgabe in die Unteraufgaben kann in der Aufgabenzuweisungseinheit 103 auf der Grundlage des Aufgabensteuerzeitraumparameters, des Aufgabenprioritätsparameters, der Aufgabenabhängigkeitsbeziehung und dergleichen bestimmt und ausgeführt werden.Thus, in the present embodiment, the execution time is shortened by performing parallelization under a predetermined condition for a task which is further divided into multiple subtasks and can be parallelized among the multiple tasks A, C, D, and E in the critical path. The division of the task into the sub-tasks can be done in the task assignment unit 103 are determined and executed based on the task control period parameter, the task priority parameter, the task dependency relationship, and the like.

11 veranschaulicht ein Beispiel eines Aufgabengraphen, wenn die Aufgabe D in mehrere Unteraufgaben Dpre, Dp0 bis Dp3 und Dpost unterteilt wird und einige der Unteraufgaben (z. B. die Unteraufgaben Dp0 bis Dp3) parallelisiert werden, und eine Durchschnittsausführungszeit, die festgelegt werden soll (wenn ein Hochgeschwindigkeitskern verwendet wird). 11 illustrates an example of a task graph when task D is divided into several sub-tasks D pre , D p0 to D p3 and D post and some of the sub-tasks (e.g. sub-tasks D p0 to D p3 ) are parallelized, and an average execution time, to be set (when using a high speed core).

Mindestens zwei oder mehr Unteraufgaben der mehreren Unteraufgaben, die aus einer Aufgabe D erzeugt wurden, werden parallelisiert und können gleichzeitig in verschiedenen Kernen ausgeführt werden und somit kann eine Gesamtausführungszeit (ein Durchschnitt) der Aufgaben verkürzt werden.At least two or more subtasks of the multiple subtasks generated from a task D are parallelized and can be executed simultaneously in different cores, and thus a total execution time (an average) of the tasks can be shortened.

Wünschenswerterweise können beim Parallelisieren der mehreren Unteraufgaben der Aufgabe D die mehreren Unteraufgaben in eine Vorparallelisierungsunteraufgabe Dpre (21), eine Parallelisierungszielunteraufgabe Dp (22) (Dp0 bis Dp3) und eine Nachparallelisierungsunteraufgabe Dpost (23) unterteilt werden. Die Vorparallelisierungsunteraufgabe Dpre1 ist eine Unteraufgabe, die unter den Unteraufgaben der Aufgabe D zuerst ausgeführt wird. Nachdem die Vorparallelisierungsunteraufgabe Dpre1 ausgeführt worden ist, können die mehreren Parallelisierungszielunteraufgaben Dp in den mehreren Kernen parallel ausgeführt werden. Die Nachparallelisierungsunteraufgabe Dpost ist eine Aufgabe, die ausgeführt wird, wenn die Ausführung von allen Parallelisierungszielunteraufgaben Dp1 bis Dp3 beendet ist.Desirably, in parallelizing the multiple subtasks of task D, the multiple subtasks can be divided into a pre- parallelization sub-task D pre (21), a parallelization target sub-task D p (22) (D p0 to D p3 ), and a post- parallelization sub-task D post (23). The pre- parallelization sub-task D pre1 is a sub-task that is executed first among the sub-tasks of the task D. After the pre-parallelization sub-task D pre1 is executed, the multiple parallelization target subtasks D p in the multiple cores can be executed in parallel. The post- parallelization subtask D post is a task that is executed when the execution of all of the parallelization target subtasks D p1 to D p3 is finished.

Wie oben beschrieben ist, wird eine Vorhersage der Ausführungszeit durch Anordnen von Unteraufgaben außer dem Parallelisierungsziel vor und nach der Parallelisierungszielunteraufgabe Dp einfach und außerdem kann eine Verarbeitungslast der Arithmetiksteuervorrichtung 1 verringert werden.As described above, by arranging sub-tasks other than the parallelization target before and after the parallelization target sub-task D p, prediction of the execution time becomes easy, and also a processing load of the arithmetic control device can be reduced 1 be reduced.

Wie in 11 veranschaulicht ist, wird dann, wenn eine Aufgabe D in die mehreren Unteraufgaben unterteilt wird, ein Gesamtwert Ttotal der Durchschnittsausführungszeiten (wenn der Hochgeschwindigkeitskern verwendet wird) der Unteraufgaben derart eingestellt, dass er gleich oder kleiner als eine Durchschnittsausführungszeit Td der ursprünglichen Aufgabe D ist. Wie oben beschrieben ist, kann dann, wenn der Zeitmehraufwand aufgrund des Aufgabenwechsels oder der Aufgabenteilung im Kern nicht angenommen wird, der Gesamtwert Ttotal der Durchschnittsausführungszeiten zu einem Wert gleich der Durchschnittsausführungszeit Td der ursprünglichen Aufgabe D (5 x 6 = 30 ms) eingestellt werden. Die Durchschnittsausführungszeiten und die Abhängigkeitsbeziehung zwischen den neu erzeugten Unteraufgaben Dpre, Dp0 bis Dp3 und Dpost werden in der Parameterzuweisungseinheit 101 gespeichert.As in 11 As illustrated, when a task D is divided into the plurality of sub-tasks, a total value Ttotal of the average execution times (when the high-speed core is used) of the sub-tasks is set to be equal to or less than an average execution time Td of the original task D. As described above, when the time overhead due to the task change or task sharing is not accepted in the core, the total value Ttotal of the average execution times can be set to a value equal to the average execution time Td of the original task D (5 x 6 = 30 ms). The average execution times and the dependency relationship between the newly created sub- tasks D pre , D p0 to D p3 and D post are set in the parameter assignment unit 101 saved.

12 veranschaulicht ein Beispiel eines Zeitdiagramms, wenn die Aufgabe D in die mehreren Unteraufgaben unterteilt ist und eine Parallelisierungsverarbeitung an den Unteraufgaben durchgeführt wird, wie in 11 veranschaulicht ist. In diesem Beispiel werden, da der Steuerzeitraum von 30 ms erfüllt ist, die Unteraufgaben Dp0 bis Dp3, an denen die Parallelisierungsverarbeitung durchgeführt werden kann, bevorzugt verarbeitet und die Verarbeitung der Vorparallelisierungsunteraufgabe Dpre wird gestartet, nachdem die Ausführung der Aufgabe C abgeschlossen worden ist. 12th FIG. 13 illustrates an example of a timing chart when the task D is divided into the plural subtasks and parallelization processing is performed on the subtasks as in FIG 11 is illustrated. In this example, since the control period of 30 msec is satisfied, the sub-tasks D p0 to D p3 on which the parallelization processing can be performed are preferentially processed, and the processing of the pre- parallelization sub-task D pre is started after the execution of the task C has been completed is.

Beim Start der Parallelisierungsverarbeitung kann dann, wenn die Aufgabe B im Kern 1 ausgeführt wird, die Aufgabe B einmal unterbrochen werden. Entsprechend können alle vier Kerne 1 bis 4 zu einem ausführbaren Zustand eingestellt werden, können die Unteraufgaben Dp0 bis Dp3 jeweils zu den Kernen zugewiesen werden und kann die Verarbeitung in den vier Kernen 1 bis 4 gleichzeitig gestartet werden. In Bezug auf die Unteraufgaben Dp0 bis Dp3 ist es wünschenswert, dass Verarbeitungsstartzeitpunkte durch Erzeugen eines Synchronisationssignals nach dem Ende der Vorparallelisierungsunteraufgabe Dpre ausgerichtet werden. Wenn die Ausführung aller Unteraufgaben Dp0 bis Dp3 beendet ist, kann die Ausführung der Nachparallelisierungsunteraufgabe Dpost danach gestartet werden. Im Kern 1 kann die Ausführung der unterbrochenen Aufgabe B wiederaufgenommen werden.At the start of the parallelization processing, if the task B is executed in the core 1, the task B can be interrupted once. Accordingly, all four cores 1 to 4 can be set to an executable state, the sub- tasks D p0 to D p3 can each be assigned to the cores, and processing in the four cores 1 to 4 can be started simultaneously. With regard to the subtasks D p0 to D p3 , it is desirable that processing start times are aligned by generating a synchronization signal after the end of the pre-parallelization sub-task D pre. When the execution of all of the sub- tasks D p0 to D p3 has ended, the execution of the post- parallelization sub-task D post can then be started. In core 1, the execution of the interrupted task B can be resumed.

Ähnlich zur Aufgabe B wird die Verarbeitung der Aufgabe F, die den Aufgabensteuerzeitraum von 50 ms besitzt und im Kern 3 ausgeführt wird, in einem Zustand, in dem die Parallelisierungsverarbeitung gestartet werden kann, einmal unterbrochen. Danach wird die Ausführung der Unteraufgabe Dp2, die als Ziel für die Parallelisierungsverarbeitung gesetzt ist, im Kern 3 gestartet. Nach dem Ende der Unter Dp3 wird die Verarbeitung der Aufgabe F, die im Kern 3 unterbrochen wurde, wiederaufgenommen.Similar to the task B, the processing of the task F, which has the task control period of 50 ms and is being executed in the core 3, is interrupted once in a state in which the parallelization processing can be started. The execution of the sub-task D p2 , which is set as the target for the parallelization processing, is then started in the core 3. After the end of the The processing of task F, which was interrupted in core 3, is resumed under D p3.

Ähnlich zur Aufgabe D kann selbstverständlich die Aufgabe F als Ziel für die Parallelisierungsverarbeitung gesetzt werden, solange die Aufgabe F auch in Unteraufgaben unterteilt werden kann und die Parallelisierungsverarbeitung durchgeführt werden kann (siehe 7). Allerdings besitzt die Aufgabe F im Gegensatz zur Aufgabe D einen langen Aufgabensteuerzeitraum und besitzt somit eine Priorität, die niedriger als die der Aufgaben A bis E ist. Somit kann, obwohl die Parallelisierungsverarbeitung nicht ausgeführt wird, die Verarbeitung in einem vorgegebenen Aufgabensteuerzeitraum beendet werden. Somit wird im Beispiel von 12 die Parallelisierungsverarbeitung der Unteraufgabe für die Aufgabe F nicht ausgeführt. Wie oben beschrieben ist, ist es, solange die Verarbeitung in einem vorgegebenen Aufgabensteuerzeitraum abgeschlossen werden kann, möglich, eine Auswahl derart durchzuführen, dass die Parallelisierungsverarbeitung selbst für eine Aufgabe, an der die Parallelisierungsverarbeitung durchgeführt werden kann, nicht ausgeführt wird. Wenn die Aufgabe F in eine Unteraufgabe Fp unterteilt wird und die Parallelisierungsverarbeitung ausgeführt wird, kann eine Priorität der Unteraufgabe Fp niedriger eingestellt werden als eine Priorität der Aufgabe F vor der Aufteilung.Similar to task D, task F can of course be set as the target for the parallelization processing, as long as task F can also be divided into sub-tasks and the parallelization processing can be carried out (see 7th ). However, in contrast to task D, task F has a long task control period and thus has a priority that is lower than that of tasks A to E. Thus, although the parallelization processing is not carried out, the processing can be finished in a predetermined task control period. Thus, in the example of 12th the sub-task parallelization processing for task F is not performed. As described above, as long as the processing can be completed in a predetermined task control period, it is possible to make a selection such that the parallelization processing is not performed even for a task on which the parallelization processing can be performed. When the task F is divided into a sub-task Fp and the parallelization processing is carried out, a priority of the sub-task Fp can be set lower than a priority of the task F before the division.

<Änderungsbeispiel 1><Change example 1>

13 bis 15 veranschaulichen das Änderungsbeispiel 1 der ersten Ausführungsform. Im Änderungsbeispiel 1 wird angenommen, dass die unterbrochene Aufgabe H während der Verarbeitung der Parallelisierungszielunteraufgaben Dp0 bis Dp3 in den Kernen 1 bis 4 auftritt, und 13 veranschaulicht ein Beispiel eines Zeitdiagramms davon. 13th until 15th illustrate the change example 1 the first embodiment. In the change example 1 it is assumed that the interrupted task H occurs during the processing of the parallelization target subtasks D p0 to D p3 in the cores 1 to 4, and 13th Figure 11 illustrates an example of a timing diagram thereof.

Wenn die Aufgabe H auftritt, wird die Aufgabe H durch Unterbrechen der Ausführung der Unteraufgabe Dp3 z. B. im Kern 4 ausgeführt. Im Gegensatz zu den Aufgaben A bis G, die die Aufgabensteuerzeiträume aufweisen, tritt die Aufgabe H, die eine ereignisgesteuerte Verarbeitungsaufgabe ist, in Reaktion auf das Auftreten eines Ereignisses ungeachtet des Aufgabensteuerzeitraums zufällig auf. Somit ist es für einen Gestalter schwierig, den Ausführungszeitpunkt der Aufgabe H im Voraus zu gestalten. Um die Ausführung der Aufgabe H auf der Grundlage des Auftretens des Ereignisses zu ermöglichen, kann die Priorität der Aufgabe H im Allgemeinen höher als die von weiteren Aufgaben eingestellt werden.When task H occurs, task H is performed by interrupting the execution of sub-task D p3 e.g. B. executed in the core 4. Unlike tasks A to G having the task control periods, task H, which is an event-driven processing task, occurs randomly in response to the occurrence of an event regardless of the task control period. Thus, it is difficult for a designer to design the execution timing of task H in advance. In general, to enable task H to be performed based on the occurrence of the event, the priority of task H can be set higher than that of other tasks.

Allerdings kann die Nachparallelisierungsunteraufgabe Dpost nach Abschluss der Parallelisierungszielunteraufgabe Dp ausgeführt werden. Somit muss dann, wenn ein Ausführungsstartzeitpunkt der Aufgabe Dpost durch den Betrieb der Aufgabe H verzögert wird, als Ergebnis die Verarbeitung für die Aufgaben A bis E während des Aufgabensteuerzeitraums nicht abgeschlossen werden und es besteht die Sorge, dass eine Zeitabhängigkeitsverletzung auftreten kann (siehe 13).However, the post-parallelization subtask D post may be performed after the parallelization target subtask D p is completed. Thus, if an execution start time of the task D post is delayed by the operation of the task H, as a result, the processing for the tasks A to E need not be completed during the task control period, and there is a concern that a time dependency violation may occur (see FIG 13th ).

Wie oben beschrieben ist, kann dann, wenn die Aufgabe, deren Priorität höher eingestellt ist als die der Parallelisierungszielunteraufgabe, wie z. B. die ereignisgesteuerte Verarbeitung (die Unterbrechungsverarbeitung) vorliegt, ein Fall vorliegen, in dem die Verarbeitung eines Teils der Parallelisierungszielunteraufgaben unterbrochen ist und die Ausführungszeitabhängigkeit nicht erfüllt werden kann.As described above, if the task whose priority is set higher than that of the parallelization target subtask such as For example, there is the event-driven processing (the interrupt processing), there is a case where the processing of a part of the parallelization target subtasks is interrupted and the execution time dependency cannot be satisfied.

Somit wird im Änderungsbeispiel 1 der ersten Ausführungsform, wie in 14 und 15 veranschaulicht ist, statt allen Unteraufgaben dieselbe Priorität Pd zu geben, die Priorität der Parallelisierungszielunteraufgabe Dp zu einer Priorität Phigh geändert, die höher als die der Vorparallelisierungs-Verarbeitungsunteraufgabe und der Nachparallelisierungs-Verarbeitungsunteraufgabe ist. Die Priorität Phigh wird höher eingestellt als die Priorität der ereignisgesteuerten Verarbeitungsaufgabe H. Zum Beispiel wird der Vorparallelisierungsunteraufgabe Dpre und der Nachparallelisierungsunteraufgabe Dpost dieselbe Priorität (z. B. Pd = 15) wie die Prioritäten der Aufgaben C und E vor und nach der Vorparallelisierungsunteraufgabe Dpre und der Nachparallelisierungsunteraufgabe Dpost gegeben, wohingegen den Parallelisierungszielunteraufgaben Dp0 bis Dp3 die Priorität (z. B. Phigh = 1), die höher als die der Aufgaben C und E und selbst der Aufgabe H ist, gegeben wird.Thus, in the change example 1 of the first embodiment, as in 14th and 15th As illustrated, instead of giving all subtasks the same priority P d , the priority of the parallelization target sub-task D p is changed to a priority P high that is higher than that of the pre-parallelization processing sub-task and the post-parallelization processing sub-task. The priority P high is set higher than the priority of the event-driven processing task H. For example, the pre- parallelization sub-task D pre and the post-parallelization sub-task D post have the same priority (e.g. P d = 15) as the priorities of the tasks C and E before and after the pre- parallelization sub-task D pre and the post- parallelization sub-task D post, whereas the parallelization target sub-tasks D p0 to D p3 are given the priority (e.g. P high = 1) that is higher than that of tasks C and E and even task H .

Wie oben beschrieben ist, kann für die Vorparallelisierungsunteraufgabe Dpre und die Nachparallelisierungsunteraufgabe Dpost die Priorität vor der Parallelisierung übernommen werden und kann die Priorität in einer Beziehung mit den weiteren Aufgaben A bis C, E bis H und dergleichen angepasst werden. Zum Beispiel kann dann, wenn eine weitere Aufgabe vorliegt, die eine Priorität besitzt, die höher als die der ursprüngliche Aufgabe D ist, die Priorität derart angepasst werden, dass die weitere Aufgabe vorzugsweise ausgeführt wird. Allerdings wird für die Parallelisierungszielunteraufgaben Dp0 bis Dp3 die Verletzung der Ausführungszeitabhängigkeit direkt durch eine Ausführungsfluktuation verursacht, wenn eine Behinderung durch eine weitere Aufgabe besteht. Somit wird die höchstmögliche Priorität lediglich den Parallelisierungszielunteraufgaben Dp0 bis Dp3 gegeben. Entsprechend kann der Betrieb der Reihe von Aufgaben, die die Parallelisierungszielunteraufgaben enthalten, garantiert werden.As described above, for the pre- parallelization sub-task D pre and the post- parallelization sub-task D post, the priority can be adopted before the parallelization, and the priority can be adjusted in relation to the other tasks A to C, E to H and the like. For example, if there is a further task which has a priority that is higher than that of the original task D, the priority can be adjusted in such a way that the further task is preferably carried out. However, for the parallelization target subtasks D p0 to D p3, the execution time dependency violation is directly caused by an execution fluctuation when there is an obstruction by another task. Thus, the highest possible priority is given only to the parallelization target subtasks D p0 to D p3 . Accordingly, the operation of the series of tasks including the parallelization target subtasks can be guaranteed.

<Änderungsbeispiel 2><Change example 2>

16 veranschaulicht das Änderungsbeispiel 2 der ersten Ausführungsform. Ebenso wie Änderungsbeispiel 1 veranschaulicht Änderungsbeispiel 2 ein Beispiel, in dem die unterbrochene Aufgabe H während der Verarbeitung der Aufgaben A bis G in den Kernen 1 bis 4 auftritt. Allerdings ist in Änderungsbeispiel 2 die Aufgabenzuweisungseinheit 103 konfiguriert, den Kern 5, der der Verarbeitung der unterbrochenen Aufgabe H fest zugeordnet ist, zu verwenden, wenn die unterbrochene Aufgabe H auftritt. 16 Fig. 3 illustrates modification example 2 of the first embodiment. As well as change example 1 Modification Example 2 illustrates an example in which the interrupted task H occurs during the processing of the tasks A through G in the cores 1 through 4. However, in modification example 2, the task assignment unit is 103 configured to use the core 5 dedicated to processing the interrupted task H when the interrupted task H occurs.

Beim Anwenden der ersten Ausführungsform ist es dann, wenn es unmöglich ist, den Betrieb der Aufgabe H, die die ereignisgesteuerte Verarbeitung ist, zu behindern, möglich, den Kern, der der Aufgabe H fest zugeordnet ist, getrennt zu definieren. In diesem Fall ist es möglich, den Mehrkernprozessor 102 zu verwenden, in dem zwei Typen einer Kerngruppe (der Kerne 1 bis 4) zum Verarbeiten der Aufgaben A bis G, die die Aufgabensteuerzeiträume aufweisen, und einer Kerngruppe (der Kern 5), die der ereignisgesteuerten Verarbeitung fest zugeordnet ist, vorliegen. Wenn der Mehrkernprozessor 102 eine derartige Konfiguration besitzt, kann die Gesamtprozessorverwendungseffizienz durch getrenntes Bereitstellen des Kerns, der der ereignisgesteuerten Verarbeitung fest zugeordnet ist, (des Kerns 5) verringert sein. Allerdings ist es andererseits möglich, die Erfüllung der regelmäßigen Abhängigkeit durch Verbessern der Vorhersagbarkeit eines Aufgabenverhaltens im Mehrkernprozessor 102 sicherzustellen.In applying the first embodiment, if it is impossible to hinder the operation of the task H which is the event-driven processing, it is possible to define the core dedicated to the task H separately. In this case it is possible to use the multi-core processor 102 in which there are two types of a core group (the cores 1 to 4) for processing the tasks A to G having the task control periods and a core group (the core 5) dedicated to the event-driven processing. When the multi-core processor 102 having such a configuration, the overall processor usage efficiency may be reduced by separately providing the core dedicated to the event processing (the core 5). However, on the other hand, it is possible to satisfy the regular dependency by improving the predictability of a task behavior in the multi-core processor 102 to ensure.

Im Änderungsbeispiel 2 ist, da der Betrieb der Aufgaben A bis G, die die Aufgabensteuerzeiträume aufweisen, durch die unterbrochene Aufgabe H nicht behindert wird, ein Zeitpunkt, zu dem ein externer Speicher oder ein Zwischenspeicher verwendet wird, fest und somit kann eine Verarbeitungsleistungsverbesserungswirkung durch eine Zwischenspeicherverwendungs-Effizienzverbesserung erwartet werden.In Modification Example 2, since the operation of the tasks A to G having the task control periods is not hindered by the interrupted task H, a timing at which an external memory or a buffer is used is fixed, and thus a processing performance improvement effect by a Cache usage efficiency improvements are expected.

In der vorliegenden Ausführungsform wurde der Einfachheit halber ein Fall beschrieben, in dem die Anzahl von Parallelisierungszielunteraufgaben eins ist, und zum jetzigen Zeitpunkt kann der Parallelisierungszielunteraufgabe die höchste Priorität gegeben werden. Allerdings können in der Praxis mehrere Aufgaben, die parallelisiert werden sollen, vorliegen. In einem solchen Fall ist es möglich, die Priorität von der höchsten Priorität in der Reihenfolge strengerer Zeitabhängigkeiten sequenziell zu verringern.In the present embodiment, for the sake of simplicity, a case has been described where the number of parallelization target subtasks is one, and at this point in time, the parallelization target subtask can be given the highest priority. However, in practice there may be several tasks that need to be parallelized. In such a case, it is possible to sequentially decrease the priority from the highest priority in the order of more severe time dependencies.

In der oben beschriebenen Ausführungsform wurde die Beschreibung unter der Annahme gegeben, dass der Mehrkernprozessor 102 einen Typ eines Kerns besitzt. Das Verfahren der vorliegenden Ausführungsform kann auch auf einen heterogenen Mehrkern- oder Vielkernprozessor, der mehrere Typen von Kernen in einem Chip besitzt, angewendet werden.In the embodiment described above, the description has been given on the assumption that the multi-core processor 102 has one type of core. The method of the present embodiment can also be applied to a heterogeneous multi-core or multi-core processor having multiple types of cores in one chip.

In einem Fall, in dem die Aufgaben A bis G, die die Aufgabensteuerzeiträume aufweisen, eine Verarbeitungslast besitzen, die höher ist als die der Aufgabe H, die die ereignisgesteuerte Verarbeitung ist, einem Fall, in dem eine Auftrittshäufigkeit der Aufgabe H, die die ereignisgesteuerte Verarbeitung ist, niedrig ist, oder dergleichen ist es in einem derartigen heterogenen Kern möglich, die Arithmetikleistung weiter zu verbessern, indem die Aufgabe, die den Aufgabensteuerzeitraum besitzt, einem Kern, der eine höhere Leistungsfähigkeit besitzt, zugewiesen wird und die Aufgabe H, die die ereignisgesteuerte Verarbeitung ist, einem Kern, der eine niedrigere Leistungsfähigkeit besitzt, zugewiesen wird.In a case where the tasks A to G having the task control periods have a processing load higher than that of the task H which is the event-driven processing, a case where an occurrence frequency of the task H which is the event-driven processing Processing is low, or the like, in such a heterogeneous core, it is possible to further improve arithmetic performance by assigning the task having the task control period to a core having higher performance and task H having the event-driven processing is assigned to a lower-performing core.

[Zweite Ausführungsform][Second embodiment]

Dann wird eine Arithmetiksteuervorrichtung gemäß einer zweiten Ausführungsform unter Bezugnahme auf 17 bis 19 beschrieben.Then, an arithmetic control device according to a second embodiment will be described with reference to FIG 17th until 19th described.

17 ist ein schematisches Blockdiagramm, das Komponenten in Bezug auf eine Arithmetikverarbeitung in einer Arithmetiksteuervorrichtung eines Mehrkernprozessors gemäß der zweiten Ausführungsform veranschaulicht. Dieselben Teile wie in der ersten Ausführungsform (1) werden in 17 durch dieselben Bezugssymbole wie in 1 bezeichnet und somit wird die redundante Beschreibung unten unterlasen. 17th Fig. 13 is a schematic block diagram illustrating components related to arithmetic processing in an arithmetic control apparatus of a multi-core processor according to the second embodiment. The same parts as in the first embodiment ( 1 ) are in 17th with the same reference symbols as in 1 and thus the redundant description below is omitted.

In der zweiten Ausführungsform enthält die Parameterzuweisungseinheit 101 nicht die Aufgabenprioritäts-Parameterspeichereinheit 1012, sondern enthält stattdessen eine Fristparameterspeichereinheit 1014, die einen Fristparameter speichert, der eine absolute Frist angibt, die ein Zeitpunkt ist, zu dem jede Aufgabe die Verarbeitung zwingend abschließen muss. Das heißt, in der zweiten Ausführungsform wird dann, wenn eine bestimmte Aufgabe in Unteraufgaben unterteilt wird und eine Parallelisierungsverarbeitung ausgeführt wird, eine absolute Frist geändert und als ein Parameter gespeichert, anstatt die Priorität der Unteraufgabe zu erhöhen. Die absolute Frist der Unteraufgabe als das Parallelisierungsziel wird geändert und somit wird die Aufgabe, deren absolute Frist nahe ist, vorzugsweise ausgeführt. Als Ergebnis ist es möglich, die Ausführungszeitabhängigkeit der Aufgabe zu erfüllen. In diesem Beispiel wird eine absolute Frist, die eine absolute Zeitbeschränkung ist, erzeugt und als ein Parameter gespeichert, jedoch kann statt der absoluten Frist z. B. ein relativer Zeitpunkt ab einem Startzeitpunkt eines Aufgabensteuerzeitraums erzeugt und als eine Frist gespeichert werden.In the second embodiment, the parameter assignment unit contains 101 not the task priority parameter storage device 1012 but instead contains a deadline parameter storage unit 1014 , which stores a deadline parameter that specifies an absolute deadline, which is a point in time by which every task must compulsorily complete its processing. That is, in the second embodiment, when a certain task is divided into sub-tasks and parallelization processing is performed, an absolute deadline is changed and stored as a parameter instead of increasing the priority of the sub-task. The absolute deadline of the sub-task as the parallelization target is changed, and thus the task whose absolute deadline is close is preferentially performed. As a result, it is possible to meet the execution time dependency of the task. In this example, an absolute deadline, which is an absolute time constraint, is generated and stored as a parameter, but instead of the absolute deadline, e.g. B. a relative point in time from a start point in time of a duty tax period and saved as a deadline.

18 ist eine Tabelle, die verschiedene Parameter für jede der Aufgaben, die auf der Grundlage des Quellcodes der Software-Komponenten in der zweiten Ausführungsform erzeugt werden, veranschaulicht. Wenn bestimmt wird, dass die Zeitabhängigkeitsverletzung für die Aufgaben A bis E, die den Aufgabensteuerzeitraum von 30 ms besitzen, auftreten wird, wird die Aufgabe D, die parallelisierbar ist, in Unteraufgaben (Dpre, Dp0 bis Dp3 und Dpost) unterteilt und die Parallelisierung der Unteraufgaben wird ausgeführt. 18th Fig. 13 is a table illustrating various parameters for each of the tasks generated based on the source code of the software components in the second embodiment. If it is determined that the time dependency violation will occur for tasks A to E having the task control period of 30 ms, task D, which is parallelizable, is divided into subtasks (D pre , D p0 to D p3 and D post ) and the parallelization of the subtasks is carried out.

Wie in 19 veranschaulicht ist, kann die absolute Frist der Parallelisierungszielunteraufgaben Dp0 bis Dp3 kürzer als die absolute Frist der ursprünglichen Aufgabe D eingestellt werden. Hier wird die absolute Frist als 20 ms durch Rückrechnung von einer Operationszeitbeschränkung festgelegt und wird kürzer als die ursprüngliche absolute Frist (30 ms) eingestellt. Wenn die Frist bei einer langen Zeit gehalten wird, ist es schwierig, die Termine der Parallelisierungszielunteraufgaben Dp0 bis Dp3 durch die Ausführung der unterbrochenen Aufgabe H zu garantieren. Die absolute Frist der Parallelisierungszielunteraufgaben Dp0 bis Dp3 wird kürzer eingestellt und somit können die Ausführungsprioritäten der Aufgaben Dp0 bis Dp3 erhöht werden.As in 19th As illustrated, the absolute deadline of the parallelization target subtasks D p0 to D p3 can be set shorter than the absolute deadline of the original task D. Here, the absolute deadline is set as 20 ms by back calculation from an operation time limit and is set to be shorter than the original absolute deadline (30 ms). If the deadline is kept at a long time, it is difficult to guarantee the deadlines of the parallelization target subtasks D p0 to D p3 by executing the interrupted task H. The absolute deadline of the parallelization target subtasks D p0 to D p3 is set shorter and thus the execution priorities of the tasks D p0 to D p3 can be increased.

Ähnlich zu Änderungsbeispiel 2 der ersten Ausführungsform ist es im Hinblick auf die Aufgabe H auch möglich, einen Mehrkernprozessor anzuwenden, in dem zwei Typen von Kernen (die Kerne 1 bis 4) zum Verarbeiten der Aufgaben, die den Aufgabensteuerzeitraum besitzen, und der Kern (den Kern 5), der der Verarbeitung für die Aufgabe der ereignisgesteuerten Verarbeitung fest zugeordnet ist, vorhanden sind. Wenn eine derartige Konfiguration angewendet wird, liegt der Nachteil vor, dass die Gesamtprozessorverwendungseffizienz durch getrenntes Bereitstellen des Kerns, der der ereignisgesteuerten Verarbeitung fest zugeordnet ist, abgesenkt wird, jedoch ist es möglich, die Erfüllung der regelmäßigen Abhängigkeit durch Verbessern der Vorhersagbarkeit des Aufgabenverhaltens im Mehrkernprozessor sicherzustellen. Da der Betrieb der regelmäßigen Verarbeitungsaufgabe nicht behindert wird, ist der Zeitpunkt, zu dem der externe Speicher oder der Zwischenspeicher verwendet wird, fest und somit ist es möglich, die Verarbeitungsleistungsverbesserungswirkung aufgrund der Zwischenspeicherverwendungs-Effizienzverbesserung zu erwarten und ist es möglich, die Anzahl von Aufgabenentwurfsarbeitsstunden durch Durchführen einer dynamischen Planung im Vergleich zu einer statischen Planung in der ersten Ausführungsform zu verringern.Similar to Modification Example 2 of the first embodiment, with regard to Task H, it is also possible to employ a multi-core processor in which two types of cores (the cores 1 to 4) for processing the tasks having the task control period and the core (the Core 5), which is permanently assigned to the processing for the task of event-driven processing, are available. If such a configuration is adopted, there is a disadvantage that the overall processor usage efficiency is lowered by separately providing the core dedicated to the event-driven processing, but it is possible to meet the regular dependency by improving the predictability of the task behavior in the multi-core processor to ensure. Since the operation of the regular processing task is not hindered, the timing at which the external memory or the buffer is used is fixed, and thus it is possible to expect the processing performance improvement effect due to the buffer usage efficiency improvement, and it is possible to check the number of task design man-hours by performing dynamic planning as compared with static planning in the first embodiment.

Obwohl oben die Ausführungsformen der vorliegenden Erfindung beschrieben wurden, wurden diese Ausführungsformen als Beispiele präsentiert und sind nicht dazu bestimmt, den Umfang der Erfindung zu beschränken. Diese neuen Ausführungsformen können in verschiedenen weiteren Formen implementiert werden und verschiedene Auslassungen, Ersetzungen und Änderungen können vorgenommen werden, ohne vom Hauptinhalt der Erfindung abzuweichen. Diese Ausführungsformen und ihre Änderungen sind im Umfang und Hauptinhalt der Erfindung enthalten und sind in der Erfindung, die in den Ansprüchen beschrieben ist, und ihrem entsprechenden Umfang enthalten.Although the embodiments of the present invention have been described above, these embodiments have been presented as examples and are not intended to limit the scope of the invention. These new embodiments can be implemented in various other forms, and various omissions, substitutions, and changes can be made without departing from the gist of the invention. These embodiments and their modifications are included within the scope and gist of the invention, and are included in the invention described in the claims and its respective scope.

Zusätzlich kann ein Teil der oben genannten Konfigurationen, Funktionen, Verarbeitungseinheiten, Verarbeitungsmittel und dergleichen durch Hardware, z. B. durch Entwerfen einer integrierten Schaltung, realisiert werden. Jede der oben genannten Konfigurationen und Funktionen kann durch Software durch Interpretieren und Ausführen eines Programms, das jede Funktion durch den Prozessor realisiert, realisiert werden. Daten von Programmen, Tabellen, Dateien und dergleichen zum Realisieren der Funktionen können in einer Aufzeichnungsvorrichtung wie z. B. einem Speicher, einer Festplatte oder einem Festkörperlaufwerk (SSD) oder einem Aufzeichnungsmedium wie z. B. einer IC-Karte, einer SD-Karte oder einem DVD gespeichert sein.In addition, part of the above configurations, functions, processing units, processing means and the like can be implemented by hardware, e.g. By designing an integrated circuit. Each of the above configurations and functions can be realized by software by interpreting and executing a program that realizes each function by the processor. Data of programs, tables, files and the like for realizing the functions can be stored in a recording device such as e.g. B. a memory, a hard disk or a solid state drive (SSD) or a recording medium such. B. an IC card, an SD card or a DVD.

Zum Beispiel ist in der oben genannten Ausführungsformen die Kombination der Aufgabengruppe, die den Steuerzeitraum von 30 ms besitzt, der Aufgabengruppe, die den Steuerzeitraum von 50 ms besitzt, und der ereignissteuernden Aufgabe veranschaulicht, jedoch ist die vorliegende Erfindung nicht darauf beschränkt. Ungeachtet des Vorliegens mehrerer Typen der Steuerzeiträume, verschiedener Fristzeitpunkte, des Vorliegens oder des Fehlens der ereignisgesteuerten Verarbeitung und dergleichen kann die vorliegende Erfindung eine Fluktuation der Verarbeitungszeit durch Ändern der Verarbeitungspriorität der Aufgabe, die durch Parallelisierung erzeugt wird, verringern und kann die Zusicherungsmöglichkeit der Ausführungszeitabhängigkeit erhöhen.For example, in the above-mentioned embodiment, the combination of the task group having the control period of 30 ms, the task group having the control period of 50 ms, and the event controlling task is illustrated, but the present invention is not limited thereto. Regardless of the existence of plural types of control periods, different timing, the existence or absence of the event-driven processing, and the like, the present invention can reduce fluctuation in processing time by changing the processing priority of the task generated by parallelization, and can increase the assurance possibility of execution time dependency .

BezugszeichenlisteList of reference symbols

11
Arithmetiksteuervorrichtung,Arithmetic control device,
101101
Parameterzuweisungseinheit,Parameter assignment unit,
10111011
Aufgabensteuerzeitraum-Parameterspeichereinheit,Task control period parameter storage unit,
10121012
Aufgabenprioritäts-Parameterspeichereinheit,Task priority parameter storage unit,
10131013
Aufgabenabhängigkeitsbeziehungs-Parameterspeichereinheit,Task dependency relationship parameter storage unit,
10141014
Fristparameterspeichereinheit,Time limit parameter storage unit,
102102
Mehrkernprozessor,Multi-core processor,
1021, 10221021, 1022
Kern,Core,
103103
Aufgabenzuweisungseinheit.Task assignment unit.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED 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 was 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 PatentliteraturPatent literature cited

  • JP 2008171153 A [0006]JP 2008171153 A [0006]

Claims (10)

Arithmetiksteuervorrichtung, die Folgendes umfasst: einen Prozessor, der mehrere Kerne besitzt; und eine Aufgabenzuweisungseinheit, die den mehreren Kernen Aufgaben zuweist, wobei die Aufgabenzuweisungseinheit konfiguriert ist, zu bestimmen, ob mehrere Unteraufgaben, die die Aufgabe bilden, als Ziele einer Parallelisierungsverarbeitung verfügbar sind oder nicht, und die mehreren Unteraufgaben den mehreren Kernen unter einer vorgegebenen Bedingung zuzuweisen, wenn die Parallelisierungsverarbeitung ausführbar ist.An arithmetic control device comprising: a processor having multiple cores; and a task assignment unit that assigns tasks to the plurality of cores, wherein the task assignment unit is configured to determine whether or not a plurality of subtasks constituting the task are available as targets of parallelization processing, and to assign the plurality of subtasks to the multiple cores under a predetermined condition when the parallelization processing is executable. Arithmetiksteuervorrichtung nach Anspruch 1, die ferner Folgendes umfasst: eine Parameterzuweisungseinheit, die der Aufgabe einen Parameter zuweist, wobei die Parameterzuweisungseinheit als einen Parameter eine Priorität zuweist, die einen Grad angibt, zu dem eine Aufgabe über eine weitere Aufgabe bevorzugt verarbeitet werden soll, und eine Priorität der Unteraufgabe als das Ziel der Parallelisierungsverarbeitung zu einer Priorität geändert wird, die von der Priorität der ursprünglichen Aufgabe vor der Parallelisierung verschieden ist.Arithmetic control device according to Claim 1 which further comprises: a parameter assignment unit that assigns a parameter to the task, wherein the parameter assignment unit assigns as a parameter a priority that indicates a degree to which a task is to be processed preferentially over another task, and a priority of the sub-task as the destination of the parallelization processing is changed to a priority different from the priority of the original task before the parallelization. Arithmetiksteuervorrichtung nach Anspruch 2, wobei die Parameterzuweisungseinheit als Parameter einen Aufgabensteuerzeitraum, der einen Zeitraum angibt, in dem die Aufgabe verarbeitet wird, und eine Aufgabenabhängigkeitsbeziehung, die eine Abhängigkeitsbeziehung zwischen den mehreren Aufgaben angibt, zuweist und die Aufgabenzuweisungseinheit die Aufgaben den mehreren Kerne auf der Grundlage des Aufgabensteuerzeitraums und der Aufgabenabhängigkeitsbeziehung zuweist.Arithmetic control device according to Claim 2 , wherein the parameter assignment unit as parameters a task control period indicating a period in which the task is processed and a task dependency relationship indicating a dependency relationship between the plurality of tasks, and the task assignment unit assigns the tasks to the plurality of cores based on the task control period and the Assigns task dependency relationship. Arithmetiksteuervorrichtung nach Anspruch 3, wobei die Aufgabe eine ereignisgesteuerte Verarbeitungsaufgabe enthält, die ungeachtet des Aufgabensteuerzeitraums auftritt, und die Parameterzuweisungseinheit als einen Parameter der Unteraufgabe, die als Ziel der Parallelisierungsverarbeitung verwendet wird, eine Priorität zuweist, die höher als eine Priorität der ereignisgesteuerten Verarbeitungsaufgabe ist.Arithmetic control device according to Claim 3 wherein the task includes an event processing task that occurs regardless of the task control period, and the parameter assignment unit assigns a priority higher than a priority of the event processing task as a parameter of the sub-task used as the target of the parallelization processing. Arithmetiksteuervorrichtung nach Anspruch 1, wobei die Aufgabe eine ereignisgesteuerte Verarbeitungsaufgabe enthält, die ungeachtet eines Aufgabensteuerzeitraums auftritt, und die Aufgabenzuweisungseinheit eine Aufgabe, die den Aufgabensteuerzeitraum besitzt, einem ersten Kern der mehreren Kerne zuweist und die ereignisgesteuerte Verarbeitungsaufgabe einem zweiten Kern, der vom ersten Kern verschieden ist, zuweist.Arithmetic control device according to Claim 1 wherein the task includes an event processing task that occurs regardless of a task control period, and the task assignment unit assigns a task having the task control period to a first core of the plurality of cores, and assigns the event processing task to a second core different from the first core. Arithmetiksteuervorrichtung nach Anspruch 1, wobei die Aufgabenzuweisungseinheit die mehreren Unteraufgaben in eine Vorparallelisierungsunteraufgabe, eine Parallelisierungszielunteraufgabe, die nach der Ausführung der Vorparallelisierungsunteraufgabe ausgeführt wird, und eine Nachparallelisierungsunteraufgabe, die nach der Ausführung der Parallelisierungszielunteraufgabe ausgeführt wird, aufteilt und die Aufgaben den mehreren Kerne derart zuweist, dass die Parallelisierungszielunteraufgabe als das Ziel der Parallelisierungsverarbeitung verwendet wird.Arithmetic control device according to Claim 1 , wherein the task assignment unit divides the plurality of subtasks into a pre-parallelization sub-task, a parallelization target sub-task that is executed after the execution of the pre-parallelization sub-task, and a post-parallelization sub-task that is executed after the execution of the parallelization target subtask, and assigns the tasks to the multiple cores such that the parallelization target sub-task as the target of parallelization processing is being used. Arithmetiksteuervorrichtung nach Anspruch 6, wobei für die Parallelisierungszielunteraufgabe eine Priorität eingestellt wird, die höher als die Prioritäten der Vorparallelisierungsunteraufgabe und der Nachparallelisierungsunteraufgabe ist.Arithmetic control device according to Claim 6 wherein the parallelization target subtask is set to a priority higher than the priorities of the pre-parallelization sub-task and the post-parallelization sub-task. Arithmetiksteuervorrichtung nach Anspruch 6 oder 7, wobei für die Parallelisierungszielunteraufgabe eine Priorität eingestellt wird, die höher als eine Priorität der ursprünglichen Aufgabe vor der Aufteilung ist.Arithmetic control device according to Claim 6 or 7th wherein the parallelization target subtask is set to a priority higher than a priority of the original task before the split. Arithmetiksteuervorrichtung nach Anspruch 1, die ferner Folgendes umfasst: eine Parameterzuweisungseinheit, die der Aufgabe einen Parameter zuweist, wobei die Parameterzuweisungseinheit als einen Parameter eine Frist, die einen Zeitpunkt angibt, zu dem die Verarbeitung einer Aufgabe abgeschlossen sein soll, zuweist, und eine Frist der Unteraufgabe, die als Ziel der Parallelisierungsverarbeitung verwendet wird, ändert.Arithmetic control device according to Claim 1 further comprising: a parameter assignment unit that assigns a parameter to the task, wherein the parameter assignment unit assigns, as a parameter, a deadline indicating a point in time at which the processing of a task is to be completed, and a deadline of the sub-task which is The purpose of the parallelization processing is used changes. Arithmetiksteuervorrichtung nach Anspruch 1, wobei der Prozessor ein heterogener Prozessor ist, in dem mehrere Kerne verschiedene Leistungsfähigkeiten besitzen.Arithmetic control device according to Claim 1 , wherein the processor is a heterogeneous processor in which multiple cores have different capabilities.
DE112019005584.4T 2018-12-12 2019-11-29 ARITHMETIC CONTROL DEVICE Pending DE112019005584T5 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018232407A JP7385989B2 (en) 2018-12-12 2018-12-12 Arithmetic control unit
JP2018-232407 2018-12-12
PCT/JP2019/046724 WO2020121840A1 (en) 2018-12-12 2019-11-29 Arithmetic control device

Publications (1)

Publication Number Publication Date
DE112019005584T5 true DE112019005584T5 (en) 2021-10-28

Family

ID=71075338

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019005584.4T Pending DE112019005584T5 (en) 2018-12-12 2019-11-29 ARITHMETIC CONTROL DEVICE

Country Status (3)

Country Link
JP (1) JP7385989B2 (en)
DE (1) DE112019005584T5 (en)
WO (1) WO2020121840A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7188693B2 (en) 2018-09-12 2022-12-13 国立研究開発法人物質・材料研究機構 Electrode using graphene, method for producing same, and power storage device using same
JP6988773B2 (en) * 2018-11-15 2022-01-05 オムロン株式会社 Control system and control unit
CN112114956A (en) * 2020-09-29 2020-12-22 中国银行股份有限公司 Task scheduling method, device and system
KR102540724B1 (en) * 2020-12-14 2023-06-05 현대오토에버 주식회사 Method for managing execution of task in the multi-core system, and apparatus implementing the same method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008171153A (en) 2007-01-10 2008-07-24 Fujitsu Ten Ltd Task management apparatus

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000099352A (en) 1998-09-18 2000-04-07 Fuji Xerox Co Ltd Job processor
JP5036523B2 (en) 2007-12-21 2012-09-26 三菱電機株式会社 Program parallelizer
JP6183374B2 (en) 2012-10-31 2017-08-23 日本電気株式会社 Data processing system, data processing method and program
JP2014160367A (en) 2013-02-20 2014-09-04 Mitsubishi Electric Corp Arithmetic processing unit
JP6214469B2 (en) 2014-05-26 2017-10-18 日立オートモティブシステムズ株式会社 Vehicle control device
JP2016091137A (en) 2014-10-31 2016-05-23 コニカミノルタ株式会社 Image forming apparatus, specific processing execution method, and computer program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008171153A (en) 2007-01-10 2008-07-24 Fujitsu Ten Ltd Task management apparatus

Also Published As

Publication number Publication date
JP2020095441A (en) 2020-06-18
JP7385989B2 (en) 2023-11-24
WO2020121840A1 (en) 2020-06-18

Similar Documents

Publication Publication Date Title
DE112019005584T5 (en) ARITHMETIC CONTROL DEVICE
DE60307532T2 (en) Parallel process execution method and multiprocessor computer
DE69637020T2 (en) Over partitioning system and method for increasing the number of checkpoints in component-based parallel applications
DE102016014152A1 (en) Numerical control device
DE112020004661T5 (en) Determining an optimal number of threads per core in a multi-core processor complex
DE102017210126A1 (en) Parallelization method, parallelization tool and in-vehicle device
DE112014000340T5 (en) Prefetching data for a chip with a parent core and a scout core
DE102018104188A1 (en) Combined Rendering and Calculation Resource Allocation Management System
DE102016203808A1 (en) Reduce virtual machine preemption in a virtualized environment
DE102016223939A1 (en) Parallelization method, parallelization tool and on-board device
DE102018114322A1 (en) Architecture and services to support reconfigurable synchronization in a multiprocessor system
DE112017003052T5 (en) Control system with a distributed service-oriented architecture
DE102016219403A1 (en) PARALLELIZATION PROCESSING, PARALLELIZATION TOOL AND VEHICLE-ASSIGNED DEVICE
DE102007051803A1 (en) Method and device for data processing
DE102016204970A1 (en) Parallelization compilation method, parallelization complicator and vehicle device
DE102015100566A1 (en) Method and light mechanism for mixed critical applications
DE102016219449A1 (en) Parallelization method, parallelization tool and vehicle-mounted device
DE112019000189T5 (en) PROGRAM EXECUTION CONTROL METHOD AND VEHICLE CONTROL DEVICE
DE102018123563B4 (en) Method for inter-core communication in a multi-core processor
EP3705993B1 (en) System and method for locating and identifying computing nodes in a network
DE102016224206A1 (en) VEHICLE CONTROL DEVICE
DE112020005072T5 (en) DATA PROCESSING ESTABLISHMENT
EP2126700B1 (en) Control of the run time behavior of processes
DE102020214951A1 (en) Method for dynamically allocating memory bandwidth
DE112018003505T5 (en) ACCESS CONTROL DEVICE

Legal Events

Date Code Title Description
R012 Request for examination validly filed