DE102021123358B3 - Control device, control method and computer program for distributing computing function blocks to computing units in a vehicle - Google Patents
Control device, control method and computer program for distributing computing function blocks to computing units in a vehicle Download PDFInfo
- Publication number
- DE102021123358B3 DE102021123358B3 DE102021123358.5A DE102021123358A DE102021123358B3 DE 102021123358 B3 DE102021123358 B3 DE 102021123358B3 DE 102021123358 A DE102021123358 A DE 102021123358A DE 102021123358 B3 DE102021123358 B3 DE 102021123358B3
- Authority
- DE
- Germany
- Prior art keywords
- computing
- vehicle
- arithmetic
- units
- unit
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Die vorliegende Offenbarung bezieht sich auf eine Steuervorrichtung, auf ein Steuerverfahren und auf ein entsprechendes Computerprogramm für eine Verteilung von einer Mehrzahl von Rechen-Funktionsblöcken auf eine Mehrzahl von Recheneinheiten eines Fahrzeugs. Die Steuervorrichtung (10) umfasst zumindest eine Schnittstelle (12), ausgebildet zur Kommunikation mit der Mehrzahl von Recheneinheiten (30). Die Steuervorrichtung umfasst ferner ein oder mehrere Prozessoren (14). Die ein oder mehreren Prozessoren sind ausgebildet zum Ermitteln der derzeit auszuführenden Rechen-Funktionsblöcke des Fahrzeugs. Die ein oder mehreren Prozessoren sind ausgebildet zum Auswählen, welcher Rechen-Funktionsblock auf welcher Recheneinheit (30) auszuführen ist. Die ein oder mehreren Prozessoren sind ausgebildet zum Transferieren der Ausführung eines Rechen-Funktionsblocks von einer ersten Recheneinheit der Mehrzahl von Recheneinheiten zu einer zweiten Recheneinheit der Mehrzahl von Recheneinheiten, sofern dies durch die Auswahl, welcher Rechen-Funktionsblock auf welcher Recheneinheit auszuführen ist, angezeigt ist. The present disclosure relates to a control device, a control method and a corresponding computer program for distributing a plurality of computing function blocks to a plurality of computing units of a vehicle. The control device (10) comprises at least one interface (12) designed for communication with the plurality of computing units (30). The control device also includes one or more processors (14). The one or more processors are designed to determine the computing function blocks of the vehicle that are currently to be executed. The one or more processors are designed to select which arithmetic function block is to be executed on which arithmetic unit (30). The one or more processors are designed to transfer the execution of an arithmetic function block from a first arithmetic unit of the plurality of arithmetic units to a second arithmetic unit of the plurality of arithmetic units, if this is indicated by the selection of which arithmetic function block is to be executed on which arithmetic unit .
Description
Die vorliegende Erfindung bezieht sich auf eine Steuervorrichtung, auf ein Steuerverfahren und auf ein entsprechendes Computerprogramm für eine Verteilung von einer Mehrzahl von Rechen-Funktionsblöcken auf eine Mehrzahl von Recheneinheiten eines Fahrzeugs.The present invention relates to a control device, to a control method and to a corresponding computer program for distributing a plurality of computing function blocks to a plurality of computing units of a vehicle.
In modernen Fahrzeugen wird eine immer größer werdende Anzahl von Funktionen durch Software bereitgestellt. Diese Funktionen werden meist durch Dienste implementiert (engl. „Services“), die auf Recheneinheiten des Fahrzeugs ausgeführt werden. Der Rechenbedarf von Diensten, die auf einer Plattform wie einem Fahrzeug laufen, wächst in der Regel im Laufe der Zeit, beispielsweise aufgrund des zunehmenden Datenflusses von Sensoren und Aktuatoren. Außerdem nimmt die Zahl der Dienste zu. Es werden absehbar mehr Rechenressourcen benötigt als lokal vorhanden sind.In modern vehicles, an ever-increasing number of functions are provided by software. These functions are usually implemented by services that are executed on the vehicle's computing units. The computational demands of services running on a platform like a vehicle tend to grow over time, for example due to the increasing flow of data from sensors and actuators. In addition, the number of services is increasing. It is foreseeable that more computing resources will be required than are available locally.
Durch die Kommunikation zwischen Fahrzeugen und Backend-Servern ist es möglich, Rechenaufgaben von einem Fahrzeug auf einen Server zu verlagern und die benötigten Informationen an das Backend zu übertragen (z.B. Sensorinformationen vom Fahrzeug). Die Berechnungen können auch auf ein anderes Fahrzeug übertragen werden, die die gleichen Dienste implementiert (beispielsweise, wenn geparkte Autos zur Verfügung stehen, die nicht mit anderen Diensten belastet sind).The communication between vehicles and backend servers makes it possible to shift computing tasks from a vehicle to a server and to transfer the required information to the backend (e.g. sensor information from the vehicle). The calculations can also be transferred to another vehicle that implements the same services (e.g. when parked cars are available that are not burdened with other services).
In den derzeitigen Implementierungen unterscheiden sich die Fahrzeug- und die Backend-Implementierungen. Sie verwenden die gleichen Daten, aber es ist noch nicht möglich, eine Implementierung zu nehmen und sie unverändert auf dem Fahrzeug oder dem Server laufen zu lassen.In the current implementations, the vehicle and backend implementations differ. They use the same data, but it's not yet possible to take an implementation and run it unmodified on the vehicle or the server.
Die Verwendung anderer Fahrzeuge, in denen die Dienste ebenfalls implementiert sind, für die Auslagerung von Berechnungen und Diensten stellt keine universelle, stets verfügbare Lösung dar. Es kann sein, dass diese anderen Ressourcen nicht verfügbar sind, da nicht alle Fahrzeuge miteinander kompatibel sind.Using other vehicles, in which the services are also implemented, for the outsourcing of calculations and services does not represent a universal, always available solution. It may be that these other resources are not available because not all vehicles are compatible with each other.
Aus
Aus
Die
Die
Die
Jedoch stellt keine dieser Schriften ein Konzept bereit, um dem steigenden und variierenden Rechenbedarf in modernen Fahrzeugen gerecht zu werden.However, none of these references provide a concept to meet the increasing and varying computational needs in modern vehicles.
Es besteht der Bedarf, ein verbessertes Konzept zum Bereitstellen von Software-basierten Funktionalitäten in Fahrzeugen bereitzustellen.There is a need to provide an improved concept for providing software-based functionalities in vehicles.
Diesem Bedarf wird durch den Gegenstand der unabhängigen Ansprüche entsprochen.This need is met by the subject matter of the independent claims.
Die vorliegende Erfindung basiert auf der Erkenntnis, dass der häufig verwendete Ansatz, spezifisch auf bestimmte Fahrzeuge zugeschnittene Softwareanwendungen auf spezifisch dafür ausgelegten Rechengeräten des Fahrzeugs auszuführen, ungeeignet dafür scheint, auf zusätzlichen Rechenbedarf innerhalb des Fahrzeugs zu reagieren. So bleibt meist nur der Ansatz, eine entsprechende Über-Provisionierung vorzusehen, so dass auch alle Funktionalitäten, die im Fahrzeug vorhanden sind, gleichzeitig nutzbar sind, oder aber bestimmte Kombinationen aus Funktionalitäten schließen sich gegenseitig aus. Diese Einschränkung lässt sich dadurch überwinden, dass die einzelnen Software-basierten Funktionalitäten in einem standardisierten, portablen Format als Rechen-Funktionsblöcke bereitgestellt werden, die auf unterschiedlichen Rechengeräten des Fahrzeugs (oder sogar außerhalb des Fahrzeugs) ausgeführt werden können. Die vorliegende Erfindung strebt daher eine Abstraktion von Laufzeitumgebungen an. Der Aufwand für die Entwicklung und Pflege von Diensten ist beträchtlich, daher ist es Vorteilhaft, die Zahl der Implementierungsvarianten so weit wie möglich zu reduzieren und idealerweise nur eine Implementierung, in Form eines Rechen-Funktionsblocks, zu pflegen. In verschiedenen Beispielen der vorliegenden Offenbarung werden die Dienste in einer standardisierten Laufzeitumgebung ausgeführt, unabhängig von der Hardware- und Softwarebasis des Geräts, auf dem sie ausgeführt werden. The present invention is based on the finding that the frequently used approach of executing software applications tailored specifically to certain vehicles on the vehicle's specifically designed computing devices seems unsuitable for reacting to additional computing requirements within the vehicle. The only remaining approach is to provide for appropriate over-provisioning so that all functionalities that are available in the vehicle can be used at the same time, or certain combinations of functionalities exclude each other. This limitation can be overcome by providing the individual software-based functionalities in a standardized, portable format as computing function blocks that can be executed on different computing devices in the vehicle (or even outside the vehicle). The present invention therefore strives for an abstraction of runtime environments. The effort for the development and maintenance of services is considerable, so it is advantageous to reduce the number of implementation variants as much as possible and ideally to maintain only one implementation, in the form of a calculation function block. In various examples of the present disclosure, the services execute in a standardized runtime environment, regardless of the hardware and software basis of the device on which they execute.
Ein Steuergerät wird verwendet, um eine Lastverteilung durchzuführen, d.h. um die Rechen-Funktionsblöcken den vorhandenen Rechengeräten zuzuteilen.A controller is used to perform load sharing, i.e. to allocate the computing function blocks to the existing computing devices.
Ein Aspekt der vorliegenden Offenbarung bezieht sich auf eine Steuervorrichtung für eine Verteilung von einer Mehrzahl von Rechen-Funktionsblöcken auf eine Mehrzahl von Recheneinheiten eines Fahrzeugs. Die Steuervorrichtung umfasst zumindest eine Schnittstelle, ausgebildet zur Kommunikation mit der Mehrzahl von Recheneinheiten. Die Steuervorrichtung umfasst ferner ein oder mehrere Prozessoren. Die ein oder mehreren Prozessoren sind ausgebildet zum Ermitteln der derzeit auszuführenden Rechen-Funktionsblöcke des Fahrzeugs. Die ein oder mehreren Prozessoren sind ausgebildet zum Auswählen, welcher Rechen-Funktionsblock auf welcher Recheneinheit auszuführen ist. Die ein oder mehreren Prozessoren sind ausgebildet zum Transferieren der Ausführung eines Rechen-Funktionsblocks von einer ersten Recheneinheit der Mehrzahl von Recheneinheiten zu einer zweiten Recheneinheit der Mehrzahl von Recheneinheiten, sofern dies durch die Auswahl, welcher Rechen-Funktionsblock auf welcher Recheneinheit auszuführen ist, angezeigt ist. Durch die Steuervorrichtung können die Rechen-Funktionsblöcke folglich zwischen den Recheneinheiten des Fahrzeugs transferiert werden, was eine höhere Effizienz der Nutzung der Recheneinheiten ermöglicht. Dies wird dadurch ermöglich, dass die Rechen-Funktionsblöcke so ausgebildet sind, dass sie auf den verschiedenen Recheneinheiten ausführbar sind.One aspect of the present disclosure relates to a control device for a distribution of a plurality of computing function blocks to a plurality of computing units of a vehicle. The control device includes at least one interface designed for communication with the plurality of computing units. The controller also includes one or more processors. The one or more processors are designed to determine the computing function blocks of the vehicle that are currently to be executed. The one or more processors are configured to select which computing function block is to be executed on which computing unit. The one or more processors are designed to transfer the execution of an arithmetic function block from a first arithmetic unit of the plurality of arithmetic units to a second arithmetic unit of the plurality of arithmetic units, if this is indicated by the selection of which arithmetic function block is to be executed on which arithmetic unit . The arithmetic function blocks can consequently be transferred between the arithmetic units of the vehicle by the control device, which enables a higher efficiency of the use of the arithmetic units. This is made possible by designing the arithmetic function blocks in such a way that they can be executed on the various arithmetic units.
Ferner hängen die Rechen-Funktionsblöcke davon ab, welche Fahrzeugfunktionen zu diesem Zeitpunkt aktiv sind, und wobei zusätzlich jeweilige auszuführende Rechen-Funktionsblöcke von anderen Fahrzeugen oder von anderen Recheneinheiten außerhalb des Fahrzeugs stammen, wobei diese Rechen-Funktionsblöcke zusätzlich zu den Rechen-Funktionsblöcken, die Fahrzeugfunktionen, die derzeit aktiv sind, bereitstellen, berücksichtigt werden.Furthermore, the arithmetic function blocks depend on which vehicle functions are active at that time, and in addition, respective arithmetic function blocks to be executed come from other vehicles or from other arithmetic units outside the vehicle, these arithmetic function blocks in addition to the arithmetic function blocks that Provide vehicle functions that are currently active are taken into account.
Beispielsweise kann jeder Rechen-Funktionsblock ausgebildet sein, um als Container innerhalb einer Laufzeitumgebung ausgeführt zu werden. Durch die Ausgestaltung als Container ist es möglich, die Laufzeitumgebung der Recheneinheit zu nutzen, anstatt die Laufzeitumgebung in den Rechen-Funktionsblock zu integrieren. Dies reduziert den Overhead (die Gemeinkosten), wenn mehrere Container in einer Laufzeitumgebung der jeweiligen Recheneinheit ausgeführt werden.For example, each computing function block can be designed to be executed as a container within a runtime environment. The design as a container makes it possible to use the runtime environment of the computing unit instead of integrating the runtime environment into the computing function block. This reduces overhead when running multiple containers in a runtime environment of each compute unit.
Das Transferieren der Ausführung eines Rechen-Funktionsblocks kann beispielsweise das Transferieren der Ausführung des Containers von einer Laufzeitumgebung der ersten Recheneinheit zu einer Laufzeitumgebung der zweiten Recheneinheit umfassen. Somit können die Container mit einem reduzierten Aufwand transferiert werden, etwa in Fällen ohne Kommunikation zwischen den Containern.The transfer of the execution of a computing function block can include, for example, the transfer of the execution of the container from a runtime environment of the first processing unit to a runtime environment of the second processing unit. The containers can thus be transferred with less effort, for example in cases where there is no communication between the containers.
Alternativ kann das Transferieren der Ausführung eines Rechen-Funktionsblocks das Transferieren der Laufzeitumgebung mit dem Container von der ersten Recheneinheit zu der zweiten Recheneinheit umfassen. Hier kann die zu transferierende Laufzeitumgebung mehrere auszuführende Container umfassen. Dies verringert den Overhead bei dem Transfer mehrerer Rechen-Funktionsblöcke, außerdem können so Funktionalitäten, die allen Containern in der Laufzeitumgebung zur Verfügung stellen sollen, einmalig durch die Laufzeitumgebung zur Verfügung gestellt werden. Auch ein sogenanntes Software-definiertes Netzwerk zwischen den Containern in der Laufzeitumgebung kann so verwendet und auf die zweite Recheneinheit übertragen werden.Alternatively, transferring the execution of a computational function block may use the transfer ration of the runtime environment with the container from the first processing unit to the second processing unit. Here, the runtime environment to be transferred can include several containers to be executed. This reduces the overhead when transferring multiple arithmetic function blocks, and functionalities that are to be made available to all containers in the runtime environment can be made available once by the runtime environment. A so-called software-defined network between the containers in the runtime environment can also be used in this way and transferred to the second processing unit.
Das Auswählen, welcher Rechen-Funktionsblock auf welcher Recheneinheit auszuführen ist, kann beispielsweise eine Lastverteilung anstreben. In anderen Worten kann die Auswahl so durchgeführt werden, dass die resultierende Rechenlast angemessen auf die vorhandenen Recheneinheiten verteilt wird, etwa so dass in keiner Recheneinheit eine Überlastung auftritt und alle Rechen-Funktionsblöcke ausreichende Rechen- und andere Ressourcen (Speicher, Eingabe/Ausgabe etc.) zur Verfügung haben (soweit möglich).Selecting which computing function block is to be executed on which computing unit can aim at load balancing, for example. In other words, the selection can be made in such a way that the resulting computing load is distributed appropriately across the available computing units, for example so that no computing unit is overloaded and all computing function blocks have sufficient computing and other resources (memory, input/output, etc. ) available (as far as possible).
In manchen Fällen kann das Transferieren der Ausführung des Rechen-Funktionsblocks ein Transferieren von Laufzeitdaten des Rechen-Funktionsblocks umfassen. Somit kann ein Zustand des Rechen-Funktionsblocks über den Transfer hinweg erhalten bleiben.In some cases, transferring execution of the computational function block may include transferring run-time data of the computational function block. A state of the arithmetic function block can thus be retained over the transfer.
Die Mehrzahl von Recheneinheiten kann, in manchen Beispielen, ferner ein oder mehrere Recheneinheiten umfassen, die außerhalb des Fahrzeugs angeordnet sind. Durch das Konzept der portablen Rechen-Funktionsblöcke, gepaart mit der Steuervorrichtung zur Zuweisung der Rechen-Funktionsblöcke, können so zusätzliche Ressourcen der externen Recheneinheiten genutzt werden.The plurality of computing devices may, in some examples, further include one or more computing devices located outside of the vehicle. As a result of the concept of the portable arithmetic function blocks coupled with the control device for assigning the arithmetic function blocks, additional resources of the external arithmetic units can be used.
Ein Aspekt der vorliegenden Offenbarung bezieht sich auf ein System für ein Fahrzeug. Das System umfasst die zuvor vorgestellte Steuervorrichtung und die Mehrzahl von Recheneinheiten des Fahrzeugs. Durch die Steuervorrichtung können die Rechen-Funktionsblöcke zwischen den Recheneinheiten des Fahrzeugs transferiert werden, was eine höhere Effizienz der Nutzung der Recheneinheiten ermöglicht.One aspect of the present disclosure relates to a system for a vehicle. The system includes the previously presented control device and the plurality of computing units of the vehicle. The arithmetic function blocks can be transferred between the arithmetic units of the vehicle by the control device, which enables a higher efficiency of the use of the arithmetic units.
Dabei kann jeder Rechen-Funktionsblock ausgebildet sein, um als Container innerhalb einer Laufzeitumgebung ausgeführt zu werden. Auch kann jede Recheneinheit ausgebildet sein, um eine Laufzeitumgebung für die Ausführung von Containern bereitzustellen. Durch die Ausgestaltung als Container ist es möglich, die Laufzeitumgebung der Recheneinheit zu nutzen, anstatt die Laufzeitumgebung in den Rechen-Funktionsblock zu integrieren. Dies reduziert den Overhead (die Gemeinkosten), wenn mehrere Container in einer Laufzeitumgebung der jeweiligen Recheneinheit ausgeführt werden.Each arithmetic function block can be designed to be executed as a container within a runtime environment. Each computing unit can also be designed to provide a runtime environment for executing containers. The design as a container makes it possible to use the runtime environment of the computing unit instead of integrating the runtime environment into the computing function block. This reduces overhead when running multiple containers in a runtime environment of each compute unit.
Damit die Container portabel sind, können die Recheneinheiten den Laufzeitumgebungen standardisierte Schnittstellen anbieten, um mit weiteren Komponenten des Fahrzeugs zu kommunizieren, und diese so von allen Recheneinheiten aus nutzbar zu machen. Beispielsweise kann jede Recheneinheit ausgebildet sein, der Laufzeitumgebung zumindest eine erste Schnittstelle zur Kommunikation mit Sensorik und Aktuatorik bereitzustellen. Dies kann die Analyse von Sensordaten und/oder die Ansteuerung der Aktuatorik durch die Rechen-Funktionsblöcke ermöglichen.In order for the containers to be portable, the computing units can offer the runtime environments standardized interfaces to communicate with other components of the vehicle and thus make them usable from all computing units. For example, each processing unit can be designed to provide the runtime environment with at least one first interface for communication with sensors and actuators. This can enable the analysis of sensor data and/or the actuation of the actuators by the computing function blocks.
Beispielsweise kann jede Recheneinheit ausgebildet sein, der Laufzeitumgebung ferner eine zweite Schnittstelle zur Kommunikation über ein Kommunikationsnetzwerk und/oder eine dritte Schnittstelle zum Zugriff auf Ressourcen der Recheneinheit bereitzustellen. Die zweite Schnittstelle kann beispielsweise genutzt werden, um mit Rechen-Funktionsblöcken zu kommunizieren, die auf anderen Recheneinheiten innerhalb und/oder außerhalb des Fahrzeugs ausgeführt werden, oder um auf ein mobiles Kommunikationssystem zuzugreifen. Die dritte Schnittstelle kann genutzt werden, um auf spezifische Ressourcen der Recheneinheit zuzugreifen, wie etwa auf Beschleunigerkarten oder auf Speicher.For example, each computing unit can be designed to also provide the runtime environment with a second interface for communication via a communication network and/or a third interface for accessing resources of the computing unit. The second interface can be used, for example, to communicate with computing function blocks that are running on other computing units inside and/or outside the vehicle, or to access a mobile communication system. The third interface can be used to access specific resources of the processing unit, such as accelerator cards or memory.
Beispielsweise kann eine erste Recheneinheit ausgebildet sein, um die Kommunikation mit Sensorik und Aktuatorik, die über die erste Schnittstelle der ersten Recheneinheit bereitgestellt wird, einer zweiten Recheneinheit über die zweite Schnittstelle bereitzustellen, so dass die Laufzeitumgebung der zweiten Recheneinheit Zugriff auf die Sensorik und Aktuatorik, die über die erste Schnittstelle der ersten Recheneinheit bereitgestellt wird, erhält. Somit können Rechen-Funktionsblöcke auch auf Recheneinheiten transferiert werden, die keinen direkten Zugriff auf die Sensorik und Aktuatorik der ursprünglichen (ersten) Recheneinheit haben. Dies ist insbesondere bei Recheneinheiten, die außerhalb des Fahrzeugs angeordnet sind, der Fall.For example, a first arithmetic unit can be designed to provide the communication with sensors and actuators, which is provided via the first interface of the first arithmetic unit, to a second arithmetic unit via the second interface, so that the runtime environment of the second arithmetic unit can access the sensors and actuators, which is provided via the first interface of the first computing unit receives. In this way, arithmetic function blocks can also be transferred to arithmetic units that do not have direct access to the sensors and actuators of the original (first) arithmetic unit. This is the case in particular with computing units that are arranged outside the vehicle.
Dabei können die erste Schnittstelle, die zweite Schnittstelle und/oder die dritte Schnittstelle eine Abstraktion der physikalischen Schnittstellen der jeweiligen Recheneinheit bereitstellen, so dass die erste Schnittstelle, die zweite Schnittstelle und/oder die dritte Schnittstelle für die Laufzeitumgebung auf jeder Recheneinheit einheitlich ansprechbar sind. Somit können die Rechen-Funktionseinheiten, und auch die jeweiligen Laufzeitumgebungen, unabhängig von der Recheneinheit, die jeweiligen Schnittstellen nutzen.The first interface, the second interface and/or the third interface can provide an abstraction of the physical interfaces of the respective computing unit, so that the first interface, the second interface and/or the third interface can be addressed uniformly for the runtime environment on each computing unit. Thus, the computing functional units, and the respective runtime environments, independently depends on the computing unit that uses the respective interfaces.
In einem Beispiel ist jeder Rechen-Funktionsblock ausgebildet, um als Container innerhalb einer Laufzeitumgebung ausgeführt zu werden. Das Transferieren der Ausführung eines Rechen-Funktionsblocks kann das Transferieren der Laufzeitumgebung mit dem Container von der ersten Recheneinheit zu der zweiten Recheneinheit umfassen, wobei die zweite Recheneinheit zumindest 10% mehr oder weniger Rechenkapazität bereitstellt als die erste Recheneinheit. In anderen Worten können ganze Laufzeitumgebungen entsprechend dem Ressourcenbedarf der Container in der Laufzeitumgebung verschoben werden.In one example, each computational function block is configured to execute as a container within a runtime environment. Transferring the execution of a computing function block may include transferring the runtime environment with the container from the first computing unit to the second computing unit, with the second computing unit providing at least 10% more or less computing capacity than the first computing unit. In other words, entire runtime environments can be moved according to the resource requirements of the containers in the runtime environment.
Ein Aspekt der vorliegenden Offenbarung richtet sich auf ein Fahrzeug, umfassend das zuvor vorgestellte System. Durch die Steuervorrichtung des Systems können die Rechen-Funktionsblöcke des Fahrzeugs zwischen den Recheneinheiten des Fahrzeugs transferiert werden, was eine höhere Effizienz der Nutzung der Recheneinheiten des Fahrzeugs ermöglicht.One aspect of the present disclosure is directed to a vehicle including the system presented above. Through the controller of the system, the vehicle's computing function blocks can be transferred between the vehicle's computing units, enabling higher efficiency of utilization of the vehicle's computing units.
Ein Aspekt der vorliegenden Offenbarung richtet sich auf ein entsprechendes Steuerverfahren für die Verteilung von einer Mehrzahl von Rechen-Funktionsblöcken auf eine Mehrzahl von Recheneinheiten eines Fahrzeugs. Das Verfahren umfasst ein Ermitteln der derzeit auszuführenden Rechen-Funktionsblöcke des Fahrzeugs. Das Verfahren umfasst ferner ein Auswählen, welcher Rechen-Funktionsblock auf welcher Recheneinheit auszuführen ist. Das Verfahren umfasst ferner ein Transferieren der Ausführung eines Rechen-Funktionsblocks von einer ersten Recheneinheit der Mehrzahl von Recheneinheiten zu einer zweiten Recheneinheit der Mehrzahl von Recheneinheiten, sofern dies durch die Auswahl, welcher Rechen-Funktionsblock auf welcher Recheneinheit auszuführen ist, angezeigt ist.An aspect of the present disclosure is directed to a corresponding control method for the distribution of a plurality of computing function blocks to a plurality of computing units of a vehicle. The method includes determining the computing function blocks of the vehicle that are currently to be executed. The method further includes selecting which computing function block is to be executed on which computing unit. The method further includes transferring the execution of a computing function block from a first computing unit of the plurality of computing units to a second computing unit of the plurality of computing units if this is indicated by the selection of which computing function block is to be executed on which computing unit.
Ein Aspekt der vorliegenden Offenbarung richtet sich auf ein Programm mit einem Programmcode zum Durchführen des Verfahrens, wenn der Programmcode auf einem Computer, einem Prozessor, einem Kontrollmodul oder einer programmierbaren Hardwarekomponente ausgeführt wird.One aspect of the present disclosure is directed to a program having program code for performing the method when the program code is executed on a computer, a processor, a control module or a programmable hardware component.
Einige Beispiele von Vorrichtungen und/oder Verfahren werden nachfolgend bezugnehmend auf die beiliegenden Figuren lediglich beispielhaft näher erläutert. Es zeigen:
-
1a zeigt ein Blockdiagramm eines Beispiels einer Steuervorrichtung für eine Verteilung von einer Mehrzahl von Rechen-Funktionsblöcken auf eine Mehrzahl von Recheneinheiten eines Fahrzeugs; -
1b zeigt ein schematisches Diagramm eines Beispiels eines Fahrzeugs mit einer Steuervorrichtung für eine Verteilung von einer Mehrzahl von Rechen-Funktionsblöcken auf eine Mehrzahl von Recheneinheiten eines Fahrzeugs und der Mehrzahl von Recheneinheiten; -
1c zeigt ein Flussdiagramm eines Beispiels eines Steuerverfahrens für eine Verteilung von einer Mehrzahl von Rechen-Funktionsblöcken auf eine Mehrzahl von Recheneinheiten eines Fahrzeugs; -
1d und1e zeigen Beispiele eines Transfers einer Ausführung eines Rechen-Funktionsblocks; -
2 zeigt ein schematisches Diagrammes eines Beispiels einer Recheneinheit mit einer Laufzeitumgebung und Rechen-Funktionsblöcken; -
3 zeigt ein schematisches Diagramm eines Systems mit mehreren Recheneinheiten; und -
4a und4b zeigen Beispiele eines Transfers einer Ausführung eines Rechen-Funktionsblocks zwischen Fahrzeugen und externen Recheneinheiten.
-
12 shows a block diagram of an example of a control device for a distribution of a plurality of calculation function blocks to a plurality of calculation units of a vehicle;1a -
1b shows a schematic diagram of an example of a vehicle with a control device for a distribution of a plurality of calculation function blocks to a plurality of calculation units of a vehicle and the plurality of calculation units; -
1c shows a flow chart of an example of a control method for a distribution of a plurality of computing function blocks to a plurality of computing units of a vehicle; -
1d and1e Figure 12 shows examples of transfer of execution of a computational function block; -
2 Figure 12 shows a schematic diagram of an example of a computing unit with a runtime environment and computing function blocks; -
3 Figure 12 shows a schematic diagram of a system with multiple computing units; and -
4a and4b show examples of a transfer of an execution of a computing function block between vehicles and external computing units.
Einige Beispiele werden nun ausführlicher Bezug nehmend auf die beiliegenden Figuren beschrieben. Weitere mögliche Beispiele sind jedoch nicht auf die Merkmale dieser detailliert beschriebenen Ausführungsformen beschränkt. Diese können Modifikationen der Merkmale sowie Entsprechungen und Alternativen zu den Merkmalen aufweisen. Ferner soll die Terminologie, die hierin zum Beschreiben bestimmter Beispiele verwendet wird, nicht einschränkend für weitere mögliche Beispiele sein.Some examples will now be described in more detail with reference to the accompanying figures. However, other possible examples are not limited to the features of these detailed described embodiments. These may include modifications of the features, as well as equivalents and alternatives to the features. Furthermore, the terminology used herein to describe particular examples is not intended to be limiting of other possible examples.
Gleiche oder ähnliche Bezugszeichen beziehen sich in der gesamten Beschreibung der Figuren auf gleiche oder ähnliche Elemente beziehungsweise Merkmale, die jeweils identisch oder auch in abgewandelter Form implementiert sein können, während sie die gleiche oder eine ähnliche Funktion bereitstellen. In den Figuren können ferner die Stärken von Linien, Schichten und/oder Bereichen zur Verdeutlichung übertrieben sein.Throughout the description of the figures, the same or similar reference symbols refer to the same or similar elements or features, which can each be implemented identically or in a modified form, while providing the same or a similar function. Also, in the figures, the thicknesses of lines, layers, and/or areas may be exaggerated for clarity.
Wenn zwei Elemente A und B unter Verwendung eines „oder“ kombiniert werden, ist dies so zu verstehen, dass alle möglichen Kombinationen offenbart sind, d. h. nur A, nur B sowie A und B, sofern nicht im Einzelfall ausdrücklich anders definiert. Als alternative Formulierung für die gleichen Kombinationen kann „zumindest eines von A und B“ oder „A und/oder B“ verwendet werden. Das gilt Äquivalent für Kombinationen von mehr als zwei Elementen.When two elements A and B are combined using an "or", it is to be understood that all possible combinations are disclosed, i. H. only A, only B and A and B, unless expressly defined otherwise in individual cases. "At least one of A and B" or "A and/or B" can be used as alternative wording for the same combinations. The equivalent applies to combinations of more than two elements.
Wenn eine Singularform, z. B. „ein, eine“ und „der, die, das“ verwendet wird und die Verwendung nur eines einzelnen Elements weder explizit noch implizit als verpflichtend definiert ist, können weitere Beispiele auch mehrere Elemente verwenden, um die gleiche Funktion zu implementieren. Wenn eine Funktion im Folgenden als unter Verwendung mehrerer Elemente implementiert beschrieben ist, können weitere Beispiele die gleiche Funktion unter Verwendung eines einzelnen Elements oder einer einzelnen Verarbeitungsentität implementieren. Es versteht sich weiterhin, dass die Begriffe „umfasst“, „umfassend“, „aufweist“ und/oder „aufweisend“ bei deren Gebrauch das Vorhandensein der angegebenen Merkmale, Ganzzahlen, Schritte, Operationen, Prozesse, Elemente, Komponenten und/oder einer Gruppe derselben beschreiben, dabei aber nicht das Vorhandensein oder das Hinzufügen eines oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Prozesse, Elemente, Komponenten und/einer Gruppe derselben ausschließen.If a singular form, e.g. For example, where "a, an" and "the" are used and the use of a single element is not explicitly or implicitly required, other examples may use multiple elements to implement the same function. Where a function is described below as being implemented using multiple elements, other examples may implement the same function using a single element or processing entity. It is further understood that the terms "comprises,""comprising,""comprises," and/or "having," when used, imply the presence of the specified feature, integer, step, operation, process, element, component, and/or group describe the same, but does not exclude the presence or addition of any other feature, integer, step, operation, process, element, component and/or group thereof.
Die vorliegende Offenbarung beschäftigt sich mit der Portabilität von Rechen-Funktionsblöcken. Ein Bereich, in dem eine solche Portabilität gegeben ist, herrscht auf Desktop-Plattformen wie Windows oder mobilen Plattformen wie iOS oder Android, auf denen eine Anwendung oder ein Dienst auf allen Geräten ausgeführt werden kann, die mit der Plattform auf der Grundlage von Standard-APIs und SDKs kompatibel sind. Diese Art der Portabilität ist jedoch nicht auf das vorliegende Szenario anwendbar, denn es erlaubt nicht die Skalierung der Rechenressourcen durch die Verwendung mehrerer Geräte.The present disclosure addresses the portability of computational function blocks. One area where such portability exists is on desktop platforms such as Windows or mobile platforms such as iOS or Android, where an application or service can run on any device compatible with the platform based on standard APIs and SDKs are compatible. However, this type of portability is not applicable to the present scenario because it does not allow scaling of computing resources by using multiple devices.
Stattdessen wir eine Technik genutzt, in der Dienste, die Software-Funktionalitäten des Fahrzeugs bereitstellen, in sogenannte Rechen-Funktionsblöcke verpackt werden. Diese Rechen-Funktionsblöcke können wiederum durch sogenannte Software-Container implementiert werden oder diesen entsprechen. Ein oder mehrere Dienste können mit all ihren Abhängigkeiten in einem Software-Container gekapselt werden. Diese Container sind insbesondere zur Nutzung auf Servern und Entwicklergeräten bekannt. Beispielsweise können solche Container von verschiedenen Container-Engines (Docker, Podman, Crio, ...) bereitgestellt werden. Die vorliegende Offenbarung geht über die bereits bekannten Container hinaus, indem das Container-Konzept portabel gemacht wird, so dass die Container, und damit die Rechen-Funktionsblöcken, dynamisch zwischen den Recheneinheiten des Fahrzeugs transferiert werden können. Die vorliegende Offenbarung schafft Mittel, um portable Container zu erstellen, die dynamisch auf verschiedenen Plattformen ausgeführt werden können, oder aber um eine komplette Laufzeit (bestehend aus der Container-Engine und den Dienst-Containern) im laufenden Betrieb auf andere Plattformen übertragen.Instead, a technology is used in which services that provide the vehicle's software functionalities are packaged in so-called computing function blocks. These arithmetic function blocks can in turn be implemented by so-called software containers or correspond to them. One or more services can be encapsulated with all their dependencies in a software container. These containers are known in particular for use on servers and developer devices. For example, such containers can be provided by different container engines (Docker, Podman, Crio, ...). The present disclosure goes beyond the already known containers by making the container concept portable, so that the containers, and thus the computing function blocks, can be dynamically transferred between the computing units of the vehicle. The present disclosure provides means to create portable containers that can run dynamically on different platforms, or to port a complete runtime (consisting of the container engine and the service containers) to other platforms on the fly.
Die Steuervorrichtung 10 kann, zusammen mit den Recheneinheiten 30, in ein Fahrzeug integriert werden.
Im Folgenden wird das Konzept im Rahmen der Steuervorrichtung vorgestellt. Merkmale der Steuervorrichtung können jedoch ebenfalls in das entsprechende Steuerverfahren aufgenommen werden.The concept within the framework of the control device is presented below. However, features of the control device can also be included in the corresponding control method.
Die vorliegende Offenbarung beschäftigt sich mit einem Konzept für eine Verteilung von einer Mehrzahl von Rechen-Funktionsblöcken 20 auf eine Mehrzahl von Recheneinheiten 30 eines Fahrzeugs. Dabei steht jeder Rechen-Funktionsblock einerseits für eine Fahrzeugfunktionalität, die per Software bereitgestellt wird, und die als Rechen-Funktionsblock gekapselt ist. In anderen Worten ist jeder Rechen-Funktionsblock dazu ausgebildet, um eine Fahrzeug-Funktionalität des Fahrzeugs bereitzustellen. Auch ist jeder Rechen-Funktionsblock abgekapselt, d.h. er umfasst allen Programmkode und alle Abhängigkeiten, um innerhalb einer Laufzeitumgebung ausgeführt werden zu können. Insbesondere repräsentiert jeder Rechen-Funktionsblock eine software-implementierte Fahrzeugfunktionalität. Dabei kann, durch das vorgeschlagene Konzept, dem Rechen-Funktionsblock unabhängig davon, auf welcher Recheneinheit er ausgeführt wird, Zugang zu Sensoren und/oder Aktuatoren des Fahrzeugs gegeben werden. Beispielsweise können die Rechen-Funktionsblöcke also Fahrzeugfunktionalitäten bereitstellen, die auf einem Zugriff auf Sensoren und/oder Aktuatoren des Fahrzeugs basieren.The present disclosure deals with a concept for a distribution of a plurality of computing function blocks 20 to a plurality of
Des Weiteren wird das Konzept der Rechen-Funktionsblocks genutzt, um zu ermöglichen, dass die die Fahrzeug-Funktionalität von unterschiedlichen Recheneinheiten ausgeführt werden kann. Dazu können die Rechen-Funktionsblöcke beispielsweise als Software-Container implementiert werden, die in Laufzeitumgebungen eingesetzt werden, die standardisierte und abstrahierte Schnittstellen für die Container bereitstellen. Dabei kann jeder Rechen-Funktionsblock ausgebildet sein, um als Container innerhalb einer Laufzeitumgebung ausgeführt zu werden. Jede Recheneinheit kann wiederum ausgebildet sein, um eine Laufzeitumgebung für die Ausführung von Containern bereitzustellenFurthermore, the concept of the arithmetic function blocks is used to enable the vehicle functionality to be executed by different arithmetic units. For this purpose, the arithmetic function blocks can be implemented, for example, as software containers that are used in runtime environments that provide standardized and abstract interfaces for the containers. Each arithmetic function block can be designed to be executed as a container within a runtime environment. Each processing unit can in turn be designed to provide a runtime environment for the execution of containers
Damit die Rechen-Funktionsblöcke in den Laufzeitumgebungen der unterschiedlichen Recheneinheiten betrieben werden können, ohne dabei an Funktionalität einzubüßen, sind die Recheneinheiten in manchen Beispielen der vorliegenden Offenbarung ausgebildet, um entsprechende Schnittstellen bereitzustellen. So kann beispielsweise, wie etwa in den
Um die Portabilität der Rechen-Funktionsblöcke zu unterstützen, können die jeweiligen Schnittstellen so ausgeführt werden, dass ein Zugriff auf die Schnittstellen möglichst identisch ist, unabhängig davon, auf welcher Recheneinheit oder in welcher Laufzeitumgebung der jeweilige Rechen-Funktionsblock ausgeführt wird. Daher kann die erste Schnittstelle, die zweite Schnittstelle und/oder die dritte Schnittstelle eine Abstraktion der physikalischen Schnittstellen der jeweiligen Recheneinheit bereitstellen, so dass die erste Schnittstelle, die zweite Schnittstelle und/oder die dritte Schnittstelle für die Laufzeitumgebung auf jeder Recheneinheit einheitlich ansprechbar sind. In anderen Worten können die jeweiligen Schnittstellen einen abstrahierten und standardisierten Zugriff bieten, unabhängig von der physikalischen Ausgestaltung der jeweiligen Schnittstellen in den Recheneinheiten.In order to support the portability of the arithmetic function blocks, the respective interfaces can be designed in such a way that access to the interfaces is as identical as possible, regardless of which arithmetic unit or in which runtime environment the respective arithmetic function block is executed. The first interface, the second interface and/or the third interface can therefore provide an abstraction of the physical interfaces of the respective computing unit, so that the first interface, the second interface and/or the third interface can be addressed uniformly for the runtime environment on each computing unit. In other words, the respective interfaces can offer abstract and standardized access, regardless of the physical design of the respective interfaces in the processing units.
Die Verteilung der Rechen-Funktionsblöcke basiert darauf, welche Rechen-Funktionsblöcke zu einem gegebenen Zeitpunkt ausgeführt werden. Daher ist die Steuervorrichtung ausgebildet zum Ermitteln der derzeit auszuführenden Rechen-Funktionsblöcke des Fahrzeugs. Die derzeit auszuführenden Rechen-Funktionsblöcke des Fahrzeugs hängen dabei davon ab, welche Fahrzeugfunktionen zu diesem Zeitpunkt aktiv sind, etwa implizit durch den Betrieb des Fahrzeugs, oder explizit, weil sie von einem Passagier des Fahrzeugs aktiviert wurden. Beispielsweise können die derzeit auszuführenden Rechen-Funktionsblöcke des Fahrzeugs basierend darauf ermittelt werden, welche Fahrzeugfunktionen zu diesem Zeitpunkt, implizit oder explizit, aktiviert sind. Zusätzlich können manche auszuführende Rechen-Funktionsblöcke von anderen Fahrzeugen oder von anderen Recheneinheiten außerhalb des Fahrzeugs stammen. Diese Rechen-Funktionsblöcke können zusätzlich zu den Rechen-Funktionsblöcken, die Fahrzeugfunktionen, die derzeit aktiv sind, bereitstellen, berücksichtigt werden.The distribution of the arithmetic function blocks is based on which arithmetic function blocks are being executed at any given time. The control device is therefore designed to determine the computing function blocks of the vehicle that are currently to be executed. The computing function blocks currently to be executed by the vehicle depend on which vehicle functions are active at that time, e.g. implicitly through the operation of the vehicle, or explicitly because they have been activated by a passenger of the vehicle. For example, the computing function blocks currently to be executed by the vehicle can be determined based on which vehicle functions are activated at this point in time, implicitly or explicitly. In addition, some computing function blocks to be executed can originate from other vehicles or from other computing units outside the vehicle. These computational function blocks may be considered in addition to the computational function blocks that provide vehicle functions that are currently active.
Zusätzlich kann ein (ermittelter, erwarteter oder geschätzter) Ressourcenbedarf der derzeit auszuführenden Rechen-Funktionsblöcke des Fahrzeugs ermittelt werden, etwa basierend auf einem derzeitigen Ressourcenverbrauch der jeweiligen Rechen-Funktionsblöcken, oder basierend auf einer Schätzung, die auf einem Ressourcenverbrauch der jeweiligen Rechen-Funktionsblöcken in der Vergangenheit basiert. Dafür kann beispielsweise eine RessourcenÜberwachung genutzt werden, wie sie in
Basierend auf den ermittelten derzeit auszuführenden Rechen-Funktionsblöcke des Fahrzeugs kann nun ausgewählt werden, welcher Rechen-Funktionsblock auf welcher Recheneinheit auszuführen ist. In anderen Worten wird eine Zuordnung von Rechen-Funktionsblöcken zu Recheneinheiten bestimmt. Dabei können verschiedene Kriterien beachtet werden. Einerseits kann berücksichtigt werden, dass, gemäß der Auswahl, jedem Rechen-Funktionsblock ausreichend Ressourcen (etwa Rechen-Ressourcen oder Speicher-Ressourcen) zur Verfügung stehen. In anderen Worten kann die Auswahl, welcher Rechen-Funktionsblock auf welcher Recheneinheit auszuführen ist, basierend auf einem Ressourcenbedarf der Rechen-Funktionsblöcke und auf verfügbaren Ressourcen der Recheneinheiten so durchgeführt werden, dass jedem Rechen-Funktionsblock ausreichend Ressourcen zur Verfügung stehen. Die verfügbaren Ressourcen der Recheneinheiten können wiederum über die RessourcenÜberwachung, wie sie in
Zusätzlich zu den benötigten und verfügbaren Ressourcen können auch andere Faktoren berücksichtigt werden, wie etwa der Zugriff der Rechen-Funktionsblöcke auf Sensorik/Aktuatorik der jeweiligen Recheneinheiten. Ist ein solcher Zugriff lediglich indirekt möglich, d.h. über eine Weiterleitung über die jeweiligen zweiten Schnittstellen der Recheneinheiten, kann dies gegen eine Auswahl einer solchen Recheneinheit für einen zugreifenden Rechen-Funktionsblock sprechen. Kommunizieren Rechen-Funktionsblöcke untereinander, so kann dies berücksichtigt werden, etwa indem die Rechen-Funktionsblöcke der gleichen Recheneinheit, und/oder der gleichen Laufzeitumgebung zugewiesen werden. Abhängig von der Funktionalität der Rechen-Funktionsblöcke können auch weitere Faktoren berücksichtigt werden.In addition to the required and available resources, other factors can also be taken into account, such as access by the computing function blocks to the sensors/actuators of the respective computing units. If such access is only possible indirectly, i.e. via forwarding via the respective second interfaces of the processing units, this can speak against a selection of such a processing unit for an accessing processing function block. If arithmetic function blocks communicate with one another, this can be taken into account, for example by assigning the arithmetic function blocks to the same arithmetic unit and/or the same runtime environment. Depending on the functionality of the arithmetic function blocks, other factors can also be taken into account.
Basierend auf der Zuordnung von Rechen-Funktionsblöcken zu Recheneinheiten wird nun die Ausführung der Rechen-Funktionsblöcke zwischen den Recheneinheiten transferiert, soweit notwendig. Dabei wird in diesem Zusammenhang von einem Transferieren der Ausführung gesprochen, weil, in manchen Beispielen, die Rechen-Funktionsblöcke bereits in unterschiedlichen Recheneinheiten vorliegen können. Was transferiert wird ist die Ausführung, d.h., welche Recheneinheit welchen Rechen-Funktionsblock ausführt. In anderen Worten entspricht oder umfasst das Transferieren der Ausführung eines Rechen-Funktionsblocks ein Ändern, auf welcher Recheneinheit der Rechen-Funktionsblock ausgeführt wird. Zusätzlich zu der reinen Ausführung des Rechen-Funktionsblock können zudem Laufzeitdaten des Rechen-Funktionsblocks transferiert werden. Entsprechend kann das Transferieren der Ausführung des Rechen-Funktionsblocks ein Transferieren von Laufzeitdaten des Rechen-Funktionsblocks umfassen. Dabei können die Laufzeitdaten Daten sein, die von der ersten Recheneinheit in dem Rechen-Funktionsblock oder in einer Speicherressource der ersten Recheneinheit gespeichert sind. Zusätzlich oder alternativ kann der Inhalt eines flüchtigen Arbeitsspeichers, der von dem Rechen-Funktionsblock auf der ersten Recheneinheit verwendet wird, auf die zweite Recheneinheit übertragen werden.Based on the assignment of arithmetic function blocks to arithmetic units, the execution of the arithmetic function blocks is now transferred between the arithmetic units, if necessary. In this context, one speaks of a transfer of the execution because, in some examples, the arithmetic function blocks can already be present in different arithmetic units. What is transferred is the execution, i.e. which arithmetic unit executes which arithmetic function block. In other words, transferring the execution of a computational function block corresponds to or includes changing on which computational unit the computational function block is executed. In addition to the pure execution of the arithmetic function block, runtime data of the arithmetic function block can also be transferred. Correspondingly, transferring the execution of the computing function block may include transferring runtime data of the computing function block. In this case, the runtime data can be data that is stored by the first processing unit in the processing function block or in a storage resource of the first processing unit. Additionally or alternatively, the content of a volatile main memory, which is used by the arithmetic function block on the first arithmetic unit, can be transferred to the second arithmetic unit.
Die Steuervorrichtung ist ausgebildet zum Transferieren der Ausführung des Rechen-Funktionsblocks von der ersten zu der zweiten Recheneinheit 30b der Mehrzahl von Recheneinheiten, sofern dies durch die Auswahl, welcher Rechen-Funktionsblock auf welcher Recheneinheit auszuführen ist, angezeigt ist. Dabei kommen zwei Varianten in Betracht, die in den
In
Alternativ kann, wie in
Wie bereits angedeutet kann das vorgeschlagene Konzept auch in Szenarien eingesetzt werden, in denen Recheneinheiten außerhalb des Fahrzeugs einbezogen werden, etwa Recheneinheiten von anderen Fahrzeugen, Recheneinheiten einer Parkgarage oder Recheneinheiten einer Ladestation. Folglich kann die Mehrzahl von Recheneinheiten ferner ein oder mehrere Recheneinheiten umfassen, die außerhalb des Fahrzeugs angeordnet sind. Ein solches Szenario ist beispielsweise in Zusammenhang mit den
Die zumindest eine Schnittstelle 12 kann beispielsweise einem oder mehreren Eingängen und/oder einem oder mehreren Ausgängen zum Empfangen und/oder Übertragen von Informationen entsprechen, etwa in digitalen Bitwerten, basierend auf einem Code, innerhalb eines Moduls, zwischen Modulen, oder zwischen Modulen verschiedener Entitäten.The at least one
In Ausführungsbeispielen können die ein oder mehreren Prozessoren 14 einem beliebigen Controller oder Prozessor oder einer programmierbaren Hardwarekomponente entsprechen. Beispielsweise kann die Funktionalität der ein oder mehreren Prozessoren 14 auch als Software realisiert sein, die für eine entsprechende Hardwarekomponente programmiert ist. Insofern können die ein oder mehreren Prozessoren 14 als programmierbare Hardware mit entsprechend angepasster Software implementiert sein. Dabei können beliebige Prozessoren, wie Digitale Signalprozessoren (DSPs) zum Einsatz kommen. Ausführungsbeispiele sind dabei nicht auf einen bestimmten Typ von Prozessor eingeschränkt. Es sind beliebige Prozessoren oder auch mehrere Prozessoren zur Implementierung denkbar.In example embodiments, the one or
Die ein oder mehreren Speichergeräte 16 können beispielsweise zumindest ein Element der Gruppe von computerlesbares Speichermedium, magnetisches Speichermedium, optisches Speichermedium, Festplatte, Flash-Speicher, Diskette, Zufallszugriffsspeicher (auch engl. Random Access Memory), Programmable Read Only Memory (PROM), Erasable Programmable Read Only Memory (EPROM), Electronically Erasable Programmable Read Only Memory (EEPROM), und Netzwerkspeicher umfassen.The one or
Das Fahrzeug 100 kann beispielsweise einem Landfahrzeug, einem Wasserfahrzeug, einem Luftfahrzeug, einem Schienenfahrzeug, einem Straßenfahrzeug, einem Auto, einem Geländefahrzeug, einem Kraftfahrzeug, oder einem Lastkraftfahrzeug entsprechen.The
Mehr Details und Aspekte der Steuervorrichtung, des Steuerverfahrens, des Computerprogramms, des Systems und des Fahrzeugs werden in Verbindung mit dem Konzept oder Beispielen genannt, die vorher oder nachher (z.B.
Um einen einheitlichen Dienstcontainer für alle Plattformen zu schaffen, kann das Gerät, auf dem die Dienste ausgeführt werden, abstrahiert werden, um die Unterschiede der Hardware-Architekturen oder der Low-Level-Datenformate zu verbergen. Ein Beispiel für die Ausgestaltung einer Recheneinheit wird im Folgenden gegeben.To create a unified service container across platforms, the device running the services can be abstracted to hide differences in hardware architectures or low-level data formats. An example of the design of a computing unit is given below.
Die Einzelheiten einer solchen Implementierung sind in der folgenden
Die Laufzeitumgebung empfängt oder sendet Daten (ausschließlich) über die abstrahierten Schnittstellen (Umgebungs- / Kommunikations- / Host-Konnektor) und ist damit unabhängig von dem physischen Gerät. Die Laufzeitumgebung kann auf verschiedenen Geräten instanziiert werden, etwa auf einem oder mehreren Fahrzeugsteuergeräten/Recheneinheiten des Fahrzeugs, auf einem Backend-Server, einem Personal Computer oder anderen persönlichen Geräten wie einem Smartphone oder einem Wearable.The runtime environment receives or sends data (exclusively) via the abstracted interfaces (environment / communication / host connector) and is therefore independent of the physical device. The runtime environment can be instantiated on various devices, such as one or more vehicle control units/computing units of the vehicle, on a backend server, a personal computer or other personal devices such as a smartphone or a wearable.
Ein wichtiges neues Konzept ist die Möglichkeit, Rechen-Funktionsblöcke, und damit Dienste, von einer Laufzeitumgebung in eine andere zu verlagern und auch einen Lastausgleich zwischen den Laufzeitumgebungen vorzunehmen.An important new concept is the ability to move computing function blocks, and thus services, from one runtime environment to another and also to perform load balancing between the runtime environments.
Die Kommunikation zwischen den Laufzeitumgebungen kann verschlüsselt werden, um zu verhindern, dass ein „Mann in der Mitte“ Nachrichten abhören und auch den Datenverkehr verändern kann. Isolierte (SW-)Container, d.h., die Rechen-Funktionsblöcke, können zur Ausführung auf verschiedene Plattformen verschoben werden. Auch eine komplette Laufzeitumgebung (Basissystem) kann auf ein anderes System verschoben werden. Die Virtualisierung der HW-Schnittstellen ermöglicht eine von der Gerätearchitektur unabhängige Implementierung der Laufzeit. Der Datenverkehr (Eingabe/Ausgabe) zwischen den Laufzeiten kann über einen verschlüsselten Kanal erfolgen. Zudem kann Fahrzeug-SW zu Entwicklungs-/Test- oder anderen Zwecken auf persönliche Geräte (z. B. PC, Smartphone, ...) übertragen werden.Communication between the runtime environments can be encrypted to prevent a "man in the middle" from eavesdropping on messages and also modifying data traffic. Isolated (SW) containers, i.e. the computational function blocks, can be moved to different platforms for execution. A complete runtime environment (base system) can also be moved to another system. The virtualization of the HW interfaces enables the runtime to be implemented independently of the device architecture. Traffic (input/output) between runtimes can be done over an encrypted channel. In addition, vehicle SW can be transferred to personal devices (e.g. PC, smartphone, ...) for development/testing or other purposes.
Die folgende
Die Geräte 30a, 30b (1 bis n) (d.h. die Mehrzahl von Recheneinheiten) können beispielsweise in ein Fahrzeug als Steuergeräte integriert sein, es kann sich auch um eine Mischung aus einigen Geräten innerhalb eines Fahrzeugs und einem oder mehreren (Backend-)Servern handeln oder um eine Ad-hoc-Integration von persönlichen Geräten in eine Fahrzeugumgebung.The
Die Kommunikation zwischen den verschiedenen Laufzeitumgebungen kann abstrahierte Daten (im Gegensatz zu Rohdaten) verwenden, um zeit- und ressourcenaufwendige Konvertierungen zu vermeiden. Wenn Informationen den Bereich der abstrahierten Laufzeitumgebungen verlassen, können die jeweiligen Schnittstellen (Umgebungs-Konnektor, Kommunikations-Konnektor, Host Konnektor) die Daten zurück in die Formate in diesen verbundenen Systemen konvertieren.Communication between the different runtime environments can use abstracted data (as opposed to raw data) to avoid time and resource consuming conversions. When information leaves the scope of the abstracted runtime environments, the respective interfaces (environmental connector, communication connector, host connector) can convert the data back to the formats in these connected systems.
Ein weiterer Aspekt, der berücksichtigt wird, ist der Lastausgleich, d.h. wo soll ein Dienst ausgeführt werden, wenn mehrere Recheneinheiten/Laufzeitumgebungen verfügbar sind? Um diese Herausforderung zu lösen, können zwei Elemente verwendet werden. Ressourcenmonitore 33 (siehe
In
Während die Ressourcenüberwachung auf allen Geräten durchgeführt werden kann, kann der Lastverteiler eine unabhängige Software-Komponente sein, die die Berichte aller Ressourcenmonitore sammelt, um eine zentrale Entscheidung darüber zu treffen, wo die Dienste ausgeführt werden sollen.While resource monitoring can be performed on all devices, the load balancer can be an independent software component that collects the reports from all resource monitors to make a central decision on where to run the services.
Alternativ könnte der Lastausgleich auch auf verteilte Weise erfolgen. Hierbei bieten die verschiedenen Geräte einem Dienstanbieter (z. B. im Backend) freie Ressourcen an, um einen Dienst zu übernehmen, wenn Ressourcen auf dem Gerät verfügbar sind. Der zentrale Lastverteiler hat jedoch den Vorteil, dass die Entscheidung, wo ein Dienst laufen soll, an einer Stelle (z.B. im Backend oder in einem zentralen Steuergerät) getroffen wird und keine zeitaufwändigen Verhandlungen der dezentralen Ressourcenmonitore in den einzelnen Geräten erforderlich sind.Alternatively, load balancing could be done in a distributed manner. Here, the various devices offer free resources to a service provider (e.g. in the backend) in order to take over a service if resources are available on the device. However, the central load balancer has the advantage that the decision as to where a service should run is made at one point (e.g. in the backend or in a central control device) and no time-consuming negotiations of the decentralized resource monitors in the individual devices are required.
Die abstrahierte verteilte Laufzeitumgebung ermöglicht die Skalierung eines Systems durch Hinzufügen neuer Laufzeitumgebungen bei Bedarf. Im Fahrzeugkontext ermöglicht dies, ein Fahrzeug mit neuen Diensten auf dem neuesten Stand zu halten und zu anspruchsvolle Dienste auf alternative, mit dem Fahrzeug verbundene Geräte zu verlagern.The abstracted distributed runtime environment allows a system to be scaled by adding new runtime environments as needed. In the vehicle context, this allows to keep a vehicle updated with new services and to shift overly demanding services to alternative devices connected to the vehicle.
Die Abstraktion von Laufzeitumgebungen ist ebenfalls hilfreich für Anwendungen und Standards in den Bereichen loT / M2M / B2B (Internet of Things/Internet der Dinge, Machine-to-Machine/Maschine-zu-Maschine, Business-to-Business/geschäftliche Transaktionen). Die Erfindung kann in Fahrzeugen und anderen Mobilitätsprodukten (z.B. Wallboxen, Ladestationen, Infrastruktur) eingesetzt werden. Die verteilten Laufzeitumgebungen können auch in anderen Umgebungen eingesetzt werden (Smart Home, Smart City, Smart Offices, ...).The abstraction of runtime environments is also useful for loT / M2M / B2B (Internet of Things/Internet of Things, machine-to-machine/machine-to-machine, business-to-business/business transactions) applications and standards. The invention can be used in vehicles and other mobility products (e.g. wall boxes, charging stations, infrastructure). The distributed runtime environments can also be used in other environments (smart home, smart city, smart offices, ...).
Verschiedene Beispiele der vorliegenden Erfindung können dabei helfen, die Grenze zwischen Backend und Fahrzeug (z. B. Verschiebung von Aufgaben in Fahrzeuge, die keine anderen Aufgaben haben - geparkte Fahrzeuge) - Middleware oder Netzwerkbetriebssystem zu beseitigen. Dadurch wird eine Abwägung zwischen lokalen Ressourcen (im Fahrzeug) und entfernten Ressourcen (andere Fahrzeuge, Server) möglich.Various examples of the present invention may help to eliminate the boundary between backend and vehicle (e.g. moving tasks to vehicles that have no other tasks - parked vehicles) - middleware or network operating system. This enables a trade-off between local resources (in the vehicle) and remote resources (other vehicles, servers).
Wie bereits zuvor ausgeführt wurde, ist es möglich, die Rechen-Funktionsblöcke auch zu Recheneinheiten außerhalb des Fahrzeugs zu transferieren.
Dies ermöglicht beispielsweise eine Nutzung geparkter Autos als Computer- und Netzwerkressourcen, oder die Nutzung von Recheneinheiten in einer Garage mit sich bewegenden Laderobotern, eine andere Garage mit einem Roboterarm, der nach dem Fahrzeug greift. Dabei ist es möglich, mehr als eine Laufzeitumgebung pro Fahrzeug/Recheneinheit zu erstellen, etwa um die transferierten Rechen-Funktionsblöcke unterschiedlicher Fahrzeuge stärker voneinander zu treffen. Auch werden verschiedene (neue) Umgebungen für eine Laufzeitlösung geschaffen (etwa durch Nutzung externer Geräte wie: Laderoboter). Dabei werden die Schnittstellen, wie zuvor bereits in Verbindung mit den
Die Übertragung eines Dienstes, d.h., eines Rechen-Funktionsblocks (Algorithmus) auf eine andere Instanz (z. B. vom Fahrzeug auf die Werkstatt) kann beispielsweise aufgrund mangelnder Ressourcen durchgeführt haben. Dazu kann die Garage eine kompatible Laufzeitumgebung vorhalten, um den Dienst ausführen zu können.The transfer of a service, i.e. a calculation function block (algorithm) to another instance (e.g. from the vehicle to the workshop) may have been carried out due to a lack of resources, for example. For this purpose, the garage can provide a compatible runtime environment in order to be able to run the service.
Um Datensicherheit zu gewährleisten, wenn Anwendungen/Dienste auf anderen Instanzen/Recheneinheiten transferiert werden, kann Verschlüsselung eingesetzt werden, so dass die Rechen-Funktionsblöcke und/oder die Laufzeitumgebungen keine vertraulichen Daten weitergeben. Dabei kann eine zweiteilige Umsetzung gewählt werden, indem die Funktionslogik und die Daten (die privat sein können) separat gehandhabt werden.To ensure data security when applications/services are transferred to other instances/computing units, encryption can be used so that the computing function blocks and/or the runtime environments do not pass on any confidential data. Thereby can a two-part implementation can be chosen by handling the functional logic and the data (which may be private) separately.
Das vorgestellte Konzept kann beispielsweise für Kombi-Dienstleistungen verwendet werden. Im Beispiel einer Parkgarage kann die Parkgarage beispielsweise elektrische Energie zum Laden für das Fahrzeug bereitstellen. Zusätzlich kann die Parkgarage Rechenressourcen zur Ausführung von Rechen-Funktionsblocks des Fahrzeugs bereitstellen, oder aber, die Rechenkapazität des Rechen-Funktionsblocks des Fahrzeugs nutzen. Bei der Nutzung von Rechenleistung (mit Zahlungen) kann ein Rabatt für die elektrische Leistung gewährt werden. Dies ermöglicht es, eigene Ressourcen anbieten (z.B. Rechenleistung, wenn sie nicht genutzt wird) und etwas zurückbekommenThe concept presented can be used for combined services, for example. In the example of a parking garage, the parking garage can provide electrical energy for charging the vehicle, for example. In addition, the parking garage can provide computing resources for executing computing function blocks of the vehicle, or use the computing capacity of the computing function block of the vehicle. When using computing power (with payments), a discount for electrical power can be granted. This allows you to offer your own resources (e.g. computing power when not in use) and get something in return
Auch abgesehen von dem Szenario einer Parkgarage können die Rechen-Ressourcen des eigenen Fahrzeugs angeboten werden, wenn der Ladezustand ausreichend ist und es nicht genutzt wird, auf der Grundlage von GegenseitigkeitAlso apart from the scenario of a parking garage, the computing resources of one's own vehicle can be offered when the state of charge is sufficient and it is not used, on the basis of reciprocity
Die Aspekte und Merkmale, die im Zusammenhang mit einem bestimmten der vorherigen Beispiele beschrieben sind, können auch mit einem oder mehreren der weiteren Beispiele kombiniert werden, um ein identisches oder ähnliches Merkmal dieses weiteren Beispiels zu ersetzen oder um das Merkmal in das weitere Beispiel zusätzlich einzuführen.The aspects and features described in connection with a certain of the previous examples can also be combined with one or more of the further examples in order to replace an identical or similar feature of this further example or to additionally introduce the feature into the further example .
Beispiele können weiterhin ein (Computer-)Programm mit einem Programmcode zum Ausführen eines oder mehrerer der obigen Verfahren sein oder sich darauf beziehen, wenn das Programm auf einem Computer, einem Prozessor oder einer sonstigen programmierbaren Hardwarekomponente ausgeführt wird. Schritte, Operationen oder Prozesse von verschiedenen der oben beschriebenen Verfahren können also auch durch programmierte Computer, Prozessoren oder sonstige programmierbare Hardwarekomponenten ausgeführt werden. Beispiele können auch Programmspeichervorrichtungen, z. B. Digitaldatenspeichermedien, abdecken, die maschinen-, prozessor- oder computerlesbar sind und maschinenausführbare, prozessorausführbare oder computerausführbare Programme und Anweisungen codieren beziehungsweise enthalten. Die Programmspeichervorrichtungen können z. B. Digitalspeicher, magnetische Speichermedien wie beispielsweise Magnetplatten und Magnetbänder, Festplattenlaufwerke oder optisch lesbare Digitaldatenspeichermedien umfassen oder sein. Weitere Beispiele können auch Computer, Prozessoren, Steuereinheiten, (feld-)programmierbare Logik-Arrays ((F)PLAs = (Field) Programmable Logic Arrays),(feld-)programmierbare Gate-Arrays ((F)PGA = (Field) Programmable Gate Arrays), Grafikprozessoren (GPU = Graphics Processor Unit), anwendungsspezifische integrierte Schaltungen (ASIC = application-specific integrated circuit), integrierte Schaltungen (IC= Integrated Circuit) oder Ein-Chip-Systeme (SoC = System-on-a-Chip) abdecken, die zum Ausführen der Schritte der oben beschriebenen Verfahren programmiert sind.Examples may further include or relate to a (computer) program having program code for performing one or more of the above methods when the program is executed on a computer, processor or other programmable hardware component. Thus, steps, operations, or processes of various methods described above may also be performed by programmed computers, processors, or other programmable hardware components. Examples may also include program storage devices, e.g. digital data storage media, which is machine, processor or computer readable and which encodes or incorporates machine executable, processor executable or computer executable programs and instructions. The program storage devices may e.g. B. include or be digital storage, magnetic storage media such as magnetic disks and magnetic tapes, hard drives or optically readable digital data storage media. Further examples can also be computers, processors, control units, (field) programmable logic arrays ((F)PLAs = (Field) Programmable Logic Arrays), (field) programmable gate arrays ((F)PGA = (Field) Programmable Gate arrays), graphics processors (GPU = graphics processor unit), application-specific integrated circuits (ASIC = application-specific integrated circuit), integrated circuits (IC = integrated circuit) or single-chip systems (SoC = system-on-a-chip). ) that are programmed to perform the steps of the above procedures.
Es versteht sich ferner, dass die Offenbarung mehrerer, in der Beschreibung oder den Ansprüchen offenbarter Schritte, Prozesse, Operationen oder Funktionen nicht als zwingend in der beschriebenen Reihenfolge befindlich ausgelegt werden soll, sofern dies nicht im Einzelfall explizit angegeben oder aus technischen Gründen zwingend erforderlich ist. Daher wird durch die vorhergehende Beschreibung die Durchführung von mehreren Schritten oder Funktionen nicht auf eine bestimmte Reihenfolge begrenzt. Ferner kann bei weiteren Beispielen ein einzelner Schritt, eine einzelne Funktion, ein einzelner Prozess oder eine einzelne Operation mehrere Teilschritte, -funktionen, -prozesse oder -operationen einschließen und/oder in dieselben aufgebrochen werden.It is further understood that disclosure of a plurality of steps, processes, operations, or functions disclosed in the specification or claims should not be construed as necessarily being in the order described, unless expressly stated in an individual case or is compellingly necessary for technical reasons . Therefore, the foregoing description is not intended to limit the performance of any number of steps or functions to any particular order. Further, in other examples, a single step, function, process, or operation may include and/or be broken into multiple sub-steps, functions, processes, or operations.
Wenn einige Aspekte in den vorhergehenden Abschnitten im Zusammenhang mit einer Vorrichtung oder einem System beschrieben wurden, sind diese Aspekte auch als eine Beschreibung des entsprechenden Verfahrens zu verstehen. Dabei kann beispielsweise ein Block, eine Vorrichtung oder ein funktionaler Aspekt der Vorrichtung oder des Systems einem Merkmal, etwa einem Verfahrensschritt, des entsprechenden Verfahrens entsprechen. Entsprechend dazu sind Aspekte, die im Zusammenhang mit einem Verfahren beschrieben werden, auch als eine Beschreibung eines entsprechenden Blocks, eines entsprechenden Elements, einer Eigenschaft oder eines funktionalen Merkmals einer entsprechenden Vorrichtung oder eines entsprechenden Systems zu verstehen.If some aspects have been described in the preceding paragraphs in the context of a device or a system, these aspects are also to be understood as a description of the corresponding method. For example, a block, a device or a functional aspect of the device or the system can correspond to a feature, such as a method step, of the corresponding method. Correspondingly, aspects described in connection with a method are also to be understood as a description of a corresponding block, element, property or functional feature of a corresponding device or system.
Die folgenden Ansprüche werden hiermit in die detaillierte Beschreibung aufgenommen, wobei jeder Anspruch als getrenntes Beispiel für sich stehen kann. Ferner ist zu beachten, dass - obwohl ein abhängiger Anspruch sich in den Ansprüchen auf eine bestimmte Kombination mit einem oder mehreren anderen Ansprüchen bezieht - andere Beispiele auch eine Kombination des abhängigen Anspruchs mit dem Gegenstand jedes anderen abhängigen oder unabhängigen Anspruchs umfassen können. Solche Kombinationen werden hiermit explizit vorgeschlagen, sofern nicht im Einzelfall angegeben ist, dass eine bestimmte Kombination nicht beabsichtigt ist. Ferner sollen auch Merkmale eines Anspruchs für jeden anderen unabhängigen Anspruch eingeschlossen sein, selbst wenn dieser Anspruch nicht direkt als abhängig von diesem anderen unabhängigen Anspruch definiert ist.The following claims are hereby incorporated into the Detailed Description, with each claim being able to stand on its own as a separate example. It should also be noted that although a dependent claim in the claims refers to a particular combination with one or more other claims, other examples may also include a combination of the dependent claim with the subject-matter of any other dependent or independent claim. Such combinations are hereby explicitly proposed, unless it is stated in individual cases that a specific combination is not intended. Furthermore, features of a claim are also intended to be included for any other independent claim, even if that claim is not directly defined as dependent on that other independent claim.
Claims (15)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102021123358.5A DE102021123358B3 (en) | 2021-09-09 | 2021-09-09 | Control device, control method and computer program for distributing computing function blocks to computing units in a vehicle |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102021123358.5A DE102021123358B3 (en) | 2021-09-09 | 2021-09-09 | Control device, control method and computer program for distributing computing function blocks to computing units in a vehicle |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE102021123358B3 true DE102021123358B3 (en) | 2022-10-20 |
Family
ID=83447356
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE102021123358.5A Active DE102021123358B3 (en) | 2021-09-09 | 2021-09-09 | Control device, control method and computer program for distributing computing function blocks to computing units in a vehicle |
Country Status (1)
| Country | Link |
|---|---|
| DE (1) | DE102021123358B3 (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115755810A (en) * | 2022-11-24 | 2023-03-07 | 中电科普天科技股份有限公司 | Distributed control device based on cooperative control |
| CN116527711A (en) * | 2023-04-28 | 2023-08-01 | 中国第一汽车股份有限公司 | Communication method, device, storage medium and vehicle of vehicle Ethernet |
| DE102023102009A1 (en) | 2023-01-27 | 2024-08-01 | Cariad Se | Method for outsourcing data processing tasks by a motor vehicle, motor vehicle, device (edge node) and system of edge nodes and motor vehicles |
Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120159523A1 (en) | 2010-12-17 | 2012-06-21 | Microsoft Corporation | Multi-tenant, high-density container service for hosting stateful and stateless middleware components |
| US20180136931A1 (en) | 2016-11-14 | 2018-05-17 | Ca, Inc. | Affinity of microservice containers |
| US20180137306A1 (en) | 2016-11-17 | 2018-05-17 | International Business Machines Corporation | Container update system |
| US20190042321A1 (en) | 2017-08-04 | 2019-02-07 | Unisys Corporation | Elastic container management system |
| DE102020109191A1 (en) | 2019-04-02 | 2020-10-08 | Aptiv Technologies Limited | SAFE BOOTING VEHICLE PROCESSORS |
| US20210044647A1 (en) | 2019-10-16 | 2021-02-11 | Alipay (Hangzhou) Information Technology Co., Ltd. | Implementing a blockchain-based web service |
| US20210117242A1 (en) | 2020-10-03 | 2021-04-22 | Intel Corporation | Infrastructure processing unit |
| US11113090B1 (en) | 2017-08-09 | 2021-09-07 | United Services Automobile Association (Usaa) | Systems and methods for container management |
| DE112020000558T5 (en) | 2019-05-09 | 2021-12-02 | International Business Machines Corporation | DYNAMIC CHANGING AN INSULATION OF A CONTAINERIZED WORKLOAD IN RESPONSE TO A DETERMINATION OF A RELEVANT FACTOR |
-
2021
- 2021-09-09 DE DE102021123358.5A patent/DE102021123358B3/en active Active
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120159523A1 (en) | 2010-12-17 | 2012-06-21 | Microsoft Corporation | Multi-tenant, high-density container service for hosting stateful and stateless middleware components |
| US20180136931A1 (en) | 2016-11-14 | 2018-05-17 | Ca, Inc. | Affinity of microservice containers |
| US20180137306A1 (en) | 2016-11-17 | 2018-05-17 | International Business Machines Corporation | Container update system |
| US20190042321A1 (en) | 2017-08-04 | 2019-02-07 | Unisys Corporation | Elastic container management system |
| US11113090B1 (en) | 2017-08-09 | 2021-09-07 | United Services Automobile Association (Usaa) | Systems and methods for container management |
| DE102020109191A1 (en) | 2019-04-02 | 2020-10-08 | Aptiv Technologies Limited | SAFE BOOTING VEHICLE PROCESSORS |
| DE112020000558T5 (en) | 2019-05-09 | 2021-12-02 | International Business Machines Corporation | DYNAMIC CHANGING AN INSULATION OF A CONTAINERIZED WORKLOAD IN RESPONSE TO A DETERMINATION OF A RELEVANT FACTOR |
| US20210044647A1 (en) | 2019-10-16 | 2021-02-11 | Alipay (Hangzhou) Information Technology Co., Ltd. | Implementing a blockchain-based web service |
| US20210117242A1 (en) | 2020-10-03 | 2021-04-22 | Intel Corporation | Infrastructure processing unit |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115755810A (en) * | 2022-11-24 | 2023-03-07 | 中电科普天科技股份有限公司 | Distributed control device based on cooperative control |
| DE102023102009A1 (en) | 2023-01-27 | 2024-08-01 | Cariad Se | Method for outsourcing data processing tasks by a motor vehicle, motor vehicle, device (edge node) and system of edge nodes and motor vehicles |
| CN116527711A (en) * | 2023-04-28 | 2023-08-01 | 中国第一汽车股份有限公司 | Communication method, device, storage medium and vehicle of vehicle Ethernet |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE102021123358B3 (en) | Control device, control method and computer program for distributing computing function blocks to computing units in a vehicle | |
| DE69327448T2 (en) | Method and device for subtasks in a distributed processing system | |
| DE112012004747B4 (en) | Hidden automated data mirroring for native interfaces in distributed virtual machines | |
| DE102020127705A1 (en) | TECHNIQUES FOR EFFICIENT FABRIC-ATTACHED STORAGE | |
| DE112010003554T5 (en) | Symmetrical direct migration of virtual machines | |
| DE112012000693B4 (en) | Running multiple instances of an application | |
| DE112007001135T5 (en) | Sharing data through partitions in a partitionable system | |
| DE112010004784T5 (en) | Efficient loading of data into the memory of a computer system | |
| DE112013000656T5 (en) | System and method for reducing memory usage by optimally placing virtual machines in a virtualized data center | |
| DE69818103T2 (en) | CALLING MECHANISM FOR STATIC AND DYNAMICALLY LINKED FUNCTIONS IN AN OBJECT-ORIENTED CONTROL UNIT USING HETEROGENEOUS DEVELOPMENT ENVIRONMENTS | |
| DE112011100323T5 (en) | Cross-architecture migration of virtual machines | |
| DE112016003249T5 (en) | Deployment Deployment Container Deployment | |
| DE112009000411T5 (en) | Method and system for implementing a virtual storage pool in a virtual environment | |
| DE112020004651B4 (en) | MULTI-TENANT ETL RESOURCE SHARING | |
| DE202008016892U1 (en) | Motor vehicle control device | |
| DE112018005898T5 (en) | DYNAMIC PROVISION OF SOFTWARE FUNCTIONS | |
| DE112011101929T5 (en) | Enable control of a hypervisor in a cloud computing environment | |
| DE112012004247T5 (en) | Passively monitoring virtual systems using extensible indexing | |
| DE102021130092A1 (en) | SYSTEM FOR PARALLEL PROCESSING OF APPLICATION ALGORITHMS FOR MIDDLEWARE NODES USING THREADS | |
| DE102013209643A1 (en) | Mechanism for optimized message exchange data transfer between nodelets within a tile | |
| DE112020002785T5 (en) | PROCESSES FOR A CONTAINER-BASED VIRTUALIZATION SYSTEM | |
| DE102018213428A1 (en) | Techniques for reducing accelerator memory access costs in multi-channel platforms | |
| DE112021003348T5 (en) | MANAGE DATA TRANSFER BETWEEN MICROSERVICES | |
| DE112023003440T5 (en) | INTELLIGENT PROCESS MANAGEMENT IN CLOUD ENVIRONMENTS FOR SERVERLESS WORKFLOWS | |
| DE112021005394T5 (en) | TAG-DRIVEN PLANNING OF COMPUTING RESOURCES FOR FUNCTIONAL EXECUTION |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R012 | Request for examination validly filed | ||
| R016 | Response to examination communication | ||
| R018 | Grant decision by examination section/examining division | ||
| R026 | Opposition filed against patent | ||
| R081 | Change of applicant/patentee |
Owner name: CARIAD SE, DE Free format text: FORMER OWNER: VOLKSWAGEN AKTIENGESELLSCHAFT, 38440 WOLFSBURG, DE |