JP6559777B2 - 自律走行車における処理ノードのデータフローを管理する方法、装置及びシステム - Google Patents

自律走行車における処理ノードのデータフローを管理する方法、装置及びシステム Download PDF

Info

Publication number
JP6559777B2
JP6559777B2 JP2017515244A JP2017515244A JP6559777B2 JP 6559777 B2 JP6559777 B2 JP 6559777B2 JP 2017515244 A JP2017515244 A JP 2017515244A JP 2017515244 A JP2017515244 A JP 2017515244A JP 6559777 B2 JP6559777 B2 JP 6559777B2
Authority
JP
Japan
Prior art keywords
node
memory segment
processing node
global memory
local memory
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
Application number
JP2017515244A
Other languages
English (en)
Other versions
JP2018531436A (ja
JP2018531436A5 (ja
Inventor
チュエン ワン
チュエン ワン
リミン シャ
リミン シャ
ジンチャオ フォン
ジンチャオ フォン
ニン チュ
ニン チュ
ジェームス ペン
ジェームス ペン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu com Times Technology Beijing Co Ltd
Baidu USA LLC
Original Assignee
Baidu com Times Technology Beijing Co Ltd
Baidu USA LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Baidu com Times Technology Beijing Co Ltd, Baidu USA LLC filed Critical Baidu com Times Technology Beijing Co Ltd
Publication of JP2018531436A publication Critical patent/JP2018531436A/ja
Publication of JP2018531436A5 publication Critical patent/JP2018531436A5/ja
Application granted granted Critical
Publication of JP6559777B2 publication Critical patent/JP6559777B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/14Adaptive cruise control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Business, Economics & Management (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Game Theory and Decision Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Mechanical Engineering (AREA)
  • Transportation (AREA)
  • Traffic Control Systems (AREA)
  • Multi Processors (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

本発明の実施形態は大体自律走行車の操作に関する。より具体的には、本発明の実施形態は、自律走行車を操作するための計算ノードにおける効果的な通信に関する。
自律走行車は通常に手動モード又は自律モードで操作することができる。手動モードで操作する車両は運転者の入力に応答する。自律モードで操作される場合、車両は、車載センサを利用して様々な位置に導かれることができ、それによってヒューマンインタラクションが最小限の状況で、又は搭乗者がいない状況で車両走行を可能にする。自律モード(例えば、無人運転)で操作される車両は乗員、特に運転者を運転関連作業から解放させることを可能にする。
従来の車両に比べると、自律運転車両自体としては、計算能力に対し高く要求される。通常に、自律走行車コンピュータの内部アーキテクチャーにおいては、自律走行の各種タスク(例えば、センサプロセス、感知、企画及び制御)に用いられるプログラムを含む複数のノードと、前記ノードとリングし、相互に興味のあるテーマに対しデータを転送する通信チャンネルと、を含む。
自律走行車の実用性、ユーザ体験及び安全性は、エンド・ツー・エンド計算のリアルタイム性能に依存するところが大きいため、ノードにおける通信性能に対する要求も非常に高い。典型的の需要においては、高いスループット(特にデータチャンネルに対する)と、低いタイムディレイ(特にチャンネルの制御に対する)と、低いプロセッサ占用(processor occupation)と、低いメッセージロス率(message drop rate)と、他の拡張機能(例えば、プロトコール柔軟の通信スピードの能力)と、を含むが、それに限らない。
通信メカニズムと間接的に関連する他の要求は、プログラム/プロセスアイソレーション及び資源管理を含み、プログラム/プロセスアイソレーション及び資源管理は、システムのロバスト性及び安定性を改善させる。通常のアーキテクチャーはこのような要求を満足させることができない。
本発明の実施形態は、自律走行車における処理ノードのデータストリームを管理するためのコンピュータ実施方法、自律走行車における処理ノードのデータストリームを管理するための装置及びデータ処理システムを提供する。
本発明の様態において、自律走行車における処理ノードのデータストリームを管理するためのコンピュータ実施方法を提供し、この方法は、第1処理ノードから第1要求を受信して、別の処理ノードによって購読(サブスクライブ)されるべき第1通信テーマを表示する第1データストリームのデータブロックを生成し、ここで、前記第1処理ノードは複数処理ノードの一つであり、各処理ノードは、自律走行車を操作する特定機能を処理し、且つ、ここで、それぞれの前記処理ノードは、特定操作環境を有する特定ノードコンテナにおいて実行されるステップと、前記第1要求に応答し、グローバルメモリから第1グローバルメモリセグメントを分配して前記第1データストリームの前記データブロックを記憶するステップと、第1ローカルメモリセグメントを前記第1グローバルメモリセグメントにマッピングし、前記第1ローカルメモリセグメントは第1ノードコンテナの第1ローカルメモリから分配され、前記第1ノードコンテナは前記第1処理ノードを含み、ここで、前記第1処理ノードは、前記第1ノードコンテナにおいてマッピングされた第1ローカルメモリセグメントをアクセスすることにより、前記第1グローバルメモリセグメントに記憶される前記第1データストリームの前記データブロックを直接にアクセスするステップと、を含む。
もう一つの様態において、自律走行車における処理ノードのデータストリームを管理する装置を提供し、この装置は、第1処理ノードから第1要求を受信して、別の処理ノードによって購読されるべき第1通信テーマを表示する第1データストリームのデータブロックを生成し、ここで、前記第1処理ノードは複数処理ノードの一つであり、各処理ノードは、自律走行車を操作する特定機能を処理し、且つ、ここで、それぞれの前記処理ノードは、特定操作環境を有する特定ノードコンテナにおいて実行されるユニットと、前記第1要求に応答し、グローバルメモリから第1グローバルメモリセグメントを分配して前記第1データストリームの前記データブロックを記憶するユニットと、第1ローカルメモリセグメントを前記第1グローバルメモリセグメントにマッピングし、前記第1ローカルメモリセグメントは第1ノードコンテナの第1ローカルメモリから分配され、前記第1ノードコンテナは前記第1処理ノードを含み、ここで、前記第1処理ノードは、前記第1ノードコンテナにおいてマッピングされた第1ローカルメモリセグメントをアクセスすることにより、前記第1グローバルメモリセグメントに記憶される前記第1データストリームの前記データブロックを直接にアクセスするユニットと、を含む。
さらにもう一つの様態において、データ処理システムを提供し、このデータ処理システムは、プロセッサと、前記プロセッサに接続されて命令を記憶する記憶装置と、を含み、前記命令が前記プロセッサにより実行される場合、自律走行車における処理ノードのデータストリームの操作を処理することを前記プロセッサにより実行させ、前記操作は、第1処理ノードから第1要求を受信して、別の処理ノードによって購読されるべき第1通信テーマを表示する第1データストリームのデータブロックを生成し、ここで、前記第1処理ノードは複数処理ノードの一つであり、各処理ノードは、自律走行車を操作する特定機能を処理し、且つ、ここで、それぞれの前記処理ノードは、特定操作環境を有する特定ノードコンテナにおいて実行されるステップと、前記第1要求に応答し、グローバルメモリからグローバルメモリセグメントを分配して前記第1データストリームの前記データブロックを記憶するステップと、第1ローカルメモリセグメントを前記グローバルメモリセグメントにマッピングし、前記第1ローカルメモリセグメントは第1ノードコンテナの第1ローカルメモリから分配され、前記第1ノードコンテナは前記第1処理ノードを含み、ここで、前記第1処理ノードは、前記第1ノードコンテナにおいてマッピングされた第1ローカルメモリセグメントをアクセスすることにより、前記グローバルメモリセグメントに記憶される前記第1データストリームの前記データブロックを直接にアクセスするステップと、を含む。
本出願の実施形態は、図面の各図に例として非限定的に示され、図面における同一符号は、類似の構成要素を示す。
本発明の一実施形態に係るネットワーク化システムを示すブロック図である。 本発明の一実施形態に係る自律走行車を示すブロック図である。 本発明の一実施形態に係る、自律走行車と共に使用されてもよいデータ処理システムのブロック図である。 本発明の一実施形態に係るグローバルメモリセグメントの実施例のブロック図である。 本発明の一実施形態に係るセグメントメタデータを記憶するためのデータ構造を示すブロック図である。 本発明の一実施形態に係るデータブロックのインデックスのデータ構造を示すブロック図である。 本発明の一実施形態に係る自律走行車を操作するメモリ管理のプロセスを示すフローチャートである。 本発明のもう一実施形態に係る自律走行車を操作するメモリ管理のプロセスを示すフローチャートである 本発明のもう一実施形態に係る自律走行車を操作するメモリ管理のプロセスを示すフローチャートである。 一実施形態に係るデータ処理システムを示すブロック図である。
以下、説明の詳細を参照しながら、本出願の様々な実施形態及び方法を説明し、図面は、前記様々な実施形態を示す。以下の説明及び図面は、本出願を説明するためのものであり、本出願を限定するものではない。本出願の様々な実施形態を完全に把握するために、多数の特定の詳細を説明する。なお、いくつかの例では、本出願の実施形態に対する簡単な説明を提供するために、周知又は従来技術の詳細について説明していない。
本明細書では「一実施形態」又は「実施形態」とは、当該実施形態について組み合わせて説明された特定特徴、構造又は特性が、本出願の少なくとも一実施形態に含まれてもよい。フレーズ「一実施形態では」は、本明細書全体において同一実施形態を指すとは限らない。
いくつかの実施形態によれば、自律走行車内の処理ノードにおいて効率の高いメカニズムが利用され、ここで、前記通信メカニズムは、前記処理ノードを含むノードコンテナにおける共用するメモリセグメントに基づくものである。新しい通信メカニズムは、性能及び安定性要素の面において、従来方法より優れた大きな利点を提供する。一実施形態において、それぞれのコンピューティングタスクは、独立のノードコンテナ(例えば、バーチャルマシン)にホストされる処理ノードにより実行され、プロセスの形態で実行されてもよく、異なるルートディレクトリーを有したり、さらに隔離されたりする。つまり、システムの安定性と信頼性を維持することができる。通信メカニズムは、共用するグローバルメモリセグメントを、ノード間の通信の基礎として管理する。異なるノードコンテナにおいて、同一テーマに対して興味を持つ複数の配信者及び購読者は、各自のローカルメモリアドレス空間にマッピングされる共用するグローバルメモリをアクセスすることによって、データを送受信し、それにより、より高い安定性及び高い信頼性を実現することが可能になる。
一実施形態においては、生産者ノードとする第1処理ノードから第1要求を受信することによって、別の処理ノードが購読しようとする通信テーマに関連するデータストリームのデータブロックを生成したり発表したりする場合、グローバルメモリからグローバルメモリセグメントが分配されて前記データストリームのデータブロックを記憶する。第1処理ノードは、自律走行車を操作するデータ処理システムにおいて実行される複数の処理ノードの一つである。それぞれの処理ノードは、自律走行車を操作するための特定機能を実行するように設置されてもよい。安定性、信頼性及び安全性を実現するために、それぞれの前記処理ノードは、独立の操作環境を有するノードコンテナ(例えば、バーチャルマシン)において実行される。グローバルメモリセグメントが第1データストリームに分配されたと、第1ローカルメモリから第1ローカルメモリセグメントを分配することができ、前記第1ローカルメモリは、第1処理ノードを含む第1ノードコンテナと関連付けられる。
そして、第1ローカルメモリセグメントを、グローバルメモリのグローバルメモリセグメントにマッピングすることにより、第1処理ノードがマッピングされた第1ローカルメモリセグメントを介し、第1データストリームのデータブロックをアクセスすることができる。言い換えれば、グローバルメモリセグメントのグローバルメモリアドレス空間は、第1ノードコンテナのローカルメモリアドレス空間にマッピングされる。第1処理ノードは、第1ノードコンテナとグローバルメモリとの間にセキュリティの脆弱性がない状況で、第1ノードコンテナにおいてマッピングされた第1ローカルメモリセグメントを簡単にアクセスすることで、グローバルメモリセグメントにおけるデータブロックをアクセスする。
そして、一実施形態に基づいて、購読者ノードとする第2処理ノードから第2要求を受信して第1データストリームを購読する時に、第2処理ノードを含む第2ノードコンテナと関連する第2ローカルメモリから第2ローカルメモリセグメントを分配する。そして、第2ローカルメモリセグメントをグローバルメモリセグメントにマッピングすることにより、第2処理ノードは、第2ノードコンテナとグローバルメモリとの間にセキュリティの脆弱性がない状況で、第2ノードコンテナにおいてマッピングされた第2ローカルメモリセグメントを介して、グローバルメモリセグメント内に記憶されるデータブロックをアクセスする。第1ローカルメモリセグメント、第2ローカルメモリセグメント及びグローバルメモリセグメントは、異なるメモリ装置から分配されてもよく、その代わりに、それらは同一メモリ装置の異なるメモリリージョン又はエリアから分配されてもよい。一実施形態において、第1ローカルメモリセグメント、第2ローカルメモリセグメント及びグローバルメモリセグメントを、具体的に、ノードコンテナとメモリマネジャーのバーチャルメモリに分配される一部のバーチャルメモリセグメントとする。よって、処理ノードを単独のノードコンテナに含ませることにより、生産者ノードによって生成されたデータブロック及び購読者ノードによって購読されたデータブロックをアクセスする効率を大きく改善させるとともに、処理ノードにおける安定性、信頼性及び安全性を維持させることができる。
図1は本発明の一実施形態に係る自律走行車のネットワーク配置を示すブロック図である。図1に示されるように、ネットワーク配置100は、ネットワーク102を介して一つ又は複数のサーバ103〜104と通信可能に接続する自律走行車101を含む。一つの自律走行車を示したが、複数の自律走行車はネットワーク102を介して、相互に接続する及び/又はサーバ103〜104に接続する。ネットワーク102は任意のタイプのネットワークであってもよく、例えば、有線や無線のローカルエリアネットワーク(LAN)、及びインターネット、セルラーネットワーク、衛星ネットワークのようなワイドエリアネットワーク(WAN)、又はその組合せであってもよい。サーバ103〜104は、任意のタイプのサーバ又はサーバクラスター、例えばネットワーク又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ又はその組合せであってもよい。サーバ103〜104は、データ分析サーバ、コンテンツサーバ、交通情報サーバ、マップ及びポイントオブインタレスト(POI)サーバ又は位置サービスサーバなどである。
自律走行車は、自律走行モードに設定できる車両を指し、前記自律走行モードにおいて、運転者の入力が極めて少ない又はない状況で、車両は、環境を介してナビゲートする。このタイプの自律走行車は、センサシステムを含んでもよく、前記センサシステムが車両操作の環境に関係する情報を検出するように設置される一つ又は複数のセンサである。車両及び他の関連する制御装置は、検出した情報を用いて、当該環境を介してナビケートする。自律走行車101は、手動モード、完全自律走行モード又は一部自律走行モードで操作されることができる。
一実施形態において、自律走行車101は、データ処理システム110、車両制御システム111、無線通信システム112、ユーザインタフェースシステム113、情報エンタテインメントシステム114及びセンサシステム115を含むが、それらに限定されない。自律走行車101は、通常車両における汎用部品(例えば、エンジン、車輪、ハンドル、ギアボックスなど)をさらに含んでもよい、前記汎用部品は、車両制御システム111及び/又はデータ処理システム110が多種の通信信号及び/又は命令(例えば、加速信号又は命令、減速信号又は命令、転向信号又は命令、ブレーキ信号又は命令など)を使用することにより、制御されてもよい。
部品110〜115は、相互接続部材、バス、インターネット又はその組み合わせによって、通信可能に相互接続する。例えば、部品110〜115は、コントローラーエリアネットワーク(CAN)バスを介して通信可能に相互接続する。CANバスは車両バス標準であり、マイクロコントローラー及び装置は、ホストコンピュータがない場合のアプリケーションにおいて、相互に通信できるように設計される。それはメッセージに基づくプロトコールであり、一般的に車内用の多重多用電気配線用に設計されるが、他の状況に利用される場合ある。
図2を参照すれば、一実施形態において、センサシステム115は、一つ又は複数のカメラ211、全地球測位システム(GPS)ユニット212、慣性計測ユニット(IMU)213、レーダーユニット214及び光検出と測距(LIDAR)ユニット215を備えるが、それらに限定されない。GPSシステム212はトランシーバーを備えてもよく、前記トランシーバーは、自律走行車の位置に関する情報を提供するように操作されてもよい。ユニットIMU213は、慣性加速度に基づいて自律走行車の位置及び定向変化を感知することができる。レーダーユニット214は、無線電信信号を用いて自律走行車のローカル環境における対象を感知するシステムを示しもよい。いくつかの実施形態において、対象を感知するほかに、レーダーユニット214は、対象の速度及び/又は進行方向を感知することさらにできる。LIDARユニット215は、レーザーを用いて自律走行車の環境における対象を感知することもできる。LIDARユニット215は、他のシステム部品の中の一つ又は複数のレーザー源、レーザースキャナー及び一つ又は複数の検出器を備えることができる。カメラ211は、自律走行車の周辺環境の画像を撮影するための一つ又は複数の装置を備えることができる。カメラ211は、静的カメラ及び/又はビデオカメラであってもよい。カメラは、機械的に移動可能であってもよく、例えば、カメラを回転プラットホーム及び/又は傾斜プラットホームに取り付けられてもよい。
センサシステム115は、他のセンサをさらに備えてもよく、例えば、ソナーセンサ、赤外線センサ、転向センサ、スロットルセンサ、ブレーキセンサ及びオーディオセンサ(例えば、マイクロフォン)をさらに備えってもよい。オーディオセンサは、自律走行車の周辺環境の音声をキャプチャするように設置されてもよい。転向センサは、ハンドル、車両の車輪又はそれらの組み合わせの転向角度を感知するように設置されてもよい。スロットルセンサ及びブレーキセンサは、それぞれ車両のスロットル位置とブレーキ位置を感知する。いくつかの場合に、スロットルセンサ及びブレーキセンサは、集積化のスロットル/ブレーキセンサに統合されてもよい。
一実施形態において、車両制御システム111は、転向ユニット201、スロットルユニット202(加速ユニットとも称す)、ブレーキユニット203、コンピュータビジョンシステム204、ナビゲーションユニット205(ナビゲーション及び経路検索(pathing)又はナビゲーション/経路検索システムとも称す)及び衝突防止ユニット206(障害物回避システムとも称す)を備えるが、それらに限定されない。転向ユニット201は、車両の方向又は進行方向を調節する。スロットルユニット202は、モーター又はエンジンのスピードを制御し、従って、前記モーター又はエンジンは、車両の速度及び加速度を制御する。ブレーキユニット203は、摩擦を提供することにより、車両の車輪又はタイヤを遅くすることで車両を減速させる。
コンピュータビジョンユニット又はシステム204は、一つ又は複数のカメラ211によってキャプチャされた画像を処理、且つ分析することによって、自律走行車の環境における対象及び/又は特徴を識別する。前記対象は、交通信号、車路エージ、他の車両、通行人及び/又は障害物などを含んでもよい。コンピュータビジョンシステム204は、対象識別アルゴリズム、ビデオ追跡及び他のコンピュータビジョンテクノロジを利用することができる。いくつかの実施形態において、コンピュータビジョンシステム204は、環境マップの制作、対象の追跡、及び対象速度の推定などができる。
ナビゲーションユニット又はシステム205は、自律走行車の走行経路を決定する。例えば、ナビゲーションシステムは、自律走行車が大体最終目的地に導く車道経路に沿って前進するとともに、感知した障害物を基本的に回避するように一連の速度及び所定の前進方向を決定することができる。目的地はユーザインタフェースによるユーザ入力に基づいて設定されてもよい。ナビゲーションシステム205は自律走行車が走行していると同時に走行経路を動的に更新してもよい。ナビゲーションシステムは、GPSシステム及び1つ又は複数の地図からのデータを合併して自律走行車用の走行経路を決定する。
衝突防止ユニット又はシステム206は、自律走行車環境における潜在的障害物を識別、評価そして、回避或いは他の方法により迂回することができる。例えば、衝突防止システム206は、制御システムにおける1つ又は複数のサブシステムを操作して旋回動作、方向転換動作、ブレーキ動作等を行うように、自律走行車がナビゲーションにおける変化を遂行できる。衝突防止システム206は、周囲の交通モード、道路状況等に基づいて実現可能な障害物回避動作を自動的に決定することができる。衝突防止システム206は、自律走行車が旋回して入ろうとする、当該自律走行車に隣接する領域に位置する車両、建築障害物等を他のセンサシステムにより検出した場合に旋回動作を行わないように構成されてもよい。衝突防止システム206は、利用可能で自律走行車の搭乗者の安全性を最大化する動作を自動的に選択することができる。衝突防止装置206は、自律走行車の車室に最小の加速度をもたらすように予測された回避動作を選択してもよい。図2に示される部品は、ハードウェア、ソフトウェア、又はそれらの組み合わせで実施されてもよい。
もう一度図1を参照し、無線通信システム112は、自律走行車101が外部システム(例えば、装置、センサ、その他の車両など)との通信を許可する。例えば、無線通信システム112は、直接的に又は通信ネットワークを介して1つ又は複数の装置と無線で通信でき、例えば、ネットワーク102を介して、サーバ103〜104と通信する。無線通信システム112は、任意のセルラ通信ネットワーク又は無線LAN(WLAN)、例えばWiFi(登録商標)を用いて他の部品またシステムを通信してもよい。無線通信システム112は、例えば赤外リンク、ブルートゥース(登録商標)等を用いて装置(例えば、搭乗者の移動装置、ディスプレイ装置、車両101内のスピーカー)と直接通信できる。ユーザインタフェースシステム113は、車両101において取り付けられた外部装置の一部であってもよく、例えば、ーボード、タッチパネル装置、マイクロフォン及びスピーカーなどを含む。
特に、自律走行モードで操作される場合、自律走行車101の一部又は全部機能は、データシステム110によって制御又は管理されることができる。データシステム110は、必要となるハードウェア(例えば、プロセッサ、メモリ、メモリ装置)及びソフトウェア(例えば、操作システム、計画及びルーティングアプリケーション)を含み、前記ハードウェア及びソフトウェアは、センサシステム115、制御システム111、無線通信システム112及び/又はユーザインタフェース113から情報を受信し、受信した情報を処理し、出発点から目的地へのルート又は経路を計画し、且つ、計画及び制御情報に基づいて車両101を操作するために用いられる。また、データ処理システム110は、車両制御システム111と一体にされてもよい。
例えば、搭乗者とするユーザは、ユーザインタフェースを介して、経路の出発位置及び目的地を指定する。データ処理システム110は、自律走行車101の他の部品と通信することによって経路に関するデータを取得する。例えば、データ処理システム110は、サーバ103〜104の一部とする位置サーバ及びマップ並びPOI(MPOI)サーバから位置及び経路情報を取得することができる。位置サーバは、位置サービスを提供し、且つ、MPOIサーバ105は、マップサービス及びある位置のPOIを提供する。また、このような位置及びMPOI情報は、データ処理システム110の永久記憶装置においてローカルキャッシュ記憶されることができる。
自律走行車101が前記経路に沿って走行する期間に、データ処理システム110は、さらに交通情報システム又はサーバ(TIS)からリアルタイム交通情報を取得できる。なお、サーバ103〜104は、第三者エンティティにより操作されてもよい。また、サーバ103〜104の機能は、データ処理システム110と統合されてもよい。リアルタイム交通情報、MPOI情報、位置情報及びセンサシステム115によって検出、又は感知されたリアルタイムの一部環境データ(例えば、障害物、対象、近辺車両)に基づいて、データ処理システム110は、最適な経路を計画し、且つ、計画された経路に基づいて、例えば、制御システム111を介して、車両101を操作することにより、安全及び効率的に指定の目的地に到着することができる。
一実施形態に基づいて、自律走行車101は、情報及びエンタテイメントを車両の搭乗者に提供するためのエンタテイメントシステム114をさらに備えてもよい。ローカル及び/又はリモートで記憶される(例えば、サーバ103〜104で提供される)内容情報に基づいて、前記情報及びエンタテイメント内容を受信し、コンパイルし、及び表示することができる。例えば、情報は、ネットワーク102を介して、サーバ103〜104の何れかからリアルタイムでストリームに転送され、且つ、車両101の表示装置に表示される。前記情報が、例えば、一つ又は複数のカメラでリアルタイムにキャプチャされたローカル情報に追加されてもよく、且つ、そのあと仮想現実の形で拡張した内容を表示する。
自律走行車において、実際の又は物理の窓が存在しないかもしれない。逆に、「窓」(本文に仮想窓と称す)は、表示装置(車窓状に成型した平面又は曲面のスクリーン表示装置であり、選択的にタッチパネルを有する)によって表示又は代替されてもよい。表示装置は一つ又は複数の適切なビデオカメラによってリアルタイムで動的にキャプチャされた画像又は画像ストリーム(例えば、ビデオ)を表示し、ユーザが透明な窓を通して実際の物理コンテンツを見る又は視聴することと同様である。各「窓」(例えば、表示装置)に対して、リアルタイムに表示しようとする対応のコンテンツをストリーム送信することに用いられる相応な表示チャンネルが存在し、前記対応のコンテンツは拡張現実システム(例えば、情報エンタテインメントシステム114及び/又はデータ処理システム110)により集中的に処理されることができる。この場合、仮想現実形態で(拡張現実形態とも称する)情報エンタテインメントシステム114を介して拡張された画像を表示する。
例えば、コンテンツデータベース又はリモートコンテンツ提供者又はコンテンツサーバから受信されたコンテンツアイテムを、カメラでローカルキャプチャした画像に重ねて、拡張された画像となる。そして、自律走行車における表示装置によって拡張された画像を表示する。前記表示装置は、車両の普通窓と呈するように配置される。ユーザは表示装置を見る時に、仮想現実の形態で画像の対象を仮想対象として表示させ、ユーザが車両の通常の窓によって物理対象を観察すると同様のようである。表示装置は、拡張された画像(例えば、拡張されたビデオ)のストリームをリアルタイムに表示することができる、これは拡張現実(AR)環境と類似し、又は、拡張現実(AR)環境をシミュレーションする。
一実施形態において、位置及び経路情報、MPOI情報及び/又はリアルタイム交通情報、情報エンタテインメントシステム114及び/又はデータ処理システム110に基づいて、現在の交通環境(例えば、MPOI)に適するあるタイプのコンテンツを決定する。システムは、コンテンツ索引(表示せず)において、コンテンツアイテム候補とするリストコンテンツアイテム(例えば、サポートコンテンツ又はAd)を例えばリアルタイム交通情報に基づいて識別するために、検索操作を実行する。
一実施形態において、システムは多種のランキングアルゴリズムを用いてリストにおけるコンテンツアイテムをランキングする。ユーザのユーザ設定ファイルに基づいてコンテンツアイテムをランキングしてもよい。例えば、ユーザ設定ファイルから導出されるユーザの好みに基づいてコンテンツアイテムをランキングしてもよい。ユーザ過去のユーザ操作履歴に基づいて、ユーザ設定ファィルをコンパイルしてもよい。一実施形態において、システムは、一つ又は複数のコンテンツランキングモデルを、それぞれのコンテンツアイテムに適用することにより、それぞれのコンテンツアイテムのランキングスコアを決定する。ランキングスコアが所定閾値より高いコンテンツアイテムを選択してもよい。過去の類似走行環境又は交通状況の既知特徴の集合を用いてコンテンツランキングモデルをトレニングしてもよい。類似ユーザのユーザ設定ファィルに基づいて、コンテンツランキングモデルをトレニングしてもよい。
そして、選択されたコンテンツアイテムがレンダリングされ、且つ、自律走行車における表示装置に表示される。一実施形態において、システムは、選択したコンテンツアイテムを自律車に取り付けられた一つ又は複数のカメラによってこの時点でキャプチャした画像にさらに拡張する。一実施形態において、画像に対し、画像認識を行うことにより前記画像が示すコンテンツを導出又は理解する。例えば、一つ又は複数のキーワードを導出することで前記画像又はPOIを説明する。コンテンツアイテムリストは、さらに画像が表示した一つ又は複数のキーワード又はPOIに基づいて識別されることができる。システムは、そして、前記選択したコンテンツアイテムを画像に拡張して拡張された画像を生成し、ここで、前記コンテンツアイテムが画像と重ねてもよい。その後、自律走行車における表示装置に拡張した画像を表示する。注意すべきものは、いくつかの実施形態によれば、情報エンタテインメントシステム114をデータ処理システム110と一体にしてもよい。
また、ユーザは、コンテンツストア又はデータベースからのプリコンパイル済みのコンテンツ(例えば、ビデオ、映画)リストから詳しく選択し、前記コンテンツメモリ又はデータベースは、ネットワーク(例えば、クラウド)を介して、コンテンツ提供者のコンテンツサーバによって周期的に更新される。それにより、ユーザは、リアルタイムにキャプチャしたリアルタイムのアクチュアルコンテンツ又は予めレンダリングしたコンテンツを具体的に選択し、表示装置に表示させてもよい。例えば、データメモリら検索する。例えば、自律走行車101はニューヨーク市内に雪が降る日に走行しているとする場合、ユーザは、表示装置を切り替え、ハワイの晴れている環境を表示させ、自律走行車101が晴れている日に走行するようにさせる。コンテンツは、複数の表示装置(例えば、複数の窓)において、協力又は協調の形態(即ち、仮想現実方法)で表示されてもよい。
一実施形態に基づいて、データ処理システム110は、複数の処理ノードを備え、それぞれの処理ノードは、自律走行車101を操作する特定機能を実行する。前記処理ノードは、マスターノードにより調整され、又は、自律走行車101を操作して制御することに適するオペレーティングシステム(例えば、ローボードオペレーティングシステム(ROS))にホストされてもよい。ROSは、ローボードのソフトウェアの開発に用いられ、異種コンピュータクラスタにおいてオペレーティングシステムと類似する機能を提供するソフトウェアのフレームワークの集合である。ROSは、標準のオペレーティングシステムサービスを提供し、例えば、ハードウェア抽象、ローレベル装置制御、通常機能の実行、プロセス間の情報転送及びパッケージ管理。ROSに基づくプロセスの実行している集合は、グラフアーキテクチャで表示され、グラフアーキテクチャにおいて、処理は、センサ情報、制御情報、状態情報、計画情報、アクチュエータ情報及び他の情報を受信、配信及び多重送信するノードに実行されてもよい。
処理ノードにより実行する自律走行車101を操作する機能は、例えば、センサ処理、感知、計画及び制御、欠陥確認、セグメント及び識別、顔面識別、ゼスチャー識別、モーション追跡、モーション理解、立体ビジョン(例えば、複数のカメラを介する深度感知)などを含む。これらの機能の一つ又は複数は一つ又は複数のノードにより実行されることができる。一実施形態において、それぞれの処理ノードはホストされ、且つ特定ノードコンテナに含まれることができ、且つ、マスターノードにより管理される。ノードコンテナはバーチャルマシン又はサンドボックス環境であってもよく、ここで、サンドボックス環境は、独立の操作環境及び資源処理の専用セット(例えば、プロセッサ、メモリ、記憶装置、ネットワークスタック)を有する。
一実施形態において、処理ノードは共用のメモリに基づく通信メカニズムを介して互いに通信してもよい。全ての通信データ又は情報は、グローバルメモリに記憶され、そして、処理ノードにより、それらに対応するノードコンテナにおけるマッピングされたローカルメモリアドレス空間を介してアクセスされる。二つの処理ノード間の通信セッションは、データ(又は情報)生産者ノード及びデータ購読者ノードの形態の通信テーマと構築される。交換しようとするデータは、グローバルメモリセグメントに記憶され、前記グローバルメモリセグメントは、マスターノードと関連するグローバルメモリから分配される。
それぞれの生産者ノード及び購読者ノードは、それらのローカルメモリからローカルメモリセグメントを分配し、且つ、グローバルメモリセグメントを当該ローカルメモリセグメントにマッピングする。そして、生産者ノードはデータを容易にマッピングされたローカルメモリセグメントに入力し、前記マッピングしたローカメモリセグメントはデータを対応するグローバルメモリセグメントに記憶する。類似的に、購読者は、マッピングされたローカルメモリセグメントからデータを容易に読み出し、前記マッピングされたローカルセグメントは、対応するグローバルメモリセグメントからデータを読み出す。ローカルメモリセグメントをグローバルメモリセグメントにマッピングさせることにより、処理ノードは、処理ノードを独立のノードコンテナに含ませることでより高い性能を実現するとともに、処理ノード間の安全性を維持できる。通信セッションが完了した時(例えば、全部データを読み取り完了し、新しい入力データがない)に、グローバルメモリセグメント及びローカルメモリセグメントについては、マッピング解除され、且つ対応するフリーメモリプールにリリースされることができる。
図3は、本発明に係る一実施形態のデータ処理システムを示すブロック図であり、前記データ処理システムは自律走行車と共に利用されることができる。システム300は、図1のデータ処理システム110の一部として実行されてもよい。図3によれば、システム300は、マスターノード301を備えるが、それに限定されなく、前記マスターノードは、処理ノード302〜303を調整及び/又は管理する。ここで二つの処理ノードを示したが、それより多い又は少ない処理ノードを実行してもよい。ノード301〜303は、システムメモリにロードされ、且つ一つ又は複数のプロセッサにより実行されることができる。それぞれの処理ノード302〜303は、自律走行車(例えば、図1の自律走行車101)を操作する一つ又は複数機能を実行することができる。前記機能は、センサ処理、感知、計画及び制御、欠陥確認、セグメント及び識別、顔面識別、ゼスチャー識別、モーショントラッキング、モーション理解、立体ビジョン(例えば、複数のカメラを介する深度感知)などを含むが、それらに限定されない。
一実施形態において、それぞれの処理ノード302〜303は特定のノードコンテナ(本実施形態において、それぞれノードコンテナ311〜312である)にホストされることができる。ノードコンテナはサンドボックスの操作環境を指し、ここで、自律走行車を操作する一つ又は複数の機能を実行する一つ又は複数のプロセスは、前記サンドボックス操作環境において実行される。ノードコンテナは、物理処理資源の集合として実行できる専用処理資源の集合を有する(例えば、プロセッサ、メモリ、メモリ装置、ネットワークワイドバンドなど)。また、ノードコンテナと関連する処理資源は、他の処理ノードをホストする他のノードコンテナが共用するグローバル処理資源の集合から分配される処理資源のロジック集合である。通常に、ノードコンテナは、隔離式又はサンドボックス操作環境を提供し、隔離式又はサンドボックス操作環境で、ノードコンテナにおいて実行されている部品は、前記ノードコンテナの外部にある資源の何れも直接にアクセスすることができない。例えば、ノードコンテナにホストされた処理ノードは、直接に前記ノードコンテナの外部のグローバルメモリをアクセスしなくてもよい。一実施形態において、それぞれのノードコンテナ311〜312は、バーチャルマシンとして実行される。
コンピュータにおいて、バーチャルマシン(VM)は特定コンピュータシステムのシミュレーションである。バーチャルマシンは、真実又は仮想コンピュータのコンピュータアーキテクチャ及び機能に基づいて操作し、且つ、それらの実施形態は専用のハードウェア、ソフトウェア又は両者の組み合わせに関する。異なるタイプのバーチャルマシンが存在し、それぞれの種類は異なる機能を有する。システムバーチャルマシン(フルバーチャルVMとも称する)は、目標とするアクチュアルマシンに対する完全代替品及び完全のオペレーティングシステムに必要とする機能レベルを提供する。ハイパーバイザはネイティブ実行(Native Execution)を用いてハードウェアを共用及び管理し、互いに隔離している複数の異なる環境が同一物理コンピュータにおいて実行されることを可能にする。モダンハイパーバイザは、ハードウェア補助の仮想化を使用し、前記ハードウェア補助の仮想化は、(主にホストプロセッサからの)仮想化特定ハードウェア能力を利用することにより、有効及び完全な仮想化を提供する。プロセスバーチャルマシンは、抽象的及びプラットホームが独立のプログラム実行環境を提供することにより、単独のコンピュータプログラムを実行するように設置される。いくつかのバーチャルマシンは、異なるアーキテクチャーもエミュレータし、且つ他のプロセッサ又はアーキテクチャーに対して入力したソフトウェアアプリケーションプログラム及びオペレーティングシステムの実行を可能にするように設置される。オペレーティングシステムレベルの仮想化は、複数の隔離されたユーザ空間の実例に対するカーネルのサポートにより、コンピュータ資源を分割することを可能にし、前記ユーザ空間の実例は通常にコンテナと称され、そして、エンドユーザにとって、リアルマシンに見えて感じる。
もう一度図3を参照し、マスターノード301は、バーチャルマシンモニター又はマネジャー(VMM)の一部又は仮想化層の一部として実行されることができる。マスターノード301は、マスターノードコンテナにおいて実行されてもよく、又は、マスターノードコンテナに含まれてもよい。例えば、マスターノード301は、マスターオペレーティングシステムにホストされてもよいが、処理ノード302〜303は、それぞれクライアントオペレーティングシステムにホストされてもよい。マスターノード301は、ノードコンテナ311〜312においてホストされる処理ノード302〜303を調整又は管理する。一実施形態において、メモリマネジャー321(共用メモリ通信マネジャーとも称する)は、処理ノード302〜303においてメモリの利用を管理する。メモリマネジャー321は、例えば、アプリケーションプログラミングインタフェース(API)を介して、ノードコンテナ311〜312のノードマネジャー322〜323と通信する。ノードマネジャー322〜323は、対応処理ノード302〜303へのプラグインとして実行される。上記説明のように、それぞれの処理ノード302〜303は、自律走行車を操作する特定の又は事前配置された機能を有する。処理ノード302〜303は、オペレーティングシステム(例えば、ROSオペレーティングシステム)に提供される一組の標準ライブラリの一部であってもよい。類似的に、メモリマネジャー321は、マスターノード301の一部として実行されてもよく、又は、マスターノード301のプラグインとして実行されてもよく、ここで、マスター301は、オペレーティングシステムによって提供される標準管理機能を含んでもよい。
一つ実施形態によれば、メモリマネジャー321はグローバルメモリ310のメモリの使用を管理し、異なる通信テーマ又はセッションに関連するデータストリームを記憶するためのグローバルメモリセグメントを分配したりその分配を解除したりする。ノードマネジャー322〜323は、それぞれの対応するローカルメモリセグメント332〜333を係るグローバルメモリセグメントにマッピングし、それぞれの対応するノードコンテナ311〜312において対応するマッピングされるローカルメモリセグメント332〜333を介して、グローバルメモリセグメントに記憶されるデータストリームのデータブロックをアクセス(例えば、入力、読み出し)する。本実施例において、処理ノード302は、一つ又は複数のデータストリームを生成する生産者ノードであって、処理ノード303は、一つ又は複数のデータストリームを購読したり消費したりする購読者ノード又は消費者ノードである。
一実施形態において、処理ノード302は、新しいデータストリームを提供また生成する場合、ノードマネジャー322は、例えば、APIを介してメモリマネジャー321と通信することにより、データストリームの提供を要求する。前記要求を応答し、メモリマネジャー321は、グローバルメモリ310からグローバルメモリセグメントを分配することにより、データストリームのデータブロックを記憶及び維持する。本実施例において、グローバルメモリ310は、それぞれのメモリ特定データストリームと対応するデータブロック(例えば、データブロック307〜308)を記憶するグローバルメモリセグメント305〜306の行列を含む。本文におけるデータストリームは、特定通信セッションの中に、処理ノードにおいて交換されるデータを指し、ここで、グローバルメモリセグメントは、データストリームのデータブロックを維持するために用いられる。
本実施例において、メモリマネジャー321は、要求に応答してグローバルメモリセグメント305を処理ノード302に分配する。メモリマネジャー321は、グローバルセグメント305のメモリのポインタをノードマネジャー322に戻す。ノードマネジャー322は、メモリポインタに応答し、ローカルメモリセグメント(本実施例においてローカルメモリセグメント332)を分配する。そして、メモリマネジャー322は、ローカルメモリセグメント332をグローバルメモリセグメント305にマッピングする。ノードマネジャー322は、ノードマネジャー322をホストするオペレーティングシステムによる提供するメモリマッピング機能を呼び出すことにより、ローカルメモリセグメント332をグローバルメモリセグメント305にマッピングさせる。そして、処理ノード302はデータブロックを提供しようとする時に、処理ノード302及び/又はノードマネジャー322は、データブロックを容易にノードコンテナ311内のローカルメモリセグメント332における適切な位置に入力し、前記データブロックは、グローバルメモリセグメント305に対応する位置内に入力される。
類似的に、一実施形態に基づいて、処理ノード303は、処理ノード302により生成したデータストリームを購読しようとすると、ノードマネジャー323がAPIを介してメモリマネジャー321と通信することにより前記購読を要求する。メモリマネジャー321は、前記要求に応答し、要求したデータストリームに対応するグローバルメモリセグメント(本実施例においては、グローバルメモリセグメント305である)を識別する。メモリマネジャー321はこのようなデータ構造又は索引(表示せず)を維持することができ、当該データ構造又は索引は、データストリーム及びそれらに関連するグローバルメモリセグメント及びそれらの生産者ノードを記録する。メモリマネジャー321は、識別したグローバルメモリセグメントのメモリポインタをノードマネジャー323に戻す。ノードマネジャー323は、メモリポインタに応答して、当該ローカルメモリのローカルメモリセグメント333を分配し、且つ、ローカルメモリセグメント333をグローバルメモリセグメント305にマッピングする。その後に、処理ノード303は、ノードコンテナ312におけるローカルメモリセグメント333を介して、簡単にデータブロックを読み出すことで、グローバルメモリセグメント305に記憶されるデータブロック307をアクセスする。
一実施形態において、メモリマネジャー321は、グローバルメモリセグメント305〜306に対し、ある管理又はハウスキーピング機能をさらに実行する。メモリマネジャー321は、グローバルメモリ310の使用及び処理ノードからのインタラクティブを周期的にモニタリングする。通信セッションが完了した時に、後の使用に備えるため、それに対応するグローバルメモリセグメントをリリースしたり、その分配を解除することができる。例えば、データストリームのすべてのデータブロックは既にすべての購読者に読み出され、且つ、所定の期間内に、対応する生産者ノードが生成した新しいデータブロックがない場合、対応するメモリセグメントをリリースしてもよい。代替例として、生産者ノード及びすべての購読者ノードは、既に、例えばAPIを介して通信テーマから取り消された場合、関連するグローバルメモリセグメントをリリースしてもよい。そして、メモリマネジャー321は、どの通信テーマが誰より登録されるかの情報を維持することができる。任意の処理ノードが特定通信テーマを登録及び/又は特定通信テーマから取り消すことを可能にするAPIが存在してもよい。
一実施形態において、グローバルメモリセグメント(例えば、グローバルメモリセグメント305)をリリース又はその分配を解除する前に、メモリマネジャー321は、生産者ノードとすべての購読者ノードとを通信(例えば、APIのような通信インタフェースを介す)することにより、前記生産者ノード及び前記購読者ノードの取り消し、マッピング解除、及びそれらの対応するローカルメモリセグメント(例えば、ローカルメモリセグメント332〜333)のリリースを可能にする。
一実施形態において、データストリームのデータブロックは、予め配置された環状バッファ(環状キュー、循環バッファ、又はリングバッファとも称す)に記憶されてもよい。一実施形態において、メモリマネジャー321は、ノードマネジャー322〜323と協調することにより、グローバルメモリセグメントに記憶されるデータストリームのデータブロックに対するアクセスの一致性を確保する。一実施形態において、データブロックをグローバルメモリセグメントに入力するために、生産者ノードは、必ず少なくともアクセスされたデータブロックの排他ロックを取得しなければならない。一方、購読者は排他ロックを取得してデータブロックを読み出すことが必要であるか必要ではないか。メモリマネジャー321及び/又は処理ノードのノードマネジャーは、データブロックの状態を検査することにより、誰か特定のデータブロックをアクセスできるか又はアクセスできないかを維持及び強制実行する。
なお、生産者ノードがデータブロックを生成するスピードは、購読者ノードがデータブロックを読み出すスピードより速いことを防止することが重要であり、逆も同様である。通信インタフェースは、対応する処理ノードが同じ速度で進めない場合、生産者ノード又は購読者ノードがコールバック関数を登録することを可能にするように維持される。例えば、購読者がすべてのデータブロックの読み出しを完了した場合、生産者ノードが同じ速度で新しいデータブロックを生成することができない場合、購読者ノードは、コールバック関数を登録してもよい。その後新しいデータブロックが利用可能である場合、メモリマネジャー321は購読者ノードに通知して、購読者ノードに改めてデータブロックを消費させる。類似的に、購読者ノードがデータブロックを登録してもよい。データブロックが既に読み出され且つ当該メモリスペースがフリーとなる場合、コールバックインタフェースを介して生産者ノードに改めて新しいデータブロックを生成させるように通知する。
注意すべきは、ローカルメモリセグメント332、ローカルメモリセグメント333及びグローバルメモリセグメント305〜306は、異なるメモリ装置(例えば、異なる物理メモリ装置)から分配されてもよく、又は、また、それらは同一メモリ装置の異なるメモリリージョン又はエリアから分配されてもよい。一実施形態において、ローカルメモリセグメント332、ローカルメモリセグメント333及びグローバルメモリセグメント305〜306は、具体的に、ノードコンテナ311〜312及びメモリマネジャー321に分配される仮想メモリの一部とする仮想メモリセグメントである。
計算において、仮想メモリは、ハードウェア及びソフトウェアの両方を用いて実行されるメモリ管理技術である。それはプログラムに利用されるメモリアドレス(バーチャルアドレスを称す)をコンピュータメモリにおける物理アドレスにマッピングする。プロセス又はタスクに見られるマスターメモリは、連続するアドレススペース、又は連続するアドレススペースの集合として現れる。オペレーティングシステムは、バーチャルアドレス及びリアルメモリが仮想メモリへの分配を管理する。プロセッサにおけるアドレス変換ハードウェア(通常にメモリ管理ユニット又はMMU)は、自動的にバーチャルアドレスを物理アドレスに変換する。オペレーティングシステムにおけるソフトウェアはそれらの能力を拡張することにより、リアルメモリのキャパシティを超えるスペースを提供することができ、且つ、それによりコンピュータにおけるリアル存在するメモリより大きいメモリのバーチャルスペースを引用する。バーチャルメモリの主なメッリトは、アプリケーションプログラムが必ずしもシェアメモリスペースを管理しないことと、メモリの隔離による安全性の向上及びページング技術の使用により概念的に実際利用可能なメモリより多いメモリを利用することができることと、を含む。
注意すべきは、処理ノードは、生産者ノード及び/又は購読者ノードであってもよい。処理ノードは、一つ又は複数のデータストリームを生成することができるとともに、他の処理ノードにより生成した一つ又は複数データストリームを購読する。一実施形態において、それぞれの通信テーマにとって、ただ一つの生産者ノードが存在するが、通信テーマにとって、複数の購読者ノードが存在してもよい。本明細書において、共用するグローバルメモリセグメントは、生産者ノードから一つ又は複数の購読者ノードの一方向通信チャネルとして用いられる。他の実施形態において、既定の通信テーマについて、複数の生産者ノード及び一つ又は複数の購読者ノードが存在してもよい。
図4は、本発明に係る一実施形態のグローバルメモリセグメントの実施例を示すブロック図である。グローバルメモリセグメント400は、図3のグローバルメモリセグメント305〜306のいずれかを表示してもよい。図4を参照すれば、グローバルメモリセグメント400は、生産者ノードによる生成し、且つ一つ又は複数の購読者ノードが消費するデータブロックを記憶するデータバッファ401を含むが、それに限定されない。バッファ401は、環状バッファエリア又はファーストインファーストアウト(FIFO)バッファであってもよい。環状バッファエリアは、単一の、サイズ一定のバッファを使用するデータ構造を指し、エンド・ツー・エンドのようである。このような構造は容易にバッファデータストリームに適する。環状バッファエリアの利用可能な性質は、一つの元素が消費された時に、その元素を各所に移動させることが必要ではない。
なお、グローバルメモリセグメント400は、いくつかのメモリセグメントメタデータを含み、例えば、書き込みポインタ402、一つ又は複数の読み出しポインタ403、購読者カウント404、データブロック索引405及びコールバックレジストリ406。書き込みポインタ402は、バッファ401のデータブロックに記憶され次のデータブロックの一つとするものにポインティングするメモリアドレスを記憶し、且つ生産者ノードが次の入力サイクルに新しいデータブロック当該メモリアドレスに書き込む。読み出しポインタ403は、バッファ401に記憶される一つ又は複数のデータブロックをポインティングするメモリアドレスを記憶し、一つ又は複数購読者ノードは、次の読み出しサイクルにおいて、当該一つ又は複数のデータブロックから次のデータブロックを読み出す。読み出しポインタの数は、現時点で購読される購読者ノードの数に対応し、購読者アカウント404の一部として記録される。複数の生産者ノードがある場合、生産者ノードにおいて書き込みポインタ402が共用される。書き込みポインタ402は、排他ロックの一部として、一つの生産者が所定時間点でデータを入力することを可能にする。コールバックレジストリ406は、コールバック通知にレジスタした処理ノード(生産者ノード又は購読者ノードである)を記録した。処理ロジック(例えば、メモリマネジャー321)は、周期的にコールバックレジストリ406を走査することにより、バッファ401に記憶されるデータブロックの状態を考慮し、処理ノードに通知する必要があるかとうかを判断する。
データブロック索引405は、バッファ401に記憶されるデータブロックの詳細状態を記録することができる。例えば、ブロック状態は、「読み出される」、「書き込まれる」、「デフォルト」又は「フリー」の一つであってもよい。「書き込まれる」状態は、生産者ノードがバッファ401の対応ブロック位置に新しいデータブロックを書き込んでいることを示す。「読み出される」状態は、購読者ノードが対応するデータブロックを読み出していることを示す。「デフォルト」又は「フリー」は、現時点に対応するデータブロックをアクセスする処理ノードが存在しないことを示す。データブロック索引405のブロック状態は、対応するブロック位置をアクセスする排他アクセスロック又は権限として利用されてもよい。複数の購読者が同時にデータブロックを読み出すことが許可される場合、「読み出される」状態が必要でないかもしれない。生産者ノードは、同一データブロックに入力する時に、購読者がデータブロックをアクセスすることが許可されないため、「書き込まれる」状態のみが必要である。
図5Aは、本発明に係る一実施形態に基づいて、セグメントメタデータを記憶するためのデータ構造を示すブロック図である。データ構造500は、グローバルメモリセグメントに維持されてセグメントメタデータを記憶することができる(例えば、図4に示されるメタデータ402〜406)。図5を参照すれば、データ構造500(本実施例においては、テーブルである)は、複数のエントリーを含む。それぞれのエントリーは、処理ノード501(生産者ノード又は購読者ノードである)に対応する。それぞれのエントリーは、アクセスポインタを記憶するフィールド502をさらに含み、前記アクセスポインタは、処理ノード501が次にアクセスするデータブロックのデータブロックメモリアドレスをポインティングする。生産者ノードにとっては、アクセスポインタ502は書き込みポインタである一方、購読者ノードにとっては、アクセスポインタ502は読み出しポインタである。
一実施形態において、処理ロジック(例えば、メモリマネジャー321及び/又は処理ノードのノードマネジャー)は、アクセスポインタ502を検査してどのデータブロックが読み出されたか及び全てのデータブロックが読み出さたかどうかを判断することができる。処理ロジックは、アクセスポインタ502に基づいて、新しいデータブロックを生み出すスピード及びデータブロックを購読するスピードをさらに決定することができる。もし読み出しポインタは、書き込みポインタと同一又は隣接である場合、大部分又はすべてのデータブロックが読み出されたことを示す。特定処理ノードが別の処理ノード又は対応する処理ノードより速くデータブロックをアクセスすることをさらに示すことができる。もし、複数の生産者ノードが存在する場合、前記生産者ノードにおいて書き込みポインタを共用する。書き込みポインタは、排他ロックの一部として用いられことで一つ生産者が所定時間点にデータを書き込むことを可能にする。データを入力する前に、生産者ノード又はメモリマネジャーは誰か書き込みポインタを取得したかを判断することができる。
一実施形態において、それぞれのエントリーは、タイムスタンプを記憶するフィールド503をさらに含んでもよく、前記タイムスタンプは、アクセスポインタ502が更新される時間を表示する。タイムスタンプ503は、生産者ノードが生成した任意の新しいデータブロックが存在するかどうかを決定するために用いられてもよい。生産者ノードの書き込みポインタ502は、タイムスタンプ503に示される時間内に更新されなかった場合は、新しいデータブロックが生成されていないと理解してもよい。類似的に、購読者ノードは所定時間内にその読み出しポインタを更新しなかった場合、前記購読者ノードは通信テーマを購読しないことを示すことができる。この指示は、フィールド502において示される、書き込みポインタが読み出しポインタとの接近程度と組み合わせし、処理ロジックはすべてのデータブロックが購読者に読み出されたかどうか、及び所定時間内に新しいデータブロックが生成されないかどうかを判断することができる。そうであれば、対応する通信セッションは完了してもよく、且つ対応するグローバルメモリセグメントをリリースしてもよい。また、タイムスタンプ503は、特定処理ノードが正常に機能しないかどうかを判断するために用いられてもよい。例えば、もし特定処理ノードは一定の期間内にそれのポインタを更新しなかった場合は、前記処理ノードが故障している又は循環に落ちているかもしれない。そして、処理ロジックは、データ構造に記憶するいくつかの情報をリセットすることにより、通信セッションを再開することができる。
一実施形態において、それぞれのエントリーは、インディケータを記憶するフィールド504をさらに含み、前記インディケータはコールバックインタフェースを介して特定処理ノードに通信するかどうかを指示する。上記の説明のように、処理ノード(例えば、生産者ノード又は購読者ノード)のデータブロックをアクセスするスピードはその相手方(例えば、購読者ノード又は生産者ノード)に比べて遥かに速い時に、前記処理ノードはコールバック関数を登録してから、且つスリープ状態に変換したり、待つと同時に他のタスクを実行したりしてもよい。新しいデータブロックが利用可能である時に、又はデータブロックが読み出され、且つその位置が利用可能である時に、処理ロジックは、フィールド504を走査することにより、どの処理ノードに通知するかを決定する。もし処理ノードのフィールド504は所定値に設定される場合、前記処理ノードに通知して改めてデータブロックをアクセスする。
図5Bは本発明に係る一実施形態のデータブロック索引を示すデータ構造のブロック図である。データブロック索引550は、図4のデータブロック索引405の一部として実行されてもよい。図5Bを参照すれば、一実施形態において、データブロック索引550は、複数のエントリーを含み、それぞれのエントリーがグローバルメモリセグメント内のデータブロックにおける一つに対応し、且つ、データブロック識別子(ID)により索引に編入させる。データブロックID551は、データバッファにおける順次位置であってもよい。それぞれのエントリーは対応するデータブロックの状態を記憶するフィールド552をさらに含む。状態552は、「書き込まれる」、「読み出される」又は「デフォルト」(又はブランク/エンプティー)任意の一つであってもよい。状態552は、排他ロックの一部として用いられ、又は処理ノードが対応するデータブロックをアクセスしようとするかどうかを指示するインディケータとして用いられてもよい。
それぞれのエントリーは、誰かデータブロックをアクセスしているかを示すノードID553と、処理ノード(ノード553に標記される)がデータブロックをどのぐらいの時間で(例えば、処理ノードが排他アクセスロックを取得、且つ所有する時間はどのぐらいであるか)アクセスしたかを示すタイムスタンプ554と、をさらに含む。このような情報を利用することで特定処理ノードが行き詰まるか、又は故障したかを判断する。例えば、処理ノードはデータブロックが所定の時間帯をアクセスした場合、前記処理ノードを故障したノードと理解し、且つリセットアクセスを実行することにより、デッドロック状態を解決する。
さらに上記説明した技術を用いて、異なる入力/読み出し策略(例えば、情報廃棄策略)を有する発表者及び/又は購読者をサポートする。例えば、一方、ディレータイム及びスループット性能がコンテナにおける実行しているアプリケーションプログラムにとってキーポイントとなる配慮要素であれば、発表者は、前に書き込まれたブロックの順序に関係なく一貫していずれの利用可能なブロックに書き込む急進的な策略を採用してもよい。また、購読者は、前に読み出しがどこで発生したかにも関わらず、一貫して入力者(最後更新されるブロック)に従う策略を採用する。これらの策略によって、システムはより低いディレータイム、及びより大きいスループットの状態において、より強い応答力を有するようになる。また一方では、発表者及び/又は購読者は、順序に従って次のメモリブロックを書き込む又は読み出すことを試してもよい。予期されるブロックは書き込み/読み出しに利用不可の場合、発表者/購読者はブロックされ、且つ一定の期間を待たせる。これらの策略によって、一般的の性能に限定されるが、システムはより一致的な且つ予測可能な行為を有する。例えば、伝出速度又は提供/購読比率は、自律走行する状況が変化又はシステム資源が一時的の負担が生じることによりいきなり変化する時に、これらの策略は、データブロック又は情報の不要なジャンプ又はロスがないように、動的に通信速度を調整することができる。
図6は本発明に係る一実施形態に基づいて自律走行車を操作するメモリの管理プロセスを示すプローチャートである。プロセス600は、処理ロジックにより実行されてもよく、前記処理ロジックは、ソフトウェア、ハードウェア又はその組み合わせを含んでもよい。例えば、プロセス600は、図3のシステム300(具体的に、メモリマネジャー321による)により実行されてもよい。新しい通信セッションの要求(例えば、需要に応じ)に応答してプロセス600を実行してもよく、また、システムの初期化(例えば、起動)期間にプロセス600を実行してもよい。図6を参照すれば、ブロック601では、処理ロジックは、第1ノードコンテナにおいて実行している生産者ノードから新しい通信データに対する第1要求を受信する。ブロック602では、処理ロジックは、第1要求に応答し、グローバルメモリ(例えば、グローバルメモリアドレス空間)からグローバルメモリセグメントを分配することにより、新しい通信テーマに関連するデータブロックを記憶する。ブロック603では、処理ロジックは、第1ノードコンテナにおけるローカルメモリの第1ローカルメモリセグメントをグローバルメモリセグメントにマッピングさせる。一実行形態において、処理ロジックは、グローバルメモリセグメントのポインタ(例えば、メモリアドレス)を生産者ノードに戻すことにより、生産者ノードがグローバルメモリセグメントを第1ノードコンテナにおけるローカルメモリの第1ローカルメモリセグメントにマッピングすることを可能にする。その後、ブロック604では、処理ロジックは、第2ノードコンテナにおいて実行している購読者ノードから購読通信テーマの第2要求を受信する。ブロック605では、処理ロジックは第2要求に応答し、第2ノードコンテナにおけるローカルメモリの第2ローカルメモリセグメントをグローバルメモリセグメントにマッピングする。一実施形態において、処理ロジックは、グローバルメモリセグメントのポインタを購読者ノードに戻すことにより、購読者ノードがグローバルメモリセグメントを第2ノードコンテナにおける第2ローカルメモリから分配される第2ローカルメモリセグメントにマッピングする。
図7は、本発明に係る実施形態に基づいて自律走行車を操作するメモリ管理プロセスを示すプローチャートである。プロセス700は、処理ロジックにより実行されてもよく、前記処理ロジックは、ソフトウェア、ハードウェア又はその組み合わせを含んでもよい。例えば、プロセス700は、図3のシステム300(具体的に、メモリマネジャー321による)により周期的に実行されてもよい。図7を参照すれば、ブロック701では、処理ロジックは、通信テーマに関連するグローバルメモリセグメントに記憶されるデータブロックのアクセスをモニタリングする。ブロック702では、処理ロジックは、例えば、書き込みポインタと(複数の)読み出しポインタとを比較することにより、すべてのデータブロックが全部の購読者により読み出されたことを検出した。ブロック703では、処理ロジックは、例えば、書き込みポインタ及びそのタイムスタンプを検査することにより、生産者が所定期間内に新しいデータブロックを生成しなかったことを検出した。ブロック704では、処理ロジックは、選択可能的に、生産者及び(複数の)購読者にグローバルメモリセグメントをリリースさせるように通知する。このような通知は、生産者及び(複数の)購読者がそれぞれの対応するローカルメモリセグメントをマッピング解除且つリリースさせることを可能にする。ブロック705では、後の使用に備えて、処理ロジックはグローバルメモリセグメントをフリーメモリプールにリリースする。
図8は、本発明に係る実施形態に基づいて自律走行車を操作するメモリ管理プロセスを示すプローチャートである。プロセス800は、処理ロジックにより実行されてもよく、前記処理ロジックは、ソフトウェア、ハードウェア又はその組み合わせを含んでもよい。例えば、プロセス800は、図3のシステム300(具体的に、処理ノードのノードマネジャーによる)により実行されてもよい。図8を参照すれば、ブロック801では、処理ロジックは、通信テーマをアクセス(例えば、生成、購読)する要求を受信する。ブロック802では、処理ロジックは、例えば、APIを介して通信テーマの要求をメモリマネジャーに転送する。ブロック803では、処理ロジックは、メモリマネジャーから通信テーマに対応するグローバルメモリセグメントのメモリポインタを受信する。ブロック804では、処理ロジックは、メモリポインタに基づいて、ローカルメモリからローカルメモリセグメントを分配し、且つ、ローカルメモリセグメントをグローバルメモリセグメントにマッピングさせる。ブロック805で、処理ロジックは、マッピングされたローカルメモリセグメントを介して、グローバルメモリセグメントに記憶されるデータブロックをアクセスする。従って、ブロック806では、処理ロジックは、グローバルメモリセグメントをリリースする通知に応答し、ローカルメモリセグメントをマッピング解除且つリリースする。
図9は、本出願の一実施形態と組み合わせて使用されるデータ処理システムを例示的に示すブロック図である。例えば、システム1500は、上記プロセス又は方法のいずれかを実行する上記任意のデータ処理システム、例えば図1のデータ処理システム110又はサーバ103〜104の任意の一つを示してもよい。システム1500は、多数の異なる構成要素を含んでもよい。これらの構成要素は、集積回路(IC)、集積回路の一部、分散型電子装置又は回路基板に適用された他のモジュール(例えばコンピュータシステムのマザーボード又はアドインカード)、又は他の方式でコンピュータシステムのシャシーに組み込まれた構成要素として実現できる。
さらに、システム1500は、コンピュータシステムの多数の構成要素の詳細ビューを示すことを目的とする。しかしながら、いくつかの実現形態では、付加的構成要素を要してもよいことを理解すべきである。また、他の実現形態において示される構成要素が異なる配置を有してもよい。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤー、パーソナルディジタルアシスタント(PDA)、スマート腕時計、パーソナルコミュニケーター、ゲーム装置、ネットワークルータ又はハブ、無線アクセスポイント(AP)又はリピーター、セットトップボックス、又はそれらの組合せを示してもよい。また、単一の機器又はシステムのみを示したが、用語「機器」又は「システム」は、さらに、独立又は共同で1つ(又は複数)の命令セットを実行することにより本明細書に説明される任意の1種又は複数種の方法を実行する機器又はシステムの任意のセットを含むことを理解すべきである。
一実施形態において、システム1500は、バス又は相互接続部材1510によって接続されたプロセッサ1501、メモリ1503及び装置1505〜1508を備える。プロセッサ1501は、単一のプロセッサコア又は複数のプロセッサコアを含む単一のプロセッサ又は複数のプロセッサを備えてもよい。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)等のような1つ又は複数の汎用プロセッサであってもよい。より具体的には、プロセッサ1501は、複雑命令セット計算(CISC)マイクロプロセッサ、縮小命令セットコンピュータ(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、又は他の命令セットを実現するプロセッサ、又は命令セットの組合せを実現するプロセッサであってもよい。プロセッサ1501は、さらに、専用集積回路(ASIC)、セルラ又はベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、グラフィックプロセッサ、信プロセッサ、暗号プロセッサ、コプロセッサ、組み込みプロセッサのような1つ又は複数の専用プロセッサ、或いは命令処理可能な任意の他のタイプのロジックであってもよい。
プロセッサ1501(超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよい)は、前記システムの各種構成要素と通信するための主処理ユニット及び中央ハブとして機能できる。このようなプロセッサは、システムオンチップ(SoC)として実現できる。プロセッサ1501は、命令を実行することにより本明細書に説明される操作及びステップを実行するための命令を実行ように構成される。また、システム1500は、選択可能なグラフィックサブシステム(表示コントローラ及び/又は表示装置)1504と通信するグラフィックインターフェースをさらに含み、グラフィックサブシステム(表示コントローラ及び/又は表示装置)1504は、表示コントローラ、グラフィックプロセッサ及び/又は表示装置をさらに備えてもよい。
プロセッサ1501は、メモリ1503と通信してもよく、メモリ1503は、一実施形態において複数のメモリによって所定量のシステムメモリを提供する。メモリ1503は、ランダムアクセスメモリ(RAM)、動的RAM(DRAM)、シンクロナスDRAM(SDRAM)、静的RAM(SRAM)又は他のタイプの記憶装置のような1つ又は複数の揮発性記憶(又はメモリ)装置を備えてもよい。メモリ1503は、プロセッサ1501又は任意の他の装置により実行される命令列を含む情報を記憶できる。例えば、複数種のオペレーティングシステム、装置ドライバー、ファームウェア(例えば、入力出力基本システム又はBIOS)及び/又はアプリケーションの実行可能なコード及び/又はデータはメモリ1503にロードされてもよく、プロセッサ1501により実行される。オペレーティングシステムは、Microsoft(登録商標)会社からのWindows(登録商標)オペレーティングシステム、アップル会社からのMac OS(登録商標)/iOS(登録商標)、Google(登録商標)会社からのAndroid(登録商標)、Linux(登録商標)、Unix(登録商標)又は他のリアルタイム又は組み込みオペレーティングシステム(例えばVxWorks)のような任意のタイプのオペレーティングシステムであってもよい。
システム1500は、I/O装置、例えば装置1505〜1508をさらに備えてもよく、ネットワークインターフェース装置1505、選択可能な入力装置1506及び他の選択可能なI/O装置1507を備える。ネットワークインターフェース装置1505は、無線送受信機及び/又はネットワークインターフェースカード(NIC)を備えてもよい。前記無線送受信機は、WiFi送受信機、赤外送受信機、ブルートゥース(登録商標)送受信機、WiMax送受信機、無線セルラーホン送受信機、衛星送受信機(例えば、全地球測位システム(GPS)送受信機)又は他の無線周波数(RF)送受信機又はそれらの組合せであってもよい。NICはイーサネットカードであってもよい。
入力装置1506は、マウス、タッチパッド、タッチスクリーン(それは表示装置1504と一体化されてもよい)、ポインタデバイス(例えばスタイラス)及び/又はキーボード(例えば、物理キーボード又はタッチスクリーンの一部として表示された仮想キーボード)を備えてもよい。例えば、入力装置1506は、タッチスクリーンに接続されるタッチスクリーンコントローラを含んでもよい。タッチスクリーン及びタッチスクリーンコントローラは、例えば複数種のタッチ感度技術(容量、抵抗、赤外及び表面音波の技術を含むが、それらに限定されない)のいずれか、及びタッチスクリーンの1つ又は複数の接触点を決定するための他の近接センサアレイ又は他の素子を用いてそのタッチ点及び移動又は断続を検出できる。
I/O装置1507は音声装置を備えてもよい。音声装置は、スピーカー及び/又はマイクロホンを含んでもよく、それにより音声認識、音声コピー、デジタル記録及び/又は電話機能のような音声サポートの機能を促進する。他のI/O装置1507は、汎用シリアルバス(USB)ポート、パラレルポート、シリアルポート、印刷機、ネットワークインターフェース、バスブリッジ(例えば、PCI〜PCIブリッジ)、センサ(例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサ等のような動きセンサ)又はそれらの組合せをさらに備えてもよい。装置1507は、結像処理サブシステム(例えば、カメラ)をさらに備えてもよく、前記結像処理サブシステムは、カメラ機能(例えば、写真及びビデオ断片の記録)を促進するための電荷カップリング装置(CCD)又は相補型金属酸化物半導体(CMOS)光学センサのような光学センサを備えてもよい。あるセンサは、センサハブ(図示せず)によって相互接続部材1510に接続されてもよく、キーボード又は熱センサのような他の装置は、組み込みコントローラ(図示せず)により制御されてもよく、これはシステム1500の特定配置又は設計により決められる。
データ、アプリケーション、1つ又は複数のオペレーティングシステム等のような情報の永久記憶を提供するために、大容量記憶装置(図示せず)は、プロセッサ1501に接続されてもよい。様々な実施形態において、薄型化と軽量化のシステム設計を実現し且つシステムの応答能力を向上させるために、このような大容量記憶装置は、ソリッドステート装置(SSD)によって実現できる。なお、他の実施形態において、大容量記憶装置は、主にハードディスクドライブ(HDD)で実現されてもよく、少量のSSD記憶量は、SSDキャッシュとして停電イベント期間にコンテキスト状態及び他のこのような情報の不揮発性記憶を実現し、それによりシステム動作が再開する時に通電を速く実現できる。さらに、フラッシュデバイスは、例えばSPI)によってプロセッサ1501に接続されてもよい。このようなフラッシュデバイスは、システムソフトウェアの不揮発性記憶に用いられてもよく、前記システムソフトウェアは、前記システムの(BIOS)及び他のファームウェアを備える。
記憶装置1508は、任意の1種又は複数種の本明細書に記載の方法又は機能を体現する1つ又は複数の命令セット又はソフトウェア(例えば、モジュール、ユニット及び/又はロジック1528)が記憶されるコンピュータアクセス可能な記憶媒体1509(機械可読記憶媒体又はコンピュータ可読媒体とも呼ばれる)を備えてもよい。モジュール/ユニット/ロジック1528は、上記した構成要素のいずれかを示してもよい。モジュール/ユニット/ロジック1528は、さらにデータ処理システム1500により実行される期間にメモリ1503内及び/又はプロセッサ1501内に完全又は少なくとも部分的に存在してもよく、ここで、メモリ1503及びプロセッサ1501も、機器アクセス可能な記憶媒体を構成する。モジュール/ユニット/ロジック1528は、さらにネットワークによってネットワークインターフェース装置1505を経由して送受信されてもよい。
コンピュータ可読記憶媒体1509は、以上に説明された幾つかのソフトウェア機能を永続的に記憶してもよい。コンピュータ可読記憶媒体1509は、例示的な実施形態において単一の媒体として示されたが、用語「コンピュータ可読記憶媒体」は、前記1つ又は複数の命令セットが記憶される単一の媒体又は複数の媒体(例えば、集中型又は分散型データベース、及び/又は関連する高速キャッシュ及びサーバ)を備えることを理解すべきである。用語「コンピュータ可読記憶媒体」は、さらに命令セットを記憶又はコーディング可能な任意の媒体を備えることを理解すべきであり、前記命令セットは、機器により実行され且つ前記機器に本出願の任意の1種又は複数種の方法を実行させる。従って、用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリ及び光学媒体と磁気媒体又は任意の他の非一時的機械可読媒体を備えるが、それらに限定されないことを理解すべきである。
本明細書に記載のモジュール/ユニット/ロジック1528、構成要素及び他の特徴は、ディスクリートハードウェアコンポーネントとして実現されてもよく、又はハードウェアコンポーネント(例えばASICS、FPGA、DSP又は類似装置)の機能に統合されてもよい。さらに、モジュール/ユニット/ロジック1528は、ハードウェア装置内のファームウェア又は機能回路として実現されてもよい。また、モジュール/ユニット/ロジック1528は、ハードウェア装置及びソフトウェアコンポーネントの任意の組合せで実現されてもよい。
なお、システム1500は、データ処理システムの各種の構成要素を有するように示されているが、任意の具体的な構造又は構成要素の相互接続方式を限定するものではないことに注意すべき、それは、このような詳細が本出願の実施形態に密接な関係がないためである。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ及び/又は他のデータ処理システムは、本出願の実施形態と共に使用されてもよい。
上記詳細な説明の一部は、コンピュータメモリにおけるデータビットに対する演算のアルゴリズム及び記号表現で示される。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。ここで、アルゴリズムは、通常、所望の結果につながる首尾一貫した操作列(sequence of operations)と考えられる。これらの操作とは、物理量に対して物理的操作を行う必要となるステップを指す。
ただし、これらの全て及び類似の用語は、いずれも適切な物理量に関連付けられ、且つただこれらの量に適用される適切なラベルであることに注意すべきである。特に断らない限り、本出願の全体にわたって用語(例えば、添付している特許請求の範囲に説明された用語)による説明とは、コンピュータシステム又は類似の電子計算装置の動作及び処理であり、前記コンピュータシステム又は電子計算装置は、コンピュータシステムのレジスタ及びメモリに物理(例えば、電子)量としてデータを示し、且つ前記データをコンピュータシステムメモリ又はレジスタ又は他のこのような情報メモリ、伝送又は表示装置内において類似に物理量として示される他のデータに変換する。
本出願の実施形態は、さらに本明細書における操作を実行するための装置に関する。このようなコンピュータプログラムは、非一時的コンピュータ可読媒体に記憶される。機器可読媒体は、機器(例えば、コンピュータ)可読な形態で情報を記憶する任意の機構を備える。例えば、機器可読(例えば、コンピュータ可読)媒体は、機器(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ)を備える。
上記図面に示されるプロセス又は方法は、ハードウェア(例えば、回路、専用ロジック等)、ソフトウェア(例えば、非一時的コンピュータ可読媒体に具現化される)、又は両方の組合せを含む処理ロジックにより実行されてもよい。前記プロセス又は方法は、本明細書において特定の順序に応じて説明されるが、説明された操作の一部は、異なる順序に応じて実行されてもよい。また、いくつかの操作は、順番ではなく並行に実行されてもよい。
本出願の実施形態は、いずれかの特定のプログラミング言語を参照して説明されていないが、複数種のプログラミング言語で本明細書に記載の本出願の実施形態の教示を実現できることを理解すべきである。
以上の明細書では、本出願の具体的な例示的な実施形態を参照してその実施形態を説明した。明らかなように、添付している特許請求の範囲に記載の本出願のより広い趣旨及び範囲を逸脱しない限り、様々な変形が可能である。従って、限定的なものではなく例示的なものとして本明細書及び図面を理解すべきである。
上記詳細な説明の一部は、コンピュータメモリにおけるデータビットに対する演算のアルゴリズム及び記号表現で示される。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。ここで、アルゴリズムは、通常、所望の結果につながる首尾一貫した操作列(sequence of operations)と考えられる。これらの操作とは、物理量に対して物理的操作を行う必要となるステップを指す。
ただし、これらの全て及び類似の用語は、いずれも適切な物理量に関連付けられ、且つただこれらの量に適用される適切なラベルであることに注意すべきである。特に断らない限り、本出願の全体にわたって用語(例えば、添付している特許請求の範囲に説明された用語)による説明とは、コンピュータシステム又は類似の電子計算装置の動作及び処理であり、前記コンピュータシステム又は電子計算装置は、コンピュータシステムのレジスタ及びメモリに物理(例えば、電子)量としてデータを示し、且つ前記データをコンピュータシステムメモリ又はレジスタ又は他のこのような情報メモリ、伝送又は表示装置内において類似に物理量として示される他のデータに変換する。
本出願の実施形態は、さらに本明細書における操作を実行するための装置に関する。このようなコンピュータプログラムは、非一時的コンピュータ可読媒体に記憶される。機器可読媒体は、機器(例えば、コンピュータ)可読な形態で情報を記憶する任意の機構を備える。例えば、機器可読(例えば、コンピュータ可読)媒体は、機器(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ)を備える。
上記図面に示されるプロセス又は方法は、ハードウェア(例えば、回路、専用ロジック等)、ソフトウェア(例えば、非一時的コンピュータ可読媒体に具現化される)、又は両方の組合せを含む処理ロジックにより実行されてもよい。前記プロセス又は方法は、本明細書において特定の順序に応じて説明されるが、説明された操作の一部は、異なる順序に応じて実行されてもよい。また、いくつかの操作は、順番ではなく並行に実行されてもよい。
本出願の実施形態は、いずれかの特定のプログラミング言語を参照して説明されていないが、複数種のプログラミング言語で本明細書に記載の本出願の実施形態の教示を実現できることを理解すべきである。
以上の明細書では、本出願の具体的な例示的な実施形態を参照してその実施形態を説明した。明らかなように、添付している特許請求の範囲に記載の本出願のより広い趣旨及び範囲を逸脱しない限り、様々な変形が可能である。従って、限定的なものではなく例示的なものとして本明細書及び図面を理解すべきである。



































Claims (21)

  1. 第1処理ノードから第1要求を受信して、別の処理ノードによって購読されるべき第1通信テーマを表示する第1データストリームのデータブロックを生成するステップと
    前記第1処理ノードは複数処理ノードの一つであり、各処理ノードは、自律走行車をさせる特定機能を処理し、前記処理ノードのそれぞれは、特定作環境を有する特定ノードコンテナにおいて実行され、
    前記第1要求に応答し、グローバルメモリから、前記第1データストリームの前記データブロックを記憶するための第1グローバルメモリセグメントを割り当てるステップと、
    第1ローカルメモリセグメントを前記第1グローバルメモリセグメントにマッピングするステップと
    前記第1ローカルメモリセグメントは第1ノードコンテナの第1ローカルメモリによって割り当てられ、前記第1ノードコンテナは前記第1処理ノードを含み、前記第1処理ノードは、前記第1ノードコンテナにおいてマッピングされた第1ローカルメモリセグメントにアクセスすることにより、前記第1グローバルメモリセグメントに記憶される前記第1データストリームの前記データブロックを直接にアクセス
    第2処理ノードから第2要求を受信して前記第1通信テーマを購読するステップと、
    前記第2要求に応答し、第2ローカルメモリセグメントを第1グローバルメモリセグメントにマッピングするステップと、
    前記第2ローカルメモリセグメントは第2ノードコンテナの第2ローカルメモリによって割り当てられ、前記第2ノードコンテナは前記第2処理ノードを含み、前記第2処理ノードは、前記第2ノードコンテナにおいてマッピングされた第2ローカルメモリセグメントにアクセスすることによって、前記第1グローバルメモリセグメントに記憶される前記第1データストリームの前記データブロックに直接にアクセスする
    ことを特徴とする自律走行車における処理ノードのデータストリームを管理するコンピュータ実施方法。
  2. 前記第1データストリームは、複数の通信テーマ関連付けられる複数のデータストリームの一つであり、前記データストリームのそれぞれは、前記グローバルメモリによって割り当てられ対応のデータブロックを記憶するための複数のグローバルメモリセグメントの一つ関連付けられる
    ことを特徴とする請求項1に記載の方法。
  3. 前記第1ノードコンテナは、前記第1ローカルメモリ関連付けられる第1バーチャルマシンを含み、前記第2ノードコンテナは、前記第2ローカルメモリ関連付けられる第2バーチャルマシンを含む
    ことを特徴とする請求項に記載の方法。
  4. 前記第2処理ノードは、前記第1通信テーマを購読する、購読処理ノードとする複数の処理ノードの一つであり、前記購読処理ノードのそれぞれは、前記購読処理ノードからの、対応するローカルメモリにおけるローカルメモリセグメントを前記第1グローバルメモリセグメントにマッピングして前記第1データストリームの前記データブロックアクセする
    ことを特徴とする請求項に記載の方法。
  5. 前記第1処理ノード及び前記第2処理ノードが前記第1グローバルメモリセグメントに記憶される前記データブロックに対するアクセスをモニタリングするモニタリングステップと、
    前記アクセスが所定期間内に活動しない場合は、前記第1グローバルメモリセグメントを、前記第1グローバルメモリセグメントのフリーグローバルメモリプールにリリースするステップと、をさらに含む
    ことを特徴とする請求項に記載の方法。
  6. 記モニタリングステップにおいて、
    前記第1データストリームのすべてのデータブロックが、前記第2処理ノードにより読み出されたかかを判断するステップと、
    前記第1処理ノードによって生成された任意の新しいデータブロックが存在するかかを判断し、前記第1データストリームのすべてのデータブロックが既に読み出され、且つ前記所定期間内に新しいデータブロックが生成されていない場合、前記第1グローバルメモリセグメントをリリースするステップと、をさらに含む
    ことを特徴とする請求項に記載の方法。
  7. 前記第1グローバルメモリセグメントをリリースする前に、前記方法は、
    前記第1グローバルメモリセグメントから、前記第1ローカルメモリの前記第1ローカルメモリセグメントとのマッピングを解除させるステップと、
    前記第1グローバルメモリセグメントから、前記第2ローカルメモリの前記第2ローカルメモリセグメントとのマッピングを解除させるステップと、をさらに含む
    ことを特徴とする請求項に記載の方法。
  8. 第1処理ノードから第1要求を受信して、別の処理ノードによって購読されるべき第1通信テーマを表示する第1データストリームのデータブロックを生成するユニットと
    前記第1処理ノードは複数処理ノードの一つであり、各処理ノードは、自律走行車をさせる特定機能を処理し、それぞれの前記処理ノードは、特定作環境を有する特定ノードコンテナにおいて実行され、
    前記第1要求に応答し、グローバルメモリから、前記第1データストリームの前記データブロックを記憶するための第1グローバルメモリセグメントを割り当てるユニットと、
    第1ローカルメモリセグメントを前記第1グローバルメモリセグメントにマッピングするユニットと
    前記第1ローカルメモリセグメントは第1ノードコンテナの第1ローカルメモリによって割り当てられ、前記第1ノードコンテナは前記第1処理ノードを含み、前記第1処理ノードは、前記第1ノードコンテナにおいてマッピングされた第1ローカルメモリセグメントアクセスすることにより、前記第1グローバルメモリセグメントに記憶される前記第1データストリームの前記データブロックを直接にアクセス
    第2処理ノードから第2要求を受信して前記第1通信テーマを購読するユニットと、
    前記第2要求に応答し、第2ローカルメモリセグメントを前記第1グローバルメモリセグメントにマッピングするユニットとを具備し、
    前記第2ローカルメモリセグメントは第2ノードコンテナの第2ローカルメモリによって割り当てられ、前記第2ノードコンテナは前記第2処理ノードを含み、前記第2処理ノードは、前記第2ノードコンテナにおいてマッピングされた第2ローカルメモリセグメントにアクセスすることによって、前記第1グローバルメモリセグメントに記憶される前記第1データストリームの前記データブロックに直接にアクセスする
    ことを特徴とする自律走行車における処理ノードのデータストリームを管理する装置。
  9. 前記第1データストリームは、複数の通信テーマ関連付けられる複数のデータストリームの一つであり、前記データストリームのそれぞれは、前記グローバルメモリによって割り当てられ対応のデータブロックを記憶するための複数のグローバルメモリセグメントの一つ関連付けられる
    ことを特徴とする請求項に記載の装置。
  10. 前記第1ノードコンテナは、前記第1ローカルメモリ関連付けられる第1バーチャルマシンを含み、前記第2ノードコンテナは、前記第2ローカルメモリ関連付けられる第2バーチャルマシンを含む
    ことを特徴とする請求項に記載の装置。
  11. 前記第2処理ノードは、前記第1通信テーマを購読する、購読処理ノードとする複数の処理ノードの一つであり、前記購読処理ノードのそれぞれは、前記購読処理ノードからの、対応するローカルメモリにおけるローカルメモリセグメントを前記第1グローバルメモリセグメントにマッピングして前記第1データストリームの前記データブロックアクセする
    ことを特徴とする請求項に記載の装置。
  12. 前記装置は、
    前記第1処理ノード及び前記第2処理ノードが前記第1グローバルメモリセグメントに記憶される前記データブロックに対するアクセスをモニタリングするモニタリングユニットと、
    前記第1グローバルメモリセグメントを、前記第1グローバルメモリセグメントのフリーグローバルメモリプールにリリースするユニットと、をさらに含む
    ことを特徴とする請求項に記載の装置。
  13. 記モニタリングユニットは、
    前記第1データストリームのすべてのデータブロックが、既に前記第2処理ノードにより読み出されたかかを判断するユニットと、
    前記第1処理ノードによって生成された任意の新しいデータブロックが存在するかかを判断し、前記第1データストリームのすべてのデータブロックが読み出され、且つ所定期間内に新しいデータブロックが生成されていない場合、前記第1グローバルメモリセグメントをリリースするユニットと、を含む
    ことを特徴とする請求項1に記載の装置。
  14. 前記第1グローバルメモリセグメントから、前記第1ローカルメモリの前記第1ローカルメモリセグメントとのマッピングを解除させるユニットと、
    前記第1グローバルメモリセグメントから、前記第2ローカルメモリの前記第2ローカルメモリセグメントとのマッピングを解除させるユニットと、
    をさらに含む
    ことを特徴とする請求項1に記載の装置。
  15. データ処理システムであって、
    プロセッサと、
    前記プロセッサに接続され令を記憶する記憶装置と、を含み、
    前記令が前記プロセッサにより実行される場合、自律走行車処理ノードのデータストリームを管理する動前記プロセッサによって実行さされ
    前記作は、
    第1処理ノードから第1要求を受信して、別の処理ノードによって購読されるべき第1通信テーマを表示する第1データストリームのデータブロックを生成するステップと
    前記第1処理ノードは複数処理ノードの一つであり、各処理ノードは、自律走行車をさせる特定機能を処理し、それぞれの前記処理ノードは、特定作環境を有する特定ノードコンテナにおいて実行され、
    前記第1要求に応答し、グローバルメモリから、前記第1データストリームの前記データブロックを記憶するためのグローバルメモリセグメントを割り当てるステップと、
    第1ローカルメモリセグメントを前記グローバルメモリセグメントにマッピングするステップと
    前記第1ローカルメモリセグメントは第1ノードコンテナの第1ローカルメモリによって割り当てられ、前記第1ノードコンテナは前記第1処理ノードを含み、前記第1処理ノードは、前記第1ノードコンテナにおいてマッピングされた第1ローカルメモリセグメントアクセスすることにより、前記グローバルメモリセグメントに記憶される前記第1データストリームの前記データブロックを直接にアクセス
    第2処理ノードから第2要求を受信して前記第1通信テーマを購読するステップと、
    前記第2要求に応答し、第2ローカルメモリセグメントを第1グローバルメモリセグメントにマッピングするステップとを含み、
    前記第2ローカルメモリセグメントは第2ノードコンテナの第2ローカルメモリによって割り当てられ、前記第2ノードコンテナは前記第2処理ノードを含み、前記第2処理ノードは、前記第2ノードコンテナにおいてマッピングされた第2ローカルメモリセグメントにアクセスすることによって、前記第1グローバルメモリセグメントに記憶される前記第1データストリームの前記データブロックに直接にアクセスする
    ことを特徴とするデータ処理システム。
  16. 前記第1データストリームは、複数の通信テーマ関連付けられる複数のデータストリームの一つであり、前記データストリームのそれぞれは、前記グローバルメモリによって割り当てられ対応のデータブロックを記憶するための複数のグローバルメモリセグメントの一つ関連付けられる
    ことを特徴とする請求項1に記載のシステム。
  17. 前記第1ノードコンテナは、前記第1ローカルメモリ関連付けられる第1バーチャルマシンを含み、前記第2ノードコンテナは、前記第2ローカルメモリ関連付けられる第2バーチャルマシンを含む
    ことを特徴とする請求項1に記載のシステム。
  18. 前記第2処理ノードは、前記第1通信テーマを購読する、購読処理ノードとする複数の処理ノードの一つであり、前記購読処理ノードのそれぞれは、前記購読処理ノードからの、対応するローカルメモリにおけるローカルメモリセグメントを前記第1グローバルメモリセグメントにマッピングして前記第1データストリームの前記データブロックアクセする
    ことを特徴とする請求項1に記載のシステム。
  19. 前記作は、
    前記第1処理ノード及び前記第2処理ノードが前記第1グローバルメモリセグメントに記憶される前記データブロックに対するアクセスをモニタリングするモニタリングステップと、
    前記アクセスが所定期間内に活動しない場合は、前記第1グローバルメモリセグメントを、前記グローバルメモリセグメントのフリーグローバルメモリプールにリリースするステップと、をさらに含む
    ことを特徴とする請求項1に記載のシステム。
  20. 記モニタリングステップにおいて、
    前記第1データストリームのすべてのデータブロックが、前記第2処理ノードにより読み出されたかかを判断するステップと、
    前記第1処理ノードによって生成された任意の新しいデータブロックが存在するかかを判断し、前記第1データストリームのすべてのデータブロックが既に読み出され、且つ前記所定期間内に新しいデータブロックが生成されていない場合、前記第1グローバルメモリセグメントをリリースするステップと、をさらに含む
    ことを特徴とする請求項19に記載のシステム。
  21. 前記グローバルメモリセグメントをリリースする前に、前記作は、
    前記グローバルメモリセグメントから、前記第1ローカルメモリの前記第1ローカルメモリセグメントとのマッピングを解除させるステップと、
    前記グローバルメモリセグメントから、前記第2ローカルメモリの前記第2ローカルメモリセグメントとのマッピングを解除させるステップと、をさらに含む
    ことを特徴とする請求項2に記載のシステム。
JP2017515244A 2016-07-21 2016-07-21 自律走行車における処理ノードのデータフローを管理する方法、装置及びシステム Active JP6559777B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/090827 WO2018014282A1 (en) 2016-07-21 2016-07-21 Efficient communications amongst computing nodes for operating autonomous vehicles

Publications (3)

Publication Number Publication Date
JP2018531436A JP2018531436A (ja) 2018-10-25
JP2018531436A5 JP2018531436A5 (ja) 2018-12-06
JP6559777B2 true JP6559777B2 (ja) 2019-08-14

Family

ID=60992815

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017515244A Active JP6559777B2 (ja) 2016-07-21 2016-07-21 自律走行車における処理ノードのデータフローを管理する方法、装置及びシステム

Country Status (6)

Country Link
US (2) US10225348B2 (ja)
EP (1) EP3488579B1 (ja)
JP (1) JP6559777B2 (ja)
KR (1) KR102004060B1 (ja)
CN (1) CN107864694B (ja)
WO (1) WO2018014282A1 (ja)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10503615B2 (en) * 2011-12-16 2019-12-10 Basen Corporation Spime™ host system, process, object, self-determination apparatus, and host device
JP7069456B2 (ja) 2017-03-17 2022-05-18 ザ・リージェンツ・オブ・ザ・ユニバーシティ・オブ・ミシガン マルチポリシー意思決定を導くための有益な結果を構築するための方法および装置
US10216191B1 (en) * 2017-06-13 2019-02-26 Wells Fargo Bank, N.A. Property hunting in an autonomous vehicle
US10613548B2 (en) * 2017-10-19 2020-04-07 Zoox, Inc. Architecture for secure vehicle control
CN108182817A (zh) * 2018-01-11 2018-06-19 北京图森未来科技有限公司 自动驾驶辅助系统、路侧端辅助系统和车载端辅助系统
CN108594810B (zh) * 2018-04-08 2019-07-02 百度在线网络技术(北京)有限公司 数据处理的方法、装置、存储介质、终端设备和自动驾驶车辆
CN108566316B (zh) * 2018-04-18 2019-10-22 百度在线网络技术(北京)有限公司 无人车时延统计方法、装置、设备及计算机可读介质
CN108594819A (zh) * 2018-05-03 2018-09-28 济南浪潮高新科技投资发展有限公司 自动驾驶车载计算资源管理系统和方法
US11392103B2 (en) 2018-06-22 2022-07-19 Soft Servo Systems, Inc. Motion control program, motion control method, and motion control device
KR102371662B1 (ko) * 2018-06-22 2022-03-08 모벤시스 주식회사 모션 제어 프로그램, 모션 제어 방법 및 모션 제어 장치
JP6473917B1 (ja) 2018-06-22 2019-02-27 ソフトサーボシステムズ株式会社 モーション制御プログラム、モーション制御方法及びモーション制御装置
CN108845885B (zh) * 2018-07-04 2021-05-18 浪潮集团有限公司 一种面向自动驾驶的边缘计算资源管理方法
WO2020018688A1 (en) 2018-07-20 2020-01-23 May Mobility, Inc. A multi-perspective system and method for behavioral policy selection by an autonomous agent
US10614709B2 (en) 2018-07-24 2020-04-07 May Mobility, Inc. Systems and methods for implementing multimodal safety operations with an autonomous agent
US11197136B2 (en) * 2018-09-26 2021-12-07 Micron Technology, Inc. Accessing a memory resource at one or more physically remote entities
US10666725B2 (en) 2018-09-26 2020-05-26 Micron Technology, Inc. Data center using a memory pool between selected memory resources
US10880361B2 (en) 2018-09-26 2020-12-29 Micron Technology, Inc. Sharing a memory resource among physically remote entities
US11341295B2 (en) * 2018-09-27 2022-05-24 Intel Corporation Methods, systems, and devices for efficient computation of simulation runs
WO2019025872A2 (en) 2018-11-26 2019-02-07 Wasfi Alshdaifat MEANS OF AUTONOMOUS URBAN TRANSPORT WITH ARTIFICIAL TELEPATHY
EP3898373A4 (en) * 2018-12-19 2023-01-11 Zoox, Inc. SAFE SYSTEM OPERATION USING LATENCY DETERMINATIONS AND CPU UTILIZATION DETERMINATIONS
US11281214B2 (en) 2018-12-19 2022-03-22 Zoox, Inc. Safe system operation using CPU usage information
WO2020139396A1 (en) * 2018-12-28 2020-07-02 Didi Research America, Llc Writing messages in a shared memory architecture for a vehicle
WO2020139389A1 (en) * 2018-12-28 2020-07-02 Didi Research America, Llc Shared memory architecture for a vehicle
US10747597B2 (en) * 2018-12-28 2020-08-18 Beijing Voyager Technology Co., Ltd. Message buffer for communicating information between vehicle components
US10572405B1 (en) 2018-12-28 2020-02-25 Didi Research America, Llc Writing messages in a shared memory architecture for a vehicle
WO2020139395A1 (en) * 2018-12-28 2020-07-02 Didi Research America, Llc Reading messages in a shared memory architecture for a vehicle
US11327489B2 (en) * 2018-12-28 2022-05-10 Beijing Voyager Technology Co., Ltd. Shared memory architecture for a vehicle
US10785170B2 (en) * 2018-12-28 2020-09-22 Beijing Voyager Technology Co., Ltd. Reading messages in a shared memory architecture for a vehicle
WO2020139393A1 (en) * 2018-12-28 2020-07-02 Didi Research America, Llc Message buffer for communicating information between vehicle components
US11076022B2 (en) * 2018-12-31 2021-07-27 Lyft, Inc. Systems and methods for implementing robotics frameworks
US10969470B2 (en) 2019-02-15 2021-04-06 May Mobility, Inc. Systems and methods for intelligently calibrating infrastructure devices using onboard sensors of an autonomous agent
CN110034927B (zh) * 2019-03-25 2022-05-13 创新先进技术有限公司 一种通信的方法及装置
US10957196B2 (en) * 2019-04-03 2021-03-23 International Business Machines Corporation Traffic redirection for autonomous vehicles
CN109855646B (zh) * 2019-04-30 2020-02-28 奥特酷智能科技(南京)有限公司 分布集中式自动驾驶系统和方法
CN110442425B (zh) * 2019-07-19 2022-04-08 南京芯驰半导体科技有限公司 一种虚拟化地址空间隔离系统及方法
CN110460586B (zh) * 2019-07-23 2021-09-03 北京伏羲车联信息科技有限公司 车内节点通信方法、装置、设备及存储介质
CN110375751A (zh) * 2019-07-29 2019-10-25 苏州索亚机器人技术有限公司 一种自动驾驶实时导航系统架构
US11624617B2 (en) * 2019-12-30 2023-04-11 GM Cruise Holdings LLC. Shared tile map with live updates
CN111208991B (zh) * 2020-01-03 2023-10-31 北京龙归科技有限公司 基于工作流的程序开发方法、电子设备及存储介质
CN111629031B (zh) * 2020-04-27 2023-04-07 浙江大华技术股份有限公司 集群存储的方法、系统、计算机设备及存储介质
WO2022006418A1 (en) 2020-07-01 2022-01-06 May Mobility, Inc. Method and system for dynamically curating autonomous vehicle policies
JP2022076790A (ja) * 2020-11-10 2022-05-20 トヨタ自動車株式会社 情報処理装置、方法、プログラム、及び車両
JP2023553980A (ja) 2020-12-14 2023-12-26 メイ モビリティー,インコーポレイテッド 自律車両安全プラットフォームシステム及び方法
JP2024500672A (ja) 2020-12-17 2024-01-10 メイ モビリティー,インコーポレイテッド 自律エージェントの環境表現を動的に更新するための方法およびシステム
US20240152380A1 (en) * 2021-03-12 2024-05-09 Woven By Toyota, U.S., Inc. Service-oriented data architecture for a vehicle
US11472436B1 (en) 2021-04-02 2022-10-18 May Mobility, Inc Method and system for operating an autonomous agent with incomplete environmental information
US11565717B2 (en) 2021-06-02 2023-01-31 May Mobility, Inc. Method and system for remote assistance of an autonomous agent
CN113954877A (zh) * 2021-11-24 2022-01-21 清华大学 基于安全沙箱的智能汽车安全仲裁及控制方法及装置
WO2023154568A1 (en) 2022-02-14 2023-08-17 May Mobility, Inc. Method and system for conditional operation of an autonomous agent
JP2023179998A (ja) * 2022-06-08 2023-12-20 キヤノン株式会社 制御装置、制御方法、情報処理装置及びプログラム
US20240098143A1 (en) * 2022-06-29 2024-03-21 Amazon Technologies, Inc. Plug-in orchestrator for vehicle data stream subscription system
CN115114051B (zh) * 2022-08-29 2022-11-15 国汽智控(北京)科技有限公司 节点通信方法、装置、设备及存储介质
CN115934000B (zh) * 2023-03-07 2023-06-09 苏州浪潮智能科技有限公司 一种存储系统的定时方法及相关装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3003418B2 (ja) * 1992-09-25 2000-01-31 株式会社日立製作所 プロセッサ間データ通信方法
JP3667585B2 (ja) * 2000-02-23 2005-07-06 エヌイーシーコンピュータテクノ株式会社 分散メモリ型並列計算機及びそのデータ転送終了確認方法
US7251698B2 (en) * 2002-05-28 2007-07-31 Newisys, Inc. Address space management in systems having multiple multi-processor clusters
US7873879B2 (en) * 2008-02-01 2011-01-18 International Business Machines Corporation Mechanism to perform debugging of global shared memory (GSM) operations
US8484307B2 (en) * 2008-02-01 2013-07-09 International Business Machines Corporation Host fabric interface (HFI) to perform global shared memory (GSM) operations
US7966454B2 (en) * 2008-02-01 2011-06-21 International Business Machines Corporation Issuing global shared memory operations via direct cache injection to a host fabric interface
US8180996B2 (en) * 2008-05-15 2012-05-15 Calxeda, Inc. Distributed computing system with universal address system and method
JP2010165022A (ja) * 2009-01-13 2010-07-29 Ricoh Co Ltd プロセッサ間通信装置、プロセッサ間通信方法、プログラムおよび記録媒体
US8868594B2 (en) * 2011-12-23 2014-10-21 Sap Ag Split processing paths for a database calculation engine
CN104428826B (zh) * 2013-04-15 2017-05-17 自动连接控股有限责任公司 用于车辆交通的自动化控制的中央网络
US9841927B2 (en) * 2013-09-23 2017-12-12 Red Hat Israel, Ltd Remote direct memory access with copy-on-write support
DE102013224702A1 (de) * 2013-12-03 2015-06-03 Robert Bosch Gmbh Steuergerät für ein Kraftfahrzeug
US9794340B2 (en) * 2014-09-15 2017-10-17 Ge Aviation Systems Llc Mechanism and method for accessing data in a shared memory
US20160188529A1 (en) * 2014-12-25 2016-06-30 Intel Corporation Guaranteed quality of service in system-on-a-chip uncore fabric
CN105389197B (zh) * 2015-10-13 2019-02-26 北京百度网讯科技有限公司 用于基于容器的虚拟化系统的操作捕获方法和装置

Also Published As

Publication number Publication date
JP2018531436A (ja) 2018-10-25
KR20180039011A (ko) 2018-04-17
EP3488579A1 (en) 2019-05-29
WO2018014282A1 (en) 2018-01-25
EP3488579B1 (en) 2023-04-05
CN107864694A (zh) 2018-03-30
US20190158599A1 (en) 2019-05-23
US11044318B2 (en) 2021-06-22
KR102004060B1 (ko) 2019-07-25
CN107864694B (zh) 2020-11-03
US20180183873A1 (en) 2018-06-28
EP3488579A4 (en) 2020-01-22
US10225348B2 (en) 2019-03-05

Similar Documents

Publication Publication Date Title
JP6559777B2 (ja) 自律走行車における処理ノードのデータフローを管理する方法、装置及びシステム
JP6310531B2 (ja) 自律走行車において拡張仮想現実コンテンツを提供するシステム及び方法
JP6606532B2 (ja) 自律走行車のために車両群を管理する方法及びシステム
JP6757406B2 (ja) 電極を用いた、人間運転者が自律走行車の制御を引き継ぐメカニズム
JP6456902B2 (ja) リアルタイム交通情報に基づいて自律走行車においてコンテンツを提供するシステムおよび方法
JP6507169B2 (ja) 複数のユーザインターフェース動作ドメインを有する車両
EP3092566B1 (en) Vehicle with multiple user interface operating domains
JP6494589B2 (ja) リアルタイムで動的に決定された感知に基づいて自律走行車においてコンテンツを提供するシステムおよび方法
US9324234B2 (en) Vehicle comprising multi-operating system
JP2019501435A (ja) 自律走行車の走行を決定するための周辺環境を構築する方法及びシステム
JP2018063703A (ja) 自律走行車用のグループ運転スタイル学習フレーム
JP6986699B2 (ja) 表示制御システム、表示システム、移動体、表示制御方法及びプログラム
JP2018070145A (ja) 自律走行車用のバネシステムに基づく車線変更方法
US20190248379A1 (en) Systems and methods for identifying first route to destination as involving less human driving of vehicle than second route to destination
US20200356090A1 (en) Client control for an autonomous vehicle ridesharing service
CN114741120B (zh) 用于增强设备流的可插拔组件
JP6831474B2 (ja) センサ間でデータを伝送するためのデータ伝送ロジック並びに自動運転車の計画及び制御
US20200012576A1 (en) Failover support within a soc via standby domain
KR20230087336A (ko) 가상화 시스템 및 그 구동 방법
US11726885B2 (en) Efficient method and system of intelligent deploying file level restore agent in multicloud
US20230185598A1 (en) Virtualized system and method of operating the same
US11755312B2 (en) Bootloader update
US12008676B2 (en) Vehicle device, drawing requests using priority queues, and vehicle device control method
CN115390985A (zh) 虚拟化系统和防止虚拟化系统的存储器崩溃的方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190117

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190717

R150 Certificate of patent or registration of utility model

Ref document number: 6559777

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250