[go: up one dir, main page]

DE102016203418B4 - ELECTRONIC CONTROL UNIT - Google Patents

ELECTRONIC CONTROL UNIT Download PDF

Info

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
Application number
DE102016203418.9A
Other languages
German (de)
Other versions
DE102016203418A1 (en
Inventor
Masaaki Tamakoshi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Publication of DE102016203418A1 publication Critical patent/DE102016203418A1/en
Application granted granted Critical
Publication of DE102016203418B4 publication Critical patent/DE102016203418B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

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 DE 10 2016 219 403 A1 eine Parallelisierungsverarbeitung, ein Parallelisierungswerkzeug und eine fahrzeuggebundene Vorrichtung. Ein Parallelisierungsverfahren und ein Parallelisierungswerkzeug können ein paralleles Programm erzeugen, das einen Wartezustand reduzieren kann, und eine fahrzeuggebundene Vorrichtung kann den Wartezustand reduzieren. Ein Computer erzeugt ein paralleles Programm aus einem einzelnen Programm für einen Einzelkern-Mikrocomputer durch Ausführen eines automatischen Parallelisierungswerkzeugs. Für jede von Verarbeitungen, die Kernen zugeordnet sind, ordnet der Computer eine Verarbeitung mit einer Abhängigkeit einer abhängigen Aufgabe zu und eine Verarbeitung, die die Abhängigkeit nicht aufweist, einer nicht abhängigen Aufgabe zu. Der Computer weist dem parallelen Programm eine Funktion zum Versetzen der abhängigen Aufgabe in einem Verarbeitungswartezustand und Aufheben des Verarbeitungswartezustands der nicht abhängigen Aufgabe zu, wenn die Aufgaben in einem Synchronisierungswartezustand versetzt werden.In context, the publication concerns DE 10 2016 219 403 A1 a parallelization processing, a parallelization tool, and an in-vehicle device. A parallelization method and a parallelization tool can generate a parallel program that can reduce a wait state, and a in-vehicle device can reduce the wait state. A computer generates a parallel program from a single program for a single-core microcomputer by executing an automatic parallelization tool. For each of processings allocated to cores, the computer assigns a processing with a dependency to a dependent task and a processing that does not have the dependency to a non-dependent task. The computer assigns to the parallel program a function for placing the dependent task in a processing wait state and releasing the processing wait state of the non-dependent task when the tasks are placed in a synchronization wait state.

Auch die Druckschrift DE 10 2016 216 298 A1 beschreibt ein Parallelisierungsverfahren, ein Parallelisierungstool oder -Werkzeug und eine an einem Fahrzeug befestigte Vorrichtung, wobei ein Parallelisierungsverfahren ein paralleles Programm erzeugt, welches parallelisiert ist, für einen Mehrkernmikrocomputer von parallelisierbaren Prozessen in einem einzelnen Programm für einen Einzelkernmikrocomputer. Die Prozesse umfassen einen vorhergehenden und einen folgenden Prozess, welche jeweils verschiedenen Kernen zugewiesen sind. Das Parallelisierungsverfahren beinhaltet: Einfügen eines Speicherungsprozesses, welcher eine Beendigungszustand hat, in das parallele Programm, um eine Ausführungsreihenfolge der verschiedenen Kerne beizubehalten, wenn der vorhergehende Prozess abgeschlossen ist; Einfügen eines Warteprozesses zum Warten darauf, dass der Beendigungszustand gespeichert wird, und zum Umschalten auf eine Ausführung des folgenden Prozesses, wenn der Beendigungszustand gespeichert ist, in das parallele Programm, um die Ausführungsreihenfolge beizubehalten; und Einfügen eines erneuten Speicherungsprozesses zum Steuern des Kerns, welcher den Speicherungsprozess ausgeführt hat, den Speicherungsprozess erneut auszuführen, wenn ein anderer Prozess ausgeführt wird, nachdem der vorhergehende Prozess abgeschlossen ist, in das parallele Programm.The printed matter DE 10 2016 216 298 A1 describes a parallelization method, a parallelization tool, and a vehicle-mounted device, wherein a parallelization method generates a parallelized parallel program for a multi-core microcomputer from parallelizable processes into a single program for a single-core microcomputer. The processes include a preceding and a following process, each assigned to different cores. The parallelization method includes: inserting a save process having a completion state into the parallel program to maintain an execution order of the different cores when the preceding process is completed; inserting a wait process for waiting for the completion state to be saved and switching to execution of the following process when the completion state is saved into the parallel program to maintain the execution order; and inserting a re-save process for controlling the core that executed the save process to re-execute the save process when another process is executed after the preceding process is completed, into the parallel program.

Im Kontext einer elektronischen Steuereinheit der vorgenannten Art wird gemäß der Druckschrift JP 2014 - 78078A ein Kern, der eine Aufgabe ausführt, dynamisch umgeschaltet, um zu verhindern, dass die Verarbeitungslast auf nur manchen der Kerne groß wird.In the context of an electronic control unit of the aforementioned type, according to the document JP 2014 - 78078A a core performing a task is dynamically switched to prevent the processing load from becoming large on only some of the cores.

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 claim 1. Advantageous developments of the invention are the subject of the appended subclaims.

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 von 1 ausgeführt wird;
  • 3 ein Zeitverlaufsdiagramm zum Beschreiben des Umschaltens des synchronen Aufgabenausführungskerns, das in der elektronischen Steuereinheit von 1 ausgeführt wird;
  • 4 ein Ablaufdiagramm, das den Ablauf einer in der elektronischen Steuereinheit von 1 ausgeführten Verarbeitung darstellt;
  • 5 ein Diagramm, das eine Verarbeitungslast auf einen Kern in der elektronischen Steuereinheit von 1 darstellt;
  • 6 ein Diagramm, das Verarbeitungslasten auf den Kernen in der elektronischen Steuereinheit von 1 darstellt;
  • 7 ein Diagramm, dass Verarbeitungslasten auf den Kernen in der elektronischen Steuereinheit von 1 darstellt;
  • 8 ein Ablaufdiagramm, das den Ablauf einer in der elektronischen Steuereinheit von 1 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.
The above and other objects, features, and advantages of the invention will become more apparent from the following detailed description with reference to the drawings, in which:
  • 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 of 1 is executed;
  • 3 a timing diagram for describing the switching of the synchronous task execution core implemented in the electronic control unit of 1 is executed;
  • 4 a flowchart showing the sequence of a process in the electronic control unit of 1 processing carried out;
  • 5 a diagram showing a processing load on a core in the electronic control unit of 1 represents;
  • 6 a diagram showing processing loads on the cores in the electronic control unit of 1 represents;
  • 7 a diagram showing processing loads on the cores in the electronic control unit of 1 represents;
  • 8 a flowchart showing the sequence of a process in the electronic control unit of 1 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 electronic control unit 10 according to the present embodiment is configured as a control unit (engine control ECU) for controlling the operation of an internal combustion engine 20 (engine) in a vehicle. For example, the electronic control unit 10 controls an opening/closing operation of an injector (not shown) in the internal combustion engine 20, i.e., fuel injection, in accordance with a signal from a crank angle sensor (not shown) provided in the internal combustion engine 20.

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 electronic control unit 10 in synchronization with a change in the phase of a rotation angle (crank angle) of a crankshaft. For example, an operation for determining a fuel injection timing of the injector is processed every 30° increment in phase. In the following description, a task processed in synchronization with the phase of the rotation angle as described above is referred to as a "synchronous task."

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 electronic control unit 10, the configuration of the electronic control unit 10 will be described. The electronic control unit 10 is provided with an input circuit 11, an output circuit 12, and a microcomputer 100.

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 input circuit 11 serves as a communication interface for receiving various sensor signals from the internal combustion engine 20 as a control target. The sensor signals include a signal transmitted from the crank angle sensor, i.e., a signal indicating the phase of the crank angle.

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 output circuit 12 serves as a communication interface for outputting a drive signal for switching the opening and closing of the injector to the internal combustion engine 20. The output circuit 12 may transmit a drive signal for operating a device other than the injector (for example, a spark plug) together with the above drive signal.

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 microcomputer 100 forms a main part of the electronic control unit 10. The microcomputer 100 is provided with a CPU 110, a ROM 120, a RAM 130 and an input/output interface or I/O interface 140.

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 CPU 110 is a central processing unit for performing an operation required for executing control, i.e., processing tasks. Therefore, the CPU 110 is a so-called multi-core processing unit. That is, the microcomputer 100 is configured as a multi-core microcomputer.

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 ROM 120 is a read-only semiconductor memory. The ROM 120 stores, for example, a program executed by the CPU 110 and various maps or characteristic curves required for controlling the internal combustion engine 20.

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 RAM 130 is a rewritable semiconductor memory. The RAM 130 temporarily stores, for example, an operation result for the controller. In the present embodiment, a first storage unit 131 and a second storage unit 132 are respectively assured and designated as an information storage location in the RAM 130. created. Information written and stored in the first storage unit 131 and information written and stored in the second storage unit 132 will be described below.

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/O interface 140 is an interface part for communication between another ECU installed on the vehicle and the microcomputer 100. The communication via the I/O interface 140 is controlled by the CPU 110.

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 electronic control unit 10 itself as described above is the same as the configuration of a conventional electronic control unit, except that the first storage unit 131 and the second storage unit 132 are arranged in the RAM 130.

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 electronic control unit 10 performs various tasks in addition to the synchronous task in controlling the operation of the internal combustion engine 20. In the present embodiment, a plurality of tasks including the synchronous task are distributedly processed by the core C1 and the core C2.

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 entire CPU 110. More specifically, core C0 divides tasks to be processed between core C1 and core C2. Centralized control can be performed by either core C1 or core C2 concurrently with the processing of tasks. In this case, a dedicated core for performing centralized control, such as core C0 in the present embodiments, is not required.

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 internal combustion engine 20 increases with a change in a driving state of the vehicle, by increasing the execution frequency of some of the tasks, the processing load on either core C1 or core C2 may become significantly larger than the processing load on the other core.

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 CPU 110. Therefore, the CPU 110 has a configuration in which a core executing the processing of the synchronous task is dynamically switched to prevent the processing load of only one of the cores from becoming excessive. For example, when core C1 is executing the processing of the synchronous task and the processing load on core C1 becomes excessive, a core executing the processing of the synchronous task is switched from core C1 to core C2.

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 10 bis 13 sind Zeitverlaufsdiagramme, die jeweils den Ablauf einer in einer elektronischen Steuereinheit gemäß einem Vergleichsbeispiel (konventionelles Beispiel) der Erfindung ausgeführten Umschaltverarbeitung darstellen. Die Hardwarekonfiguration der konventionellen elektronischen Steuereinheit ist dieselbe wie die Hardwarekonfiguration der in 1 dargestellten elektronischen Steuereinheit 10.Before describing a specific embodiment of the switching processing performed in the present embodiment and an advantage thereof, an embodiment of the conventional switching processing will be described. 10 to 13 are timing charts each illustrating the flow of switching processing executed in an electronic control unit according to a comparative example (conventional example) of the invention. The hardware configuration of the conventional electronic control unit is the same as the hardware configuration of the 1 shown electronic control unit 10.

Nachstehend erfolgt eine Beschreibung unter Bezugnahme auf 10. 10 stellt ein Beispiel dar, in welchem die Umschaltverarbeitung zu einer Zeit t125 ausgeführt wird, um einen Synchronaufgabenausführungskern von dem Kern C1 auf den Kern C2 umzuschalten.The following is a description with reference to 10 . 10 illustrates an example in which the switching processing is executed at a time t125 to switch a synchronous task execution core from the core C1 to the core C2.

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 internal combustion engine 20 to the electronic control unit, i.e., in the phase of the crankshaft rotation angle (hereinafter referred to as a "sensor phase"). More specifically, the synchronous task is executed in the synchronous task execution core every 30° increase in the sensor phase to 60°, 90°, and 150°. The sensor phase returns to 0° when the sensor phase has increased to 720° and increases again by 30° as the operation of the internal combustion engine 20 progresses.

In dem Beispiel von 10 beginnt der Kern C1, welcher vor der Zeit t125 als der Synchronaufgabenausführungskern dient, die Verarbeitung der synchronen Aufgabe zu einer Zeit t110, nachdem die Sensorphase 90° zu wird. Der Zeitpunkt, zu dem die Sensorphase zu 90° wird, und der Zeitpunkt des Beginnens der Verarbeitung der synchronen Aufgabe (Zeit t110) stimmen nicht notwendigerweise miteinander überein. Eine derartige Zeitpunktinkonsistenz wird durch eine geringfügige Verzögerung bzw. Verspätung in dem Zeitverhalten des Beginnens der Verarbeitung der synchronen Aufgabe aufgrund der Verarbeitung einer anderen Aufgabe als der synchronen Aufgabe, die durch den Kern C1 durchgeführt wird, verursacht. Eine Zeit zwischen dann, wenn die Sensorphase zu 90° wird, und dann, wenn die Verarbeitung der synchronen Aufgabe begonnen wird, ändert sich in Abhängigkeit von einer Verarbeitungslast auf den Synchronaufgabenausführungskern.In the example of 10 the core C1 begins, which before the time t125 acts as the synchronous task The synchronous task execution core is used to start processing the synchronous task at a time t110 after the sensor phase becomes 90°. The time at which the sensor phase becomes 90° and the time at which processing of the synchronous task starts (time t110) do not necessarily coincide with each other. Such timing inconsistency is caused by a slight delay in the timing of starting processing of the synchronous task due to the processing of a task other than the synchronous task being performed by the core C1. A time between when the sensor phase becomes 90° and when processing of the synchronous task starts changes depending on a processing load on the synchronous task execution core.

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 10 dargestellte Zeit t130 gibt eine Zeit an, zu der die Ausführung einer synchronen Aufgabe entsprechend zu der 120° Sensorphase begonnen wird, falls sich der Kern C1 in dem Ausführungszustand befindet.When the sensor phase becomes 120° after time t125, core C1 is in the non-execution state. Therefore, core C1 does not start processing the synchronous task. 10 The time t130 shown indicates a time at which the execution of a synchronous task corresponding to the 120° sensor phase is started if the core C1 is in the execution state.

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 10 dargestellte Zeit t120 gibt eine Zeit an, zu der der Kern C2 die Ausführung einer synchronen Aufgabe entsprechend zu der 90° Sensorphase beginnt, falls sich der Kern C2 in dem Ausführungszustand befindet.Core C2 does not serve as the synchronous task execution core and is therefore in the non-execution state before time t125. Therefore, even if the sensor phase becomes 90°, core C2 does not start processing the synchronous task. 10 The time t120 shown indicates a time at which the core C2 starts executing a synchronous task corresponding to the 90° sensor phase if the core C2 is in the execution state.

Wie in 10 dargestellt, stimmen die Zeit t110 und die Zeit t120 nicht miteinander überein. Dies ist deshalb so, weil eine Zeit zwischen dann, wenn die Sensorphase zu 90° wird, und dann, wenn die Verarbeitung der synchronen Aufgabe begonnen wird, sich in Abhängigkeit von der Verarbeitungslast auf jeden der Kerne C1 und C2 ändert. 10 zeigt ein Beispiel, in welchem die Zeit t120 dann, wenn der Kern C2 die Verarbeitung beginnt, nach der Zeit t110 auftritt, zu der der Kern C1 die Verarbeitung beginnt. Die Vorher-Nachher-Beziehung kann jedoch in Abhängigkeit von der Verarbeitungslast auf den Kern C1 und die Verarbeitungslast auf den Kern C2 umgekehrt sein.As in 10 As shown, time t110 and time t120 do not coincide with each other. This is because a time between when the sensor phase becomes 90° and when processing of the synchronous task begins changes depending on the processing load on each of the cores C1 and C2. 10 shows an example in which the time t120 when core C2 starts processing occurs after the time t110 when core C1 starts processing. However, the before-and-after relationship may be reversed depending on the processing load on core C1 and the processing load on core C2.

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 10 tritt die Zeit t140 nach der Zeit t130 auf.Core C0 executes the switching processing at time t125 after time t120. When the sensor phase becomes 120° after time t125, core C2 is in the execution state. Consequently, core C2 starts processing the synchronous task corresponding to the 120° sensor phase (time t140). In the example of 10 the time t140 occurs after the time t130.

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 electronic control unit 10 normally controls the internal combustion engine 20 similarly to a case where no switching processing has been performed.

Ein weiteres Beispiel wird nachstehend unter Bezugnahme auf 11 beschrieben. Das Beispiel von 11 unterscheidet sich von dem Beispiel von 10 darin, dass ein Zeitpunkt des Durchführens der Umschaltverarbeitung eine Zeit t135 ist, welche nach der Zeit t130 und vor der Zeit t140 auftritt.Another example is given below with reference to 11 described. The example of 11 differs from the example of 10 in that a timing of performing the switching processing is a time t135 which occurs after the time t130 and before the time t140.

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 internal combustion engine 20 due to the double transmission of a drive signal to the internal combustion engine 20.

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 12 beschrieben. 12 stellt ein Beispiel dar, in welchem die Umschaltverarbeitung zu einer Zeit t126 ausgeführt wird, um den Synchronaufgabenausführungskern von dem Kern C1 auf den Kern C2 umzuschalten.The switching processing of the electronic control unit in accordance with a comparative example of the invention will be continued with reference to 12 described. 12 illustrates an example in which the switching processing is executed at a time t126 to switch the synchronous task execution core from the core C1 to the core C2.

Eine in 12 dargestellte Zeit t121 gibt eine Zeit an, zu der der Kern C1 die Verarbeitung der synchronen Aufgabe entsprechend zu der 90° Sensorphase beginnt. Eine in 12 dargestellte Zeit t111 gibt eine Zeit an, zu der der Kern C2 die Verarbeitung der synchronen Aufgabe entsprechend zu der 90° Sensorphase beginnt, falls sich der Kern C2 in dem Ausführungszustand befindet. In dem Beispiel von 12 tritt die Zeit t121 nach der Zeit t111 auf.One in 12 Time t121 shown indicates a time at which the core C1 starts processing the synchronous task corresponding to the 90° sensor phase. A 12 The time t111 shown indicates a time at which the core C2 starts processing the synchronous task corresponding to the 90° sensor phase if the core C2 is in the execution state. In the example of 12 the time t121 occurs after the time t111.

Ähnlich dazu gibt eine in 12 dargestellte Zeit t131 eine Zeit an, zu der der Kern C2 die Verarbeitung der synchronen Aufgabe entsprechend zu der 120° Sensorphase beginnt. Eine in 12 dargestellte Zeit t141 gibt eine Zeit an, zu der der Kern C1 die Verarbeitung der synchronen Aufgabe entsprechend zu der 120° Sensorphase beginnt, falls sich der Kern C1 in dem Ausführungszustand befindet. In dem Beispiel von 12 tritt die Zeit t141 nach der Zeit t131 auf.Similarly, there is a 12 The time t131 shown in the figure indicates a time at which the core C2 starts processing the synchronous task corresponding to the 120° sensor phase. 12 The time t141 shown indicates a time at which the core C1 starts processing the synchronous task corresponding to the 120° sensor phase if the core C1 is in the execution state. In the example of 12 the time t141 occurs after the time t131.

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 electronic control unit 10 controls the internal combustion engine 20 normally.

Ein weiteres Beispiel wird nachstehend unter Bezugnahme auf 13 beschrieben. Das Beispiel von 13 unterscheidet sich von dem Beispiel von 12 darin, dass ein Zeitpunkt des Ausführens der Umschaltverarbeitung eine Zeit t136 ist, welche nach der Zeit t131 und vor der Zeit t141 auftritt.Another example is given below with reference to 13 described. The example of 13 differs from the example of 12 in that a time point of executing the switching processing is a time t136 which occurs after the time t131 and before the time t141.

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 internal combustion engine 20. Therefore, a certain error may occur in the control of the internal combustion engine 20.

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 2 und 3 beschrieben.The invention makes it possible to perform switching processing while reliably preventing duplication of processing and missing processing. An outline of the switching processing in the present embodiment will be described below with reference to FIG. 2 and 3 described.

2 ist ein Zeitverlaufsdiagramm, das den Ablauf der in der elektronischen Steuereinheit 10 ausgeführten Umschaltverarbeitung darstellt. Ein Zustand des RAM 130 ist schematisch in dem oberen Teil des Zeitverlaufsdiagramms dargestellt. 2 is a timing chart illustrating the flow of switching processing executed in the electronic control unit 10. A state of the RAM 130 is schematically illustrated in the upper part of the timing chart.

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 10 bis 13 beschriebenen Vergleichsbeispiele. D.h., dass auch in dem vorliegenden Ausführungsbeispiel die synchrone Aufgabe in dem Synchronaufgabenausführungskern bei jeweils 30° Zunahme in der Sensorphase auf 60°, 90°, 120° und 150° ausgeführt wird.The timing of executing a synchronous task in the present embodiment is the same as the timing in the above-mentioned embodiments with reference to the 10 to 13 described comparative examples. This means that in the present embodiment, the synchronous task in the synchronous task execution core is also executed at 60°, 90°, 120°, and 150° with each 30° increase in the sensor phase.

2 stellt ein Beispiel dar, in welchem die Umschaltverarbeitung zu einer Zeit t35 ausgeführt wird, um den Synchronaufgabenausführungskern von dem Kern C1 auf den Kern C2 umzuschalten. Der Kern C1, welcher als der Synchronaufgabenausführungskern vor der Zeit t35 dient, beginnt die Verarbeitung der synchronen Aufgabe zu einer Zeit t10, nachdem die Sensorphase zu 90° wird. Der Zeitpunkt, zu der die Sensorphase zu 90° wird, und der Zeitpunkt des Beginnens der Verarbeitung der synchronen Aufgabe stimmen aufgrund der bereits in den Vergleichsbeispielen beschriebenen Gründe nicht notwendigerweise miteinander überein. 2 Figure 3 illustrates an example in which switching processing is executed at time t35 to switch the synchronous task execution core from core C1 to core C2. Core C1, which serves as the synchronous task execution core before time t35, starts processing the synchronous task at time t10 after the sensor phase becomes 90°. The timing at which the sensor phase becomes 90° and the timing at which processing of the synchronous task starts do not necessarily coincide with each other due to the reasons already described in the comparative examples.

Die erste Speichereinheit 131 des RAM 130 speichert einen Wert (Kernnummer), der den Synchronaufgabenausführungskern angibt. In dem Beispiel von 2 wird „1“, welches ein den Kern C1 anzeigender Wert ist, in der ersten Speichereinheit 130 in einer Zeitspanne vor der Zeit t 35 gespeichert. In einer Zeitspanne nach der Zeit t35 wird „2“, welches ein den Kern 2 anzeigender Wert ist, in der ersten Speichereinheit 131 gespeichert.The first storage unit 131 of the RAM 130 stores a value (core number) indicating the synchronous task execution core. In the example of 2 "1", which is a value indicative of the core C1, is stored in the first storage unit 130 in a period before time t 35. In a period after time t 35, "2", which is a value indicative of the core 2, is stored in the first storage unit 131.

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 2 tritt die Zeit t35, zu der die Umschaltverarbeitung durchgeführt wird, nach der Zeit t30 auf, zu der der Kern C1 die Verarbeitung der synchronen Aufgabe beginnt.When the sensor phase changes from 90° to 120° after time t10, the core C1 starts processing a synchronous task corresponding to 120° sensor phase (time t30). In the example of 2 the time t35 at which the switch processing is performed occurs after the time t30 at which the core C1 starts processing the synchronous task.

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 first storage unit 131. For example, when the synchronous task execution core is changed from the core C1 to the core C2, the core number stored in the first storage unit 131 is rewritten from 1 to 2.

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 second storage unit 132 simultaneously with rewriting the core number stored in the first storage unit 131. The "switching phase" is a phase indicating a timing at which a state (an execution state or a non-execution state) of each of the cores is to be switched. That is, the switching (change) of the synchronous task execution core is performed not at time t35, which is the timing of the execution of the switching processing, but at the timing when the sensor phase coincides with the switching phase stored in the second storage unit 132.

In dem Beispiel von 2 wird die in der ersten Speichereinheit 131 gespeicherte Kernnummer zu der Zeit t35 von 1 auf 2 umgeschrieben bzw. neu geschrieben. Ferner wird ein Wert der in der zweiten Speichereinheit 132 gespeicherten Umschaltphase auf 150° umgeschrieben bzw. neu geschrieben.In the example of 2 At time t35, the core number stored in the first storage unit 131 is rewritten from 1 to 2. Furthermore, a value of the switching phase stored in the second storage unit 132 is rewritten to 150°.

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 first storage unit 131 before executing the processing of the synchronous task. each of the cores also refers to the switching phase stored in the second memory unit 132.

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 first storage unit 131 remains unchanged at 1. Therefore, the core C1 remains in the execution state even after time t30 and starts processing the synchronous task at time t30.

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 first storage unit 131. However, since the core C1 is already executing or was in the process of executing the synchronous task processing, the processing continues to be executed without being interrupted.

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 first storage unit 131 and the switching phase stored in second storage unit 132 (time t50). At time t50, the core number stored in first storage unit 131 is 2, and therefore does not match the value (1) indicating core C1.

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 second storage unit 132 is 150° and thus coincides with the sensor phase at time t50. Therefore, the core C1 is switched from the execution state to the non-execution state at time t50 and does not start processing the synchronous task at time t50.

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 2 dargestellte Zeit t20 gibt eine Zeit an, zu der der Kern C2 die Ausführung einer synchronen Aufgabe entsprechend zu der 90° Sensorphase beginnt, falls sich der Kern C2 in dem Ausführungszustand befindet.Core C2 does not serve as the synchronous task execution core and is therefore in the non-execution state before time t35. Therefore, even if the sensor phase becomes 90°, core C2 does not start processing the synchronous task. 2 The time t20 shown indicates a time at which the core C2 starts executing a synchronous task corresponding to the 90° sensor phase if the core C2 is in the execution state.

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 2 tritt die Zeit t40 nach der Zeit t35 auf, wenn die Umschaltverarbeitung ausgeführt wird.The core C0 executes the switching processing at time t35 after time t20. When the sensor phase becomes 120°, the core C2 refers to the core number stored in the first storage unit 131 and the switching phase stored in the second storage unit 132 (time t40). In the example of 2 time t40 occurs after time t35 when switching processing is executed.

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 first storage unit 131 is 2 and thus coincides with the number corresponding to the core C2. However, the switching phase stored in the second storage unit 132 is 150° and thus does not coincide with a sensor phase (120°) at time t40.

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 first storage unit 131 and the switching phase stored in second storage unit 132 (time t60). At time t60, the core number stored in first storage unit 131 is 2 and thus coincides with the value (2) indicating core C2. Further, the switching phase stored in second storage unit 132 is 150° and thus coincides with the sensor phase (150°) at time t60. Therefore, core C2 is switched from the non-execution state to the execution state at time t60 and starts processing the synchronous task at time t60.

In dem in 2 dargestellten Beispiel wird die Umschaltverarbeitung zu der Zeit t35 zwischen der Zeit t30, zu der der Kern C1 die Verarbeitung der synchronen Aufgabe entsprechend zu der 120° Sensorphase beginnt, und der Zeit t40, zu der der Kern C2 die Verarbeitung der synchronen Aufgabe entsprechend zu der 120° Sensorphase beginnt, ausgeführt. D.h., die Umschaltverarbeitung wird zu demselben Zeitpunkt wie demjenigen in dem unter Bezugnahme auf 11 beschriebenen Vergleichsbeispiel ausgeführt.In the 2 In the example shown, the switching processing is executed at time t35 between time t30 at which the core C1 starts processing the synchronous task corresponding to the 120° sensor phase and time t40 at which the core C2 starts processing the synchronous task corresponding to the 120° sensor phase. That is, the switching processing is executed at the same time as that in the example shown with reference to 11 described comparative example.

Die Duplizierung der Verarbeitung, wie sie in dem Fall der 11 auftritt, tritt in dem vorliegenden Ausführungsbeispiel jedoch nicht auf, und die Verarbeitung der 120° entsprechenden synchronen Aufgabe wird nur in dem Kern C1 begonnen.The duplication of processing, as in the case of 11 However, this does not occur in the present embodiment, and the processing of the synchronous task corresponding to 120° is started only in the core C1.

3 ist ebenfalls ein Zeitverlaufsdiagramm, das den Ablauf der Umschaltverarbeitung, die in der elektronischen Steuereinheit 10 ausgeführt wird, darstellt. Ähnlich zu dem Fall der 2 ist ein Zustand des RAM 130 schematisch in dem oberen Teil des Zeitverlauf Diagramms dargestellt. 3 is also a timing chart showing the flow of switching processing executed in the electronic control unit 10. Similar to the case of 2 A state of the RAM 130 is schematically shown in the upper part of the timing diagram.

3 stellt ein Beispiel dar, in welchem die Umschaltverarbeitung zu einer Zeit t16 ausgeführt wird, um den Synchronaufgabenausführungskern von dem Kern C1 auf den Kern C2 umzuschalten. Zu der Zeit t16 wird die in der ersten Speichereinheit 131 gespeicherte Kernnummer von 1 auf 2 umgeschrieben bzw. neu geschrieben. Ferner wird die in der zweiten Speichereinheit 132 gespeicherte Umschaltphase auf 120° umgeschrieben bzw. neu geschrieben. 3 1 illustrates an example in which switching processing is executed at time t16 to switch the synchronous task execution core from core C1 to core C2. At time t16, the core number stored in the first storage unit 131 is rewritten from 1 to 2. Further, the switching phase stored in the second storage unit 132 is rewritten to 120°.

Eine in 3 dargestellte Zeit t21 gibt eine Zeit an, zu der der Kern C1 die Verarbeitung der synchronen Aufgabe entsprechend zu der 90° Sensorphase beginnt. One in 3 The time t21 shown indicates a time at which the core C1 starts processing the synchronous task corresponding to the 90° sensor phase.

Eine in 3 dargestellte Zeit t11 gibt eine Zeit an, zu der der Kern C2 die Verarbeitung der synchronen Aufgabe entsprechend zu der 90° Sensorphase beginnt, falls sich der Kern C2 in dem Ausführungszustand befindet. In dem Beispiel von 3 tritt die Zeit t21 nach der Zeit t11 auf. Die Zeit t16, zu der die Umschaltverarbeitung ausgeführt wird, tritt nach der Zeit t11 und vor der Zeit t21 auf.One in 3 The time t11 shown indicates a time at which the core C2 starts processing the synchronous task corresponding to the 90° sensor phase if the core C2 is in the execution state. In the example of 3 Time t21 occurs after time t11. Time t16, at which the switching processing is executed, occurs after time t11 and before time t21.

Ähnlich dazu gibt eine in 3 dargestellte Zeit t31 eine Zeit an, zu der der Kern C2 die Verarbeitung der synchronen Aufgabe entsprechend zu der 120° Sensorphase beginnt. Eine in 3 dargestellte Zeit t41 gibt eine Zeit an, zu der der Kern C1 die Ausführung der synchronen Aufgabe entsprechend zu der 120° Sensorphase beginnt, falls sich der Kern C1 in dem Ausführungszustand befindet. In dem Beispiel von 3 tritt die Zeit t41 nach der Zeit t31 auf.Similarly, there is a 3 The time t31 shown in the figure indicates a time at which the core C2 starts processing the synchronous task corresponding to the 120° sensor phase. 3 The time t41 shown indicates a time at which the core C1 starts the execution of the synchronous task corresponding to the 120° sensor phase if the core C1 is in the execution state. In the example of 3 time t41 occurs after time t31.

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 first storage unit 131 and the switching phase stored in the second storage unit 132 (time t21).

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 first storage unit 131 is 2 and thus does not match the number corresponding to the core C1. Therefore, the core C1 does not serve as the synchronous task execution core thereafter and is switched from the execution state to the non-execution state.

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 second storage unit 132 is 120° and thus does not match the sensor phase (90°) at time t21. Therefore, the core C1 is not switched to the non-execution state at time t21 and remains in the execution state thereafter. Consequently, the core C1 starts processing the synchronous task at time t21 when the sensor phase is 90°.

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 first storage unit 131 and the switching phase stored in second storage unit 132 (time t41). At time t41, the core number stored in first storage unit 131 is 2 and therefore does not match the value (1) indicating core C1.

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 second storage unit 132 is 120° and thus coincides with the sensor phase at time t41. Therefore, the core is switched from the execution state to the non-execution state at time t41 and does not start processing the synchronous task at time t41.

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 first storage unit 131 and the switching phase stored in the second storage unit 132. At time t11, the core number stored in the first storage unit 131 is 1 and therefore does not match the value (2) indicating core 2. Consequently, core C2, which had been in the non-execution state, remains in the non-execution state even after time t11. Core C2 does not start processing the synchronous task at time t11.

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 first storage unit 131 and the switching phase stored in the second storage unit 132 (time t31). At time t31, the core number stored in the first storage unit 131 is 2 and thus coincides with the value (2) indicating the core C2.

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 second storage unit 132 is 120° and thus coincides with the sensor phase at time t31. Therefore, the core C2 is switched from the non-execution state to the execution state and starts processing the synchronous task at time t31.

In dem in 3 dargestellten Beispiel wird die Umschaltverarbeitung zu der Zeit t16 zwischen der Zeit t11, zu der der Kern C2 die Verarbeitung der synchronen Aufgabe entsprechend zu der 90° Phase beginnt, und der Zeit t21, wenn der Kern C1 die Verarbeitung der synchronen Aufgabe entsprechend zu der 90° Phase beginnt, ausgeführt. D.h., die Umschaltverarbeitung wird zu demselben Zeitpunkt wie demjenigen in dem unter Bezugnahme auf 13 beschriebenen Vergleichsbeispiel ausgeführt.In the 3 In the example shown, the switching processing is performed at time t16 between time t11 when core C2 starts processing the synchronous task corresponding to the 90° phase and time t21 when core C1 the processing of the synchronous task corresponding to the 90° phase begins. That is, the switching processing is executed at the same time as that in the 13 described comparative example.

In dem vorliegenden Ausführungsbeispiel tritt jedoch das Fehlen der Verarbeitung, wie es in dem Fall der 13 auftritt, nicht auf, und wird die Verarbeitung der synchronen Aufgabe entsprechend zu 90° in dem Kern C1 begonnen.However, in the present embodiment, the lack of processing occurs as in the case of 13 does not occur, and the processing of the synchronous task is started accordingly at 90° in the core C1.

Einzelheiten der in der elektronischen Steuereinheit 10 ausgeführten Verarbeitung werden nachstehend unter Bezugnahme auf 4 beschrieben. Eine Reihe von in 4 dargestellten Verarbeitungsschritten wird in dem Kern C0 des Mikrocomputers 100 zu jeder vorbestimmten Zeitspanne wiederholt ausgeführt. Die Verarbeitung kann in entweder dem Kern C1 oder dem Kern C2 gleichzeitig mit der Verarbeitung von zum Beispiel einer synchronen Aufgabe ausgeführt werden.Details of the processing performed in the electronic control unit 10 will be described below with reference to 4 described. A number of 4 The processing steps shown are repeatedly executed in the core C0 of the microcomputer 100 at every predetermined period of time. The processing can be executed in either the core C1 or the core C2 concurrently with the processing of, for example, a synchronous task.

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 5 beschrieben.In the first step S01, the necessity of switching processing is determined. That is, it is determined whether there is an imbalance in the processing load between the core C1 and the core C2. The determination is made with reference to 5 described.

5 stellt Beispiele einer Verarbeitungslast auf einen einzelnen Kern (zum Beispiel den Kern C1) dar, wenn die elektronische Steuereinheit 10 die Brennkraftmaschine 20 steuert. Spezieller stellt 5 Beispiele der Proportion bzw. des Anteils einer Zeit PT1, während welcher eine andere Verarbeitung als die Verarbeitung der synchronen Aufgabe durchgeführt wird, einer Zeit PT2, während welcher die Verarbeitung der synchronen Aufgabe ausgeführt wird, und einer Leerlaufzeit DT, während welcher keine Verarbeitung ausgeführt wird, in einer vorbestimmten Zeit dar. 5 shows examples of a processing load on a single core (for example, the core C1) when the electronic control unit 10 controls the internal combustion engine 20. More specifically, 5 Examples of the proportion of a time PT1 during which processing other than the processing of the synchronous task is performed, a time PT2 during which the processing of the synchronous task is performed, and an idle time DT during which no processing is performed, in a predetermined time.

In einem Beispiel von (A) in 5 ist die Summe der Zeit PT1 und der Zeit PT2, d.h. eine Gesamtzeit, während welcher irgendeine Verarbeitung in dem Kern durchgeführt wird, relativ kurz. Der Anteil der Summe der Zeit PT1 und der Zeit PT2 in der vorbestimmten Zeit ist kleiner als ein Schwellenwert TH. D.h., eine Verarbeitungslast auf den Kern ist relativ klein. Daher kann der Kern noch immer zusätzliche Verarbeitung durchführen.In an example of (A) in 5 The sum of the time PT1 and the time PT2, i.e., a total time during which any processing is performed in the core, is relatively short. The proportion of the sum of the time PT1 and the time PT2 in the predetermined time is smaller than a threshold TH. That is, a processing load on the core is relatively small. Therefore, the core can still perform additional processing.

Andererseits überschreitet in einem Beispiel von (B) in 5 die Summe der Zeit PT1 und der Zeit PT2 den Schwellenwert TH. D.h., eine Verarbeitungslast auf den Kern ist relativ groß. Daher befindet sich der Kern nahe an seiner Verarbeitungskapazitätsgrenze.On the other hand, in an example of (B) in 5 The sum of the time PT1 and the time PT2 exceeds the threshold TH. This means that the processing load on the core is relatively large. Therefore, the core is close to its processing capacity limit.

Auf 4 Rückbezug nehmend, wird in Schritt S01 die Umschaltverarbeitung nur dann als notwendig ermittelt, wenn der Anteil der Summe der Zeit PT1 und der Zeit PT2 in der vorbestimmten Zeit den Schwellenwert TH überschreitet. In anderen Worten wird die Umschaltverarbeitung nur dann als notwendig ermittelt, wenn der Anteil der Leerlaufzeit DT in der vorbestimmten Zeit kleiner ist als ein Schwellenwert (ein Wert, der durch Subtrahieren des Schwellenwerts TH von 100 % erhalten wird).On 4 Referring back, in step S01, the switching processing is determined to be necessary only when the proportion of the sum of the time PT1 and the time PT2 in the predetermined time exceeds the threshold TH. In other words, the switching processing is determined to be necessary only when the proportion of the idle time DT in the predetermined time is smaller than a threshold (a value obtained by subtracting the threshold TH from 100%).

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 4 dargestellt sind, beendet. Andererseits erfolgt dann, wenn die Umschaltverarbeitung als notwendig ermittelt wird, ein Fortschreiten zu Schritt S02. In Schritt S02 wird die Kernnummer (Ausführungskernnummer) eines Kerns, der die synchrone Aufgabe nach der Umschaltverarbeitung ausführt, ermittelt.If the switching processing in step S01 is determined to be unnecessary, the series of processing steps shown in 4 are terminated. On the other hand, if the switching processing is determined to be necessary, the process proceeds to step S02. In step S02, the core number (execution core number) of a core that executes the synchronous task after the switching processing is determined.

Ein Verfahren zum Ermitteln einer neuen Ausführungskernnummer nach der Umschaltverarbeitung wird unter Bezugnahme auf die 6 und 7 beschrieben. Die 6 und 7 stellen Beispiele von Verarbeitungslasten auf den Kern C1 und den Kern C2 dar, wenn die elektronische Steuereinheit 10 die Brennkraftmaschine 20 steuert. Ähnlich zu 5 stellen die 6 und 7 Beispiele des Anteils der Zeit PT1, während welcher eine andere Verarbeitung als die Verarbeitung der synchronen Aufgabe durchgeführt wird, der Zeit PT2, während welcher die Verarbeitung der synchronen Aufgabe durchgeführt wird, und der Leerlaufzeit DT, während welcher keine Verarbeitung durchgeführt wird, in einer vorbestimmten Zeit dar.A method for determining a new execution kernel number after the switch processing will be described with reference to 6 and 7 described. The 6 and 7 represent examples of processing loads on the core C1 and the core C2 when the electronic control unit 10 controls the internal combustion engine 20. Similar to 5 represent the 6 and 7 Examples of the proportion of time PT1 during which processing other than the processing of the synchronous task is performed, the time PT2 during which the processing of the synchronous task is performed, and the idle time DT during which no processing is performed in a predetermined time.

In den Beispielen der 6 und 7 dient der Kern C1 als der Synchronaufgabenausführungskern. Daher hat der Kern C1 die Zeit PT1, die Zeit PT2 und die Leerlaufzeit DT. Andererseits dient der Kern C2 nicht als der Synchronaufgabenausführungskern. Daher hat der Kern C2 keine Zeit PT2, während welcher die Verarbeitung der synchronen Aufgabe ausgeführt wird.In the examples of 6 and 7 Core C1 serves as the synchronous task execution core. Therefore, core C1 has the time PT1, the time PT2, and the idle time DT. On the other hand, core C2 does not serve as the synchronous task execution core. Therefore, core C2 does not have the time PT2 during which the synchronous task processing is executed.

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 6 ist die Gesamtzeit T2 in dem Kern C2 länger als die Gesamtzeit T1 in dem Kern C1.The sum of the time PT2 and the idle time DT within the predetermined time is defined as a "total time." A total time T1 in the core C1 is the sum of the time PT2 and the idle time DT. On the other hand, since there is no time PP2 in the core C2, a total time T2 in the core C2 is equal to the idle time DT. In the example of 6 the total time T2 in the core C2 is longer than the total time T1 in the core C1.

Auf 4 Rückbezug nehmend, werden in Schritt S02 die Gesamtzeit T1 in dem Kern C1 und die Gesamtzeit T2 in den Kern C2 berechnet, und wird eine Kernnummer, die einen Kern (den Kern 2 in dem Beispiel von 6) entsprechend der längeren Gesamtzeit angibt, als die neue Ausführungskernnummer definiert.On 4 Referring back, in step S02, the total time T1 in the core C1 and the total time T2 in the core C2 are calculated, and a core number indicating a core (the core 2 in the example of 6 ) corresponding to the longer total time than the new execution kernel number defines.

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 7 dargestellten Beispiel, ist ein der längeren Gesamtzeit entsprechender Kern der Kern C1, welcher als der Synchronaufgabenausführungskern dient. In dieser Weise verbleibt die Ausführungskernnummer unverändert, wenn die Leerlaufzeit DT in dem Synchronaufgabenausführungskern durch eine Änderung der Ausführungskernnummer verkürzt wird.If the total time T1 is longer than the total time T2, as in the 7 In the example shown, a core corresponding to the longer total time is core C1, which serves as the synchronous task execution core. Thus, if the idle time DT in the synchronous task execution core is shortened by changing the execution core number, the execution core number remains unchanged.

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 4 dargestellte Reihe von Verarbeitungsschritten beendet. Wenn sich die Ausführungskernnummer ändert, erfolgt ein Fortschreiten zu Schritt S04.If the execution kernel number remains unchanged, the switch processing is unnecessary. Therefore, the 4 The series of processing steps shown is terminated. If the execution kernel number changes, the program proceeds to step S04.

In Schritt S04 wird die Umschaltphase ermittelt. Die Umschaltphase wird auf der Grundlage einer Phase zu der Zeit, zu der die Verarbeitung von 4 durchgeführt wird, ermittelt. Spezieller wird eine Phase (in diesem Fall 120°), bei welcher eine rotationssynchrone Aufgabe nächst zu der gegenwärtigen Sensorphase (zum Beispiel 90°) ausgeführt wird, als die Umschaltphase ermittelt.In step S04, the switching phase is determined. The switching phase is determined based on a phase at the time when the processing of 4 is performed. More specifically, a phase (in this case 120°) at which a rotation-synchronous task is performed closest to the current sensor phase (e.g., 90°) is determined as the switching phase.

Ein Beispiel eines Ausdrucks zum Ermitteln der Umschaltphase (Pn) in der vorstehenden Weise beinhaltet den folgenden Ausdruck (1). Pn = ( ( ( Pc/ 30 ) + 1 ) % 24 ) × 30

Figure DE102016203418B4_0001
in dem Ausdruck (1) bezeichnet Pc die gegenwärtige Sensorphase, ist „/“ ein Operator zum Berechnen eines Quotienten, und ist „%“ ein Operator zum Berechnen eines Rests.An example of an expression for determining the switching phase (Pn) in the above manner includes the following expression (1). Pn = ( ( ( Pc/ 30 ) + 1 ) % 24 ) × 30
Figure DE102016203418B4_0001
In the expression (1), Pc denotes the current sensor phase, “/” is an operator for calculating a quotient, and “%” is an operator for calculating a remainder.

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 second memory unit 132. In step S06 following step S05, the execution kernel number determined in step S02 is written to the first memory unit 131.

Der in dem Kern C1 und dem Kern C2 ausgeführte Verarbeitungsablauf wird nachstehend unter Bezugnahme auf 8 beschrieben. Die in 8 dargestellte Verarbeitung wird bei jeder 30°-Änderung in der Sensorphase in jedem der Kerne C1 und C2 wiederholt ausgeführt. Der Zeitpunkt, zu dem sich die Sensorphase um 30° ändert (der Zeitpunkt, zu dem die Sensorphase zu zum Beispiel 90° wird), und der Zeitpunkt des Beginnens der Verarbeitung von 8 stimmen nicht notwendigerweise miteinander überein. Der Grund hierfür ist wie bereits vorstehend in den Vergleichsbeispielen beschrieben.The processing flow executed in the core C1 and the core C2 will be described below with reference to 8 described. The 8 The processing shown is repeatedly executed at every 30° change in the sensor phase in each of the cores C1 and C2. The time at which the sensor phase changes by 30° (the time at which the sensor phase becomes, for example, 90°) and the time at which the processing of 8 do not necessarily match each other. The reason for this is as described above in the comparative examples.

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 first storage unit 131 is read. In the subsequent step S12, the switching phase stored in the second storage unit 132 is read.

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 first storage unit 131 is a value indicating the kernel, the kernel is switched from the non-execution state to the execution state only when the sensor phase matches the switching phase stored in the second storage unit 132. On the other hand, in the case where the kernel number stored in the first storage unit 131 is not a value indicating the kernel, the kernel is switched from the Execution state is switched to the non-execution state when the sensor phase matches the switching phase stored in the second storage unit 132.

Ein bestimmtes Ermittlungsverfahren in Schritt S13 zum Umschalten eines Zustands in der vorstehenden Weise wird nachstehend unter Bezugnahme auf 9 beschrieben. 9 ist ein Diagramm, das einen Zustandsübergang in jedem der Kerne C1 und C2 darstellt.A specific determination method in step S13 for switching a state in the above manner will be described below with reference to 9 described. 9 is a diagram illustrating a state transition in each of the cores C1 and C2.

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 3, der Kern in dem Ausführungszustand (ST1).The core C1 is described as an example. For example, it is in an initial state before the first switching processing is performed, such as before time t16 in 3 , the core in the execution state (ST1).

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 3 die gelesene Ausführungskernnummer (2) nicht mit der den Kern C1 angebenden Kernnummer (1) überein. Daher ist die erste Hälfte der Bedingung B erfüllt. Die gelesene Umschaltphase (120°) stimmt bei der Zeit t21 jedoch nicht mit der Sensorphase (90°) überein. Daher ist die zweite Hälfte der Bedingung B nicht erfüllt. Folglich wird zu der Zeit t21 der Kern C1 nicht von dem Ausführungszustand (ST1) auf den Nichtausführungszustand (ST2) umgeschaltet.The core C1 is only switched from the execution state (ST1) to the non-execution state (ST2) if condition B is met. For example, at time t21 of 3 The read execution core number (2) does not match the core number (1) indicating core C1. Therefore, the first half of condition B is met. However, the read switching phase (120°) at time t21 does not match the sensor phase (90°). Therefore, the second half of condition B is not met. Consequently, at time t21, core C1 is not switched from the execution state (ST1) to the non-execution state (ST2).

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 2, der Kern C2 in dem Nichtausführungszustand (ST2).The same applies to core C2. For example, it is in an initial state before the first switching processing is performed, such as before time t35 in 2 , the core C2 in the non-execution state (ST2).

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 2 die gelesene Ausführungskernnummer (2) mit der den Kern C2 angebenden Kernnummer (2) überein. Daher ist die erste Hälfte der Bedingung A erfüllt. Die gelesene Umschaltphase (150°) stimmt jedoch nicht mit der Sensorphase (120°) zu der Zeit t40 überein. Daher ist die zweite Hälfte der Bedingung A nicht erfüllt. Folglich wird zu der Zeit t40 der Kern C2 nicht von dem Nichtausführungszustand auf den Ausführungszustand (ST1) umgeschaltet.At a time when the sensor phase changes and a synchronous task is to be executed, the core C2 in the non-execution state determines whether the above condition A is satisfied. The core C2 will only switch from the non-execution state (ST2) to the execution state (ST1) if the condition A is satisfied. For example, at time t40 of 2 The read execution core number (2) matches the core number (2) indicating core C2. Therefore, the first half of condition A is met. However, the read switching phase (150°) does not match the sensor phase (120°) at time t40. Therefore, the second half of condition A is not met. Consequently, at time t40, core C2 is not switched from the non-execution state to the execution state (ST1).

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 8 nehmend, wird in dem auf Schritt S13 folgenden Schritt S14 ermittelt, ob der Kern als ein Ergebnis von Schritt S13 den Ausführungszustand eingenommen hat. Wenn sich der Kern in dem Ausführungszustand befindet, wird die synchrone Aufgabe ausgeführt (Schritt S15). Wenn sich der Kern nicht in dem Ausführungszustand befindet, wird die in 8 dargestellte Verarbeitung beendet, ohne die synchrone Aufgabe auszuführen.Reference to 8 In step S14 following step S13, it is determined whether the core has entered the execution state as a result of step S13. If the core is in the execution state, the synchronous task is executed (step S15). If the core is not in the execution state, the 8 The processing shown ends without executing the synchronous task.

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)

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; und eine 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. Elektronische Steuereinheit nach Anspruch 1, bei der: jeder Kern auf den Aufgabenausführungskern umgeschaltet wird, wenn die in der ersten Speichereinheit gespeicherte Kernnummer den Kern angibt, und eine Phase zu der in der zweiten Speichereinheit gespeicherten Umschaltphase wird.Electronic control unit according to Claim 1 , in which: each core is switched to the task execution core when the core number stored in the first storage unit indicates the core, and a phase becomes the switching phase stored in the second storage unit. Elektronische Steuereinheit nach Anspruch 2, bei der: die in er zweiten Speichereinheit gespeicherte Umschaltphase auf der Grundlage einer Phase zu einem Zeitpunkt dann, wenn die Umschaltphase ermittelt wird, bestimmt wird.Electronic control unit according to Claim 2 , wherein: the switching phase stored in the second storage unit is determined based on a phase at a time when the switching phase is determined. Elektronische Steuereinheit nach Anspruch 3, bei der: die in der zweiten Speichereinheit gespeicherte Umschaltphase eine Phase nach der Phase zu dem Zeitpunkt, zu dem die Umschaltphase ermittelt wird, ist.Electronic control unit according to Claim 3 , wherein: the switching phase stored in the second storage unit is a phase after the phase at the time at which the switching phase is determined. Elektronische Speichereinheit nach Anspruch 4, bei der: die in der zweiten Speichereinheit gespeicherte Umschaltphase eine Phase ist, bei welcher die Aufgabe ausgeführt wird, nächst zu der Phase zu dem Zeitpunkt dann, wenn die Umschaltphase ermittelt wird.Electronic storage unit according to Claim 4 , wherein: the switching phase stored in the second storage unit is a phase at which the task is executed, closest to the phase at the time when the switching phase is determined. Elektronische Steuereinheit nach Anspruch 1, bei der: die in der ersten Speichereinheit gespeicherte Kernnummer auf der Grundlage einer Betriebsverarbeitungslast jedes Kerns während eines vorbestimmten Zeitintervalls ermittelt wird.Electronic control unit according to Claim 1 , wherein: the core number stored in the first storage unit is determined based on an operational processing load of each core during a predetermined time interval. Elektronische Steuereinheit nach Anspruch 6, bei der: der Aufgabenausführungskern wird nur dann auf einen anderen Kern umgeschaltet wird, wenn eine Gesamtleerlaufzeit einer Verarbeitung des Aufgabenausführungskerns während des vorbestimmten Zeitintervalls kleiner ist als ein Schwellenwert.Electronic control unit according to Claim 6 , in which: the task execution core is switched to another core only if a total idle time of processing of the task execution core during the predetermined time interval is less than a threshold. Elektronische Steuereinheit nach Anspruch 6 oder 7, bei der: die Betriebsverarbeitungslast jedes Kerns auf der Grundlage einer ersten Zeit und einer zweiten Zeit berechnet wird; die erste Zeit eine Gesamtzeit ist, in welcher die Aufgabe in dem Kern während des vorbestimmten Zeitintervalls ausgeführt wird; und die zweite Zeit eine Gesamtleerlaufzeit der Verarbeitung des Kerns während des vorbestimmten Zeitintervalls ist.Electronic control unit according to Claim 6 or 7 , wherein: the operational processing load of each core is calculated based on a first time and a second time; the first time is a total time in which the task is executed in the core during the predetermined time interval; and the second time is a total idle time of the processing of the core during the predetermined time interval. Elektronische Steuereinheit nach Anspruch 8, bei der: jeder Kern ein gleiches Leistungsvermögen hat; und die erste Speichereinheit die Kernnummer speichert, die den Kern angibt entsprechend einer längsten einen unter: einer Summe der ersten Zeit und der zweiten Zeit, die in dem Ausgabenausführungskern berechnet wurde; und der zweiten Zeit, die in dem anderen Kern als dem Aufgabenausführungskern berechnet wurde.Electronic control unit according to Claim 8 , in which: each core has an equal performance capability; and the first storage unit stores the core number indicating the core corresponding to a longest one of: a sum of the first time and the second time calculated in the issue execution core; and the second time calculated in the core other than the task execution core.
DE102016203418.9A 2015-03-09 2016-03-02 ELECTRONIC CONTROL UNIT Active DE102016203418B4 (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7476638B2 (en) * 2020-04-15 2024-05-01 株式会社デンソー Multiprocessor Systems

Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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