-
EINLEITUNG
-
Die vorliegende Offenbarung betrifft ein System und ein Verfahren zum Ausführen von Berechnungsaufgaben, die bei dem Betreiben eines Fahrzeugs beteiligt sind, und insbesondere ein System und ein Verfahren zum Teilen von Berechnungsaufgaben, die beim Betreiben des Fahrzeugs zwischen mehreren Prozessoren beteiligt sind.
-
Ein eingebetteter Prozessor eines Fahrzeugs führt die verschiedenen Rechenoperationen aus, die beim Betrieb des Fahrzeugs beteiligt sind. Einige Rechenoperationen können sehr aufgabenkritisch sein, wie z. B. Objektwahrnehmungs- und Erfassungsvorgänge, Fahrzeugdynamiksteuerung (z. B. Bremsen, Lenken, Vortrieb) usw. Andere Rechenoperationen, wie z. B. Unterhaltungsanwendungen, Gestensteuerung für Armaturenbrettoperationen, Streckenplanung usw., sind für den Betrieb des Fahrzeugs nicht kritisch und können durchgeführt werden, wenn der eingebettete Prozessor verfügbare Ressourcen hat. Aufgrund des Lebenszyklus von Fahrzeugen kann ein eingebetteter Prozessor für einen Betrieb von 10 bis 15 Jahren benötigt werden. In diesem Zeitraum wird erwartet, dass Technologien und Programme geschaffen werden, die die derzeitige Kapazität des eingebetteten Prozessors übersteigen. Dementsprechend ist es wünschenswert, ein Verfahren zur Auslagerung bestimmter Berechnungsaufgaben von dem eingebetteten Prozessor zu einem Fernprozessor bereitzustellen, um einen sicheren und ununterbrochenen Betrieb des Fahrzeugs sicherzustellen.
-
KURZDARSTELLUNG
-
In einer exemplarischen Ausführungsform wird ein Verfahren zum Betreiben eines Fahrzeugs offenbart. Das Verfahren beinhaltet das Empfangen einer Berechnungsaufgabe an einem eingebetteten Prozessor des Fahrzeugs, die einen Betrieb des Fahrzeugs beinhaltet, die Auslagerung der Berechnungsaufgabe von dem eingebetteten Prozessor zu dem Fernprozessor, das Ausführen der Berechnungsaufgabe an dem Fernprozessor, um ein Teilergebnis zu erhalten, das Bereitstellen des Teilergebnisses für den eingebetteten Prozessor und Ausführen der Berechnungsaufgabe an dem eingebetteten Prozessor beginnend mit dem von dem Fernprozessor bereitgestellten Teilergebnis.
-
Das Verfahren beinhaltet ferner das Bestimmen einer Dienstequalitäts-Metrik für die Berechnungsaufgabe an dem eingebetteten Prozessor, das Bestimmen eines Ausführungsparameters zum Ausführen der Berechnungsaufgabe an einem Fernprozessor an dem eingebetteten Prozessor und die Auslagerung der Berechnungsaufgabe von dem eingebetteten Prozessor zu dem Fernprozessor, wenn der Ausführungsparameter des Fernprozessors die Dienstequalitäts-Metrik für die Berechnungsaufgabe erfüllt. Wenn der Ausführungsparameter des Fernprozessors die Dienstequalitäts-Metrik für die Berechnungsaufgabe nicht erfüllt, wird die Berechnungsaufgabe im eingebetteten Prozessor ausgeführt.
-
Die Dienstequalitäts-Metrik ist mindestens eine von einer Zuverlässigkeitsmetrik, einer Latenzmetrik und einer Genauigkeitsmetrik für die Berechnungsaufgabe. In einigen Ausführungsformen beinhaltet das Bestimmen des Ausführungsparameters des Fernprozessors das Bestimmen einer Latenz einer Kommunikationsverbindung zwischen dem eingebetteten Prozessor und dem Fernprozessor. Außerdem wird die Berechnungsaufgabe im eingebetteten Prozessor ausgeführt, wenn ein Ausführungsparameter des Fernprozessors die Dienstequalitäts-Metrik für die Berechnungsaufgabe nicht erfüllt, während der Fernprozessor die Berechnungsaufgabe ausführt.
-
In einer anderen exemplarischen Ausführungsform wird ein Computersystem für das Fahren eines Fahrzeugs offenbart. Das Computersystem beinhaltet einen eingebetteten Prozessor des Fahrzeugs und einen Fernprozessor. Der eingebettete Prozessor des Fahrzeugs ist konfiguriert, um eine Berechnungsaufgabe zu empfangen, die einen Betrieb des Fahrzeugs beinhaltet, und die Berechnungsaufgabe auszulagern. Der Fernprozessor ist konfiguriert, um die ausgelagerte Berechnungsaufgabe von dem eingebetteten Prozessor zu empfangen, die Berechnungsaufgabe zum Erhalt eines Teilergebnisses auszuführen, und das Teilergebnis dem eingebetteten Prozessor bereitzustellen. Der eingebettete Prozessor ist ferner dazu konfiguriert, die Berechnungsaufgabe unter Verwendung des von dem Fernprozessor bereitgestellten Teilergebnisses auszuführen.
-
Der eingebettete Prozessor ist ferner konfiguriert zum Bestimmen einer Dienstequalitäts-Metrik für die Berechnungsaufgabe, zum Bestimmen eines Ausführungsparameters zum Ausführen der Berechnungsaufgabe an dem Fernprozessor und zur Auslagerung der Berechnungsaufgabe an den Fernprozessor, wenn der Ausführungsparameter des Fernprozessors die Dienstequalitäts-Metrik für die Berechnungsaufgabe erfüllt. Wenn der Ausführungsparameter des Fernprozessors die Dienstequalitäts-Metrik für die Aufgabe nicht erfüllt, ist der eingebettete Prozessor so konfiguriert, dass er die Berechnungsaufgabe selbst ausführt.
-
Die Dienstequalitäts-Metrik beinhaltet mindestens eines von einer Zuverlässigkeitsmetrik, einer Latenzmetrik und einer Genauigkeitsmetrik für die Berechnungsaufgabe. Der Ausführungsparameter des Fernprozessors beinhaltet eine Latenz einer Kommunikationsverbindung zwischen dem eingebetteten Prozessor und dem Fernprozessor. Der eingebettete Prozessor führt die Berechnungsaufgabe aus, wenn ein Ausführungsparameter des Fernprozessors die Dienstequalitäts-Metrik für die Berechnungsaufgabe nicht erfüllt, während der Fernprozessor die Berechnungsaufgabe ausführt. In verschiedenen Ausführungsformen ist der Fernprozessor ein Cloud-Server, wobei ein tragbarer Prozessor innerhalb des Fahrzeugs und/oder ein eingebetteter Prozessor eines anderen Fahrzeugs mitgeführt wird.
-
In noch einer anderen exemplarischen Ausführungsform wird ein Fahrzeug offenbart. Das Fahrzeug beinhaltet einen eingebetteten Prozessor. Der eingebettete Prozessor ist konfiguriert, um eine Anweisung zum Ausführen einer einen Betrieb des Fahrzeugs beinhaltenden Berechnungsaufgabe zu empfangen, die Computeraufgabe an einen Fernprozessor auszulagern, ein Teilergebnis der Berechnungsaufgabe von dem Fernprozessor zu empfangen und die Berechnungsaufgabe beginnend mit dem von dem Fernprozessor bereitgestellten Teilergebnis auszuführen.
-
Der eingebettete Prozessor ist ferner konfiguriert zum Bestimmen einer Dienstequalitäts-Metrik für die Berechnungsaufgabe, zum Bestimmen eines Ausführungsparameters eines Fernprozessors zum Ausführen der Berechnungsaufgabe an dem Fernprozessor und zur Auslagerung der Berechnungsaufgabe an den Fernprozessor, wenn der Ausführungsparameter des Fernprozessors die Dienstequalitäts-Metrik für die Berechnungsaufgabe erfüllt. Der eingebettete Prozessor ist ferner konfiguriert zum Ausführen der Berechnungsaufgabe, wenn der Ausführungsparameter des Fernprozessors die Dienstequalitäts-Metrik für die Berechnungsaufgabe nicht erfüllt.
-
Die Dienstequalitäts-Metrik beinhaltet mindestens eines von einer Zuverlässigkeitsmetrik, einer Latenzmetrik und einer Genauigkeitsmetrik für die Berechnungsaufgabe. Der Ausführungsparameter des Fernprozessors beinhaltet eine Latenz einer Kommunikationsverbindung zwischen dem eingebetteten Prozessor und dem Fernprozessor. Der eingebettete Prozessor quantifiziert eine Aufgabenkritikalität der Berechnungsaufgabe für das Fahrzeug und lagert die Berechnungsaufgabe aus, wenn die zugeordnete Aufgabenkritikalität ein ausgewähltes Kriterium erfüllt. In verschiedenen Ausführungsformen ist der Fernprozessor ein Cloud-Server, wobei ein tragbarer Prozessor innerhalb des Fahrzeugs und/oder ein eingebetteter Prozessor eines anderen Fahrzeugs mitgeführt wird.
-
Die oben genannten Eigenschaften und Vorteile sowie anderen Eigenschaften und Funktionen der vorliegenden Offenbarung gehen aus der folgenden ausführlichen Beschreibung in Verbindung mit den zugehörigen Zeichnungen ohne weiteres hervor.
-
Figurenliste
-
Andere Merkmale, Vorteile und Details erscheinen nur exemplarisch in der folgenden ausführlichen Beschreibung der Ausführungsformen, wobei sich die ausführliche Beschreibung auf die Zeichnungen bezieht, wobei gilt:
- 1 veranschaulicht ein exemplarisches Computersystem, das den Betrieb eines Fahrzeugs ermöglicht;
- 2 zeigt ein schematisches Diagramm, das Details des Computersystems von 1 zeigt;
- 3 zeigt eine grafische Darstellung eines Messfehlers zur Latenz für eine Run-to-Complete-Aufgabe;
- 4 zeigt ein Diagramm des Messfehlers zur Latenz für eine Non-Run-to-Complete-Aufgabe;
- 5 zeigt einen veranschaulichenden „Fischaugen“-Effekt bei dem progressiven Berechnen einer Non-Run-to-Complete-Aufgabe;
- 6 zeigt ein Ablaufdiagramm, das ein Entscheidungsverfahren für die Auslagerung einer Berechnungsaufgabe an einen Fernprozessor in einer Ausführungsform darstellt; und
- 7 zeigt ein Ablaufdiagramm, das ein Entscheidungsverfahren zum Ausführen einer Aufgabe in dem Fall eines Auftretens eines Fehlers in Bezug auf das Ausführen der Aufgabe an einem Fernprozessor darstellt.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die folgende Beschreibung ist lediglich exemplarischer Natur und nicht dazu gedacht, die vorliegende Erfindung in ihren An- oder Verwendungen zu beschränken. Es sollte verstanden werden, dass in den Zeichnungen entsprechende Bezugszeichen gleiche oder entsprechende Teile und Merkmale bezeichnen.
-
Gemäß einer exemplarischen Ausführungsform der Erfindung veranschaulicht 1 ein exemplarisches Computersystem 100, das den Betrieb eines Fahrzeugs 102 ermöglicht. Das Computersystem 100 beinhaltet das Fahrzeug 102 in Kommunikation mit einem Fernprozessor 120 über eine Kommunikationsverbindung 115. Das Fahrzeug 102 kann ein Fahrzeug sein, das von einem Fahrer betrieben wird oder es kann ein selbstfahrendes oder autonomes Fahrzeug sein. Das Fahrzeug 102 enthält einen Prozessor, der hierin als ein eingebetteter Prozessor 104 bezeichnet wird, der verschiedene Computerprogramme, Computerfunktionen oder Computeraufgaben ausführt, die mit dem Betrieb des Fahrzeugs 102 in Beziehung stehen.
-
Das Fahrzeug 102 beinhaltet ferner einen oder mehrere Umgebungssensoren 106, die verschiedene Messungen über die Umgebung des Fahrzeugs 102 erhalten können, wie die Entfernung und die Geschwindigkeit verschiedener Objekte in der Fahrzeugumgebung. Diese Umgebungssensoren 106 können zum Beispiel Radar, LIDAR und Kameras umfassen, die für die Messung der Entfernung, Orientierung und/oder Geschwindigkeit verschiedener Objekte in Bezug auf das Fahrzeug 102 verwendet werden können. Das Fahrzeug 102 enthält ferner einen oder mehrere interne Zustandssensoren 108 zum Erhalten von Messungen bezüglich der internen Abläufe des Fahrzeugs 102 oder der Fahrzeugkomponenten. So kann beispielsweise ein interner Zustandssensor 108 einen Bremssensor, einen Beschleunigungssensor, einen Sensor für die Bestimmung der Lenkraddrehung oder einen anderen Sensor beinhalten, der einen mit dem Grundbetrieb des Fahrzeugs, wie Antrieb, Bremsen, Lenken, etc. in Beziehung stehenden Parameter erfasst. Der interne Zustandssensor 108 kann ferner weniger aufgabenkritische Aspekte des Fahrzeugs 102 messen, wie z. B. Streckenkartierung und -planung, Unterhaltungssysteme, Klimaanlagenniveaus usw. In einer Ausführungsform werden die durch die Umgebungssensoren 106 und durch die internen Zustandssensoren 108 erhaltenen Daten zu dem eingebetteten Prozessor 104 gesendet, der die Daten verarbeitet, um eine vom Fahrzeug 102 auszuführende Aktion zu bestimmen, und diese Aktion dann in dem Fahrzeug 102 implementiert.
-
Das Fahrzeug 102 beinhaltet ferner ein Kommunikationsmodul 110, das die Kommunikationsverbindung 115 zwischen dem eingebetteten Prozessor 104 und dem Fernprozessor 120 bereitstellt. Der Fernprozessor 120 kann ein Fernserver sein, der üblicherweise als Cloud-Computer oder „Cloud“ bezeichnet wird. Die Kommunikationsverbindung 115 kann ein beliebiger geeigneter drahtloser Kommunikationskanal sein, wie z. B. ein zellulärer Kommunikationskanal, ein Funkfrequenzkommunikationskanal usw. In einer anderen Ausführungsform kann der Fernprozessor ein Prozessor 120b einer tragbaren Vorrichtung sein, wie beispielsweise ein Laptop, ein Tablet, ein Smartphone oder eine andere tragbare Vorrichtung, die in einer Kabine des Fahrzeugs 102 transportiert werden kann. Eine Kurzstreckenkommunikationsverbindung 115b, wie etwa eine Bluetooth-Kommunikationsverbindung oder eine drahtlose Kommunikationsverbindung, kann für die Datenkommunikation zwischen dem eingebetteten Prozessor 104 und der tragbaren Vorrichtung 120b verwendet werden. In noch einer anderen Ausführungsform kann der Remote-Computer 120 ein Prozessor 120c eines anderen Fahrzeugs 130 sein, während der eingebettete Prozessor 104 und der Fernprozessor 120c über eine Kommunikationsverbindung 115c zwischen dem Fahrzeug 102 und dem anderen Fahrzeug 130 kommunizieren. In verschiedenen Ausführungsformen ist die Kommunikationsverbindung 115c zwischen dem Fahrzeug 102 und dem anderen Fahrzeug 130 ein visueller Lichtkommunikationskanal.
-
Die Anforderungen an den eingebetteten Prozessor 104 können abhängig von der Art des Fahrzeugs 102 sowie der Kritikalität einer bestimmten Berechnungsaufgabe variieren. Je kritischer die Aufgabe ist, einen sicheren Betrieb des Fahrzeugs 102 zu gewährleisten, desto größer ist die Nachfrage nach einer hohen Dienstequalität von dem eingebetteten Prozessor 104. Aufgaben können basierend auf den Dienstequalitätanforderungen kategorisiert werden, die die Aufgabe an dem eingebetteten Prozessor 104 oder an einem beliebigen Prozessor, der die Aufgabe ausführt, ausführt. Aufgabenkritische Aufgaben stellen hohe Dienstequalitätanforderungen an den Prozessor. Semi-aufgabenkritische Aufgaben stellen mittlere Dienstequalitätanforderungen an den Prozessor. Opportunistische Aufgaben stellen niedrige Dienstequalitätanforderungen an den Prozessor. Andere Kategorien von Aufgaben, die andere Dienstequalitätanforderungen an den Prozessor definieren, können ebenfalls verwendet werden, obwohl sie hierin nicht explizit erörtert werden.
-
Aufgabenkritische Aufgaben beinhalten beispielsweise Wahrnehmungsaufgaben wie das Erkennen anderer Fahrzeuge und Fußgänger; Sensorfusion zum Korrelieren von Signalen von verschiedenen Sensoren; Aufgaben wie Bremsen, Lenken, Antriebsfunktionen usw., die eine dynamische Steuerung des Fahrzeugs bereitstellen; Kurzzeit-Trajektorienplanung; und Kurzzeitbestimmung des befahrbaren Raums des Fahrzeugs 102.
-
Semi-aufgabenkritische Aufgaben können beispielsweise eine Langzeitplanung beinhalten (z. B. Trajektorienplanung für ein nächstes oder bevorstehendes Straßensegment); langfristige befahrbare Raumbestimmung basierend auf bereits von anderen Fahrzeugen erfassten Objekten oder von in detaillierten Karten eingebetteten statischen Objekten; langfristige taktische Fahrentscheidungen, wie Spurwechsel und Wendungen, basierend auf Eingaben von der eingebetteten Fahrzeugdomäne; statische Streckenplanung zu Beginn einer automatisierten Fahrsitzung, basierend auf Karteninformationen; dynamische Streckenanpassung; kontinuierliche Berechnung eines sicheren Zustands des Fahrzeugs (der teilweise auf Eingaben von eingebetteten Fahrzeugwahrnehmungsfunktionen basieren kann); Sicherheitsüberwachung (z. B. kontinuierliche Überprüfung der Richtigkeit der Steuerungsanwendung) und Überwachung des Status des Fahrers.
-
Opportunistische Aufgaben beinhalten beispielsweise Infotainment/Entertainment-Anwendungs-Auslagerung; und Aktionserkennung und Gestensteuerung, die es einem Fahrer ermöglichen, eine Geste an einer Schnittstelle des Fahrzeugs auszuführen, beispielsweise um eine Radiostation auszuwählen.
-
Damit der eingebettete Prozessor 104 in der Lage ist, aufgabenkritische Aufgaben mit einer hohen Dienstgüte zu versehen, stellt die vorliegende Offenbarung ein Verfahren zum Teilen von Aufgaben zwischen dem eingebetteten Prozessor 104 und einem anderen Prozessor, wie dem Cloud-Computer 120, bereit. Das Verfahren unterteilt Aufgaben geeignet zwischen dem eingebetteten Prozessor 104 und dem Fernprozessor 120, sodass aufgabenkritische Aufgaben für den Betrieb des Fahrzeugs ohne Unterbrechung ausgeführt werden. Die Kritikalität einer Aufgabe kann anhand von Dienstequalitäts-Metriken quantifiziert werden, die mit der Aufgabe verknüpft sind. Beispielhafte Dienstequalitäts-Metriken beinhalten Zuverlässigkeit (α), Latenz (τ) und Genauigkeit (ε). Verschiedene Berechnungsaufgaben und ihre Dienstequalitäts-Metriken werden hierin erörtert.
-
Wahrnehmungsaufgaben erfassen statische und sich bewegende Objekte im Bereich der Umgebungssensoren des Fahrzeugs 102. Diese Aufgaben sind zeitkritisch zum Bestimmen einer Kurzzeittrajektorie des Fahrzeugs 102 und zum Steuern verschiedener Steuerkomponenten des Fahrzeugs 102, um eine sichere Bewegung des Fahrzeugs bereitzustellen. Wahrnehmungsaufgaben haben niedrige Latenzanforderungen (τ-Anforderungen), was bedeutet, dass die Wahrnehmungsaufgaben schnell und mit wenig oder ohne Verzögerung ausgeführt werden müssen. Die Wahrnehmungsaufgaben erfordern ferner eine hohe Zuverlässigkeit (α) und eine hohe Genauigkeit (ε).
-
Die Kurzzeit-Trajektorienplanung bestimmt die unmittelbare Trajektorie für das Fahrzeug. Die Trajektorie, die durch diese Kurzzeitplanung bestimmt wird, berücksichtigt den existierenden Kontext der Umgebung (d. h. das Vorhandensein von statischen und/oder sich bewegenden Objekten). Diese Aufgabe wird im Allgemeinen mit einer hohen Frequenz im Vergleich zu ihren Langzeitgegenstücken ausgeführt, die hierin erörtert werden. Kurzzeit-Trajektorienplanungsaufgaben erfordern eine geringe Latenz (τ), eine hohe Zuverlässigkeit (α) und eine hohe Genauigkeit (ε).
-
Die Langzeittrajektorienplanung plant Strecken und Trajektorien für die Distanzen außerhalb der Reichweite der Fahrzeugwahrnehmung und -erkennung. Bei der Langzeittrajektorienplanung werden die im Bereich der Fahrzeugsensoren erkannten Objekte nicht berücksichtigt, sondern es werden High-Definition-Karten mit statischen Objekt- und Spurinformationen sowie Informationen über sich bewegende Objekte oder neu erkannte statische Objekte, die von anderen Fahrzeugen erkannt werden, verwendet. Wenn sich das Fahrzeug innerhalb der Reichweite von Objekten befindet, die während der Langzeittrajektorienplanung bestimmt wurden, kann die Kurzzeitplanung Ergebnisse der Langzeitplanung anpassen, um ein sicheres Fahren zu ermöglichen. Langzeittrajektorienplanungsaufgaben erfordern eine hohe Latenz (τ), jedoch eine mittleres Niveau an Zuverlässigkeit (α) und ein mittleres Niveau an Genauigkeit (ε).
-
Aufgaben zur Berechnung des sicheren Zustands berechnen einen sicheren Zustand des Fahrzeugs und bestimmen, wie ein sicherer Zustand erreicht werden kann, falls er benötigt wird (z. B. „sichere Trajektorie“). Aufgaben zur Berechnung des sicheren Zustands ähneln Langzeitplanungsaufgaben. Die Aufgaben zur Berechnung des sicheren Zustands planen jedoch, was im Falle eines Komponentenfehlers oder einer Systemfehlfunktion zu tun ist. Berechnungen des sicheren Zustands können beispielsweise Berechnungen beinhalten, die eine „minimale Risikobedingung“ bestimmen. Eine minimale Risikobedingung ist ein Terminologiestandard für automatisierte, autonome und selbstfahrende Fahrzeuge, die für Stufe 4 (hohe Automatisierung) und Stufe 5 (vollständige Automatisierung) in SAE International J3016 definiert sind. Sichere Aufgaben zur Berechnung des sicheren Zustands ermöglichen eine hohe Latenzzeit (τ), erfordern ein hohes Maß an Zuverlässigkeit (α) und erfordern ein hohes Maß an Genauigkeit (ε).
-
Fahrzeugdynamiksteuerungsaufgaben ermöglichen eine Längs- und Seitensteuerung des Fahrzeugs, um der Trajektorie zu folgen, die durch den Kurzzeit-Trajektorienplaner bereitgestellt wird, oder im Falle von Fehlern oder Fehlfunktionen durch die Trajektorie des sicheren Zustands. Die Fahrzeugdynamiksteuerungsaufgaben berücksichtigen die von den Wahrnehmungsaufgaben erfassten Objekte. Fahrzeugdynamiksteuerungsaufgaben erfordern eine niedrige Latenz (τ), eine hohe Zuverlässigkeit (α) und eine hohe Genauigkeit (ε).
-
Aufgrund der relativen Wichtigkeit von aufgabenkritischen Aufgaben werden diese Aufgaben wahrscheinlich in dem eingebetteten Prozessor 104 ausgeführt, damit sie rechtzeitig abgeschlossen werden können. Das Senden solcher Aufgaben an einen Fernprozessor kann zu Verzögerungen und Zuverlässigkeitsproblemen führen, die zu einer schlechten Leistung der Aufgaben beitragen können. Andererseits können semi-aufgabenkritische Aufgaben und opportunistische Aufgaben an einem Fernprozessor ausgeführt werden, ohne die Leistung dieser Aufgaben in Abhängigkeit von mehreren Parametern zu beeinträchtigen.
-
2 zeigt ein schematisches Diagramm 200, das Details des Computersystems 100 von 1 zeigt. Das Computersystem enthält den lokalen oder eingebetteten Prozessor 104 und den Fernprozessor 120, der über den Kommunikationskanal 115 kommuniziert.
-
Der eingebettete Prozessor 104 betreibt ein geeignetes Betriebssystem 202, das auf dem eingebetteten Prozessor 104 ausführbar ist. Das Betriebssystem 202 betreibt eine lokale virtuelle Maschine 204 zum Emulieren eines Betriebssystems zum Ausführen von Betrieben an dem Fahrzeug 102 und eine entfernte virtuelle Maschine 206, um ein Betriebssystem zu emulieren, das mit dem Betriebssystem 230 des Fernprozessors 120 kompatibel ist. Ein Zugangssteuermodul 208 und ein Ressourcenzuweisungsmodul 210 werden auf den virtuellen Maschinen 204 und 206 ausgeführt. Das Zugangssteuermodul 208 bewertet, ob eine angeforderte Aufgabe durch die gegenwärtig verfügbaren Ressourcen ausgeführt werden kann. Wenn nicht, kann die angeforderte Aufgabe direkt durch das Zugangssteuermodul 208 ohne weitere Verarbeitung abgelehnt werden. Wenn das Zugangssteuermodul 208 bestimmt, dass die angeforderte Aufgabe unter Verwendung verfügbarer Ressourcen durchgeführt werden kann, führt das System die nächsten Schritte durch und übergibt die Aufgabe an das Ressourcenzuweisungsmodul 210. Das Ressourcenzuweisungsmodul 210 entscheidet, ob eine Berechnungsaufgabe, die an dem eingebetteten Prozessor 104 empfangen wurde, zu dem entfernten Prozessor 120 ausgelagert werden kann. Das Ressourcenzuweisungsmodul 210 kann eine statische Entscheidung oder eine dynamische Entscheidung treffen. Die statische Entscheidung basiert auf einer vorher festgelegten Regel bezüglich der Ressourcen- und/oder Datenzuweisung. Eine dynamische Entscheidung kann Elemente wie die aktuelle Qualität der Verbindung zwischen dem eingebetteten Prozessor 104 und dem Fernprozessor 120, die Kritikalität der Computeraufgabe zum Betreiben des Fahrzeugs 102, die Verfügbarkeit von Ressourcen bei dem eingebetteten Prozessor 104, die Verfügbarkeit von Ressourcen von dem Fernprozessor 120 usw. berücksichtigen.
-
Die Schicht über dem Zugangssteuermodul 208 und dem Ressourcenzuweisungsmodul 210 beinhaltet einen lokalen Ausführungsmanager 212, einen Dienstqualitäts-Manager (QoS-Manager) 214 und einen Laufzeitauslagerungsmanager 216, die unterhalb einer Anwendungsabstraktionsschicht 218 zusammenarbeiten. Der lokale Ausführungsmanager 212 führt die Eingabe und Ausgabe von Berechnungsaufgaben und die Ausführung von lokal ausgeführten Berechnungsaufgaben durch.
-
Der QoS-Manager 214 profiliert verschiedene Verbindungsmetriken zwischen dem eingebetteten Prozessor 104 und dem Fernprozessor 120. Der QoS-Manager 214 enthält einen Anwendungsprofiler 220, einen CPU-Profiler 222 und einen Netzwerkschätzer 224. Der Anwendungsprofiler 220 verfolgt die Dienstequalitäts-Metriken verschiedener Computeraufgaben/Anwendungen. Der CPU-Profiler 222 überwacht die Ressourcen des eingebetteten Prozessors 104, um in der Lage zu sein, die Fähigkeit des eingebetteten Prozessors 104 zu bestimmen, eine ausgewählte Aufgabe/Anwendung effektiv zu verarbeiten. Der Netzwerkschätzer 224 verfolgt Verbindungsmetriken verschiedener Kommunikationsverbindungen, wie Datenrate, Verbindungsstabilität, Kanallatenz usw.
-
Der Laufzeitauslagerungsmanager 216 führt ein Entscheidungsverfahren aus, um zu bestimmen, welche Aufgaben von dem lokalen Ausführungsmanager 212 des eingebetteten Prozessors 104 ausgeführt werden sollen und welche zu dem Fernprozessor 120 ausgelagert werden können. Wenn eine Aufgabe zu dem Fernprozessor 120 ausgelagert werden kann, sendet der Laufzeitauslagerungsmanager 216 die Aufgaben unter Verwendung des Kommunikationsmoduls 226 an den Fernprozessor 120.
-
Der Fernprozessor 120 enthält das Betriebssystem 230, auf dem ein geeigneter Virtueller-Maschinen-Emulator 232 läuft. Ein auf der virtuellen Maschine laufender Auslagerungsserver 234 empfängt die Aufgabe von dem eingebetteten Prozessor 104, führt eine von dem eingebetteten Prozessor 104 empfangene Aufgabe aus und sendet die Aufgabe zurück zu dem eingebetteten Prozessor 104. In verschiedenen Ausführungsformen kann der Fernprozessor 120 die Aufgabe als eine abgeschlossene Aufgabe oder als eine teilweise abgeschlossene Aufgabe zurücksenden. Der Fernprozessor 120 beinhaltet ferner eine Anwendungsabstraktionsschicht 236.
-
Die Aufgaben, die an dem eingebetteten Prozessor
104 ausgeführt werden, können entweder eine Run-to-Complete-Aufgabe oder eine Non-Run-to-Complete-Aufgabe sein. Eine Run-to-Complete-Aufgabe einhaltet im Allgemeinen aufgabenkritische Aufgaben, wie z. B. Erfassung, Wahrnehmung und Fahrzeugsteuerungsaufgaben. Solche Aufgaben müssen entweder ausgeführt werden, bis sie abgeschlossen sind oder überhaupt nicht ausgeführt werden. Der Laufzeitauslagerungsmanager
216 entscheidet basierend auf verschiedenen Dienstequalitäts-Metriken für die Aufgabe, wie z. B. Latenz (τ), Zuverlässigkeit (α) und geschätzter Fehler (ε), ob eine bestimmte aufgabenkritische Aufgabe dem Fernprozessor
120 zugewiesen werden kann. Die Bestimmung verschiedener Ausführungsparameter, die für eine Aufgabe benötigt werden, ist in den jeweiligen Gleichungen (1)-(3) unten dargestellt:
-
In Gl. (1),
ist ein erwarteter Latenzwert zum Berechnen der i. Aufgabe (entweder auf dem eingebetteten Prozessor oder dem Fernprozessor). Die geschätzte Rechenlatenz für die Ausführung der i. Aufgabe am eingebetteten Prozessor ist gegeben als
Daher berechnet der erste Ausdruck auf der rechten Seite von Gl. (1) die erwartete Latenz, wenn die i. Aufgabe ausschließlich am eigebetteten Prozessor ausgeführt wird. Die geschätzte Rechenlatenz für die Ausführung der i. Aufgabe am Fernprozessor ist gegeben durch
Der Begriff
ist die geschätzte Wartezeit für das Hochladen des Datenvolumens
für die i. Aufgabe über eine zellulare Upload-Verbindung mit Bandbreite R
u. Der Begriff
ist die geschätzte Latenz zum Herunterladen des Datenvolumens
für die i. Aufgabe über eine Download-Mobilfunkverbindung mit Bandbreite R
d. Der zweite Asudruck auf der rechten Seite von Gl. (1) berechnet daher die erwartete Latenz, wenn die i. Aufgabe ausschließlich am Fernprozessor ausgeführt wird. Die Variable a
(i,j) ist eine Binärzahl (d. h., nimmt die Werte von entweder 0 oder 1 an), die auswählt, welcher Prozessor die Berechnungen durchführt. Ein Wert von a
(i,j) = 1 bedeutet, dass die Aufgabe auf dem lokalen oder dem eingebetteten Prozessor ausgeführt wird. Ein Wert von a
(i,j) = 0 bedeutet, dass die Aufgabe auf dem Fernprozessor ausgeführt wird. Wenn der erwartete Latenzwert für den/die Prozessor(en) kleiner ist als die Latenzanforderung für die Aufgabe (d. h.
< τ für alle a
(i,j)), dann kann festgestellt werden, dass genügend Latenz verfügbar ist, um die Verarbeitung der i. Aufgabe auf dem eingebetteten Prozessor oder dem Fernprozessor zu ermöglichen.
-
In Gl. (2) ist
eine erwartete Systemzuverlässigkeit zum Ausführen der i. Aufgabe entweder durch den eingebetteten Prozessor oder den Fernprozessor. Die geschätzte Zuverlässigkeit bei der Durchführung der i. Aufgabe am eingebetteten Prozessor ist gegeben als
Daher berechnet der erste Ausdruck auf der rechten Seite von Gl. (2) die Zuverlässigkeit, wenn die i. Aufgabe ausschließlich am eingebetteten Prozessor ausgeführt wird. Die geschätzte Rechenlatenz für die Ausführung der i. Aufgabe am Fernprozessor ist gegeben durch
Die Variable p ist ein Wert, der die Wahrscheinlichkeit eines Ausfalls einer Verbindung zu dem Fernprozessor anzeigt. Daher berechnet der zweite Ausdruck auf der rechten Seite von Gl. (2) die Zuverlässigkeit, die bereitgestellt wird, wenn die i. Aufgabe an dem Fernprozessor ausgeführt wird. Wenn die erwartete Prozessorzuverlässigkeit größer ist als die erforderliche Zuverlässigkeit der Aufgabe (d. h.
> α für alle a
(i,j)), dann kann bestimmt werden, dass zwischen dem eingebetteten Prozessor und dem Fernprozessor genügend Verlässlichkeit besteht, um die i Aufgabe auszuführen.
-
In Gl. (3) ist
ein erwarteter geschätzter Fehler, der beispielsweise auf Erfassungs-/Erkennungsfehler zurückzuführen sein kann, die beim Senden/Erfassen von Daten an einen lokalen/entfernten Prozessor auftreten. Der geschätzte Fehler bei der Ausführung der i. Aufgabe am eingebetteten Prozessor ist gegeben als
Der geschätzte Fehler zum Ausführen der i. Aufgabe am Fernprozessor ist gegeben durch
Wenn der erwartete Prozessorfehler kleiner ist als die erforderliche Genauigkeit der Aufgabe (d. h.
> α für alle a
(i,j)), dann kann bestimmt werden, dass eine ausreichende Genauigkeit durch den eingebetteten Prozessor und den Fernprozessor zur Verfügung gestellt wird, um die i. Aufgabe auszuführen.
-
Wenn der Wert der Ausführungsparameter
die Dienstequalitäts-Metriken (τ, α, ε) erfüllt für a
(i,j) = 1 (d. h. wenn
für a
(i,j) = 1), dann kann die Aufgabe an den Fernprozessor gesendet und ausgeführt werden. Andernfalls wird die Aufgabe an den eingebetteten Prozessor gesendet und ausgeführt.
-
Die Vorhersage des lokalen Ausführungstupels
und das Fern-Ausführungstupel
werden geschätzt, indem vorherige Aufgabenausführungen auf den eingebetteten und Fernprozessoren erstellt werden. Das lokale Ausführungstupel und das Fern-Ausführungstupel können basierend auf den Ergebnissen der vorherigen Fernausführung online aktualisiert werden. Es kann auch basierend auf der Betriebsumgebung parametrisiert werden, die mit der Konnektivität korreliert ist.
-
3 zeigt eine graphische Darstellung des Messfehlers zur Latenz für eine Run-to-Complete-Aufgabe. Eine Run-to-Complete-Aufgabe erfordert, dass die Aufgabe ohne Pause abgeschlossen wird. Für einen Zeitraum bis zur Ausführungszeit τ0 für die Aufgabe hat der Fehlerparameter für die Aufgabe einen hohen Wert. Nach der Ausführungszeit τ0 (d. h. nachdem die Aufgabe abgeschlossen wurde), fällt der Fehlerparameter auf Null oder einen minimalen Wert. Aufgrund dieser Anforderungen von Run-to-Complete-Aufgaben werden diese Aufgaben häufig auf dem eingebetteten Prozessor ausgeführt.
-
4 zeigt ein Diagramm des Messfehlers zur Latenz für eine Non-Run-to-Complete-Aufgabe. Eine Non-Run-to-Complete-Aufgabe kann zu verschiedenen Zeiten während der Ausführung der Aufgabe angehalten werden. Der Erfassungsfehler nimmt mit der Zeit ab, wie durch Paare (τ1, ε1), (τ2, ε2) und (τ3, ε3) gezeigt. Diese Aufgaben können progressiv oder in Stufen ausgeführt werden, und der Prozessor kann zu einem beliebigen Zeitpunkt oder am Ende bestimmter Stufen während der Ausführung der Aufgabe anhalten oder angehalten werden. Je länger fortgefahren werden kann, ohne die Aufgabe zu pausieren, desto besser ist der Erfassungsfehler für die Aufgabe. Wenn die Aufgabe wieder aufgenommen wird, kann die Qualität der Ergebnisse von den vorherigen Werten durch weitere Verarbeitung verbessert werden.
-
Für das autonome Fahren können viele Computeraufgaben als Non-Run-to-Complete-Aufgaben entworfen werden. Zu diesen Aufgaben gehören die Langzeit-Pfadplanung, langfristige taktische Fahrsitzungsplanung, langfristige Streckenanpassung usw. Diese Aufgaben neigen dazu, Ergebnisse zu liefern, die nicht sofort benötigt werden. Wenn jedoch eine allgemeine Lösung (wie etwa allgemeine Langzeit-Streckenanweisungen) zu einem früheren Zeitpunkt (d. h. zum Zeitpunkt τ1 ggn. τ3) berechnet werden kann, dann kann eine solche allgemeine Lösung akzeptabel sein. Die spezifische Lösung kann dem Fahrer oder Fahrzeug zu späteren Zeiten bereitgestellt werden. Im Falle eines Verbindungsausfalls oder eines Cloud-Computerfehlers hat die eingebettete Steuerung genügend Zeit, um basierend auf den zuletzt berechneten Werten einen sicheren Zustand zu erreichen, was für Fahrautomatisierungssysteme der Stufe 2 oder 3 die Anforderung beinhaltet, dass der menschliche Fahrer die vollständige Kontrolle über das Fahrzeug und übernehmen muss und für Systeme der Stufe 4 und 5 einen Moduswechsel in dem System beinhaltet, um ein minimales Risiko zu erreichen.
-
5 zeigt einen veranschaulichenden „Fischaugen“-Effekt bei dem progressiven Berechnen einer Non-Run-to-Complete-Aufgabe. Am Ende einer ersten Berechnungsstufe x1 auftretend zur Zeit τ1,kann der Prozessor innerhalb eines ersten Radius (z. B. 500 Meter) gute Ergebnisse liefern (z. B. Streckenplanung). Am Ende einer zweiten Berechnungsstufe x2 auftretend zur Zeit t2, kann der Prozessor innerhalb eines zweiten Radius (z. B. 1000 Meter), der größer als der erste Radius ist, gute Ergebnisse liefern. Am Ende einer dritten Berechnungsstufe x3 auftretend zur Zeit τ3, kann der Prozessor innerhalb eines dritten Radius (z. B. 1500 Meter), der größer als der zweite Radius ist, gute Ergebnisse liefern. Somit wächst mit jeder nachfolgenden Stufe der Abstand mit guten Ergebnissen zu größeren Radien.
-
In einer Ausführungsform kann der Fernprozessor 120 die Aufgabe in Stufen bearbeiten, um vorläufige oder teilweise Ergebnisse am Ende jeder Stufe zu erhalten. Wenn der Fernprozessor 120 das Ende einer ausgewählten Stufe erreicht, kann er die vorläufigen oder partiellen Ergebnisse von dieser Stufe dem eingebetteten Prozessor 104 bereitstellen, und der eingebettete Prozessor 104 kann die Verarbeitung an dem Fahrzeug 102 unter Verwendung der vorläufigen oder partiellen Ergebnisse fortsetzen und die Verarbeitung von dem Punkt fortsetzen, an dem die vorläufigen oder partiellen Ergebnisse erhalten wurden. Der Fernprozessor 120 stellt daher dem eingebetteten Prozessor 104 kontinuierlich vorläufige oder teilweise Ergebnisse zur Verfügung. Wenn jede sukzessive Stufe bei dem Fernprozessor 120 erreicht ist, liefert der Fernprozessor 120 die vorläufigen oder partiellen Ergebnisse für die sukzessive Stufe an den eingebetteten Prozessor 104, der dann die empfangenen Teilergebnisse verarbeitet. Wenn genügend Zeit zur Verfügung steht, kann der eingebettete Prozessor 104 die Aufgabe zur Vervollständigung verarbeiten. Auf diese Weise werden die schweren Berechnungen von dem eingebetteten Prozessor 104 zu dem Fernprozessor 120 ausgelagert. Diese Auslagerung verringert oder minimiert die Menge an Berechnungen, die an dem eingebetteten Prozessor 104 durchgeführt werden, wodurch die Rechen- und Speicherkapazität an dem Fahrzeug 102 freigegeben wird.
-
6 zeigt ein Ablaufdiagramm
600, das ein Entscheidungsverfahren für die Auslagerung einer Berechnungsaufgabe an einen Fernprozessor in einer Ausführungsform darstellt. In Kasten
602 wird eine Dienstequalitäts-Metrik (τ, α, ε) für die Berechnungsaufgabe bestimmt. In Kasten
604 werden Ausführungsparameter
für die Prozessoren sind bestimmt. Diese Bestimmung kann die Analyse vorhandener Daten zu früheren Ausführungen der Aufgabe verwenden und kann variable Metriken wie die Konnektivität zwischen dem eingebetteten Prozessor und dem Fernprozessor usw. umfassen. In Kasten
606 wird ein Vergleich zwischen den QoS-Metriken und den Ausführungsparametern durchgeführt, um zu bestimmen, ob die Verarbeitung der Aufgabe bei dem Fernprozessor die QoS-Metriken der Aufgabe erfüllt. Mit anderen Worten, die Ausführungsparameter werden mit QoS-Metriken für a
(i,j) = 0 verglichen. Wenn die Ausführungsparameter die QoS-Metriken erfüllen, wird die Aufgabe im Kasten
608 dem Fernprozessor zugewiesen. Ansonsten bestimmt der Laufzeitauslagerungsmanager
216 in Kasten
610, ob die Ausführungsparameter für den eingebetteten Prozessor die QoS-Metriken der Aufgabe erfüllen. Wenn die Ausführungsparameter für den eingebetteten Prozessor die QoS-Metriken erfüllen, wird in Kasten
612 die Aufgabe bei dem eingebetteten Prozessor ausgeführt. Wenn die Ausführungsparameter für den eingebetteten Prozessor die QoS-Metriken für die Aufgabe nicht erfüllen, geht das Ablaufdiagramm zu Kasten
614 über, in dem die Aufgabe nicht ausgeführt wird.
-
7 zeigt ein Ablaufdiagramm 700, das ein Entscheidungsverfahren zum Ausführen einer Aufgabe für den Fall darstellt, dass die Aufgabe momentan an dem Fernprozessor ausgeführt wird und eine Verbindung zwischen dem eingebetteten Prozessor und dem Fernprozessor mitten in der Aufgabe verloren geht. In Kasten 702 wird ein Signal empfangen, das anzeigt, dass der Fernprozessor die Dienstequalitäts-Metriken (Latenzzeit, Verfügbarkeit, Zuverlässigkeit) für die Berechnungsaufgabe nicht mehr erfüllen kann. Der Verlust der Dienstequalität kann auf eine verlorene Verbindung zwischen dem eingebetteten Prozessor und dem Fernprozessor oder zusätzliche Anforderungen, die an den Fernprozessor gestellt werden, zurückzuführen sein. In Kasten 704 bestimmt die lokale Steuerung dann, ob die Ressourcen des eingebetteten Prozessors ausreichen, um die Ausführung der Aufgabe lokal fortzusetzen. Wenn die Ressourcen in dem eingebetteten Prozessor verfügbar sind, geht das Ablaufdiagramm zu Kasten 706 über. In Kasten 706 wird die Aufgabe in dem eingebetteten Prozessor ausgeführt. Wenn die Ressourcen bei dem eingebetteten Prozess nicht verfügbar sind, geht das Ablaufdiagramm zu Kasten 708 weiter. In Kasten 708 wird die Aufgabe nicht im eingebetteten Prozessor ausgeführt. Stattdessen leitet der eingebettete Prozessor einen Abschwächungsmodus ein, der es dem Fahrzeug ermöglicht, einen sicheren Zustand zu erreichen, was beinhalten kann, den menschlichen Fahrers zur Übernahme der vollständigen Kontrolle über das Fahrzeug aufzufordern oder einen Modus im Fahrzeug zu ändern, um den minimalen Risikozustand automatisch zu erreichen. Bei einer Non-Run-to-Complete-Aufgabe kann der eingebettete Prozessor vorhandene oder zwischengespeicherte Ergebnisse der Aufgabe speichern, die vor dem Ausfall des Fernprozessors aufgetreten sind.
-
Während die obige Offenbarung mit Bezug auf exemplarische Ausführungsformen beschrieben wurde, werden Fachleute verstehen, dass unterschiedliche Änderungen vorgenommen und die einzelnen Teile durch entsprechende andere Teile ausgetauscht werden können, ohne vom Umfang der Offenbarung abzuweichen. Darüber hinaus können viele Modifikationen vorgenommen werden, um eine bestimmte Materialsituation an die Lehren der Offenbarung anzupassen, ohne von deren wesentlichem Umfang abzuweichen. Daher ist vorgesehen, dass die Erfindung nicht auf die offenbarten speziellen Ausführungsformen eingeschränkt sein soll, sondern dass sie auch alle Ausführungsformen beinhaltet, die innerhalb des Umfangs der Anmeldung fallen.