DE102013217601A1 - Method for emergency operation of a multi-core processor of a control unit of a motor vehicle - Google Patents
Method for emergency operation of a multi-core processor of a control unit of a motor vehicle Download PDFInfo
- Publication number
- DE102013217601A1 DE102013217601A1 DE102013217601.5A DE102013217601A DE102013217601A1 DE 102013217601 A1 DE102013217601 A1 DE 102013217601A1 DE 102013217601 A DE102013217601 A DE 102013217601A DE 102013217601 A1 DE102013217601 A1 DE 102013217601A1
- Authority
- DE
- Germany
- Prior art keywords
- cores
- processes
- assigned
- remaining
- executed
- 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.)
- Withdrawn
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/02—Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
- B60W50/023—Avoiding failures by using redundant parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2035—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2043—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W2050/0001—Details of the control system
- B60W2050/0002—Automatic control, details of type of controller or control system architecture
- B60W2050/0004—In digital systems, e.g. discrete-time systems involving sampling
- B60W2050/0005—Processor details or data handling, e.g. memory registers or chip architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W2050/0001—Details of the control system
- B60W2050/0002—Automatic control, details of type of controller or control system architecture
- B60W2050/0004—In digital systems, e.g. discrete-time systems involving sampling
- B60W2050/0006—Digital architecture hierarchy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/143—Reconfiguring to eliminate the error with loss of software functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2028—Failover techniques eliminating a faulty processor or activating a spare
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Safety Devices In Control Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
Die Erfindung betrifft ein Verfahren zum Notbetrieb eines Multicore-Prozessors (20) eines Steuergeräts (10), insbesondere eines Kraftfahrzeugs, wobei der Multicore-Prozessor mehrere Kerne (21, 22) aufweist, wobei unterschiedliche Prozesse den einzelnen Kernen (21, 22) des Multicore-Prozessors (20) zugewiesen sind und auf diesen zugewiesenen Kernen ausgeführt werden, wobei, wenn mindestens einer der Kerne des Multicore-Prozessors ausfällt, bewertet wird, ob eine Rechenleistung der verbleibenden, nicht ausgefallenen Kerne des Multicore-Prozessors ausreicht, um alle unterschiedlichen Prozesse auszuführen. Wenn die Bewertung ergibt, dass die Rechenleistung der verbleibenden Kerne ausreichend ist, werden alle unterschiedlichen Prozesse den verbleibenden Kernen zugewiesen und auf diesen ausgeführt. Wenn die Bewertung ergibt, dass die Rechenleistung der verbleibenden Kerne nicht ausreichend ist, werden nur bestimmte der unterschiedlichen Prozesse den verbleibenden Kernen zugewiesen und auf diesen ausgeführt.The invention relates to a method for emergency operation of a multicore processor (20) of a control device (10), in particular of a motor vehicle, wherein the multicore processor has a plurality of cores (21, 22), wherein different processes the individual cores (21, 22) of the Multicore processor (20) are assigned and executed on these assigned cores, wherein, if at least one of the cores of the multicore processor fails, it is evaluated whether a computing power of the remaining, non-failed cores of the multicore processor is sufficient to all different ones Execute processes. If the score indicates that the processing power of the remaining cores is sufficient, all the different processes are assigned to and executed on the remaining cores. If the score indicates that the computational power of the remaining cores is insufficient, only certain of the different processes will be assigned to and executed on the remaining cores.
Description
Die vorliegende Erfindung betrifft ein Verfahren zum Notbetrieb eines Multicore-Prozessors eines Steuergeräts eines Kraftfahrzeugs.The present invention relates to a method for emergency operation of a multi-core processor of a control device of a motor vehicle.
Stand der TechnikState of the art
Ein Multicore-Prozessor weist mehrere unterschiedliche Prozessorkerne auf. Diesen einzelnen Kernen des Multicore-Prozessors können während des Betriebs individuell unterschiedliche Prozesse und Tasks zugewiesen sein. Die unterschiedlichen Prozesse und Tasks laufen dabei nur auf den entsprechend zugewiesenen Kernen ab.A multicore processor has several different processor cores. These individual cores of the multicore processor may be assigned individually different processes and tasks during operation. The different processes and tasks only run on the correspondingly assigned cores.
Multicore-Mikroprozessoren bzw. -Mikrocontroller finden immer größere Bedeutung in Echtzeitsystemen, insbesondere in Steuergeräten von Kraftfahrzeugen. Echtzeitsysteme zeichnen sich dadurch aus, dass ein Ergebnis einer Rechenoperation (z.B. Prozess oder Task) innerhalb eines definierten Zeitintervalls garantiert berechnet ist, also vor einer bestimmten Zeitschranke vorliegt. In einem Echtzeitsystem läuft auf dem Prozessor ein sog. Echtzeitbetriebssystem, das die unterschiedlichen Prozesse und Tasks regelt.Multicore microprocessors or microcontrollers are becoming increasingly important in real-time systems, in particular in control units of motor vehicles. Real-time systems are characterized by the fact that a result of an arithmetic operation (for example, process or task) is guaranteed to be calculated within a defined time interval, that is to say present before a certain time limit. In a real-time system, a so-called real-time operating system runs on the processor, which regulates the different processes and tasks.
Beispielsweise kann ein Steuergerät mit einem Echtzeitsystem eine Brennkraftmaschine (sog. Motorsteuergerät), ein Antiblockiersystem oder einen Airbag eines Kraftfahrzeugs steuern. Beispielsweise für ein Antiblockiersystem ist dieses Zeitintervall durch eine Zeit definiert, in welcher Bremsen geöffnet werden müssen, damit das Rad nicht blockiert. Für eine Steuerung des Airbags kann das Steuergerät innerhalb des Zeitintervalls Messwerte von Sensoren verarbeiten und entscheiden, ob und wie stark der Airbag ausgelöst wird. Für die Motorsteuerung müssen beispielsweise Einspritzmengen und Einspritzzeitpunkte rechtzeitig berechnet sein.For example, a control unit with a real-time system can control an internal combustion engine (so-called engine control unit), an antilock brake system or an airbag of a motor vehicle. For example, for an antilock brake system, this time interval is defined by a time in which brakes must be opened so that the wheel does not lock. For controlling the airbag, the control unit can process measured values from sensors within the time interval and decide whether and how strongly the airbag is triggered. For the engine control, for example, injection quantities and injection times must be calculated in good time.
Fällt einer der Kerne des Multicore-Prozessors aus, führt dies zu einem kompletten Ausfall des Steuergeräts und das Kraftfahrzeug kann nicht mehr betrieben werden. If one of the cores of the multicore processor fails, this leads to a complete failure of the control unit and the motor vehicle can no longer be operated.
Es ist daher wünschenswert, eine Möglichkeit bereitzustellen, um einen Multicore-Prozessor eines Steuergeräts eines Kraftfahrzeugs bei einem Ausfall eines oder mehrerer Kerne in einem Notfallbetreib weiterhin betreiben zu können.It is therefore desirable to provide a way to continue to operate a multi-core processor of a control unit of a motor vehicle in case of failure of one or more cores in an emergency operation.
Offenbarung der ErfindungDisclosure of the invention
Erfindungsgemäß wird ein Verfahren zum Notbetrieb eines Multicore-Prozessors eines Steuergeräts eines Kraftfahrzeugs mit den Merkmalen des Patentanspruchs 1 vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.According to the invention, a method for emergency operation of a multi-core processor of a control device of a motor vehicle having the features of patent claim 1 is proposed. Advantageous embodiments are the subject of the dependent claims and the following description.
Im Zuge des erfindungsgemäßen Verfahrens wird, wenn mindestens einer der Kerne des Multicore-Prozessors ausfällt, das Steuergerät in einem Notfallbetrieb weiterhin betrieben. Die Prozesse, welche dem ausgefallenen Kern zugewiesen sind, können auf diesem Kern nicht mehr ausgeführt werden. Des Weiteren besteht die Gefahr, dass gegebenenfalls auch die restlichen Prozesse, die den verbleibenden, nicht ausgefallenen Kernen zugewiesen sind, nicht mehr korrekt ausgeführt werden. Um zu verhindern, dass dies zu einem Ausfall des Steuergeräts und von für das Kraftfahrzeug kritischen und wichtigen Funktionen führt, werden erfindungsgemäß sämtliche unterschiedlichen Prozesse den verbleibenden, nicht ausgefallenen Kernen zugewiesen.In the course of the method according to the invention, if at least one of the cores of the multicore processor fails, the control unit continues to be operated in an emergency mode. The processes assigned to the failed core can no longer be executed on this core. Furthermore, there is a risk that the remaining processes assigned to the remaining, non-failed cores may no longer be executed correctly. In order to prevent this leading to a failure of the control device and of critical and important functions for the motor vehicle, according to the invention all the different processes are assigned to the remaining, non-failed cores.
Im Zuge der Erfindung wird dabei zunächst bewertet, ob eine Rechenleistung der verbleibenden, nicht ausgefallenen Kerne des Multicore-Prozessors noch ausreicht, um alle unterschiedlichen Prozesse auszuführen. Wenn dies der Fall ist, werden alle unterschiedlichen Prozesse den verbleibenden Kernen zugewiesen und auf diesen ausgeführt. In der Regel steht aber nach Ausfall eines oder mehrerer Kerne nicht mehr genügend Rechenleistung zur Verfügung. In diesem Fall wird zusätzlich zu der neuen Zuweisung der Prozesse ein Funktionsumfang der Prozesse reduziert. Im Zuge dessen werden nur bestimmte der unterschiedlichen Prozesse den verbleibenden Kernen zugewiesen werden und auf diesen ausgeführt.In the course of the invention, it is first evaluated whether a computing power of the remaining, non-failed cores of the multicore processor is still sufficient to execute all the different processes. If so, all the different processes are assigned to and executed on the remaining cores. As a rule, however, there is not enough computing power available after one or more cores have failed. In this case, a functional scope of the processes is reduced in addition to the new assignment of the processes. As a result, only certain of the different processes will be assigned to and executed on the remaining cores.
In letzterem Fall werden diejenigen bestimmten Prozesse, welche den verbleibenden Kernen zugewiesen werden, nach Wichtigkeit und Bedeutung für den sicheren Betrieb des Kraftfahrzeugs und für die Sicherheit von Insassen des Kraftfahrzeugs ausgewählt. Den Prozessen ist dabei eine Priorität zugewiesen und die Prozesse werden gemäß der zugewiesenen Priorität ausgeführt. Prozessen, welche für die Sicherheit der Insassen höchste Relevanz besitzen, beispielsweise eine Steuerung von Airbags, wird dabei die höchste Priorität zugewiesen. Prozessen, beispielsweise eine Steuerung eines Antiblockiersystems oder Motorsteuerungen, die zwar für die Sicherheit wichtig, aber nicht von höchster Bedeutung sind, werden mittlere Prioritäten zugewiesen. Niedrigste Priorität wird Prozessen zugewiesen, die nicht essentielle Funktionen wie beispielsweise Fehlerdiagnosen oder Langzeitüberwachungen von Komponenten des Kraftfahrzeugs realisieren oder die für Komfortfunktionen verantwortlich sind, beispielsweise für Entertainmentsysteme. Gegebenenfalls werden Prozesse mit niedrigster Priorität den verbleibenden Kernen überhaupt nicht zugewiesen. Die Prioritäten können insbesondere vom Programmierer der Funktion vorgegeben werden.In the latter case, those particular processes assigned to the remaining cores are selected for importance and importance for the safe operation of the motor vehicle and for the safety of occupants of the motor vehicle. The processes are assigned a priority and the processes are executed according to the assigned priority. Processes that have the highest relevance to the safety of the occupants, such as airbag control, are given the highest priority. Processes, such as control of an antilock brake system or engine controls, which are important but not critical to safety, are assigned medium priorities. Lowest priority is assigned to processes that implement non-essential functions such as fault diagnosis or long-term monitoring of components of the motor vehicle or that are responsible for comfort functions, for example for entertainment systems. Optionally, lowest priority processes are not assigned to the remaining cores at all. The priorities can be specified in particular by the programmer of the function.
Die neuen Zuweisungen der Prozesse zu den verbleibenden Kernen können dabei in dem Steuergerät selbst nach dem Kernausfall durch eine zweckmäßige Software erfolgen. Alternativ können die entsprechenden Zuweisungen auch manuell durch Personen vorgenommen werden, insbesondere vorab, z.B. nach der Herstellung der Software des Steuergeräts. The new allocations of the processes to the remaining cores can take place in the control unit itself after the core failure by a suitable software. Alternatively, the corresponding assignments can also be made manually by persons, in particular in advance, for example after the production of the software of the control unit.
Im Zuge der Erfindung erkennt jeder einzelne der Kerne, wenn einer der Kerne ausgefallen ist. Da jeder der Kerne ausfallen kann, ist es nicht ausreichend, wenn nur einer der Kerne einen möglichen Kernausfall erkennen kann.In the course of the invention, each of the cores recognizes when one of the cores has failed. Since each of the cores can fail, it is not enough if only one of the cores can detect a possible core failure.
Vorteile der ErfindungAdvantages of the invention
Durch das erfindungsgemäße Verfahren kann sichergestellt werden, dass zumindest eine Grundfunktionalität des Multicore-Prozessors bzw. des Steuergeräts gewährleistet ist. Ein Ausfall eines oder mehrerer Kerne führt somit nicht zwangsläufig zu einem Totalausfall des kompletten Multicore-Prozessors und somit des gesamten Steuergeräts. Im Zuge dieser Grundfunktionalität werden die wichtigsten Funktionen und Prozesse aufrechterhalten, es kann weiterhin die Sicherheit der Insassen des Kraftfahrzeugs gewährleistet werden. Sollte ein Ausfall eines oder mehrerer Kerne beispielsweise auf einer Autobahn oder einer vielbefahrenen Bundesstraße ohne Ausweichmöglichkeiten erfolgen, wird durch das erfindungsgemäße Verfahren vermieden, dass das Kraftfahrzeug komplett ausfällt und auf der Autobahn oder der Bundesstraße an einer gefährlichen Stelle zum Stillstand kommt. Es wird somit sichergestellt, dass das Kraftfahrzeug in die nächste Werkstatt gefahren werden kann oder zumindest bis zu einem Parkplatz oder Rastplatz, wo das Kraftfahrzeug sicher abgestellt werden kann.By means of the method according to the invention, it can be ensured that at least one basic functionality of the multicore processor or of the control device is ensured. A failure of one or more cores thus does not necessarily lead to a total failure of the entire multicore processor and thus the entire controller. In the course of this basic functionality, the most important functions and processes are maintained, it can continue to ensure the safety of the occupants of the motor vehicle. If a failure of one or more cores, for example, take place on a highway or a busy main road without evasive options, is avoided by the inventive method that the vehicle fails completely and comes to a standstill on the highway or the main road at a dangerous point. It is thus ensured that the motor vehicle can be driven to the next workshop or at least up to a parking lot or rest area where the vehicle can be safely parked.
Das erfindungsgemäße Verfahren eignet sich besonders für Multicore-Prozessoren eines Echtzeitsystems. Echtzeitsysteme eignen sich insbesondere, um zeitkritische und sicherheitskritische Anwendungen des Kraftfahrzeugs zu steuern bzw. zu regeln, da durch das Echtzeitsysteme garantiert ist, dass ein Ergebnis innerhalb eines definierten Zeitintervalls berechnet ist bzw. ein Prozess innerhalb des definierten Zeitintervalls ausgeführt wird. Diejenigen Prozesse des Echtzeitsystems, welche an dem zeitkritischen bzw. sicheren Betrieb des Kraftfahrzeugs beteiligt sind, werden im Zuge des erfindungsgemäßen Verfahrens den verbleibenden Kernen zugewiesen.The method according to the invention is particularly suitable for multicore processors of a real-time system. Real-time systems are particularly suitable for controlling or regulating time-critical and safety-critical applications of the motor vehicle since it is guaranteed by the real-time systems that a result is calculated within a defined time interval or a process is executed within the defined time interval. Those processes of the real-time system which are involved in the time-critical or safe operation of the motor vehicle are assigned to the remaining cores in the course of the method according to the invention.
Insbesondere wird eine Benachrichtigung beispielsweise an einen Fahrer des Kraftfahrzeugs ausgegeben. Diese Benachrichtigung kann ein Warnsignal, beispielsweise ein akustischer Warnton oder eine Warnanzeige, z.B. in einem Armaturenbereich des Fahrzeugs, sein. Somit kann der Fahrer auf den Ausfall des Kerns bzw. der Kerne hingewiesen werden. Alternativ oder zusätzlich kann eine Fehlermeldung erstellt und beispielsweise in dem Steuergerät gespeichert werden, damit Informationen über den Zeitpunkt und die genaueren Umstände des Kernausfalls Mechanikern einer Werkstatt zur Verfügung stehen.In particular, a notification is issued, for example, to a driver of the motor vehicle. This notification may include a warning signal, such as an audible warning tone or a warning indication, e.g. in a dashboard of the vehicle. Thus, the driver can be notified of the failure of the core or cores. Alternatively or additionally, an error message can be created and stored in the control unit, for example, so that information about the time and the more exact circumstances of the core failure is available to mechanics of a workshop.
Vorteilhafterweise werden, wenn die Rechenleistung der verbleibenden Kerne nicht ausreichend ist, vorbestimmte Grundfunktionsprozesse, welche die Grundfunktionalitäten des Multicore-Prozessors bzw. des Steuergeräts ausführen, den verbleibenden Kernen zugewiesen und auf diesen ausgeführt. Diese Grundfunktionsprozesse können dabei einer oder mehrere der unterschiedlichen Prozesse sein, welche auch in einem Normalbetrieb ohne ausgefallenen Kern bzw. ausgefallene Kerne auf dem Multicore-Prozessor ablaufen. Diese Grundfunktionsprozesse können allerdings auch spezielle Prozesse sein, welche im Normalbetrieb nicht auf dem Multicore-Prozessor ablaufen und nur im Falle ausgefallener Kerne ausgeführt werden. Die Grundfunktionsprozesse können dabei beispielsweise auf mehreren Kernen gespeichert sein oder in einem sicheren Speicherbereich, der sich auf keinem der Kerne befindet, hinterlegt sein. Somit wird verhindert, dass sich die Grundfunktionsprozesse ausschließlich auf dem Kern befinden, welcher ausfällt.Advantageously, if the computational power of the remaining cores is insufficient, predetermined basic functional processes that execute the basic functionalities of the multicore processor or controller are assigned to and executed on the remaining cores. These basic function processes can be one or more of the different processes which also take place in a normal operation without a failed core or failed cores on the multicore processor. However, these basic function processes can also be special processes, which do not run on the multicore processor in normal operation and are executed only in the case of failed cores. The basic function processes can be stored on multiple cores, for example, or stored in a secure memory area that is not located on any of the cores. This prevents the basic function processes from being located exclusively on the core that is failing.
Bevorzugt werden die unterschiedlichen Prozesse, die den verbleibenden Kernen zugewiesen sind, jeweils mit einer individuell reduzierten Funktionalität ausgeführt oder nicht mehr ausgeführt. Somit werden insbesondere in dem Fall, dass die Rechenleistung der verbleibenden Kerne nicht ausreichend ist, dennoch alle Prozesse den verbleibenden Kernen zugewiesen, aber gegebenenfalls nur mit reduzierter Funktionalität oder gar nicht ausgeführt. Als reduzierte Funktionalität kann beispielsweise eine Prozessrelevanz reduziert werden. Eine Reihenfolge, nach welcher Prozesse gemäß ihrer Relevanz durchgeführt werden, wird dabei verändert. Auch das definierte Zeitintervall, nach welchem die Prozesse gemäß einem etwaigen Echtzeitsystem durchgeführt werden, kann als reduzierte Funktionalität verändert werden.Preferably, the different processes assigned to the remaining cores are each executed with individually reduced functionality or are no longer executed. Thus, especially in the case that the computational power of the remaining cores is insufficient, all processes are still assigned to the remaining cores, but possibly only with reduced functionality or not executed at all. As a reduced functionality, for example, a process relevance can be reduced. A sequence according to which processes are carried out according to their relevance is changed. Also, the defined time interval, after which the processes are performed according to any real-time system, can be changed as reduced functionality.
Speziell in Motorsteuergeräten laufen Prozesse ab, die winkelsynchron (also drehzahlabhängig) oder die zeitsynchron (also drehzahlunabhängig) durchgeführt werden müssen. Ein Beispiel für einen winkelsynchronen Prozess ist die Berechnung einer Einspritzmenge, ein Beispiel für einen üblicherweise zeitsynchron Prozess ist die Erfassung, Digitalisierung und Vorverarbeitung von Prozessgrößen (wie zum Beispiel die angesaugte Luftmenge oder der Pumpenstrom der Lambdasonde, welcher der Bestimmung des Gemischverhältnisses dient).Especially in engine control units run processes that angle-synchronous (ie speed-dependent) or the time-synchronized (ie speed-independent) must be performed. An example of an angle-synchronous process is the calculation of an injection quantity, an example of a usually time-synchronous process is the acquisition, digitization and preprocessing of process variables (such as the intake air quantity or the pump current of the lambda probe, which is used to determine the mixture ratio).
Winkelsynchrone Prozesse werden mit einer Häufigkeit ausgeführt, die von der Drehzahl der Brennkraftmaschine abhängt. Winkelsynchrone Prozesse können beispielsweise über Interrupts gestartet werden, welche wiederum bei bestimmten Kurbelwellenwinkeln ausgelöst werden. Je schneller sich die Brennkraftmaschine dreht bzw. je höher die Drehzahl ist, desto häufiger werden diese winkelsynchronen Prozesse ausgeführt und umso mehr Rechenzeit wird für diese winkelsynchronen Prozesse verbraucht. Angular synchronous processes are performed at a frequency that depends on the speed of the engine. Angle-synchronous processes can be started, for example, via interrupts, which in turn are triggered at certain crankshaft angles. The faster the internal combustion engine rotates or the higher the rotational speed, the more frequently these angle-synchronous processes are executed and the more computing time is consumed for these angle-synchronous processes.
Werden winkelsynchrone und zeitsynchrone Prozesse auf einem Kern parallel ausgeführt, werden die zeitsynchronen Prozesse gegebenenfalls durch einen winkelsynchronen Prozess unvorhersehbar unterbrochen, da winkelsynchrone Prozesse meist mit einer höheren Priorität ausgeführt werden, als zeitsynchrone Prozesse. In einem Multicore-Prozessor können winkelsynchrone Prozesse daher einem speziellen Kern zugewiesen werden, der als drehzahlabhängiger Kern bezeichnet wird. Dieser drehzahlabhängige Kern ist dabei insbesondere derart ausgebildet, dass er auch bei einer maximalen Drehzahl der Brennkraftmaschine noch alle notwendigen Prozesse fristgerecht, also insbesondere in Echtzeit, ausführt.If angle-synchronous and time-synchronous processes are executed in parallel on a core, the time-synchronous processes are optionally interrupted unpredictably by an angle-synchronous process since angle-synchronous processes are usually executed with a higher priority than time-synchronous processes. In a multicore processor, angle-synchronous processes can therefore be assigned to a specific core, referred to as a speed-dependent kernel. This speed-dependent core is in particular designed such that even at a maximum speed of the internal combustion engine, it still executes all necessary processes on time, ie in particular in real time.
Fällt in einer solchen Situation einer der Kerne aus, auf denen zeitsynchrone Prozesse ablaufen, und werden nun im Zuge der Erfindung diese Prozesse, die nicht mehr ausgeführt werden, zumindest teilweise auch einem drehzahlabhängigen Kern zugewiesen, werden auf diesem Kern sowohl winkelsynchrone Prozesse als auch zeitsynchrone Prozesse ausgeführt. Daher wird bevorzugt die maximale Drehzahl der Brennkraftmaschine beschränkt, damit auch für die Ausführung der zeitsynchronen Prozesse ausreichend Rechenzeit zur Verfügung steht.If, in such a situation, one of the cores on which time-synchronized processes occur, and in the course of the invention these processes, which are no longer executed, are at least partially also assigned to a speed-dependent core, then both angle-synchronous processes and time-synchronized processes are used on this core Processes executed. Therefore, the maximum speed of the internal combustion engine is preferably limited, so that sufficient computing time is available for the execution of the time-synchronous processes.
Vorteilhafterweise wird eine Taktfrequenz der verbleibenden Kerne erhöht. Somit wird die Rechenleistung der verbleibenden Kerne erhöht. Im Normalbetrieb wird zumeist eine niedrigere Taktfrequenz gewählt, um eine Leistungsaufnahme zu verringern und die Lebensdauer des Multicore-Prozessors zu erhöhen. Im Falle eines ausgefallenen Kerns des Multicore-Prozessors ist eine Erhöhung der Lebensdauer jedoch obsolet.Advantageously, a clock frequency of the remaining cores is increased. Thus, the computing power of the remaining cores is increased. In normal operation, a lower clock frequency is usually selected to reduce power consumption and increase the lifetime of the multicore processor. In the case of a failed core of the multicore processor, however, an increase in the service life is obsolete.
Bevorzugt wird für den Ausfall eines jeden der Kerne jeweils eine individuelle neue Zuweisung der Prozesse auf die jeweils verbleibenden Kerne in dem Steuergerät gespeichert. Dabei werden bereits a priori, bevor einer der Kerne ausfällt, besagte neue Zuweisungen der Prozesse manuell festgelegt und gespeichert. Fällt dann tatsächlich einer der Kerne im laufenden Betrieb des Kraftfahrzeugs aus, muss das Steuergerät nicht selbst entscheiden, welche Prozesse welchem Kern zugewiesen werden, die entsprechende Zuweisung ist bereits in dem Steuergerät vorhanden. Diese a priori festgelegte Zuweisung kann insbesondere auch umfassen, welche der unterschiedlichen Prozesse in dem Fall, dass die Rechenleistung der verbleibenden Kerne nicht mehr ausreicht, um alle unterschiedlichen Prozesse auszuführen, bestimmt werden, um den verbleibenden Kernen zugewiesen zu werden bzw. welche Prozesse mit welcher reduzierten Funktionalität ausgeführt werden bzw. welche Prozesse gar nicht mehr ausgeführt werden. Insbesondere kann diese a priori Festlegung in einem Herstellungsprozess des Steuergeräts stattfinden, beispielsweise an einem Bandende. Somit kann sichergestellt werden, dass sämtliche Prozesse im Fall eines Kernausfalls jeweils dem am besten geeigneten verbleibenden Kern zugewiesen werden. Analog zu den Grundfunktionsprozessen können diese Zuordnungen beispielsweise auf mehreren Kernen gespeichert sein oder in einem sicheren Speicherbereich hinterlegt sein.In each case, an individual new assignment of the processes to the respectively remaining cores in the control unit is stored for the failure of each of the cores. In this case, a priori, before one of the cores fails, said new allocations of the processes are manually determined and stored. If one of the cores actually fails during operation of the motor vehicle, the control unit does not have to decide for itself which processes are assigned to which core, the corresponding assignment is already present in the control unit. In particular, this a priori determined allocation can also include which of the different processes in the event that the computing power of the remaining cores is no longer sufficient to execute all the different processes are determined to be assigned to the remaining cores or which processes with which reduced functionality or which processes are no longer executed. In particular, this a priori determination can take place in a manufacturing process of the control device, for example at a band end. Thus, it can be ensured that all processes are assigned to the most appropriate remaining core in the event of a core failure. Analogous to the basic function processes, these allocations can be stored, for example, on several cores or stored in a secure memory area.
In einer vorteilhaften Ausgestaltung der Erfindung wird die Zuweisung der Prozesse zu den verbleibenden Kernen gespeichert, ein Reset des Multicore-Prozessors durchgeführt und der Multicore-Prozessor wird gemäß der gespeicherten Zuweisung der Prozesse hochgefahren. In der Regel ist ein Reset des Steuergerätes erforderlich, damit die neue Verteilung der Prozesse wirksam wird. Die neue Zuweisung der Prozesse kann insbesondere als Parameter eines Bootvorgangs bzw. des Hochfahrprozesses des Multicore-Prozessors gespeichert werden. Insbesondere ist die neue Zuweisung eine der im vorgehenden Absatz beschriebenen Zuweisungen. Falls eine höhere Taktfrequenz für die verbleibenden Kerne gewählt wird, wird diese ebenfalls als Parameter für das Hochfahren des Multicore-Prozessors gespeichert.In an advantageous embodiment of the invention, the assignment of the processes to the remaining cores is stored, a reset of the multicore processor is performed and the multicore processor is powered up in accordance with the stored allocation of the processes. In general, a reset of the control unit is required for the new distribution of processes to take effect. The new assignment of the processes can in particular be stored as parameters of a boot process or the startup process of the multicore processor. In particular, the new assignment is one of the assignments described in the preceding paragraph. If a higher clock frequency is selected for the remaining cores, it is also stored as a parameter for booting the multicore processor.
Vorzugsweise wird, wenn ein Master-Kern ausfällt, ein Prozess eines synchronisierten Hochfahrens einem der verbleibenden Kerne zugewiesen. Dem Master-Kern ist dabei ein Prozess zugewiesen, der das synchronisierte Hochfahren der Kerne steuert. Dies ist einer der relevanten Prozesse, welche von einem der verbleibenden Kerne übernommen wird. Insbesondere wird a priori festgelegt, welcher der verbleibenden Kerne diesen Prozess übernimmt, sollte der Master-Kern ausfallen.Preferably, when a master core fails, a synchronized startup process is assigned to one of the remaining cores. The master core is assigned a process that controls the synchronized booting of the cores. This is one of the relevant processes inherited from one of the remaining cores. In particular, it is determined a priori which of the remaining cores will take over this process should the master core fail.
Eine erfindungsgemäße Recheneinheit, z.B. ein Mikrocontroller oder ein Steuergerät eines Kraftfahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.An arithmetic unit according to the invention, e.g. a microcontroller or a control unit of a motor vehicle is, in particular programmatically, configured to perform a method according to the invention.
Auch die Implementierung des Verfahrens in Form von Software ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere Disketten, Festplatten, Flash-Speicher, EEPROMs, CD-ROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.The implementation of the method in the form of software is also advantageous, since this causes particularly low costs, in particular if an executing control device is still used for further tasks and therefore exists anyway. Suitable data carriers for the provision of the computer program are, in particular, floppy disks, hard disks, flash memories, EEPROMs, CD-ROMs, DVDs, and the like. It is also possible to download a program via computer networks (Internet, intranet, etc.).
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.Further advantages and embodiments of the invention will become apparent from the description and the accompanying drawings.
Es versteht sich, dass die vorstehend genannten und die nachfolgend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen. It is understood that the features mentioned above and those yet to be explained below can be used not only in the particular combination indicated, but also in other combinations or in isolation, without departing from the scope of the present invention.
Die Erfindung ist anhand eines Ausführungsbeispiels in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung ausführlich beschrieben.The invention is illustrated schematically with reference to an embodiment in the drawing and will be described in detail below with reference to the drawing.
Kurze Beschreibung der ZeichnungenBrief description of the drawings
Ausführungsform(en) der ErfindungEmbodiment (s) of the invention
In
In Schritt
Wenn dies der Fall ist, werden die Prozesse in Schritt
Falls die Rechenleistung der verbleibenden, nicht ausgefallenen Kerne nicht ausreicht, werden in Schritt
In Schritt
In Schritt
In
Das hier dargestellte beispielhafte Steuergerät
Claims (11)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102013217601.5A DE102013217601A1 (en) | 2013-09-04 | 2013-09-04 | Method for emergency operation of a multi-core processor of a control unit of a motor vehicle |
CN201410444671.7A CN104424055B (en) | 2013-09-04 | 2014-09-03 | The method of the multi-core processor of control equipment for emergency operating motor vehicle |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102013217601.5A DE102013217601A1 (en) | 2013-09-04 | 2013-09-04 | Method for emergency operation of a multi-core processor of a control unit of a motor vehicle |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102013217601A1 true DE102013217601A1 (en) | 2015-03-05 |
Family
ID=52470432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102013217601.5A Withdrawn DE102013217601A1 (en) | 2013-09-04 | 2013-09-04 | Method for emergency operation of a multi-core processor of a control unit of a motor vehicle |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104424055B (en) |
DE (1) | DE102013217601A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018130488A1 (en) * | 2017-01-13 | 2018-07-19 | HELLA GmbH & Co. KGaA | Control system for a motor vehicle, motor vehicle, method for controlling a motor vehicle, computer program product, and computer-readable medium |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101136729B (en) * | 2007-09-20 | 2011-08-03 | 华为技术有限公司 | Method, system and device for implementing high usability |
CN101158920B (en) * | 2007-11-22 | 2011-02-16 | 杭州华三通信技术有限公司 | Method and apparatus for detecting fault of operating system |
JP2012226409A (en) * | 2011-04-15 | 2012-11-15 | Toyota Motor Corp | Multi-core processor |
-
2013
- 2013-09-04 DE DE102013217601.5A patent/DE102013217601A1/en not_active Withdrawn
-
2014
- 2014-09-03 CN CN201410444671.7A patent/CN104424055B/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018130488A1 (en) * | 2017-01-13 | 2018-07-19 | HELLA GmbH & Co. KGaA | Control system for a motor vehicle, motor vehicle, method for controlling a motor vehicle, computer program product, and computer-readable medium |
CN110168506A (en) * | 2017-01-13 | 2019-08-23 | 黑拉有限责任两合公司 | For the control system of motor vehicle, motor vehicle, the method for controlling motor vehicle, computer program product and computer-readable medium |
CN110168506B (en) * | 2017-01-13 | 2023-08-18 | 黑拉有限责任两合公司 | Control system for a motor vehicle, and method for controlling a motor vehicle |
Also Published As
Publication number | Publication date |
---|---|
CN104424055A (en) | 2015-03-18 |
CN104424055B (en) | 2019-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2146262B1 (en) | Method for determining incorrect components in a system | |
DE102017113435A1 (en) | Vehicle gateway network protection | |
DE102011055258A1 (en) | Control device for a motor vehicle | |
DE102010017256B4 (en) | ECO DRIVE MODE CONTROL DEVICE AND ECO DRIVE MODE CONTROL METHOD | |
DE102014116164B4 (en) | Method for selective deceleration of auto start/stop during low speed maneuvers based on electric power steering current | |
DE102015003194A1 (en) | Method and device for handling safety-critical errors | |
DE102018100990A1 (en) | BATTERY CONDITION RATING | |
DE102007009831B4 (en) | Display trip unit in a motor vehicle with an automatic start-stop function | |
DE102012209789B4 (en) | ON-VEHICLE ELECTRICAL CONTROL DEVICE | |
DE102017103724B4 (en) | Device and method for controlling a sensor component of a safety system of an object, control system for an automotive vehicle and sensor component for a safety system of an automotive vehicle | |
EP1804144A1 (en) | Monitoring the control program of a control unit of a machine | |
DE102013217601A1 (en) | Method for emergency operation of a multi-core processor of a control unit of a motor vehicle | |
DE112020002799T5 (en) | VEHICLE CONTROL DEVICE, VEHICLE DISPLAY SYSTEM AND VEHICLE DISPLAY CONTROL METHOD | |
DE102013221098A1 (en) | VEHICLE CONTROL UNIT | |
DE102013221343A1 (en) | CONTROL DEVICE AND VEHICLE CONTROL SYSTEM | |
DE112009001877T5 (en) | Control device and computer program | |
DE102017219195B4 (en) | PROCEDURE FOR ENSURE OPERATION OF A COMPUTER | |
DE102020105613A1 (en) | REAL-TIME CONTROL SYSTEM FOR A VEHICLE AND METHOD FOR EXECUTING THE CONTROL OF THE VEHICLE VIA THE REAL-TIME CONTROL SYSTEM | |
DE102020201672B4 (en) | ELECTRONIC CONTROL UNIT | |
DE102014210935B4 (en) | Device and method for event-specific modification of the operating behavior of a means of transport | |
DE102013021640A1 (en) | Method and device for determining the power potential of a battery | |
DE102018210857A1 (en) | Method for setting an IUMPR of a vehicle, computer program, storage means, control device and vehicle | |
DE102020201673B4 (en) | ELECTRONIC CONTROL UNIT | |
DE102017208872A1 (en) | Electronic control unit | |
DE102009057979A1 (en) | Method for configuring control device i.e. central gateway-module, of motor vehicle, involves configuring control device depending on operating modes, storing application in memory, and loading application based on operating modes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |