(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-02
(54)【発明の名称】データ処理のためのデータ処理ネットワーク
(51)【国際特許分類】
G06F 11/16 20060101AFI20231026BHJP
【FI】
G06F11/16 629
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023524603
(86)(22)【出願日】2021-10-15
(85)【翻訳文提出日】2023-05-30
(86)【国際出願番号】 EP2021078590
(87)【国際公開番号】W WO2022084176
(87)【国際公開日】2022-04-28
(31)【優先権主張番号】102020213323.9
(32)【優先日】2020-10-22
(33)【優先権主張国・地域又は機関】DE
(81)【指定国・地域】
(71)【出願人】
【識別番号】591245473
【氏名又は名称】ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(72)【発明者】
【氏名】ディツィオル,ラファエル
(72)【発明者】
【氏名】ペーンル,ミヒャエル
(72)【発明者】
【氏名】エゲンター,シュテファン
【テーマコード(参考)】
5B034
【Fターム(参考)】
5B034AA01
5B034DD01
(57)【要約】
入力データ(3)から出力データ(4)を生成するためにそれぞれ機能する、連続した複数のデータ処理ステップ(2)を冗長かつ妥当性確認して実行するためのデータ処理ネットワーク(1)であって、第1のデータ処理ステップ(2)の出力データ(3)が少なくとも部分的に、同時にさらなるデータ処理ステップ(2)の入力データ(3)となり、各データ処理ステップ(2)の実行のために少なくとも第1のデータ処理モジュール(5)と、第2のデータ処理モジュール(6)が設けられ、前記データ処理ネットワーク(1)はコンパレータモジュール(7)をさらに有し、前記第1のデータ処理モジュール(5)および前記第2のデータ処理モジュール(6)は、前記個々のデータ処理ステップ(2)の制御パラメータ(8)を前記コンパレータモジュール(7)に伝送するように構成され、前記コンパレータモジュール(7)は、前記第1のデータ処理モジュール(5)および前記第2のデータ処理モジュール(6)から伝送された、対応する制御パラメータ(8)の少なくとも一つの比較を実行し、この比較に基づいて、実行された少なくとも一つのデータ処理ステップ(2)に関する制御情報を含む、少なくとも一つの同期された制御パラメータ(9)を提供するために構成されている、データ処理ネットワーク(1)。
【特許請求の範囲】
【請求項1】
入力データ(3)から出力データ(4)を生成するためにそれぞれ機能する、連続した複数のデータ処理ステップ(2)を冗長かつ妥当性確認して実行するためのデータ処理ネットワーク(1)であって、
第1のデータ処理ステップ(2)の出力データ(3)が少なくとも部分的に、同時にさらなるデータ処理ステップ(2)の入力データ(3)となり、各データ処理ステップ(2)の実行のために少なくとも第1のデータ処理モジュール(5)と、第2のデータ処理モジュール(6)が設けられ、
前記データ処理ネットワーク(1)はコンパレータモジュール(7)をさらに有し、前記第1のデータ処理モジュール(5)および前記第2のデータ処理モジュール(6)は、前記個々のデータ処理ステップ(2)の制御パラメータ(8)を前記コンパレータモジュール(7)に伝送するように構成され、前記コンパレータモジュール(7)は、前記第1のデータ処理モジュール(5)および前記第2のデータ処理モジュール(6)から伝送された、対応する制御パラメータ(8)の少なくとも一つの比較を実行し、この比較に基づいて、実行された少なくとも一つのデータ処理ステップ(2)に関する制御情報を含む、少なくとも一つの同期された制御パラメータ(9)を提供するために構成されている、
データ処理ネットワーク(1)。
【請求項2】
前記制御パラメータ(8)の前記比較は同一性確認を含み、同期された制御パラメータ(9)は、前記第1のデータ処理モジュール(5)と前記第2のデータ処理モジュール(6)からの前記制御パラメータ(8)の同一性を前提とする、請求項1に記載のデータ処理ネットワーク(1)。
【請求項3】
前記コンパレータモジュール(7)によって提供される、同期された制御パラメータ(9)を使用して、前記データ処理ネットワーク(1)のさらなるデータ処理ステップ(10)で、前記出力データのさらなるデータ処理を制御するように構成されている、請求項1または2に記載のデータ処理ネットワーク(1)。
【請求項4】
前記同期された制御パラメータ(9)は、実行された少なくとも1つのデータ処理ステップ(2)に関する妥当性情報を含む妥当性パラメータである、請求項1~3のいずれか一項に記載のデータ処理ネットワーク(1)。
【請求項5】
前記データ処理モジュール(5、6)および/または前記データ処理ステップ(2、10)からの制御パラメータ(8)をそれぞれ分類し、同期し、かつこれらを分類と共に前記コンパレータモジュール(9)に転送できるように構成された、少なくとも1つの順序化モジュール(11)をさらに有し、これによって、前記コンパレータモジュール(7)は、前記データ処理モジュール(5、6)が前記データ処理ステップ(2、10)を実施した順序に関係なく、同期された制御パラメータ(9)を特定できる、請求項1~4のいずれか一項に記載のデータ処理ネットワーク(1)。
【請求項6】
第1のデータ処理モジュール(5)は第1のハードウェア構成要素(12)で実装され、第2のデータ処理モジュール(6)は第2のハードウェア構成要素(13)で実装され、第1のハードウェア構成要素(12)と第2のハードウェア構成要素(13)とは、物理的に互いに分離されている、請求項1~5のいずれか一項に記載のデータ処理ネットワーク(1)。
【請求項7】
前記データ処理モジュール(5、6)の少なくとも1つが、ASIL-Dに準拠していないハードウェア構成要素(12、13)を有する、請求項6に記載のデータ処理ネットワーク(1)。
【請求項8】
前記コンパレータモジュール(7)は第3のハードウェア構成要素(14)で実装され、前記第3のハードウェア構成要素(14)は、第1のハードウェア構成要素(12)および第2のハードウェア構成要素(13)から物理的に分離されている、請求項1~7のいずれか一項に記載のデータ処理ネットワーク(1)。
【請求項9】
前記第3のハードウェア構成要素(14)は、ASIL-Dに準拠している、請求項8に記載のデータ処理ネットワーク(1)。
【請求項10】
前記コンパレータモジュール(7)は、特定された制御パラメータ(8)が時間情報(16)と共に格納されるデータメモリ(15)を有し、その結果、前記データ処理ステップ(2)の処理順序を前記データ処理ネットワーク(1)の前記データ処理モジュール(5、6)でマッピングする論理タイムライン(17)が発生する、請求項1~9のいずれか一項に記載のデータ処理ネットワーク(1)。
【請求項11】
前記データ処理モジュール(5、6)のハードウェア構成要素(12、13)は、前記コンパレータモジュール(7)のハードウェア構成要素(14)よりも著しく高性能である、請求項1~10のいずれか一項に記載のデータ処理ネットワーク(1)。
【請求項12】
前記制御パラメータ(8)の前記比較は、前記第1のデータ処理モジュール(5)および/または前記第2のデータ処理モジュール(6)におけるデータ処理中に発生したエラーが許容限界を下回るかどうかの検査を含み、この場合に前記同期された制御パラメータ(9)が生成される、請求項1~11のいずれか一項に記載のデータ処理ネットワーク(1)。
【請求項13】
請求項1~12のいずれか一項に記載のデータ処理ネットワーク(1)の作動方法であって、
a)第1のデータ処理モジュール(5)でデータ処理ステップ(1)を実行し、かつ、前記第1のデータ処理モジュール(5)での前記データ処理ステップ(2)の実行の検査に適した第1の制御パラメータ(8)を生成するステップと、
b)ステップa)から独立して、第2のデータ処理モジュール(6)で同じデータ処理ステップ(2)を実行し、かつ、前記第2のデータ処理モジュール(6)での前記データ処理ステップ(2)の実行の検査に適した第2の制御パラメータ(8)を生成するステップと、
d)前記第1のデータ処理モジュール(5)および前記第2のデータ処理モジュール(6)から伝送された、対応する制御パラメータ(8)の比較をコンパレータモジュール(7)で実行し、かつ、この比較に基づいて、実行された少なくとも1つのデータ処理ステップ(2)に関連する制御情報を含む、同期された少なくとも1つの制御パラメータ(9)を提供するステップと、
を有する方法。
【発明の詳細な説明】
【背景技術】
【0001】
運転支援または自動運転のためのシステムは、通常、データフローに関連してグラフを用いて記述することができる多くの個々のソフトウェアユニットから構成されている。これらのソフトウェアユニット(しばしばランナブル、ノードまたはデータ処理構成要素とも呼ばれる)は、大量の入力データが処理され、そこから大量の出力データが生成されることによって特徴付けられる。
【0002】
上記のシステムでは、レーダやビデオなどのセンサからの入力データは、データの流れを静的なビューで視覚化する、データ処理構成要素からなるグラフで処理される。
様々なソフトウェアユニットは、センサデータに基づいてアクションを実行するために、センサデータが処理される複雑なデータ処理ネットワークを規則的に形成する。そのようなアクションは、例えば、車両の自律運転操作の範囲において制御タスクとなり得る。データ処理ネットワークにおけるデータ処理は、通常、データ処理構成要素で実行される、連続して構築された複数のデータ処理ステップまたはデータ処理タスクを含む。
【0003】
運転支援システムおよび(高度)自動運転(HAD(Highly Automated Driving))の機能安全要件の一部として、系統的および散発的なハードウェアエラーの確率は、システム機能のリスクおよび予想される損害に関連する所定の頻度を超えてはならない。新規開発された運転支援システムは、定期的に多数の車両で並行して使用されており、リスクは対応して装備された車両全体との関連で評価する必要があるため、ハードウェアエラーの発生に対する許容確率は非常に低い。
【0004】
今日のハイエンドプロセッサと比較すると、この安全レベルを満たす一般的に利用可能なマイクロコントローラの演算能力は非常に限定的である。それらの最高クロックは約10%(300MHz対3GHz)であり、市販のマイクロプロセッサ(μP)に標準的であり、その性能に大きな役割を果たすオプティマイザも内蔵されていない。
【0005】
この事を起点として、このような安全レベルのために一般的に利用可能なマイクロコントローラの限定的な演算能力に対する解決策に対応した、車両用データ処理ネットワークを構築するための新規方式が記載される。
【発明の概要】
【課題を解決するための手段】
【0006】
ここで記載されるのは、入力データから出力データを生成するためにそれぞれ機能する、連続した複数のデータ処理ステップを冗長的かつ妥当性確認して実行するためのデータ処理ネットワークであって、第1のデータ処理ステップの出力データが少なくとも部分的に、同時にさらなるデータ処理ステップの入力データとなり、各データ処理ステップの実行のために少なくとも第1のデータ処理モジュールと、第2のデータ処理モジュールが設けられ、データ処理ネットワークはコンパレータモジュールをさらに有し、第1のデータ処理モジュールおよび第2のデータ処理モジュールは、個々のデータ処理ステップの制御パラメータをコンパレータモジュールに伝送するように構成され、コンパレータモジュールは、第1のデータ処理モジュールおよび第2のデータ処理モジュールから伝送された、対応する制御パラメータの少なくとも一つの比較を実行し、この比較に基づいて、実行された少なくとも一つのデータ処理ステップに関する制御情報を含む、少なくとも一つの同期された制御パラメータを提供するために構成されている、データ処理ネットワークである。
【0007】
記載のデータ処理ネットワークでは、対応する要件(例えばASIL(Automotive Safety Integrity Leve)-D準拠)を本来満たさないハードウェアに基づいて、ソフトウェアロックステップを実現することが可能である。これは、データ処理が高い演算能力を要求し、通常、非常に高い性能を有するハードウェアが必要とされるデータ処理ネットワークで特に成功する。
【0008】
基本方式は、高い演算能力を有し、両方が同じ演算を実行する第1のデータ処理モジュールおよび第2のデータ処理モジュールに、互いに別々のハードウェア(互いに別々のコア)が使用されることである。コンパレータモジュールによって演算が比較され、演算結果が等しい場合にのみ、データ処理ネットワークでのさらなるデータ処理に使用される。同等性は、制御パラメータに基づいてデータ処理モジュールによって監視され、同期された制御パラメータが、データ処理の制御フローを制御するためにデータ処理ネットワークにおいて使用される。
【0009】
第1のデータ処理モジュールおよび第2のデータ処理モジュールが、その後コンパレータモジュールに転送される制御パラメータを提供する点は、通常、同期点とも呼ばれる。
ここで記載される方法は、既に説明したように、いわゆるソフトウェアロックステップに該当する。ソフトウェアロックステップは、ハードウェアロックステップと区別する必要がある。ハードウェアロックステップに対しては、大幅に複雑なハードウェアが必要となる。
【0010】
ここでは特許請求されないハードウェアロックステップは、その上で作動するソフトウェアプログラムの各演算ステップを2回実施するハードウェアが使用されるように、通常実現される。これは、ソフトウェアプログラム自体はハードウェア上で1回のみ動作することを意味する。オペレーティングシステムは、それぞれのソフトウェアプログラムの1つのインスタンスのみを見る。ハードウェアは、1つのオペレーティングシステムレベルの下位で、ソフトウェアの各ステップを2回実行する。
【0011】
これに対して、ここで記載されるソフトウェアロックステップは、プログラムがオペレーティングシステムレベルで二重に実行されることを意味する。場合によって、2つの独立したオペレーティングシステム(第1のハードウェア/コアを有する第1のデータ処理モジュール上の第1のオペレーティングシステムと、第2のハードウェア/コアを有する第2のデータ処理モジュール上の第2のオペレーティングシステム)が作動してもよく、2つの独立したオペレーティングシステムが、それぞれのデータ処理ステップを、それぞれ(ひいては二重に)実施する。
【0012】
ソフトウェアロックステップは、オペレーティングシステム上で作動してもよく、この場合、二重に実施するために異なるハードウェア(2つの異なるコア)を使用する指示が、必要に応じてオペレーティングシステムレベルで与えられる。
【0013】
ハードウェアを変更せずに複製/増加可能なインスタンスが2つになるとすぐに、二重の実施はいわゆるソフトウェアロックステップとなる。ハードウェアロックステップは、常に、追加の冗長的な実施のために追加のハードウェア(回路、トランジスタなど)が必要となることを意味し、これらはオペレーティングシステムレベルの下位に位置し、オペレーティングシステムに対しては互いに別々のものとして認識できず、オペレーティングシステムの視点からはハードウェアのように見える。したがって、ハードウェアロックステップを使用することにより、ハードウェアロックステップを使用しない場合と同じ性能を達成するためには、少なくとも2倍のトランジスタ数が常に必要となる。
【0014】
記載されたデータ処理ネットワークによって、または記載されたデータ処理ネットワークを用いて、このために特別に開発されていないコントローラ/プロセッサでも、ロックステップ方式が可能である。
【0015】
しかし、通常の場合、第1のデータ処理モジュールおよび第2のデータ処理モジュールは、同一のソフトウェアで実行され、かつ、それらの仕様上、同一のハードウェア(同一のコア)が使用される。それぞれのデータ処理モジュールや基礎となるハードウェアが正しく機能する限り、2つのデータ処理モジュールにおける同じ入力データは、同じ出力データを生成する。
【0016】
ソフトウェアロックステップがリアルタイム(準リアルタイム)用途に使用される場合、多くの既知のアーキテクチャは、演算ステップの処理が所定のフレームを超えてはならないタイムスライスグリッドに基づいている。これに関連して、いわゆるWCET(Worst Case Execution Time)がよく言われる。タイムスライスの中で、どの演算ステップがどの順序で実行されるかは事前に設定される。演算ステップが予め知られているため、使用される2つのユニットは演算ステップを並行して実施することができる。入力データを処理して出力データを生成するための演算負荷の大きさは、多くの場合、大きく変動する。一例は、目に見える全ての交通標識を特定するための画像解析の場合である。このような解析を実行するためのデータ処理ステップでは、例えば100個の交通標識が同時に見える場合は、視野内に2つの交通標識しかない場合よりもはるかに長い時間を必要とする。通常のソフトウェアロックステップ方式では、考えられる全ての関連ケースについてデータ処理ステップを実行するために十分な時間があるように、WCETに基づいてタイムスライスを設計しなければならない。
【0017】
これに比べて、データ駆動型システムはより柔軟性が高いが、実施順序は先行する演算の結果や時間に依存する場合がある。そのため、演算ステップの順序が予めわからなくなる。ソフトウェアロックステップの場合、これは、考えられる分岐点は常に同期点でなければならないことを意味する。ここで、演算装置が並列使用される場合、次のステップが確定し実行される前に、まず演算ステップの結果を常に検証する必要がある。
【0018】
したがって、データ駆動型アーキテクチャでは、並列演算を行わず、ある演算装置を(同期させずに先行して)動作させ、同一の実施順序を設定した上で、達成した結果を他のユニットで再演算して検証することがより効率的であり得る。この場合、1つの1次モジュールが、下位の2次モジュールに対して演算を設定する。
【0019】
現在のハードウェアロックステップ対応のマイクロコントローラは、高度自動運転に必要とされるような演算能力の要求を満たしておらず、同時に、現行の高性能プロセッサは、ASIL-D安全性等級を満たしていない。
【0020】
しかし、高度自動運転のための演算システムを取得するためには、高速だが不安定なプロセッサを適切に保護する方法を見つける必要がある。そこで、ソフトウェアロックステップを使用することが提案されている。
【0021】
これを試みる最も簡単な方法は、対応するマイクロプロセッサでソフトウェアロックステップを実行することである。しかし、これでは演算能力が(少なくとも)半減するだけでなく、同一ハードウェア上で冗長演算する場合の系統エラーを排除できない一方、出力データ/演算結果を比較するために必要な比較器も同様に不安定なハードウェア上で動作することになるため、結果を十分に信頼できない、という2つの重大な問題がある。
【0022】
この問題を解決するために、互いに別々のハードウェアと、比較器ユニット(コンパレータモジュール)とを有する少なくとも2つのモジュールに基づくソフトウェアロックステップを実行し、比較器ユニット/コンパレータモジュールが追加のASIL-D準拠のハードウェア上で動作することが提案される。
【0023】
上記の方式では、WCETを考慮して最大限必要な演算時間を確保する必要があるが、これは通常例外的にしか必要とされないため、多くのステップで時間が「余って」おり、システムの処理チェーンに許容できない応答時間が生じ、ハードウェアの稼働が悪くなる。事前に実施順序が設定され、WCETを使用した並列ソフトウェアロックステップにおける危険性は、システム全体で要求される最大応答時間を達成できないか、下回る場合があるということである。
【0024】
例えば1次モジュールと、再演算を行う2次モジュールとを備えて構築された、上記のようなデータ駆動型アーキテクチャを用いると、大幅に優れた利用を達成することができる。このようなアーキテクチャでは、それぞれ次のデータ処理ステップがアドホックに実行され、正確な工程を事前に知る必要がないため、高い柔軟性がある。
【0025】
しかし、このようなアーキテクチャには、特にここで記載される自動車用途について不利な点があり、それらを以下に簡単に説明する。
実施順序は、1次モジュールによって設定される。従属の2次モジュールは、いわば「盲目的に」再演算を行う。したがって実施順序は、検査できるとしても、不変量や、一般的な規則に基づいてのみ検査することができる。この結果、制御フローの安全性等級は、個別に使用されるそれぞれのハードウェアの個々の安全性等級と同じになる。このようなアーキテクチャでは、高いASIL-Dレベルは達成できない。すなわち、1次モジュールの演算がエラーである可能性があったことを、2次モジュールで再演算によって確認できるが、演算結果が既に事前に必要とされるため、それは既に手遅れである。
【0026】
冗長的な演算ステップが終了し、その後に結果が伝達された後でなければ、演算の比較を常に行うことができない。演算のエラーが判明するまでの時間が、この原理により2倍になった。その結果、エラー応答時間が増加し、場合によっては正規の工程に不必要な応答時間が発生する。
【0027】
すなわち、1次モジュールおよび2次モジュールによるロックステップの既知の方式は、より柔軟でデータ駆動型の実施を可能にするが、応答時間が増加するという問題がある。
【0028】
提示されたデータ処理ネットワークおよびそれを用いて実行されるデータ処理方法は、高度自動運転に十分な性能を可能にする。提示されたデータ処理ネットワークは、時間駆動型とデータ駆動型を組み合わせたアーキテクチャを可能にする。すなわち、実施順序が事前に設定された方式と比較して、ソフトウェアロックステップにおける柔軟な実施順序が可能である。
【0029】
このために、並列に実行されるがタイムスライスに基づかないソフトウェアロックステップ方式が選択され、これは、演算装置としての少なくとも2つのマイクロプロセッサ(第1のデータ処理モジュールおよび第2のデータ処理モジュール)と、追加の信頼できるハードウェア(コンパレータモジュール)上で動作する制御構成要素と、で実現される。
【0030】
安全目標基準に対応するこの制御ユニットは、演算装置上の工程を同期させ、それらの結果を比較する。
1次/2次モジュールのロックステップと比較して、冗長的な演算ステップは(ほぼ)同時に処理されるため、カスケードが発生せず、より良好な応答時間特性を実現する(
図3参照)。
【0031】
完全なデータパケットを比較器に送信する代わりに、制御パラメータとしてデータ(パケット)の数字和のみをデータ処理モジュールからコンパレータモジュールに伝送することも、ここで記載されるデータ処理ネットワークでは可能であり、これにより、場合によっては通信負荷を大幅に削減することができる。
【0032】
このような最適化と、データ駆動型および時間駆動型の混合作動とにより、ハードウェアの良好で効率的な稼働が達成される。
安全性アーキテクチャの観点からは、記載されたデータ処理ネットワークの構造は、安全性を重視するべきタスクの分解に対応する。個々の演算装置に対してはASIL要件が低減されるため、現在存在する高性能プロセッサで、システム全体のASIL-D等級を既に達成することができる。
【0033】
記載されたデータ処理ネットワークをソフトウェアの実施に適用するためには、以下の前提条件が必要である。
- 全てのデータおよび関連する全ての制御イベントは、タイムライン、またはイベントキューなどの同等の構造にマッピングされる。タイムラインは、「共通論理タイムライン」とも呼ばれることがある。
- 制御イベントによって開始される各演算ステップは、データ決定的である。すなわち、開始状態が同じである場合、同一の入力データは常に同一の出力データをもたらす。
【0034】
制御パラメータの比較が同一性確認を含み、同期された制御パラメータが、第1のデータ処理モジュールと第2のデータ処理モジュールからの制御パラメータの同一性を前提とする場合、特に有利である。
【0035】
また、データ処理ネットワークが、コンパレータモジュールによって提供される、同期された制御パラメータを使用して、データ処理ネットワークのさらなるデータ処理ステップで、出力データのさらなるデータ処理を制御するように構成されていると有利である。
【0036】
さらに、同期された制御パラメータが、実行された少なくとも1つのデータ処理ステップに関する妥当性情報を含む妥当性パラメータであると有利である。
また、データ処理ネットワークが、データ処理モジュールおよび/またはデータ処理ステップからの制御パラメータをそれぞれ分類し、同期し、かつこれらを分類と共にコンパレータモジュールに転送できるように構成された、少なくとも1つの順序化モジュールをさらに有し、これによって、コンパレータモジュールが、データ処理モジュールがデータ処理ステップを実施した順序に関係なく、同期された制御パラメータを特定できると有利である。
【0037】
順序化モジュールは、特に、データ処理ステップが個々のデータ処理モジュールで、特に、それぞれ利用可能なハードウェア上で完了する順序を追跡するために使用される。この方法によって、さらなるデータ処理タスクを実行するためのハードウェアの可用性を確認することができる。順序化モジュールは、それぞれデータ処理モジュールに割り当てられ、制御パラメータをコンパレータモジュール、またはコンパレータモジュールが作動する(第3の)ハードウェア構成要素に伝送する。
【0038】
さらに、好ましくは、2つのデータ処理モジュールの、それぞれ互いに関連する(エラーが発生していない限り、正確に対応する)制御パラメータを互いに同期させ、場合によってはコンパレータモジュールに供給される制御パラメータタプルを形成する同期装置が存在する。同期装置とコンパレータモジュールは、(第3の)ハードウェア構成要素上で作動する中央処理装置を、好ましくは共同で形成する。同期装置によって、データ処理ステップの実施順序に柔軟性が与えられる。それぞれのデータ処理モジュールのハードウェアは、(このハードウェアがデータ処理ステップの実行を終了した時に)、さらなるデータ処理ステップを実行するために使用されてもよい。
【0039】
同じデータ処理ステップが第1のデータ処理モジュールおよび第2のデータ処理モジュール上で実行されるため、工程が成功した場合、各データ処理モジュールで他方のデータ処理モジュールと同じ制御イベントおよびデータイベントが発生し、複数のユニットでの並列処理であるため、異なる順序で発生してもよい。
【0040】
中央処理装置(コンパレータモジュールと同期装置から構成)は、全てのデータ処理モジュールから適切なイベント(対応する制御パラメータ)が到着するまで、イベント(制御パラメータ)をバッファリングする。その後、対になっている制御パラメータを比較し、同一性を評価し、同期された制御パラメータを出力することができる。
【0041】
好ましくは、ハードウェアモジュールからの同期された制御パラメータがある場合、ハードウェアの特に良好な稼働が達成されるように、続いてそれぞれのハードウェア上での個々の(次の)データ処理ステップの開始を計画および命令するタスク分配モジュールがさらに存在する。
【0042】
タスク分配モジュールは、好ましくは、個々のデータ処理モジュールに一種の刺激を送り、それらのデータ処理モジュールを起動させる。中央処理装置または第3のハードウェア構成要素とコンパレータモジュールの使用により、2つのデータ処理タスクの実行の間の応答時間がわずかに増加する。しかし、一般的な1次/2次モジュールアーキテクチャと比較して、この応答時間の増加は全体として許容できるものである。
【0043】
中央処理装置または同期装置と、順序化モジュールと、コンパレータモジュールとが、受信した制御パラメータ/イベントの一義的な順序を確認できない場合、エラーケースとして確認することができる。適用ケースによっては、データ処理ネットワークによるデータ処理の新たな再演算または終了につながる場合がある。
【0044】
刺激は、中央処理装置によって一定の方法で検出される。制御パラメータを比較することによって、コンパレータモジュールによって正しい演算結果が特定され、同期された制御パラメータが演算できた場合、いわば刺激が発見され、これは、それぞれの第1のデータ処理モジュールとそれぞれの第2のデータ処理モジュールを用いて入力データとして演算された出力データを必要とする、さらなるデータ処理をトリガする。さらなる演算ステップ実施のための、場合によって生じ得る刺激を見つけるために、中央処理装置は、全ての受信データイベント(制御パラメータ)だけでなく、前の演算ステップの終了を表すイベント(「End」または「DistributeSamples」)も評価する。
【0045】
同時に、時間駆動型で実施するための刺激として、時間イベントが生成されてもよい。
中央処理装置は、データ処理の既に上記した、いわばタイムライン(共通論理タイムライン)を管理する。
【0046】
したがって、成功した場合、ローカルな実施順序が異なる場合があるにもかかわらず、データ駆動型および時間駆動型の全ての演算装置上で、同じ工程が生じる結果となる。
第1のデータ処理モジュールが第1のハードウェア構成要素で実装され、第2のデータ処理モジュールが第2のハードウェア構成要素で実装され、第1のハードウェア構成要素と第2のハードウェア構成要素とは、物理的に互いに分離されていると有利である。
【0047】
また、データ処理モジュールの少なくとも1つが、ASIL-Dに準拠していないハードウェア構成要素を有すると有利である。
データ処理モジュールの両方のハードウェア構成要素がASIL-Dに準拠していないと特に有利である。
【0048】
また、コンパレータモジュールが第3のハードウェア構成要素で実装され、第3のハードウェア構成要素は、第1のハードウェア構成要素および第2のハードウェア構成要素から物理的に分離されていると有利である。
【0049】
これに関連して、第3のハードウェア構成要素がASIL-Dに準拠していると有利である。
また、コンパレータモジュールが、特定された制御パラメータが時間情報と共に格納されるデータメモリを有し、その結果、データ処理ステップの処理順序をデータ処理ネットワークのデータ処理モジュールでマッピングする論理タイムラインが発生すると有利である。
【0050】
これに関連して、データ処理モジュールのハードウェア構成要素が、コンパレータモジュールのハードウェア構成要素よりも著しく高性能である場合も有利である。コンパレータモジュールの第3のハードウェア構成要素と、データ処理モジュールの(第1および第2の)ハードウェア構成要素との間で生じ得る性能差は、データ処理ネットワークのそれぞれの適用ケースに依存する。例えば、第1および第2のハードウェア構成要素のプロセッサクロックが、第3のハードウェア構成要素のプロセッサクロックの少なくとも5倍、場合によっては10倍の大きさであることが一般的である。
【0051】
データ処理モジュールと中央処理装置(コンパレータモジュールと、場合によっては順序化モジュールおよびタスク分配モジュール)との間の通信経路の負荷を緩和するために、必要に応じて、出力データとしての大量のデータに対して、それらの数字和(CRC(Cyclic Redundancy Check))として制御パラメータを演算し、これらだけを制御パラメータとして一義的なパケット識別(別名メタサンプル)と共にコンパレータモジュールに送信してもよい。入力データとしての1つのデータ処理ステップから次のデータ処理ステップへの出力データの実際の流れは、第1のハードウェア構成要素および第2のハードウェア構成要素(および場合によってはさらなるハードウェア構成要素)上で、互いに独立して、または互いに並行して行われ、場合によって、データ伝送インターフェースは、中央処理装置またはコンパレータモジュールからも独立している様々なハードウェア構成要素間に存在してよい。中央処理装置またはコンパレータモジュールは、その後、元データではなく、例えばそれらの数字和を確認し、これにより、元コンテンツがビットごとに比較される。ここで、第1のハードウェア構成要素および第2のハードウェア構成要素は、比較器によって確認され、かつ供給できるようになるまで、元データパケットをバッファリングしなければならないことに留意されたい。
【0052】
コンパレータモジュールへ転送するための、ここで提案された制御パラメータとしての数字和の演算も、リソースの消費が無視できないため、出力データのデータ量に応じて、出力データの直接比較と、出力データの数字和の比較のどちらを行うかを決定することも可能である。
【0053】
制御パラメータの比較は、第1のデータ処理モジュールおよび/または第2のデータ処理モジュールにおけるデータ処理中に発生したエラーが許容限界を下回るかどうかの検査を含み、この場合に同期された制御パラメータが生成されると、特に有利である。これは、特に、このような場合、許容限界を下回るエラーが発生したにもかかわらず、場合によって同期された制御パラメータが生成されることを意味する。
【0054】
ここでは、記載されたデータ処理ネットワークの作動方法であって、少なくとも、
a)第1のデータ処理モジュールでデータ処理ステップを実行し、かつ、第1のデータ処理モジュールでのデータ処理ステップの実行の検査に適した第1の制御パラメータを生成するステップと、
b)ステップa)から独立して、第2のデータ処理モジュールで同じデータ処理ステップを実行し、かつ、第2のデータ処理モジュールでのデータ処理ステップの実行の検査に適した第2の制御パラメータを生成するステップと、
c)第1のデータ処理モジュールおよび第2のデータ処理モジュールから伝送された、対応する制御パラメータの比較をコンパレータモジュールで実行し、かつ、この比較に基づいて、実行された少なくとも1つのデータ処理ステップに関連する制御情報を含む、同期された少なくとも1つの制御パラメータを提供するステップと、
を有する方法も記載される。
【図面の簡単な説明】
【0055】
記載されたデータ処理ネットワークおよび技術環境を、以下に図を参照して説明する。図は、本開示に限定されない好ましい実施例を示す。図は概略的なものであり、記載されたデータ処理ネットワークの個々の態様をそれぞれ示す。
【
図2】論理タイムライン上の個々のデータ処理ステップの処理である。
【
図3】様々なデータ処理モジュールによる個々のデータ処理ステップの処理である。
【発明を実施するための形態】
【0056】
図1は、自動車23における記載されたデータ処理ネットワーク1を示す。ここでは例示的に、データ処理ネットワーク1がセンサ19からのデータを処理するために使用され、出力データ受信部20がシステムからデータ供給されることが示されている。このような出力データ受信部20は、例えば、自律運転操作のためのシステムまたは同様のシステムであってもよい。データ処理ネットワーク1は、例えば、データ処理ネットワーク1の出力データ4とすることができる、関連するパラメータにセンサデータを還元するために使用される。
【0057】
ここで、データ処理ネットワーク1は、データ処理ネットワーク1またはその構成要素およびモジュールが作動することができる、ハードウェア構成要素も含む。
データ処理ネットワーク1は、相互に構築されている個々のデータ処理ステップ2を実行する。データ処理ステップ2の出力データ4は、さらなるデータ処理ステップ2の入力データ3であってもよい。各データ処理ステップ2は、ここでは、可能な限り互いに独立して実行される複数のデータ処理モジュール5、6で実現される。ここでは、第1のデータ処理モジュール5および第2のデータ処理モジュール6が示されている。データ処理ステップ2を(並行して)実行する、2つ以上のデータ処理モジュールが設けられてもよい。
【0058】
データ処理ネットワーク1は、さらなる図を参照して詳述する、さらなる構成要素を含む。これらには、特に、コンパレータモジュール7と、場合によっては同期装置27とが含まれるが、これらはここでは概略的にのみ示されている。
【0059】
図2では、記載されたデータ処理ネットワーク1の他の表示が選択されている。
図2では、個々のハードウェア構成要素を定義し、同時に、記載された方法の個々の方法ステップa)、b)、c)も表す3つの矢印が、上下に示されている。矢印は同時に、論理タイムライン17上のそれぞれのハードウェア構成要素上のプロセスの工程を表示する。上側の矢印は、第1のデータ処理モジュール5が実装された第1のハードウェア構成要素12である。下側の矢印は、第2のデータ処理モジュール6が実装された第2のハードウェア構成要素13である。中間の矢印は、コンパレータモジュール7が実装された第3のハードウェア構成要素14である。第1のデータ処理モジュール5および第2のデータ処理モジュール6において、データ処理ネットワーク1のデータ処理ステップ2がそれぞれ実行される。データ処理ステップ2が完了するたびに、制御パラメータ8がコンパレータモジュール7に伝送され、コンパレータモジュール7は、制御パラメータ8を比較することによって、データ処理ステップ2が正しく(すなわちエラーなく)実行されたかどうかを検知する。コンパレータモジュール7は、その後、同期された制御パラメータ9を生成し、制御パラメータ9はさらなるデータ処理ステップ2をトリガするために使用され、データ処理ステップ2は、以前のデータ処理ステップ2の(ここでは図示しない)出力データをさらに処理する。コンパレータモジュール8および関連する構成要素は、説明したデータ処理ネットワーク1の中央処理装置24としても理解することができる。同期された制御パラメータ9は、さらなるデータ処理ステップ2をトリガするための刺激25として理解することができる。
【0060】
図3では、第1のデータ処理モジュール5と第2のデータ処理モジュール6によるデータ処理ステップ2の並列処理が、さらに詳細に示されている。第1のデータ処理モジュール5が第1のハードウェア構成要素12上に実装され、第2のデータ処理モジュール6が第2のハードウェア構成要素13上に実装されていることがわかる。第1のデータ処理モジュール5および第2のデータ処理モジュール6は、それぞれ同じ入力データ3を処理し、それぞれ同じ出力データ4を生成するものとする。
【0061】
データ処理ステップ2またはデータ処理モジュール5、6は、それぞれデータ処理のサブステップに関する複数の個々のデータ処理構成要素18にさらに細分化されてもよい。したがって、ここで定義されたデータ処理ステップ2またはデータ処理モジュール5、6は、データ処理構成要素18で実行されるサブステップの、既に適用ケースに応じて有意義に選択または定義された事前グループ化に関する。サブステップの事前グループ化は、好ましくは、データ処理ステップ2またはデータ処理モジュール5、6内でデータ保存が必要とされず、実施のために特に入力データ以外のデータがアクセスされないように選択される。
【0062】
第1のデータ処理モジュール5および第2のデータ処理モジュール6は、それぞれ、コンパレータモジュール7によって評価される制御パラメータ8を生成する。コンパレータモジュール7は、第1のハードウェア構成要素12および第2のハードウェア構成要素13から独立した第3のハードウェア構成要素14上で実装され、中央処理装置24を形成し、好ましくは、既に上記した構成の高い安全性(高いASILレベル)を提供する。好ましい実施変形例では、各データ処理モジュール5、6に、データ処理から制御パラメータ8を取得するための順序化モジュール11がそれそれ前置接続され、コンパレータモジュール7に同期装置27が前置接続される。さらに、コンパレータモジュール7に、同期された制御パラメータ9またはさらなるデータ処理ステップ2をトリガするための刺激25を出力するタスク分配モジュール22を後置接続してもよい。同期装置27、コンパレータモジュール7およびタスク分配モジュール22は、記載した中央処理装置24として第3のハードウェア構成要素14上に共に実装してよい。好ましくは、記載されたデータ処理ネットワーク1は、データ処理ステップ2が、利用可能で完全に稼働していないハードウェア上でそれぞれ実行されるように作動する。タスク分配モジュール22は、利用可能なハードウェアへこのデータ処理ステップ2を分配させることができる。さらに、実行されるデータ処理ステップ2の実施は、各ハードウェア上で異なる長さの時間を要する。発生する制御パラメータ8の分類は、同期装置27によって達成され、正確な同期された制御パラメータ9を生成するために、ハードウェアが高稼働の場合でも、コンパレータモジュール7がそれぞれ正しい制御パラメータ8を互いに比較する。このために、制御パラメータ8は、制御パラメータタプル28として同期装置27からコンパレータモジュール7に転送される。入力データ3および出力データ4が、それぞれ中央処理装置24およびコンパレータモジュール7を介して、あるデータ処理ステップ2から次のデータ処理ステップ2へ転送される必要はない。この目的のために、コンパレータモジュール7とは独立して存在するデータ処理モジュール5、6またはそれぞれのハードウェア構成要素12、13の間に、追加のデータ伝送インターフェース26が存在してもよい。これらのデータ伝送インターフェース26を介して提供されたデータは、好ましくは、それぞれの出力データ4を生成するそれぞれのデータ処理ステップ2のエラーのない処理が、コンパレータモジュール7を用いて2つのデータ処理モジュール5、6において確認された場合にアクセスされる。
【0063】
図4では、記載された方法の他の表示が選択されており、方法ステップa)、b)およびc)が、各データ処理ステップ2に対してそれぞれ実行される。実際のデータ処理ステップ2は、常に、第1のデータ処理モジュール5と第2のデータ処理モジュール6とで互いに冗長的に実施される。続いて、次のデータ処理ステップ2を開始する前に、データ処理ステップ2が正しく実施されたかどうかの確認が、それぞれコンパレータモジュール7で行われる。
【国際調査報告】