DE102016208178A1 - Software segmentation method, software segmentation device, and on-vehicle device - Google Patents

Software segmentation method, software segmentation device, and on-vehicle device Download PDF

Info

Publication number
DE102016208178A1
DE102016208178A1 DE102016208178.0A DE102016208178A DE102016208178A1 DE 102016208178 A1 DE102016208178 A1 DE 102016208178A1 DE 102016208178 A DE102016208178 A DE 102016208178A DE 102016208178 A1 DE102016208178 A1 DE 102016208178A1
Authority
DE
Germany
Prior art keywords
software
segmentation
segments
cores
segmented
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
DE102016208178.0A
Other languages
German (de)
Inventor
Tetsuo Hattori
Soichiro Arai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Publication of DE102016208178A1 publication Critical patent/DE102016208178A1/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/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

Eine Softwaresegmentierungsvorrichtung segmentiert Software, die in einem Mikrocomputer läuft, der mehrere Kerne enthält, in einer Pause einer Steuerung oder einer Pause eines Betriebs in einer Anzahl von Segmenten, die kleiner als die Anzahl der Kerne in dem Mikrocomputer ist (S60). Außerdem segmentiert die Softwaresegmentierungsvorrichtung Zielsegmentierungssoftware, die segmentiert wurde, in einem dünn besetzten Teil eines Datenflusses in dieselbe Anzahl von Segmenten wie die Anzahl der Kerne in dem Mikrocomputer (S70).A software segmentation device segments software running in a microcomputer including a plurality of cores in a pause of a control or a pause of an operation in a number of segments smaller than the number of cores in the microcomputer (S60). In addition, the software segmentation device segments target segmentation software that has been segmented in a sparsely populated part of a data flow into the same number of segments as the number of cores in the microcomputer (S70).

Description

TECHNISCHES GEBIETTECHNICAL AREA

Die vorliegende Erfindung betrifft ein Softwaresegmentierungsverfahren und eine Softwaresegmentierungsvorrichtung, die Software, die in einem Mikrocomputer läuft, der mehrere Kerne enthält, segmentieren, und betrifft außerdem eine fahrzeugeigene Vorrichtung, die einen Mikrocomputer enthält, der mehrere Kerne enthält.The present invention relates to a software segmentation method and a software segmentation apparatus that segment software running in a microcomputer that includes a plurality of cores, and also relates to an on-vehicle apparatus that includes a microcomputer that includes a plurality of cores.

STAND DER TECHNIKSTATE OF THE ART

  • Patentliteratur 1: JP 2014-160453 A Patent Literature 1: JP 2014-160453 A

Es gibt Programme, die durch Segmentieren von Software entsprechend der Anzahl der Kerne eines Mikrocomputers in einer fahrzeugeigenen Vorrichtung erzeugt werden, um Steuerverarbeitungsteile des Mikrocomputers den jeweiligen Kernen zuzuordnen (siehe Patentliteratur 1).There are programs generated by segmenting software corresponding to the number of cores of a microcomputer in an on-vehicle device to assign control processing parts of the microcomputer to the respective cores (see Patent Literature 1).

ZUSAMMENFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION

Die Erhöhung der Anzahl der Kerne in einem Mikrocomputer bereitet Schwierigkeiten beim Segmentieren von Software zum gleichen Verteilen der Verarbeitungslasten auf die jeweiligen Kerne. Die vorliegende Erfindung weist somit die Aufgabe auf, eine Technologie zum Erleichtern eines Segmentierens von Software zu schaffen, um die Verarbeitungslasten auf jeweilige Kerne gleich zu verteilen.Increasing the number of cores in a microcomputer causes difficulty in segmenting software to equally distribute the processing loads to the respective cores. The present invention thus has the object of providing a technology for facilitating segmentation of software to distribute the processing loads equally to respective cores.

Um die obige Aufgabe zu lösen, wird gemäß einem ersten Aspekt der vorliegenden Erfindung ein Softwaresegmentierungsverfahren geschaffen, das Software, die von einem Mikrocomputer ausgeführt wird, der mehrere Kerne enthält, segmentiert, um diese den jeweiligen Kernen zuzuordnen. Das Verfahren enthält einen ersten Segmentierungsschritt und einen zweiten Segmentierungsschritt. Der erste Segmentierungsschritt segmentiert mindestens einen Teil einer Software, die in dem Computer läuft, in einer Pause einer Steuerung oder einer Pause eines Betriebs in eine Anzahl von Segmenten, die kleiner als die Anzahl der Kerne ist, die in dem Mikrocomputer enthalten sind. Der zweite Segmentierungsschritt segmentiert die Software, die von dem ersten Segmentierungsschritt segmentiert wurde, in einem dünn besetzten Teil eines Datenflusses, um mindestens einen Teil der Software in dieselbe Anzahl von Segmenten wie die Anzahl der Kerne, die in dem Mikrocomputer enthalten sind, zu segmentieren.In order to achieve the above object, according to a first aspect of the present invention, there is provided a software segmentation method which segments software executed by a microcomputer including a plurality of cores to associate them with the respective cores. The method includes a first segmentation step and a second segmentation step. The first segmentation step segments at least a portion of software running in the computer into a number of segments smaller than the number of cores contained in the microcomputer during a pause of control or pause of operation. The second segmentation step segments the software segmented by the first segmentation step into a sparsely populated portion of a data flow to segment at least a portion of the software into the same number of segments as the number of cores contained within the microcomputer.

Das obige Softwaresegmentierungsverfahren des ersten Aspektes der vorliegenden Erfindung dient zum Segmentieren von Software in einer Pause einer Steuerung oder einer Pause eines Betriebs und zum anschließenden Segmentieren der Software in einem dünn besetzten Teil eines Datenflusses.The above software segmentation method of the first aspect of the present invention is for segmenting software in a pause of control or pause of an operation and then segmenting the software in a sparse part of a data flow.

Ein Verfahren, das Software in einer Pause einer Steuerung oder einer Pause eines Betriebs segmentiert, dient zum Segmentieren von Software an einem Punkt, bei dem die Software von einem Menschen segmentiert werden könnte. Die Größen der Segmente ändern sich in Abhängigkeit davon, ob das Verarbeitungsvolumen groß ist. Ein Verfahren, das Software in einem dünn besetzten Teil eines Datenflusses segmentiert, ist ein Verfahren, gemäß dem es einem Menschen schwerfällt, Software zu segmentieren und das für eine automatische oder autonome Segmentierung durch einen Computer geeignet ist. Eine Änderung unter den Größen der Segmente kann daher minimiert werden.A method of segmenting software during a pause of a control or break of an operation serves to segment software at a point where the software could be segmented by a human. The sizes of the segments change depending on whether the processing volume is large. A method that segments software in a sparse part of a data flow is a method that makes it difficult for a human to segment software and that is suitable for automatic or autonomous segmentation by a computer. A change in the sizes of the segments can therefore be minimized.

Insbesondere verwendet das Softwaresegmentierungsverfahren des ersten Aspektes ein Segmentierungsverfahren, das für eine automatische oder autonome Segmentierung durch einen Computer geeignet ist (das heißt ein Verfahren, das Software in einem dünn besetzten Teil eines Datenflusses segmentiert), und kann daher Software einfach segmentieren, um die Verarbeitungslasten auf die jeweiligen Kerne gleich zu verteilen. Das Verfahren, das Software in einem dünn besetzten Teil eines Datenflusses segmentiert, kann einer Begrenzung hinsichtlich der Anzahl der Segmente, in die die Software segmentiert werden kann, ausgesetzt sein. Wenn die Anzahl der Kerne in einem Mikrocomputer größer als die Anzahl der Segmente ist, die mit dem Verfahren erzielt werden können, das Software in einem dünn besetzten Teil eines Datenflusses segmentiert, segmentiert daher das Softwaresegmentierungsverfahren des ersten Aspektes die Software in einer Pause einer Steuerung oder einer Pause eines Betriebs. Das Softwaresegmentierungsverfahren des ersten Aspektes kann somit Software geeignet in dieselbe Anzahl von Segmenten wie eine Zielanzahl von Kernen segmentieren.In particular, the software segmentation method of the first aspect uses a segmentation method that is suitable for automatic or autonomous segmentation by a computer (that is, a method that segments software in a sparse part of a data flow) and therefore can easily segment software to handle the processing loads equally distributed to the respective cores. The method that segments software in a sparse part of a data flow may be subject to a limitation on the number of segments into which the software may be segmented. Therefore, if the number of cores in a microcomputer is greater than the number of segments that can be achieved with the method segmenting software in a sparse part of a data flow, the software segmentation method of the first aspect segments the software in a pause of a controller or a break from a business. The software segmentation method of the first aspect may thus segment software appropriately into the same number of segments as a target number of cores.

Um die obige Aufgabe zu lösen, wird gemäß einem zweiten Aspekt der vorliegenden Erfindung eine Softwaresegmentierungsvorrichtung geschaffen, die Software, die von einem Mikrocomputer ausgeführt wird, der mehrere Kerne enthält, segmentiert, um diese den jeweiligen Kernen zuzuordnen. Die Vorrichtung enthält eine erste Segmentierungseinrichtung und eine zweite Segmentierungseinrichtung. Die erste Segmentierungseinrichtung segmentiert mindestens einen Teil von Software, der in dem Mikrocomputer läuft, in einer Pause einer Steuerung oder einer Pause eines Betriebs in eine Anzahl von Segmenten, die kleiner als die Anzahl der Kerne ist, die in dem Mikrocomputer enthalten sind. Die zweite Segmentierungseinrichtung segmentiert die Software, die von der ersten Segmentierungseinrichtung segmentiert wurde, in einem dünn besetzten Teil eines Datenflusses, um mindestens einen Teil der Software in dieselbe Anzahl von Segmenten wie die Anzahl der Kerne, die in dem Mikrocomputer enthalten sind, zu segmentieren.In order to achieve the above object, according to a second aspect of the present invention, there is provided a software segmentation apparatus which segments software executed by a microcomputer including a plurality of cores to associate them with the respective cores. The device includes a first segmentation device and a second segmentation device. The first segmentation device segments at least a portion of software running in the microcomputer into a number of segments smaller than the number of cores contained in the microcomputer during a pause of a control or pause of operation. The second segmentation device segments the software segmented by the first segmentation device into a sparsely populated part a data flow to segment at least a portion of the software into the same number of segments as the number of cores contained in the microcomputer.

Die Softwaresegmentierungsvorrichtung gemäß dem zweiten Aspekt, die das Softwaresegmentierungsverfahren gemäß dem ersten Aspekt ausführt, kann daher eine ähnliche vorteilhafte Wirkung wie das Softwaresegmentierungsverfahren gemäß dem ersten Aspekt erzielen.The software segmentation apparatus according to the second aspect, which executes the software segmentation method according to the first aspect, can therefore achieve a similar advantageous effect as the software segmentation method according to the first aspect.

Um die obige Aufgabe zu lösen, wird gemäß einem dritten Aspekt der vorliegenden Erfindung eine fahrzeugeigene Vorrichtung geschaffen, die einen Mikrocomputer enthält, der mehrere Kerne enthält, die auf der Grundlage von Softwareteilen, in die die Software gemäß dem Softwaresegmentierungsverfahren des ersten Aspektes segmentiert wird, betrieben werden. Die fahrzeugeigene Vorrichtung gemäß dem dritten Aspekt, die die Software ausführt, die unter Verwendung des Softwaresegmentierungsverfahrens gemäß dem ersten Aspekt erstellt wird, kann daher die Verarbeitungslasten auf mehrere Kerne, die in dem Mikrocomputer enthalten sind, effektiv unter Verwendung der Kerne des Mikrocomputers gleich verteilen.In order to achieve the above object, according to a third aspect of the present invention, there is provided an in-vehicle apparatus including a microcomputer including a plurality of cores based on software portions into which the software is segmented according to the software segmentation method of the first aspect; operate. The on-vehicle device according to the third aspect, which executes the software that is constructed using the software segmentation method according to the first aspect, can therefore effectively distribute the processing loads to a plurality of cores included in the microcomputer, using the cores of the microcomputer.

KURZE BESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS

Die obigen und weitere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden anhand der folgenden detaillierten Beschreibung mit Bezug auf die zugehörigen Zeichnungen deutlich. Es zeigen:The above and other objects, features and advantages of the present invention will become more apparent from the following detailed description made with reference to the accompanying drawings. Show it:

1 ein Blockdiagramm, das eine Konfiguration einer Segmentierungsvorrichtung gemäß einer ersten Ausführungsform der vorliegenden Erfindung darstellt; 1 10 is a block diagram illustrating a configuration of a segmentation device according to a first embodiment of the present invention;

2 ein Flussdiagramm, das eine Segmentierungsverarbeitung darstellt; 2 a flowchart illustrating a segmentation processing;

3 ein Diagramm, das ein konkretes Beispiel eines dünn besetzten Teils eines Datenflusses darstellt; 3 a diagram illustrating a concrete example of a sparsely populated part of a data flow;

4 ein Diagramm, das ein konkretes Beispiel einer Segmentierung, die entsprechend der Anzahl n von Kernen, der Anzahl l der datenabhängigen Segmente und der Anzahl k der Steuer-/Betriebssegmente ausgeführt wird, darstellt; 4 Fig. 12 is a diagram illustrating a concrete example of segmentation executed according to the number n of cores, the number 1 of the data-dependent segments, and the number k of the control / operation segments;

5 ein Diagramm zur Erläuterung einer Situation einer Zuordnung von Software zu mehreren Kernen, die einen identischen Durchsatz aufweisen; 5 a diagram for explaining a situation of assignment of software to multiple cores having an identical throughput;

6 ein Blockdiagramm, das eine Konfiguration einer ECU gemäß einer zweiten Ausführungsform der vorliegenden Erfindung darstellt; und 6 10 is a block diagram illustrating a configuration of an ECU according to a second embodiment of the present invention; and

7 ein Flussdiagramm, das eine Segmentierungsverarbeitung gemäß einer Modifikation der ersten Ausführungsform darstellt. 7 FIG. 10 is a flowchart illustrating segmentation processing according to a modification of the first embodiment. FIG.

BESCHREIBUNG DER AUSFÜHRUNGSFORMENDESCRIPTION OF THE EMBODIMENTS

(Erste Ausführungsform)First Embodiment

Im Folgenden wird eine erste Ausführungsform der vorliegenden Erfindung mit Bezug auf die Zeichnungen erläutert.Hereinafter, a first embodiment of the present invention will be explained with reference to the drawings.

Eine Softwaresegmentierungsvorrichtung 1 (im Folgenden Segmentierungsvorrichtung) der vorliegenden Ausführungsform enthält, wie es in 1 gezeigt ist, eine Anzeigeeinheit 11, eine Betriebs- und Eingabeeinheit 12, eine Datenspeichereinheit 13, eine Dateneingangs-/-ausgangseinheit 14 und eine Steuereinheit 15.A software segmentation device 1 (hereinafter segmentation device) of the present embodiment, as shown in FIG 1 is shown, a display unit 11 , an operating and input unit 12 , a data storage unit 13 , a data input / output unit 14 and a control unit 15 ,

Die Anzeigeeinheit 11 enthält eine Anzeige (nicht gezeigt) und zeigt verschiedene Bilder auf dem Anzeigebildschirm der Anzeige an.The display unit 11 contains a display (not shown) and displays various images on the display screen of the display.

Die Betriebs- und Eingabeeinheit 12 gibt Eingabebedieninformation zur Verwendung beim Bestimmen einer Eingabe, die ein Nutzer unter Verwendung einer Tastatur und einer Maus (nicht gezeigt) tätigt, aus.The operating and input unit 12 outputs input manipulation information for use in determining an input made by a user using a keyboard and a mouse (not shown).

Die Datenspeichereinheit 13 ist ein Speicher zur Verwendung beim Speichern verschiedener Datenteile.The data storage unit 13 is a memory for use in storing various pieces of data.

Die Dateneingangs-/-ausgangseinheit 14 tauscht Daten mit einer externen Ausrüstung, die drahtgebunden oder drahtlos mit ihr verbunden ist, aus. The data input / output unit 14 exchanges data with external equipment that is wired or wirelessly connected to it.

Die Steuereinheit 15 führt verschiedene Verarbeitungsteile einhergehend mit einer Eingabe, die bei der Betriebs- und Eingabeeinheit 12 erfolgt, oder einer Eingabe, die über die Dateneingangs-/-ausgangseinheit 14 durchgeführt wird, und einem Steuern der Anzeigeeinheit 11, der Datenspeichereinheit 13 und der Dateneingangs-/-ausgangseinheit 14 durch. The control unit 15 performs various processing parts along with an input that is at the operating and input unit 12 is done, or an input via the data input / output unit 14 is performed, and controlling the display unit 11 , the data storage unit 13 and the data input / output unit 14 by.

Die obige Konfiguration der Segmentierungsvorrichtung 1 ermöglicht es der Steuereinheit 15, eine Softwaresegmentierungsverarbeitung (im Folgenden Segmentierungsverarbeitung) durchzuführen.The above configuration of the segmentation device 1 allows the control unit 15 to perform software segmentation processing (hereafter segmentation processing).

Im Folgenden werden eine Prozedur oder Schritte zur Segmentierungsverarbeitung mittels der Steuereinheit 15 beschrieben. Die Segmentierungsverarbeitung wird durch eine Eingabe eines Nutzers, die ein Softwaresegmentierungsprogramm 20 (im Folgenden Segmentierungsprogramm), das in der Steuereinheit 15 gespeichert ist, aufruft, um die Segmentierungsverarbeitung durchzuführen, durchgeführt. Das Segmentierungsprogramm 20 kann im Voraus in der Segmentierungsvorrichtung 1 oder kann über ein Aufzeichnungsmedium oder ein Netzwerk installiert werden. Das Aufzeichnungsmedium beinhaltet eine optische Scheibe, eine Magnetscheibe oder einen Halbleiterspeicher.Hereinafter, a procedure or steps for segmentation processing by means of the control unit 15 described. The Segmentation processing is performed by an input from a user, which is a software segmentation program 20 (hereafter segmentation program) that is in the control unit 15 is stored, to perform the segmentation processing, performed. The segmentation program 20 can in advance in the segmentation device 1 or can be installed via a recording medium or a network. The recording medium includes an optical disk, a magnetic disk or a semiconductor memory.

In 2 wird die Segmentierungsverarbeitung gestartet. In S10 zeigt die Steuereinheit 15 zunächst ein Bild (im Folgenden Auswahlbild), das verwendet wird, um die Anzahl n der Kerne und die zu segmentierende Software (im Folgenden Zielsegmentierungssoftware) auszuwählen, auf dem Anzeigebildschirm der Anzeigeeinheit 11 an.In 2 the segmentation processing is started. In S10, the control unit shows 15 First, an image (hereinafter, selection image) used to select the number n of cores and the software to be segmented (hereinafter, target segmentation software) on the display screen of the display unit 11 at.

In S20 bestimmt die Steuereinheit 15, ob Auswahlbestimmungsinformationen, die die Anzahl n der Kerne und die Zielsegmentierungssoftware, die von einem Nutzer ausgewählt wird, über die Betriebs- und Eingabeeinheit 12 eingegeben werden. Wenn keine Auswahlbestimmungsinformationen eingegeben werden (S20: Nein), wird S20 wiederholt, um zu warten, bis Auswahlbestimmungsinformationen eingegeben werden. Wenn Auswahlbestimmungsinformationen eingegeben werden (S20: Ja), wird die Zielsegmentierungssoftware, die durch die Auswahlbestimmungsinformationen bestimmt wird, aus der Datenspeichereinheit 13 geholt.In S20, the control unit determines 15 whether selection determination information including the number n of cores and the target segmentation software selected by a user through the operation and input unit 12 be entered. If no selection determination information is input (S20: No), S20 is repeated to wait until selection determination information is input. When selection determination information is input (S20: Yes), the destination segmentation software determined by the selection determination information becomes the data storage unit 13 fetched.

In S40 versucht die Steuereinheit 15, eine datenabhängige Segmentierung, die zum Segmentieren der erlangten Zielsegmentierungssoftware in einem dünn besetzten Teil eines Datenflusses dient, durchzuführen. Die Steuereinheit 15 bestimmt somit die Anzahl l der datenabhängigen Segmente, die die Anzahl der Segmente ist, die durch die datenabhängige Segmentierung erzielt werden können.In S40 the control unit tries 15 to perform a data-dependent segmentation, which serves to segment the obtained target segmentation software in a sparsely populated part of a data flow. The control unit 15 thus determines the number 1 of data-dependent segments, which is the number of segments that can be achieved by the data-dependent segmentation.

Bei der Softwareverarbeitung werden Betriebe hinsichtlich mehrerer Datenteile, die voneinander abhängen, durchgeführt. Es wird beispielsweise angenommen, dass Datenteile A, B, C, D, E, F, G, H, I, J, K, L, M, N und O vorhanden sind, wie es in 3 gezeigt ist. Gemäß einem Fluss der Softwareverarbeitung sollten die Betriebe hinsichtlich des Datenteils A, des Datenteils B, der Datenteile C und D, der Datenteile E und F, der Datenteile G und H, des Datenteils I, des Datenteils J, der Datenteile K und L, des Datenteils M und der Datenteile N und O in dieser Reihenfolge durchgeführt werden.In software processing, operations are performed on multiple pieces of data that depend on each other. For example, it is assumed that data parts A, B, C, D, E, F, G, H, I, J, K, L, M, N, and O are present as shown in FIG 3 is shown. According to a flow of software processing, the operations should be in terms of the data part A, the data part B, the data parts C and D, the data parts E and F, the data parts G and H, the data part I, the data part J, the data parts K and L, of the Data part M and the data parts N and O are performed in this order.

Außerdem sollte der Datenteil A verwendet werden, um einen Betrieb hinsichtlich der Datenteile B, C und D durchzuführen (siehe Pfeile D1, D2 und D3). Die Datenteile B und C sollten verwendet werden, um einen Betrieb hinsichtlich des Datenteils E durchzuführen (siehe Pfeile D4 und D5). Der Datenteil D sollte verwendet werden, um einen Betrieb hinsichtlich des Datenteils F durchzuführen (siehe der Pfeil D6). Die Datenteile A und E sollten verwendet werden, um einen Betrieb hinsichtlich des Datenteils G durchzuführen (siehe Pfeile D7 und D8). Die Datenteile E und F sollten verwendet werden, um einen Betrieb hinsichtlich des Datenteils H durchzuführen (siehe Pfeile D9 und D10). Der Datenteil H sollte verwendet werden, um einen Betrieb hinsichtlich des Datenteils I durchzuführen (siehe Pfeil D11). Der Datenteil I sollte verwendet werden, um einen Betrieb hinsichtlich des Datenteils J durchzuführen (siehe Pfeil D12). Der Datenteil J sollte verwendet werden, um einen Betrieb hinsichtlich des Datenteils K durchzuführen (siehe Pfeil D13). Die Datenteile I und J sollten verwendet werden, um einen Betrieb hinsichtlich des Datenteils L durchzuführen (siehe Pfeile D14 und D15). Die Datenteile I, K und L sollten verwendet werden, um einen Betrieb hinsichtlich des Datenteils M durchzuführen (siehe Pfeile D16, D17 und D18). Der Datenteil M sollte verwendet werden, um einen Betrieb hinsichtlich des Datenteils N durchzuführen (siehe Pfeil D19). Die Datenteile K und M sollten verwendet werden, um einen Betrieb hinsichtlich des Datenteils O durchzuführen (siehe Pfeile D20 und D21).In addition, the data part A should be used to perform operation on the data parts B, C, and D (see arrows D1, D2, and D3). The data parts B and C should be used to perform operation on the data part E (see arrows D4 and D5). The data part D should be used to perform an operation on the data part F (see the arrow D6). The data parts A and E should be used to perform operation on the data part G (see arrows D7 and D8). The data parts E and F should be used to perform operation on the data part H (see arrows D9 and D10). The data part H should be used to perform operation on the data part I (see arrow D11). The data part I should be used to perform operation on the data part J (see arrow D12). The data part J should be used to perform operation on the data part K (see arrow D13). The data parts I and J should be used to perform operation on the data part L (see arrows D14 and D15). The data parts I, K and L should be used to perform operation on the data part M (see arrows D16, D17 and D18). The data part M should be used to perform operation on the data part N (see the arrow D19). The data parts K and M should be used to perform operation on the data part O (see arrows D20 and D21).

In diesem Fall ist ein Teil zwischen einem Betrieb hinsichtlich des Datenteils B und einem Betrieb hinsichtlich der Datenteile C und D ein dünn besetzter Teil eines Datenflusses (siehe Bereich, der mit R1 angegeben ist). Ein Teil zwischen einem Betrieb hinsichtlich der Datenteile E und F und einem Betrieb hinsichtlich der Datenteile G und H ist ein dünn besetzter Teil des Datenflusses (siehe Bereich, der mit R2 angegeben ist). Ein Teil zwischen einem Betrieb hinsichtlich des Datenteils H und einem Betrieb hinsichtlich des Datenteils I ist ein dünn besetzter Teil des Datenflusses (siehe Bereich, der mit R3 angegeben ist).In this case, a part between an operation regarding the data part B and an operation with respect to the data parts C and D is a sparse part of a data flow (see area indicated by R1). A part between operation with respect to the data parts E and F and operation with respect to the data parts G and H is a sparse part of the data flow (see area indicated by R2). A part between an operation regarding the data part H and an operation with respect to the data part I is a sparse part of the data flow (see area indicated by R3).

Die Weise, wie die Abhängigkeit von Daten (d. h. ein dünn besetzter oder dicht besetzter Teil eines Datenflusses) herausgefunden wird, ist entsprechend verschiedenen Algorithmen bekannt, beispielsweise gemäß dem Algorithmus in der JP 2015-001807 A . Eine wiederholende Beschreibung wird weggelassen.The way in which the dependency on data (ie a sparsely populated or densely populated part of a data flow) is found out is known according to various algorithms, for example according to the algorithm in FIG JP 2015-001807 A , A repetitive description is omitted.

In 2 wird in S50, der S40 folgt, die Anzahl k der Steuer-/Betriebssegmente als ein Wert bestimmt, der durch Aufrunden eines Quotienten auf eine ganze Zahl erhalten wird, wobei der Quotient aus einer Division (d. h. n/l) der Anzahl n der Kerne durch die Anzahl l der datenabhängigen Segmente resultiert.In 2 In S50 following S40, the number k of the control / operation segments is determined as a value obtained by rounding a quotient to an integer, the quotient being a division (ie, n / 1) of the number n of cores by the number l of the data-dependent segments.

In S60 wird die Steuer-/Betriebssegmentierung durchgeführt, um die Zielsegmentierungssoftware, die in S30 erlangt wurde, in einer Pause einer Steuerung oder einer Pause eines Betriebs zu segmentieren. In S60 wird die Zielsegmentierungssoftware derart segmentiert, dass die Verarbeitungslasten der Softwaresegmente so weit wie möglich gleich werden. Was als eine Pause einer Steuerung bezeichnet wird, ist eine Grenze einer Steuerfunktion, die explizit unabhängig ist, beispielsweise einer Kraftstoffeinspritzsteuerung, einer AGR-Steuerung oder einer Schaltsteuerung. Was als Pause eines Betriebs bezeichnet wird, ist eine Pause, die in Betriebseinheiten gefunden wird, beispielsweise ein L/K-Wert-Betrieb, der während einer Kraftstoffeinspritzsteuerung durchgeführt wird, und bei der eine Gruppe von Betriebsergebnissen (normalerweise eine Gruppe von Variablen) einem Betrieb einer anschließenden Stufe zugeführt wird, als ob es sich um eine Pipeline-Verarbeitung handelt.In S60, the control / operation segmentation is performed to obtain the Segmenting target segmentation software obtained in S30 in a pause of a control or pause of an operation. In S60, the target segmentation software is segmented so that the processing loads of the software segments become equal as much as possible. What is referred to as a pause of a control is a limit of a control function that is explicitly independent, such as fuel injection control, EGR control or shift control. What is referred to as a pause of an operation is a pause found in operating units, such as an L / C value operation performed during a fuel injection control, and a group of operating results (normally a group of variables) Operation is fed to a subsequent stage, as if it is a pipeline processing.

In S70 wird die datenabhängige Segmentierung hinsichtlich der Software, die in S60 segmentiert wurde, durchgeführt. Die Zielsegmentierungssoftware, die in S30 erlangt wird, wird somit in dieselbe Anzahl von Segmenten wie die Anzahl n der Kerne segmentiert. In S70 wird die Software, die in S60 segmentiert wurde, derart segmentiert, dass die Verarbeitungslasten der resultierenden Softwaresegmente so weit wie möglich gleich werden.In S70, the data-dependent segmentation is performed on the software segmented in S60. The target segmentation software obtained in S30 is thus segmented into the same number of segments as the number n of cores. In S70, the software segmented in S60 is segmented so that the processing loads of the resulting software segments become as similar as possible.

In S80 wird die Software, die in S70 segmentiert wurde, in der Datenspeichereinheit 13 gespeichert, und dann wird die Segmentierungsverarbeitung beendet.In S80, the software segmented in S70 is in the data storage unit 13 stored, and then the segmentation processing is terminated.

Im Folgenden wird ein Segmentierungsverfahren, das angewendet wird, wenn die Anzahl n der Kerne gleich 4, 5, 8 oder 12 ist, und die Anzahl l der datenabhängigen Segmente gleich 2, 3, 4 oder 5 ist, mit Bezug auf 4 beschrieben, wobei „k“ die „Anzahl der Steuer-/Betriebssegmente“ repräsentiert, „Sj (j = ganze Zahl)“ die „Software (j), die auf der Grundlage der Anzahl k der Steuer-/Betriebssegmente segmentiert wird“ repräsentiert und „Vj (j = ganze Zahl)“ die „Lücke (j) ((Void (j)) zum Aufnehmen von Software, die weiter auf der Grundlage der datenabhängigen Segmente l segmentiert wird“ repräsentiert. Hereinafter, a segmentation method used when the number n of cores is 4, 5, 8, or 12, and the number 1 of the data-dependent segments is 2, 3, 4, or 5 will be described with reference to FIG 4 where "k" represents the "number of control / operating segments", "Sj (j = integer)" represents the "software (j) segmented based on the number k of control / operating segments" and "Vj (j = integer)" represents the "gap (j) ((void (j)) for accommodating software further segmented on the basis of the data-dependent segments l".

Wenn die Anzahl n der Kerne gleich 4 ist und die Anzahl l der datenabhängigen Segmente gleich 2 ist, ist die Anzahl k der Steuer-/Betriebssegmente gleich 2. Die Steuer-/Betriebssegmentierung mit der Anzahl k der Steuer-/Betriebssegmente, die auf 2 eingestellt ist, wird daher zuerst hinsichtlich der Software durchgeführt (die auch als Source-Software bezeichnet werden kann). Daher wird eine datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 2 eingestellt ist, hinsichtlich der jeweiligen zwei resultierenden Softwaresegmente durchgeführt, die jeweils als Software-Erstebenen-Segment bezeichnet werden können. Mit anderen Worten, die jeweiligen beiden Softwaresegmente (d. h. jedes der zwei Software-Erstebenen-Segmente), die aus der Steuer-/Betriebssegmentierung resultieren, werden der datenabhängigen Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 2 eingestellt ist, unterzogen, wodurch zwei Software-Zweitebenen-Segmente erzeugt werden. Derartige Definitionen können auch für das Folgende angewendet werden.If the number n of cores is equal to 4 and the number l of the data-dependent segments is equal to 2, the number k of the control / operating segments is equal to 2. The control / operating segmentation with the number k of the control / operating segments set to 2 is therefore first performed on software (which may also be referred to as source software). Therefore, a data-dependent segmentation with the number 1 of the data-dependent segments, which is set to 2, is performed with respect to the respective two resulting software segments, which may each be referred to as a software first-level segment. In other words, the respective two software segments (ie, each of the two software first-level segments) resulting from the control / operation segmentation are subjected to the data-dependent segmentation with the number 1 of the data-dependent segments set to 2 two software second level segments are generated. Such definitions may also be applied to the following.

Wenn die Anzahl n der Kerne gleich 4 ist und die Anzahl l der datenabhängigen Segmente gleich 3 ist, ist die Anzahl k der Steuer-/Betriebssegmente gleich 2. Die Steuer-/Betriebssegmentierung mit der Anzahl k der Steuer-/Betriebssegmente, die auf 2 eingestellt ist, wird daher zuerst durchgeführt. Danach wird die datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 3 eingestellt ist, hinsichtlich einem der beiden resultierenden Softwaresegmente durchgeführt.If the number n of cores is equal to 4 and the number l of the data-dependent segments is equal to 3, the number k of the control / operating segments is equal to 2. The control / operating segmentation with the number k of the control / operating segments set to 2 is set, is therefore performed first. Thereafter, the data-dependent segmentation with the number 1 of the data-dependent segments set to 3 is performed with respect to one of the two resulting software segments.

Wenn die Anzahl der Kerne gleich 4 ist und die Anzahl l der datenabhängigen Segmente gleich 4 ist, ist die Anzahl k der Steuer-/Betriebssegmente gleich 1. Die Steuer-/Betriebssegmentierung wird daher hinsichtlich der Source-Software nicht durchgeführt, sondern es wird eine datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 4 eingestellt ist, direkt hinsichtlich der Source-Software durchgeführt.If the number of cores is 4 and the number 1 of the data-dependent segments is 4, the number k of the control / operation segments is 1. The control / operation segmentation is therefore not performed on the source software, but becomes a data-dependent segmentation with the number l of the data-dependent segments, which is set to 4, performed directly with respect to the source software.

Wenn die Anzahl n der Kerne gleich 4 ist und die Anzahl l der datenabhängigen Segmente gleich 5 ist, ist die Anzahl k der Steuer-/Betriebssegmente gleich 1. Die Steuer-/Betriebssegmentierung wird daher hinsichtlich der Source-Software nicht durchgeführt, sondern es wird eine datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 4 eingestellt ist (d. h. anstatt 5), direkt hinsichtlich der Source-Software durchgeführt.If the number n of cores is 4 and the number l of the data-dependent segments is 5, the number k of the control / operation segments is 1. The control / operation segmentation is therefore not performed on the source software, but becomes a data-dependent segmentation with the number 1 of the data-dependent segments, which is set to 4 (ie instead of 5), performed directly with respect to the source software.

Wenn die Anzahl n der Kerne gleich 5 ist und die Anzahl l der datenabhängigen Segmente gleich 2 ist, ist die Anzahl k der Steuer-/Betriebssegmente gleich 3. Die Steuer-/Betriebssegmentierung mit der Anzahl k der Steuer-/Betriebssegmente, die auf 3 eingestellt ist, wird daher zuerst durchgeführt. Danach wird die datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 2 eingestellt ist, hinsichtlich zwei der drei resultierenden Softwaresegmente durchgeführt.If the number n of cores is equal to 5 and the number l of the data-dependent segments is equal to 2, the number k of the control / operating segments is equal to 3. The control / operating segmentation with the number k of the control / operating segments corresponding to 3 is set, is therefore performed first. Thereafter, the data-dependent segmentation with the number 1 of the data-dependent segments set to 2 is performed with respect to two of the three resulting software segments.

Wenn die Anzahl n der Kerne gleich 5 ist und die Anzahl l der datenabhängigen Segmente gleich 3 ist, ist die Anzahl k der Steuer-/Betriebssegmente gleich 2. Die Steuer-/Betriebssegmentierung mit der Anzahl k der Steuer-/Betriebssegmente, die auf 2 eingestellt ist, wird daher zuerst durchgeführt. Danach wird die datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 3 eingestellt ist, hinsichtlich einer der beiden resultierenden Softwaresegmente durchgeführt, und es wird dann eine andere datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 2 eingestellt ist, hinsichtlich des anderen resultierenden Softwaresegmentes durchgeführt. If the number n of cores is equal to 5 and the number l of the data-dependent segments is equal to 3, the number k of the control / operating segments is equal to 2. The control / operating segmentation with the number k of the control / operating segments set to 2 is set, is therefore performed first. Thereafter, the data-dependent segmentation with the number l of the data-dependent segments, the on 3 is set with respect to one of the two resulting software segments, and then another data-dependent segmentation is performed with the number 1 of the data-dependent segments set to 2 with respect to the other resulting software segment.

Wenn die Anzahl n der Kerne gleich 5 ist und die Anzahl l der datenabhängigen Segmente gleich 4 ist, ist die Anzahl k der Steuer-/Betriebssegmente gleich 2. Die Steuer-/Betriebssegmentierung mit der Anzahl k der Steuer-/Betriebssegmente, die auf 2 eingestellt ist, wird daher zuerst durchgeführt. Danach wird die datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 4 eingestellt ist, hinsichtlich einem der beiden resultierenden Softwaresegmente durchgeführt.If the number n of cores is equal to 5 and the number l of the data-dependent segments is equal to 4, the number k of the control / operating segments is equal to 2. The control / operating segmentation with the number k of control / operating segments set to 2 is set, is therefore performed first. Thereafter, the data-dependent segmentation with the number 1 of the data-dependent segments set to 4 is performed with respect to one of the two resulting software segments.

Wenn die Anzahl n der Kerne gleich 5 ist und die Anzahl l der datenabhängigen Segmente gleich 5 ist, ist die Anzahl k der Steuer-/Betriebssegmente gleich 1. Die Steuer-/Betriebssegmentierung wird daher hinsichtlich der Source-Software nicht durchgeführt, sondern es wird eine datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 5 eingestellt ist, direkt hinsichtlich der Source-Software durchgeführt.If the number n of cores is 5 and the number l of the data-dependent segments is 5, the number k of the control / operation segments is 1. The control / operation segmentation is therefore not performed on the source software but becomes a data-dependent segmentation with the number l of the data-dependent segments, which is set to 5, performed directly with respect to the source software.

Wenn die Anzahl n der Kerne gleich 8 ist und die Anzahl l der datenabhängigen Segmente gleiche 2 ist, ist die Anzahl k der Steuer-/Betriebssegmente gleich 4. Die Steuer-/Betriebssegmentierung mit der Anzahl k der Steuer-/Betriebssegmente, die auf 4 eingestellt ist, wird daher zuerst durchgeführt. Danach wird die datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 2 eingestellt ist, hinsichtlich jedem der vier resultierenden Softwaresegmente durchgeführt.If the number n of cores is equal to 8 and the number l of the data-dependent segments is equal to 2, the number k of the control / operating segments is equal to 4. The control / operating segmentation with the number k of the control / operating segments corresponding to 4 is set, is therefore performed first. Thereafter, the data-dependent segmentation with the number 1 of the data-dependent segments set to 2 is performed with respect to each of the four resulting software segments.

Wenn die Anzahl n der Kerne gleich 8 ist und die Anzahl l der datenabhängigen Segmente gleich 3 ist, ist die Anzahl k der Steuer-/Betriebssegmente gleich 3. Die Steuer-/Betriebssegmentierung mit der Anzahl k der Steuer-/Betriebssegmente, die auf 3 eingestellt ist, wird daher zuerst durchgeführt. Danach wird die datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 3 eingestellt ist, hinsichtlich zwei der drei resultierenden Softwaresegmente durchgeführt, und dann wird eine andere datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 2 eingestellt ist, hinsichtlich des anderen resultierenden Softwaresegmentes durchgeführt.If the number n of cores is equal to 8 and the number l of the data-dependent segments is equal to 3, the number k of the control / operating segments is equal to 3. The control / operating segmentation with the number k of the control / operating segments, which is set to 3 is set, is therefore performed first. Thereafter, the data-dependent segmentation with the number l of the data-dependent segments set at 3 is performed with respect to two of the three resulting software segments, and then another data-dependent segmentation with the number l of the data-dependent segments set at 2 is determined other resulting software segment.

Wenn die Anzahl n der Kerne gleich 8 ist und die Anzahl l der datenabhängigen Segmente gleich 4 ist, ist die Anzahl k der Steuer-/Betriebssegmente gleich 2. Die Steuer-/Betriebssegmentierung mit der Anzahl k der Steuer-/Betriebssegmente, die auf 2 eingestellt ist, wird daher zuerst durchgeführt. Danach wird die datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 4 eingestellt ist, hinsichtlich der beiden resultierenden Softwaresegmente durchgeführt.If the number n of cores is equal to 8 and the number l of the data-dependent segments is equal to 4, the number k of the control / operating segments is equal to 2. The control / operating segmentation with the number k of the control / operating segments that is set to 2 is set, is therefore performed first. Thereafter, the data-dependent segmentation is performed on the number l of the data-dependent segments set to 4 with respect to the two resulting software segments.

Wenn die Anzahl n der Kerne gleich 8 ist und die Anzahl l der datenabhängigen Segmente gleich 5 ist, ist die Anzahl k der Steuer-/Betriebssegmente gleich 2. Die Steuer-/Betriebssegmentierung wird daher zuerst mit der Anzahl k der Steuer-/Betriebssegmente, die auf 2 eingestellt ist, durchgeführt. Danach wird die datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 5 eingestellt ist, hinsichtlich einem der zwei resultierenden Softwaresegmente durchgeführt, und danach wird die datenabhängige Segmentierung mit der Anzahl der datenabhängigen Segmente, die auf 3 eingestellt ist, hinsichtlich des anderen resultierenden Softwaresegmentes durchgeführt.If the number n of cores is equal to 8 and the number l of the data-dependent segments is equal to 5, the number k of the control / operating segments is equal to 2. The control / operating segmentation is therefore first compared to the number k of the control / operating segments, which is set to 2, performed. Thereafter, the data-dependent segmentation with the number l of the data-dependent segments set to 5 is performed on one of the two resulting software segments, and thereafter the data-dependent segmentation with the number of the data-dependent segments set on 3 becomes the other one Software segment carried out.

Wenn die Anzahl n der Kerne gleich 12 ist und die Anzahl l der datenabhängigen Segmente gleich 2 ist, ist die Anzahl k der Steuer-/Betriebssegmente gleich 6. Die Steuer-/Betriebssegmentierung mit der Anzahl k der Steuer-/Betriebssegmente, die auf 6 eingestellt ist, wird daher zuerst durchgeführt. Danach wird die datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 2 eingestellt ist, hinsichtlich jedes der sechs resultierenden Softwaresegmente durchgeführt.If the number n of cores is equal to 12 and the number l of the data-dependent segments is equal to 2, the number k of the control / operating segments is equal to 6. The control / operating segmentation with the number k of the control / operating segments corresponding to 6 is set, is therefore performed first. Thereafter, the data-dependent segmentation with the number 1 of the data-dependent segments set to 2 is performed with respect to each of the six resulting software segments.

Wenn die Anzahl n der Kerne gleich 12 ist und die Anzahl l der datenabhängigen Segmente gleich 3 ist, ist die Anzahl k der Steuer-/Betriebssegmente gleich 4. Die Steuer-/Betriebssegmentierung mit der Anzahl k der Steuer-/Betriebssegmente, die auf 4 eingestellt ist, wird daher als Erstes durchgeführt. Danach wird die datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 3 eingestellt ist, hinsichtlich jedem der vier resultierenden Softwaresegmente durchgeführt.If the number n of cores is equal to 12 and the number l of the data-dependent segments is equal to 3, the number k of the control / operating segments is equal to 4. The control / operating segmentation with the number k of the control / operating segments corresponding to 4 is set, is therefore performed first. Thereafter, the data-dependent segmentation with the number 1 of the data-dependent segments set to 3 is performed with respect to each of the four resulting software segments.

Wenn die Anzahl n der Kerne gleich 12 ist und die Anzahl l der datenabhängigen Segmente gleich 4 ist, ist die Anzahl k der Steuer-/Betriebssegmente gleich 3. Die Steuer-/Betriebssegmentierung mit der Anzahl k der Steuer-/Betriebssegmente, die auf 3 eingestellt ist, wird daher zuerst durchgeführt. Danach wird die datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 4 eingestellt ist, hinsichtlich jedem der drei resultierenden Softwaresegmente durchgeführt.If the number n of cores is equal to 12 and the number l of the data-dependent segments is equal to 4, the number k of the control / operating segments is equal to 3. The control / operating segmentation with the number k of the control / operating segments corresponding to 3 is set, is therefore performed first. Thereafter, the data-dependent segmentation with the Number l of the data-dependent segments set at 4 is performed with respect to each of the three resulting software segments.

Wenn die Anzahl n der Kerne gleich 12 ist und die Anzahl l der datenabhängigen Segmente gleich 5 ist, ist die Anzahl k der Steuer-/Betriebssegmente gleich 3. Die Steuer-/Betriebssegmentierung mit der Anzahl k der Steuer-/Betriebssegmente, die auf 3 eingestellt ist, wird daher zuerst durchgeführt. Danach wird die datenabhängige Segmentierung mit der Anzahl l der datenabhängigen Segmente, die auf 5, 4 oder 3 eingestellt ist, individuell für die jeweiligen drei resultierenden Softwaresegmente durchgeführt. If the number n of cores is equal to 12 and the number l of the data-dependent segments is equal to 5, the number k of the control / operating segments is equal to 3. The control / operating segmentation with the number k of the control / operating segments corresponding to 3 is set, is therefore performed first. Thereafter, the data-dependent segmentation with the number 1 of the data-dependent segments set to 5, 4 or 3 is performed individually for the respective three resulting software segments.

Somit segmentiert die Segmentierungsvorrichtung 1 die Zielsegmentierungssoftware (d. h. Source-Software) in einer Pause einer Steuerung oder einer Pause eines Betriebs in eine Anzahl von Segmenten, die kleiner als die Anzahl n der Kerne ist (S60), die als Software-Erstebenen-Segmente erzeugt werden. Außerdem segmentiert die Segmentierungsvorrichtung 1 die Zielsegmentierungssoftware, die segmentiert wurde, in einem dünn besetzten Teil eines Datenflusses, um die Zielsegmentierungssoftware in dieselbe Anzahl von Segmenten wie die Anzahl n der Kerne zu segmentieren (S70), die als Software-Zweitebenen-Segmente erzeugt werden.Thus, the segmentation device segments 1 the target segmentation software (ie, source software) in a pause of a control or a pause of an operation into a number of segments smaller than the number n of cores (S60) generated as software first-level segments. In addition, the segmentation device segments 1 the target segmentation software that has been segmented in a sparsely populated part of a data flow to segment the target segmentation software into the same number of segments as the number n of cores (S70) generated as software second level segments.

Wie oben beschrieben segmentiert die Segmentierungsvorrichtung 1 Software in einer Pause einer Steuerung oder einer Pause eines Betriebs und segmentiert danach außerdem die Software in einem dünn besetzten Teil eines Datenflusses.As described above, the segmentation device segments 1 Software in a pause of a control or a pause of a business and then also segmented the software in a sparsely populated part of a data flow.

Ein Verfahren, das Software in einer Pause einer Steuerung oder einer Pause eines Betriebs segmentiert, dient zum Segmentieren von Software an einem Punkt, bei dem die Software von einem Menschen segmentiert werden könnte. Die Größen der resultierenden Softwaresegmente ändern sich in Abhängigkeit davon, ob das Verarbeitungsvolumen groß ist. Im Gegensatz dazu ist ein Verfahren, das Software in einem dünn besetzten Teil eines Datenflusses segmentiert, ein Segmentierungsverfahren, gemäß dem es einem Menschen schwerfällt, die Software zu segmentieren, aber das geeignet für eine automatische oder autonome Segmentierung mittels eines Computers ist. Eine Schwankung unter der Größen der resultierenden Softwaresegmente kann daher minimiert werden.A method of segmenting software during a pause of a control or break of an operation serves to segment software at a point where the software could be segmented by a human. The sizes of the resulting software segments change depending on whether the processing volume is large. In contrast, a method that segments software in a sparse part of a data flow is a segmentation method that makes it difficult for a human to segment the software, but that is suitable for automatic or autonomous segmentation by means of a computer. A fluctuation among the sizes of the resulting software segments can therefore be minimized.

Durch Verwenden des Segmentierungsverfahrens, das für eine automatische oder autonome Segmentierung durch einen Computer geeignet ist (das heißt das Verfahren, das Software in einem dünn besetzten Teil eines Datenflusses segmentiert), kann die Segmentierungsvorrichtung 1 Software einfach segmentieren, um die Verarbeitungslasten auf die jeweiligen Kerne gleich zu verteilen. Das Verfahren, das Software in einem dünn besetzten Teil eines Datenflusses segmentiert, kann jedoch einer Begrenzung hinsichtlich der Anzahl der Segmente, in die die Software segmentiert werden kann, ausgesetzt sein. Wenn die Anzahl der Kerne in einem Mikrocomputer größer als die Anzahl der Segmente ist, die gemäß dem Verfahren erzielt werden kann, das Software in einem dünn besetzten Teil eines Datenflusses segmentiert, segmentiert die Segmentierungsvorrichtung 1 daher die Software in einer Pause einer Steuerung oder einer Pause eines Betriebs. Die Segmentierungsvorrichtung 1 kann dadurch Software geeignet in dieselbe Anzahl von Segmenten wie die Zielanzahl der Kerne segmentieren. By using the segmentation method that is suitable for automatic or autonomous segmentation by a computer (that is, the method that segments software in a sparsely populated part of a data flow), the segmentation device may 1 Simply segment software to distribute the processing loads equally to the cores. However, the method that segments software in a sparse part of a data flow may be subject to a limitation on the number of segments into which the software may be segmented. If the number of cores in a microcomputer is greater than the number of segments that can be achieved according to the method that segments software in a sparse part of a data flow, the segmentation device segments 1 hence the software in a pause of a control or a pause of an operation. The segmentation device 1 This allows software to segment appropriately into the same number of segments as the target number of cores.

Die Segmentierungsvorrichtung 1 segmentiert die Zielsegmentierungssoftware in einer Pause einer Steuerung oder einer Pause eines Betriebs, sodass die Verarbeitungslasten für die resultierenden Softwaresegmente so weit wie möglich gleich werden (S60). Dieses ermöglicht es der Segmentierungsvorrichtung 1, die Software einfach derart zu segmentieren, dass die Verarbeitungslasten der jeweiligen Softwaresegmente so weit wie möglich gleich werden, wenn die Segmentierung der Software in einem dünn besetzten Teil eines Datenflusses durchgeführt wird.The segmentation device 1 segments the target segmentation software in a pause of a control or a pause of an operation so that the processing loads for the resulting software segments become equal as much as possible (S60). This allows the segmentation device 1 simply segmenting the software so that the processing loads of the respective software segments become the same as much as possible when segmenting the software in a sparse part of a data flow.

Die Segmentierungsvorrichtung 1 segmentiert die Zielsegmentierungssoftware, die in einer Pause einer Steuerung oder einer Pause eines Betriebs segmentiert wurde, in einem dünn besetzten Teil eines Datenflusses, sodass die Verarbeitungslasten der resultierenden Softwaresegmente so weit wie möglich gleich werden (S70). Die Segmentierungsvorrichtung 1 kann dadurch die Verarbeitungslasten auf die jeweiligen Kerne in einem Mikrocomputer gleich verteilen, wodurch die Kerne des Mikrocomputers effizient verwendet werden. Wie es beispielsweise in 5 gezeigt ist, unterteilt die Segmentierungsvorrichtung 1 die Software in einer Pause einer Steuerung oder einer Pause eines Betriebs in zwei Teile (siehe Bereich, der mit R11 angegeben ist). Außerdem segmentiert die Segmentierungsvorrichtung 1 die zweigeteilte Software in einem dünn besetzten Teil eines Datenflusses, um somit die Software zum Zwecke der gleichen Verteilung der Verarbeitungslasten zu vierteln (siehe Bereich, der mit R12 angegeben ist). Die Segmentierungsvorrichtung 1 kann dadurch vier Softwaresegmente den Kernen C1, C2, C3 und C4, die denselben Durchsatz aufweisen, zuordnen.The segmentation device 1 segments the target segmentation software that has been segmented in a pause of a control or pause of an operation in a sparsely populated part of a data flow so that the processing loads of the resulting software segments become the same as possible (S70). The segmentation device 1 thereby can equally distribute the processing loads to the respective cores in a microcomputer, thereby efficiently using the cores of the microcomputer. As it is for example in 5 is shown divides the segmentation device 1 the software is divided into two parts during a pause of a control or pause of an operation (see area indicated by R11). In addition, the segmentation device segments 1 the split software in a sparsely populated part of a data flow, thus quartering the software for the same distribution of processing loads (see the area labeled R12). The segmentation device 1 can thereby assign four software segments to cores C1, C2, C3 and C4 having the same throughput.

Vor der Segmentierung von Software in einer Pause einer Steuerung oder einer Pause eines Betriebs versucht die Segmentierungsvorrichtung 1, die Zielsegmentierungssoftware in einem dünn besetzten Teile eines Datenflusses zu segmentieren, und bestimmt die Anzahl l der datenabhängigen Segmente, die durch die datenabhängige Segmentierung erzielt werden können (S40). Die Segmentierungsvorrichtung 1 betrachtet als Anzahl k der Steuer-/Betriebssegmente einen Wert, der durch Aufrunden eines Quotienten (d. h. n/l), der aus einer Division der Anzahl n der Kerne durch die Anzahl l der datenabhängigen Segmente resultiert, auf eine ganze Zahl erhalten wird, und segmentiert die Zielsegmentierungssoftware in die Anzahl k der Steuer-/Betriebssegmente (S50 und S60).Prior to segmentation of software in a pause of control or pause of operation, the segmentation device attempts 1 to segment the target segmentation software in a sparse portion of a data flow and determines the number 1 of data-dependent segments that can be achieved by the data-dependent segmentation (S40). The segmentation device 1 consider as the number k of the control / operation segments a value obtained by rounding up a quotient (ie, n / 1) resulting from dividing the number n of cores by the number 1 of the data-dependent segments to an integer, and segments the target segmentation software into the number k of the control / operation segments (S50 and S60).

Die Segmentierungsvorrichtung 1 kann dadurch eine Segmentierung in einer Pause einer Steuerung oder einer Pause eines Betriebs entsprechend einer geeigneten Anzahl von Segmenten in Abhängigkeit von der Anzahl der Segmente, die durch Segmentierung in einem dünn besetzten Teile eines Datenflusses erzielt werden können, durchführen. The segmentation device 1 can thereby perform a segmentation in a pause of a control or a pause of an operation corresponding to a suitable number of segments depending on the number of segments that can be achieved by segmentation in a sparsely populated part of a data flow.

In der obigen Ausführungsform kann S60, der die Steuer-/Betriebssegmentierung zum Segmentieren von Software in einer Pause einer Steuerung oder einer Pause eines Betriebs durchführt, auch als erster Segmentierungsschritt oder erste Segmentierungseinrichtung bezeichnet werden.In the above embodiment, S60 that performs the control / operation segmentation for segmenting software in a pause of a control or a pause of an operation may also be referred to as a first segmentation step or first segmentation device.

Außerdem kann S70, der eine datenabhängige Segmentierung zum Segmentieren von Software in einem dünn besetzten Teil eines Datenflusses durchführt, auch als zweiter Segmentierungsschritt oder zweite Segmentierungseinrichtung bezeichnet werden.In addition, S70, which performs data-dependent segmentation for segmenting software in a sparsely populated portion of a data flow, may also be referred to as a second segmentation step or second segmentation device.

Weiterhin kann die Anzahl k der Steuer-/Betriebssegmente auch als erste Anzahl von Segmenten der vorliegenden Erfindung bezeichnet werden; die Anzahl l der datenabhängigen Segmente kann auch als zweite Anzahl von Segmenten der vorliegenden Erfindung bezeichnet werden.Furthermore, the number k of the control / operating segments may also be referred to as the first number of segments of the present invention; the number 1 of the data-dependent segments may also be referred to as the second number of segments of the present invention.

Außerdem kann S40, der versucht, die datenabhängige Segmentierung zum Segmentieren von Software in einem dünn besetzten Teil eines Datenflusses durchzuführen und somit die Anzahl l der datenabhängigen Segmente bestimmt, auch als Zweitanzahlsegmentbestimmungsschritt oder Zweitanzahlsegmentbestimmungseinrichtung bezeichnet werden.In addition, S40 attempting to perform the data-dependent segmentation for segmenting software in a sparsely populated part of a data flow and thus determining the number 1 of the data-dependent segments may also be referred to as the second-number-segment-determining step or the second-number-segment determining device.

(Zweite Ausführungsform) Second Embodiment

Im Folgenden wird eine zweite Ausführungsform der vorliegenden Erfindung mit Bezug auf die Zeichnungen beschrieben.Hereinafter, a second embodiment of the present invention will be described with reference to the drawings.

Eine elektronische Steuereinheit 101 (im Folgenden ECU 101) der vorliegenden Ausführungsform ist in einem Fahrzeug montiert, um einen Verbrennungsmotor (nicht gezeigt), der in dem Fahrzeug enthalten ist, zu steuern.An electronic control unit 101 (hereafter ECU 101 ) of the present embodiment is mounted in a vehicle to control an internal combustion engine (not shown) included in the vehicle.

Die ECU 101 enthält, wie es in 6 gezeigt ist, einen Mikrocomputer 102, eine Eingangsschaltung 103 und eine Ausgangschaltung 104.The ECU 101 contains, as it is in 6 shown is a microcomputer 102 , an input circuit 103 and an output circuit 104 ,

Der Mikrocomputer 102 holt über die Eingangsschaltung 103 ein Kurbelsignal, das von einem Kurbelwellensensor gesendet wird, ein Zylinderunterscheidungssignal, das von einem Nockenwellensensor gesendet wird, andere Sensorsignale, die von einem Wassertemperatursensor und einem Drosselpositionssensor gesendet werden, und verschiedene Schaltsignale, die von einem Schaltpositionsschalter eines Getriebes und einem Klimaanlagenschalter gesendet werden. Außerdem führt der Mikrocomputer 102 auf der Grundlage der geholten Signale eine Verbrennungsmotorsteuerung, das heißt eine Kraftstoffeinspritzsteuerung zum Ausgeben eines Ansteuersignals an einen Einspritzer über die Ausgangschaltung 104 oder eine Einspritzzeitpunktsteuerung zum Ausgeben eines Ansteuersignals an eine Einspritzvorrichtung über die Ausgangschaltung 104 durch.The microcomputer 102 gets over the input circuit 103 a crank signal sent from a crankshaft sensor, a cylinder discrimination signal sent from a camshaft sensor, other sensor signals sent from a water temperature sensor and a throttle position sensor, and various switching signals sent from a shift position switch of a transmission and an air conditioner switch. In addition, the microcomputer leads 102 on the basis of the fetched signals, an engine control, that is, a fuel injection control for outputting a drive signal to an injector via the output circuit 104 or injection timing control for outputting a drive signal to an injector via the output circuit 104 by.

Der Mikrocomputer 102 enthält eine CPU 111, einen ROM 112, einen RAM 113, einen Eingangs-/Ausgangs-Port (I/O) 114 und einen Bus, über den diese Komponenten verbunden sind, und führt verschiedene Verarbeitungen zum Steuern eines Verbrennungsmotors entsprechend der Software, die in dem ROM 112 gespeichert ist, durch.The microcomputer 102 contains a CPU 111 , a ROM 112 , a ram 113 , an input / output port (I / O) 114 and a bus through which these components are connected, and performs various processes for controlling an internal combustion engine according to the software included in the ROM 112 is saved by.

Die CPU 111 enthält CPU-Kerne (im Folgenden einfach als Kerne bezeichnet) 121, 122, 123 und 124.The CPU 111 contains CPU cores (hereinafter simply referred to as cores) 121 . 122 . 123 and 124 ,

Der ROM 112 speichert Softwareteile 131, 132, 133 und 134. Die Softwareteile 131, 132, 133 und 134 laufen auf jeweiligen Kernen 121, 122, 123 und 124. Die Softwareteile 131, 132, 133 und 134 sind vier Softwaresegmente, in die die Software von der Segmentierungsvorrichtung 1 der ersten Ausführungsform oder der zweiten Ausführungsform segmentiert wird. The ROM 112 saves software parts 131 . 132 . 133 and 134 , The software parts 131 . 132 . 133 and 134 run on respective cores 121 . 122 . 123 and 124 , The software parts 131 . 132 . 133 and 134 are four software segments in which the software from the segmentation device 1 the first embodiment or the second embodiment is segmented.

Die derart konfigurierte ECU 101 ist eine fahrzeugeigene Vorrichtung, die den Mikrocomputer 102 enthält, der die vier Kerne 121, 122, 123 und 124 aufweist. Die Kerne 121, 122, 123 und 124 werden jeweils entsprechend den Softwareteilen 131, 132, 133 und 134 betrieben, die vier Segmente der Software sind, die von der Segmentierungsvorrichtung 1 der ersten Ausführungsform oder der zweiten Ausführungsform erzeugt werden.The thus configured ECU 101 is an on-board device that contains the microcomputer 102 contains the four cores 121 . 122 . 123 and 124 having. The cores 121 . 122 . 123 and 124 are respectively according to the software parts 131 . 132 . 133 and 134 operated, which are four segments of the software, that of the segmentation device 1 of the first embodiment or the second embodiment.

Diese verteilt die Verarbeitungslasten gleichmäßig auf die vier Kerne 121 bis 124 des Mikrocomputers 102, sodass die Kerne des Mikrocomputers 102 effektiv verwendet werden.This distributes the processing loads evenly across the four cores 121 to 124 of the microcomputer 102 so that the cores of the microcomputer 102 be used effectively.

Hier kann die ECU 101 auch als fahrzeugeigene Vorrichtung bezeichnet werden.Here is the ECU 101 also be referred to as an on-board device.

(Modifikationen)(Modifications)

Oben wurden die Ausführungsformen der vorliegenden Erfindung beschrieben. Die vorliegende Erfindung ist jedoch nicht auf die obigen Ausführungsformen beschränkt, sondern kann verschiedene Formen annehmen, solange wie diese innerhalb des technischen Bereiches der vorliegenden Erfindung liegen.Above, the embodiments of the present invention have been described. However, the present invention is not limited to the above embodiments, but may take various forms as long as they are within the technical field of the present invention.

(Erste Modifikation)(First modification)

In der ersten Ausführungsform wird Software in zwei oder drei Stufen segmentiert. Alternativ kann Software in vier oder mehr Stufen segmentiert werden. In der ersten Ausführungsform wird beispielsweise in S60 die Steuer-/Betriebssegmentierung in der ersten Stufe durchgeführt, um die Zielsegmentierungssoftware in die Anzahl k der Steuer-/Betriebssegmente zu segmentieren. Alternativ kann die Steuer-/Betriebssegmentierung in mehreren Stufen durchgeführt werden, um die Zielsegmentierungssoftware in die Anzahl k der Steuer-/Betriebssegmente zu segmentieren.In the first embodiment, software is segmented in two or three stages. Alternatively, software can be segmented in four or more stages. For example, in the first embodiment, in S60, the control / operation segmentation in the first stage is performed to segment the target segmentation software into the number k of the control / operation segments. Alternatively, the control / operation segmentation may be performed in multiple stages to segment the target segmentation software into the number k of control / operation segments.

(Zweite Modifikation)(Second modification)

In der ersten Ausführungsform wird die datenabhängige Segmentierung einmal durchgeführt (siehe S70 in 2). Alternativ kann die datenabhängige Segmentierung mehrere Male durchgeführt werden. Wie es beispielsweise in 7 gezeigt ist, kann, bevor die datenabhängige Segmentierung der letzten Stufe (S260) durchgeführt wird, eine datenabhängige Segmentierung (S240) für die datenabhängige Segmentierung der letzten Stufe versucht werden, und es wird außerdem eine Steuer-/Betriebssegmentierung durchgeführt (S250). Wie es in 7 gezeigt ist, kann vor der datenabhängigen Segmentierung der letzten Stufe eine datenabhängige Segmentierung einer vorhergehenden Stufe (S230) durchgeführt werden. Zum Durchführen der datenabhängigen Segmentierung der vorhergehenden Stufe wird, bevor die datenabhängige Segmentierung der vorherigen Stufe (S230) durchgeführt wird, eine datenabhängige Segmentierung (S210) für die datenabhängige Segmentierung der vorhergehenden Stufe versucht, und es wird außerdem eine Steuer-/Betriebssegmentierung durchgeführt (S220). Die datenabhängige Segmentierung ist, wie es zuvor beschrieben wurde, ein Segmentierungsverfahren, das zur automatischen oder autonomen Segmentierung mittels eines Computers geeignet ist. Das Segmentierungsverfahren macht es einfach, Software zu segmentieren, um die Verarbeitungslasten auf die jeweiligen Kerne gleich zu verteilen. Wenn eine datenabhängige Segmentierung nicht nur in der letzten Stufe, sondern auch in der vorhergehenden Stufe durchgeführt wird, wird es daher einfacher, Software zu segmentieren, um die Verarbeitungslasten auf die jeweiligen Kerne gleich zu verteilen. S230 kann auch als dritter Segmentierungsschritt oder dritte Segmentierungseinrichtung bezeichnet werden. In the first embodiment, the data-dependent segmentation is performed once (see S70 in FIG 2 ). Alternatively, the data-dependent segmentation can be performed several times. As it is for example in 7 12, before the data-dependent segmentation of the last stage (S260) is performed, a data-dependent segmentation (S240) for the data-dependent segmentation of the last stage can be tried, and control / operation segmentation is also performed (S250). As it is in 7 2, prior to the data-dependent segmentation of the last stage, data-dependent segmentation of a previous stage (S230) may be performed. To perform the data-dependent segmentation of the previous stage, before the data-dependent segmentation of the previous stage (S230) is performed, data-dependent segmentation (S210) for the data-dependent segmentation of the previous stage is attempted, and control / operation segmentation is also performed (S220 ). Data-dependent segmentation, as previously described, is a segmentation technique suitable for automatic or autonomous segmentation by means of a computer. The segmentation method makes it easy to segment software to distribute the processing loads equally to the respective cores. Therefore, when performing data-dependent segmentation not only in the last stage but also in the previous stage, it becomes easier to segment software to equally distribute the processing loads to the respective cores. S230 may also be referred to as a third segmentation step or third segmentation device.

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

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

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

Zitierte PatentliteraturCited patent literature

  • JP 2014-160453 A [0002] JP 2014-160453 A [0002]
  • JP 2015-001807 A [0035] JP 2015-001807 A [0035]

Claims (15)

Softwaresegmentierungsverfahren zum Segmentieren von Software, die von einem Mikrocomputer (102) ausgeführt wird, der mehrere Kerne (121, 122, 123, 124) enthält, um diese den jeweiligen Kernen zuzuordnen, wobei das Verfahren aufweist: einen ersten Segmentierungsschritt (S60), der mindestens einen Teil der Software, die in dem Mikrocomputer läuft, in einer Pause einer Steuerung oder einer Pause eines Betriebs, in eine Anzahl von Segmenten, die kleiner als die Anzahl der Kerne ist, die in dem Mikrocomputer enthalten sind, segmentiert; und einen zweiten Segmentierungsschritt (S70), der die Software, die durch den ersten Segmentierungsschritt segmentiert wurde, in einem dünn besetzten Teil eines Datenflusses segmentiert, um mindestens einen Teil der Software in dieselbe Anzahl von Segmenten wie die Anzahl der Kerne, die in dem Mikrocomputer enthalten sind, zu segmentieren.Software segmentation method for segmenting software generated by a microcomputer ( 102 ), which has several cores ( 121 . 122 . 123 . 124 ) to associate them with the respective cores, the method comprising: a first segmentation step (S60) including, at a part of the software running in the microcomputer, a break of a control or a pause of an operation Segments smaller than the number of cores included in the microcomputer are segmented; and a second segmentation step (S70) that segments the software segmented by the first segmentation step into a sparsely populated part of a data flow to at least a portion of the software into the same number of segments as the number of cores in the microcomputer are segmented. Softwaresegmentierungsverfahren nach Anspruch 1, wobei der erste Segmentierungsschritt mindestens einen Teil der Software segmentiert, um die Verarbeitungslasten der Softwareteile, die aus der Segmentierung des ersten Segmentierungsschrittes resultieren, gleich zu verteilen. The software segmentation method of claim 1, wherein the first segmentation step segments at least a portion of the software to evenly distribute the processing loads of the software parts resulting from the segmentation of the first segmentation step. Softwaresegmentierungsverfahren nach Anspruch 1 oder 2, wobei der zweite Segmentierungsschritt die Software, die durch den ersten Segmentierungsschritt segmentiert wurde, segmentiert, um Verarbeitungslasten von Softwareteilen, die aus der Segmentierung durch den zweiten Segmentierungsschritt resultieren, gleich zu verteilen. The software segmentation method of claim 1 or 2, wherein the second segmentation step segments the software segmented by the first segmentation step to equally distribute processing loads of software parts resulting from the segmentation by the second segmentation step. Softwaresegmentierungsverfahren nach einem der Ansprüche 1 bis 3, das außerdem aufweist: einen Zweitsegmentanzahlbestimmungsschritt, der eine zweite Anzahl von Segmenten, die die Anzahl der Segmente ist, in die die Software durch den zweiten Segmentierungsschritt segmentiert wird, durch Versuchen, mindestens einen Teil der Software in einem dünn besetzten Teil eines Datenflusses vor der Durchführung des ersten Segmentierungsschrittes zu segmentieren, bestimmt, wobei der erste Segmentierungsschritt als eine erste Anzahl von Segmenten einen Wert betrachtet, der durch Aufrunden eines Quotienten auf eine ganze Zahl erhalten wird, wobei der Quotient aus einer Division der Anzahl der Kerne, die in dem Mikrocomputer enthalten sind, durch die zweite Anzahl von Segmenten, die durch den Zweitsegmentanzahlbestimmungsschritt bestimmt wird, resultiert, und mindestens einen Teil der Software in die erste Anzahl von Segmenten segmentiert. A software segmentation method according to any one of claims 1 to 3, further comprising: a second segment number determination step that assigns a second number of segments, which is the number of segments into which the software is segmented by the second segmentation step, by attempting to include at least a portion of the software in a sparsely populated portion of a data flow prior to performing the first segmentation step segment, determined, in which the first segmentation step as a first number of segments, consider a value obtained by rounding a quotient to an integer, the quotient being a division of the number of cores contained in the microcomputer by the second number of segments represented by the Second segment number determination step is determined, results, and segmented at least a portion of the software into the first number of segments. Softwaresegmentierungsverfahren nach Anspruch 4, das außerdem aufweist: einen dritten Segmentierungsschritt, der mindestens einen Teil der Software in einem dünn besetzten Teil eines Datenflusses vor der Durchführung des Zweitsegmentanzahlbestimmungsschrittes segmentiert. The software segmentation method of claim 4, further comprising: a third segmentation step that segments at least a portion of the software in a sparsely populated portion of a data flow prior to performing the second segment number determination step. Softwaresegmentierungsvorrichtung (1), die Software, die von einem Mikrocomputer (102) ausgeführt wird, der mehrere Kerne (121, 122, 123, 124) enthält, segmentiert, um diese den jeweiligen Kernen zuzuordnen, wobei die Vorrichtung aufweist: eine erste Segmentierungseinrichtung, die mindestens einen Teil der Software, die in dem Mikrocomputer läuft, in einer Pause einer Steuerung oder einer Pause eines Betriebs in eine Anzahl von Segmenten segmentiert, die kleiner als die Anzahl der Kerne ist, die in dem Mikrocomputer enthalten sind; und eine zweite Segmentierungseinrichtung, die die Software, die von der ersten Segmentierungseinrichtung segmentiert wurde, in einem dünn besetzten Teil eines Datenflusses segmentiert, um mindestens einen Teil der Software in dieselbe Anzahl von Segmenten wie die Anzahl der Kerne, die in dem Mikrocomputer enthalten sind, zu segmentieren.Software segmentation device ( 1 ), the software used by a microcomputer ( 102 ), which has several cores ( 121 . 122 . 123 . 124 segmented to associate with the respective cores, the apparatus comprising: a first segmentation means segmenting at least a portion of the software running in the microcomputer into a number of segments in a pause of control or pause of operation which is smaller than the number of cores contained in the microcomputer; and second segmentation means segmenting the software segmented by the first segmentation device in a sparsely populated part of a data flow to include at least a portion of the software in the same number of segments as the number of cores contained in the microcomputer; to segment. Softwaresegmentierungsvorrichtung nach Anspruch 6, wobei die erste Segmentierungseinrichtung mindestens einen Teil der Software segmentiert, um Verarbeitungslasten von Softwareteilen, die aus der Segmentierung der ersten Segmentierungseinrichtung resultieren, gleich zu verteilen. The software segmentation device of claim 6, wherein the first segmentation device segments at least a portion of the software to equally distribute processing loads of software parts resulting from the segmentation of the first segmentation device. Softwaresegmentierungsvorrichtung nach Anspruch 6 oder 7, wobei die zweite Segmentierungseinrichtung die Software, die von der ersten Segmentierungseinrichtung segmentiert wurde, segmentiert, um Verarbeitungslasten der Softwareteile, die aus der Segmentierung der zweiten Segmentierungseinrichtung resultieren, gleich zu verteilen. A software segmentation device according to claim 6 or 7, wherein the second segmentation means segments the software segmented by the first segmentation device to equally distribute processing loads of the software parts resulting from the segmentation of the second segmentation device. Softwaresegmentierungsvorrichtung nach einem der Ansprüche 6 bis 8, die außerdem aufweist: eine Zweitsegmentanzahlbestimmungseinrichtung, die eine zweite Anzahl von Segmenten, die die Anzahl von Segmenten ist, in die die Software von der zweiten Segmentierungseinrichtung segmentiert wird, durch Versuchen, mindestens einen Teil der Software in einem dünn besetzten Teil eines Datenflusses vor der Durchführung der ersten Segmentierungseinrichtung zu segmentieren, bestimmt, wobei die erste Segmentierungseinrichtung als eine erste Anzahl von Segmenten einen Wert betrachtet, der durch Aufrunden eines Quotienten auf eine ganze Zahl erhalten wird, wobei der Quotient aus einer Division der Anzahl der Kerne, die in dem Mikrocomputer enthalten sind, durch die zweite Anzahl von Segmenten, die von der Zweitsegmentanzahlbestimmungseinrichtung bestimmt wird, resultiert, und mindestens einen Teil der Software in die erste Anzahl von Segmenten segmentiert.A software segmentation apparatus according to any one of claims 6 to 8, further comprising: a second-segment-number determining means for selecting a second number of segments, which is the number of segments into which the software is segmented by the second segmentation device, by retrieving at least a portion of the software in segmenting a sparsely populated part of a data flow before performing the first segmentation device, the first segmentation device considering as a first number of segments a value obtained by rounding a quotient to an integer, the quotient being a division of the Number of cores included in the microcomputer, by the second number of segments, of the Second segment number determining means is determined, and at least part of the software segmented into the first number of segments. Softwaresegmentierungsvorrichtung nach Anspruch 9, die außerdem aufweist: eine dritte Segmentierungseinrichtung, die mindestens einen Teil der Software in einem dünn besetzten Teil eines Datenflusses vor der Durchführung der Zweitsegmentanzahlbestimmungseinrichtung segmentiert. The software segmentation device of claim 9, further comprising: a third segmentation device that segments at least a portion of the software in a sparsely populated portion of a data flow prior to performing the second segment number determination device. Fahrzeugeigene Vorrichtung (101), die aufweist: einen Mikrocomputer (102), der mehrere Kerne (121, 122, 123, 124) enthält, wobei die Kerne auf der Grundlage von Softwareteilen (131, 132, 133, 134) betrieben werden, in die Software entsprechend einem Softwaresegmentierungsverfahren segmentiert wird, wobei das Verfahren enthält: einen ersten Segmentierungsschritt, der mindestens einen Teil der Software, die in dem Mikrocomputer läuft, in einer Pause einer Steuerung oder einer Pause eines Betriebs in eine Anzahl von Segmenten segmentiert, die kleiner als die Anzahl der Kerne ist, die in dem Mikrocomputer enthalten sind, und einen zweiten Segmentierungsschritt, der die Software, die von dem ersten Segmentierungsschritt segmentiert wurde, in einem dünn besetzten Teil eines Datenflusses segmentiert, um mindestens einen Teil der Software in dieselbe Anzahl von Segmenten wie die Anzahl der Kerne, die in dem Mikrocomputer enthalten sind, zu segmentieren.In-vehicle device ( 101 ) comprising: a microcomputer ( 102 ), which has several cores ( 121 . 122 . 123 . 124 ), the cores being based on software parts ( 131 . 132 . 133 . 134 ), into which software is segmented according to a software segmentation method, the method comprising: a first segmentation step involving at least a portion of the software running in the microcomputer in a pause of a control or a pause of operation into a number of segments segmented, which is smaller than the number of cores contained in the microcomputer, and a second segmentation step, which segments the software segmented by the first segmentation step in a sparsely populated part of a data flow to at least a portion of the software segment into the same number of segments as the number of cores contained in the microcomputer. Fahrzeugeigene Vorrichtung nach Anspruch 11, wobei der erste Segmentierungsschritt mindestens einen Teil der Software segmentiert, um die Verarbeitungslasten der Softwareteile, die aus der Segmentierung durch den ersten Segmentierungsschritt resultieren, gleich zu verteilen. The on-vehicle device of claim 11, wherein the first segmentation step segments at least a portion of the software to evenly distribute the processing loads of the software parts resulting from the segmentation by the first segmentation step. Fahrzeugeigene Vorrichtung nach Anspruch 11 oder 12, wobei der zweite Segmentierungsschritt die Software, die durch den ersten Segmentierungsschritt segmentiert wurde, segmentiert, um Verarbeitungslasten von Softwareteilen, die aus der Segmentierung durch den zweiten Segmentierungsschritt resultieren, gleich zu verteilen. The on-vehicle device of claim 11 or 12, wherein the second segmentation step segments the software segmented by the first segmentation step to equally distribute processing loads of software parts resulting from the segmentation by the second segmentation step. Fahrzeugeigene Vorrichtung nach einem der Ansprüche 11 bis 13, wobei das Softwaresegmentierungsverfahren einen Zweitsegmentanzahlbestimmungsschritt enthält, der eine zweite Anzahl von Segmenten, die die Anzahl von Segmenten ist, in die die Software durch den zweiten Segmentierungsschritt segmentiert wird, durch Versuchen, mindestens einen Teil der Software in einem dünn besetzten Teil eines Datenflusses vor der Durchführung des ersten Segmentierungsschrittes zu segmentieren, bestimmt; und der erste Segmentierungsschritt als eine erste Anzahl von Segmenten einen Wert betrachtet, der durch Aufrunden eines Quotienten auf eine ganze Zahl erhalten wird, wobei der Quotient aus einer Division der Anzahl der Kerne, die in dem Mikrocomputer enthalten sind, durch die zweite Anzahl von Segmenten, die durch den Zweitsegmentanzahlbestimmungsschritt bestimmt wird, resultiert, und mindestens einen Teil der Software in die erste Anzahl von Segmenten segmentiert. In-vehicle device according to one of claims 11 to 13, wherein the software segmentation method includes a second segment number determination step that includes a second number of segments, which is the number of segments into which the software is segmented by the second segmentation step, by attempting to populate at least a portion of the software in a sparsely populated portion of the data flow segmenting first segmentation step determined; and the first segmentation step as a first number of segments, consider a value obtained by rounding a quotient to an integer, the quotient being a division of the number of cores contained in the microcomputer by the second number of segments represented by the Second segment number determination step is determined, results, and segmented at least a portion of the software into the first number of segments. Fahrzeugeigene Vorrichtung nach Anspruch 14, wobei das Softwaresegmentierungsverfahren einen dritten Segmentierungsschritt enthält, der mindestens einen Teil der Software in einem dünn besetzten Teil eines Datenflusses vor der Durchführung des Zweitsegmentanzahlbestimmungsschrittes segmentiert. The on-vehicle device of claim 14, wherein the software segmentation method includes a third segmentation step that segments at least a portion of the software in a sparsely populated portion of a data flow prior to performing the second-segment number determination step.
DE102016208178.0A 2015-05-18 2016-05-12 Software segmentation method, software segmentation device, and on-vehicle device Pending DE102016208178A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-101175 2015-05-18
JP2015101175A JP6413922B2 (en) 2015-05-18 2015-05-18 Software division method, software division apparatus, and in-vehicle apparatus

Publications (1)

Publication Number Publication Date
DE102016208178A1 true DE102016208178A1 (en) 2016-11-24

Family

ID=57231745

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016208178.0A Pending DE102016208178A1 (en) 2015-05-18 2016-05-12 Software segmentation method, software segmentation device, and on-vehicle device

Country Status (2)

Country Link
JP (1) JP6413922B2 (en)
DE (1) DE102016208178A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6324634B1 (en) * 2017-03-03 2018-05-16 三菱電機株式会社 Process division apparatus, simulator system, process division method, and process division program
WO2019012674A1 (en) * 2017-07-13 2019-01-17 株式会社日立製作所 Program integration/analysis/management device, and integration/analysis/management method therefor
JP6556281B1 (en) * 2018-03-08 2019-08-07 三菱電機株式会社 Control system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014160453A (en) 2013-01-23 2014-09-04 Waseda Univ Method for creating method and program for extracting parallelism
JP2015001807A (en) 2013-06-14 2015-01-05 株式会社デンソー Parallelization compilation method, parallelization compiler, parallelization compilation device, and on-vehicle device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014160453A (en) 2013-01-23 2014-09-04 Waseda Univ Method for creating method and program for extracting parallelism
JP2015001807A (en) 2013-06-14 2015-01-05 株式会社デンソー Parallelization compilation method, parallelization compiler, parallelization compilation device, and on-vehicle device

Also Published As

Publication number Publication date
JP6413922B2 (en) 2018-10-31
JP2016218627A (en) 2016-12-22

Similar Documents

Publication Publication Date Title
DE112016005536T5 (en) DETERMINING THE ORDER OF A CONSTRUCTION OF A NEURONAL NETWORK
DE102010028259A1 (en) A microcontroller having a computing unit and a logic circuit and method for performing calculations by a microcontroller for control or in-vehicle control
DE112017005651T5 (en) Device for classifying data
WO2019001649A1 (en) Knowledge transfer between different deep learning architectures
DE102016208178A1 (en) Software segmentation method, software segmentation device, and on-vehicle device
DE102019124404A1 (en) Optimization device for a neural network and optimization method for a neural network
DE102017213510A1 (en) Method and apparatus for generating a machine learning system, and virtual sensor device
DE102019111564A1 (en) METHOD AND SYSTEM FOR CONFIGURING FILTER OBJECTS FOR A CONTROLLER AREA NETWORK CONTROL
DE112013004307T5 (en) Systems and methods for state-based test case generation for software validation
DE102019127622B4 (en) Defense generator, method for preventing an attack on an AI unit and computer-readable storage medium
DE602004001718T2 (en) Method for real-time correction of non-functioning pixels in digital radiography
DE112018007536T5 (en) Convolutional neural network
DE112021002403T5 (en) VEHICLE CONTROL DEVICE
EP3705993B1 (en) System and method for locating and identifying computing nodes in a network
DE102021201833A1 (en) Device for processing at least one input data set using a neural network and method
DE102018203137A1 (en) Method, device and computer program for operating an at least partially autonomous vehicle
DE202019105256U1 (en) Device for creating a machine learning system
WO2001059609A1 (en) Device, storage medium and a method for detecting objects strongly resembling a given object
DE102022205715A1 (en) Method for providing training data and test data for training a machine learning algorithm
DE112022001612T5 (en) COMPUTING DEVICE, RECOGNITION DEVICE AND CONTROL DEVICE
DE202021103700U1 (en) Device for generating an artificial neural network
DE112021003536T5 (en) FACTOR ANALYSIS DEVICE, FACTOR ANALYSIS METHOD AND FACTOR ANALYSIS PROGRAM
DE102020211231A1 (en) ELECTRONIC CONTROL UNIT
DE202022103792U1 (en) Device for determining an optimal architecture of an artificial neural network
DE202021102338U1 (en) Control unit for generating training data for training a machine learning algorithm

Legal Events

Date Code Title Description
R012 Request for examination validly filed