(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-15
(54)【発明の名称】単一データを供給するための方法、コンピュータプログラム、電子記憶媒体、および装置
(51)【国際特許分類】
G06F 9/52 20060101AFI20221208BHJP
G06F 12/00 20060101ALI20221208BHJP
【FI】
G06F9/52 150C
G06F12/00 570
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022520385
(86)(22)【出願日】2020-08-19
(85)【翻訳文提出日】2022-05-30
(86)【国際出願番号】 EP2020073203
(87)【国際公開番号】W WO2021063592
(87)【国際公開日】2021-04-08
(31)【優先権主張番号】102019215291.0
(32)【優先日】2019-10-04
(33)【優先権主張国・地域又は機関】DE
(81)【指定国・地域】
(71)【出願人】
【識別番号】591245473
【氏名又は名称】ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100161908
【氏名又は名称】藤木 依子
(72)【発明者】
【氏名】エルツシッグ,クリスティアン
(72)【発明者】
【氏名】クレンケ,ディートリヒ
(72)【発明者】
【氏名】クラウス,マティアス
(72)【発明者】
【氏名】ペーンル,ミヒャエル
(72)【発明者】
【氏名】ケーニッヒ,シュテッフェン
(72)【発明者】
【氏名】チェン,ウェンウェン
(72)【発明者】
【氏名】ボルンマン,ルッツ
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160KA01
(57)【要約】
通信システム内で単一データを供給するための方法(300)であって、とりわけ生産者の要求信号に反応して、とりわけ生産者による、メモリ手段内のデータの更新のために、メモリ手段をアロケートするステップ(301)と、供給されたメモリ手段内のデータを単一データによって更新するステップ(302)と、とりわけ消費者による、読取りのために、メモリ手段を供給するステップ(303)とを含む方法(300)であって、アロケートのステップ(301)において、メモリ手段が、メモリ手段の状態に依存してアロケートされることを特徴とする、方法(300)。
【特許請求の範囲】
【請求項1】
通信システム内で単一データを供給するための方法(300)であって、
- とりわけ生産者の要求信号に反応して、とりわけ前記生産者による、メモリ手段内のデータの更新のために、前記メモリ手段をアロケートするステップ(301)と、
- アロケートされた前記メモリ手段内の前記データを前記単一データによって更新するステップ(302)と、
- とりわけ消費者による、読取りのために、前記アロケートされたメモリ手段を供給するステップ(303)と、を含む方法(300)であって、
前記アロケートのステップ(301)において、前記メモリ手段が、前記メモリ手段の状態に依存してアロケートされることを特徴とする、方法(300)。
【請求項2】
前記アロケートのステップにおいて、前記メモリ手段が、最後に使用されたメモリ手段である、請求項1に記載の方法(300)。
【請求項3】
前記アロケートのステップ(301)において、前記最後に使用されたメモリ手段の前記状態が、前記メモリ手段が使用可能であることを提示する場合、とりわけ前記メモリ手段の消費者が一人もアクティブでなく、かつ/または前記メモリ手段のすべての消費者が前記メモリ手段の前記データを処理し終わっている場合、前記最後に使用されたメモリ手段がアロケート(311)される、請求項1または2に記載の方法(300)。
【請求項4】
前記アロケートのステップ(301)において、前記最後に使用されたメモリ手段の前記状態が、前記メモリ手段が使用可能でないことを提示する場合、とりわけ前記メモリ手段の一人の消費者がアクティブであり、かつ/または前記メモリ手段のすべての消費者が前記メモリ手段の前記データを処理し終わってはいない場合、新しいメモリ手段が要求(321)され、かつ前記最後に使用されたメモリ手段の内容が、前記新しいメモリ手段にコピーされる、請求項1から3のいずれか一項に記載の方法(300)。
【請求項5】
請求項1から4のいずれか一項に記載の方法(300)のすべてのステップを実行するよう設定されているコンピュータプログラム。
【請求項6】
請求項5に記載のコンピュータプログラムが保存されている機械可読の記憶媒体。
【請求項7】
請求項1から4のいずれか一項に記載の方法(300)のすべてのステップを実行するよう設定されている装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信システムにおいてデータ、より一般的には単一データを供給するための方法を提供する。本発明はさらに、相応のコンピュータプログラム、電子記憶媒体、および相応の装置を提供する。
【0002】
大きなデータ量が処理されるシステムでは、データのコピーは費用のかかる事柄であり、つまり一部では、利用可能な計算リソースの大きな割合を必要とする工程である。運転者支援または自動運転のためのシステムでは、例えば1秒につき数ギガバイトが処理される。したがってデータのコピーができるだけ回避されると、例えば計算時間の形態での)有益な計算リソースが節減され得る。
【背景技術】
【0003】
複数の計算コアまたは実行の様々なコンテキスト(例えばOSEK動作システム上での様々なタスク)を有するシステム上では、アプリケーションの並列部分の間でのデータの一貫性のある伝送を保証するために通信ミドルウェアを用いることが知られている。通信ミドルウェアの参加者は、生産者および消費者である。これに関し、生産者はデータを通信ミドルウェアに格納し、これは、ミドルウェアによって管理されるメモリ内へのデータのドロップによって行われ得る。消費者は格納されたデータを利用し、これは、ミドルウェアによって管理されている相応のメモリの読取りによって行われ得る。
【0004】
コピーを回避するため、とりわけデータの格納にいわゆる「ゼロコピー」手法を利用することが知られている。「ゼロコピー」手法に基づく通信ミドルウェアは、典型的には二段階で進行する。第1のステップでは、生産者が通信ミドルウェアにメモリまたはメモリ手段を要求する。第2のステップでは、生産者が、要求したメモリに供給すべきデータを書き込む。
【0005】
「ゼロコピー」手法では、典型的には、メモリ内へのデータの格納により、生産者には格納したデータを変更する可能性が失われる。消費者はデータのこのインスタンスを正確に読むので、データの事後変更は、結果として未定義動作となる。これは文献中でデータ競合とも呼ばれる。
【発明の概要】
【0006】
一人の生産者のための適用事例は、この場合定期的に一人または複数の消費者に供給されるべき(送信されるべき)データセットの連続的な編集である。自動運転の分野ではこれは例えば、絶えず更新され、かつ100ミリ秒ごとに一人または複数の消費者に供給される周辺環境モデルであり得る。
【0007】
このような連続的な編集は、反復ごとにデータの最後の状態で再出発され、かつこれらのデータがさらに変更されることを前提とする。これは、一般に行われている「ゼロコピー」手法では不可能であるかまたは許容されない。
【0008】
したがって、データセットが連続的に編集され、かつそれぞれ最後の状態が、変更のための再出発点として参照される適用事例では、「ゼロコピー」手法にもかかわらず、データのコピーがまったくまたは常には回避され得ない。
【0009】
これを踏まえて本発明は、通信システム内で単一データを供給するための方法であって、
メモリ手段内のデータの更新のために、メモリ手段をアロケートするステップと、
アロケートされたメモリ手段内のデータを単一データによって更新するステップと、
読取りのために、更新されたデータを有するアロケートされたメモリ手段を供給するステップとを含む、方法を提供する。
【0010】
この方法は、アロケートのステップにおいて、メモリ手段が、メモリ手段の状態に依存してアロケートされることを特色とする。
これに関しアロケートのステップは、単一データを供給するためのメモリ手段の要求を表す要求信号に反応して行われ得る。このような信号は、供給すべき単一データの生産者によって出力されたものであり得る。要求信号は、例えばプログラミング言語での機能呼出しとして実現され得るであろう。
【0011】
通信システムとは、ここでは、少なくとも一人の生産者および1つの通信ミドルウェアを含むシステムと理解され得る。通信システム内の生産者は通信源であり、つまり生産者が単一データを生成し、この単一データが通信ミドルウェアによって供給され得る。生成された単一データの受け手が消費者であり得る。消費者は通信受信側である。
【0012】
通信ミドルウェアとは、ここでは、ソフトウェアシステム内の抽象化層のことと理解され得、抽象化層は、生産者にも消費者にも、データの供給または受取りのためのインターフェイスを利用可能にする。これに関し通信ミドルウェアは、典型的には下位のハードウェア層およびハードウェア管理へのアクセスを抽象化する。
【0013】
メモリ手段のアロケートとは、ここでは、供給すべき単一データを格納するため、アロケートしている生産者が物理メモリへのアクセスを獲得するように、物理メモリの一部を供給することと理解され得る。典型的には、アロケートは物理メモリの一部の供給を含むだけでなく、これに加え、他の生産者または場合によっては消費者が、物理メモリのアロケートされた部分へのアクセスを獲得せず、これにより、アロケートされたメモリ手段内での供給すべき単一データのドロップが一貫性をもって行われ得ることを保証する。
【0014】
この方法は、アロケートが、メモリ手段の状態に依存して行われ得るという利点を有する。これにより、1つのデータセットが連続的に一人の生産者によって更新される適用事例の場合に、その前に供給したメモリ手段を使用することができ、したがって最後に供給されたデータで再出発することができ、かつ最後に供給されたデータを、新しくアロケートすべきメモリ手段に前もってコピーすることなく、これらのデータを、供給すべき単一データによって更新することができる。
【0015】
つまり、1つのデータセットが連続的に一人の生産者によって更新される適用事例においても、特定の事情の下ではコピーが回避され得る。
本発明の方法の一実施形態によれば、アロケートのステップにおいて、メモリ手段は、最後に使用されたメモリ手段である。
【0016】
この実施形態は、最後に供給されたデータが、連続的に、供給すべき単一データによって更新され、かつ定期的に供給される適用事例において、アロケートされたメモリ手段が、最後に使用されたメモリ手段であり、したがって最後に供給されたデータを既に内包しているので、最後に供給されたデータのコピーが回避されるという利点を有する。
【0017】
本発明の方法の一実施形態によれば、アロケートのステップにおいて、最後に使用されたメモリ手段の状態が、このメモリ手段が使用可能であることを提示する場合、最後に使用されたメモリ手段がアロケートされる。
【0018】
メモリ手段は、このメモリ手段の消費者が一人もアクティブでない場合、またはこのメモリ手段のすべての消費者がその時にメモリ手段に保存されているデータを処理し終わっている場合、使用可能であり得る。
【0019】
メモリ手段の一人の消費者がアクティブであるかどうか、またはメモリ手段のすべての消費者がその時にメモリ手段に保存されているデータを処理し終わっているかどうかは、このために例えば通信ミドルウェア内で用いられるこの分野で通常の措置によって確定およびチェックされ得る。
【0020】
本発明の方法の一実施形態によれば、アロケートのステップにおいて、最後に使用されたメモリ手段の状態が、このメモリ手段が使用可能でないことを提示する場合、新しいメモリ手段が要求され、かつ最後に使用されたメモリ手段の内容が、新しく要求されたメモリ手段にコピーされる。
【0021】
メモリ手段は、このメモリ手段の一人の消費者がアクティブである場合、またはこのメモリ手段のすべての消費者がその時にメモリ手段に保存されているデータを処理し終わってはいない場合、使用可能ではあり得ない。
【0022】
本発明のさらなる一態様は、本発明に基づく方法のすべてのステップを実行するよう設定されているコンピュータプログラムである。
本発明のさらなる一態様は、本発明に基づくコンピュータプログラムが保存されている電子記憶媒体である。
【0023】
本発明のさらなる一態様は、本発明に基づく方法のすべてのステップを実行するよう設定されている装置または電子制御ユニットである。
以下に、本発明の実施形態を図面に基づいてより詳しく解説する。
【図面の簡単な説明】
【0024】
【
図1】従来技術に基づいて単一データを供給するための方法の第1の実施形態のフロー図である。
【
図2】従来技術に基づいて単一データを供給するための方法の第2の実施形態のフロー図である。
【
図3】本発明に基づいて単一データを供給するための方法の一実施形態のフロー図である。
【発明を実施するための形態】
【0025】
図1は、従来技術に基づいて単一データを供給するための方法の第1の実施形態のフロー図を示している。
方法100は、「ゼロコピー」手法に基づいて単一データを供給(送信)するための方法の一実施形態を表す。方法100は、メモリ手段をアロケートするステップ101を含む。このようなメモリ手段は、例えばコンピュータの物理メモリの一部であり得る。同様に、組み込まれた計算装置、例えば車両を制御するための電子制御ユニット(車両制御機器)の物理メモリの一部であってもよい。メモリ手段のアロケート101は、いわゆる通信ミドルウェアを介して行われ得る。
【0026】
方法100はさらに、アロケートされたメモリ手段に、供給すべき単一データを書き込むステップ102を含む。このステップでは、供給すべき単一データの生産者が、アロケートされたメモリ手段に、供給すべき単一データを書き込む。典型的には、この書込み102により、この単一データの編集権限、とりわけ書き込み権限が生産者から通信ミドルウェアに移行される。
【0027】
方法100はさらに、供給すべき単一データを送信するステップ103を含む。この送信103は、ミドルウェアを介し、単一データの送信のためのこの分野で通常の措置を介して行われる。これらの措置は、なかでも通信インフラおよび用いられる通信プロトコルに依存している。
【0028】
図2は、従来技術に基づいて単一データを供給するための方法の第2の実施形態200のフロー図を示す。
方法200は、一人の生産者がデータ(データセット)を連続的に、供給すべき単一データによって更新し、かつ更新されたデータが定期的に供給されるべき適用事例との関連で、「ゼロコピー」手法に基づいて単一データを供給(送信)するための方法の一実施形態を表す。このような適用事例は、例えば、周辺環境センサのセンサデータの融合を介して絶えず更新される周辺環境モデルが、定期的に、例えば100ミリ秒ごとに、消費者(例えば他のソフトウェアコンポーネント)に供給される自動運転との関連で生じ得る。
【0029】
方法200は、供給すべき単一データによってデータ(データセット)を更新するステップ201を含む。供給すべき単一データは、周辺環境センサの新しいセンサデータの受信に由来し得る。同様に、供給すべき単一データが、複数の周辺環境センサのセンサデータを融合するための前述の方法の融合結果であることも考えられる。
【0030】
この実施形態によれば、データの更新は、供給すべき単一データの生産者のところで行われる。つまりとりわけ生産者によって管理されるメモリ領域。
方法200はさらに、メモリ手段をアロケートするステップ202を含む。このようなメモリ手段は、例えばコンピュータの物理メモリの一部であり得る。同様に、組み込まれた計算装置、例えば車両を制御するための電子制御ユニット(車両制御機器)の物理メモリの一部であってもよい。メモリ手段のアロケート202は、いわゆる通信ミドルウェアを介して行われ得る。
【0031】
方法200はさらに、アロケートされたメモリ手段に、供給すべき単一データを含む更新されたデータを書き込むステップ203を含んでいる。このステップ203では、供給すべき単一データの生産者が、アロケートされたメモリ手段に、供給すべき単一データを書き込む。この書込み203により、この単一データの書き込み権限または編集権限が生産者からミドルウェアに移るのが典型的である。
【0032】
方法200はさらに、供給すべき単一データを送信するステップ204を含む。この送信204は、ミドルウェアを介し、単一データの送信のためのこの分野で通常の措置を介して行われる。これらの措置は、なかでも通信インフラおよび用いられる通信プロトコルに依存している。
【0033】
とりわけ書込みのステップ203において、この実施形態によれば、全部の単一データ(データセット)が、アロケートされたメモリ手段に書き込まれるかまたはコピーされる必要がある。これにより、「ゼロコピー」手法の適用にもかかわらず、事情によってはコピーが生じる。この場合、コピーすべきデータセットの規模に応じて、および定期的な供給の頻度に応じて、とりわけ自動運転の分野では、コピーの工程のためだけに計算リソースの著しい消費が生じる。
【0034】
図3は、本発明に基づいて単一データを供給するための方法の一実施形態300のフロー図を示す。
方法300は、最後に供給された単一データを有するメモリ手段をアロケートするステップ301を含む。
【0035】
本発明の核心は、この最後に供給された単一データを、一方ではコピーなしで、他方では通信システムの一貫性特性が損なわれないように供給することである。
このために方法300は、アロケートのステップ301において、最後に使用されたメモリ手段の状態を考慮することを企図する。このためにステップ310でまずは、最後に使用されたメモリ手段が使用可能であるかどうかがチェックされる。
【0036】
メモリ手段は、このメモリ手段の消費者が一人もアクティブでない場合、またはこのメモリ手段のすべての消費者がその時にこのメモリ手段に保存されているデータを処理し終わっている場合、使用可能であり得る。
【0037】
最後に使用されたメモリ手段が使用可能である場合、方法300はステップ311で続行され、ステップ311では、最後に使用されたメモリ手段がアロケートされる。
メモリ手段は、このメモリ手段の一人の消費者がアクティブである場合、またはこのメモリ手段のすべての消費者がその時にメモリセルに保存されているデータを処理し終わってはいない場合、使用可能ではあり得ない。
【0038】
最後に使用されたメモリ手段が使用可能でない場合、方法300はステップ321で続行され、ステップ321では、新しいメモリ手段がアロケートされる。このメモリ手段は典型的には、最後に供給されたデータを内包しない。供給すべき単一データで更新されたデータを、新しくアロケートされたメモリ手段によって供給するため、ステップ322では、最後に供給されたデータが、最後に供給されたメモリ手段から新しくアロケートされたメモリ手段にコピーされる。ステップ323では、最後に供給されたデータを有する新しくアロケートされたメモリ手段が、要求している生産者に利用可能にされる。
【0039】
メモリ手段の要求はミドルウェアによって行われ得る。生産者には、メモリ手段のアロケートがこの場合はトランスペアレントに行われる。
方法300はさらに、要求されたメモリ手段内で、供給すべき単一データによってデータを更新するステップ302を含む。従来技術に基づいて単一データを供給するための方法の第2の実施形態200とは異なり、データの更新はミドルウェアのメモリ手段内で行われる。これにより、最後に使用されたメモリ手段が使用可能である事例では、データのコピーなしで、供給すべき単一データでデータを更新することができる。
【0040】
方法300はさらに、供給すべき単一データを送信するステップ303を含む。この送信303は、ミドルウェアを介し、単一データの送信のためのこの分野で通常の措置を介して行われる。これらの措置は、なかでも通信インフラおよび用いられる通信プロトコルに依存している。
【国際調査報告】