DE102016203418B4 - ELECTRONIC CONTROL UNIT - Google Patents
ELECTRONIC CONTROL UNIT Download PDFInfo
- Publication number
- DE102016203418B4 DE102016203418B4 DE102016203418.9A DE102016203418A DE102016203418B4 DE 102016203418 B4 DE102016203418 B4 DE 102016203418B4 DE 102016203418 A DE102016203418 A DE 102016203418A DE 102016203418 B4 DE102016203418 B4 DE 102016203418B4
- Authority
- DE
- Germany
- Prior art keywords
- core
- time
- phase
- processing
- storage unit
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Multi Processors (AREA)
Abstract
Elektronische Steuereinheit (10), beinhaltend: einen Mehrkern-Mikrocomputer (100), der mit einer Vielzahl von Kernen (C0, C1, C2) ausgestattet ist, wobei jeder Kern eine Aufgabe in Synchronisation mit einer Phase eines Drehwinkels ausführt;eine erste Speichereinheit (31), die eine Kernnummer speichert, die einen Ausgabenausführungskern angibt, der eine Aufgabe ausführt; undeine zweite Speichereinheit (132), die eine Umschaltphase speichert, die eine Phase angibt, wenn der Aufgabenausführungskern auf einen anderen Kern umgeschaltet wird, wobei:der Aufgabenausführungskern auf der Grundlage der in der ersten Speichereinheit gespeicherten Kernnummer und der in der zweiten Speichereinheit gespeicherten Umschaltphase auf einen anderen Kern umgeschaltet wird.An electronic control unit (10) comprising: a multi-core microcomputer (100) equipped with a plurality of cores (C0, C1, C2), each core executing a task in synchronization with a phase of a rotation angle; a first storage unit (31) storing a core number indicating an output execution core executing a task; and a second storage unit (132) storing a switching phase indicating a phase when the task execution core is switched to another core, wherein: the task execution core is switched to another core based on the core number stored in the first storage unit and the switching phase stored in the second storage unit.
Description
Die Erfindung betrifft eine elektronische Steuereinheit, die einen Mehrkern-Mikrocomputer beinhaltet, der mit einer Vielzahl von Kernen ausgestattet ist.The invention relates to an electronic control unit including a multi-core microcomputer equipped with a plurality of cores.
Als eine elektronische Steuereinheit, die in einem Fahrzeug bereitgestellt ist, wurde eine elektronische Steuereinheit, die mit einem Mehrkern-Mikrocomputer mit einer Vielzahl von Kernen ausgestattet ist, in praktische Verwendung gebracht. Der Mehrkern-Mikrocomputer führt eine verteilte Verarbeitung einer Vielzahl von Aufgaben, die bei der Steuerung in der Vielzahl von Kernen ausgeführt werden, durch. Da eine Prozesslast auf jedem der Kerne verringert ist, kann eine komplizierte Verarbeitung mit relativ hoher Geschwindigkeit ausgeführt werden.As an electronic control unit provided in a vehicle, an electronic control unit equipped with a multi-core microcomputer having a plurality of cores has been put into practical use. The multi-core microcomputer performs distributed processing of a variety of tasks executed in the plurality of cores during control. Since the processing load on each of the cores is reduced, complex processing can be executed at a relatively high speed.
Gattungsbildend offenbart die Druckschrift US 2010 / 00 205 602 A1 einen Mechanismus zur Planung der Ausführung von Threads für eine gerechte Ressourcenzuteilung in einem Multi-Thread- und/oder Multi-Core-Verarbeitungssystem. Es wird ein Thread-Planungsmechanismus bereitgestellt, der die Leistungsisolierung mehrerer Threads flexibel erzwingt, um die Auswirkungen eines antikooperativen Ausführungsverhaltens in Bezug auf eine gemeinsam genutzte Ressource, z. B. das Horten eines Cache oder einer Pipeline, zu mildern, wobei die Hardware-Fähigkeiten von simultanen Multi-Thread- (SMT) oder Multi-Core-Prozessoren genutzt werden. Bei einer Vielzahl von Threads, die auf mindestens zwei Prozessoren in mindestens einer funktionalen Prozessorgruppe laufen, wird das Auftreten einer Umplanungsbedingung, die auf ein antikooperatives Ausführungsverhalten hinweist, erkannt, und, falls vorhanden, wird mindestens einer der Threads so umgeplant, dass der erste und der zweite Thread nicht mehr in derselben funktionalen Prozessorgruppe zur gleichen Zeit ausgeführt werden.US 2010/00 205 602 A1 discloses a mechanism for scheduling thread execution for fair resource allocation in a multi-threaded and/or multi-core processing system. A thread scheduling mechanism is provided that flexibly enforces performance isolation of multiple threads to mitigate the effects of anti-cooperative execution behavior with respect to a shared resource, such as cache or pipeline hoarding, while leveraging the hardware capabilities of simultaneous multi-threaded (SMT) or multi-core processors. For a plurality of threads running on at least two processors in at least one functional processor group, the occurrence of a rescheduling condition indicating anti-cooperative execution behavior is detected and, if present, at least one of the threads is rescheduled such that the first and second threads no longer execute in the same functional processor group at the same time.
Im Kontext betrifft die Druckschrift
Auch die Druckschrift
Im Kontext einer elektronischen Steuereinheit der vorgenannten Art wird gemäß der Druckschrift
Wenn zum Beispiel eine Verarbeitungslast auf einem ersten Kern, welchem die Ausführung einer Aufgabe zugewiesen ist, groß ist und eine Verarbeitungslast auf einem zweiten Kern klein ist, wird ein Kern, der die Aufgabe ausführt, von dem ersten Kern auf den zweiten Kern umgeschaltet.For example, when a processing load on a first core assigned to execute a task is large and a processing load on a second core is small, a core executing the task is switched from the first core to the second core.
Unter den Aufgaben, die von der elektronischen Steuereinheit ausgeführt werden, gibt es eine, die in Synchronisation mit der Phase eines Drehwinkels in einer Steuerzieleinrichtung (zum Beispiel ein Kurbelwinkel einer Brennkraftmaschine) auszuführen ist. Beispiele einer solchen Aufgabe beinhalten einen Betriebsablauf eines Kraftstoffeinspritzzeitverhaltens, welcher jedes Mal dann begonnen wird, wenn der Kurbelwinkel eine vorbestimmte Phase annimmt, und einen Betriebsablauf eines Zündzeitverhaltens, welcher ebenfalls jedes Mal dann begonnen wird, wenn der Kurbelwinkel eine vorbestimmte Phase annimmt.Among the tasks performed by the electronic control unit, there is one to be performed in synchronization with the phase of a rotation angle in a control target device (for example, a crank angle of an internal combustion engine). Examples of such a task include an operation of a fuel injection timing which is started every time the crank angle reaches a predetermined phase, and an operation sequence of an ignition timing behavior, which is also started every time the crank angle assumes a predetermined phase.
In der vorstehenden elektronischen Steuereinheit kann eine Aufgabe, die auszuführen ist, wenn die Phase des Drehwinkels zu einer bestimmten Phase wird, in Abhängigkeit von einem Zeitpunkt des Umschaltens des Aufgabenausführungskerns bei der bestimmten Phase durch keinen der Kerne ausgeführt werden. Darüber hinaus kann eine Aufgabe, die auszuführen ist, wenn die Phase des Drehwinkels zu einer bestimmten Phase wird, durch eine Vielzahl von Kernen doppelt ausgeführt werden.In the above electronic control unit, a task to be executed when the phase of the rotation angle becomes a certain phase may not be executed by any of the cores depending on the timing of switching the task execution core at the certain phase. Furthermore, a task to be executed when the phase of the rotation angle becomes a certain phase may be duplicated by a plurality of cores.
Solche Phänomene werden durch einen Unterschied in dem Zeitpunkt des Beginns der Verarbeitung der Aufgabe zwischen den Kernen und der Umschaltung des Aufgabenausführungskerns, die in Asynchronisation mit bzw. asynchron zu dem Zeitpunkt des Beginns der Verarbeitung der Aufgabe durchgeführt wird, verursacht.Such phenomena are caused by a difference in the time of starting the processing of the task between the cores and the switching of the task execution core, which is performed in asynchronization with or asynchronously to the time of starting the processing of the task.
Der Erfindung liegt als eine Aufgabe zugrunde, eine elektronische Steuereinheit bereitzustellen, die zuverlässig ein Phänomen, in welchem eine Aufgabe bei einer bestimmten Phase nicht ausgeführt wird, oder ein Phänomen, in welchem eine Aufgabe in Zuordnung mit dem Umschalten eines Kerns, der die Aufgabe ausführt, doppelt ausgeführt wird, verhindert.An object of the invention is to provide an electronic control unit that reliably prevents a phenomenon in which a task is not executed at a certain phase or a phenomenon in which a task is duplicated in association with switching of a core that executes the task.
Diese Aufgabe wird durch eine elektronische Steuereinheit mit den Merkmalen des Anspruchs 1 gelöst. Vorteilhafte Weiterbildungen der Erfindung sind Gegenstand der beigefügten Unteransprüche.This object is achieved by an electronic control unit having the features of
In Übereinstimmung mit einem Aspekt der Erfindung beinhaltet eine elektronische Steuereinheit einen Mehrkern-Mikrocomputer, der mit einer Vielzahl von Kernen ausgestattet ist, wobei jeder Kern eine Aufgabe in Synchronisation mit einer Phase eines Drehwinkels ausführt; eine erste Speichereinheit, die eine Kernnummer speichert, die einen Ausgabenausführungskern angibt, der eine Aufgabe ausführt; und eine zweite Speichereinheit, die eine Umschaltphase speichert, die eine Phase angibt, wenn der Aufgabenausführungskern auf einen anderen Kern umgeschaltet wird. Der Aufgabenausführungskern wird auf der Grundlage der in der ersten Speichereinheit gespeicherten Kernnummer und der in der zweiten Speichereinheit gespeicherten Umschaltphase auf einen anderen Kern umgeschaltet.According to one aspect of the invention, an electronic control unit includes a multi-core microcomputer equipped with a plurality of cores, each core executing a task in synchronization with a phase of a rotation angle; a first storage unit storing a core number indicating an output execution core executing a task; and a second storage unit storing a switching phase indicating a phase when the task execution core is switched to another core. The task execution core is switched to another core based on the core number stored in the first storage unit and the switching phase stored in the second storage unit.
Bei der elektronischen Steuereinheit mit einer derartigen Konfiguration wird der Aufgabenausführungskern auf der Grundlage von Informationen (der Kernnummer und der Umschaltphase), die vorangehend festgelegt und gespeichert werden, umgeschaltet.In the electronic control unit having such a configuration, the task execution core is switched based on information (the core number and the switching phase) previously set and stored.
Zum Beispiel wird ein Kern, der eine Aufgabe vor der Umschaltung ausführt, zu einem Zeitpunkt, zu dem die Phase zu der Umschaltphase wird, auf einen Zustand des Nichtausführens der Aufgabe umgeschaltet. Ein Kern, der eine Aufgabe nach der Umschaltung ausführt, wird ebenfalls zu dem Zeitpunkt, zu dem die Phase zu der Umschaltphase wird, auf einen Zustand des Ausführens der Aufgabe umgeschaltet.For example, a core executing a task before the switchover will be switched to a state of not executing the task at the time the phase becomes the switchover phase. A core executing a task after the switchover will also be switched to a state of executing the task at the time the phase becomes the switchover phase.
In dieser Weise können die Zeitpunkte (Phasen) des Umschaltens eines Zustands so ausgestaltet werden, dass sie in allen Kernen miteinander übereinstimmen bzw. zusammenfallen. Infolgedessen ist es möglich, zuverlässig ein Phänomen, in welchem bei einer bestimmten Phase eine Aufgabe durch keinen der Kerne ausgeführt wird, oder ein Phänomen, in welchem eine Aufgabe durch eine Mehrzahl von Kernen doppelt ausgeführt wird, zu verhindern.In this way, the timing (phases) of state switching can be configured to coincide with each other across all cores. As a result, it is possible to reliably prevent a phenomenon in which a task is not executed by any core at a given phase, or a phenomenon in which a task is executed twice by multiple cores.
Die vorstehende elektronische Steuereinheit verhindert zuverlässig ein Phänomen, in welchem eine Aufgabe bei einer bestimmten Phase nicht ausgeführt wird, oder ein Phänomen, in welchem eine Aufgabe in Zuordnung mit dem Umschalten eines Kerns, der die Aufgabe ausführt, doppelt ausgeführt wird.The above electronic control unit reliably prevents a phenomenon in which a task is not executed at a certain stage or a phenomenon in which a task is duplicated in association with the switching of a core that executes the task.
Die vorstehenden und weiteren Ziele, Merkmale und Vorteile der Erfindung sind der folgenden detaillierten Beschreibung unter Bezugnahme auf die Zeichnungen deutlicher zu entnehmen. Es zeigen:
-
1 ein Diagramm, das schematisch die Konfiguration einer elektronischen Steuereinheit gemäß einem Ausführungsbeispiel der Erfindung darstellt; -
2 ein Zeitverlaufsdiagramm zum Beschreiben des Umschaltens eines synchronen Aufgabenausführungskerns, das in der elektronischen Steuereinheit von1 ausgeführt wird; -
3 ein Zeitverlaufsdiagramm zum Beschreiben des Umschaltens des synchronen Aufgabenausführungskerns, das in der elektronischen Steuereinheit von1 ausgeführt wird; -
4 ein Ablaufdiagramm, das den Ablauf einer in der elektronischen Steuereinheit von1 ausgeführten Verarbeitung darstellt; -
5 ein Diagramm, das eine Verarbeitungslast auf einen Kern in der elektronischen Steuereinheit von1 darstellt; -
6 ein Diagramm, das Verarbeitungslasten auf den Kernen in der elektronischen Steuereinheit von1 darstellt; -
7 ein Diagramm, dass Verarbeitungslasten auf den Kernen in der elektronischen Steuereinheit von1 darstellt; -
8 ein Ablaufdiagramm, das den Ablauf einer in der elektronischen Steuereinheit von1 ausgeführten Verarbeitung darstellt; -
9 ein Diagramm, das einen Kernzustandsübergang darstellt, wenn der synchrone Aufgabenausführungskern umgeschaltet wird; -
10 ein Zeitverlaufsdiagramm zum Beschreiben des Umschaltens eines synchronen Aufgabenausführungskerns, das in einer elektronischen Steuereinheit gemäß einem Vergleichsbeispiel der Erfindung ausgeführt wird; -
11 ein Zeitverlaufsdiagramm zum Beschreiben des Umschaltens eines synchronen Aufgabenausführungskerns, das in einer elektronischen Steuereinheit gemäß einem Vergleichsbeispiel der Erfindung ausgeführt wird; -
12 ein Zeitverlaufsdiagramm zum Beschreiben des Umschaltens eines synchronen Aufgabenausführungskerns, das in einer elektronischen Steuereinheit gemäß einem Vergleichsbeispiel der Erfindung ausgeführt wird; und -
13 ein Zeitverlaufsdiagramm zum Beschreiben des Umschaltens eines synchronen Aufgabenausführungskerns, das in einer elektronischen Steuereinheit gemäß einem Vergleichsbeispiel der Erfindung ausgeführt wird.
-
1 a diagram schematically illustrating the configuration of an electronic control unit according to an embodiment of the invention; -
2 a timing diagram for describing the switching of a synchronous task execution core implemented in the electronic control unit of1 is executed; -
3 a timing diagram for describing the switching of the synchronous task execution core implemented in the electronic control unit of1 is executed; -
4 a flowchart showing the sequence of a process in the electronic control unit of1 processing carried out; -
5 a diagram showing a processing load on a core in the electronic control unit of1 represents; -
6 a diagram showing processing loads on the cores in the electronic control unit of1 represents; -
7 a diagram showing processing loads on the cores in the electronic control unit of1 represents; -
8 a flowchart showing the sequence of a process in the electronic control unit of1 processing carried out; -
9 a diagram illustrating a core state transition when the synchronous task execution core is switched; -
10 a timing chart for describing switching of a synchronous task execution core executed in an electronic control unit according to a comparative example of the invention; -
11 a timing chart for describing switching of a synchronous task execution core executed in an electronic control unit according to a comparative example of the invention; -
12 a timing diagram for describing the switching of a synchronous task execution core executed in an electronic control unit according to a comparative example of the invention; and -
13 a timing chart for describing switching of a synchronous task execution core executed in an electronic control unit according to a comparative example of the invention.
Eine elektronische Steuereinheit 10 gemäß dem vorliegenden Ausführungsbeispiel ist als eine Steuereinheit (Motorsteuerungs-ECU) zum Steuern des Betriebsablaufs einer Brennkraftmaschine 20 (Motor) in einem Fahrzeug konfiguriert. Zum Beispiel steuert die elektronische Steuereinheit 10 einen Öffnungs-/SchließVorgang eines Injektors (nicht dargestellt) in der Brennkraftmaschine 20, d.h. eine Kraftstoffeinspritzung, in Übereinstimmung mit einem Signal von einem Kurbelwinkelsensor (nicht dargestellt), der in der Brennkraftmaschine 20 bereitgestellt ist.An
In der Steuerung gibt es eine Aufgabe, die von der elektronischen Steuereinheit 10 in Synchronisation mit einer Änderung in der Phase eines Drehwinkels (Kurbelwinkels) einer Kurbelwelle periodisch verarbeitet wird. Zum Beispiel wird ein Betriebsablauf zum Ermitteln eines Kraftstoffeinspritzzeitpunkts des Injektors bei jeweils 30° Zunahme in der Phase verarbeitet. In der folgenden Beschreibung wird eine Aufgabe, die in Synchronisation mit der Phase des Drehwinkels wie vorstehend beschrieben verarbeitet wird, als eine „synchrone Aufgabe“ bzw. „Synchronaufgabe“ bezeichnet.In the control, there is a task that is periodically processed by the
Bevor die Verarbeitung der synchronen Aufgabe, die durch die elektronische Steuereinheit 10 durchgeführt wird, beschrieben wird, wird die Konfiguration der elektronischen Steuereinheit 10 beschrieben. Die elektronische Steuereinheit 10 ist mit einer Eingangsschaltung 11, einer Ausgangsschaltung 12 und einem Mikrocomputer 100 versehen.Before describing the processing of the synchronous task performed by the
Die Eingangsschaltung 11 dient als eine Kommunikationsschnittstelle zum Empfangen verschiedener Sensorsignale von der Brennkraftmaschine 20 als einem Steuerziel. Die Sensorsignale beinhalten ein von dem Kurbelwinkelsensor übertragenes Signal, d.h., ein Signal, das die Phase des Kurbelwinkels angibt.The
Die Ausgangsschaltung 12 dient als eine Kommunikationsschnittstelle zum Ausgeben eines Ansteuersignals zum Umschalten des Öffnens und des Schließens des Injektors an die Brennkraftmaschine 20. Die Ausgangsschaltung 12 kann ein Ansteuersignal zum Betreiben einer anderen Einrichtung als den Injektor (zum Beispiel eine Zündkerze) zusammen mit dem vorstehenden Ansteuersignal übertragen.The
Der Mikrocomputer 100 bildet einen Hauptteil der elektronischen Steuereinheit 10. Der Mikrocomputer 100 ist mit einer CPU 110, einem ROM 120, einem RAM 130 und einer Eingabe/Ausgabe-Schnittstelle bzw. I/O-Schnittstelle 140 versehen.The
Die CPU 110 ist eine zentrale Verarbeitungseinheit zum Durchführen eines für die Ausführung der Steuerung, d.h. der Verarbeitung von Aufgaben, erforderlichen Betriebsablaufs. Daher ist die CPU 110 eine sogenannte Mehrkern-Verarbeitungseinheit. D.h., der Mikrocomputer 100 ist als ein Mehrkern-Mikrocomputer konfiguriert.The
Das ROM 120 ist ein Nur-Lese-Halbleiterspeicher. Das ROM 120 speichert zum Beispiel ein von der CPU 110 ausgeführtes Programm und verschiedene Karten bzw. Kennlinien, die für die Steuerung der Brennkraftmaschine 20 erforderlich sind.The
Das RAM 130 ist ein wiederbeschreibbarer Halbleiterspeicher. Das RAM 130 speichert vorübergehend zum Beispiel ein Betriebsablaufergebnis für die Steuerung. In dem vorliegenden Ausführungsbeispiel sind eine erste Speichereinheit 131 und eine zweite Speichereinheit 132 als eine Informationsspeicherstelle in dem RAM 130 zugesichert bzw. angelegt. In die erste Speichereinheit 131 geschriebene und dort gespeicherte Information und in die zweite Speichereinheit 132 geschriebene und dort gespeicherte Information wird nachstehend beschrieben.The
Die I/O-Schnittstelle 140 ist ein Schnittstellenteil zur Kommunikation zwischen einer anderen ECU, die an dem Fahrzeug verbaut ist, und dem Mikrocomputer 100. Die Kommunikation über die I/O-Schnittstelle 140 wird durch die CPU 110 gesteuert.The I/
Die Konfiguration der wie vorstehend beschriebenen, elektronischen Steuereinheit 10 selbst ist dieselbe wie die Konfiguration einer konventionellen elektronischen Steuereinheit, mit der Ausnahme, dass die erste Speichereinheit 131 und die zweite Speichereinheit 132 in dem RAM 130 angelegt sind.The configuration of the
Die elektronische Steuereinheit 10 führt zusätzlich zu der synchronen Aufgabe verschiedene Aufgaben bei dem Steuern des Betriebsablaufs der Brennkraftmaschine 20 durch. In dem vorliegenden Ausführungsbeispiel wird eine Vielzahl von Aufgaben einschließlich der synchronen Aufgabe durch den Kern C1 und den Kern C2 verteilt verarbeitet.The
Der Kern C0 führt eine zentralisierte Steuerung für den Betriebsablauf der gesamten CPU 110 durch. Spezieller teilt der Kern C0 Aufgaben, die zu verarbeiten sind, auf den Kern C1 und den Kern C2 auf. Die zentralisierte Steuerung kann durch entweder den Kern C1 oder den Kern C2 gleichzeitig mit der Verarbeitung der Aufgaben durchgeführt werden. In diesem Fall ist ein dedizierter Kern zum Durchführen der zentralisierten Steuerung, wie beispielsweise der Kern C0 in den vorliegenden Ausführungsbeispielen, nicht erforderlich.Core C0 performs centralized control over the operation of the
Die Aufgaben werden in einer Weise derart aufgeteilt, dass eine Verarbeitungslast auf den Kern C1 und eine Verarbeitungslast auf den Kern C2 im Wesentlichen gleich zueinander sind. Wenn jedoch zum Beispiel die Drehzahl der Brennkraftmaschine 20 mit einer Änderung in einem Fahrzustand des Fahrzeugs zunimmt, kann durch eine Erhöhung der Ausführungsfrequenz bzw. Ausführungshäufigkeit einiger der Aufgaben die Verarbeitungslast auf entweder den Kern C1 oder den Kern C2 beträchtlich größer werden als die Verarbeitungslast auf den jeweils den anderen Kern.The tasks are distributed in such a way that a processing load on core C1 and a processing load on core C2 are substantially equal to each other. However, for example, when the rotational speed of the
Das Ungleichgewicht in der Verarbeitungslast wird in Anbetracht einer effizienten Nutzung der Verarbeitungskapazität der CPU 110 nicht bevorzugt. Daher hat die CPU 110 eine Konfiguration, in welcher ein Kern, der die Verarbeitung der synchronen Aufgabe ausführt, dynamisch umgeschaltet wird, um zu verhindern, dass die Verarbeitungslast nur eines der Kerne zu groß wird. Wenn zum Beispiel der Kern C1 die Verarbeitung der synchronen Aufgabe durchführt und die Verarbeitungslast auf den Kern C1 zu groß wird, wird ein Kern, der die Verarbeitung der synchronen Aufgabe ausführt, von dem Kern C1 auf den Kern C2 umgeschaltet.Processing load imbalance is not desirable in view of efficient utilization of the processing capacity of the
In der folgenden Beschreibung wird entweder der Kern C1 oder der Kern C2, der die Verarbeitung der synchronen Aufgabe ausführt, auch als ein „Synchronaufgabenausführungskern“ bezeichnet. Die durch den Kern C0 zum Umschalten des Synchronaufgabenausführungskerns ausgeführte Verarbeitung wird auch als eine „Umschaltverarbeitung“ bezeichnet. Wie nachstehend beschrieben wird, stimmen in dem vorliegenden Ausführungsbeispiel ein Zeitpunkt, zu dem der Kern C0 die Umschaltverarbeitung durchführt, und ein Zeitpunkt, zu dem der Synchronaufgabenausführungskern tatsächlich umgeschaltet wird, nicht notwendigerweise miteinander überein.In the following description, either the core C1 or the core C2 that executes the processing of the synchronous task is also referred to as a "synchronous task execution core." The processing executed by the core C0 to switch the synchronous task execution core is also referred to as "switching processing." As described below, in the present embodiment, a timing at which the core C0 performs the switching processing and a timing at which the synchronous task execution core is actually switched do not necessarily coincide with each other.
Vor dem Beschreiben eines bestimmten Ausführungsbeispiels der in dem vorliegenden Ausführungsbeispiel durchgeführten Umschaltverarbeitung und eines Vorteils derselben wird ein Ausführungsbeispiel der konventionellen Umschaltverarbeitung beschrieben. Die
Nachstehend erfolgt eine Beschreibung unter Bezugnahme auf
Eine synchrone Aufgabe wird bei jeweils 30° Änderung in von dem Kurbelwinkelsensor der Brennkraftmaschine 20 an die elektronische Steuereinheit gesendeter Information, d.h. in der Phase des Drehwinkels der Kurbelwelle (nachstehend als eine „Sensorphase“) bezeichnet, ausgeführt. Spezieller wird die synchrone Aufgabe in dem Synchronaufgabenausführungskern bei jeweils 30° Anstieg bzw. Zunahme in der Sensorphase auf 60°, 90° und 150° ausgeführt. Die Sensorphase kehrt auf 0° zurück, wenn die Sensorphase auf 720° angestiegen ist und mit fortschreitendem Betrieb der Brennkraftmaschine 20 erneut um 30° zunimmt.A synchronous task is executed every 30° change in the information sent from the crank angle sensor of the
In dem Beispiel von
Dann führt der Kern C0 die Umschaltverarbeitung zu der Zeit t125 nach der Zeit t110 aus. Der Synchronaufgabenausführungskern wird von dem Kern C1 auf den Kern C2 umgeschaltet. Danach tritt der Kern C1 in einen Zustand des Nichtdurchführens der synchronen Aufgabe auch dann, wenn die Sensorphase um 30° zunimmt, ein (dieser Zustand wird nachstehend als ein „Nichtausführungszustand“ bezeichnet). Andererseits tritt der Kern C2 in einen Zustand des Durchführens der Verarbeitung der synchronen Aufgabe bei jeweils 30° Zunahme in der Sensorphase ein (nachstehend wird dieser Zustand als ein „Ausführungszustand“ bezeichnet).Then, core C0 executes switching processing at time t125 after time t110. The synchronous task execution core is switched from core C1 to core C2. After that, core C1 enters a state of not executing the synchronous task even when the sensor phase increases by 30° (this state is hereinafter referred to as a "non-execution state"). On the other hand, core C2 enters a state of executing synchronous task processing every 30° increase in the sensor phase (hereinafter referred to as an "execution state").
Wenn die Sensorphase nach der Zeit t125 zu 120° wird, befindet sich der Kern C1 in dem Nichtausführungszustand. Daher beginnt der Kern C1 die Verarbeitung der synchronen Aufgabe nicht. Eine
Der Kern C2 dient nicht als der Synchronaufgabenausführungskern und befindet sich folglich vor der Zeit t125 in dem Nichtausführungszustand. Daher beginnt auch dann, wenn die Sensorphase zu 90° wird, der Kern C2 die Verarbeitung der synchronen Aufgabe nicht. Eine in
Wie in
Der Kern C0 führt die Umschaltverarbeitung zu der Zeit t125 nach der Zeit t120 aus. Wenn die Sensorphase nach der Zeit t125 zu 120° wird, befindet sich der Kern C2 in dem Ausführungszustand. Folglich beginnt der Kern C2 die Verarbeitung der synchronen Aufgabe entsprechend zu der 120° Sensorphase (Zeit t140). In dem Beispiel von
Wie vorstehend beschrieben wurde wird dann, wenn der Kern C0 die Umschaltverarbeitung zu der Zeit t125 ausführt, die synchrone Aufgabe entsprechend zu der 90° Sensorphase nur von dem Kern C1 durchgeführt, und wird die synchrone Aufgabe entsprechend zu der 120° Sensorphase nur von dem Kern C2 durchgeführt. Im Ergebnis steuert die elektronische Steuereinheit 10 die Brennkraftmaschine 20 ähnlich zu einem Fall, in welchem keine Umschaltverarbeitung durchgeführt worden ist, in normaler Weise.As described above, when the core C0 executes the switching processing at time t125, the synchronous task corresponding to the 90° sensor phase is performed only by the core C1, and the synchronous task corresponding to the 120° sensor phase is performed only by the core C2. As a result, the
Ein weiteres Beispiel wird nachstehend unter Bezugnahme auf
Auch in diesem Beispiel wird die Verarbeitung der synchronen Aufgabe entsprechend zu der 90° Sensorphase in dem Kern C1 begonnen (Zeit t110) und in dem Kern C2 nicht begonnen (Zeit t120).Also in this example, the processing of the synchronous task corresponding to the 90° sensor phase is started in the core C1 (time t110) and not started in the core C2 (time t120).
Zu der Zeit t130 dient der Kern C1 als der Synchronaufgabenausführungskern, und befindet sich folglich in dem Ausführungszustand. Daher beginnt der Kern C1 die Verarbeitung der synchronen Aufgabe entsprechend zu der 120° Sensorphase. Dann wird zu der Zeit t135 die Umschaltverarbeitung durchgeführt. Da jedoch der Kern C1 die Verarbeitung der synchronen Aufgabe bereits durchgeführt hat bzw. durchführt, wird die Verarbeitung kontinuierlich ohne Unterbrechung durchgeführt.At time t130, core C1 serves as the synchronous task execution core and is therefore in the execution state. Therefore, core C1 starts processing the synchronous task corresponding to the 120° sensor phase. Then, at time t135, switchover processing is performed. However, since core C1 has already completed or is currently processing the synchronous task, processing is performed continuously without interruption.
Zu der Zeit t140 nach der Zeit t135 wurde der Synchronaufgabenausführungskern auf den Kern C2 umgeschaltet, und befindet sich folglich der Kern C2 in dem Ausführungszustand. Daher beginnt der Kern C2 die Verarbeitung der synchronen Aufgabe entsprechend zu der 120° Sensorphase.At time t140 after time t135, the synchronous task execution core has been switched to core C2, and thus core C2 is in the execution state. Therefore, core C2 starts processing the synchronous task corresponding to the 120° sensor phase.
Infolgedessen wird die Verarbeitung der synchronen Aufgabe entsprechend zu der 120° Sensorphase in sowohl dem Kern C1 und dem Kern C2 begonnen. In diesem Fall kann eine gewisses Problem in der Steuerung der Brennkraftmaschine 20 aufgrund der doppelten Übertragung eines Ansteuersignals an die Brennkraftmaschine 20 auftreten.As a result, the processing of the synchronous task corresponding to the 120° sensor phase is started in both core C1 and core C2. In this case, some problems may arise in the control of the
In dieser Weise kann bei einer konventionellen elektronischen Steuereinheit eine synchrone Aufgabe durch eine Vielzahl von Kernen in Abhängigkeit von einem Zeitpunkt des Durchführens der Umschaltverarbeitung verarbeitet werden. Nachstehend wird ein derartiges Phänomen auch als eine „Duplizierung bzw. Verdoppelung der Verarbeitung“ bezeichnet.In this way, in a conventional electronic control unit, a synchronous task can be processed by a plurality of cores depending on the timing of switching processing. Hereinafter, such a phenomenon is also referred to as "processing duplication."
Die Umschaltverarbeitung der elektronischen Steuereinheit in Übereinstimmung mit einem Vergleichsbeispiel der Erfindung wird fortgesetzt unter Bezugnahme auf
Eine in
Ähnlich dazu gibt eine in
Der Kern C1, welcher als der Synchronaufgabenausführungskern vor der Zeit t126 dient, beginnt die Verarbeitung der synchronen Aufgabe zu der Zeit t121, nachdem die Sensorphase zu 90° wird. Dann führt zu der Zeit t126 nach der Zeit t121 der Kern C0 die Umschaltverarbeitung aus. Demgemäß wird der Synchronaufgabenausführungskern von dem Kern C1 auf den Kern C2 umgeschaltet.Core C1, which serves as the synchronous task execution core before time t126, starts processing the synchronous task at time t121 after the sensor phase becomes 90°. Then, at time t126 after time t121, core C0 executes switching processing. Accordingly, the synchronous task execution core is switched from core C1 to core C2.
Wenn die Sensorphase nach der Zeit t126 zu 120° wird, befindet sich der Kern C1 in dem Nichtausführungszustand. Daher beginnt der Kern C1 zu der Zeit t141 die Verarbeitung der synchronen Aufgabe nicht.When the sensor phase becomes 120° after time t126, core C1 is in the non-execution state. Therefore, core C1 does not start processing the synchronous task at time t141.
Der Kern C2 dient nicht als der Synchronaufgabenausführungskern und befindet sich daher vor der Zeit t126 in dem Nichtausführungszustand. Folglich beginnt auch dann, wenn die Sensorphase zu 90° wird, der Kern C2 die Verarbeitung der synchronen Aufgabe nicht.Core C2 does not serve as the synchronous task execution core and is therefore in the non-execution state before time t126. Consequently, even if the sensor phase becomes 90°, core C2 does not start processing the synchronous task.
Wenn die Sensorphase nach der Zeit t126, zu welcher der Kern C0 die Umschaltverarbeitung ausführt, die Sensorphase zu 120° wird, befindet sich der Kern C2 in dem Ausführungszustand. Daher beginnt der Kern C2 die Verarbeitung der synchronen Aufgabe entsprechend zu der 120° Sensorphase (Zeit t131).When the sensor phase becomes 120° after the time t126 at which core C0 executes the switching processing, core C2 is in the execution state. Therefore, core C2 starts processing the synchronous task corresponding to the 120° sensor phase (time t131).
Wie vorstehend beschrieben wurde wird dann, wenn der Kern C0 die Umschaltverarbeitung zu der Zeit t126 ausführt, die der 90° Sensorphase entsprechende synchrone Aufgabe nur von dem Kern C1 durchgeführt, und wird die der 120° Sensorphase entsprechende synchrone Aufgabe nur von dem Kern C2 durchgeführt. Im Ergebnis steuert ähnlich zu dem Fall, in dem kein Umschaltbetriebsablauf durchgeführt wurde, die elektronische Steuereinheit 10 die Brennkraftmaschine 20 in normaler Weise.As described above, when the core C0 executes the switching processing at time t126, the synchronous task corresponding to the 90° sensor phase is performed only by the core C1, and the synchronous task corresponding to the 120° sensor phase is performed only by the core C2. As a result, similar to the case where no switching operation was performed, the
Ein weiteres Beispiel wird nachstehend unter Bezugnahme auf
Auch in diesem Beispiel wird die Verarbeitung der synchronen Aufgabe entsprechend zu der 90° Sensorphase in dem Kern C1 (Zeit t121) begonnen und in dem Kern C2 (Zeit t111) nicht begonnen.Also in this example, the processing of the synchronous task corresponding to the 90° sensor phase is started in the core C1 (time t121) and is not started in the core C2 (time t111).
Zu der Zeit t131 dient der Kern C2 nicht als der Synchronaufgabenausführungskern, und befindet sich daher in dem Nichtausführungszustand. Folglich beginnt der Kern C2 die Verarbeitung der synchronen Aufgabe entsprechend zu der 120° Sensorphase nicht.At time t131, core C2 does not serve as the synchronous task execution core and is therefore in the non-execution state. Consequently, core C2 does not start processing the synchronous task corresponding to the 120° sensor phase.
Zu der Zeit t141 nach der Zeit t136 dient der Kern C1 nicht als der Synchronaufgabenausführungskern, und befindet sich folglich in dem Nichtausführungszustand. Daher beginnt der Kern C1 die Verarbeitung der synchronen Aufgabe entsprechend zu der 120° Sensorphase nicht.At time t141 after time t136, core C1 is not serving as the synchronous task execution core and is therefore in the non-execution state. Therefore, core C1 does not start processing the synchronous task corresponding to the 120° sensor phase.
Infolgedessen wird die Verarbeitung der synchronen Aufgabe entsprechend zu der 120° Sensorphase in sowohl dem Kern C1 als auch dem Kern C2 nicht begonnen. In diesem Fall wird ein Ansteuersignal an die Brennkraftmaschine 20 nicht übertragen. Daher kann ein gewisser Fehler in der Steuerung der Brennkraftmaschine 20 auftreten.As a result, the processing of the synchronous task corresponding to the 120° sensor phase is not started in either core C1 or core C2. In this case, a drive signal is not transmitted to the
In dieser Weise können bei der konventionellen elektronischen Steuereinheit manche synchrone Aufgaben in Abhängigkeit von einem Zeitpunkt des Durchführens der Umschaltverarbeitung nicht verarbeitet werden. Nachstehend wird ein derartiges Phänomen auch als „Fehlen einer Verarbeitung“ bezeichnet.In this way, in the conventional electronic control unit, some synchronous tasks cannot be processed depending on the timing of the switching processing. Such a phenomenon is also referred to as "processing failure" below.
Die Duplizierung der Verarbeitung und das Fehlen der Verarbeitung, die vorstehend beschrieben wurden, werden aus den folgenden Gründen verursacht. Wenn die Sensorphase zu einer bestimmten Phase wird, unterscheidet sich der Zeitpunkt des Beginnens der Verarbeitung einer synchronen Aufgabe entsprechend zu der bestimmten Sensorphase zwischen den Kernen. Ferner wird, da der Zeitpunkt des Durchführens der Umschaltverarbeitung nicht besonders definiert ist, die Umschaltverarbeitung asynchron zu dem Zeitpunkt des Beginnens der synchronen Aufgabe durchgeführt.The duplication of processing and the lack of processing described above are caused by the following reasons. When the sensing phase becomes a specific phase, the timing of starting processing of a synchronous task differs between cores according to the specific sensing phase. Furthermore, since the timing of performing switching processing is not specifically defined, switching processing is performed asynchronously with the timing of starting the synchronous task.
Die Erfindung ermöglicht es, die Umschaltverarbeitung durchzuführen, während zuverlässig die Duplizierung der Verarbeitung und das Fehlen der Verarbeitung verhindert werden. Ein Abriss der Umschaltverarbeitung in dem vorliegenden Ausführungsbeispiel wird nachstehend unter Bezugnahme auf die
Der Zeitpunkt des Ausführens einer synchronen Aufgabe in dem vorliegenden Ausführungsbeispiel ist derselbe wie der Zeitpunkt in den vorstehend unter Bezugnahme auf die
Die erste Speichereinheit 131 des RAM 130 speichert einen Wert (Kernnummer), der den Synchronaufgabenausführungskern angibt. In dem Beispiel von
Wenn sich die Sensorphase von 90° auf 120° nach der Zeit t10 ändert, beginnt der Kern C1 die Verarbeitung einer synchronen Aufgabe entsprechend zu 120° Sensorphase (Zeit t30). In dem Beispiel von
Die Umschaltverarbeitung in dem vorliegenden Ausführungsbeispiel wird von dem Kern C0 durch Neuschreiben der in der ersten Speichereinheit 131 gespeicherten Kernnummer durchgeführt. Wenn zum Beispiel der Synchronaufgabenausführungskern von dem Kern C1 auf den Kern C2 geändert wird, wird die in der ersten Speichereinheit 131 gespeicherte Kernnummer von 1 auf 2 umgeschrieben bzw. neu geschrieben.The switching processing in the present embodiment is performed by the core C0 by rewriting the core number stored in the
Ferner schreibt der Kern C0 auch eine Umschaltphase, die in der zweiten Speichereinheit 132 gespeichert ist, gleichzeitig mit dem Neuschreiben der Kernnummer, die in der ersten Speichereinheit 131 gespeichert ist, neu. Die „Umschaltphase“ ist eine Phase, die einen Zeitpunkt angibt, zudem ein Zustand (ein Ausführungszustand oder ein Nichtausführungszustand) jedes der Kerne umzuschalten ist. D.h., die Umschaltung (Änderung) des Synchronaufgabenausführungskerns wird nicht zu der Zeit t35 durchgeführt, welches der Zeitpunkt der Ausführung der Umschaltverarbeitung ist, sondern zu der Zeit, zu der die Sensorphase mit der in der zweiten Speichereinheit 132 gespeicherten Umschaltphase übereinstimmt.Furthermore, the core C0 also rewrites a switching phase stored in the
In dem Beispiel von
In dem vorliegenden Ausführungsbeispiel nimmt jeder der Kerne (der Kern C1 und der Kern C2) vor der Ausführung der Verarbeitung der synchronen Aufgabe auf die in der ersten Speichereinheit 131 gespeicherte Kernnummer Bezug. Ferner nimmt jeder der Kerne auch auf die in der zweiten Speichereinheit 132 gespeicherte Umschaltphase Bezug.In the present embodiment, each of the cores (core C1 and core C2) refers to the core number stored in the
Zu dieser Zeit wird in dem Fall, in dem die gelesene Kernnummer ein den Kern angebender Wert ist, der Kern nur dann von dem Nichtausführungszustand auf den Ausführungszustand umgeschaltet, wenn die Sensorphase mit der Umschaltphase übereinstimmt. Andererseits wird in dem Fall, in dem die gelesene Kernnummer kein den Kern angebender Wert ist, der Kern nur dann von dem Ausführungszustand auf den Nichtausführungszustand umgeschaltet, wenn die Sensorphase mit der Umschaltphase übereinstimmt.At this time, if the read core number is a core-indicating value, the core will only switch from the non-execution state to the execution state when the sensor phase matches the switching phase. On the other hand, if the read core number is not a core-indicating value, the core will only switch from the execution state to the non-execution state when the sensor phase matches the switching phase.
Zu der Zeit t30 hat der Kern C0 die Umschaltverarbeitung noch nicht durchgeführt, und bleibt die in der ersten Speichereinheit 131 gespeicherte Kernnummer unverändert auf 1. Daher verbleibt der Kern C1 auch nach der Zeit t30 in dem Ausführungszustand und beginnt die Verarbeitung der synchronen Aufgabe zu der Zeit t30.At time t30, the core C0 has not yet performed the switching processing, and the core number stored in the
Dann wird zu der Zeit t35 die Umschaltverarbeitung durchgeführt, um die in der ersten Speichereinheit 131 gespeicherte Kernnummer neu zu schreiben. Da jedoch der Kern C1 bereits die Verarbeitung der synchronen Aufgabe durchführt bzw. im Zuge deren Durchführung war, wird die Verarbeitung fortgesetzt durchgeführt, ohne unterbrochen zu werden.Then, at time t35, switching processing is performed to rewrite the core number stored in the
Wenn die Sensorphase nach der Zeit t35 zu 150° wird, nimmt der Kern C1 erneut auf die in der ersten Speichereinheit 131 gespeicherte Kernnummer und die in der zweiten Speichereinheit 132 gespeicherte Umschaltphase Bezug (Zeit t50). Zu der Zeit t50 ist die in der ersten Speichereinheit 131 gespeicherte Kernnummer 2, und stimmt folglich nicht mit dem Wert (1), der den Kern C1 angibt, überein.When the sensor phase becomes 150° after time t35, core C1 again refers to the core number stored in
Ferner ist die in der zweiten Speichereinheit 132 gespeicherte Umschaltphase 150° und stimmt folglich mit der Sensorphase zu der Zeit t50 überein. Daher wird der Kern C1 von dem Ausführungszustand auf den Nichtausführungszustand zu der Zeit t50 umgeschaltet und beginnt die Verarbeitung der synchronen Aufgabe zu der Zeit t50 nicht.Furthermore, the switching phase stored in the
Der Kern C2 dient nicht als der Synchronaufgabenausführungskern und befindet sich folglich vor der Zeit t35 in dem Nichtausführungszustand. Daher beginnt auch dann, wenn die Sensorphase zu 90° wird, der Kern C2 die Verarbeitung der synchronen Aufgabe nicht. Eine in
Der Kern C0 führt die Umschaltverarbeitung zu der Zeit t35 nach der Zeit t20 aus. Wenn die Sensorphase zu 120° wird, nimmt der Kern C2 auf die in der ersten Speichereinheit 131 gespeicherte Kernnummer und die in der zweiten Speichereinheit 132 gespeicherte Umschaltphase Bezug (Zeit t40). In dem Beispiel von
Zu der Zeit t40 ist die in der ersten Speichereinheit 131 gespeicherte Kernnummer 2 und stimmt folglich mit der dem Kern C2 entsprechenden Nummer überein. Jedoch ist die in der zweiten Speichereinheit 132 gespeicherte Umschaltphase 150° und stimmt folglich nicht mit einer Sensorphase (120°) zu der Zeit t40 überein.At time t40, the core number stored in the
Daher wird der Kern C2 zu der Zeit t40 nicht auf den Ausführungszustand umgeschaltet und verbleibt auch nach der Zeit t40 in dem Nichtausführungszustand. Therefore, the core C2 is not switched to the execution state at time t40 and remains in the non-execution state even after time t40.
Folglich beginnt auch dann, wenn die Sensorphase zu 120° wird, der Kern C2 zu der Zeit t40 die Verarbeitung der synchronen Aufgabe nicht.Consequently, even if the sensor phase becomes 120°, the core C2 does not start processing the synchronous task at time t40.
Wenn die Sensorphase nach der Zeit t40 zu 150° wird, nimmt der Kern C2 erneut auf die in der ersten Speichereinheit 131 gespeicherte Kernnummer und die in der zweiten Speichereinheit 132 gespeicherte Umschaltphase Bezug (Zeit t60). Zu der Zeit t60 ist die in der ersten Speichereinheit 131 gespeicherte Kernnummer 2 und stimmt folglich mit dem den Kern C2 angebenden Wert (2) überein. Ferner ist die in der zweiten Speichereinheit 132 gespeicherte Umschaltphase 150° und stimmt folglich mit der Sensorphase (150°) zu der Zeit t60 überein. Daher wird der Kern C2 zu der Zeit t60 von dem Nichtausführungszustand auf den Ausführungszustand umgeschaltet und beginnt die Verarbeitung der synchronen Aufgabe zu der Zeit t60.When the sensor phase becomes 150° after time t40, core C2 again refers to the core number stored in
In dem in
Die Duplizierung der Verarbeitung, wie sie in dem Fall der
Eine in
Eine in
Ähnlich dazu gibt eine in
Wenn die Sensorphase zu 90° wird, nimmt der Kern C1 auf die in der ersten Speichereinheit 131 gespeicherte Kernnummer und die in der zweiten Speichereinheit 132 gespeicherte Umschaltphase Bezug (Zeit t21).When the sensor phase becomes 90°, the core C1 refers to the core number stored in the
Zu der Zeit t21 ist die in der ersten Speichereinheit 131 gespeicherte Kernnummer 2 und stimmt folglich nicht mit der dem Kern C1 entsprechenden Nummer überein. Daher dient der Kern C1 danach nicht als der Synchronaufgabenausführungskern und wird von dem Ausführungszustand auf den Nichtausführungszustand umgeschaltet.At time t21, the core number stored in the
Die in der zweiten Speichereinheit 132 gespeicherte Umschaltphase ist jedoch 120° und stimmt folglich nicht mit der Sensorphase (90°) zu der Zeit t21 überein. Daher wird der Kern C1 zu der Zeit t21 nicht auf den Nichtausführungszustand umgeschaltet und verbleibt danach in dem Ausführungszustand. Folglich beginnt der Kern C1 die Verarbeitung der synchronen Aufgabe zu der Zeit t21, wenn die Sensorphase 90° ist.However, the switching phase stored in the
Wenn die Sensorphase nach der Zeit t21 zu 120° wird, nimmt der Kern C1 erneut auf die in der ersten Speichereinheit 131 gespeicherte Kernnummer und die in der zweiten Speichereinheit 132 gespeicherte Umschaltphase Bezug (Zeit t41). Zu der Zeit t41 ist die in der ersten Speichereinheit 131 gespeicherte Kernnummer 2 und stimmt folglich nicht mit dem den Kern C1 angebenden Wert (1) überein.When the sensor phase becomes 120° after time t21, core C1 again refers to the core number stored in
Ferner ist die in der zweiten Speichereinheit 132 gespeicherte Umschaltphase 120° und stimmt folglich mit der Sensorphase zu der Zeit t41 überein. Daher wird der Kern von dem Ausführungszustand auf den Nichtausführungszustand zu der Zeit t41 umgeschaltet und beginnt zu der Zeit t41 die Verarbeitung der synchronen Aufgabe nicht.Furthermore, the switching phase stored in the
Zu der Zeit t11 nimmt der Kern C2 auf die in der ersten Speichereinheit 131 gespeicherte Kernnummer und die in der zweiten Speichereinheit 132 gespeicherte Umschaltphase Bezug. Zu der Zeit t11 ist die in der ersten Speichereinheit 131 gespeicherte Kernnummer 1 und stimmt folglich nicht mit dem den Kern 2 angeben Wert (2) überein. Folglich verbleibt der Kern C2, welcher sich in dem Nichtausführungszustand befunden hatte, auch nach der Zeit t11 in dem Nichtausführungszustand. Der Kern C2 beginnt zu der Zeit t11 die Verarbeitung der synchronen Aufgabe nicht.At time t11, core C2 refers to the core number stored in the
Wenn die Sensorphase zu 120° wird, nimmt der Kern C2 erneut auf die in der ersten Speichereinheit 131 gespeicherte Kernnummer und die in der zweiten Speichereinheit 132 gespeicherte Umschaltphase Bezug (Zeit t31). Zu der Zeit t31 ist die in der ersten Speichereinheit 131 gespeicherte Kernnummer 2 und stimmt folglich mit dem den Kern C2 angeben den Wert (2) überein.When the sensor phase becomes 120°, the core C2 again refers to the core number stored in the
Ferner ist die in der zweiten Speichereinheit 132 gespeicherte Umschaltphase 120° und stimmt folglich mit der Sensorphase zu der Zeit t31 überein. Daher wird der Kern C2 von dem Nichtausführungszustand auf den Ausführungszustand umgeschaltet und beginnt die Verarbeitung der synchronen Aufgabe zu der Zeit t31.Furthermore, the switching phase stored in the
In dem in
In dem vorliegenden Ausführungsbeispiel tritt jedoch das Fehlen der Verarbeitung, wie es in dem Fall der
Einzelheiten der in der elektronischen Steuereinheit 10 ausgeführten Verarbeitung werden nachstehend unter Bezugnahme auf
In dem ersten Schritt S01 wird die Notwendigkeit der Umschaltverarbeitung ermittelt. D.h., es wird ermittelt, ob es ein Ungleichgewicht in der Verarbeitungslast zwischen dem Kern C1 und den Kern C2 gibt. Die Ermittlung wird unter Bezugnahme auf
In einem Beispiel von (A) in
Andererseits überschreitet in einem Beispiel von (B) in
Auf
Andererseits wird die Umschaltverarbeitung als unnötig ermittelt, wenn der Anteil der Summe der Zeit PT1 und der Zeit PT2 in der vorbestimmten Zeit den Schwellenwert TH nicht überschreitet. In anderen Worten wird die Umschaltverarbeitung als unnötig ermittelt, wenn der Anteil der Leerlaufzeit DT in der vorbestimmten Zeit nicht kleiner ist als der Schwellenwert (der Wert, der durch Subtrahieren des Schwellenwerts TH von 100 % erhalten wird).On the other hand, the switching processing is determined to be unnecessary when the proportion of the sum of the time PT1 and the time PT2 in the predetermined time does not exceed the threshold TH. In other words, the switching processing is determined to be unnecessary when the proportion of the idle time DT in the predetermined time is not less than the threshold (the value obtained by subtracting the threshold TH from 100%).
Wenn die Umschaltverarbeitung in Schritt S01 als unnötig ermittelt wird, wird die Reihe von Verarbeitungsschritten, die in
Ein Verfahren zum Ermitteln einer neuen Ausführungskernnummer nach der Umschaltverarbeitung wird unter Bezugnahme auf die
In den Beispielen der
Die Summe der Zeit PT2 und der Leerlaufzeit DT in der vorbestimmten Zeit ist als eine „Gesamtzeit“ definiert. Eine Gesamtzeit T1 in dem Kern C1 ist die Summe der Zeit PT2 und der Leerlaufzeit DT. Andererseits ist, da es keine Zeit PP2 in dem Kern C2 gibt, eine Gesamtzeit T2 in dem Kern C2 gleich der Leerlaufzeit DT. In dem Beispiel von
Auf
D.h., die neue Ausführungskernnummer wird so bestimmt, dass eine Leerlaufzeit DT in dem Synchronaufgabenausführungskern nach der Umschaltverarbeitung länger ist als eine Leerlaufzeit DT in dem Synchronaufgabenausführungskern vor der Umschaltverarbeitung.That is, the new execution core number is determined such that an idle time DT in the synchronous task execution core after the switchover processing is longer than an idle time DT in the synchronous task execution core before the switchover processing.
Wenn die Gesamtzeit T1 länger ist als die Gesamtzeit T2, wie in dem in
In dem auf Schritt S02 folgenden Schritt S03 wird ermittelt, ob sich die Ausführungskernnummer ändert. D.h., es wird ermittelt, ob sich die in Schritt S02 ermittelte Ausführungskernnummer von einer Kernnummer des Synchronaufgabenausführungskerns, bevor die Umschaltverarbeitung durchgeführt wird, unterscheidet.In step S03 following step S02, it is determined whether the execution core number changes. That is, it is determined whether the execution core number determined in step S02 differs from a core number of the synchronous task execution core before the switching processing is performed.
Wenn die Ausführungskernnummer unverändert bleibt, ist die Umschaltverarbeitung unnötig. Daher wird die in
In Schritt S04 wird die Umschaltphase ermittelt. Die Umschaltphase wird auf der Grundlage einer Phase zu der Zeit, zu der die Verarbeitung von
Ein Beispiel eines Ausdrucks zum Ermitteln der Umschaltphase (Pn) in der vorstehenden Weise beinhaltet den folgenden Ausdruck (1).
Ein Verfahren zum Ermitteln der Umschaltphase ist nicht auf das vorstehende Verfahren beschränkt. Zum Beispiel kann eine Phase (in diesem Fall 150°), bei welcher eine rotationssynchrone Aufgabe nach der nächst zu der gegenwärtigen Sensorphase liegenden Phase bzw. übernächst zu der gegenwärtigen Sensorphase (zum Beispiel 90°) ausgeführt wird, als die Umschaltphase ermittelt werden.A method for determining the switching phase is not limited to the above method. For example, a phase (in this case, 150°) at which a rotation-synchronous task is executed after the phase closest to the current sensor phase or the phase after the current sensor phase (for example, 90°) can be determined as the switching phase.
In dem auf Schritt S04 folgenden Schritt S05 fährt die in Schritt S04 ermittelte Umschaltphase in die zweite Speichereinheit 132 geschrieben. In dem auf Schritt S05 folgenden Schritt S06 wird die in Schritt S02 ermittelte Ausführungskernnummer in die erste Speichereinheit 131 geschrieben.In step S05 following step S04, the switching phase determined in step S04 is written to the
Der in dem Kern C1 und dem Kern C2 ausgeführte Verarbeitungsablauf wird nachstehend unter Bezugnahme auf
In dem ersten Schritt S11 wird die in der ersten Speichereinheit 131 gespeicherte Kernnummer (Ausführungskernnummer) gelesen. In dem nachfolgenden Schritt S12 wird die in der zweiten Speichereinheit 132 gespeicherte Umschaltphase gelesen.In the first step S11, the core number (execution core number) stored in the
In dem auf Schritt S13 folgenden Schritt S12 wird ein Zustand (der Ausführungszustand oder der Nichtausführungszustand) danach ermittelt und auf der Grundlage der gelesenen Ausführungskernnummer und Umschaltphase sowie des gegenwärtigen Zustands (des Ausführungszustands oder des Nichtausführungszustands) des Kerns umgeschaltet.In step S12 following step S13, a state (the execution state or the non-execution state) is thereafter determined and switched based on the read execution core number and switching phase and the current state (the execution state or the non-execution state) of the core.
Wie bereits vorstehend beschrieben wurde, wird in dem vorliegenden Ausführungsbeispiel in dem Fall, in dem die in der ersten Speichereinheit 131 gespeicherte Ausführungskernnummer ein den Kern angebender Wert ist, der Kern nur dann von dem Nichtausführungszustand auf den Ausführungszustand umgeschaltet, wenn die Sensorphase mit der in der zweiten Speichereinheit 132 gespeicherten Umschaltphase übereinstimmt. Andererseits wird in dem Fall, in dem die in der ersten Speichereinheit 131 gespeicherte Kernnummer kein den Kern angebender Wert ist, der Kern nur dann von dem Ausführungszustand auf den Nichtausführungszustand umgeschaltet, wenn die Sensorphase mit der in der zweiten Speichereinheit 132 gespeicherten Umschaltphase übereinstimmt.As already described above, in the present embodiment, in the case where the execution kernel number stored in the
Ein bestimmtes Ermittlungsverfahren in Schritt S13 zum Umschalten eines Zustands in der vorstehenden Weise wird nachstehend unter Bezugnahme auf
Der Kern C1 wird als ein Beispiel beschrieben. Zum Beispiel befindet sich in einem anfänglichen Zustand, bevor die erste Umschaltverarbeitung durchgeführt wird, wie beispielsweise vor der Zeit t16 in
Ein Zeitpunkt, zu dem sich die Sensorphase ändert und eine synchrone Aufgabe auszuführen ist, ermittelt der Kern C1 in dem Ausführungszustand, ob die folgende Bedingung B erfüllt ist bzw. wird.At a time when the sensor phase changes and a synchronous task is to be executed, the core C1 determines in the execution state whether the following condition B is or will be fulfilled.
Die Bedingung B besteht darin, dass die gelesene Ausführungskernnummer nicht mit einer den Kern (den Kern C1 in diesem Beispiel) angebenden Kernnummer übereinstimmt und die Umschaltphase mit der gegenwärtigen Sensorphase übereinstimmt.Condition B is that the read execution core number does not match a core number indicating the core (core C1 in this example) and the switching phase matches the current sensor phase.
Der Kern C1 wird nur dann von dem Ausführungszustand (ST1) auf den Nichtausführungszustand (ST2) umgeschaltet, wenn die Bedingung B erfüllt ist. Zum Beispiel stimmt bei der Zeit t21 von
Zu einem Zeitpunkt, zu dem die synchrone Aufgabe erneut auszuführen ist, nachdem der Kern C1 den Nichtausführungszustand einnimmt, ermittelt der Kern C1, ob die folgende Bedingung A erfüllt ist.At a time when the synchronous task is to be executed again after the core C1 enters the non-execution state, the core C1 determines whether the following condition A is satisfied.
Die Bedingung A besteht darin, dass die gelesene Ausführungskernnummer mit einer den Kern (den Kern C1 in diesem Beispiel) angebenden Kernnummer übereinstimmt und die gelesene Umschaltphase mit der gegenwärtigen Sensorphase übereinstimmt.Condition A is that the read execution core number matches a core number indicating the core (core C1 in this example) and the read switching phase matches the current sensor phase.
Der Kern C1 wird nur dann von dem Nichtausführungszustand (ST2) auf den Ausführungszustand (ST1) umgeschaltet, wenn die Bedingung A erfüllt ist. The core C1 is switched from the non-execution state (ST2) to the execution state (ST1) only if condition A is met.
Dasselbe gilt für den Kern C2. Zum Beispiel befindet sich in einem anfänglichen Zustand, bevor die erste Umschaltverarbeitung durchgeführt wird, wie beispielsweise vor der Zeit t35 in
Ein Zeitpunkt, zu dem sich die Sensorphase ändert und eine synchrone Aufgabe auszuführen ist, ermittelt der Kern C2 in dem Nichtausführungszustand, ob die vorstehende Bedingung A erfüllt ist, Der Kern C2 wird nur dann von den Nichtausführungszustand (ST2) auf den Ausführungszustand (ST1) umgeschaltet, wenn die Bedingung A erfüllt ist. Zum Beispiel stimmt zu der Zeit t40 von
Zu einem Zeitpunkt, zu dem die synchrone Aufgabe erneut auszuführen ist, nachdem der Kern C2 den Ausführungszustand einnimmt, ermittelt der Kern C2, ob die Bedingung B erfüllt ist. Der Kern C2 wird nur dann von dem Ausführungszustand (ST1) auf den Nichtausführungszustand (ST2) umgeschaltet, wenn die Bedingung B erfüllt ist.At a time when the synchronous task is to be executed again after core C2 enters the execution state, core C2 determines whether condition B is satisfied. Core C2 will only switch from the execution state (ST1) to the non-execution state (ST2) if condition B is satisfied.
Rückbezug auf
Es wird angemerkt, dass ein Ablaufdiagramm oder die Verarbeitung des Ablaufdiagramms in der vorliegenden Anmeldung Sektionen bzw. Abschnitte (auch als Schritte bezeichnet) beinhaltet, von welchen jeder als beispielsweise S01 repräsentiert ist. Ferner kann jede Sektion in mehrere Untersektionen aufgeteilt sein, während mehrere Sektionen zu einer einzelnen Sektion kombiniert sein können. Ferner kann jede von derart konfigurierten Sektionen auch als eine Einrichtung, ein Modul oder ein Mittel bezeichnet werden.It is noted that a flowchart or the processing of the flowchart in the present application includes sections (also referred to as steps), each of which is represented as, for example, S01. Furthermore, each section may be divided into multiple subsections, while multiple sections may be combined into a single section. Furthermore, each of the sections configured in this way may also be referred to as a device, a module, or a means.
Während die Erfindung unter Bezugnahme auf Ausführungsbeispiele derselben beschrieben wurde, versteht sich, dass die Erfindung nicht auf die Ausführungsbeispiele und Konstruktionen beschränkt ist. Die Erfindung beabsichtigt, verschiedene Modifikationen und äquivalente Anordnungen abzudecken. Darüber hinaus liegen ungeachtet der verschiedenen Kombinationen und Konfigurationen andere Kombinationen und Konfigurationen, einschließlich mehr, weniger oder nur einem einzelnen Element(en) ebenfalls innerhalb des Rahmens und Schutzumfangs der Erfindung.While the invention has been described with reference to embodiments thereof, it is to be understood that the invention is not limited to The invention is intended to cover various modifications and equivalent arrangements. Furthermore, notwithstanding the various combinations and configurations, other combinations and configurations, including more, fewer, or only a single element, are also within the spirit and scope of the invention.
Claims (9)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2015045426A JP6394442B2 (en) | 2015-03-09 | 2015-03-09 | Electronic control unit |
| JP2015-045426 | 2015-03-09 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE102016203418A1 DE102016203418A1 (en) | 2016-09-15 |
| DE102016203418B4 true DE102016203418B4 (en) | 2025-03-20 |
Family
ID=56800694
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE102016203418.9A Active DE102016203418B4 (en) | 2015-03-09 | 2016-03-02 | ELECTRONIC CONTROL UNIT |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP6394442B2 (en) |
| DE (1) | DE102016203418B4 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7476638B2 (en) * | 2020-04-15 | 2024-05-01 | 株式会社デンソー | Multiprocessor Systems |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100205602A1 (en) * | 2004-12-16 | 2010-08-12 | Vmware, Inc. | Mechanism for Scheduling Execution of Threads for Fair Resource Allocation in a Multi-Threaded and/or Multi-Core Processing System |
| JP2014078078A (en) | 2012-10-09 | 2014-05-01 | Denso Corp | Electronic control device |
| DE102016216298A1 (en) | 2015-09-11 | 2017-03-16 | Denso Corporation | PARALLELIZATION METHOD, PARALLELIZATION TOOL AND DEVICE FIXED TO A VEHICLE |
| DE102016219403A1 (en) | 2015-10-07 | 2017-04-13 | Denso Corporation | PARALLELIZATION PROCESSING, PARALLELIZATION TOOL AND VEHICLE-ASSIGNED DEVICE |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010113419A (en) * | 2008-11-04 | 2010-05-20 | Toyota Motor Corp | Multicore controller |
| JP2010196619A (en) * | 2009-02-26 | 2010-09-09 | Toyota Motor Corp | Control system of internal combustion engine |
| JP2012108786A (en) * | 2010-11-18 | 2012-06-07 | Toyota Motor Corp | Microcomputer and processing synchronization method |
| JP5817505B2 (en) * | 2011-12-21 | 2015-11-18 | トヨタ自動車株式会社 | Control device for internal combustion engine |
-
2015
- 2015-03-09 JP JP2015045426A patent/JP6394442B2/en active Active
-
2016
- 2016-03-02 DE DE102016203418.9A patent/DE102016203418B4/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100205602A1 (en) * | 2004-12-16 | 2010-08-12 | Vmware, Inc. | Mechanism for Scheduling Execution of Threads for Fair Resource Allocation in a Multi-Threaded and/or Multi-Core Processing System |
| JP2014078078A (en) | 2012-10-09 | 2014-05-01 | Denso Corp | Electronic control device |
| DE102016216298A1 (en) | 2015-09-11 | 2017-03-16 | Denso Corporation | PARALLELIZATION METHOD, PARALLELIZATION TOOL AND DEVICE FIXED TO A VEHICLE |
| DE102016219403A1 (en) | 2015-10-07 | 2017-04-13 | Denso Corporation | PARALLELIZATION PROCESSING, PARALLELIZATION TOOL AND VEHICLE-ASSIGNED DEVICE |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2016165912A (en) | 2016-09-15 |
| JP6394442B2 (en) | 2018-09-26 |
| DE102016203418A1 (en) | 2016-09-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE4410775C2 (en) | Control unit and operating method of an operating system for this control unit | |
| DE112009001700B4 (en) | Multicore system, on-board electronic control unit and task switching method | |
| DE102012009482B4 (en) | Functionally expandable vehicle control unit and method for supplementing the functionality of a vehicle control unit | |
| DE102015204696B4 (en) | Control device switching system | |
| DE112013006452T5 (en) | Audio output control device | |
| DE102019206320B4 (en) | vehicle communication device | |
| DE112021002403T5 (en) | VEHICLE CONTROL DEVICE | |
| DE102005001946B4 (en) | System for controlling the behavior of a vehicle | |
| DE102016219403B4 (en) | PARALLELIZATION PROCESSING, PARALLELIZATION TOOL AND VEHICLE-BASED DEVICE | |
| DE102012209789B4 (en) | ON-VEHICLE ELECTRICAL CONTROL DEVICE | |
| DE102005013913A1 (en) | Interrupt request program and microcomputer | |
| EP0010570A2 (en) | Method and device for self-adaptive load association in a data processing system | |
| DE102020205720A1 (en) | Computer-implemented method and device for planning resources | |
| DE102016203418B4 (en) | ELECTRONIC CONTROL UNIT | |
| WO1996019759A1 (en) | System for controlling technical processes | |
| WO2003069424A2 (en) | Limitation of the response time of a software process | |
| DE102014103818A1 (en) | Method for calculating the utilization of a CPU | |
| DE102004059972B4 (en) | Thread scheduling method, and thread list scheduler device | |
| DE102016219449A1 (en) | Parallelization method, parallelization tool and vehicle-mounted device | |
| DE19647407A1 (en) | Control device, in particular for use in a motor vehicle | |
| DE102018123563B4 (en) | Method for inter-core communication in a multi-core processor | |
| DE102015213370B4 (en) | DATA PROCESSING DEVICE | |
| DE102017222292B4 (en) | PARALLELIZATION METHOD AND PARALLELIZATION TOOL | |
| DE102020201757B4 (en) | METHOD, COMPUTER PROGRAM AND DEVICE FOR RESETTING A CONTROL UNIT | |
| DE102012208753A1 (en) | Vehicle-mounted microcomputer comprises a core holding element that determines whether preset stop condition of each virtual core of single core is fulfilled and stops a virtual core, when stop condition is fulfilled |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R012 | Request for examination validly filed | ||
| R084 | Declaration of willingness to licence | ||
| R016 | Response to examination communication | ||
| R018 | Grant decision by examination section/examining division | ||
| R020 | Patent grant now final |