DE102016208178A1 - Software segmentation method, software segmentation device, and on-vehicle device - Google Patents
Software segmentation method, software segmentation device, and on-vehicle device Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques 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 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:
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
Die Anzeigeeinheit
Die Betriebs- und Eingabeeinheit
Die Datenspeichereinheit
Die Dateneingangs-/-ausgangseinheit
Die Steuereinheit
Die obige Konfiguration der Segmentierungsvorrichtung
Im Folgenden werden eine Prozedur oder Schritte zur Segmentierungsverarbeitung mittels der Steuereinheit
In
In S20 bestimmt die Steuereinheit
In S40 versucht die Steuereinheit
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
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
In
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
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
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
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
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
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
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
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
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
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
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
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
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
Somit segmentiert die Segmentierungsvorrichtung
Wie oben beschrieben segmentiert die Segmentierungsvorrichtung
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
Die Segmentierungsvorrichtung
Die Segmentierungsvorrichtung
Vor der Segmentierung von Software in einer Pause einer Steuerung oder einer Pause eines Betriebs versucht die Segmentierungsvorrichtung
Die Segmentierungsvorrichtung
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
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
(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
Die ECU
Der Mikrocomputer
Der Mikrocomputer
Die CPU
Der ROM
Die derart konfigurierte ECU
Diese verteilt die Verarbeitungslasten gleichmäßig auf die vier Kerne
Hier kann die ECU
(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
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)
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)
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)
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 |
-
2015
- 2015-05-18 JP JP2015101175A patent/JP6413922B2/en active Active
-
2016
- 2016-05-12 DE DE102016208178.0A patent/DE102016208178A1/en active Pending
Patent Citations (2)
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 |