Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD, COMPUTER PROGRAM, ELECTRONIC STORAGE MEDIUM AND DEVICE FOR PROVIDING AN ITEM OF DATA
Document Type and Number:
WIPO Patent Application WO/2021/063592
Kind Code:
A1
Abstract:
The invention relates to a method (300) for providing an item of data in a communications system, comprising the following steps: allocating (301) a storage means to update data in the storage means, in particular by a producer, in particular in response to a request signal of the producer; updating (302) the data in the provided storage means with the item of data; providing (303) the storage means to be read out, in particular by the consumer, characterised in that the storage means is allocated according to a status of the storage means in the allocating step (301).

Inventors:
KRAUS MATHIAS (DE)
KROENKE DIETRICH (DE)
BORNMANN LUTZ (DE)
CHEN WENWEN (DE)
POEHNL MICHAEL (DE)
ELTZSCHIG CHRISTIAN (DE)
KOENIG STEFFEN (DE)
Application Number:
PCT/EP2020/073203
Publication Date:
April 08, 2021
Filing Date:
August 19, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
International Classes:
G06F8/65
Foreign References:
US20050124332A12005-06-09
Download PDF:
Claims:
Ansprüche

1. Verfahren (300) zum Bereitstellen von einem Datum in einem Kommunikationssystem umfassend die Schritte:

Allokieren (301) eines Speichermittels zum Aktualisieren von Daten in dem Speichermittel, insbesondere durch einen Produzenten, insbesondere in Reaktion auf ein Anforderungssignal des Produzenten; Aktualisieren (302) der Daten in dem allokierten Speichermittel mit dem Datum;

Bereitstellen (303) des allokierten Speichermittels zum Auslesen, insbesondere durch einen Konsumenten, dadurch gekennzeichnet, dass im Schritt des Allokierens (301) das Speichermittel in Abhängigkeit von einem Zustand des Speichermittels allokiert wird.

2. Verfahren (300) nach Anspruch 1, wobei im Schritt des Allokierens das Speichermittel das zuletzt verwendete Speichermittel ist.

3. Verfahren (300) nach Anspruch 1 oder 2, wobei im Schritt des Allokierens (301) das zuletzt verwendete Speichermittel allokiert (311) wird, wenn der Zustand des zuletzt verwendeten Speichermittels angibt, dass das Speichermittel verwendbar ist, insbesondere, wenn kein Konsument des Speichermittels aktiv ist und/oder alle Konsumenten des Speichermittels die Daten des Speichermittels verarbeitet haben.

4. Verfahren (300) nach einem der vorhergehenden Ansprüche, wobei im Schritt des Allokierens (301) ein neues Speichermittel angefordert (321) wird und der Inhalt des zuletzt verwendeten Speichermittels in das neue Speichermittel kopiert wird, wenn der Zustand des zuletzt verwendeten Speichermittels angibt, dass das Speichermittel nicht verwendbar ist, insbesondere, wenn ein Konsument des Speichermittels aktiv ist und/oder nicht alle Konsumenten des Speichermittels die Daten des Speichermittels verarbeitet haben.

5. Computerprogramm, welches eingerichtet ist, alle Schritte des Verfahrens (300) nach einem der vorhergehenden Ansprüche auszuführen.

6. Maschinenlesbares Speichermedium, auf dem das Computerprogramm nach Anspruch 5 gespeichert ist. 7. Vorrichtung, die eingerichtet ist, alle Schritte des Verfahrens (300) nach einem der Ansprüche 1 bis 4 auszuführen.

Description:
Beschreibung

Titel

Verfahren, Computerprogramm, elektronisches Speichermedium und Vorrichtung zum Bereitstellen von einem Datum

Die vorliegende Erfindung schafft ein Verfahren zum Bereitstellen von Daten, allgemeiner einem Datum, in einem Kommunikationssystem. Ferner schafft die vorliegende Erfindung ein entsprechendes Computerprogramm, elektronisches Speichermedium sowie eine entsprechende Vorrichtung.

In Systemen, auf denen große Datenmengen verarbeitet werden, ist das Kopieren der Daten eine kostspielige Angelegenheit, d. h. ein Vorgang der teilweise einen großen Anteil der zur Verfügung stehenden Rechenressourcen benötigt. In Systemen zur Fahrerassistenz oder zum automatisierten Fahren werden bspw. mehrere Gigabytes pro Sekunde verarbeitet. Daher können wertvolle Rechenressourcen, bspw. in Form von Rechenzeit) eingespart werden, wenn das Kopieren von Daten weitestgehend vermieden wird.

Stand der Technik

Auf Systemen mit mehreren Rechenkernen bzw. verschiedenen Kontexten der Ausführung (z. B. verschiedene Tasks auf einem OSEK Betriebssystem) ist bekannt zur Sicherstellung der konsistenten Übertragung von Daten zwischen nebenläufigen Teilen der Anwendungen eine Kommunikationsmiddleware einzusetzen. Teilnehmer an einer Kommunikationsmiddleware sind Produzenten und Konsumenten. Produzenten stellen dabei Daten in die Kommunikationsmiddleware ein; dies kann über das Ablegen von Daten in von der Middleware verwalteten Speicher erfolgen. Konsumenten nutzen die eingestellten Daten; dies kann über das Auslesen des entsprechenden von der Middleware verwalteten Speicher erfolgten.

Zur Vermeidung von Kopien ist bekannt, insbesondere für das Einstellen von Daten, einen sog. „zero-copy“-Ansatz zu nutzen. Eine

Kommunikationsmiddleware nach dem „zero-copy“-Ansatz geht typischerweise zweistufig vor. In einem ersten Schritt fordert der Produzent von der Kommunikationsmiddleware Speicher bzw. Speichermittel an. In einem zweiten Schritt schreibt der Produzent die bereitzustellenden Daten in den angeforderten Speicher.

Bei einem „zero-copy“-Ansatz gehen typischerweise mit dem Einstellen der Daten in den Speicher für den Produzenten die Möglichkeiten verloren die eingestellten Daten zu verändern. Da Konsumenten genau diese Instanz der Daten lesen, würde ein nachträgliches Verändern der Daten ein Undefiniertes Verhalten zur Folgen haben. Dies wird in der Literatur auch als Data Race bezeichnet.

Offenbarung der Erfindung

Ein Anwendungsfall für einen Produzenten ist ein kontinuierliches Bearbeiten eines Datensatzes, der dann zyklisch einem oder mehreren Konsumenten bereitgestellt werden soll (versendet werden soll). Im Bereich des automatisierten Fahrens kann dies bspw. ein Umfeldmodell sein, das ständig aktualisiert wird und alle 100 Millisekunden einem oder mehreren Konsumenten bereitgestellt wird.

Ein solches kontinuierliche Bearbeiten setzt voraus, dass bei jeder Iteration auf dem letzten Zustand der Daten aufgesetzt wird und diese weiter verändert werden. Dies ist mit den gängigen „zero-copy“-Ansätzen nicht möglich bzw. nicht zulässig.

Daher kann bei einem Anwendungsfall, in dem ein Datensatz kontinuierlich bearbeitet wird und der jeweils letzte Zustand als Aufsetzpunkt für die Veränderung herangezogen wird, trotz eines „zero-copy“-Ansatzes ein Kopieren der Daten nicht bzw. nicht immer vermieden werden.

Vor diesem Hintergrund schafft die vorliegende Erfindung ein Verfahren zum Bereitstellen von einem Datum in einem Kommunikationssystem umfassend die Schritte:

Allokieren eines Speichermittels zum Aktualisieren der Daten in dem Speichermittel;

Aktualisieren der Daten in dem allokierten Speichermittel mit dem Datum;

Bereitstellen des allokierten Speichermittels mit den aktualisierten Daten zum Auslesen.

Das Verfahren zeichnet sich dadurch aus, dass im Schritt des Allokierens das Speichermittel in Abhängigkeit von einem Zustand des Speichermittels allokiert wird.

Der Schritt des Allokierens kann dabei in Reaktion auf ein Anforderungssignal erfolgen, das die Anforderung eines Speichermittels zur Bereitstellung eines Datums repräsentiert. Ein solches Signal kann von einem Produzenten des bereitzustellenden Datums ausgegeben worden sein. Das Anforderungssignal könnte beispielsweise als Funktionsaufruf in einer Programmiersprache realisiert werden.

Unter einem Kommunikationssystem kann vorliegend ein System umfassend mindestens einen Produzenten und eine Kommunikationsmiddleware verstanden werden. Der Produzent in einem Kommunikationssystem ist eine Kommunikationsquelle, d. h. der Produzent erzeugt ein Datum, das mittels der Kommunikationsmiddleware bereitgestellt werden kann. Abnehmer des erzeugten Datums kann ein Konsument sein. Ein Konsument ist eine Kommunikationssenke. Unter einer Kommunikationsmiddleware kann vorliegend eine Abstraktionsschicht in einem Softwaresystem verstanden werden, die sowohl Produzenten als auch Konsumenten Schnittstellen zum Bereitstellen bzw. Abnehmen von Daten zur Verfügung stellt. Die Kommunikationsmiddleware abstrahiert dabei typischerweise den Zugriff auf die darunterliegende Hardwareschicht und das Hardwaremanagement.

Unter Allokieren eines Speichermittels kann vorliegend verstanden werden, einen Teil eines physikalischen Speichers derart bereitzustellen, dass der allokierende Produzent Zugriff auf den physikalischen Speicher erhält, um ein bereitzustellendes Datum einzustellen. Typischerweise umfasst das Allokieren nicht nur das Bereitstellen eines Teils des physikalischen Speichers, sondern stellt zusätzlich sicher, das keine anderen Produzenten oder ggf. Konsumenten Zugriff auf den allokierten Teil des physikalischen Speichers erhalten, sodass ein Ablegen des bereitzustellenden Datums in dem allokierten Speichermittel konsistent erfolgen kann.

Das Verfahren weist den Vorteil auf, dass das Allokieren abhängig von dem Zustand des Speichermittels erfolgen kann. Dadurch ist es bei einem Anwendungsfall, in dem ein Datensatz kontinuierlich durch einen Produzenten aktualisiert wird, möglich das Speichermittel des vorherigen Bereitstellens zu verwenden und somit auf den zuletzt bereitstellten Daten aufzusetzen und diese mit dem bereitzustellenden Datum zu aktualisieren ohne zuvor die zuletzt bereitgestellten Daten in eine neu zu allokierendes Speichermittel zu kopieren.

So kann auch in einem Anwendungsfall, in dem ein Datensatz kontinuierlich durch einen Produzenten aktualisiert wird, unter bestimmten Umständen ein Kopieren vermieden werden.

Gemäß einer Ausführungsform des Verfahrens der vorliegenden Erfindung ist im Schritt des Allokierens das Speichermittel das zuletzt verwendete Speicher mittel.

Diese Ausführungsform weist den Vorteil auf, dass in einem Anwendungsfall, in dem die zuletzt bereitgestellten Daten kontinuierlich mittels des bereitzustellenden Datums aktualisiert werden und zyklisch bereitgestellt werden, ein Kopieren der zuletzt bereitgestellten Daten vermieden wird, da das allokierte Speichermittel das zuletzt verwendete Speichermittel ist und damit die zuletzt bereitgestellten Daten bereits enthält.

Gemäß einer Ausführungsform des Verfahrens der vorliegenden Erfindung wird im Schritt des Allokierens das zuletzt verwendete Speichermittel allokiert, wenn der Zustand des zuletzt verwendeten Speichermittels angibt, dass das Speichermittel verwendbar ist.

Ein Speichermittel kann dann verwendbar sein, wenn kein Konsument des Speichermittels aktiv ist bzw., wenn alle Konsumenten des Speichermittels die aktuell in dem Speichermittel gespeicherten Daten verarbeitet haben.

Ob ein Konsument des Speichermittels aktiv ist bzw. ob alle Konsumenten des Speichermittels die aktuell in dem Speichermittel gespeicherten Daten verarbeitet haben, kann mittels der fachüblichen Maßnahmen, die dazu bspw. in einer Kommunikationsmiddleware eingesetzt werden ermittelt und überprüft werden.

Gemäß einer Ausführungsform des Verfahrens der vorliegenden Erfindung wird im Schritt des Allokierens ein neues Speichermittel angefordert und der Inhalt des zuletzt verwendeten Speichermittels in das neu angeforderte Speichermittel kopiert, wenn der Zustand des zuletzt verwendeten Speichermittels angibt, dass das Speichermittel nicht verwendbar ist.

Ein Speichermittel kann dann nicht verwendbar sein, wenn ein Konsument des Speichermittels aktiv ist bzw., wenn nicht alle Konsumenten der Speichermittel die aktuell in dem Speichermittel gespeicherten Daten verarbeitet haben.

Ein weiterer Aspekt der vorliegenden Erfindung ist ein Computerprogramm, das eingerichtet ist, alle Schritte des Verfahrens gemäß der vorliegenden auszuführen. Ein weiterer Aspekt der vorliegenden Erfindung ist eine elektronisches Speichermedium, auf dem das Computerprogramm gemäß der vorliegenden Erfindung gespeichert ist.

Ein weiterer Aspekt der vorliegenden Erfindung ist eine Vorrichtung bzw. elektronische Steuereinheit, die eingerichtet ist, alle Schritte des Verfahrens gemäß der vorliegenden Erfindung auszuführen

Nachfolgend werden Ausführungsform der vorliegenden Erfindung anhand von Zeichnungen näher erläutert.

Es zeigen

Fig. 1 ein Ablaufdiagramm eine erste Ausführungsform eines Verfahrens zum Bereitstellen eines Datums nach dem Stand der Technik.

Fig. 2 ein Ablaufdiagramm eine zweite Ausführungsform eines Verfahrens zum Bereitstellen eines Datums nach dem Stand der Technik.

Fig. 3 ein Ablaufdiagramm einer Ausführungsform des Verfahrens zum Bereitstellen eines Datums gemäß der vorliegenden Erfindung.

Figur 1 zeigt ein Ablaufdiagramm einer ersten Ausführungsform eines Verfahrens zum Bereitstellen eines Datums nach dem Stand der Technik.

Das Verfahren 100 repräsentiert eine Ausführungsform eines Verfahrens zum Bereitstellen eines Datums (Versenden) nach dem „zero-copy“-Ansatz. Das Verfahren 100 umfasst einen Schritt 101 des Allokierens eines Speichermittels. Ein solches Speichermittel kann bspw. ein Teil eines physikalischen Speichers eines Computers sein. Es kann sich ebenso um einen Teil eines physikalischen Speichers einer eingebetteten Rechenvorrichtung, wie bspw. einer elektronischen Steuereinheit zur Steuerung eines Fahrzeugs (Fahrzeugsteuergerät) handeln. Das Allokieren 101 des Speichermittels kann über eine sog. Kommunikationsmiddleware erfolgen. Ferner umfasst das Verfahren 100 einen Schritt 102 des Beschreibens des allokierten Speichermittels mit dem bereitzustellenden Datum. In diesem Schritt beschreibt der Produzent des bereitzustellenden Datums das allokierte Speichermittel mit dem bereitzustellenden Datum. Typischerweise gehen mit dem Beschreiben 102 die Bearbeitungsrechte, insbesondere die Schreibrechte, für das Datum von dem Produzenten auf die Kommunikationsmiddleware über.

Ferner umfasst das Verfahren 100 einen Schritt 103 des Versendens des bereitzustellenden Datums. Das Versenden 103 erfolgt dabei über die Middleware über die fachüblichen Maßnahmen zum Versenden eines Datums. Diese sind u. a. von der Kommunikationsinfrastruktur und der eingesetzten Kommunikationsprotokolle abhängig.

Figur 2 zeigt ein Ablaufdiagramm einer zweiten Ausführungsform eines Verfahrens 200 zum Bereitstellen eines Datums nach dem Stand der Technik.

Das Verfahren 200 repräsentiert eine Ausführungsform eines Verfahrens zum Bereitstellen eines Datums (Versenden) nach dem „zero-copy“-Ansatz im Zusammenhang mit einem Anwendungsfall, in dem ein Produzent Daten (Datensatz) kontinuierlich mit dem bereitzustellenden Datum aktualisiert und die aktualisierten Daten zyklisch bereitgestellt werden soll. Ein solcher Anwendungsfall kann bspw. im Zusammenhang mit dem automatisierten Fahren auftreten, bei dem ein Umfeldmodell, welches über die Fusion von Sensordaten von Umfeldsensoren ständig aktualisiert wird und zyklisch, bspw. alle 100 Millisekunden, Konsumenten (bspw. anderen SW-Komponenten) bereitgestellt wird.

Das Verfahren 200 umfasst einen Schritt 201 des Aktualisierens von Daten (Datensatz) mit einem bereitzustellenden Datum. Das bereitzustellende Datum kann aus dem Empfang neuer Sensordaten von Umfeldsensoren stammen. Ebenso ist denkbar, dass das bereitzustellenden Datum ein Fusionsergebnis eines vorgelagerten Verfahrens zur Fusion von Sensordaten einer Vielzahl von Umfeldsensoren ist. Nach dieser Ausführungsform erfolgt die Aktualisierung der Daten beim Produzenten des bereitzustellenden Datums. D. h. insbesondere in dem von dem Produzenten verwalteten Speicherbereich.

Ferner umfasst das Verfahren 200 einen Schritt 202 des Allokierens eines Speichermittels. Ein solches Speichermittel kann bspw. ein Teil eines physikalischen Speichers eines Computers sein. Es kann sich ebenso um einen Teil eines physikalischen Speichers einer eingebetteten Rechenvorrichtung, wie bspw. einer elektronischen Steuereinheit zur Steuerung eines Fahrzeugs (Fahrzeugsteuergerät) handeln. Das Allokieren 202 des Speichermittels kann über eine sog. Kommunikationsmiddleware erfolgen.

Ferner umfasst das Verfahren 200 einen Schritt 203 des Beschreibens des allokierten Speichermittels mit den aktualisierten Daten, umfassend das bereitzustellenden Datum. In diesem Schritt 203 beschreibt der Produzent des bereitzustellenden Datums das allokierte Speichermittel mit dem bereitzustellenden Datum. Typischerweise gehen mit dem Beschreiben 203 die Schreib- bzw. Bearbeitungsrechte für das Datum von dem Produzenten auf die Middleware über.

Ferner umfasst das Verfahren 200 einen Schritt 204 des Versendens des bereitzustellenden Datums. Das Versenden 204 erfolgt dabei über die Middleware über die fachüblichen Maßnahmen zum Versenden eines Datums. Diese sind u. a. von der Kommunikationsinfrastruktur und der eingesetzten Kommunikationsprotokolle abhängig.

Insbesondere im Schritt des Beschreibens 203 ist es nach dieser Ausführungsform erforderlich, dass das gesamte Datum (Datensatz) in das allokierte Speichermittel geschrieben bzw. kopiert werden muss. Dadurch kommt es trotz des Anwendens eines „zero-copy“-Ansatzes u. U. zu einem Kopieren. Je nach Umfang des zu kopierenden Datensatzes und je nach Frequenz des zyklischen Bereitstellens kommt es dabei, insbesondere im Bereich des automatisierten Fahrens, zu signifikantem Verbrauch von Rechenressourcen allein für den Vorgang des Kopierens. Figur 3 zeigt ein Ablaufdiagramm einer Ausführungsform des Verfahrens 300 zum Bereitstellen eines Datums gemäß der vorliegenden Erfindung.

Das Verfahren 300 umfasst einen Schritt 301 des Allokierens eines Speichermittels mit dem zuletzt bereitgestellten Datum.

Kern der vorliegenden Erfindung ist es dieses zuletzt bereitgestellte Datum einerseits ohne Kopieren und andererseits derart bereitzustellen, dass keine Konsistenzeigenschaften des Kommunikationssystems beeinträchtigt werden.

Dazu sieht das Verfahren 300 vor, im Schritt des Allokierens 301 den Status des zuletzt verwendeten Speichermittels zu berücksichtigen. Dazu wird in Schritt 310 zunächst geprüft, ob das zuletzt verwendete Speichermittel verwendbar ist.

Ein Speichermittel kann dann verwendbar sein, wenn kein Konsument des Speichermittels aktiv ist bzw., wenn alle Konsumenten des Speichermittels die aktuell in dem Speichermittel gespeicherten Daten verarbeitet haben.

Ist das zuletzt verwendete Speichermittel verwendbar, wird das Verfahren 300 mit Schritt 311 weitergeführt, in dem das zuletzt verwendete Speichermittel allokiert wird.

Ein Speichermittel kann dann nicht verwendbar sein, wenn ein Konsument des Speichermittels aktiv ist bzw., wenn nicht alle Konsumenten des Speichermittels die aktuell in der Speicherzelle gespeicherten Daten verarbeitet haben.

Ist das zuletzt verwendete Speichermittel nicht verwendbar, wird das Verfahren 300 mit Schritt 321 weitergeführt, in dem ein neues Speichermittel allokiert wird. Dieses Speichermittel beinhaltet typischerweise nicht die zuletzt bereitgestellten Daten. Um die mit dem bereitzustellenden Datum aktualisierten Daten mit dem neu allokierten Speichermittel bereitzustellen, wird in Schritt 322 die zuletzt bereitgestellten Daten von dem zuletzt bereitgestellten Speichermittel in das neu allokierte Speichermittel kopiert. In Schritt 323 wird das neu allokierte Speichermittel aufweisend die zuletzt bereitgestellten Daten dem anfordernden Produzenten zur Verfügung gestellt. Die Anforderung des Speichermittels kann mittels einer Middleware erfolgen. Für einen Produzenten erfolgt das Allokieren des Speichermittels dann transparent. Ferner umfasst das Verfahren 300 einen Schritt 302 des Aktualisierens der

Daten mit dem bereitzustellenden in dem angeforderten Speichermittel. Im Gegensatz zu der zweiten Ausführungsform 200 eines Verfahrens zum Bereitstellen eines Datums nach dem Stand der Technik erfolgt die Aktualisierung der Daten in dem Speichermittel der Middleware. Dadurch ist es in den Fällen, in denen das zuletzt verwendete Speichermittel verwendbar ist, möglich ohne ein Kopieren der Daten die Daten mit dem bereitzustellenden Datum zu aktualisieren.

Ferner umfasst das Verfahren 300 einen Schritt 303 des Versendens des bereitzustellenden Datums. Das Versenden 303 erfolgt dabei über die

Middleware über die fachüblichen Maßnahmen zum Versenden eines Datums. Diese sind u. a. von der Kommunikationsinfrastruktur und der eingesetzten Kommunikationsprotokolle abhängig.