DE102018119468A1 - Verfahren und vorrichtung zur unterstützung aufgabenkritischer anwendungen über rechnergestützte cloud-auslagerung - Google Patents

Verfahren und vorrichtung zur unterstützung aufgabenkritischer anwendungen über rechnergestützte cloud-auslagerung Download PDF

Info

Publication number
DE102018119468A1
DE102018119468A1 DE102018119468.4A DE102018119468A DE102018119468A1 DE 102018119468 A1 DE102018119468 A1 DE 102018119468A1 DE 102018119468 A DE102018119468 A DE 102018119468A DE 102018119468 A1 DE102018119468 A1 DE 102018119468A1
Authority
DE
Germany
Prior art keywords
task
processor
vehicle
embedded processor
remote processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102018119468.4A
Other languages
English (en)
Inventor
Fan Bai
Soheil Samii
Massimo Osella
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.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
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 GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of DE102018119468A1 publication Critical patent/DE102018119468A1/de
Withdrawn 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/0098Details of control systems ensuring comfort, safety or stability not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/06Improving the dynamic response of the control system, e.g. improving the speed of regulation or avoiding hunting or overshoot
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/06Improving the dynamic response of the control system, e.g. improving the speed of regulation or avoiding hunting or overshoot
    • B60W2050/065Improving the dynamic response of the control system, e.g. improving the speed of regulation or avoiding hunting or overshoot by reducing the computational load on the digital processor of the control computer
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2556/00Input parameters relating to data
    • B60W2556/45External transmission of data to or from the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Hardware Redundancy (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Ein Fahrzeug, ein Computersystem zum Fahren des Fahrzeugs und ein Verfahren zum Betreiben des Fahrzeugs. Das Fahrzeug beinhaltet einen eingebetteten Prozessor. Der eingebettete Prozessor empfängt eine Anweisung zum Ausführen einer Berechnungsaufgabe, die eine Operation des Fahrzeugs beinhaltet, und lagert die Computeraufgabe an einen Fernprozessor aus. Der Fernprozessor empfängt die abgegebene Berechnungsaufgabe von dem eingebetteten Prozessor, führt die Berechnungsaufgabe aus, um ein Teilergebnis zu erhalten, und stellt das Teilergebnis dem eingebetteten Prozessor bereit. Der eingebettete Prozessor führt die Berechnungsaufgabe unter Verwendung des von dem Fernprozessor bereitgestellten Teilergebnisses aus.

Description

  • 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: l j ( i ) = a ( i , j ) t j ( i ) + ( 1 a ( i , j ) ) ( w j , u ( i ) R u + w j , d ( i ) R d + t ^ j ( i ) ) < τ
    Figure DE102018119468A1_0001
    s j ( i ) = a ( i , j ) R j ( i ) + ( 1 p ) ( 1 a ( i , j ) ) R ^ j ( i ) > α
    Figure DE102018119468A1_0002
    e j ( i ) = a ( i , j ) e j ( i ) + ( 1 a ( i , j ) ) e ^ j ( i ) < ε
    Figure DE102018119468A1_0003
  • In Gl. (1), l j ( i )
    Figure DE102018119468A1_0004
    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 t j ( i ) .
    Figure DE102018119468A1_0005
    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 t ^ j ( i ) .
    Figure DE102018119468A1_0006
    Der Begriff w j , u ( i ) R u
    Figure DE102018119468A1_0007
    ist die geschätzte Wartezeit für das Hochladen des Datenvolumens w j , u ( i )
    Figure DE102018119468A1_0008
    für die i. Aufgabe über eine zellulare Upload-Verbindung mit Bandbreite Ru. Der Begriff w j , d ( i ) R d
    Figure DE102018119468A1_0009
    ist die geschätzte Latenz zum Herunterladen des Datenvolumens w j , d ( i )
    Figure DE102018119468A1_0010
    für die i. Aufgabe über eine Download-Mobilfunkverbindung mit Bandbreite Rd. 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. l j ( i ) < τ
    Figure DE102018119468A1_0011
    < τ 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 s j ( i )
    Figure DE102018119468A1_0012
    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 R j ( i ) .
    Figure DE102018119468A1_0013
    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 R ^ j ( i ) .
    Figure DE102018119468A1_0014
    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. S j ( i ) > α
    Figure DE102018119468A1_0015
    > α 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 ε j ( i )
    Figure DE102018119468A1_0016
    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 e j ( i ) .
    Figure DE102018119468A1_0017
    Der geschätzte Fehler zum Ausführen der i. Aufgabe am Fernprozessor ist gegeben durch e ^ j ( i ) .
    Figure DE102018119468A1_0018
    Wenn der erwartete Prozessorfehler kleiner ist als die erforderliche Genauigkeit der Aufgabe (d. h. ε j ( i ) > α
    Figure DE102018119468A1_0019
    > α 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 ( l j ( i ) , s j ( i ) , ε j ( i ) )
    Figure DE102018119468A1_0020
    die Dienstequalitäts-Metriken (τ, α, ε) erfüllt für a(i,j) = 1 (d. h. wenn l j ( i ) < τ , s j ( i ) > α ,  und  ε j ( i ) > ε
    Figure DE102018119468A1_0021
    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 ( l j ( i )   R j ( i ) ,   e j ( i ) )
    Figure DE102018119468A1_0022
    und das Fern-Ausführungstupel ( l ^ ε j ( i )   R ^ j ( i ) ,   e ^ j ( i ) )
    Figure DE102018119468A1_0023
    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 ( l j ( i ) , S j ( i ) , ε j ( i ) )
    Figure DE102018119468A1_0024
    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.

Claims (10)

  1. Verfahren zum Betreiben eines Fahrzeugs, umfassend: Empfangen einer Berechnungsaufgabe an einem eingebetteten Prozessor des Fahrzeugs, die einen Betrieb des Fahrzeugs beinhaltet; Auslagern der Berechnungsaufgabe von dem eingebetteten Prozessor zu dem Fernprozessor; Ausführen der Berechnungsaufgabe an dem Fernprozessor, um ein Teilergebnis zu erhalten; Bereitstellen des Teilergebnisses für den eingebetteten Prozessor; und Ausführen der Berechnungsaufgabe unter Verwendung des von dem Fernprozessor bereitgestellten Teilergebnisses.
  2. Verfahren nach Anspruch 1, ferner umfassend Bestimmen einer Dienstequalitäts-Metrik für die Berechnungsaufgabe in dem eingebetteten Prozessor; Bestimmen, an dem eingebetteten Prozessor, eines Ausführungsparameters zum Ausführen der Berechnungsaufgabe an einem Fernprozessor; und Auslagern der Berechnungsaufgabe von dem eingebetteten Prozessor zu dem Fernprozessor, wenn der Ausführungsparameter des entfernten Prozessors die Dienstequalitäts-Metrik für die Berechnungsaufgabe nicht erfüllt.
  3. Verfahren nach Anspruch 2, ferner umfassend das Ausführen der Berechnungsaufgabe an dem eingebetteten Prozessor, wenn der Ausführungsparameter des Fernprozessors die Dienstequalitäts-Metrik für die Berechnungsaufgabe nicht erfüllt.
  4. Verfahren nach Anspruch 2, worin das Bestimmen des Ausführungsparameters des Fernprozessors ferner das Bestimmen einer Latenzzeit einer Kommunikationsverbindung zwischen dem eingebetteten Prozessor und dem Fernprozessor umfasst.
  5. Verfahren nach Anspruch 2, ferner umfassend das Ausführen der Berechnungsaufgabe im eingebetteten Prozessor, 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.
  6. Computersystem für das Fahren eines Fahrzeugs, umfassend: einen eingebetteter Prozessor des Fahrzeugs, konfiguriert zum: Empfangen einer Berechnungsaufgabe, die einen Betrieb des Fahrzeugs beinhaltet, und Auslagern der Berechnungsaufgabe; und einen Fernprozessor, der konfiguriert ist zum: Empfangen der ausgelagerten Berechnungsaufgabe von dem eingebetteten Prozessor, Ausführen der Berechnungsaufgabe, um ein Teilergebnis zu erhalten, und Bereitstellen des Teilergebnisses an den eingebetteten Prozessor; worin der eingebettete Prozessor ferner dazu konfiguriert ist, die Berechnungsaufgabe unter Verwendung des von dem Fernprozessor bereitgestellten Teilergebnisses auszuführen.
  7. Computersystem nach Anspruch 6, worin der eingebettete Prozessor ferner konfiguriert ist, 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.
  8. Computersystem nach Anspruch 7, worin der eingebettete Prozessor ferner konfiguriert ist zum Ausführen der Berechnungsaufgabe, wenn der Ausführungsparameter des Fernprozessors die Dienstequalitäts-Metrik für die Berechnungsaufgabe nicht erfüllt.
  9. Computersystem nach Anspruch 7, worin der Ausführungsparameter des Fernprozessors ferner eine Latenz einer Kommunikationsverbindung zwischen dem eingebetteten Prozessor und dem Fernprozessor umfasst.
  10. Computersystem nach Anspruch 7, worin der eingebettete Prozessor die Berechnungsaufgabe 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.
DE102018119468.4A 2017-08-14 2018-08-09 Verfahren und vorrichtung zur unterstützung aufgabenkritischer anwendungen über rechnergestützte cloud-auslagerung Withdrawn DE102018119468A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/676,299 2017-08-14
US15/676,299 US20190047581A1 (en) 2017-08-14 2017-08-14 Method and apparatus for supporting mission-critical applications via computational cloud offloading

Publications (1)

Publication Number Publication Date
DE102018119468A1 true DE102018119468A1 (de) 2019-02-14

Family

ID=65084731

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018119468.4A Withdrawn DE102018119468A1 (de) 2017-08-14 2018-08-09 Verfahren und vorrichtung zur unterstützung aufgabenkritischer anwendungen über rechnergestützte cloud-auslagerung

Country Status (3)

Country Link
US (1) US20190047581A1 (de)
CN (1) CN109388483A (de)
DE (1) DE102018119468A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019204922A1 (de) * 2019-04-05 2020-10-08 Volkswagen Aktiengesellschaft Fortbewegungsmittel und Verfahren zur Führung eines autonom fahrfähigen Fortbewegungsmittels im Falle einer Fehlfunktion
WO2023093980A1 (en) * 2021-11-24 2023-06-01 Volkswagen Aktiengesellschaft Method for operating an autonomous driving vehicle

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3071800B1 (fr) * 2017-09-29 2021-04-02 Psa Automobiles Sa Procede d’assistance a la conduite d’un vehicule lors d’une defaillance d’un reseau et systeme associe
US10855753B2 (en) * 2018-02-23 2020-12-01 Standard Cognition, Corp. Distributed computing of vehicle data by selecting a computation resource of a remote server that satisfies a selection policy for meeting resource requirements according to capability information
US10616340B2 (en) 2018-02-23 2020-04-07 Standard Cognition, Corp. Distributed computing of large data by selecting a computational resource of a remote server based on selection policies and data information wherein the selections policies are associated with location constraints, time constraints, and data type constraints
US10974727B2 (en) 2018-06-26 2021-04-13 Ford Global Technologies, Llc Transportation infrastructure communication and control
US10953871B2 (en) * 2018-06-26 2021-03-23 Ford Global Technologies, Llc Transportation infrastructure communication and control
DE102018009906A1 (de) * 2018-12-20 2020-06-25 Volkswagen Aktiengesellschaft Verfahren zum Management von Rechnerkapazitäten in einem Netzwerk mit mobilen Teilnehmern
US11383722B2 (en) * 2019-01-02 2022-07-12 Qualcomm Incorporated Methods and systems for managing interactions between vehicles with varying levels of autonomy
DE102019211173A1 (de) * 2019-07-26 2021-01-28 Robert Bosch Gmbh Verfahren und Vorrichtung zum Verwalten von Rechenleistung in einem Datenverarbeitungssystem
WO2021059601A1 (ja) * 2019-09-27 2021-04-01 アイシン・エィ・ダブリュ株式会社 運転支援装置及びコンピュータプログラム
JP2021124902A (ja) * 2020-02-04 2021-08-30 トヨタ自動車株式会社 車両制御装置、車両制御方法、及び車両制御プログラム
US20210291851A1 (en) * 2020-03-23 2021-09-23 Toyota Motor Engineering & Manufacturing North America, Inc. Switching decision for vehicle computational offloading to roadside edge server
CN111800495B (zh) * 2020-06-30 2021-05-11 华北电力大学 一种车辆雾计算中的任务卸载方法
CN112685186B (zh) * 2021-01-08 2023-04-28 北京信息科技大学 一种计算任务的卸载方法、装置、电子设备及存储介质
US11924860B2 (en) * 2021-07-29 2024-03-05 Toyota Motor Engineering & Manufacturing North America, Inc. Systems and methods for offloading computing tasks from vehicles using characteristics
US20230185621A1 (en) * 2021-12-15 2023-06-15 Coupang Corp. Computer resource allocation systems and methods for optimizing computer implemented tasks
DE102022206923A1 (de) * 2022-07-06 2024-01-11 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Steuergerät zum Bestimmen eines Sicherheitsintegritätsniveaus einer sicherheitsbezogenen Fahrzeugfunktion eines Kraftfahrzeugs

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8296419B1 (en) * 2009-03-31 2012-10-23 Amazon Technologies, Inc. Dynamically modifying a cluster of computing nodes used for distributed execution of a program
EP2450795A1 (de) * 2009-06-30 2012-05-09 Fujitsu Limited Computervorrichtung, parallelcomputerpsystem und synchronisationsprogramm
US20120053754A1 (en) * 2010-08-31 2012-03-01 Karen Pease Electronic communications and control module
CN103019837A (zh) * 2011-09-27 2013-04-03 中国移动通信集团公司 资源调度方法、装置及终端设备
JP5764525B2 (ja) * 2012-05-09 2015-08-19 株式会社日立製作所 無線システムの制御装置、および、制御方法
US9152451B2 (en) * 2013-01-03 2015-10-06 GM Global Technology Operations LLC Method of distributing processor loading between real-time processor threads
US9367357B2 (en) * 2013-01-18 2016-06-14 Nec Corporation Simultaneous scheduling of processes and offloading computation on many-core coprocessors
CN103905337B (zh) * 2014-03-31 2018-01-23 华为技术有限公司 一种网络资源的处理装置、方法和系统
US10911574B2 (en) * 2015-03-25 2021-02-02 Amazon Technologies, Inc. Using multiple protocols in a virtual desktop infrastructure
US20160380914A1 (en) * 2015-06-25 2016-12-29 Here Global B.V. Method and apparatus for providing resource load distribution for embedded systems
CN105100500B (zh) * 2015-08-31 2017-11-03 电子科技大学 基于移动云计算的临界数据卸载方法
US10223147B2 (en) * 2016-08-19 2019-03-05 International Business Machines Corporation Resource allocation in high availability (HA) systems
US10768997B2 (en) * 2016-12-05 2020-09-08 International Business Machines Corporation Tail latency-based job offloading in load-balanced groups
US10332320B2 (en) * 2017-04-17 2019-06-25 Intel Corporation Autonomous vehicle advanced sensing and response

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019204922A1 (de) * 2019-04-05 2020-10-08 Volkswagen Aktiengesellschaft Fortbewegungsmittel und Verfahren zur Führung eines autonom fahrfähigen Fortbewegungsmittels im Falle einer Fehlfunktion
WO2023093980A1 (en) * 2021-11-24 2023-06-01 Volkswagen Aktiengesellschaft Method for operating an autonomous driving vehicle

Also Published As

Publication number Publication date
CN109388483A (zh) 2019-02-26
US20190047581A1 (en) 2019-02-14

Similar Documents

Publication Publication Date Title
DE102018119468A1 (de) Verfahren und vorrichtung zur unterstützung aufgabenkritischer anwendungen über rechnergestützte cloud-auslagerung
DE102015108605B4 (de) Fahrspurwechselpfad-Planungsalgorithmus für ein autonom fahrendes Fahrzeug
DE102018101110A1 (de) Fahrzeugsensorzustandsüberwachung
DE112015001150B4 (de) Verfahren, Vorrichtung und System zur Unterstützung von Platooning
DE102011120497B4 (de) Systeme und Verfahren zur präzisen Fahrzeugpositionsbestimmung innerhalb einer Fahrspur
DE102016120505A1 (de) Koordiniertes Testen in Fahrzeugpulks
DE112012001923T5 (de) Zur Zusammenarbeit fähiges Multi-Agentensystem zur Fehlerdiagnose an einem Fahrzeug sowie zugehöriges Verfahren
DE102016102002A1 (de) Verbesserung einer Fahrzeugbewegungsabschätzung mit Radardaten
DE102018102278A1 (de) Geschwindigkeitsteuerung für ein fahrzeug
EP3356855B1 (de) Verfahren zum auswählen von lokalisierungsalgorithmen in einem fahrzeug
DE102020100027A1 (de) Überwachungs- und steuerinfrastruktur für fahrzeuge
DE112016006692T5 (de) Verfahren zur Vorhersage einer Bewegung eines Objekts
DE102016003969A1 (de) Verfahren zum Erfassen von Umgebungsdaten mittels mehrerer Kraftfahrzeuge
DE102017128279A1 (de) Lenkvorgang
DE102014225122A1 (de) Verfahren und System zur Bereitstellung von Informationen zur Verfügbarkeit von Ladestationen
DE102022120968A1 (de) Vernetzte fahrzeuggestützte ermittlung der strassenoberflächenqualität
DE102018205430A1 (de) Verfahren zur satellitengestützten Ermittlung einer Fahrzeugposition
DE102020118589A1 (de) Verbesserter fahrzeugbetrieb
WO2021047856A1 (de) Verfahren zur bestimmung einer objektposition unter verwendung verschiedener sensorinformationen
DE102022211064A1 (de) Fahrzeugfahrsteuerungsverarbeitungssystem
DE102019115650A1 (de) Verfahren zum vorhersagen der verbleibenden zeit und des erwarteten verbrauchs bis zum erreichen eines niedrigen fluidstands eines fluidsystems
DE102019207342A1 (de) Konzept für eine Datenverarbeitung für ein zumindest teilautomatisiertes Führen eines Kraftfahrzeugs
DE102015003590A1 (de) Verfahren und System zur Niveauregulierung bei einem Fahrzeug mit dem Niveauregulierungssystem des Fahrzeugs
DE102022103324A1 (de) System und Verfahren zur Erkennung von Inkonsistenzen in Wahrnehmungssystemen von automatisierten Fahrzeugen.
DE102022200253A1 (de) Fahrzeug-Berechnungsaufgabenvergabe

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MANITZ FINSTERWALD PATENTANWAELTE PARTMBB, DE

Representative=s name: MANITZ FINSTERWALD PATENT- UND RECHTSANWALTSPA, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee