IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 北京図森智途科技有限公司の特許一覧

特開2023-168309複数のモジュールの間にデータを伝送するためのシステム及び方法
<>
  • 特開-複数のモジュールの間にデータを伝送するためのシステム及び方法 図1
  • 特開-複数のモジュールの間にデータを伝送するためのシステム及び方法 図2
  • 特開-複数のモジュールの間にデータを伝送するためのシステム及び方法 図3
  • 特開-複数のモジュールの間にデータを伝送するためのシステム及び方法 図4
  • 特開-複数のモジュールの間にデータを伝送するためのシステム及び方法 図5
  • 特開-複数のモジュールの間にデータを伝送するためのシステム及び方法 図6
  • 特開-複数のモジュールの間にデータを伝送するためのシステム及び方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023168309
(43)【公開日】2023-11-24
(54)【発明の名称】複数のモジュールの間にデータを伝送するためのシステム及び方法
(51)【国際特許分類】
   G06F 21/62 20130101AFI20231116BHJP
【FI】
G06F21/62 318
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023078929
(22)【出願日】2023-05-11
(31)【優先権主張番号】202210514821.1
(32)【優先日】2022-05-12
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】521254764
【氏名又は名称】北京図森智途科技有限公司
(74)【代理人】
【識別番号】110001139
【氏名又は名称】SK弁理士法人
(74)【代理人】
【識別番号】100130328
【弁理士】
【氏名又は名称】奥野 彰彦
(74)【代理人】
【識別番号】100130672
【弁理士】
【氏名又は名称】伊藤 寛之
(72)【発明者】
【氏名】姜子悦
(72)【発明者】
【氏名】▲キン▼江明
(57)【要約】      (修正有)
【課題】ハードウェア保護メカニズムに基づいて共有メモリを介した複数モジュール間の安全なデータ通信を実現し、自動運転の安全性を確保するシステム及び方法を提供する。
【解決手段】システムは、複数のモジュールの間に伝送されるデータを記憶する第1の記憶ユニットと、複数のモジュールの識別情報及び複数のモジュールによる第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作の権限情報を記憶する第2の記憶ユニットと、第1の記憶ユニット、第2の記憶ユニット及び複数のモジュールに接続され、且つ、第2の記憶ユニットに記憶されている識別情報及び権限情報に基づいて複数のモジュールによる第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作を制御する制御モジュールと、を含む。複数のモジュールは、制御ユニットの制御下で第1の記憶ユニットに対して読み取り操作及び/又は書き込み操作を実行し、データを伝送する。
【選択図】図2
【特許請求の範囲】
【請求項1】
複数のモジュールの間に伝送されるデータを記憶するように構成される第1の記憶ユニットと、
前記複数のモジュールの識別情報及び前記複数のモジュールによる第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作の権限情報を記憶するように構成される第2の記憶ユニットと、
前記第1の記憶ユニット、前記第2の記憶ユニット及び前記複数のモジュールに接続され、且つ前記第2の記憶ユニットに記憶されている識別情報及び権限情報に基づいて前記複数のモジュールによる前記第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作を制御するように構成される制御ユニットと、を含み、
ここで、前記複数のモジュールは、前記制御ユニットの制御下で前記第1の記憶ユニットに対して読み取り操作及び/又は書き込み操作を実行することによりデータを伝送するように構成される、複数のモジュールの間にデータを伝送するためのシステム。
【請求項2】
前記第2の記憶ユニットは、前記複数のモジュールに読み取られ、書き込まれることを禁止するように構成される、請求項1に記載のシステム。
【請求項3】
前記第1の記憶ユニットはメモリを含み、且つ前記第2の記憶ユニットはレジスタを含む、請求項1に記載のシステム。
【請求項4】
前記複数のモジュールは第1のモジュールを含み、また、ここで、
前記第1のモジュールは、データを前記第1の記憶ユニットに書き込む書き込みリクエストを前記制御ユニットに送信するように構成され、
前記制御ユニットは、前記第2の記憶ユニットに記憶されている前記第1のモジュールの識別情報に基づいて前記第1のモジュールを認証し、また前記第2の記憶ユニットに記憶されている前記第1のモジュールの権限情報に基づいて前記第1のモジュールによる前記第1の記憶ユニットに対する書き込み操作の実行を許可するか否かを決定するように構成され、
前記制御ユニットが前記第1のモジュールによる前記第1の記憶ユニットに対する書き込み操作の実行を許可することに応答し、且つ前記第1の記憶ユニットに対して書き込み操作を実行している他のモジュールがないと決定した場合、前記第1のモジュールは、データを前記第1の記憶ユニットに書き込むように構成される、請求項1に記載のシステム。
【請求項5】
前記第1のモジュールが前記第1の記憶ユニットに対する書き込み操作を完了すると、前記制御ユニットにその書き込み操作が完了したことを通知する、請求項4に記載のシステム。
【請求項6】
前記複数のモジュールは第2のモジュールを含み、また、ここで、
前記第2のモジュールは、前記第1の記憶ユニットを読み取る読み取りリクエストを前記制御ユニットに送信するように構成され、
前記制御ユニットは、前記第2の記憶ユニットに記憶されている前記第2のモジュールの識別情報に基づいて前記第2のモジュールを認証し、また前記第2の記憶ユニットに記憶されている前記第2のモジュールの権限情報に基づいて前記第2のモジュールによる前記第1の記憶ユニットに対する読み取り操作の実行を許可するか否かを決定するように構成され、
前記制御ユニットが前記第2のモジュールによる前記第1の記憶ユニットに対する読み取り操作の実行を許可し、且つ前記第1の記憶ユニットに対して書き込み操作を実行している他のモジュールがないと決定した場合、前記第2のモジュールは、前記第1の記憶ユニットからデータを読み取るように構成される、請求項1に記載のシステム。
【請求項7】
前記第2のモジュールの数は少なくとも2つである、請求項6に記載のシステム。
【請求項8】
前記複数のモジュールはさらに第3のモジュールを含み、また、ここで、
前記第3のモジュールが前記第1の記憶ユニットに対して書き込み操作を実行しているとき、前記制御ユニットは、前記第3のモジュールの書き込み操作が完了するまで、前記第1のモジュールによる前記第1の記憶ユニットに対する書き込み操作の実行及び第2のモジュールによる前記第1の記憶ユニットに対する読み取り操作の実行を禁止するように構成される、請求項4に記載のシステム。
【請求項9】
前記複数のモジュールの各々による前記第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作は対応する優先度を有し、また、
ここで、前記制御ユニットは前記優先度に基づいて前記複数のモジュールによる前記第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作の時間的順序を並び替える、請求項1に記載のシステム。
【請求項10】
前記第2の記憶ユニットはさらに、前記複数のモジュールによる前記第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作の優先度を記憶するように構成され、
ここで、前記制御ユニットは前記優先度に基づいて前記複数のモジュールによる前記第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作の時間的順序を並び替える、請求項1に記載のシステム。
【請求項11】
前記システムは自動運転システムであり、また、
ここで、前記複数のモジュールはレーザレーダーモジュール、カメラモジュール、運転速度制御モジュール、運転方向制御モジュール及び経路決定モジュールのうちの少なくとも1つを含む、請求項1に記載のシステム。
【請求項12】
複数のモジュールのうちの第1のモジュールは、データを第1の記憶ユニットに書き込む書き込みリクエストを送信するステップであって、前記第1の記憶ユニットは前記複数のモジュールの間に伝送されるデータを記憶するために用いられるステップと、
制御ユニットは、第2の記憶ユニットに記憶されている前記第1のモジュールの識別情報に基づいて前記第1のモジュールを認証し、また前記第2の記憶ユニットに記憶されている前記第1のモジュールの権限情報に基づいて前記第1のモジュールによる前記第1の記憶ユニットに対する書き込み操作の実行を許可するか否かを決定するステップであって、前記第2の記憶ユニットは前記複数のモジュールの識別情報及び前記複数のモジュールによる前記第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作の権限情報を記憶するために用いられるステップと、
前記第1のモジュールによる前記第1の記憶ユニットに対する書き込み操作の実行を許可し、且つ前記第1の記憶ユニットに対して書き込み操作を実行している他のモジュールがないと決定した場合、前記第1のモジュールは、データを前記第1の記憶ユニットに書き込むステップと、を含む、複数のモジュールの間にデータを伝送するための方法。
【請求項13】
前記複数のモジュールのうちの第2のモジュールは前記第1の記憶ユニットから前記第1のモジュールにより書き込まれたデータを読み取るステップをさらに含む、請求項12に記載の方法。
【請求項14】
プログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、前記プログラムはコマンドを含み、前記コマンドがコンピューティング機器の1つ又は複数のプロセッサにより実行されるとき、請求項12に記載の方法を前記コンピューティング機器に実行させる、プログラムが記憶されているコンピュータ読み取り可能な記憶媒体。
【請求項15】
プロセッサと、メモリと、メモリに記憶され且つプロセッサに実行可能なコンピュータプログラムと、を含み、
ここで、前記プロセッサは、前記コンピュータプログラムを実行するとき、請求項12に記載の方法を実行する、コンピューティング機器。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は主にデータ通信の技術分野に関し、より具体的には、共有メモリを介して複数のモジュールの間にデータを伝送するためのシステム及び方法に関する。
【背景技術】
【0002】
自動(無人)運転技術において、自動運転システムとは、自動運転センサモジュール、アルゴリズムモジュール及び制御モジュールのそれぞれを統一的に計画し関連付けることを担当するロボットオペレーティングシステムを意味し、人間運転者の「神経系統」に相当し、その安全性は特に重要であり、自動運転システムの設計開発に考慮しなければならない問題である。
【0003】
現在の自動運転システムに大量のデータ伝送通信が存在し、一般的に共有メモリ(内部メモリ)を用いてプロセス内の通信方法とする。従来の方法は通常ソフトウェアコード論理を用いて共有内部メモリを保護するが、ソフトウェアコード論理が突破されやすく、その結果共有内部メモリが悪意に侵入されたり書き換えられたりしやすくなり、それによりセキュリティリスクが存在する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、複数のモジュールの間にデータを伝送するための技術を提供し、ハードウェアメカニズムに基づいて共有メモリの分離を実現することができ、それによりハードウェアとソフトウェアを組み合わせる方式で共有メモリの安全性を確保する。
【0005】
本開示のいくつかの態様の基本的な理解を提供するために、本開示に関する簡単な概要が以下に与えられる。本概要は、本開示に関する包括的な概要ではなく、本開示の重要な部分や本質的な部分を特定すること、又は本開示の範囲を定義することを意図していないことを理解されたい。その目的は単に、簡単な形式でいくつかの概念を与え、後述のより詳細な説明の前置きとすることである。
【課題を解決するための手段】
【0006】
本開示の一態様によれば、複数のモジュールの間に伝送されるデータを記憶するように構成される第1の記憶ユニットと、複数のモジュールの識別情報及び複数のモジュールによる第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作の権限情報を記憶するように構成される第2の記憶ユニットと、第1の記憶ユニット、第2の記憶ユニット及び複数のモジュールに接続され、且つ第2の記憶ユニットに記憶されている識別情報及び権限情報に基づいて複数のモジュールによる第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作を制御するように構成される制御ユニットと、を含み、ここで、複数のモジュールは、制御ユニットの制御下で第1の記憶ユニットに読み取り操作及び/又は書き込み操作を実行することによりデータを伝送する、複数のモジュールの間にデータを伝送するためのシステムが提供される。
【0007】
本開示の別の態様によれば、複数のモジュールのうちの第1のモジュールは、データを第1の記憶ユニットに書き込む書き込みリクエストを送信するステップであって、第1の記憶ユニットは複数のモジュールの間に伝送されるデータを記憶するために用いられるステップと、第2の記憶ユニットに記憶されている第1のモジュールの識別情報に基づいて第1のモジュールを認証し、また第2の記憶ユニットに記憶されている第1のモジュールの権限情報に基づいて第1のモジュールによる第1の記憶ユニットに対する書き込み操作の実行を許可するか否かを決定するステップであって、第2の記憶ユニットは複数のモジュールの識別情報及び複数のモジュールによる第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作の権限情報を記憶するために用いられるステップと、第1のモジュールによる第1の記憶ユニットに対する書き込み操作の実行を許可し、且つ第1の記憶ユニットに対して書き込み操作を実行している他のモジュールがないと決定した場合、第1のモジュールは、データを第1の記憶ユニットに書き込み、且つ複数のモジュールのうちの第2のモジュールは第1の記憶ユニットから第1のモジュールにより書き込まれたデータを読み取るステップと、を含む、複数のモジュールの間にデータを伝送するための方法が提供される。
【0008】
本開示の別の態様によれば、上述した複数のモジュールの間にデータを伝送するための方法を実現できるコンピュータプログラムが提供される。また、少なくともコンピュータ読み取り可能な媒体形態を有するコンピュータプログラム製品であって、その上には、上述した複数のモジュールの間にデータを伝送するための方法を実現するためのコンピュータプログラムコードが記録されている、少なくともコンピュータ読み取り可能な媒体形態を有するコンピュータプログラム製品がさらに提供される。
【0009】
本開示の別の態様によれば、プロセッサ及びメモリを含む電子機器であって、メモリにプログラムが記憶され、当該プログラムがプロセッサにより実行されるとき、上述した複数のモジュールの間にデータを伝送するための方法をプロセッサに実行させる、電子機器が提供される。
【0010】
本開示の別の態様によれば、少なくともレーザレーダーモジュール、ミリ波レーダーモジュール、カメラモジュール、運転速度制御モジュール、運転方向制御モジュール及び経路決定モジュールを含む自動運転システムであって、レーザレーダーモジュール、ミリ波レーダーモジュール、カメラモジュール、運転速度制御モジュール、運転方向制御モジュール及び経路決定モジュールは、上述した複数のモジュールの間にデータを伝送するための方法を用いて通信を行う、自動運転システムが提供される。
【発明の効果】
【0011】
本開示の複数のモジュールの間にデータを伝送するための技術によれば、ハードウェアとソフトウェアを組み合わせる方式で、例えば自動運転システムに用いられる共有メモリの安全性を保護し、すなわち従来のソフトウェア論理によって読み取り操作と書き込み操作の分離を実現する上で、ハードウェアメカニズムによって共有メモリに対する書き込みの安全性をさらに確保し、共有メモリにおけるキーデータの改ざんを防止し、それによりデータ伝送の安全性を向上させる。
【図面の簡単な説明】
【0012】
本開示の以上及び他の意図、特徴及び利点をより容易に理解するように、以下の図面に合わせて本開示の実施形態について説明する。図面において、
図1】本開示の実施形態による複数のモジュールの間にデータを伝送するためのシステムの構成を示すブロック図である。
図2】本開示の実施形態による複数のモジュールの間にデータを伝送するためのシステムの操作例を示す概略図である。
図3】本開示の実施形態による複数のモジュールの間にデータを伝送するための方法を示すフローチャートである。
図4】本開示の実施形態による共有メモリから読み取る方法の例を示すフローチャートである。
図5】本開示の実施形態による共有メモリに書き込む方法の例を示すフローチャートである。
図6】本開示の実施形態による複数のモジュールの間にデータを伝送するためのシステム及び方法を実現するために用いることができる汎用機器を示す構造概略図である。
図7】本発明の一実施例によるコンピューティング機器を示す概略図である。
【発明を実施するための形態】
【0013】
以下、添付した説明的な図面を参照しながら、本開示のいくつかの実施形態について詳細に説明する。参照番号で図面の要素を示す場合、同一の要素は異なる図面に示されているが、同一の要素は同一の参照番号で示される。また、以下の本開示の説明において、本開示の要旨を不明にするおそれがある場合、本明細書に組み込まれる公知の機能及び構成に関する詳細な説明を省略する。
【0014】
本開示で使用される用語は、特定の実施形態を説明するためにのみ用いられ、本開示を限定することを意図していない。本明細書で使用されるように、単数形は、文脈上別段の指示がない限り、複数形も含むことを意図する。さらに、説明書で使用される用語の「含む」、「包含」及び「有する」は記述する特徴、実体、操作及び/又は部材の存在を具体的に説明することを意図しているが、1つ又は複数の他の特徴、実体、操作及び/又は部品の存在又は追加を排除するものではないことを理解されたい。
【0015】
別段の定義がない限り、本明細書で使用される技術用語及び科学用語を含む全ての用語は、当業者に一般的に理解されているのと同じ意味を有する。一般的な辞書に定義されるような用語は関連分野の文脈における意味と一致する意味を有すると解釈されるべきであり、ここで明確に定義しない限り、理想的又は正式な意味で解釈されるべきではないことをさらに理解されたい。
【0016】
以下の説明では、本開示を完全に理解するために、多くの特定の詳細が説明される。本開示はこれらの具体的な詳細のうち一部又は全部の具体的な詳細がない場合に実施できる。他の実施例では、不要な細部による本開示の曖昧さを回避するために、図面において本開示の解決手段と密接に関連する部材のみを示し、本開示と大きく関連しない他の細部を省略する。
【0017】
以下、図面を参照しながら本開示の実施形態に合わせて本開示の複数のモジュールの間にデータを伝送するための技術について説明する。
【0018】
図1は本開示の実施形態による複数のモジュールの間にデータを伝送するためのシステム100の構成を示すブロック図である。図2は本開示の実施形態による複数のモジュールの間にデータを伝送するためのシステム100の操作例を示す概略図である。
【0019】
本開示の実施形態によれば、複数のモジュール101の間にデータを伝送するためのシステム100は、
複数のモジュール101の間に伝送されるデータを記憶するように構成される第1の記憶ユニット102と、
複数のモジュール101の識別情報及び複数のモジュール101による第1の記憶ユニット102に対する読み取り操作及び/又は書き込み操作の権限情報を記憶するように構成される第2の記憶ユニット103と、
第1の記憶ユニット102、第2の記憶ユニット103及び複数のモジュール101に接続され、且つ第2の記憶ユニット103に記憶されている識別情報及び権限情報に基づいて複数のモジュール101による第1の記憶ユニット102に対する読み取り操作及び/又は書き込み操作を制御するように構成される制御ユニット104と、を含み、
ここで、複数のモジュール101は、制御ユニット104の制御下で第1の記憶ユニット102に対して読み取り操作及び/又は書き込み操作を実行することによりデータを伝送する。
【0020】
次に、図2を参照して、システム100の各部材について詳細に説明する。
【0021】
本開示の実施形態によれば、システム100は、自動運転システムであってもよい。また、本開示の実施形態によれば、システム100は、例えば、地上交通機関、水面又は水中航空機、飛行機又は宇宙機に適用可能な自動運転システムである。
【0022】
また、本開示の実施形態によれば、複数のモジュール101は、モジュール101-1、101-2、101-3及び101-4を含んでもよい。モジュール101-1~101-4の各々はレーザレーダーモジュール、ミリ波レーダーモジュール、カメラモジュール、運転速度制御モジュール、運転方向制御モジュール又は経路決定モジュールであってもよい。ここで、当業者であれば、自動運転システムは、例えばセンサモジュール、複数の位置決めモジュール、複数の決定モジュール、及び複数の制御モジュールのような複数のモジュールを含んでもよく、前記複数のモジュールはレーザレーダーモジュール、ミリ波レーダーモジュール、カメラモジュール、GPSモジュール、IMUモジュール、車輪速度計モジュール、GNSSモジュール、経路決定モジュール、運転速度制御モジュール、運転方向制御モジュールなどを含むが、これらに限定されない。本明細書では、説明の便宜上、4つのモジュールのみを示しているが、本発明はこれに限定されるものではなく、複数のモジュール101は、自動運転システムにおける任意の複数のモジュールであってもよい。具体的な適用シーンに応じて、モジュールの数はより多くても少なくてもよい。
【0023】
本開示の実施形態によれば、複数のモジュール101-1~101-4の各々は、ソフトウェアモジュール、ハードウェアモジュール又はファームウェアモジュールであってもよい。例えば、複数のモジュール101-1~101-4の各々は、コンピュータ上で実現されるCPUにより実行されるプロセスやスレッドであってもよい。
【0024】
本開示の実施形態によれば、第1の記憶ユニット102は、複数のモジュール101-1~101-4の間に伝送されるデータを記憶することができる。言い換えれば、第1の記憶ユニット102は複数のモジュール101-1~101-4により共有されるメモリであってもよい。したがって、本明細書では、用語の「第1の記憶ユニット」及び「共有メモリ」は同じ意味を有するため、本明細書では混合して使用される。例えば、第1の記憶ユニット102は、揮発性メモリ又は不揮発性メモリとして実現されてもよい。特に、複数のモジュール101-1~101-4の各々が、コンピュータの中央処理ユニット(CPU)により実行されるプロセス又はスレッドとして実現される場合、第1の記憶ユニット102は、それらのプロセス又はスレッドによりアクセスされるコンピュータの内部メモリであってもよい。
【0025】
本明細書に記載のスレッドはCPU概念上のスレッドであり、CPU層においてスレッドはCPUにより実際に実行される物理ユニットである。本明細書に記載のプロセスは同じコンテキストリソースを共有する複数の特殊スレッドであり、異なるプロセスのスレッドはコンテキストリソースを共有しないスレッドである。したがって、スレッドは、CPU実行フローにおける最小の単位(粒度)とみなされてもよい。これに対して、スレッドは、ある共有属性を割り当てられたスレッドの集合として理解されてもよい。スレッド及びプロセスの概念は当業者に既知であるため、説明を簡潔にするために、本明細書ではその詳細についてより詳しく説明しない。
【0026】
本発明の実施形態によれば、複数のモジュール101-1~101-4は、共有メモリである第1の記憶ユニット102を介して互いにデータを伝送してもよい。例えば、図2に示すように、モジュール101-1及び101-2は、第1の記憶ユニット102に対して書き込み操作を実行する書き込みモジュールであってもよく、本明細書では「第1のモジュール」又は「第3のモジュール」とも呼ばれ、モジュール101-3及び101-4は、第1の記憶ユニット102に対して読み取り操作を実行する読み取りモジュールであってもよく、本明細書では「第2のモジュール」とも呼ばれる。図2に示すように、書き込みモジュール101-1及び読み取りモジュール101-3を例にとると、書き込みモジュール101-1により第1の記憶ユニット102にデータを書き込んだ後、読み取りモジュール101-3が、書き込みモジュール101-1により第1の記憶ユニット102に書き込まれたデータを第1の記憶ユニット102から読み取ることで、書き込みモジュール101-1から読み取りモジュール101-3にデータを伝送することができる。当業者であれば理解できるように、本明細書ではモジュール101-1及び101-2が第1の記憶ユニット102に対して書き込み操作を行う書き込みモジュールであり、モジュール101-3及び101-4が第1の記憶ユニット102に対して読み取り操作を実行する読み取りモジュールである場合を例にして本開示の実施形態について説明するが、本開示はこれに限定されるものではない。実際には、複数のモジュール101-1~101-4の各々は、適用シーンに応じて、いずれも第1の記憶ユニット102に対して読み取り操作及び/又は書き込み操作を行うことができる。
【0027】
本開示の実施形態によれば、第2の記憶ユニット103は、複数のモジュール101-1~101-4のうちの各々の識別情報、及び複数のモジュール101-1~101-4のうちの各々による第1の記憶ユニット102に対する読み取り操作及び/又は書き込み操作の権限情報を記憶することができる。本開示の実施形態によれば、第2の記憶ユニット102は、揮発性メモリ又は不揮発性メモリとして実現されてもよい。特に、第2の記憶ユニット102がキー情報としての複数のモジュール101-1~101-4の識別情報及び権限情報を記憶することを考慮すると、第2の記憶ユニット102は、例えばハードウェアレジスタとして実現されてもよく、且つ複数のモジュール101-1~101-4により直接アクセスできず、すなわち、複数のモジュール101-1~101-4のうちの各々は第2の記憶ユニット102に対して書き込み操作又は読み取り操作を実行することができない。
【0028】
本開示の実施形態によれば、第2の記憶ユニット102は、ハードウェアに基づく内部メモリ保護メカニズムPKU(Protection Keys for Userspace)として実現されてもよい。
【0029】
PKUは、強制的にページテーブルに基づくようにさせるために用いられるがページテーブルを修正する必要がない内部メモリ権限制御を提供する。PKUの動作原理は、ページテーブルにおける以前に使われなかった4つのビットを、16(=2)個の暗号化キーを提供するために用いることである。また、本開示は新たなユーザアクセス可能なレジスタPKRU(Protection Key rights Register for User pages)をさらに提供し、その中に2つの独立したレジスタが含まれ、各暗号化キーの読み取り権限及び書き込み権限を記憶するために用いられる。暗号化キーに対応するプロセスが位置するページにアクセスする時に読み取り権限及び書き込み権限を付加的に検査する必要があり、それにより指定内部メモリを保護する役割を果たす。特に、PKUは内部メモリに対するハードウェア保護メカニズムとして、その保護粒度がスレッドレベルに達することができる。本開示の実施形態によれば、制御ユニット104は、第1の記憶ユニット102、第2の記憶ユニット103及び複数のモジュール101-1~101-4に通信可能に接続することができ、且つ第2の記憶ユニット103に記憶されている識別情報及び権限情報に基づいて複数のモジュール101-1~101-4による第1の記憶ユニット102に対する読み取り操作及び/又は書き込み操作を制御することができる。
【0030】
本開示の実施形態によれば、制御ユニット104は、例えば、内部メモリ管理ユニット(Memory Management Unit、MMU)として実現されてもよい。MMUはCPUの内部メモリアクセスリクエストの処理を担当するコンピュータハードウェアであり、その機能は仮想アドレスから物理アドレスへの変換、内部メモリ保護、中央処理装置キャッシュメモリの制御などを含む。
【0031】
次に、図2を参照して第1の記憶ユニット102が内部メモリで、第2の記憶ユニット103がPKRUで、制御ユニット104がMMUで、且つ複数のモジュール101-1~101-4がCPUにより実行されるスレッドであることを例としてシステム100の操作例を説明する。しかしながら、当業者であれば理解できるように、本開示の実施形態は、これに限定されるものではない。当業者は本開示の教示に基づいて、複数のモジュールの間にデータを伝送するためのシステムを実現できる他の実施形態を想到し得る。
【0032】
図2に示すように、複数のモジュール101-1~101-4のうちモジュール101-1は第1の記憶ユニット102にデータを書き込んで第1の記憶ユニット102を介してデータを伝送する必要があり、そのため、データを第1の記憶ユニット102に書き込む書き込みリクエストを制御ユニット104に送信する。例えば、モジュール101-1は、CPUにより実行されるセンサプロセスであってもよく、センサが収集したデータを、当該データを処理するアルゴリズムノードに送信するために用いられる。例えば、モジュール101-3はCPUにより実行される運転速度制御プロセスであってもよく、その制御アルゴリズムの実行中のあるノードはセンサプロセスから書き込まれたデータを呼び出す必要がある。
【0033】
そして、例えばMMUとして実現される制御ユニット104は、例えばPKRUとして実現される第2の記憶ユニット103に記憶されているモジュール101-1の識別情報に基づいて、モジュール101-1を認証し、且つ第2の記憶ユニット103に記憶されているモジュール101-1の権限情報に基づいて、モジュール101-1による、例えば内部メモリとして実現される第1の記憶ユニット102に対する書き込み操作を許可するか否かを決定する。
【0034】
一例として、上述したように、PKUは、強制的にページテーブルに基づくようにさせるために用いられるがページテーブルを修正する必要がない内部メモリ権限制御を提供する。PKUはページテーブルにおける以前に使われなかった4つのビットによって16個の暗号化キーを提供し、この16個の暗号化キーは識別情報として、例えば自動運転システムにおけるレーザレーダーセンサプロセス、ミリ波レーダーモジュールプロセス、撮像センサプロセス、運転速度制御プロセス、運転方向制御プロセス又は経路決定プロセスなど16個のプロセスに割り当てられる。これら16個の暗号化キーの値は固定したものである。それに応じて、ある暗号化キーを持つプロセスが作成したページはいずれも当該暗号化キーの数値を持つ。16個の暗号化キーの値は、プロセスの識別情報として、例えば、PKRUとして実現される第2の記憶部103に記憶することができ、複数のモジュール(例えば、プロセス)101-1~101-4にアクセスされることができない。
【0035】
また、第2の記憶ユニット103として機能するPKRUには、16個の暗号化キーにそれぞれ対応するプロセスに関する読み取り権限及び書き込み権限が記憶されている。制御ユニット104として機能するMMUが、仮想アドレスと物理アドレスとの間の翻訳を行う際に、PKUで保護されているページに出会った場合、対応するプロセスの読み込み権限及び書き込み権限を確認するために、PKRUを問い合わせる必要がある。PKRUは、16個の暗号化キー(プロセス)の読み取り権限及び書き込み権限にそれぞれ対応する2つのビットを含む32ビットのレジスタを含む。例えば、「00」は他のプロセスが読み取り、又は書き込むことができないことを示し、「01」は他のプロセスが読み取ることができるが、他のプロセスが書き込むことができないことを示し、「10」は他のプロセスが書き込むことができるが、他のプロセスが読み取ることができないことを示し、「11」は他のプロセスが読み取り、書き込むことができることを示す。例えば、PKRUに記憶されている、モジュール101-1に対応する権限情報は「01」で、モジュール101-1(例えば、レーザレーダーセンサプロセス)が第1記憶部102に書き込んだデータを、他のプロセスが読み取ることができるが、他のプロセスが書き込むことができないことを示してもよい。
【0036】
具体的には、アルゴリズムノードの共有内部メモリ通信チャネルを確立する前に、PKU許可によって、共有内部メモリへのデータ書き込みを要求するプロセスのために、PKUの書き込み権限を与え、データ書き込みの完了後に書き込み権限を停止する。PKU許可の具体的なプロセスは以下のとおりであり、書き込みプロセスがPKUに保護されるキーメモリページにアクセスする時、MMUによってページフォールトをトリガし、それによりPKUの所在位置の検査をトリガし、PKRUレジスタに記憶されている暗号化キー及び権限を検査することによって、当該書き込みプロセスが対応する共有メモリページに書き込むことを許可されるか否かを決定することができる。
【0037】
ページフォールトは本質的に内部メモリアドレスが変換できないことによる異常であり、異常処理メカニズムが介入して回復させる必要がある。ページフォールトの原因としては、アクセス対象の内部メモリアドレスに関する権限がないこと(例えば、低権限ユーザが高権限ユーザの保持するアドレスにアクセスしようとしていること)、アクセス対象の内部メモリアドレスが物理ページから読み取られていないこと(例えば、読み取った物理ページがページフォールトによりトリガされること)などが挙げられる。実際には、PKUは、権限なしによるページフォールトとみなすことができ、当該権限はキーアドレスにアクセスしようとするプロセスが強制的にページフォールトをトリガさせられることを引き起こし、それにより任意のプロセスがキーアドレスに本当に接触する前に必ず認証をパスしなければならない。
【0038】
要すると、本開示の実施形態によれば、共有メモリに対するアクセス権限の保護をハードウェア層から提供することが可能となり、それにより悪意のある内部メモリデータの改ざんを防止する技術的効果が得られる。
【0039】
その後、本開示の実施形態によれば、例えばMMUのような制御ユニット104が、モジュール101-1による第1の記憶ユニット102に対する書き込み操作の実行を許可し、且つ第1の記憶ユニット102に対して書き込み操作を実行している他のモジュールがないと決定した場合、モジュール101-1は、データを第1の記憶ユニット102に書き込む。
【0040】
本開示の実施形態によれば、モジュール101-1が第1の記憶ユニットに対する書き込み操作を完了すると、制御ユニットにその書き込み操作が完了したことを通知する。例えば、センサプロセスが共有内部メモリに対するデータの書き込みを完了すると、PKUはセンサプロセスの書き込み権限を停止する。
【0041】
また、図2に示すように、モジュール101-3は、モジュール101-1によって書き込まれたデータを第1の記憶ユニット102から読み取ることができる。例えば、モジュール101-3は、CPUにより実行される運転速度制御プロセスであってもよく、その制御アルゴリズムの実行中に、あるノードが、例えば、センサプロセスからモジュール101-1によって書き込まれたデータを呼び出す必要がある。
【0042】
具体的には、モジュール101-3は、第1の記憶ユニット102を読み取る読み取りリクエストを制御ユニット104に送信し、制御ユニット104は、第2の記憶ユニット103に記憶されているモジュール101-3の識別情報に基づいて、モジュール101-3を認証し、且つ第2の記憶ユニット103に記憶されているモジュール101-3の権限情報に基づいて、モジュール101-3による第1の記憶ユニット102に対する読み取り操作の実行を許可するか否かを決定する。第2の記憶ユニット103に記憶されている識別情報及び権限情報に基づいてモジュール101-3を認証するプロセスは、上記したモジュール101-1を認証するプロセスと類似し、モジュール101-1が書き込み権限を有するが、モジュール101-3が読み取り権限のみを有する点のみに違いがあるため、簡潔のために、本明細書はモジュール101-3の認証過程について繰り返し説明しない。
【0043】
本開示の実施形態によれば、制御ユニット104がモジュール101-3による第1の記憶ユニット102に対する書き込み操作の実行を許可し、且つ第1の記憶ユニット102に対して読み取り操作を実行している他のモジュールがないと決定した場合、モジュール101-3は、第1の記憶ユニット102からデータを読み取る。
【0044】
本開示の実施形態によれば、書き込みモジュール101-1及び101-2と、読み取りモジュール101-3及び101-4との間の権限分離は、例えば読み書きロック又はリングバッファ(Ring Buffer)のような論理コードメカニズムによって実現されてもよい。読み書きロックはオペレーティングシステムによって提供されるロック機構のインタフェースであり、通常、全体的にアクセス可能な値によって読み書きロックが存在するか否かを判定し、例えば、値の「0」は読み書きロックが利用可能であることを示し、「0」よりも大きい値は読み書きロックが他のプロセスに使用されていることを示す。具体的には、読み書きロックの取得を試みることで、それが利用可能であるか否かを判断することができ、読み書きロックが利用不可能な場合、プロセスは読み書きロックの取得を待つ。
【0045】
また、リングバッファは、バッファメモリの先頭と末尾を連結して形成されるため、リングバッファには、先頭と末尾の概念がなく、すなわちリングバッファのどこからも順次書き込みが可能であり、バッファメモリユニットに対して操作を行って現在書き込む予定の位置を取得するだけで、読み取り操作及び書き込み操作が可能となり、それによりロックなしの内部メモリアクセスが実現される。読み書きロック及びリングバッファのメカニズム及び原理に基づいて、当業者は、本開示の教示に従って、書き込みモジュールと読み取りモジュールとの間の権限分離の実現形態を自己設定することができ、本開示では、これについて限定しない。本開示の実施形態によれば、効率を向上させるために、例えば共有内部メモリとして実現された第1の記憶ユニット102を階層的形態で保護することができ、そのうち、第1の階層は例えば読み書きロックを用いて、読み取りモジュール及び書き込みモジュールの読み取り権限及び書き込み権限を分離し、第2の階層は例えばPKUを用いて、書き込みモジュール間の書き込み権限管理を保護する。これについては、以下、図4及び図5に合わせてより詳細に説明する。
【0046】
上記階層的保護形態により、本開示の実施形態によれば、モジュール101-2(本明細書では「第3のモジュール」とも呼ばれる)が第1の記憶ユニット102に対して書き込み操作を実行している場合、モジュール101-2による書き込み操作が完了するまで、制御ユニット104は、モジュール101-1による第1の記憶ユニット101に対する書き込み操作の実行、及びモジュール101-3と101-4による第1の記憶ユニット102に対する読み取り操作の実行を許可しない。
【0047】
また、本開示の実施形態によれば、複数のモジュール101-1~101-4の各々による第1の記憶ユニット102に対する読み取り操作及び/又は書き込み操作は、対応する優先度を有することができ、制御ユニット104は、優先度に基づいて複数のモジュール101-1~101-4による第1の記憶ユニット102に対する読み取り操作及び/又は書き込み操作の時間的順序を並び替えることができる。
【0048】
例えば、自動運転システムのシーンでは、自動運転システムにおける異なるスレッドの重要性は異なる可能性があり、いくつかのデータはキーなので、すぐに応答しなければならない。例えば、カメラセンサ又はレーザレーダーセンサが、走行経路上に突然現れる歩行者又は障害物を検知した場合、カメラセンサプロセス又はレーザレーダーセンサプロセスの検知データを共有内部メモリに書き込む優先度が最も高いはずである。それに対応して、運転速度制御プロセスが当該検知データを読み取る優先度も最も高いはずである。
【0049】
それに対応して、本開示の実施形態によれば、第2の記憶ユニット103は、複数のモジュール101-1~101-4による第2の記憶ユニット103に対する読み取り操作及び/又は書き込み操作の優先度を記憶するように構成することができ、制御ユニット104は、優先度に基づいて複数のモジュール101-1~101-4による第1の記憶ユニット102に対する読み取り操作及び/又は書き込み操作の時間的順序を並び替えることができる。
【0050】
図3は本開示の実施形態による複数のモジュールの間にデータを伝送するための方法300を示すフローチャートである。
【0051】
本開示の実施形態によれば、方法300は、
複数のモジュールのうちの第1のモジュールは、データを第1の記憶ユニットに書き込む書き込みリクエストを送信するステップであって、第1の記憶ユニットは複数のモジュールの間に伝送されるデータを記憶するために用いられるステップS301と、
制御ユニットは、第2の記憶ユニットに記憶されている第1のモジュールの識別情報に基づいて第1のモジュールを認証し、また第2の記憶ユニットに記憶されている第1のモジュールの権限情報に基づいて第1のモジュールによる第1の記憶ユニットに対する書き込み操作の実行を許可するか否かを決定するステップであって、第2の記憶ユニットは複数のモジュールの識別情報及び複数のモジュールによる第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作の権限情報を記憶するために用いられるステップS302と、
第1のモジュールによる第1の記憶ユニットに対する書き込み操作の実行を許可し、且つ第1の記憶ユニットに対して書き込み操作を実行している他のモジュールがないと決定した場合、第1のモジュールは、データを第1の記憶ユニットに書き込むステップS303と、
複数のモジュールのうちの第2のモジュールは第1の記憶ユニットから第1のモジュールにより書き込まれたデータを読み取るステップS304と、を含む。
【0052】
本開示の実施形態によれば、ステップS301~S304の処理は、例えば、以上、図1及び図2を参照して説明されたシステム100により実現することができ、したがって、本明細書でではその詳細を繰り返し説明しない。
【0053】
図4は本開示の実施形態による共有メモリに書き込む方法400の例を示すフローチャートである。
【0054】
本開示の実施形態によれば、図4に示すように、方法400はステップS401から始まる。次に、ステップS402において、書き込みモジュール(例えば、上記したレーザレーダーセンサプロセスとして実現されたモジュール101-1)は、書き込む予定の第1の記憶ユニット(例えば、上記した共有内部メモリとして実現された第1の記憶ユニット102)に対応する読み書きロックが利用可能であるか否かを検査する。読み書きロックが利用できない場合(ステップS402における「ノー」)、ステップS403において書き込みモジュールはスリープ状態となり、ウェイクアップを待つ。読み書きロックが利用可能である場合(ステップS402における「イエス」)、ステップS404において書き込みモジュールは読み書きロックを取得する。次に、ステップS405において、書き込みモジュールは、第1の記憶ユニットへの書き込みを要求する。本開示の実施形態によれば、書き込みモジュールの書き込みリクエストが制御モジュール(例えば、上記したMMUとして実現された制御モジュール104)に到達すると、ステップS406において、(例えば、ページフォールトをトリガすることによって)第2の記憶ユニット(例えば、上記したPKRUとして実現された第2の記憶ユニット103)に記憶されている識別情報及び権限情報に基づいて、書き込みモジュールが第1の記憶ユニットに書き込む権限を有するか否かを認証する(例えば、上記したPKU許可を有するか否かを検査する)。書き込みモジュールが書き込み権限を有しない場合(ステップS406における「ノー」)、ステップS407において書き込みモジュールによる第1の記憶ユニットに対する書き込み操作を拒否し、且つ方法400はステップS409に進む。書き込みモジュールが書き込み権限を有する場合(ステップS406における「イエス場合」)、ステップS408において書き込みモジュールはデータを第1の記憶ユニットに書き込む。そして、ステップS409において、書き込みが完了した後、書き込みモジュールは、読み書きロックを解除する。また、ステップS409において、ウェイクアップを待つ他の書き込みモジュールが存在する場合、他の書き込みモジュールをウェイクアップする。最後に、方法400はステップS410で終了する。
【0055】
本開示の実施形態によれば、書き込みモジュールが第1の記憶ユニット(例えば、共有内部メモリ)に書き込む書き込み権限を有し、書き込みモジュールの間に第1の記憶ユニットに記憶されているデータを、悪意をもって破壊する可能性があるため、読み書きロックを利用して分離を実現する第1の階層の保護の上で、さらに第2の階層の保護を使用し、すなわち、例えばPKRUとして実現された第2の記憶ユニットを利用して書き込みモジュールの書き込み権限を管理することにより、第1の記憶ユニットにおけるキーデータが存在可能な他の悪意あるモジュールにより改ざん又は破損されることができず、データ伝送全体の安全性を向上させる。
【0056】
図5は本開示の実施形態による共有メモリから読み取る方法500の例を示すフローチャートである。
【0057】
本開示の実施形態によれば、図5に示すように、方法500はステップS501から始まる。次に、ステップS502において、読み取りモジュール(例えば、上記した運転速度制御プロセスとして実現されたモジュール101-3)は読み取る予定の第1の記憶ユニット(例えば、上記した共有内部メモリとして実現された上記第1の記憶ユニット102)に対応する読み書きロックが利用可能であるか否かを検査する。読み書きロックが利用できない場合(ステップS502における「ノー」)、ステップS502において書き込みモジュールはスリープ状態となり、ウェイクアップを待つ。読み書きロックが利用可能である場合(ステップS502における「イエス」)、ステップS504において書き込みモジュールは読み書きロックを取得する。次に、ステップS505において、書き込みモジュールは、第1の記憶ユニットに記憶されているデータを読み取る。そして、ステップS506において、書き込み操作が完了した後、書き込みモジュールは、読み書きロックを解除する。また、ステップ506において、ウェイクアップを持つ他の読み取りモジュールが存在する場合、他の読み取りモジュールをウェイクアップする。最後に、方法500はステップS507で終了する。
【0058】
本開示の実施形態によれば、読み取りモジュールが第1の記憶ユニット(例えば、共有内部メモリ)に書き込む書き込み権限を有せず、第1の記憶ユニットに記憶されているデータを破壊するおそれがないため、本開示の実施形態によれば、読み取りモジュールが第1の記憶ユニットに対して読み取り操作を実行する時、第1の階層の保護のみを使用することができ、すなわち、読み書きロックを利用して分離を実現し、それにより読み取り効率を向上させる。
【0059】
図6は本開示の実施形態による複数のモジュールの間にデータを伝送するためのシステム100及び方法300を実現するために用いることができる汎用機器600を示す構造概略図である。汎用機器600は、例えば、コンピュータシステム又はコンピューティング装置であってもよい。汎用機器600は一例に過ぎず、本開示のシステム及び方法の使用範囲又は機能に対する限定を示唆するものではないことに留意されたい。汎用機械600は、上記のシステム又は方法において示される構成要素のいずれか、又はそれらの組み合わせに依存する、又は必要とすると解釈されるべきではない。
【0060】
図6において、中央処理ユニット(CPU)601は読み取り専用メモリ(ROM)602に記憶されているプログラム又は記憶部分608からランダムアクセスメモリ(RAM)603にロードされたプログラムに従って各種の処理を実行する。RAM603には、CPU601が各種の処理を実行するなどのときに必要なデータがさらに適宜記憶されている。CPU601、ROM602、及びRAM603は、バス604を介して相互に接続されている。入力/出力インタフェース605もバス604に接続されている。
【0061】
入力/出力インタフェース605にはさらに、入力部分606(キーボード、マウスなどを含む)、出力部分607(陰極線管(CRT)、液晶ディスプレイ(LCD)などのディスプレイ、スピーカーなどを含む)、記憶部分608(ハードディスクなどを含む)、通信部分609(LANカードのようなネットワークインタフェースカード、モデムなどを含む)が接続されている。通信部分609は、インターネットなどのネットワークを介して通信処理を行う。必要に応じて、ドライブ610は入力/出力インタフェース605に接続されてもよい。ドライブ610には、必要に応じて磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどのリムーバブルメディア611がインストールされ、それらから読み取ったコンピュータプログラムは、必要に応じて記憶部分608にインストールされることができる。
【0062】
上述した一連の処理をソフトウェアにより実現する場合に、そのソフトウェアを構成するプログラムは、インターネットなどのネットワークや、リムーバブルメディア611などの記憶媒体からインストールすることができる。
【0063】
なお、このような記憶媒体は、図6に示されるように、プログラムが記憶されており、機器本体とは別に配布されてユーザにプログラムを提供するリムーバブルメディア611に限定されるものではないことは、当業者には理解されるところである。リムーバブルメディア611の例として、磁気ディスク(フレキシブルディスクを含む)、光ディスク(光ディスク読み取り専用メモリ(CD-ROM)及びデジタル汎用ディスク(DVD)を含む)、光磁気ディスク(ミニディスク(MD)(登録商標)を含む)及び半導体メモリを含む。又は、記憶媒体は、ROM602、記憶部分608に含まれるハードディスクなどであってもよく、それにはプログラムが記憶され、それを含む機器と共にユーザに配布される。
【0064】
また、本開示は、機械読み取り可能なコマンドコードが記憶されているプログラム製品をさらに提供する。前記コマンドコードが機械によって読み取られ実行されると、上記した本開示による複数のモジュールの間にデータを伝送するための方法を実行することができる。それに対応して、このようなプログラム製品を担持するために使用される上記で列挙した様々な記憶媒体も、本開示の範囲内に含まれる。
【0065】
また、本開示の実施例は、図7に示すように、メモリ701と、メモリと通信可能に接続される1つ又は複数のプロセッサ702とを含むコンピューティング機器700をさらに提供する。メモリ701には、1つ又は複数のプロセッサ702により実行されることが可能なコマンドが記憶されており、コマンドは、上記した複数のモジュールの間にデータを伝送するための方法を1つ又は複数のプロセッサ702に実現させるように、1つ又は複数のプロセッサ702により実行される。コンピューティング機器700はさらに、1つ又は複数の通信プロトコル(LTE、Wi-Fi、など)を実施できる通信インタフェース703を含む。
【0066】
以上、ブロック図、フローチャート、及び/又は実施形態により詳細に説明し、本発明の実施形態によるシステム及び/又は方法の具体的な実施形態を明らかにした。これらのブロック図、フローチャート、及び/又は実施形態が1つ又は複数の機能及び/又は操作を含む場合、これらのブロック図、フローチャート、及び/又は実施形態における機能及び/又は操作は、様々なハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせによって、個別に及び/又は集合的に実施されてもよいことが当業者には理解されるであろう。一実施形態において、本明細書に記載される主題のいくつかの部分は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、又は他の集積形態によって実現されてもよい。しかしながら、当業者は、本明細書に記載された実施形態のいくつかの態様の全て又は一部が、1つ又は複数のコンピュータ上で実行される1つ又は複数のコンピュータプログラムの形態(例えば、1つ又は複数のコンピュータシステム上で実行される1つ又は複数のコンピュータプログラムの形態)、1つ又は複数のプロセッサ上で実行される1つ又は複数のプログラムの形態(例えば、1つ又は複数のマイクロプロセッサ上で実行される1つ又は複数のプログラムの形態)、ファームウェアの形態、又は実質的にそれらの任意の組み合わせで、等価に実現されてもよく、本明細書に開示された内容に基づいて、本開示に用いる回路の設計及び/又は本開示のソフトウェア及び/又はファームウェアに用いるコードの作成が当業者の能力の範囲内にあることを自覚するであろう。
【0067】
本開示の複数のモジュールの間にデータを伝送するための技術によれば、ハードウェアとソフトウェアを組み合わせる形態で、例えば自動運転システムに用いられる共有メモリの安全性を保護し、すなわち従来のソフトウェア論理によって読み取り操作と書き込み操作の分離を実現する上で、ハードウェアメカニズムによって共有メモリに書き込む安全性をさらに確保し、共有メモリにおけるキーデータの改ざんを防止し、それによりデータ伝送の安全性を向上させる。
【0068】
本開示の実施形態による複数のモジュールの間にデータを伝送するためのシステム及び方法を、自動運転システムを例として説明したが、本開示はこれに限定されないことが、当業者には自覚されるであろう。本開示による複数のモジュールの間にデータを伝送するための技術は、ロボット制御システム、金融取引システムなど、共有メモリを介してデータを伝送する他のシーンにも適用でき、それらの全ては本開示の範囲内に含まれる。
【0069】
以上、本開示の具体的な実施形態に対する説明により本開示を開示したが、当業者は添付した特許請求の範囲の精神及び範囲内に本開示に対する核種の修正、改良又は等価物を設計できることを理解されたい。これらの修正、改良、又は等価物も本開示の保護範囲内に含まれると見なされるべきである。
【0070】
本開示は、以下の技術的解決手段も含むが、これらに限定されない。
【0071】
解決手段1において、複数のモジュールの間にデータを伝送するための方法であって、
前記複数のモジュールのうちの第1のモジュールは、データを第1の記憶ユニットに書き込む書き込みリクエストを送信するステップであって、前記第1の記憶ユニットは前記複数のモジュールの間に伝送されるデータを記憶するために用いられるステップと、
前記第2の記憶ユニットに記憶されている前記第1のモジュールの識別情報に基づいて前記第1のモジュールを認証し、また前記第2の記憶ユニットに記憶されている前記第1のモジュールの権限情報に基づいて前記第1のモジュールによる前記第1の記憶ユニットに対する書き込み操作の実行を許可するか否かを決定するステップであって、前記第2の記憶ユニットは前記複数のモジュールの識別情報及び前記複数のモジュールによる前記第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作の権限情報を記憶するために用いられるステップと、
前記第1のモジュールによる前記第1の記憶ユニットに対する書き込み操作の実行を許可し、且つ前記第1の記憶ユニットに対して書き込み操作を実行している他のモジュールがないと決定した場合、前記第1のモジュールは、データを前記第1の記憶ユニットに書き込むステップと、
前記複数のモジュールのうちの第2のモジュールは前記第1の記憶ユニットから前記第1のモジュールにより書き込まれたデータを読み取るステップと、を含む。
【0072】
解決手段2において、解決手段1に記載の方法であって、前記複数のモジュールは前記第2の記憶ユニットを読み取り、書き込むことができない。
【0073】
解決手段3において、解決手段1又は2に記載の方法であって、前記第1の記憶ユニットはメモリから構成され、且つ前記第2の記憶ユニットはレジスタから構成される。
【0074】
解決手段4において、解決手段1~3のいずれか一項に記載の方法であって、
前記第1のモジュールが前記第1の記憶ユニットに対する書き込み操作を完了すると、制御ユニットにその書き込み操作が完了したことを通知するステップをさらに含み、
ここで、前記制御ユニットは、前記第1の記憶ユニット、前記第2の記憶ユニット及び前記複数のモジュールに接続され、且つ前記第2の記憶ユニットに記憶されている識別情報及び権限情報に基づいて前記複数のモジュールによる前記第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作を制御する。
【0075】
解決手段5において、解決手段1~4のいずれか一項に記載の方法であって、
前記第2のモジュールは、前記第1の記憶ユニットを読み取る読み取りリクエストを前記制御ユニットに送信するステップと、
前記第2の記憶ユニットに記憶されている前記第2のモジュールの識別情報に基づいて前記第2のモジュールを認証し、また前記第2の記憶ユニットに記憶されている前記第2のモジュールの権限情報に基づいて前記第2のモジュールによる前記第1の記憶ユニットに対する読み取り操作の実行を許可するか否かを決定するステップと、
前記第2のモジュールによる前記第1の記憶ユニットに対する読み取り操作の実行を許可し、且つ前記第1の記憶ユニットに対して書き込み操作を実行している他のモジュールがないと決定した場合、前記第2のモジュールは、前記第1の記憶ユニットからデータを読み取るステップと、を含む。
【0076】
解決手段6において、解決手段5に記載の方法であって、前記第2のモジュールの数は少なくとも2つである。
【0077】
解決手段7において、解決手段1~6のいずれか一項に記載の方法であって、
前記複数のモジュールはさらに第3のモジュールを含み、また、ここで、
前記第3のモジュールが前記第1の記憶ユニットに対して書き込み操作を実行しているとき、前記第3のモジュールの書き込み操作が完了するまで、前記第1のモジュールによる前記第1の記憶ユニットに対する書き込み操作の実行及び前記第2のモジュールによる前記第1の記憶ユニットに対する読み取り操作の実行を許可しない。
【0078】
解決手段8において、解決手段1~7のいずれか一項に記載の方法であって、前記複数のモジュールの各々による前記第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作は対応する優先度を有し、また、
前記方法はさらに、前記優先度に基づいて前記複数のモジュールによる前記第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作の時間的順序を並び替えるステップを含む。
【0079】
解決手段9において、解決手段1~8のいずれか一項に記載の方法であって、前記第2の記憶ユニットはさらに、前記複数のモジュールによる前記第1の記憶ユニットに対する読み取り操作及び/又は書き込み操作の優先度を記憶するように構成される。
【0080】
解決手段10において、解決手段1~9のいずれか一項に記載の方法であって、前記方法は、自動運転システムに含まれるレーザレーダーモジュール、ミリ波レーダーモジュール、カメラモジュール、運転速度制御モジュール、運転方向制御モジュール及び経路決定モジュールの間にデータを伝送するために用いられる。
【0081】
解決手段11において、プロセッサ及びメモリを含む電子機器であって、前記メモリにプログラムが記憶され、前記プログラムが前記プロセッサにより実行されるとき、解決手段1~10のいずれか一項に記載の方法を前記プロセッサに実行させる。
図1
図2
図3
図4
図5
図6
図7