DE102014216381A1 - Control device and operating method for this - Google Patents

Control device and operating method for this Download PDF

Info

Publication number
DE102014216381A1
DE102014216381A1 DE102014216381.1A DE102014216381A DE102014216381A1 DE 102014216381 A1 DE102014216381 A1 DE 102014216381A1 DE 102014216381 A DE102014216381 A DE 102014216381A DE 102014216381 A1 DE102014216381 A1 DE 102014216381A1
Authority
DE
Germany
Prior art keywords
task
program
notification
data
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102014216381.1A
Other languages
German (de)
Inventor
Wolfgang Romes
Jochen Haerdtlein
Uwe Hartmann
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102014216381.1A priority Critical patent/DE102014216381A1/en
Priority to CN201510506405.7A priority patent/CN105373436B/en
Publication of DE102014216381A1 publication Critical patent/DE102014216381A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Programmable Controllers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben eines Steuergeräts (100), insbesondere für ein Kraftfahrzeug, wobei das Steuergerät (100) wenigstens eine, vorzugsweise wenigstens zwei, insbesondere zur Ausführung von Aufgabenprogrammen (112, 122) ausgebildete Ausführungseinheiten (110, 120) aufweist, wobei zumindest zeitweise ein erstes Aufgabenprogramm (112) und ein zweites Aufgabenprogramm (122) ausgeführt werden, dadurch gekennzeichnet, dass das erste Aufgabenprogramm (112) eine Benachrichtigung (B) an eine Ausführungseinheit (120) sendet, die das zweite Aufgabenprogramm (122) ausführt, wobei die Benachrichtigung (B) dem zweiten Aufgabenprogramm (122) und/oder der das zweite Aufgabenprogramm (122) ausführenden Ausführungseinheit (120) signalisiert, dass das erste Aufgabenprogramm (112) bereit ist, Daten von dem zweiten Aufgabenprogramm (122) zu empfangen.The invention relates to a method for operating a control unit (100), in particular for a motor vehicle, wherein the control unit (100) has at least one execution unit (110, 120), preferably at least two execution units (112, 122) designed in particular for executing task programs, wherein a first task program (112) and a second task program (122) are executed at least temporarily, characterized in that the first task program (112) sends a notification (B) to an execution unit (120) executing the second task program (122) wherein the notification (B) signals to the second task program (122) and / or the execution unit (120) executing the second task program (122) that the first task program (112) is ready to receive data from the second task program (122) ,

Description

Stand der TechnikState of the art

Die Erfindung betrifft ein Verfahren zum Betreiben eines Steuergeräts, insbesondere für ein Kraftfahrzeug, wobei das Steuergerät wenigstens eine, vorzugsweise wenigstens zwei, insbesondere zur Ausführung von Aufgabenprogrammen ausgebildete Ausführungseinheiten aufweist, wobei zumindest zeitweise ein erstes Aufgabenprogramm und ein zweites Aufgabenprogramm ausgeführt werden.The invention relates to a method for operating a control device, in particular for a motor vehicle, wherein the control device has at least one, preferably at least two, especially designed for execution of task programs execution units, wherein at least temporarily a first task and a second task are performed.

Die Erfindung betrifft ferner ein Steuergerät, insbesondere für ein Kraftfahrzeug.The invention further relates to a control device, in particular for a motor vehicle.

Eine Patentveröffentlichung aus diesem Gebiet ist die DE 102 29 520 A1 .A patent publication in this field is the DE 102 29 520 A1 ,

Offenbarung der ErfindungDisclosure of the invention

Es ist Aufgabe der vorliegenden Erfindung, ein Verfahren und ein Steuergerät der eingangs genannten Art dahingehend zu verbessern, dass ein gesteigerter Gebrauchsnutzen gegeben ist.It is an object of the present invention to improve a method and a control device of the type mentioned in that an increased utility is given.

Diese Aufgabe wird bei dem Verfahren der eingangs genannten Art dadurch gelöst, dass das erste Aufgabenprogramm eine Benachrichtigung an eine Ausführungseinheit sendet, die das zweite Aufgabenprogramm ausführt, wobei die Benachrichtigung dem zweiten Aufgabenprogramm und/oder der das zweite Aufgabenprogramm ausführenden Ausführungseinheit signalisiert, dass das erste Aufgabenprogramm bereit ist, Daten von dem zweiten Aufgabenprogramm zu empfangen.This object is achieved in the method of the type mentioned in that the first task sends a notification to an execution unit that executes the second task, the notification the second task and / or executing the second task execution unit signals that the first Task is ready to receive data from the second task.

Einer Ausführungsform zufolge kann es sich bei den Ausführungseinheiten jeweils um einen physischen oder virtuellen Kern einer Recheneinheit wie z.B. einem Mikroprozessor oder einer sog. CPU (central processing unit) oder auch eines digitalen Signalprozessors (DSP) handeln. Die Aufgabenprogramme, die auch als "Tasks" bezeichnet werden, können einer Ausführungsform zufolge allesamt auf derselben Ausführungseinheit ausgeführt werden. Bevorzugt ist jedoch eine Verteilung der Aufgabenprogramme auf verschiedene Ausführungseinheiten. Die Aufgabenprogramme können beispielsweise in an sich bekannter Weise durch ein Betriebssystem, das ebenfalls auf der Recheneinheit ablaufen kann, gesteuert werden. Insbesondere kann das Betriebssystem eine Ressourcenzuordnung der Recheneinheit zu den Aufgabenprogrammen vornehmen.According to one embodiment, each of the execution units may be a physical or virtual core of a computing unit, such as a computer. a microprocessor or a so-called CPU (central processing unit) or a digital signal processor (DSP) act. The task programs, also referred to as "tasks", may all be executed on the same execution unit according to one embodiment. However, a distribution of the task programs to different execution units is preferred. The task programs can be controlled, for example, in a manner known per se by an operating system which can likewise run on the computer. In particular, the operating system can make a resource allocation of the arithmetic unit to the task programs.

Durch den erfindungsgemäßen Ansatz ist vorteilhaft eine Synchronisation derart ermöglicht, dass ein Aufgabenprogramm, welches Daten an ein anderes Aufgabenprogramm zu senden hat, durch das andere Aufgabenprogramm über einen (frühest-)möglichen Empfangszeitpunkt informiert wird. Dadurch kann der Zeitpunkt der Datenübertragung flexibel gehalten bzw. an die aktuelle Auslastung der beteiligten Aufgabenprogramme angepasst werden, und insbesondere im Falle vieler miteinander Daten austauschender Aufgabenprogramme kann eine unnötig hohe Auslastung eines Speicher- bzw. Bussystems, welches für den Datenaustausch verwendet wird, zu besonderen Intervallen vermieden werden. Ein weiterer Vorteil der Erfindung besteht in der Skalierbarkeit. Das erfindungsgemäße Prinzip kann auf Steuergeräte mit Recheneinheiten angewandt werden, welche eine Vielzahl von Kernen, also Ausführungseinheiten aufweisen, unter Beibehaltung eines reproduzierbaren und deterministischen Verhaltens.By means of the approach according to the invention, synchronization is advantageously enabled in such a way that a task program which has data to send to another task program is informed by the other task program about a (earliest) possible reception time. As a result, the time of data transmission can be kept flexible or adapted to the current utilization of the task programs involved, and in particular in the case of many data exchange tasks with each other, an unnecessarily high utilization of a memory or bus system, which is used for data exchange, to special Intervals are avoided. Another advantage of the invention is scalability. The principle according to the invention can be applied to control units with arithmetic units, which have a large number of cores, that is, execution units, while maintaining a reproducible and deterministic behavior.

Bei einer bevorzugten Ausführungsform ist vorgesehen, dass das erste Aufgabenprogramm die Benachrichtigung dann sendet, wenn eine vorgebbare Anzahl von Berechnungen des ersten Aufgabenprogramms, insbesondere alle Berechnungen des ersten Aufgabenprogramms, für einen dem ersten Aufgabenprogramm zugeordneten aktuellen Zeitschlitz ausgeführt worden sind. Damit ist sichergestellt, dass das empfangende erste Aufgabenprogramm auch wirklich zum Datenempfang bereit ist.In a preferred embodiment, it is provided that the first task program sends the notification when a predeterminable number of calculations of the first task program, in particular all calculations of the first task program, have been carried out for a current time slot assigned to the first task program. This ensures that the receiving first task is really ready to receive data.

Bei einer weiteren bevorzugten Ausführungsform ist vorgesehen, dass das erste Aufgabenprogramm die Benachrichtigung an dem Ende eines dem ersten Aufgabenprogramm zugeordneten aktuellen Zeitschlitzes sendet.In a further preferred embodiment, it is provided that the first task program sends the notification at the end of a current time slot assigned to the first task program.

Bei einer bevorzugten Ausführungsform ist vorgesehen, dass Daten von einem dem zweiten Aufgabenprogramm zugeordneten Speicherbereich in einen dem ersten Aufgabenprogramm zugeordneten Speicherbereich übertragen werden, wenn das erste Aufgabenprogramm zuvor eine entsprechende Benachrichtigung an die das zweite Aufgabenprogramm ausführende Ausführungseinheit gesendet hat, und wenn das zweite Aufgabenprogramm alle Berechnungen für einen dem zweiten Aufgabenprogramm zugeordneten aktuellen Zeitschlitz ausgeführt hat. In a preferred embodiment, it is provided that data from a memory area assigned to the second task program is transferred to a memory area allocated to the first task program, when the first task program has previously sent a corresponding notification to the execution unit executing the second task program, and the second task program all Has performed calculations for a current time slot associated with the second task.

Bei einer bevorzugten Ausführungsform ist vorgesehen, dass ein drittes Aufgabenprogramm ausgeführt wird, um Daten von einem dem zweiten Aufgabenprogramm zugeordneten Speicherbereich in einen dem ersten Aufgabenprogramm zugeordneten Speicherbereich zu übertragen. Diese Variante ermöglicht eine einfache Implementierung der Erfindung unter Verwendung von insbesondere im Automobilbereich vorhandenen Betriebssystemen. Ferner kann die Aufgabe, Daten an das erste Aufgabenprogramm zu senden bzw. zu diesem zu übertragen, weitgehend durch das dritte Aufgabenprogramm übernommen werden, so dass das zweite Aufgabenprogramm die entsprechende Funktionalität nicht aufweisen muss.In a preferred embodiment it is provided that a third task program is executed in order to transfer data from a memory area assigned to the second task program to a memory area allocated to the first task program. This variant enables a simple implementation of the invention using operating systems that are particularly available in the automotive sector. Furthermore, the task of sending or transmitting data to the first task program can largely be taken over by the third task program, so that the second task program does not have to have the corresponding functionality.

Bei einer weiteren bevorzugten Ausführungsform ist vorgesehen, dass das erste Aufgabenprogramm und das zweite Aufgabenprogramm unterschiedliche Zykluszeiten aufweisen, wobei eine Zykluszeit des ersten Aufgabenprogramms größer ist als die Zykluszeit des zweiten Aufgabenprogramms, und wobei Daten von einem dem zweiten Aufgabenprogramm zugeordneten Speicherbereich in einen dem ersten Aufgabenprogramm zugeordneten Speicherbereich innerhalb desjenigen Zyklus des zweiten Aufgabenprogramms übertragen werden, welcher zeitlich im Bereich eines Zyklusendes des ersten Aufgabenprogramms liegt.In a further preferred embodiment, it is provided that the first task program and the second task program have different cycle times, wherein a cycle time of the first task program is greater than the cycle time of the second task program, and wherein data from a memory area associated with the second task program in one of the first task allocated memory area within that cycle of the second task program, which is temporally in the range of a cycle end of the first task program.

Bei einer weiteren bevorzugten Ausführungsform ist vorgesehen, dass das erste und zweite Aufgabenprogramm auf derselben Ausführungseinheit oder auf verschiedenen Ausführungseinheiten ausgeführt werden. Die Ausführung mindestens eines Aufgabenprogramms auf einer weiteren Recheneinheit, welche an eine Recheneinheit des erfindungsgemäßen Steuergeräts z.B. über ein Netzwerk angebunden ist, ist ebenfalls denkbar. Besonders vorteilhaft ist das erfindungsgemäße Prinzip einer Variante zufolge auch bei Recheneinheiten anwendbar, welche (nur) eine zur Ausführung von Aufgabenprogrammen ausgebildete Ausführungseinheit aufweisen.In a further preferred embodiment, it is provided that the first and second task programs are executed on the same execution unit or on different execution units. The execution of at least one task program on a further computing unit, which is connected to a computing unit of the control device according to the invention e.g. Connected via a network is also conceivable. According to a variant of the invention, the principle according to the invention is also particularly advantageously applicable to arithmetic units which (only) have an execution unit designed to execute task programs.

Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung ist ein Steuergerät, insbesondere für ein Kraftfahrzeug, angegeben, wobei das Steuergerät wenigstens eine, vorzugsweise wenigstens zwei, insbesondere zur Ausführung von Aufgabenprogrammen ausgebildete Ausführungseinheiten aufweist, wobei zumindest zeitweise ein erstes Aufgabenprogramm und ein zweites Aufgabenprogramm ausführbar sind, dadurch gekennzeichnet, dass das erste Aufgabenprogramm dazu ausgebildet ist, eine Benachrichtigung an eine Ausführungseinheit zu senden, die das zweite Aufgabenprogramm ausführt, wobei die Benachrichtigung dem zweiten Aufgabenprogramm und/oder der das zweite Aufgabenprogramm ausführenden Ausführungseinheit signalisiert, dass das erste Aufgabenprogramm bereit ist, Daten von dem zweiten Aufgabenprogramm zu empfangen.As a further solution of the object of the present invention, a control device, in particular for a motor vehicle, specified, wherein the control unit at least one, preferably at least two, in particular designed for execution of task programs execution units, wherein at least temporarily a first task and a second task executable are characterized in that the first task program is adapted to send a notification to an execution unit executing the second task program, the notification signaling the second task program and / or the second task program executing execution unit that the first task program is ready To receive data from the second task.

Weitere vorteilhafte Ausführungsformen sind durch die abhängigen Ansprüche definiert.Further advantageous embodiments are defined by the dependent claims.

Nachfolgend werden beispielhafte Ausführungsformen der Erfindung unter Bezugnahme auf die Zeichnung erläutert. In der Zeichnung zeigt: Hereinafter, exemplary embodiments of the invention will be explained with reference to the drawings. In the drawing shows:

1 schematisch ein Blockdiagramm eines Steuergeräts gemäß einer Ausführungsform, und 1 schematically a block diagram of a control device according to an embodiment, and

2 schematisch ein Ablaufdiagramm gemäß einer Ausführungsform. 2 schematically a flowchart according to an embodiment.

1 zeigt schematisch ein Blockdiagramm eines Steuergeräts 100 gemäß einer Ausführungsform. Das Steuergerät 100 weist mindestens eine nicht abgebildete Recheneinheit wie z.B. einen Mikroprozessor oder eine sog. CPU (central processing unit) oder auch einen digitalen Signalprozessor (DSP) auf, welche ihrerseits jeweils ein oder mehrere Ausführungseinheiten, z.B. Rechenkerne, aufweisen, die dazu ausgebildet sind, Aufgabenprogramme (englisch: "tasks") auszuführen. 1 schematically shows a block diagram of a controller 100 according to one embodiment. The control unit 100 has at least one non-mapped computing unit such as a microprocessor or a so-called. CPU (central processing unit) or a digital signal processor (DSP), which in turn each have one or more execution units, such as calculation cores, which are designed to task programs ( English: "tasks").

Vorliegend sind in 1 beispielhaft eine erste Ausführungseinheit 110 und eine zweite Ausführungseinheit 120 abgebildet. Unter Einsatz der Ausführungseinheiten 110, 120 und der auf ihnen ausgeführten Aufgabenprogramme 112, 122 kann das Steuergerät 100 Eingangsdaten E wie z.B. physikalische Messgrößen entgegennehmen, verarbeiten und/oder als Ausgangsdaten A ausgeben. Vorliegend empfängt das zweite Aufgabenprogramm 122 die Eingangsdaten E, und das erste Aufgabenprogramm 112 gibt Ausgangsdaten A z.B. an eine externe Einheit (nicht gezeigt) aus.Present are in 1 by way of example a first execution unit 110 and a second execution unit 120 displayed. Using the execution units 110 . 120 and the tasks performed on them 112 . 122 can the controller 100 Receive input data E, eg physical measured quantities, process them and / or output them as output data A. In the present case receives the second task 122 the input data E, and the first task 112 For example, outputs output data A to an external unit (not shown).

Eine Datenverbindung 130 ermöglicht den Datenaustausch zwischen den Ausführungseinheiten 110, 120 bzw. den Aufgabenprogrammen 112, 122. Vorliegend ist die Datenverbindung 130 durch einen in 1 nach rechts weisenden Pfeil angedeutet, um die generelle Richtung des auf die Eingangsdaten E und Ausgangsdaten A bezogenen Informationsflusses anzuzeigen. Dennoch handelt es sich bei der Datenverbindung 130 bevorzugt um eine bidirektionale Datenverbindung.A data connection 130 enables the data exchange between the execution units 110 . 120 or the task programs 112 . 122 , Here is the data connection 130 through an in 1 indicated to the right arrow to indicate the general direction of the information flow related to the input data E and output data A. Nevertheless, it is the data connection 130 preferably a bidirectional data connection.

Zusätzlich zu den Aufgabenprogrammen 112, 122 können auf der ersten und/oder zweiten Ausführungseinheit auch noch weitere Aufgabenprogramme 140 ausgeführt werden. In addition to the task programs 112 . 122 On the first and / or second execution unit also other task programs 140 be executed.

Erfindungsgemäß ist vorgesehen, dass das erste Aufgabenprogramm 112 eine Benachrichtigung B an die Ausführungseinheit 120 sendet, die das zweite Aufgabenprogramm 122 ausführt, wobei die Benachrichtigung B dem zweiten Aufgabenprogramm 122 und/oder der das zweite Aufgabenprogramm 122 ausführenden Ausführungseinheit 120 signalisiert, dass das erste Aufgabenprogramm 112 bereit ist, Daten von dem zweiten Aufgabenprogramm 122 zu empfangen. Die Benachrichtigung B kann einer Ausführungsform zufolge auch über die Datenverbindung 130 übertragen werden.According to the invention, it is provided that the first task program 112 a notification B to the execution unit 120 sends the second task 122 executing the notification B, the second task 122 and / or the second task 122 executing execution unit 120 signals that the first task 112 is ready to get data from the second task 122 to recieve. According to one embodiment, the notification B may also be via the data connection 130 be transmitted.

Durch den erfindungsgemäßen Ansatz ist vorteilhaft eine Synchronisation derart ermöglicht, dass ein Aufgabenprogramm 122, welches Daten an ein anderes Aufgabenprogramm 112 zu senden hat, durch das andere Aufgabenprogramm 112 über einen (frühest-)möglichen Empfangszeitpunkt informiert wird. Dadurch kann der Zeitpunkt der Datenübertragung flexibel gehalten bzw. an die aktuelle Auslastung der beteiligten Aufgabenprogramme 112, 122 angepasst werden, und insbesondere im Falle vieler miteinander Daten austauschender Aufgabenprogramme kann eine unnötig hohe Auslastung eines Speicher- bzw. Bussystems, welches für den Datenaustausch verwendet wird, zu besonderen Intervallen vermieden werden. Ferner ist eine einfache Skalierbarkeit des Gesamtsystems 100 hinsichtlich Ausführungseinheiten 110, 120 und Aufgabenprogrammen gegeben.By the approach according to the invention is advantageously a synchronization allows such that a task 122 which data to another task 112 has to send through the other task 112 is informed about a (earliest) possible reception time. As a result, the time of data transmission can be kept flexible or to the current utilization of the participating task programs 112 . 122 and, particularly in the case of many data interchanging task programs, unnecessarily high utilization of a memory or bus system used for data exchange can be avoided at specific intervals. Furthermore, a simple scalability of the overall system 100 in terms of execution units 110 . 120 and task programs.

2 zeigt schematisch ein Ablaufdiagramm gemäß einer Ausführungsform, das einen Datenaustausch zwischen den Aufgabenprogrammen 112, 122 des Steuergeräts 100 aus 1 dem erfindungsgemäßen Prinzip folgend veranschaulicht. Hierzu wird beispielhaft das erste Aufgabenprogramm 112 als empfangendes Aufgabenprogramm ("Empfänger-Task 112") und das zweite Aufgabenprogramm 122 als sendendes Aufgabenprogramm ("Sender-Task 122") bezeichnet, obwohl bei anderen Ausführungsformen die Datenflussrichtung (Sender->Empfänger) auch umgekehrt sein kann. 2 schematically shows a flowchart according to an embodiment, the data exchange between the task programs 112 . 122 of the control unit 100 out 1 following the principle of the invention illustrated. This is exemplified by the first task 112 as receiving task ("Receiver Task 112 ") and the second task 122 as sending task program ("Sender-Task 122 "), although in other embodiments the data flow direction (sender-> receiver) may also be reversed.

Auf der Zeitskala t ist ein Startzeitpunkt t0 angegeben, zu dem beide Aufgabenprogramme 112, 122 einen neuen Betriebszyklus starten. Für die nachfolgende Beschreibung wird davon ausgegangen, dass dem ersten Aufgabenprogramm 112 (1) Zeitschlitze ZS1 (2) von 10 ms (Millisekunden) zugewiesen sind, vergleiche auch den mit der geschweiften Klammer 112' markierten unteren Bereich der 2. Der erste Betriebszyklus des ersten Aufgabenprogramms 112 ab dem Zeitpunkt t0 erstreckt sich demnach bis zu dem Zeitpunkt t2, der zweite Betriebszyklus des ersten Aufgabenprogramms 112 erstreckt sich zwischen den Zeitpunkten t2, t4, usw. Die Intervall- bzw. Zyklusgrenzen zwischen aufeinanderfolgenden Zeitschlitzen sind durch Rechtecke R1 angedeutet.On the time scale t, a start time t0 is specified, to which both task programs 112 . 122 start a new operating cycle. For the following description it is assumed that the first task 112 ( 1 ) Time slots ZS1 ( 2 ) of 10 ms (milliseconds), also compare with the curly brace 112 ' marked lower area of the 2 , The first cycle of the first task 112 From time t0, therefore, until the time t2, the second operating cycle of the first task program extends 112 extends between times t2, t4, etc. The interval or cycle boundaries between successive time slots are indicated by rectangles R1.

Wie aus 2, Bereich 112', ersichtlich ist, benötigt das erste Aufgabenprogramm 112 jedoch nicht stets die volle Zykluszeit bzw. Länge des zugewiesenen Zeitschlitzes von vorliegend 10 ms. Vielmehr ist eine Abarbeitung aller Aufgaben des ersten Aufgabenprogramms 112 in dem ersten Betriebszyklus bereits zu dem Zeitpunkt t01 erfolgt, und eine Abarbeitung aller Aufgaben des ersten Aufgabenprogramms 112 in dem zweiten Betriebszyklus bereits zu dem Zeitpunkt t21. Mit anderen Worten existiert in dem ersten Betriebszyklus ein Zeitintervall t2–t01 zwischen dem Ende der Abarbeitung des ersten Aufgabenprogramms 112 und der Intervallgrenze R1, in dem keine Aktivität des Aufgabenprogramms 112 vorliegt und somit die für die gesamte Zykluszeit von 10 ms reservierten Rechenressourcen der Ausführungseinheit 110 ungenutzt bleiben.How out 2 , Area 112 ' , it can be seen, requires the first task 112 but not always the full cycle time or length of the assigned time slot of 10 ms in the present case. Rather, it is a processing of all tasks of the first task 112 in the first operating cycle already at the time t01, and a processing of all tasks of the first task 112 in the second cycle of operation already at the time t21. In other words, in the first operation cycle, a time interval t2-t01 exists between the end of the execution of the first task program 112 and the interval limit R1, in which no activity of the task 112 is present and thus for the entire cycle time of 10 ms reserved computing resources of the execution unit 110 remain unused.

Analog zu dem ersten Aufgabenprogramm 112 sind dem zweiten Aufgabenprogramm 122 (1) ebenfalls Zeitschlitze ZS2, ZS2' (2) von konstanter Länge, vorliegend 5 ms zugewiesen, vergleiche auch den mit der geschweiften Klammer 122' markierten vertikal mittleren Bereich der 2. Der erste Betriebszyklus des zweiten Aufgabenprogramms 112 ab dem Zeitpunkt t0 erstreckt sich demnach bis zu dem Zeitpunkt t1, der zweite Betriebszyklus des zweiten Aufgabenprogramms 112 erstreckt sich zwischen den Zeitpunkten t1, t2, usw. Die Intervall- bzw. Zyklusgrenzen zwischen aufeinanderfolgenden Zeitschlitzen des zweiten Aufgabenprogramms 122 sind durch Rechtecke R2 angedeutet.Analogous to the first task 112 are the second task 122 ( 1 ) also time slots ZS2, ZS2 '( 2 ) of constant length, in this case 5 ms assigned, compare also with the curly bracket 122 ' marked vertical middle area of the 2 , The first cycle of the second task 112 From time t0, therefore, until the time t1, the second operating cycle of the second task program extends 112 extends between times t1, t2, etc. The interval or cycle boundaries between successive time slots of the second task 122 are indicated by rectangles R2.

Wie aus 2, Bereich 122', ersichtlich ist, benötigt das zweite Aufgabenprogramm 122 jedoch nicht stets die volle Zykluszeit bzw. Länge des zugewiesenen Zeitschlitzes von vorliegend 5 ms. Vielmehr ist eine Abarbeitung aller Aufgaben des zweiten Aufgabenprogramms 122 in dem ersten Betriebszyklus bereits zu dem Zeitpunkt t02 erfolgt, und eine Abarbeitung aller Aufgaben des zweiten Aufgabenprogramms 122 in dem zweiten Betriebszyklus bereits zu dem Zeitpunkt t11.How out 2 , Area 122 ' , it can be seen, requires the second task 122 but not always the full cycle time or length of the allocated time slot of 5 ms in the present case. Rather, it is a processing of all tasks of the second task 122 in the first operating cycle already at the time t02, and a processing of all tasks of the second task 122 in the second cycle of operation already at the time t11.

Zusätzlich zu den Bereichen 112', 122', die die Aktivität der einzelnen Aufgabenprogramme 112, 122 wiedergeben, ist in 2 noch ein Nutzungsschema 114 eines dem ersten Aufgabenprogramm 112 zugewiesenen ersten Speicherbereichs und ein Nutzungsschema 124 eines dem zweiten Aufgabenprogramm 122 zugewiesenen zweiten Speicherbereichs angegeben. In addition to the areas 112 ' . 122 ' indicating the activity of each task 112 . 122 is in 2 another usage scheme 114 one of the first task 112 assigned first memory area and a usage scheme 124 one of the second task 122 assigned to the second memory area.

In dem zweiten Speicherbereich 124 der Sender-Task 122 (zweites Aufgabenprogramm) liegen einer Ausführungsform zufolge von der Sender-Task 122 beispielsweise auf Basis der Eingangsgrößen E (1) berechnete Größen, welche an die Empfänger-Task 112 (erstes Aufgabenprogramm) übertragen werden sollen. Die Übertragung 14a, 14b der Daten von der Sender-Task 122 zur Empfänger-Task 112 findet gemäß einer Ausführungsform dann statt, wenn die Sender-Task 122 die Berechnung der auszugebenden Daten G abgeschlossen hat, und gleichzeitig die Empfänger-Task 112 mit der Verarbeitung der im vorherigen Zyklus empfangenen Daten 15 fertig ist.In the second memory area 124 the sender task 122 (second task) are according to an embodiment of the transmitter task 122 for example based on the input quantities E ( 1 ) calculated quantities which are sent to the receiver task 112 (first task) should be transferred. The transfer 14a . 14b the data from the sender task 122 to the receiver task 112 takes place according to one embodiment, when the transmitter task 122 has completed the calculation of the output data G, and at the same time the receiver task 112 with the processing of the data received in the previous cycle 15 is done.

Einer Ausführungsform zufolge sendet die Empfänger-Task 112 eine Benachrichtigung B an die Ausführungseinheit 120 der Sender-Task 122, sobald die Berechnungen innerhalb einer Ausführung beendet wurden, also spätestens am Zyklusende der Empfänger-Task 112, vgl. Zeitpunkt t01 in 2.According to one embodiment, the recipient task sends 112 a notification B to the execution unit 120 the sender task 122 as soon as the calculations have been completed within one execution, ie at the latest at the end of the cycle of the receiver task 112 , see. Time t01 in 2 ,

Bei einer bevorzugten Ausführungsform kann vorgesehen sein, dass ein drittes Aufgabenprogramm 140, nachstehend auch als "Benachrichtigungs-Task" bezeichnet, ausgeführt wird, vorliegend z.B. von der auch das zweite Aufgabenprogramm 122 ausführenden Ausführungseinheit 120, um Daten von einem dem zweiten Aufgabenprogramm 122 (Sender-Task) zugeordneten Speicherbereich 124 in einen dem ersten Aufgabenprogramm 112 (Empfänger-Task) zugeordneten Speicherbereich 114 zu übertragen. Insbesondere kann dieses dritte Aufgabenprogramm 140 durch die Benachrichtigung B aktiviert werden.In a preferred embodiment it can be provided that a third task 140 , hereinafter also referred to as "notification task" executed, in this case, for example, of the second task 122 executing execution unit 120 to get data from a second task 122 (Transmitter Task) associated memory area 124 in a first task 112 (Receiver task) associated memory area 114 transferred to. In particular, this third task 140 be activated by the notification B.

Bei heute im Automobil-Bereich üblichen Betriebssystemen kann die Benachrichtigungs-Task 140 dabei z.B. in eine Liste der aktivierten Tasks der Ausführungseinheit 120 mit gleicher Priorität eingetragen („ready queue") und ausgeführt werden, sobald keine andere Task mit höherer Priorität ausgeführt werden muss und die früher in dieselbe Liste eingetragenen Tasks beendet wurden. Wie bereits vorstehend beschrieben, können Sender- und Empfänger-Task 122, 112 auf derselben oder auf unterschiedlichen Rechenkernen ausgeführt werden.In today's automotive industry standard operating systems, the notification task 140 eg in a list of activated tasks of the execution unit 120 with the same priority ("ready queue") and executed as soon as no other task with higher priority has to be executed and the tasks previously entered in the same list have been terminated As described above, the sender and receiver task 122 . 112 be executed on the same or on different cores.

Bei einer Ausführungsform erfolgt die Übermittlung der Daten G an das erste Aufgabenprogramm 112 (Empfänger-Task) innerhalb der Ausführung der Benachrichtigungs-Task 140 oder am Ende der Sender-Task 122, je nachdem welches Ereignis später eintritt. In one embodiment, the transmission of the data G to the first task 112 (Receiver task) within the execution of the notification task 140 or at the end of the sender task 122 , depending on which event occurs later.

Sofern die Benachrichtigung B vor Beendigung der Sender-Task 122 erfolgt, kann bei einer Ausführungsform die Datenübertragung 14a dann am Ende der Sender-Task 122 erfolgen, d.h. nach dem Zeitpunkt t11. In diesem Fall kann z.B. die Sender-Task 122 selber die Datenübertragung 14a anstoßen bzw. ausführen. Sofern die Benachrichtigung B' erfolgt, nachdem die Sender-Task 122b beendet wurde, kann bei einer Ausführungsform die Benachrichtigungs-Task 140 die Übermittlung 14b der Daten an die Empfänger-Task 112 anstoßen bzw. ausführen.Provided the notification B before the termination of the sender task 122 in one embodiment, the data transmission 14a then at the end of the transmitter task 122 take place, ie after the time t11. In this case, for example, the sender task 122 itself the data transmission 14a initiate or execute. Unless the notification B 'occurs after the sender task 122b In one embodiment, the notification task 140 the transmission 14b the data to the receiver task 112 initiate or execute.

Wann genau die Benachrichtigungs-Task 140 im Verhältnis zur Sender-Task 122 ausgeführt wird hängt bei einer Ausführungsform von den Prioritäten der beiden Tasks ab. Wenn beide Tasks 122, 140 dieselbe Priorität haben, ist ausgeschlossen dass die Tasks 122, 140 sich gegenseitig unterbrechen können, und die Benachrichtigungs-Task 140 kann entweder vor oder nach der Sender-Task 122 ausgeführt werden, je nachdem wann die Benachrichtigung B, B' im Verhältnis zur Ausführung der Sender-Task 122 erfolgt.When exactly the notification task 140 in relation to the sender task 122 in one embodiment depends on the priorities of the two tasks. If both tasks 122 . 140 have the same priority is excluded that the tasks 122 . 140 can interrupt each other and the notification task 140 can be either before or after the sender task 122 depending on when the notification B, B 'in relation to the execution of the transmitter task 122 he follows.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass das erste Aufgabenprogramm 112 und das zweite Aufgabenprogramm 122 unterschiedliche Zykluszeiten ZS1, ZS2 aufweisen, wobei eine Zykluszeit ZS1 des ersten Aufgabenprogramms 112 größer ist als die Zykluszeit ZS2 des zweiten Aufgabenprogramms 122, und wobei Daten von einem dem zweiten Aufgabenprogramm 122 zugeordneten Speicherbereich 124 in einen dem ersten Aufgabenprogramm 112 zugeordneten Speicherbereich 114 innerhalb desjenigen Zyklus ZS2' des zweiten Aufgabenprogramms 122 übertragen werden, welcher zeitlich im Bereich eines Zyklusendes des ersten Aufgabenprogramms 112 liegt.In a further advantageous embodiment, it is provided that the first task program 112 and the second task 122 have different cycle times ZS1, ZS2, wherein a cycle time ZS1 of the first task 112 is greater than the cycle time ZS2 of the second task 122 , and where data from one of the second task 122 allocated memory area 124 in a first task 112 allocated memory area 114 within cycle ZS2 'of the second task 122 which is temporally in the range of a cycle end of the first task 112 lies.

Bei einer vorteilhaften Ausführungsform ist ein Algorithmus vorgesehen, der sicherstellt, dass die Übertragung der Daten G vom Sender 122 zum Empfänger 112 genau einmal pro langsamerem Zyklus ZS1 bzw. Zeitintervall erfolgt. Durch einen Zähler-Mechanismus innerhalb von Sender- oder Empfänger-Task 122, 112 wird sichergestellt, dass nur die jeweils letzte Ausführung 1220, 2, der "schnelleren" Task 122 innerhalb des Zeitintervalls ZS1 der langsameren Task 112 eine Datenübertragung 14a anstößt (z.B. durch Benachrichtigung B, wenn die Empfänger-Task 112 die höhere Aktivierungsrate hat) oder ausführt (wenn die Sender-Task 122 öfter aktiviert wird). Dazu wird jeweils am Ende der schnelleren Task ein Zähler inkrementiert. Wenn der Zählerstand dem Verhältnis von langsamerer Abtastzeit zu schnellerer Abtastzeit entspricht, wird die Datenübertragung zugelassen und der Zähler auf null zurückgesetzt.In an advantageous embodiment, an algorithm is provided which ensures that the transmission of the data G from the sender 122 to the recipient 112 exactly once per slower cycle ZS1 or time interval takes place. Through a counter mechanism within transmitter or receiver task 122 . 112 ensures that only the last execution 1220 . 2 , the "faster" task 122 within the time interval ZS1 of the slower task 112 a data transfer 14a (for example, by notifying B when the recipient task 112 has the higher activation rate) or executes (if the sender task 122 is activated more often). For this purpose, a counter is incremented at the end of the faster task. If the count equals the ratio of slower sample time to faster sample time, data transfer is allowed and the counter is reset to zero.

Im Beispiel der 2 hat die Sender-Task 122 die höhere Aktivierungsrate von 5 ms im Vergleich zu 10 ms bei der Empfänger-Task 112. Deshalb wird einer Ausführungsform zufolge nur bei jeder zweiten Ausführung 1220, 1222 eine Datenübertragung 14a, 14b durchgeführt, nicht aber bei den Ausführungen 1219, 1221. Dadurch wird vorteilhaft ein deterministisches Verhalten im Sinne der „Logical Execution Time" sichergestellt.In the example of 2 has the sender task 122 the higher activation rate of 5 ms compared to 10 ms in the receiver task 112 , Therefore, according to one embodiment, only every other execution 1220 . 1222 a data transfer 14a . 14b performed, but not in the versions 1219 . 1221 , This advantageously ensures a deterministic behavior in the sense of the "Logical Execution Time".

Die folgenden Programmbeispiele zeigen schematisch, wie weiteren Ausführungen zufolge das erfindungsgemäße Prinzip am Beispiel einer Kommunikation von der Sender-Task 122 (nachfolgend kurz: „s") zur Empfänger-Task 112 (nachfolgend kurz: „r") umgesetzt werden kann:The following program examples show schematically how further statements according to the principle of the invention using the example of a communication from the transmitter task 122 (hereafter: "s") to the receiver task 112 (in the following short: "r") can be implemented:

Auf der Ausführungseinheit 110 des Empfängers 112 wird am Ende der Empfänger-Task „r", z.B. zu dem Zeitpunkt t21, Programmcode ähnlich dem folgenden eingefügt, wobei im Sinne einer allgemeinen Darstellung von mehr als einer Sender-Task ausgegangen wird:

Figure DE102014216381A1_0002
On the execution unit 110 Recipient 112 at the end of the receiver task "r", eg at the time t21, program code similar to the following is inserted, assuming in the sense of a general representation of more than one transmitter task:
Figure DE102014216381A1_0002

Man sieht, dass für alle Aufgabenprogramme (Tasks) "s", von denen Daten empfangen werden, anhand eines Zählers ("counter_r") zunächst geprüft wird, ob in dem aktuellen Zeitschritt Daten empfangen werden sollen. Das betrifft nur die Sender-Tasks mit langsamerer Abtastrate, ansonsten kann der Zähler entfallen. Im Beispiel in 2 benötigt die Empfänger-Task 112 keinen Zähler, weil in jedem Zeitschritt bzw. Zyklus Ergebnisse der schnelleren Sender-Task 122 erwartet werden, oder die Konstante counter _r _max wird für diese Kommunikationsbeziehung auf den Wert „1" gesetzt. In beiden Fällen wird die Benachrichtigung des Senders durch Aktivierung der Task „notify" in jedem Zeitschritt ausgeführt.It can be seen that for all task programs ("tasks") from which data is received, a counter ("counter_r") first checks whether data is to be received in the current time step. This only affects the transmitter tasks with a slower sampling rate, otherwise the counter can be omitted. In the example in 2 needs the receiver task 112 no counter, because in each time step or cycle results of the faster transmitter task 122 or the constant counter _r _max is set to the value "1" for this communication relationship In both cases, notification of the sender is performed by activating the task "notify" in each time step.

Auf der Ausführungseinheit (Rechenkern) der Sender-Task „s" wird nun sofort oder später die Task „notify" (entsprechend der vorstehend beschriebenen Benachrichtigungs-Task 140) ausgeführt:

Figure DE102014216381A1_0003
On the execution unit (arithmetic unit) of the transmitter task "s" is now immediately or later, the task "notify" (corresponding to the notification task described above 140 ) carried out:
Figure DE102014216381A1_0003

Zunächst wird durch Setzen der Logikvariable "receiver_ready" 22 auf Senderseite bekanntgemacht, dass der Empfänger bereit ist, Daten zu empfangen, z.B. nach Empfang der erfindungsgemäßen Benachrichtigung B zu dem Zeitpunkt t01. Falls auch der Sender schon bereit ist, die Daten zu versenden, wird ein Funktion „copydata" ausgeführt, welche die Daten vom Speicherbereich 124 des Sender „s" in den Speicherbereich des Empfängers „r" kommuniziert, wobei die Art der Datenübertragung von der Rechnerarchitektur der Recheneinheit des Steuergeräts 100 (1) abhängig ist. Im einfachsten Fall handelt es sich um ein einfaches Kopieren in einen anderen Speicherbereich, die Daten können aber auch über Kommunikationskanäle als Nachricht versandt werden und/oder über andere an sich bekannte Mechanismen der Datenübertragung. Nach Abschluss der Datenübertragung werden die Zustände von Sender und Empfänger als Initialisierung für das nächste Intervall wieder auf „nicht bereit" zurückgesetzt.First, setting the logic variable "receiver_ready" 22 announced on the sender side that the receiver is ready to receive data, for example after receiving the notification B according to the invention at the time t01. If the sender is already ready to send the data, a function "copydata" is executed, which reads the data from the memory area 124 the transmitter "s" in the memory area of the receiver "r" communicates, the type of data transmission from the computer architecture of the computing unit of the control unit 100 ( 1 ) is dependent. In the simplest case, it is a simple copy to another memory area, but the data can also be sent via communication channels as a message and / or other known mechanisms of data transmission. After completion of the data transfer, the states of sender and receiver are reset to "not ready" as initialization for the next interval.

Am Ende der Sender-Task 122 „s" wird bei einem Ausführungsbeispiel Programm-Code ähnlich dem folgenden ausgeführt:

Figure DE102014216381A1_0004
Figure DE102014216381A1_0005
At the end of the transmitter task 122 "S" is executed in one embodiment program code similar to the following:
Figure DE102014216381A1_0004
Figure DE102014216381A1_0005

Man sieht, dass für alle anderen Aufgabenprogramme (Tasks) „r", an die Daten gesendet werden, anhand eines Zählers (counter_s) zunächst geprüft wird, ob in diesem Zeitschritt Daten gesendet werden sollen. Das betrifft nur die Empfänger-Tasks mit niedrigerer Abtastrate, ansonsten kann der Zähler entfallen. Im Beispiel in 2 hat die Konstante counter s_max den Wert 2, weil nur bei jeder zweiten Ausführung der Sender-Task 122 „s" Daten an den Empfänger 112 gesendet werden sollen.It can be seen that for all other tasks ("r") to which data is being sent, a counter (counter_s) will first check to see if data should be sent in that time step, which only affects the lower-sample receiver tasks , otherwise the counter can be omitted 2 the constant counter s_max has the value 2, because only every second execution of the sender task 122 "S" data to the receiver 112 to be sent.

Bei passendem Zählerstand 23 wird der Zähler zurückgesetzt und durch Setzen von "sender_ready" 21 bekanntgemacht, dass der Sender „s" bereit ist, Daten an den Empfänger „r" zu versenden. Falls auch der Empfänger der Kommunikationsbeziehung schon als „ready" markiert wurde (d.h. falls die Task 140 „notify" in diesem Intervall bereits ausgeführt wurde), wird die Übertragung der Daten G an den Empfänger durch Aufruf der Funktion „copydata" gestartet.With appropriate meter reading 23 the counter is reset and by setting "sender_ready" 21 announced that the sender "s" is willing to send data to the receiver "r". If the recipient of the communication relationship has already been marked as "ready" (ie if the task 140 "Notify" has already been executed in this interval), the transmission of the data G to the receiver is started by calling the "copydata" function.

Man sieht an den vorstehend beschriebenen Ausführungsbeispielen, dass die Übertragung der zu kommunizierenden Daten G entweder in der Task 140 „notify" oder in der Sender-Task 122 selbst ausgeführt wird, je nachdem welche Task zuletzt ausgeführt wird, bezogen auf die Empfänger-Task 112. Es ist einer Ausführungsform zufolge aber durch den beschriebenen Zählermechanismus sichergestellt, dass die Übertragung pro Intervall der jeweils langsameren Task genau einmal ausgeführt wird.It can be seen in the embodiments described above that the transmission of the data G to be communicated either in the task 140 "Notify" or in the sender task 122 itself is executed, depending on which task is executed last, relative to the receiver task 112 , However, according to one embodiment, the described counter mechanism ensures that the transmission is performed exactly once per interval of the slower task.

Bisher wurde davon ausgegangen, dass die Task „notify" und die Sender-Task aus Sicht des Betriebssystems die gleiche Priorität haben, in der Reihenfolge ihrer Aktivierung ausgeführt werden und sich gegenseitig nicht unterbrechen. Falls diese Annahme nicht zutrifft, können zusätzliche Schutzmechanismen in den Programm-Code eingebaut werden um konsistente Werte für die Zustände „sender_ready" und „receiver_ready" sicherzustellen. Durch dem Fachmann bekannte Mechanismen des Betriebssystems der Recheneinheit des Steuergeräts 100 kann vorteilhaft sichergestellt werden, dass jeweils nur eine der beiden betroffenen SoftwareEinheiten (also Sender-Task 112 „s" und Benachrichtigungs-Task 140 „notify") den durch eine „protection" geschützten Bereich betreten dürfen. Am Ende der Sender-Task 122 „s" wird in diesem Fall einer Ausführungsform zufolge Programm-Code ähnlich dem folgenden eingefügt:

Figure DE102014216381A1_0006
Previously, it was assumed that the task "notify" and the sender task have the same priority from the operating system's point of view, are executed in the order of their activation and do not interrupt each other, and if this assumption is incorrect, additional protection mechanisms can be added to the program Code to ensure consistent values for the states "sender_ready" and "receiver_ready." Mechanisms of the operating system of the computing unit of the control unit known to those skilled in the art 100 can advantageously be ensured that only one of the two software units concerned (ie sender task 112 "S" and notification task 140 "Notify") may enter the area protected by a "protection". At the end of the transmitter task 122 In this case, "s" is inserted according to one embodiment, program code similar to the following:
Figure DE102014216381A1_0006

Der Programm-Code der Benachrichtigungs-Task 140 „notify" kann in diesem Fall einer Ausführungsform zufolge wie folgt aussehen:

Figure DE102014216381A1_0007
Figure DE102014216381A1_0008
The program code of the notification task 140 In this case, "notify" can look like one of the following:
Figure DE102014216381A1_0007
Figure DE102014216381A1_0008

Der Schutzmechanismus wirkt einer Ausführungsform zufolge lokal auf nur einer Ausführungseinheit ("core-lokal") und ist dadurch ressourcenschonend zu implementieren (z.B. indem Task-Wechsel kurzzeitig verhindert werden). Um die Zeit, währenddessen der Zugriffschutz aktiv ist, kurz zu halten, wird die Ausführung der Kopieraktion einer Ausführungsform zufolge durch eine logische Größe „copy_s" bzw. „copy_n" gesteuert, so dass die Kopieraktion außerhalb des geschützten Bereiches erfolgen kann. Wenn nicht sichergestellt werden kann, dass die Kommunikation immer spätestens dann abgeschlossen ist, wenn die Intervalle von Sender und Empfänger enden, können einer Ausführungsform zufolge Maßnahmen zur Fehlererkennung und Fehlerbehandlung vorgesehen werden. Der Start der Programmausführung von Sender- und Empfänger-Task kann dann z.B. im nachfolgenden Intervall so lange verzögert werden, bis die Kommunikation aus dem vorherigen Intervall abgeschlossen ist. Die technische Lösung zur Behandlung solcher Fehlerfälle ist nicht Bestandteil dieser Erfindung.According to one embodiment, the protection mechanism acts locally on only one execution unit ("core-local") and is thereby implemented in a resource-saving manner (for example, by temporarily preventing task switching). In order to keep the time during which access protection is active short, according to one embodiment, the execution of the copy action is controlled by a logical variable "copy_s" or "copy_n", so that the copying action can take place outside the protected area. If it can not be ensured that the communication is always completed at the latest when the intervals between sender and receiver end, measures for error detection and error handling can be provided according to one embodiment. The start of the program execution of sender and receiver task can then be e.g. be delayed in the subsequent interval until the communication from the previous interval is completed. The technical solution for the treatment of such errors is not part of this invention.

Weitere vorteilhafte Ausführungsformen sind durch folgende Aspekte charakterisiert, die auch miteinander und/oder mit den vorstehend genannten Ausführungsformen kombinierbar sind:

  • Sender 122 und Empfänger 112 der Kommunikationsbeziehung 130 können auf dem gleichen Rechenkern, auf unterschiedlichen Rechenkernen oder auf einer anderen Recheneinheit in einem vernetzten System („System-on-Chip") ausgeführt werden.
  • • Die zu kommunizierenden Daten können aus dem Speicherbereich des Senders 122 in den Speicherbereich des Empfängers 112 kopiert werden oder als Nachricht an den Empfänger gesendet werden.
  • • Die Benachrichtigung B vom Empfänger 112 zum Sender 122 kann dann erfolgen, wenn innerhalb einer Ausführung der Empfänger-Task nicht mehr auf die Eingangsdaten zugegriffen wird, also zu einem Zeitpunkt bereits vor Beendigung der Empfänger-Task.
  • • Das Senden der Daten kann bereits dann erfolgen, wenn die Sender-Task 122 alle zu sendenden Daten im Speicher 124 abgelegt hat, also bereits vor dem Ende der Sende-Task, vorausgesetzt dass die Benachrichtigung B der Empfänger-Task bereits eingetroffen ist.
  • Falls der Empfänger 122 Zugriff auf den Arbeitsspeicher des Senders 112 hat, kann die Kommunikation alternativ vom Empfänger 122 gesteuert und durchgeführt werden. In diesem Fall kann der Sender 122 den Empfänger 112 benachrichtigen, wenn die Daten bereitstehen. Der Programm-Code sieht ähnlich aus wie oben beschrieben, es müssen nur jeweils Sender und Empfänger vertauscht werden. Die Benachrichtigungs-Task 140 kann in diesem Fall auf der Ausführungseinheit 110 des Empfängers 112 ausgeführt werden.
  • • Falls einer der Kommunikationspartner 112, 122 Zugriff auf den Speicher 114, 124 des anderen Partners hat, kann dieser direkt nacheinander eine Kommunikation in beide Richtungen durchführen. Das bedeutet, die Funktion „copydata" aus den vorstehend beschriebenen Programmbeispielen kann nicht nur die Daten von einem Sender zu einem Empfänger senden, sondern auch die Ausgabedaten des Empfängers auslesen und in den Speicherbereich des Senders kopieren. Dadurch wird die Anzahl der Benachrichtigungs-Tasks halbiert, soweit eine Kommunikation in beide Richtungen erforderlich ist.
Further advantageous embodiments are characterized by the following aspects, which can also be combined with one another and / or with the abovementioned embodiments:
  • Sender 122 and receiver 112 the communication relationship 130 can be executed on the same processor, on different cores or on another processor in a networked system ("system-on-chip").
  • • The data to be communicated may be from the memory area of the transmitter 122 in the memory area of the receiver 112 be copied or sent as a message to the recipient.
  • • The notification B from the recipient 112 to the transmitter 122 This can be done if the input data is no longer accessed within an execution of the receiver task, that is, at a time already before the receiver task is ended.
  • • Sending the data can already be done when the sender task 122 all data to be sent in memory 124 has already filed before the end of the send task, provided that the notification B of the receiver task has already arrived.
  • • If the recipient 122 Access to the memory of the transmitter 112 Alternatively, the communication may be from the recipient 122 be controlled and performed. In this case, the transmitter 122 the recipient 112 notify when the data is ready. The program code looks similar to the one described above, only the transmitter and the receiver have to be swapped. The notification task 140 can in this case on the execution unit 110 Recipient 112 be executed.
  • • If one of the communication partners 112 . 122 Access to the memory 114 . 124 of the other partner, he can directly communicate one after the other in both directions. This means that the "copydata" function from the program examples described above can not only send the data from a sender to a receiver, but also read out the receiver's output data and copy it to the memory area of the sender, thereby halving the number of notification tasks if communication in both directions is required.

Nachstehend sind die Vorteile des erfindungsgemäßen Prinzips zusammengefasst.The advantages of the principle according to the invention are summarized below.

  • 1. Herkömmliche Verfahren wie z.B. aus DE 102 29 520 A1 können unter Anwendung des erfindungsgemäßen Prinzips so erweitert werden, dass sie auch für Recheneinheiten mit mehreren Rechenkernen (z.B. Multi-Core Prozessoren) einsetzbar sind, unter Beibehaltung eines deterministischen und reproduzierbaren Verhaltens und der Sicherstellung der Datenkonsistenz. Dafür eignet sich das Konzept der „Logical Execution Time".1. Conventional methods such as out DE 102 29 520 A1 can be extended using the principle of the invention so that they can also be used for computing units with multiple cores (eg multi-core processors), while maintaining a deterministic and reproducible behavior and ensuring data consistency. The concept of "Logical Execution Time" is suitable for this.
  • 2. Das erfindungsgemäße Prinzip unterstützt von einem Betriebssystem kontrollierte Software-Einheiten (Tasks), deren Aktivierungsraten (z.B. 5 ms, 10 ms) in einem vorzugsweise festen, ganzzahligen Verhältnis zueinander stehen (2). Dabei können auch mehrere Tasks mit gleicher Aktivierungsrate vorhanden sein. Daneben können im System auch noch weitere Tasks mit anderen als den genannten Aktivierungsraten vorhanden sein, mit denen dann jedoch auf andere Art als in dieser Erfindung beschrieben kommuniziert werden kann.2. The principle according to the invention supports software units (tasks) controlled by an operating system whose activation rates (eg 5 ms, 10 ms) are in a preferably fixed, integer ratio to one another ( 2 ). There may also be several tasks with the same activation rate. In addition, other tasks may be present in the system with other than the above activation rates, but with which then can be communicated in a different way than described in this invention.
  • 3. Das Verfahren belastet die Kommunikationskanäle 130 (z.B. Busse) weniger, als die von konventionellen Systemen bekannte Kommunikation, die z.B. stets genau an den lntervallgrenzen R1, R2 stattfindet (2).3. The procedure loads the communication channels 130 (eg buses) less than the communication known from conventional systems, for example, which always takes place exactly at the interval limits R1, R2 ( 2 ).
  • 4. Das Verfahren kommt mit einer geringeren Anzahl an Speichern für die zwischen den Software-Einheiten 112, 122 kommunizierten Daten G aus als die herkömmlichen Verfahren.4. The process comes with a smaller number of memories for those between the software units 112 . 122 communicated data G as the conventional methods.
  • 5. Das Verfahren ist „wait-free" das bedeutet, dass die Ausführung keiner der Kommunikationspartner zeitweise blockiert wird, z. B. um die Konsistenz gemeinsam genutzter Speicherbereiche sicherzustellen. Dadurch kann die verfügbare Rechenleistung der Ausführungseinheiten 110, 120 besser genutzt werden.5. The procedure is "wait-free", meaning that none of the communication partners' execution is temporarily blocked, for example, to ensure the consistency of shared storage areas, which can reduce the available processing power of the execution units 110 . 120 be better used.
  • 6. Das Verfahren kann ohne Erweiterung der heute in der Automobil-Domäne üblicherweise eingesetzten Betriebssysteme (z.B. AUTOSAR-OS) implementiert werden.6. The method can be implemented without extending the operating systems commonly used today in the automotive domain (e.g., AUTOSAR-OS).
  • 7. Das Verfahren kann für Recheneinheiten mit von verschiedenen Rechenkernen gemeinsam nutzbaren Speicherbereichen (wie heute verfügbare Multi-Core Prozessoren mit „shared memory" für den Echtzeit-Einsatz in der Automobil-Domäne) ebenso verwendet werden wie für Recheneinheiten, die nur durch Senden von Nachrichten über Kommunikationskanäle („message passing") miteinander kommunizieren können („Network-on-Chip").7. The method can be used for computing units with memory areas that can be shared by different processor cores (such as multi-core processors with "shared memory" available for real-time use in the automotive domain) and for processors that can only be used by sending Messages via communication channels ("message passing") can communicate with each other ("network-on-chip").

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

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

Zitierte PatentliteraturCited patent literature

  • DE 10229520 A1 [0003, 0054] DE 10229520 A1 [0003, 0054]

Claims (9)

Verfahren zum Betreiben eines Steuergeräts (100), insbesondere für ein Kraftfahrzeug, wobei das Steuergerät (100) wenigstens eine, vorzugsweise wenigstens zwei, insbesondere zur Ausführung von Aufgabenprogrammen (112, 122) ausgebildete Ausführungseinheiten (110, 120) aufweist, wobei zumindest zeitweise ein erstes Aufgabenprogramm (112) und ein zweites Aufgabenprogramm (122) ausgeführt werden, dadurch gekennzeichnet, dass das erste Aufgabenprogramm (112) eine Benachrichtigung (B) an eine Ausführungseinheit (120) sendet, die das zweite Aufgabenprogramm (122) ausführt, wobei die Benachrichtigung (B) dem zweiten Aufgabenprogramm (122) und/oder der das zweite Aufgabenprogramm (122) ausführenden Ausführungseinheit (120) signalisiert, dass das erste Aufgabenprogramm (112) bereit ist, Daten von dem zweiten Aufgabenprogramm (122) zu empfangen.Method for operating a control device ( 100 ), in particular for a motor vehicle, wherein the control device ( 100 ) at least one, preferably at least two, in particular for the execution of task programs ( 112 . 122 ) trained execution units ( 110 . 120 ), wherein at least at times a first task program ( 112 ) and a second task program ( 122 ), characterized in that the first task ( 112 ) a notification (B) to an execution unit ( 120 ), which is the second task ( 122 ), the notification (B) being the second task ( 122 ) and / or the second task ( 122 ) executing execution unit ( 120 ) signals that the first task ( 112 ) is ready to retrieve data from the second task ( 122 ) to recieve. Verfahren nach einem der vorstehenden Ansprüche, wobei das erste Aufgabenprogramm (112) die Benachrichtigung (B) dann sendet, wenn eine vorgebbare Anzahl von Berechnungen des ersten Aufgabenprogramms (112), insbesondere alle Berechnungen des ersten Aufgabenprogramms (112), für einen dem ersten Aufgabenprogramm (112) zugeordneten aktuellen Zeitschlitz (ZS1) ausgeführt worden sind.Method according to one of the preceding claims, wherein the first task program ( 112 ) the notification (B) then sends, if a predefinable number of calculations of the first task ( 112 ), in particular all calculations of the first program ( 112 ), for a first task ( 112 ) associated with the current time slot (ZS1) have been executed. Verfahren nach einem der vorstehenden Ansprüche, wobei das erste Aufgabenprogramm (112) die Benachrichtigung (B) an dem Ende eines dem ersten Aufgabenprogramm (112) zugeordneten aktuellen Zeitschlitzes (ZS1) sendet.Method according to one of the preceding claims, wherein the first task program ( 112 ) the notification (B) at the end of a first task ( 112 ) associated with the current time slot (ZS1). Verfahren nach einem der vorstehenden Ansprüche, wobei Daten von einem dem zweiten Aufgabenprogramm (122) zugeordneten Speicherbereich (124) in einen dem ersten Aufgabenprogramm (112) zugeordneten Speicherbereich (114) übertragen werden, wenn das erste Aufgabenprogramm (112) zuvor eine entsprechende Benachrichtigung (B) an die das zweite Aufgabenprogramm (122) ausführende Ausführungseinheit (120) gesendet hat, und wenn das zweite Aufgabenprogramm (122) alle Berechnungen für einen dem zweiten Aufgabenprogramm (122) zugeordneten aktuellen Zeitschlitz (ZS2) ausgeführt hat.Method according to one of the preceding claims, wherein data from one of the second task program ( 122 ) associated memory area ( 124 ) into a first task ( 112 ) associated memory area ( 114 ) when the first task ( 112 ) previously sent a notification (B) to the second task ( 122 ) executing execution unit ( 120 ) and if the second task ( 122 ) all calculations for a second task ( 122 ) has executed the assigned current time slot (ZS2). Verfahren nach einem der vorstehenden Ansprüche, wobei ein drittes Aufgabenprogramm (140) ausgeführt wird, um Daten von einem dem zweiten Aufgabenprogramm (122) zugeordneten Speicherbereich (124) in einen dem ersten Aufgabenprogramm (112) zugeordneten Speicherbereich (114) zu übertragen.Method according to one of the preceding claims, wherein a third task program ( 140 ) is executed to retrieve data from a second task ( 122 ) associated memory area ( 124 ) into a first task ( 112 ) associated memory area ( 114 ) transferred to. Verfahren nach einem der vorstehenden Ansprüche, wobei das erste Aufgabenprogramm (112) und das zweite Aufgabenprogramm (122) unterschiedliche Zykluszeiten (ZS1, ZS2) aufweisen, wobei eine Zykluszeit (ZS1) des ersten Aufgabenprogramms (112) größer ist als die Zykluszeit (ZS2) des zweiten Aufgabenprogramms (122), und wobei Daten von einem dem zweiten Aufgabenprogramm (122) zugeordneten Speicherbereich (124) in einen dem ersten Aufgabenprogramm (112) zugeordneten Speicherbereich (114) innerhalb desjenigen Zyklus (ZS2') des zweiten Aufgabenprogramms (122) übertragen werden, welcher zeitlich im Bereich eines Zyklusendes des ersten Aufgabenprogramms (112) liegt.Method according to one of the preceding claims, wherein the first task program ( 112 ) and the second task ( 122 ) have different cycle times (ZS1, ZS2), wherein a cycle time (ZS1) of the first task program (ZS1) 112 ) is greater than the cycle time (ZS2) of the second task ( 122 ), and where data from a second task ( 122 ) associated memory area ( 124 ) into a first task ( 112 ) associated memory area ( 114 ) within the cycle (ZS2 ') of the second program ( 122 ), which is timed in the range of one cycle end of the first task program ( 112 ) lies. Verfahren nach einem der vorstehenden Ansprüche, wobei das erste und zweite Aufgabenprogramm (112, 122) auf derselben Ausführungseinheit (112; 122) oder auf verschiedenen Ausführungseinheiten (112, 122) ausgegführt werden.Method according to one of the preceding claims, wherein the first and second task programs ( 112 . 122 ) on the same execution unit ( 112 ; 122 ) or on different execution units ( 112 . 122 ). Steuergerät (100), insbesondere für ein Kraftfahrzeug, wobei das Steuergerät (100) wenigstens eine, vorzugsweise wenigstens zwei, insbesondere zur Ausführung von Aufgabenprogrammen (112, 122) ausgebildete Ausführungseinheiten (110, 120) aufweist, wobei zumindest zeitweise ein erstes Aufgabenprogramm (112) und ein zweites Aufgabenprogramm (122) ausführbar sind, dadurch gekennzeichnet, dass das erste Aufgabenprogramm (112) dazu ausgebildet ist, eine Benachrichtigung (B) an eine Ausführungseinheit (120) zu senden, die das zweite Aufgabenprogramm (122) ausführt, wobei die Benachrichtigung (B) dem zweiten Aufgabenprogramm (122) und/oder der das zweite Aufgabenprogramm (122) ausführenden Ausführungseinheit (120) signalisiert, dass das erste Aufgabenprogramm (112) bereit ist, Daten von dem zweiten Aufgabenprogramm (122) zu empfangen.Control unit ( 100 ), in particular for a motor vehicle, wherein the control device ( 100 ) at least one, preferably at least two, in particular for the execution of task programs ( 112 . 122 ) trained execution units ( 110 . 120 ), wherein at least at times a first task program ( 112 ) and a second task program ( 122 ) are executable, characterized in that the first task ( 112 ) is adapted to send a notification (B) to an execution unit ( 120 ), which is the second task ( 122 ), the notification (B) being the second task ( 122 ) and / or the second task ( 122 ) executing execution unit ( 120 ) signals that the first task ( 112 ) is ready to retrieve data from the second task ( 122 ) to recieve. Steuergerät (100) nach Anspruch 8, wobei das Steuergerät (100) zur Ausführung des Verfahrens nach einem der Ansprüche 1 bis 7 ausgebildet ist.Control unit ( 100 ) according to claim 8, wherein the control device ( 100 ) is designed for carrying out the method according to one of claims 1 to 7.
DE102014216381.1A 2014-08-19 2014-08-19 Control device and operating method for this Pending DE102014216381A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102014216381.1A DE102014216381A1 (en) 2014-08-19 2014-08-19 Control device and operating method for this
CN201510506405.7A CN105373436B (en) 2014-08-19 2015-08-18 Control device and operating method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014216381.1A DE102014216381A1 (en) 2014-08-19 2014-08-19 Control device and operating method for this

Publications (1)

Publication Number Publication Date
DE102014216381A1 true DE102014216381A1 (en) 2016-03-10

Family

ID=55358362

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014216381.1A Pending DE102014216381A1 (en) 2014-08-19 2014-08-19 Control device and operating method for this

Country Status (2)

Country Link
CN (1) CN105373436B (en)
DE (1) DE102014216381A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017200669A1 (en) 2017-01-17 2018-07-19 Robert Bosch Gmbh Method and device for operating a control device, computer program and method for generating the computer program

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10229520A1 (en) 2002-07-01 2004-01-15 Robert Bosch Gmbh Controlling vehicle processes, involves copying output parameter of at least one faster task program at start of this program if such an output parameter provided for both faster and slower programs

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100247951B1 (en) * 1997-04-11 2000-03-15 윤종용 Program modification method of PDA
US6625637B1 (en) * 1999-12-09 2003-09-23 Koninklijke Philips Electronics N.V. Method and apparatus for synthesizing communication support based on communication types of application
WO2002069174A1 (en) * 2001-02-28 2002-09-06 Fujitsu Limited Method for executing parallel process, and multi-processor computer
JP5667024B2 (en) * 2011-09-28 2015-02-12 株式会社東芝 PROGRAM GENERATION DEVICE, PROGRAM GENERATION METHOD, AND PROGRAM
CN103257869B (en) * 2012-12-14 2016-08-24 惠州市亿能电子有限公司 A kind of ECU program smart download method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10229520A1 (en) 2002-07-01 2004-01-15 Robert Bosch Gmbh Controlling vehicle processes, involves copying output parameter of at least one faster task program at start of this program if such an output parameter provided for both faster and slower programs

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017200669A1 (en) 2017-01-17 2018-07-19 Robert Bosch Gmbh Method and device for operating a control device, computer program and method for generating the computer program
WO2018134061A1 (en) 2017-01-17 2018-07-26 Robert Bosch Gmbh Method and device for operating a controller, computer program, and method for generating the computer program
CN110392883A (en) * 2017-01-17 2019-10-29 罗伯特·博世有限公司 For the method and apparatus of operation control device, computer program and method for generating computer program
JP2020506465A (en) * 2017-01-17 2020-02-27 ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツングRobert Bosch Gmbh Method and apparatus for operating a control device, computer program, and method for generating computer program
US11500679B2 (en) 2017-01-17 2022-11-15 Robert Bosch Gmbh Operating a controller in a motor vehicle according to different time slots
CN110392883B (en) * 2017-01-17 2024-07-09 罗伯特·博世有限公司 Method and device for operating a control device, computer program and method for generating a computer program

Also Published As

Publication number Publication date
CN105373436B (en) 2020-11-06
CN105373436A (en) 2016-03-02

Similar Documents

Publication Publication Date Title
DE3882989T2 (en) METHOD AND ARRANGEMENT FOR MANAGING MULTI-LOCK INDICATORS IN A MULTIPROCESSOR DATA PROCESSING SYSTEM.
EP0762274B1 (en) Apparatus and method for real time processing of multiple tasks
DE69429279T2 (en) MULTIPROCESSOR PROGRAMMABLE INTERRUPT CONTROL SYSTEM WITH PROCESSOR-INTEGRATED INTERRUPT CONTROLLERS
DE3882977T2 (en) METHOD AND ARRANGEMENT FOR IMPLEMENTING MULTI-LOCKING INDICATORS IN A MULTIPROCESSOR DATA PROCESSING SYSTEM.
DE3883532T2 (en) NODE FOR OPERATING INTERRUPT REQUEST MESSAGES ON A PENDING BUS.
DE102018204859A1 (en) Dynamic load balancing on network interface cards for optimal system-level performance
DE3888353T2 (en) INTERRUPT NODE FOR PROVIDING INTERRUPTION REQUIREMENTS ON A PENDING BUS.
DE68920929T2 (en) Timer channel with multiple timer reference features.
DE3882991T2 (en) ARRANGEMENT AND METHOD FOR OBTAINING INTERRUPTIONS WITH A "PENDED BUS".
DE68919018T2 (en) Timer channel with match recognition features.
DE112015006192T5 (en) Communication device, communication method and program
DE112019001647T5 (en) Network congestion management
WO2017140504A1 (en) Method and device for operating a controller
DE112013000812T5 (en) Variable acknowledgment rate for reducing bus conflict in the presence of data transmission errors
WO2018134061A1 (en) Method and device for operating a controller, computer program, and method for generating the computer program
DE102015108005A1 (en) Mechanisms and devices for newly configurable interprocessor communications with embedded controller
DE102013022564B4 (en) Maintaining the bandwidth quality of service of a hardware resource via a hardware meter
DE102014216381A1 (en) Control device and operating method for this
EP3693856A1 (en) Computer system and method for transmitting a message in a computer system
DE112015007097B4 (en) Transmission control device, vehicle and transmission control method
DE102018123563B4 (en) Method for inter-core communication in a multi-core processor
DE112013006756T5 (en) Communication, control device and program
DE2838887C2 (en) Data processing system with a circuit for interrupt requests to take over the common bus
DE102015213370B4 (en) DATA PROCESSING DEVICE
DE102014215561A1 (en) MICROCOMPUTER

Legal Events

Date Code Title Description
R012 Request for examination validly filed