-
Stand der Technik
-
Die vorliegende Erfindung betrifft eine Anordnung, ein Fortbewegungsmittel sowie ein Verfahren zur Verwendung zweier Prozessorkerne zur Ansteuerung eines haptisch relevanten Aktuators, wie z. B. ein Lenksystem, ein Bremssystem o. ä.
-
Bei Fahrzeugsteuergeräten, die über ihre Aktuatoren die Haptik beeinflussen (z. B. elektromechanische Lenkung oder elektromechanischer Bremskraftverstärker, etc.) und die mehrere Prozessorkerne besitzen, kann es vorkommen, dass haptisch relevante und voneinander abhängige Aufgaben (englisch „Task“) wiederkehrend auf verschiedenen Prozessorkernen mit unterschiedlichen Zykluszeiten gerechnet werden. Dabei kann es bedingt durch Laufzeitunterschiede zu verschiedenen Zeitfolgen (englisch „Timing“) des Datenaustauschs beider Prozessorkerne kommen. Dieser Umstand kann sich z. B. beim Stellen eines Motormomentes auf eine größere oder kleinere Latenzzeit im Verhältnis zur Fahrereingabe auswirken, welche wiederum durch den Fahrer als störend wahrgenommen wird. Die Fahrereingabe kann beispielsweise eine Winkelveränderung eines Lenkrades oder eine Betätigung eines Bremspedals umfassen.
-
WO 2012/051972 A2 offenbart ein Verfahren zur effizienten Nutzung eines Zwei- oder Mehrkehrprozessors durch ein Betriebssystem. Ein erster Prozessorkern ist mit Standard Single-Core Betriebsmitteln ausgestattet, wobei über die Standard Single-Core Betriebsmittel des ersten Prozessorkerns ein zweiter Prozessorkern durch Interrupts gesteuert wird. Hierbei wird das Laufzeitverhalten komplett durch den ersten Prozessorkern verwaltet, wodurch sich eine einfache Überwachung des Laufzeitverhaltens ergibt.
-
Die Benutzung mehrerer Prozessorkerne weißt grundsätzlich den Vorteil auf, dass mitunter günstigere Prozessoren eingesetzt und gleichzeitig höhere Leistungen erzielt werden können. Aufgrund der vorstehend beschriebenen Zeitfolgeprobleme wird für haptisch relevante Rechenaufgaben im Automobilbau überwiegend auf die Verwendung mehrerer Prozessorkerne verzichtet.
-
Es ist eine Aufgabe der vorliegenden Erfindung, die vorgenannten Nachteile auszuräumen.
-
Offenbarung der Erfindung
-
Die vorstehend identifizierte Aufgabe wird erfindungsgemäß durch ein Verfahren zur Verwendung zweier Prozessorkerne zur Ansteuerung eines haptisch relevanten Aktuators (z. B. elektromechanisch unterstütztes Lenksystem, elektromechanisch unterstütztes Bremssystem o. ä.) gelöst. Das Verfahren startet beispielsweise mit dem Ausführen einer ersten Aufgabe auf dem ersten Prozessorkern. Zeitlich darauffolgend wird eine Pseudoaufgabe auf dem ersten Prozessorkern ausgeführt. Als „Pseudoaufgabe“ wird im Rahmen der vorliegenden Erfindung eine solche Aufgabe verstanden, deren Ergebnis nicht relevant ist und das zumindest logisch nicht verwendet wird. Vielmehr besteht der Zweck der Pseudoaufgabe darin, den ersten Prozessorkern nach Abschluss der ersten Aufgaben weiter zu beschäftigen. Ein Ergebnis der ersten Aufgabe wird an den zweiten Prozessorkern erst nach Abschluss der Ausführung der Pseudoaufgabe übergeben. Mit anderen Worten dauert die Ausführung der Pseudoaufgabe während eines ersten möglichen Zeitpunktes zur Übergabe des Ergebnisses noch an, während zu einem darauffolgenden zweiten Zeitpunkt, an welchem die Übergabe des Ergebnisses erfolgen soll, die Ausführung der Pseudoaufgabe bereits abgeschlossen ist. Die Pseudoaufgabe kann insbesondere eine vordefinierte Länge aufweisen. Zumindest kann der Endzeitpunkt der Ausführung der Pseudoaufgabe bekannt sein. Der Endzeitpunkt kann beispielsweise bezüglich einzelner, wiederkehrender Zeitpunkte innerhalb eines Taktes, an welchem grundsätzlich eine Übergabe von Ergebnissen des ersten Prozessorkerns an den zweiten Prozessorkern erfolgen kann, bekannt sein. Durch die Ausführung der Pseudoaufgabe wird verhindert, dass die Ergebnisse der ersten Aufgabe durch den ersten Prozessorkern an den zweiten Prozessorkern (und/oder eine dritte Instanz) übergeben werden, bevor der zweite Prozessorkern die Ergebnisse der ersten Aufgabe empfangen oder die Ergebnisse einer selbst bearbeiteten Aufgabe versenden kann, ohne haptische Nachteile für den Anwender des erfindungsgemäßen Verfahrens zu bewirken. Im Ergebnis verbessert sich die Haptik eines durch den ersten Prozessorkern und / oder zweiten Prozessor angesteuerten Aktuators.
-
Anders ausgedrückt schlägt die vorliegende Erfindung eine Steuerung vor, welche es ermöglicht, die Laufzeit einer Aufgabe auf einem ersten Prozessorkern so zu erhöhen, dass das Timing des Gesamtsystems beeinflusst wird. Zum anderen schlägt die vorliegende Erfindung eine Regelung vor, welche die tatsächliche Laufzeit einer Aufgabe analysiert und mit Hilfe der vorstehend beschriebenen Überlegungen die Laufzeit auf eine festgelegte, optimale Laufzeit durch Ausführen einer zusätzlichen Rechenoperation ausregelt.
-
Die Unteransprüche zeigen bevorzugte Weiterbildungen der Erfindung.
-
Das Verfahren kann bevorzugt dann Vorteile bringen, wenn der zweite Prozessorkern vor dem Empfangen des Ergebnisses der ersten Aufgabe eine zweite Aufgabe ausführt. Am Beispiel eines elektromotorisch unterstützten Lenksystems kann die erste Aufgabe beispielsweise die Errechnung eines vom Anwender ausgeübten Handmomentes aus Sensorgrößen umfassen. Die zweite Aufgabe kann beispielsweise die Berechnung einer geeigneten Reaktion (z. B. Sollmoment) umfassen, welches mit einem Elektromotor innerhalb des Lenksystems ausgeübt werden soll. Unterschiedliche Bearbeitungszeiten und Laufzeitdifferenzen für die Bearbeitung der ersten Aufgabe und der zweiten Aufgabe können zu unterschiedlichen Verzögerungen zwischen der Anwendereingabe und der Systemreaktion führen. Gleichmäßige Verzögerungen sind für den Anwender angenehmer und daher wünschenswert. Während gemäß dem Stand der Technik sogenannte Interrupts von einem ersten Prozessorkern zu einem zweiten Prozessorkern gesendet werden, um die Zeitfolge der Bereitstellung der Rechenergebnisse zu synchronisieren beziehungsweise zu homogenisieren, kann die Sendung der Interrupts erfindungsgemäß erübrigt werden. Hierzu kann in Kenntnis der minimalen beziehungsweise maximalen Dauer für die vom ersten Prozessorkern auszuführende Aufgabe die Pseudoaufgabe für die Abarbeitung auf dem ersten Prozessorkern bemessen werden. Auf diese Weise wird ein geeigneter Übergabezeitpunkt aus einer Vielzahl zyklisch wiederkehrender Übergabezeitpunkte sicher eingehalten. Es wird also die Rechenzeit des ersten Prozessorkerns künstlich verlängert und somit der Rechenzeit des zweiten Prozessorkerns angepasst. Auf diese Weise werden die Ergebnisse der ersten Aufgabe und der auf dem zweiten Prozessorkern ausgeführten Aufgabe zu einem identischen Zeitpunkt übergeben. Die Ergebnisse der ersten Aufgabe und der zweiten Aufgabe können in dem zweiten Prozessorkern oder in einer dritten Instanz miteinander kombiniert werden, ohne dass variable Zeitdauern zwischen dem Erhalt der Ergebnisse der ersten Aufgabe und der zweiten Aufgabe die Haptik nachteilig beeinflussen.
-
Das Ausführen der zweiten Aufgabe auf dem zweiten Prozessorkern kann während des ersten möglichen Zeitpunktes zur Übergabe des Ergebnisses der ersten Aufgabe noch andauern. Deshalb wird während dieses Zeitpunkts der erste Prozessorkern noch mit der Ausführung der Pseudoaufgabe beschäftigt.
-
Um bei stark variierender Rechenzeit für die erste Aufgabe und / oder die zweite Aufgabe geeignete Pseudoaufgaben auswählen und ausführen zu können, kann eine voraussichtliche Dauer zur Ausführung der auf dem ersten Prozessorkern auszuführenden ersten Aufgabe (beispielsweise anhand eines Fahrzeugparameter oder eines Fahrzustandsparameters) ermittelt werden. In entsprechender Weise kann auch eine voraussichtliche Dauer zur Ausführung der auf dem zweiten Prozessorkern auszuführenden zweiten Aufgabe ermittelt werden. In Kenntnis der jeweiligen Startzeitpunkte zur Ausführung der ersten und der zweiten Aufgabe kann nun ermittelt werden, wie lange die Ausführung der Pseudoaufgabe im Anschluss an die Beendigung der Ausführung der ersten Aufgabe dauern muss, damit der erste Prozessorkern die Ergebnisse der ersten Aufgabe nicht vor einem geeigneten Übergabezeitpunkt bereitstellt.
-
Wie vorstehend beschrieben kann die Dauer zur Ausführung der ersten Aufgabe von einem Fahrzeugparameter abhängen. Dieser kann beispielsweise sensorisch ermittelt und / oder von einem Bussystem ausgelesen werden. Beispielsweise kann eine Fahrzeuggeschwindigkeit, eine Bauteiltemperatur, ein Spannungsniveau, die Ausführung eines Suchalgorithmus‘ (z. B. Stützstellen in Kennlinien), die Ausführung einer Hintergrundaufgabe o. ä. als Fahrzeugparameter ermittelt und anschließend eine neue Pseudoaufgabe zur Ausführung auf dem ersten Prozessorkern festgelegt werden, wobei die neue Pseudoaufgabe beispielsweise eine längere oder kürzere Dauer zur Ausführung als die erste Pseudoaufgabe verursacht. Dies kann beispielsweise dadurch erfolgen, dass ein in der ersten Pseudoaufgabe enthaltener Befehlssatz zur Erzeugung der neuen Pseudoaufgabe häufiger oder weniger häufig auszuführen ist.
-
Die Pseudoaufgabe kann beispielsweise eine Inkrementierung eines Hardware-Registers oder mehrerer Hardware-Register umfassen. Andere Aufgaben sind ebenfalls möglich, sofern diese nicht bei der Kompilierung auf eine unvorhersehbare Komplexitätsstufe verändert werden. Mit anderen Worten muss auch nach dem Kompilieren der Pseudoaufgabe sichergestellt sein, dass die Dauer zur Ausführung der Pseudoaufgabe bekannt und erfindungsgemäß geeignet ist.
-
Bevorzugt kann ein Datenspeicher ausgelesen werden, in welchem (z. B. als Nur-Lese-Speicher (ROM) ab Werk) Datensätze enthalten sind, anhand welcher eine Dauer zur Ausführung der ersten Aufgabe (gegebenenfalls in Abhängigkeit aktueller Fahrzeug-/Fahrzustandsparameter) sowie eine erforderliche Dauer zur Ausführung der Pseudoaufgabe ermittelt werden können. Beispielsweise kann anhand einer Nachschlagetabelle (englisch „Look-Up-Table“) eine jeweils geeignete Pseudoaufgabe definiert sein, welche anschließend zur Ausführung durch den ersten Prozessorkern erteilt wird. Selbstverständlich kann auch lediglich eine bereits im ersten Prozessorkern gespeicherte Aufgabe hinsichtlich einer Anzahl erforderlicher Wiederholungen konkretisiert werden.
-
Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird eine Anordnung (z. B. ein elektronisches Steuergerät für ein Fortbewegungsmittel) vorgeschlagen, welche einen ersten Prozessorkern und einen zweiten Prozessorkern umfasst. Der erste Prozessorkern und der zweite Prozessorkern sind informationstechnisch miteinander gekoppelt und können als Teile eines Mehrkernprozessors ausgeführt sein. Die Anordnung ist erfindungsgemäß eingerichtet, ein Verfahren auszuführen, wie es oben in Verbindung mit dem erstgenannten Erfindungsaspekt im Detail beschrieben ist, sodass hinsichtlich der Merkmale, Merkmalskombinationen und der sich aus diesen ergebenden Vorteile auf die obigen Ausführungen verwiesen werden kann.
-
Gemäß einem dritten Aspekt der vorliegenden Erfindung wird ein Fortbewegungsmittel vorgeschlagen, welches eine vorgenannte Anordnung aufweist. Die Anordnung kann als elektronisches Steuergerät eines Bremssystems und / oder eines Lenksystems ausgestaltet sein.
-
Unabhängig von den vorgenannten Aspekten kann eine Messung einer tatsächlichen Zeitdauer zur Ausführung der ersten Aufgabe und / oder der zweiten Aufgabe und / oder der Pseudoaufgabe während des Betriebes ermittelt (z. B. gemessen) und durch Anpassung der Länge der Pseudoaufgabe behandelt werden. Somit kann eine Regelung auf eine optimale Solllaufzeit der Verarbeitung mittels des ersten Prozessorkerns erzielt werden.
-
Kurzbeschreibung der Figuren
-
Nachfolgend werden Ausführungsbeispiele der vorliegenden Erfindung anhand der beigefügten Figuren erläutert. In den Figuren sind:
-
1 eine schematische Übersicht über Komponenten eines Ausführungsbeispiels eines erfindungsgemäß ausgestalteten Fortbewegungsmittels;
-
2 eine schematische Darstellung von Komponenten eines Ausführungsbeispiels einer erfindungsgemäßen Anordnung;
-
3 ein erstes Zeitablaufdiagramm zur Veranschaulichung der vorliegenden Erfindung;
-
4 ein zweites Zeitablaufdiagramm zur Veranschaulichung der vorliegenden Erfindung; und
-
5 ein Flussdiagramm veranschaulichend Schritte eines Ausführungsbeispiels eines erfindungsgemäßen Verfahrens.
-
Ausführungsformen der Erfindung
-
1 zeigt einen PKW 10, als Ausführungsbeispiel eines erfindungsgemäßen Fortbewegungsmittels mit einem elektromechanisch unterstützten Lenksystem 9. Von einem Anwender mittels eines Lenkrades 6 ausgeübtes Handmoment wird an eine Zahnstange 11 weitergeleitet, um einen gewünschten Lenkeinschlag zu erzeugen. Um den Komfort und die Fahrsicherheit zu erhöhen, veranlasst ein Elektromotor 3 als Aktuator über ein Ritzel 7 eine Aufbringung eines Unterstützungsmomentes auf die Zahnstange 11. Die Ermittlung des Handmomentes 6 und die Ermittlung eines geeigneten Lenkunterstützungsmoments soll erfindungsgemäß auf zwei Prozessorkerne aufgeteilt werden.
-
2 zeigt einen ersten Prozessorkern 1 und einen zweiten Prozessorkern 2, welche mit Daten aus einem elektromechanisch unterstützten Lenksystem 9 (siehe 1) versorgt werden. Die Prozessorkerne 1, 2 sind informationstechnisch mit einem Taktgeber clk und einem Datenspeicher 12 verbunden. Der Datenspeicher 12 hält Instruktionen zur Ausführung des erfindungsgemäßen Verfahrens bereit. Über dies hält der Datenspeicher 12 ein Nachschlagewerk zur Ermittlung einer erforderlichen Länge einer Pseudoaufgabe bereit, welche auf dem ersten Prozessorkern 1 zur künstlichen Verzögerung einer Übergabe eines Ergebnisses einer ersten Aufgabe auszuführen ist. Wie durch einen Pfeil P veranschaulicht wird das Ergebnis der ersten Aufgabe zum durch die Ausführung der Pseudoaufgabe verzögerten Übergabezeitpunkt an den zweiten Prozessorkern 2 übergeben, um eine konstante zeitliche Zuordnung zwischen der Bereitstellung des Ergebnisses der ersten Aufgabe und der Bereitstellung eines Ergebnisses der zweiten Aufgabe zu gewährleisten.
-
3 zeigt durch einen Taktgeber (siehe clk in 2) vordefinierte Zeitintervalle T1 bis T6, welche jeweils bis zu einer steigenden Flanke des Taktes dauern. Die Zeitpunkte der steigenden Flanken sind mit t1 bis t6 benannt und kennzeichnen gleichzeitig mögliche Übergabezeitpunkte für Ergebnisse auf den Prozessorkernen ausgeführter Aufgaben 4, 8. Während die Ausführung der ersten Aufgabe 4 bereits im Zeitintervall T2 beendet wird und eine Übergabe an eine Folgeinstanz bereits zum Zeitpunkt t2 erfolgen könnte, ist die Ausführung der zweiten Aufgabe 8 erst im vierten Zeitintervall T4 beendet, sodass ein Ergebnis der zweiten Aufgabe 8 erst zum Zeitpunkt t4 übergeben werden könnte. Erfindungsgemäß wird daher im Anschluss an die Ausführung der ersten Aufgabe 4 eine Pseudoaufgabe 5 mit vordefinierter Länge ausgeführt. Die Länge des Pseudocodes 5 ist so bemessen, dass der Pseudocode 5 ebenfalls erst im Zeitintervall T4 vollständig ausgeführt ist und die Ergebnisse der ersten Aufgabe 4 somit ebenfalls erst zum Übergabezeitpunkt t4 (also zeitgleich mit den Ergebnissen der zweiten Aufgabe 8) übergeben werden. Im Beispiel sind die Aufgaben 4, 8 Lenkfunktionen eines Fortbewegungsmittels zugeordnet, welche nach jeweils 1,2 ms erneut berechnet werden. Die Latenzzeiten des Systems, welche die Zeit zwischen einer Fahrerwunscherfassung über das Handmoment und die Umsetzung der Lenkunterstützung durch den Elektromotor beschreibt, werden durch die Ausführung der Pseudoaufgabe 5 auf dem ersten Prozessorkern daher einander angepasst, wodurch die Anwenderakzeptanz und der Anwenderkomfort steigen.
-
4 zeigt ein Zeitdiagramm zur Ausführung unterschiedlich langer erster Aufgaben 4, 4‘ auf einem ersten Prozessorkern, im Ansprechen worauf auch die Komplexität und somit die Länge der Pseudoaufgabe 5, 5‘ angepasst wird, um eine jeweils feste Bearbeitungsdauer von 0,7 ms zu erzielen. Die Ausführung der ersten Aufgabe 4 startet bei 0 ms und endet bei 0,5 ms. Zwischen 0,5 ms und 0,7 ms wird der Pseudocode 5 ausgeführt. Anschließend erfolgt (nicht dargestellt) die Übergabe der Ergebnisse der ersten Aufgabe 4. Nach Ablauf der Zykluszeit von 1,2 ms beginnt bei 1,2 ms die Ausführung einer aufgrund eines geänderten Fahrzustandsparameters veränderten ersten Aufgabe 4‘. Die Komplexität der für die Lenkfunktion auf dem ersten Prozessorkern auszuführende erste Aufgabe 4‘ hat sich sichtlich verringert und dauert lediglich 0,3 ms bis zum Zeitpunkt 1,5 ms. Entsprechend wird ein verlängerter Pseudocode 5‘ verwendet, um eine feste Bearbeitungszeit von 0,7 ms bis zum Zeitpunkt 1,9 ms einzuhalten. Durch die Verwendung unterschiedlich komplexer Pseudoaufgaben können betriebsbedingt unterschiedlich komplex ausfallende Aufgaben künstlich verlängert werden und somit vorhersehbare Zeitfolgen bei der Verwendung mehrerer Prozessorkerne erzielt werden.
-
5 zeigt Schritte eines Ausführungsbeispiels eines erfindungsgemäßen Verfahrens zur Verwendung zweier Prozessorkerne zur Ansteuerung eines haptisch relevanten Aktuators. In einem ersten Schritt 100 wird eine erste Aufgabe auf dem ersten Prozessorkern ausgeführt. Auf dem zweiten Prozessorkern wird in Schritt 200 vor einem Empfangen eines Ergebnisses der ersten Aufgabe eine zweite Aufgabe ausgeführt. In Schritt 300 werden Daten aus einem Speicher ausgelesen, anhand welcher in Schritt 400 eine voraussichtliche Dauer zur Ausführung der auf dem ersten Prozessorkern auszuführenden ersten Aufgabe ermittelt wird und in Schritt 500 eine voraussichtliche Dauer zur Ausführung der auf dem zweiten Prozessorkern auszuführenden zweiten Aufgabe ermittelt wird. In Schritt 600 wird eine Dauer zur Ausführung der Pseudoaufgabe anhand der ausgelesenen Daten ermittelt. In Schritt 700 wird die Pseudoaufgabe auf dem ersten Prozessorkern ausgeführt, um die Ergebnisse der ersten Aufgabe in Schritt 800 nicht vor einem geeigneten Zeitpunkt an den zweiten Prozessorkern zu übergeben. Hierzu dauert die Ausführung der Pseudoaufgabe während der Ausführung der zweiten Aufgabe zumindest so lange an, dass das Ende der Pseudoaufgabe und das Ende der zweiten Aufgabe bevorzugt in einem selben Zeitraum zwischen zwei möglichen, zueinander benachbarten Übergabezeitpunkten liegen. In Schritt 900 wird das Ergebnis der ersten Aufgabe mit dem Ergebnis der zweiten Aufgabe gemeinsam verarbeitet. In Schritt 1000 wird ein veränderter Fahrzeugparameter in Form einer Bauteiltemperatur ermittelt. Da die veränderte Bauteiltemperatur eine veränderte Ausführungslänge der auf dem ersten Prozessorkern auszuführenden ersten Aufgabe bedeutet, wird im Ansprechen darauf in Schritt 1100 eine neue Pseudoaufgabe zur Ausführung auf dem ersten Prozessorkern festgelegt, welche eine veränderte Länge zur Ausführung als die zuvor definierte Pseudoaufgabe verursacht.
-
Im Ergebnis führen Laufzeitunterschiede für die Bearbeitung auf mehrere Prozessorkerne aufgeteilter Aufgaben innerhalb eines haptisch relevanten Systems nicht zu stark variierenden Rückmeldungen an einen Anwender.
-
Auch wenn die erfindungsgemäßen Aspekte und vorteilhaften Ausführungsformen anhand der in Verbindung mit den beigefügten Zeichnungsfiguren erläuterten Ausführungsbeispiele im Detail beschrieben worden sind, sind für den Fachmann Modifikationen und Kombinationen von Merkmalen der dargestellten Ausführungsbeispiele möglich, ohne den Bereich der vorliegenden Erfindung zu verlassen, deren Schutzbereich durch die beigefügten Ansprüche definiert wird.
-
Bezugszeichenliste
-
- 1
- erster Prozessorkern
- 2
- zweiter Prozessorkern
- 3
- Elektromotor
- 4
- erste Aufgabe
- 4‘
- erste Aufgabe veränderter Komplexität
- 5
- Pseudocode
- 5‘
- Pseudocode veränderter Komplexität
- 6
- Lenkhandrad
- 7
- Ritzel
- 8
- zweite Aufgabe
- 9
- elektromechanisch unterstütztes Lenksystem
- 10
- PKW
- 11
- Zahnstange
- 12
- Datenspeicher
- 19
- Latenzzeit
- 100–1100
- Verfahrensschritte
- clk
- Taktgeber (englisch „Clock“)
- P
- Pfeil
- t
- Zeit
- t1–t6
- Übergabezeitpunkte
- T1–T6
- Zeitintervalle
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
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.
-
Zitierte Patentliteratur
-