(57)【要約】  システム、コンピュータ可読媒体、および方法であって、これらは：複数のイニシエータのアクティブイニシエータによって生成されるペンディングアクセス要求の数を、各アクティブイニシエータによって決定することであって、各アクセス要求は共有リソースのうちのある共有リソースにアクセスするための要求である、決定することと；アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルを各アクティブイニシエータによって、決定することであって、決定は、アクティブイニシエータによって生成されるペンディングアクセス要求の数、複数のイニシエータのうちのアクティブイニシエータの数、および共有リソースによってサービス可能なアクセス要求の数に基づく、決定することと；各アクティブイニシエータに対して、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルについて、ネットワークオンチップのアービトレーションハードウェアに通知することと；各アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルに基づいて、アービトレーションハードウェアによって、共有リソースへのアクセスを管理すること；の複数の反復を実行することができる。
2021520585.tif 000002
【特許請求の範囲】
【請求項１】
共有リソースへの複数のイニシエータのアクセスを管理する方法であって：
前記複数のイニシエータのアクティブイニシエータが、前記アクティブイニシエータによって生成されるペンディングアクセス要求の数を決定することであって、各前記アクセス要求は、前記共有リソースのうちのある共有リソースにアクセスするための要求である、決定することと；
前記アクティブイニシエータが、前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる優先度レベルを決定することであって、前記決定することは、前記アクティブイニシエータによって生成される前記ペンディングアクセス要求の数、前記複数のイニシエータのうちの前記アクティブイニシエータの数、および前記共有リソースによってサービス可能な前記アクセス要求の数に基づく、決定することと；
各前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルに基づいて前記共有リソースへのアクセスを管理するように、前記アクティブイニシエータが、前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルについて、ネットワークオンチップのアービトレーションハードウェアに通知することと；
を含む、方法。
【請求項２】
各前記アクティブイニシエータは、前記アービトレーションハードウェアの少なくとも１つのアービトレーションユニットに関連付けられ；各前記アクティブイニシエータについて、前記アービトレーションハードウェアに通知することは、前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルについて、前記少なくとも１つのアービトレーションユニットに通知することを含む、
請求項１に記載の方法。
【請求項３】
前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルを決定することは、前記アクティブイニシエータがより少ない数の前記ペンディングアクセス要求を有する間に生成されるアクセス要求により高い優先度レベルを割り当てることを含む、
請求項１に記載の方法。
【請求項４】
複数の優先度レベル（Ｌ）があり、前記決定することは、前記複数の優先度レベルの中からある優先度レベルを選択することを含む、
請求項１に記載の方法。
【請求項５】
各前記優先度レベルは、前記ペンディングアクセス要求の数の範囲に関連付けられ、前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルを決定することは、前記アクティブイニシエータによって生成される前記ペンディングアクセス要求の数を含む値の範囲を検索することを含む、
請求項４に記載の方法。
【請求項６】
各優先度レベル（Ｑ）について、前記優先度レベルに関連付けられる前記ペンディングアクセス要求の数の前記範囲は、実質的に（Ｌ−１−Ｑ）＊Ｒ／Ｍ／（Ｌ−１）に等しい値から開始し、ここで、Ｒは、前記共有リソースによってサービス可能な前記アクセス要求の数であり、Ｍは、現在アクティブである前記複数のイニシエータの現在アクティブなイニシエータの数である、
請求項５に記載の方法。
【請求項７】
前記各優先度レベル（Ｑ）について、前記優先度レベルに関連付けられる前記ペンディングアクセス要求の数の前記範囲は、実質的に（Ｌ−Ｑ）＊Ｒ／Ｍ／（Ｌ−１）−１に等しい値で終わる、
請求項６に記載の方法。
【請求項８】
前記複数のイニシエータ及び前記共有リソースは、先進運転支援システムに属する、
請求項１に記載の方法。
【請求項９】
前記複数のイニシエータ及び前記共有リソースは、自動運転システムに属する、
請求項１に記載の方法。
【請求項１０】
アクセス管理能力を有するシステムであって：
ある数のアクセス要求までサービスするように構成される共有リソースと；
前記共有リソースにアクセスするためのアクセス要求を生成するように構成されるアクティブイニシエータを有する複数のイニシエータと；
アービトレーションハードウェアと；を有し、
前記複数のイニシエータの各前記アクティブイニシエータは：
前記アクティブイニシエータによって生成されるペンディングアクセス要求の数を反復的に決定し、各前記アクセス要求は、前記共有リソースのうちのある共有リソースにアクセスするための要求であり；
前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる優先度レベルを反復的に決定し、決定することは、前記アクティブイニシエータによって生成される前記ペンディングアクセス要求の数、前記複数のイニシエータのうちの前記アクティブイニシエータの数、および前記共有リソースによってサービス可能な前記アクセス要求の数に基づき；
前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルについて、ネットワークオンチップの前記アービトレーションハードウェアに通知する；ように構成され、
前記アービトレーションハードウェアは：
各前記アクティブイニシエータについて、前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルに関して、反復的に受信し；
前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルに基づいて、前記共有リソースへのアクセスを反復的に管理する；ように構成される、
システム。
【請求項１１】
各前記アクティブイニシエータは、前記アービトレーションハードウェアの少なくとも１つのアービトレーションユニットに関連付けられ；各前記アクティブイニシエータは、前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルについて、前記少なくとも１つのアービトレーションユニットに通知することを含む、
請求項１０に記載のシステム。
【請求項１２】
各前記アクティブイニシエータは、前記アクティブイニシエータがより少ない数の前記ペンディングアクセス要求を有する間に生成されるアクセス要求により高い優先度レベルを割り当てるように構成される、
請求項１０に記載のシステム。
【請求項１３】
複数の優先度レベル（Ｌ）があり、前記アクティブイニシエータは、前記複数の優先度レベルの中からある優先度レベルを選択するように構成される、
請求項１０に記載のシステム。
【請求項１４】
各前記優先度レベルは、前記ペンディングアクセス要求の数の範囲に関連付けられ、各前記アクティブイニシエータは、前記アクティブイニシエータによって生成される前記ペンディングアクセス要求の数を含む値の範囲を検索するように構成される、
請求項１３に記載のシステム。
【請求項１５】
各優先度レベル（Ｑ）について、前記優先度レベルに関連付けられる前記ペンディングアクセス要求の数の前記範囲は、実質的に（Ｌ−１−Ｑ）＊Ｒ／Ｍ／（Ｌ−１）に等しい値から開始し、ここで、Ｒは、前記共有リソースによってサービス可能な前記アクセス要求の数であり、Ｍは、現在アクティブである前記複数のイニシエータの現在アクティブなイニシエータの数である、
請求項１４に記載のシステム。
【請求項１６】
前記各優先度レベル（Ｑ）について、前記優先度レベルに関連付けられる前記ペンディングアクセス要求の数の前記範囲は、実質的に（Ｌ−Ｑ）＊Ｒ／Ｍ／（Ｌ−１）−１に等しい値で終わる、
請求項１５に記載のシステム。
【請求項１７】
前記複数のイニシエータ及び前記共有リソースは、先進運転支援システムに属する、
請求項１０に記載のシステム。
【請求項１８】
共有リソースへの複数のイニシエータのアクセスを管理するための命令を格納するコンピュータプログラムであって、前記命令は、システムによって実行されるとき、前記システムに：
前記複数のイニシエータのアクティブイニシエータが、前記アクティブイニシエータによって生成されるペンディングアクセス要求の数を決定することであって、各前記アクセス要求は、前記共有リソースのうちのある共有リソースにアクセスするための要求である、決定することと；
前記アクティブイニシエータが、前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる優先度レベルを決定することであって、前記決定することは、前記アクティブイニシエータによって生成される前記ペンディングアクセス要求の数、前記複数のイニシエータのうちの前記アクティブイニシエータの数、および前記共有リソースによってサービス可能な前記アクセス要求の数に基づく、決定することと；
前記アクティブイニシエータが、前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルについて、ネットワークオンチップのアービトレーションハードウェアに、各前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルに基づいて前記アービトレーションハードウェアによって前記共有リソースへのアクセスを管理するように、通知することと；
を含む動作を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本特許出願は、その全体が参照により本明細書に組み込まれる２０１９年３月８日に出願された米国特許出願第62／815,389号に対する優先権の利益を主張するものである。
【背景技術】
【０００２】
現代のネットワークオンチップ（ＮＯＣ）では、複数のイニシエータ（中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）、アクセラレータなど）が共有リソースをめぐって競合する。共有リソースの例は、メモリユニットおよび周辺機器を含む。メモリユニットの例は、ダブルデータレート（ＤＤＲ）メモリユニットおよび同期ランダムアクセスメモリ（ＳＲＡＭ）ユニットを含む。メモリユニットと異なる共有リソースの例は、周辺コンポーネント相互接続エクスプレス（ＰＣＩｅ）ポートなどの通信ポートである。
【０００３】
いくつかのイニシエータ（例えば、４つまでのイニシエータ）を含むシステム（以下、「小規模システム」）では、各イニシエータの帯域幅および待ち時間（latency  requirements）の要件を識別し、要件を満たすために静的ＱＯＳ（Quality  of  Service）スキームを適用することにより、共有リソースへのアクセスを管理することが容易である。
【０００４】
コンテキストスイッチで複数のイニシエータが実行されている大規模なシステム（例えば、イニシエータが数個以上（イニシエータが４つ以上）の場合）では、ＱＯＳ設定をオンザフライ（on-the-fly）で更新する必要がある。
【０００５】
更新は、イニシエータの様々なパラメータに応答することができる。多くのイニシエータを有するシステムでは、ＱＯＳ設定を維持するアービトレータ（arbitrators）にこれらのパラメータを供給するには、各イニシエータからアービトレーションハードウェアに多数のワイヤ（そのうちのいくつかは比較的長いかもしれない）をルーティングする必要があることがあり、これはタイミングの問題を引き起こし、システムを複雑にする可能性がある。長いワイヤは、所定の待ち時間を超える待ち時間を有するワイヤである。
【０００６】
共有リソースへのアクセスを管理するための効率的なシステムと方法を提供する必要性が高まっている。
【発明の概要】
【０００７】
以下の詳細な説明は、添付の図面を参照する。可能な限り、同一の参照番号は、図面及び以下の説明において、同一又は類似の部分を参照するために使用される。いくつかの例示的な実施形態が本明細書に記載されているが、修正、適応および他の実施形態が可能である。例えば、図面に示された構成要素に置換、追加、または修正を行うことができ、本明細書に記載された例示的な方法は、開示された方法にステップを置換、再順序付け、除去、または追加することによって修正することができる。従って、以下の詳細な説明は、開示された実施形態および例に限定されない。
【０００８】
開示された実施形態は、自動ナビゲーション／運転またはドライバ支援技術の特徴の一部としてまたはそれと組み合わせて使用することができるシステムおよび方法を提供する。ドライバ支援技術とは、完全自動運転ではなく、前方衝突警報（ＦＣＷ）、車線逸脱警報（ＬＤＷ）および交通標識認識（ＴＳＲ）など、車両のナビゲーションまたは制御において運転者を支援するのに適した任意の技術を指す。
【０００９】
共有リソースへのアクセスを管理するためのシステム、方法、および非一時的コンピュータ可読媒体が提供され得る。
【図面の簡単な説明】
【００１０】
本開示に組み込まれ、本開示の一部を構成する添付の図面は、種々の開示された実施形態を例示する。
【００１１】
【図１】開示された実施形態と一致するシステムのブロック図である。
【図２Ａ】開示された実施形態と一致するシステムを含む例示的な車両の概略的な側面図である。
【図２Ｂ】開示された実施形態と一致する図２Ａに示された車両およびシステムの概略平面図である。
【図２Ｃ】開示された実施形態と一致するシステムを含む車両の別の実施形態の概略平面図である。
【図２Ｄ】開示された実施形態と一致するシステムを含む車両のさらに別の実施形態の概略平面図である。
【図２Ｅ】開示された実施形態と一致する例示的な車両制御システムの概略図である。
【図３】開示された実施形態と一致する車両イメージングシステムのためのバックミラーおよびユーザインターフェースを含む車両内部の概略図である。
【図４Ａ】開示された実施形態と一致する方法の例である。
【図４Ｂ】開示された実施形態と一致する方法の例である。
【図５】開示された実施形態と一致する優先度レベルテーブルを示す。
【図６】開示された実施形態と一致するシステムの一部を示す。
【図７】開示された実施形態と一致するシステムの一部を示す。
【発明を実施するための形態】
【００１２】
詳細に議論する前に、システムのダイナミックメモリモジュールの誤り訂正符号化およびメモリ管理の特徴の例が、自動運転、半自動運転、またはドライバ支援技術に関連する様々な特徴を提供し得る。
【００１３】
このシステムは、車両の将来の経路を推定するために訓練されたニューラルネットワークを使用して道路を進む（navigating）車両の前方の環境の画像またはそれらの画像の処理の特徴に基づいて車両の将来の経路を推定するようにニューラルネットワークまたはディープラーニングアルゴリズムを訓練するための道路を進む車両の前方の環境の画像を処理するように構成され得る。
【００１４】
本開示の主題の例による方法を実行及び実施するために使用することができる車両搭載可能なシステムの様々な可能な実装および構成が提供され得る。いくつかの実施形態では、システムの種々の例は、車両に取り付けることができ、車両が動いている間に操作することができる。いくつかの実施形態では、システムは、本開示の主題の例による方法を実装することができる。
【００１５】
ここで参照する図１は、開示される実施形態と一致するシステム１００のブロック図である。システム１００は、特定の実装の要件に応じて、種々の構成要素を含むことができる。いくつかの例では、システム１００は、処理ユニット１１０、画像取得ユニット１２０、および１つ又は複数のメモリユニット１４０、１５０を含むことができる。処理ユニット１１０は、１つ又は複数の処理デバイスを含むことができる。いくつかの実施形態では、処理ユニット１１０は、アプリケーションプロセッサ１８０、イメージプロセッサ１９０、または任意の他の適切な処理デバイスを含むことができる。同様に、画像取得ユニット１２０は、特定のアプリケーションの要件に応じて、任意の数の画像取得ユニットおよび構成要素を含むことができる。いくつかの実施形態では、画像取得ユニット１２０は、画像キャプチャデバイス１２２、画像キャプチャデバイス１２４、および画像キャプチャデバイス１２６などの１つ又は複数の画像キャプチャデバイス（例えば、カメラ）を含むことができる。いくつかの実施形態では、システム１００はまた、処理ユニット１１０を画像取得ユニット１２０に通信接続するデータインターフェース１２８を含むことができる。例えば、データインターフェース１２８は、画像取得ユニット１２０によって取得された画像データを処理ユニット１１０に送信するための任意の有線または無線リンクを含むことができる。
【００１６】
アプリケーションプロセッサ１８０およびイメージプロセッサ１９０の両方は、種々のタイプの処理デバイスを含むことができる。例えば、アプリケーションプロセッサ１８０およびイメージプロセッサ１９０のいずれかまたは両方は、１つ又は複数のマイクロプロセッサ、プリプロセッサ（イメージプリプロセッサなど）、グラフィックスプロセッサ、中央処理装置（ＣＰＵ）、サポート回路、デジタルシグナルプロセッサ、集積回路、メモリ、または、アプリケーションを実行すること並びに画像処理および分析に適した任意の他のタイプのデバイスを含むことができる。いくつかの実施形態では、アプリケーションプロセッサ１８０またはイメージプロセッサ１９０は、任意のタイプのシングルまたはマルチコアプロセッサ、モバイルデバイスマイクロコントローラ、中央処理装置などを含むことができる。例えば、Intel（登録商標）、AMD（登録商標）等の製造業者から入手可能なプロセッサを含む種々の処理装置を使用することができ、種々のアーキテクチャ（例えば、x86プロセッサ、ARM（登録商標）等）を含むことができる。
【００１７】
いくつかの実施形態では、アプリケーションプロセッサ１８０またはイメージプロセッサ１９０は、Mobileye（登録商標）から入手可能なプロセッサチップのEyeQシリーズのいずれかを含むことができる。これらのプロセッサ設計は、各々、ローカルメモリおよび命令セットを有する複数の処理ユニットを含む。このようなプロセッサは、複数のイメージセンサからイメージデータを受信するためのビデオ入力を含み得るまたビデオ出力機能を含み得る。１つの例では、EyeQ2（登録商標）は３３２Ｍｈｚで動作する９０ｎｍ−ミクロン技術を使用する。EyeQ2（登録商標）アーキテクチャは、２つの浮動小数点、ハイパースレッド３２ビットＲＩＳＣ  ＣＰＵ（ＭＩＰＳ３２（登録商標）３４Ｋ（登録商標）コア）、５つのビジョンコンピューティングエンジン（ＶＣＥ）、３つのベクトルマイクロコードプロセッサ（ＶＭＰ（登録商標））、デナリ６４ビットモバイルＤＤＲコントローラ、１２８ビット内部ソニックインターコネクト、デュアル１６ビットビデオ入力コントローラおよび１８ビットビデオ出力コントローラ、１６チャンネルＤＭＡおよびいくつかの周辺機器を有する。ＭＩＰＳ３４Ｋ  ＣＰＵは、５つのＶＣＥ、３つのＶＭＰ.ＴＭ、ＤＭＡ、第２のＭＩＰＳ３４Ｋ  ＣＰＵおよびマルチチャネルＤＭＡ並びに他の周辺機器を管理する。５つのＶＣＥ、３つのＶＭＰ（登録商標）およびＭＩＰＳ３４Ｋ  ＣＰＵは、多機能バンドルアプリケーションで必要とされる集中的なビジョン計算（intensive  vision  computations）を実行することができる。別の例では、第３世代プロセッサであり、EyeQ2（登録商標）の６倍の性能を有するEyeQ3（登録商標）が、開示された例において使用され得る。さらに別の例では、第４世代プロセッサであるEyeQ4（登録商標）が、開示された例において使用され得る。
【００１８】
図１は、処理ユニット１１０に含まれる２つの別々の処理デバイスを示しているが、より多い又はより少ない処理デバイスを用いることもできる。例えば、いくつかの例では、アプリケーションプロセッサ１８０およびイメージプロセッサ１９０のタスクを達成するために、単一の処理デバイスが使用され得る。他の実施形態では、これらのタスクは、２つ以上の処理デバイスによって実行されることができる。
【００１９】
処理ユニット１１０は、種々のタイプのデバイスを含むことができる。例えば、処理ユニット１１０は、コントローラ、イメージプリプロセッサ、中央処理ユニット（ＣＰＵ）、サポート回路、デジタルシグナルプロセッサ、集積回路、メモリ、または画像処理および分析のための任意の他のタイプのデバイスなどの種々のデバイスを含み得る。イメージプリプロセッサは、イメージセンサから画像をキャプチャし、デジタル化し、処理するためのビデオプロセッサを含むことができる。ＣＰＵは、任意の数のマイクロコントローラまたはマイクロプロセッサを含むことができる。サポート回路は、キャッシュ、電源、クロック、および入出力回路を含む、当技術分野で一般に知られている任意の数の回路であることができる。メモリは、プロセッサによって実行されるとき、システムの動作を制御するソフトウェアを格納することができる。メモリは、例えばニューラルネットワークなどの訓練されたシステムを含む、データベース及び画像処理ソフトウェアを含むことができる。メモリは、任意の数のランダムアクセスメモリ、リードオンリーメモリ、フラッシュメモリ、ディスクドライブ、光学記憶装置、リムーバブル記憶装置、および他のタイプの記憶装置を含むことができる。一例では、メモリは処理ユニット１１０から分離されることができる。別の例では、メモリは処理ユニット１１０に統合されることができる。
【００２０】
各メモリユニット１４０、１５０は、プロセッサ（例えば、アプリケーションプロセッサ１８０またはイメージプロセッサ１９０）によって実行されるとき、システム１００の様々な態様の動作を制御することができるソフトウェア命令を含むことができる。これらのメモリユニット１４０、１５０は、種々のデータベースおよび画像処理ソフトウェアを含むことができる。メモリユニット１４０、１５０は、ランダムアクセスメモリ、リードオンリーメモリ、フラッシュメモリ、ディスクドライブ、光記憶装置、テープ記憶装置、リムーバブル記憶装置、または任意の他のタイプの記憶装置を含むことができる。いくつかの例では、メモリユニット１４０、１５０は、アプリケーションプロセッサ１８０またはイメージプロセッサ１９０から分離することができる。他の実施形態では、これらのメモリユニット１４０、１５０は、アプリケーションプロセッサ１８０またはイメージプロセッサ１９０に統合することができる。
【００２１】
いくつかの実施形態では、システムは、位置センサ１３０を含むことができる。位置センサ１３０は、システム１００の少なくとも１つの構成要素に関連付けられる位置を決定するのに適した任意のタイプのデバイスを含むことができる。いくつかの実施形態では、位置センサ１３０は、ＧＰＳ受信機を含むことができる。このような受信機は、全地球測位システム衛星によって放送される信号を処理することによって位置と速度を決定することができる。位置センサ１３０からの位置情報は、アプリケーションプロセッサ１８０またはイメージプロセッサ１９０に利用可能にすることができる。
【００２２】
いくつかの実施形態では、システム１００は、システム１００が搭載されることができる車両に搭載された種々のシステム、デバイスおよびユニットに動作可能に接続可能であり、任意の適切なインターフェース（例えば、通信バス）を通して、システム１００は、車両のシステムと通信することができる。システム１００が協働することができる車両システムの例は、スロットルシステム、ブレーキシステム、およびステアリングシステムを含む。
【００２３】
いくつかの実施形態では、システム１００は、ユーザインターフェース１７０を含むことができる。ユーザインターフェース１７０は、例えば、タッチスクリーン、マイクロホン、キーボード、ポインタデバイス、トラックホイール、カメラ、ノブ、ボタン等を含む、システム１００の１又は複数のユーザに情報を提供する或いはシステム１００の１又は複数のユーザからの入力を受け取るのに適した任意のデバイスを含むことができる。情報は、ユーザインターフェース１７０を通してシステム１００によってユーザに提供されることができる。
【００２４】
いくつかの実施形態では、システム１００は、地図データベース１６０を含むことができる。地図データベース１６０は、デジタル地図データを記憶するための任意のタイプのデータベースを含むことができる。いくつかの例では、地図データベース１６０は、道路、水の特徴（water  features）、地理的特徴、関心ポイントなどを含む種々のアイテムの、基準座標系（reference  coordinate  system）における位置に関するデータを含むことができる。地図データベース１６０は、そのようなアイテムの位置だけでなく、例えば、記憶された任意の特徴に関連する名前およびそれらに関する他の情報を含む、それらのアイテムに関連する記述子（descriptors）も記憶することができる。例えば、既知の障害物の位置及び種類、道路の地形又は道路沿いのあるポイントの勾配（grade）に関する情報等をデータベースに含めることができる。いくつかの実施形態では、地図データベース１６０は、システム１００の他の構成要素と物理的に配置される（located）ことができる。代替的または追加的に、地図データベース１６０またはその一部は、システム１００の他の構成要素（例えば、処理ユニット１１０）に対して離れて配置されることができる。そのような実施形態では、地図データベース１６０からの情報は、ネットワークへの有線または無線データ接続（例えば、セルラネットワークまたはインターネットなど）を介してダウンロードすることができる。
【００２５】
画像キャプチャデバイス１２２、１２４、および１２６はそれぞれ、環境から少なくとも１つの画像をキャプチャするのに適した任意のタイプのデバイスを含むことができる。さらに、イメージプロセッサに入力するための画像を取得するために、任意の数の画像キャプチャデバイスを使用することができる。本開示の主題のいくつかの例は、単一の画像キャプチャデバイスのみを含むことができ、またはそれを用いて実装することができるが、他の例は、２つ、３つ、またはさらに４つ以上の画像キャプチャデバイスを含むことができ、またはそれを用いて実装することができる。画像キャプチャデバイス１２２、１２４、および１２６は、以下に、図２Ｂ〜２Ｅを参照してさらに説明される。
【００２６】
システム１００は、例えば、音響センサ、ＲＦセンサ（例えば、レーダトランシーバ）、およびＬＩＤＡＲセンサを含む、他のタイプのセンサを含むことができ、または、他のタイプのセンサと動作可能に関連付けられることができることが理解されるべきである。このようなセンサは、画像取得ユニット１２０とは独立して、または協働して使用することができる。例えば、レーダシステム（図示せず）からのデータは、例えば、画像取得ユニット１２０によって取得された画像を処理することから生じる特定の偽陽性をフィルタリングするため、画像取得ユニット１２０によって取得された画像を処理することから受信される処理された情報を検証するために使用することができる、または画像取得ユニット１２０からの画像データ、または画像取得ユニット１２０からの画像データの処理されたバリエーションまたは派生物と組み合わせたり、補完したりすることができる。
【００２７】
システム１００、またはその種々の構成要素は、種々の異なるプラットフォームに組み込むことができる。いくつかの実施形態では、システム１００は、図２Ａに示すように、車両２００に含まれ得る。例えば、車両２００は、図１に関して上述したように、処理ユニット１１０およびシステム１００の他の構成要素のいずれかを備えることができる。一部の実施形態では、車両２００は、単一の画像キャプチャデバイス（例えば、カメラ）のみを備えることができるが、図２Ｂ〜２Ｅに関連して説明するような他の実施形態では、複数の画像キャプチャデバイスを使用することができる。例えば、図２Ａに示されるように、車両２００の画像キャプチャデバイス１２２および１２４のいずれかは、ＡＤＡＳ（先進運転支援システム）イメージングセットの一部であることができる。
【００２８】
画像取得ユニット１２０の一部として車両２００に含まれる画像キャプチャデバイスは、任意の適切な位置に配置することができる。いくつかの実施形態では、図２Ａ〜２Ｅおよび３Ａ〜３Ｃに示されるように、画像キャプチャデバイス１２２は、バックミラーの近傍に配置されることができる。この位置は、車両２００のドライバの視線と同様の視線を提供し得、これは、ドライバに見えるものと見えないものを決定する際に支援することができる。
【００２９】
画像取得ユニット１２０の画像キャプチャデバイスのための他の位置も使用することができる。例えば、画像キャプチャデバイス１２４は、車両２００のバンパー上またはバンパー内に配置されることができる。このような位置は、広い視野を有する画像キャプチャデバイスに特に適することができる。バンパー配置画像キャプチャデバイスの視線は、ドライバの視線とは異なることができる。画像キャプチャデバイス（例えば、画像キャプチャデバイス１２２、１２４、および１２６）は、他の位置に配置することもできる。例えば、画像キャプチャデバイスは、車両２００のサイドミラーの一方または両方に、車両２００の屋根に、車両２００のフードに、車両２００のトランクに、車両２００の側面に、車両２００の窓のいずれかに取り付けられ、後方に配置され、または前方に配置され、車両２００の前方または後方の光像（light  figures）内または光像の近くに取り付けられ得る。画像取得ユニット１２０、または画像取得ユニット１２０で使用される複数の画像キャプチャデバイスの１つである画像キャプチャデバイスは、車両のドライバの視野（ＦＯＶ）とは異なるＦＯＶを有することができ、必ずしも同じ物体を見るわけではない。一例では、画像取得ユニット１２０のＦＯＶは、典型的なドライバのＦＯＶを超えて広がることができ、したがって、ドライバのＦＯＶの外側にあるオブジェクトを画像化することができる。さらに別の例では、画像取得ユニット１２０のＦＯＶは、ドライバのＦＯＶの一部である。いくつかの実施形態では、画像取得ユニット１２０のＦＯＶは、車両の前方の道路の領域および場合によっては道路の周囲もカバーするセクタに対応する。
【００３０】
画像キャプチャデバイスに加えて、車両２００は、システム１００の種々の他の構成要素を含むことができる。例えば、処理ユニット１１０は、車両のエンジン制御ユニット（ＥＣＵ）と一体化されているかまたはそれから分離されているかのいずれかで車両２００に含まれ得る。車両２００はまた、ＧＰＳ受信機などの位置センサ１３０を備えることができ、また、地図データベース１６０およびメモリユニット１４０および１５０を含み得る。
【００３１】
図２Ａは、本開示の主題の例による車両イメージングシステムの概略側面図である。図２Ｂは、図２Ａに示された例の概略平面図である。図２Ｂに示されているように、開示された例は、車両２００のバックミラーの近傍またはドライバの近くに配置された第１の画像キャプチャデバイス１２２と、車両２００のバンパー領域（例えば、バンパー領域２１０の１つ）上または内に配置された第２の画像キャプチャデバイス１２４と、処理ユニット１１０とを有するシステム１００をそのボディ内に含む、車両２００を含むことができる。
【００３２】
図２Ｃに示すように、画像キャプチャデバイス１２２および１２４は、両方とも、バックミラーの近傍または車両２００のドライバの近くに配置され得る。加えて、２つの画像キャプチャデバイス１２２および１２４が図２Ｂおよび２Ｃに示されているが、他の実施形態は２つより多いの画像キャプチャデバイスを含み得ることを理解されたい。例えば、図２Ｄに示す実施形態では、第１、第２、および第３の画像キャプチャデバイス１２２、１２４、および１２６が、車両２００のシステム１００に含まれる。
【００３３】
図２Ｄに示すように、画像キャプチャデバイス１２２、１２４、および１２６は、バックミラーの近傍または車両２００のドライバシートの近くに配置され得る。開示された例は、画像キャプチャデバイスの任意の特定の数および構成に限定されず、画像キャプチャデバイスは、車両２００内または車両２００上の任意の適切な位置に配置され得る。
【００３４】
開示された実施形態は、特定のタイプの車両２００に限定されず、自動車、トラック、トレーラー、自動二輪車、自転車、セルフバランス式移動装置（self-balancing  transport  devices）および他のタイプの車両を含む全てのタイプの車両に適用可能であることも理解されるべきである。
【００３５】
第１の画像キャプチャデバイス１２２は、任意の好適なタイプの画像キャプチャデバイスを含むことができる。画像キャプチャデバイス１２２は、光軸を含むことができる。一例では、画像キャプチャデバイス１２２は、グローバルシャッタを備えたＡｐｔｉｎａ  Ｍ９Ｖ０２４  ＷＶＧＡセンサを含むことができる。別の例では、ローリングシャッタセンサを使用することができる。画像取得ユニット１２０、及び画像取得ユニット１２０の一部として実装される任意の画像キャプチャデバイスは、任意の所望の画像解像度を有することができる。例えば、画像キャプチャデバイス１２２は、１２８０×９６０ピクセルの解像度を提供することができ、ローリングシャッタを含むことができる。
【００３６】
画像取得ユニット１２０、および画像取得ユニット１２０の一部として実装される任意の画像キャプチャデバイスは、種々の光学素子を含むことができる。いくつかの実施形態では、例えば、画像取得ユニット１２０に対して、および画像取得ユニット１２０の一部として実装される任意の画像キャプチャデバイスに対して、所望の焦点距離および視野を提供するために、１つ又は複数のレンズを含むことができる。いくつかの例では、画像取得ユニット１２０の一部として実装される画像キャプチャデバイスは、例えば６ｍｍレンズまたは１２ｍｍレンズのような任意の光学素子を含むか、またはそれと関連付けられることができる。いくつかの例では、画像キャプチャデバイス１２２は、所望の（かつ既知の）視野（ＦＯＶ）を有する画像をキャプチャするように構成することができる。
【００３７】
第１の画像キャプチャデバイス１２２は、第１の一連の画像スキャンライン（image  scanlines）の各々の取得に関連するスキャンレート（scan  rate）を有し得る。スキャンレートは、イメージセンサが、特定のスキャンラインに含まれる各ピクセルに関連するイメージデータを取得することができる速度を指し得る。
【００３８】
図２Ｅは、本開示の主題の例による、車両制御システムの概略図である。図２Ｅに示すように、車両２００は、スロットルシステム２２０、ブレーキシステム２３０、およびステアリングシステム２４０を含むことができる。システム１００は、１つ又は複数のデータリンク（例えば、データを送信するための任意の有線または無線リンクまたはリンク（複数））を介して、スロットルシステム２２０、ブレーキシステム２３０、およびステアリングシステム２４０の１つ又は複数に入力（例えば、制御信号）を提供することができる。例えば、画像キャプチャデバイス１２２、１２４、または１２６によって取得された画像の分析に基づいて、システム１００は、スロットルシステム２２０、ブレーキシステム２３０、およびステアリングシステム２４０のうちの１つまたは複数に制御信号を提供して、車両２００をナビゲートすることができる（例えば、加速／減速、ターン、車線変更などを引き起こすことによって）。さらに、システム１００は、スロットルシステム２２０、ブレーキシステム２３０、およびステアリングシステム２４０のうちの１つまたは複数から、車両２００の動作状態（例えば、速度、車両２００がブレーキをかけているか曲がっているかなど）を示す入力を受け取ることができる。
【００３９】
図３に示すように、車両２００はまた、車両２００のドライバまたは乗客と対話するためのユーザインターフェース１７０を含み得る。例えば、車両アプリケーションにおけるユーザインターフェース１７０は、タッチスクリーン３２０、ノブ３３０、ボタン３４０、およびマイクロホン３５０を含み得る。また、車両２００のドライバまたは乗客は、システム１００と対話するために、ハンドル（handles）（例えば、ターンシグナルハンドルを含む車両２００のステアリングコラム上またはその近くに配置される）、ボタン（例えば、車両２００のステアリングホイール上に配置される）などを使用し得る。いくつかの実施形態では、マイクロホン３５０は、バックミラー３１０に隣接して配置され得る。同様に、いくつかの実施形態では、画像キャプチャデバイス１２２は、バックミラー３１０の近くに配置され得る。いくつかの実施形態では、ユーザインターフェース１７０はまた、１つ又は複数のスピーカ３６０（例えば、車両オーディオシステムのスピーカ）を含み得る。例えば、システム１００は、スピーカ３６０を介して種々の通知（例えば、警告）を提供し得る。
【００４０】
本開示の利点を有する当業者には理解されるように、前述の開示された実施形態には、多数の変更または修正を加えることができる。例えば、全ての構成要素がシステム１００の動作に必須であるわけではない。さらに、任意の構成要素をシステム１００の任意の適切な部分に配置することができ、開示された実施形態の機能性を提供しつつ、構成要素を様々な構成に再配置することができる。従って、前述の構成は例示的なものであり、上述の構成にかかわらず、システム１００は、車両２００の周囲を分析し、この分析に応答して、車両２００をナビゲートし、制御し、または操作するために、広範な機能性を提供することができる。車両２００のナビゲーション、制御、または操作は、車両２００に関連する種々の特徴、コンポーネント、デバイス、モード、システム、またはサブシステムを（直接的に、または上述のコントローラのような中間コントローラを介して）有効化または無効化することを含み得る。ナビゲーション、制御、または操作は、代替的にまたは追加的に、例えば、視覚、音声、触覚、または他の感覚的警告または表示を提供することによって、車両２００の内側または外側に位置し得る、ユーザ、ドライバ、乗客、通行人、または他の車両もしくはユーザとの対話（interaction）を交互にまたは追加的に含み得る。
【００４１】
以下でさらに詳細に説明し、種々の開示された実施形態と整合するように、システム１００は、自動運転、半自動運転またはドライバ支援技術に関連する種々の特徴を提供し得る。例えば、システム１００は、画像データ、位置データ（例えば、ＧＰＳ位置情報）、地図データ、速度データ、または車両２００に含まれるセンサからのデータを分析し得る。システム１００は、例えば、画像取得ユニット１２０、位置センサ１３０、および他のセンサから、分析のためにデータを収集し得る。さらに、システム１００は、収集されたデータを分析して、車両２００が特定のアクションをとるべきか否かを判断し、次いで、人の介入なしに決定されたアクションを自動的に取り得る。ある場合には、車両によって自動的に行われるアクションは、人の監督下にあり、機械のアクションに介入、調整、中断又はオーバーライドする人の能力は、特定の状況下で、または、常に可能にされることが理解されるであろう。例えば、車両２００が人の介在なしに航行する（navigates）場合、システム１００は、（例えば、スロットルシステム２２０、ブレーキシステム２３０、およびステアリングシステム２４０のうちの１つまたは複数に制御信号を送ることによって）車両２００のブレーキ、加速、または操舵を自動的に制御し得る。さらに、システム１００は、収集されたデータを分析し、収集されたデータの分析に基づいて、ドライバ、乗客、ユーザ、または車両内外の他の人（または他の車両）に警告（warnings）、指示、勧告、アラート（alerts）、または命令（instruction）を発し得る。システム１００によって提供される様々な実施形態に関するさらなる詳細は、以下に提供される。
【００４２】
図４Ａは、方法４００を示す。図４Ｂは、方法４０１を示す。
【００４３】
方法４００および４０１は、共有リソースへの複数のイニシエータ（initiators）のアクセスを管理するためのものである。
【００４４】
方法４００は、ステップ４１０および４２０によって開始し得る。
【００４５】
ステップ４１０は、アービトレーションハードウェアによる、共有リソースへのアクセスの管理を含み得る。アクセスは、アクティブイニシエータによって生成されるペンディングアクセス要求の優先レベル（priority  levels）に基づいて管理され得る。
【００４６】
アクティブイニシエータは、予め定義された期間の少なくとも一部の間にペンディングされている少なくとも１つのアクセス要求を生成したイニシエータである。予め定義された期間は、ステップ４２０、４３０、および４４０（およびオプションでステップ４５０）の１つ又は複数の反復の実行の持続時間と等しくなり得る、またはステップ４２０、４３０、および４４０（およびオプションでステップ４５０）の１つ又は複数の反復の実行の持続時間と異なり得る。
【００４７】
任意の優先度ベースのアービトレーション（priority  based  arbitration）が適用され得る。例えば、ステップ４１０は、ラウンドロビンアービトレーション（round  robin  arbitration）プロセス、デイジーチェーンアービトレーション（daisy  chain  arbitration）プロセス、ランダムアービトレーションプロセス、重み付けラウンドロビンアービトレーションプロセス、疑似ランダムアービトレーションプロセス、優先度ベースのアービトレーションプロセスを適用し得、優先度ベースのラウンドロビンアービトレーションプロセスは、ペンディングアクセス要求の中で最も高い優先度レベルのアクセス要求のみを考慮に入れる。
【００４８】
アービトレーションハードウェアは、時々、ペンディングアクセス要求の優先度レベルの更新を受信し、それに応じて優先度を更新し得る。
【００４９】
従って、方法４００は、別の優先度レベルで以前に受信したアクセス要求の優先度を更新することを含み得る。
【００５０】
例えば、イニシエータが第１優先度の第１のアクセス要求を送信したと仮定する（第１のアクセス要求は、ペンディングアクセス要求がほとんどない間に送信された）。第１のアクセス要求がまだペンディングされている間に、イニシエータはより多くのアクセス要求を送信した。そのため、より遅い時点では、より多くのペンディングアクセス要求が存在する。これらの仮定の下で、第１のアクセス要求の優先度は（およそ後の時点で）低下し、現在、イニシエータに関連する多くのペンディングアクセス要求が存在することを反映する。その結果、共有リソースへの多くのアクセス要求を引き起こす欲張りのイニシエータ（greedy  initiator）は、優先度が低下し、そのアクセス要求は、他のイニシエータがより公平な方法でサービスを受け得るように、より低い優先度レベルが与えられる。
【００５１】
ステップ４２０は、複数のイニシエータの各アクティブイニシエータによって、アクティブイニシエータによって生成されるペンディングアクセス要求の数を決定することを含み得、各アクセス要求は、共有リソースのうちのある共有リソースにアクセスするための要求である。
【００５２】
ステップ４２０は、各アクティブイニシエータによって、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルを決定するステップ４３０が続き得る。
【００５３】
この優先度レベルは、イニシエータによって生成される各ペンディングアクセス要求に適用されるべきである。
【００５４】
決定することは、アクティブイニシエータによって生成されたペンディングアクセス要求の数、アクティブイニシエータの数、および共有リソースによってサービス可能なアクセス要求に数に基づく。各共有リソースは、アクセス要求にサービスを提供する最大容量を有し、異なる時点で、異なる数のイニシエータにサービスを提供し得、そのため、異なる時点で、可変数のアクセス要求にサービスを提供し得る。
【００５５】
共有リソースまたは任意の他のユニット若しくはコンポーネントは、共有リソースによってサービス可能なアクセス要求を決定し得る。
【００５６】
ステップ４３０は、（イニシエータに関連する）アクセス要求により高い優先度を割り当てることを含み得、このようなアクセス要求は、イニシエータからのペンディングアクセス要求の数がより少なかったときに生成された。優先度は、優先度レベルとして記憶され得、これは、実施形態では、より高い数字がより高い優先度を示し、より低い数字がより低い優先度を示す範囲の数値スコアである。このように、例えば、優先度は、０〜７の範囲を使用して測定され得、優先度レベル０は、最低の優先度であり、優先度レベル７は、最高の優先度である。
【００５７】
アクセス要求には、複数の優先度レベル（Ｌ）が存在し得る。Ｌは１を超える整数である。このように、Ｌは、システムで使用可能な優先度レベルの数を表す。優先度レベルを表すために３ビットのフィールドを使用するシステムでは、優先度レベルの最大数は８であり、Ｌは８に設定され得る。４ビットのフィールドでは、列挙され得る優先度レベルの最大数は１６であるため、システムがどのように構成されるかに応じて、使用する優先度レベルの数（Ｌ）は最小２または最大１６に設定され得る。
【００５８】
ステップ４３０は、アクティブイニシエータの数および共有リソースがサービス可能なリクエストの数に基づいて、Ｌ優先度レベルから有効な優先度レベルを決定することを含み得る。
【００５９】
複数の優先度レベルのそれぞれは、ペンディングアクセス要求の値の範囲に関連付けられる。
【００６０】
ステップ４３０は、アクティブイニシエータによって生成されるペンディングアクセス要求の数を含む値の範囲を検索することを含み得る。
【００６１】
各優先度レベル（Ｑ）について、優先度レベルに対応する数の範囲は、実質的に（Ｌ−１−Ｑ）＊Ｒ／Ｍ／（Ｌ−１）に等しい値によって開始し得る。
１．  Ｒは、共有リソースによってサービス可能（同時にサービス可能またはステップ４２０、４３０および４４０の単一サイクル内でサービス可能）なアクセス要求の数である。
２．  Ｍは複数のイニシエータの現在アクティブなイニシエータの数である。
【００６２】
各優先度レベル（Ｑ）について、数の範囲は、（Ｌ−Ｑ）*Ｒ／Ｍ／（Ｌ−１）−１に実質的に等しい値で終わる。
【００６３】
実質的に等しいものは、最大５％、１０％などの偏差を含み得る。
【００６４】
ステップ４３０は、各アクティブイニシエータによって、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルについて、ネットワークオンチップのアービトレーションハードウェアに通知するステップ４４０が続いてもよい。
【００６５】
各アクティブイニシエータは、アービトレーションハードウェアの少なくとも１つのアービトレーションユニットに関連付けられる。各アクティブイニシエータについて、ステップ４４０は、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルについて、少なくとも１つのアービトレーションユニットに通知することを含み得る。
【００６６】
図４Ａは、ステップ４４０が、ステップ４２０、４３０、および４４０を再度反復するようにステップ４２０が後に続き得ることを示す。
【００６７】
図４Ｂは、ステップ４４０は、ステップ４５０が後に続き得ることを示す。ステップ４５０は、ステップ４２０、４３０および４４０を再度反復するようにステップ４２０が後に続き得る。
【００６８】
ステップ４５０は、通知への応答を含み得る。
【００６９】
ステップ４５０は、アービトレーションハードウェア、イニシエータ等によって実行され得る。
【００７０】
ステップ４５０は、ネットワークのチップのアービトレーションハードウェアによって、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルを更新することを含み得る。
【００７１】
更新は、ステップ４４０の現在の反復の前にペンディングされていた、少なくともペンディングアクセス要求の優先度レベルを変更することを含み得る。
【００７２】
例えば、アクティブイニシエータからのペンディングアクセス要求の数が、ステップ４４０の現在の反復とステップ４４０の前回の反復との間に（少なくとも、優先度レベルの低下を必要とする量だけ）増加した場合、更新は、アクティブイニシエータからのペンディングアクセス要求の優先度レベルを低下させることを含み得る。
【００７３】
別の例では、アクティブイニシエータからのペンディングアクセス要求の数が、ステップ４４０の現在の反復とステップ４４０の前回の反復との間に（少なくとも、優先度レベルの増加を必要とする量だけ）減少した場合、更新は、アクティブイニシエータからのペンディングアクセス要求の優先度レベルを増加させることを含み得る。
【００７４】
ステップ４５０は、ステップ４１０が後に続いてもよく、その間、この方法は、１つ又は複数のアクティブイニシエータからのアクセス要求間のアービトレーションを実行し得る。アービトレーション（arbitrating）は、少なくとも部分的には、アクセス要求の優先度に基づいて行われる。
【００７５】
方法４００は、ステップ４１０の実行中に、ステップ４２０、４３０および４４０の複数の反復が実行されることを可能にする。
【００７６】
方法４０１は、ステップ４１０の実行中に、ステップ４２０、４３０、４４０、および４５０の複数の反復が実行されることを可能にする。
【００７７】
方法４００または方法４０１は、先進運転支援システムまたは自動運転システムによって実行され得る。
【００７８】
複数のイニシエータは、ＣＰＵ、ＧＰＵ、周辺機器、センサであり得、共有リソースは、メモリモジュール、計算リソースなどであり得る。
【００７９】
図５は、第１の表５００および第２の表５０２の例である。
【００８０】
第１の表５００は、８つの優先レベルに対する種々の開始点および終了点を示す。第２の表５０２は、８つの優先度レベルおよびＲ、Ｍ、およびＬの特定の値に対する種々の開始点および終了点を示している。表５０２では、イニシエータ（Ｔ）からの要求の数が３６から４４の間である場合、３の優先度レベル（Ｑ）が割り当てられる。要求数（Ｔ）が増加するにつれて、優先度（Ｑ）は減少する。
【００８１】
図６は、開示された実施形態と一致するシステムの一部６００を示す。
【００８２】
システムの一部６００は、アービトレーションハードウェア６１２を含むネットワークオンチップ６１０を含む。アービトレーションハードウェア６１２は、Ｋ個のアービトレーションユニット６１２（１）〜６１２（Ｋ）を含み得、Ｋは2より大きい。
【００８３】
共有リソースは共有メモリ６２０、命令ＲＡＭ６０３、およびブートメモリ６０４である。イニシエータは、ＣＰＵ６０１、周辺機器６０２、コンピュータビジョンプロセッサ６０５、ハードウェアセキュリティモジュール６０６、およびセンサインターフェース６０７である。
【００８４】
他のイニシエータまたは他の共有リソースが存在し得る。共有リソースは、計算リソースが含み得る。アクセスは、ネットワークオンチップを介して、または任意の他の相互接続若しくはネットワーク要素を介して行うことができる。
【００８５】
ネットワークオンチップ６１０は、共有メモリ６２０、命令ＲＡＭ６０３およびブートメモリ６０４、ＣＰＵ６０１、周辺機器６０２、コンピュータビジョンプロセッサ６０５、ハードウェアセキュリティモジュール６０６、およびセンサインターフェース６０７に結合される。
【００８６】
アービトレーションハードウェア６１２は、方法４００または４０１を適用することによって共有リソースへの、ネットワークオンチップを介した、イニシエータのアクセスを管理し得る。
【００８７】
ＣＰＵ６０１、周辺機器６０２、コンピュータビジョンプロセッサ６０５、ハードウェアセキュリティモジュール６０６およびセンサインターフェース６０７の各アクティブイニシエータは、アクティブイニシエータによって生成されるペンディングアクセス要求の数を反復して決定するように構成され得、各アクセス要求は、共有リソースのうちのある共有リソースにアクセスするための要求である。
【００８８】
各アクティブイニシエータは、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルを反復して決定するように構成され得、その決定は、アクティブイニシエータによって生成されるペンディングアクセス要求の数、複数のイニシエータのアクティブイニシエータの数、および共有リソースによってサービス可能なアクセス要求の数に基づいて行われる。
【００８９】
アービトレーションハードウェア６１２は、各アクティブイニシエータについて、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルに関する情報を反復的に受信するように構成され得、優先度レベルを（必要に応じて）更新し得、各アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルに基づいて、共有リソースへのアクセスを反復的に管理し得る。
【００９０】
各アクティブイニシエータは、６１２（１）〜６１２（Ｋ）の少なくとも１つのアービトレーションユニットに関連付けられ、少なくとも１つのアービトレーションユニットは、アクティブイニシエータによって生成されたすべてのペンディングアクセス要求に割り当てられることになる優先度レベルを反復的に受信するように構成され得る。
【００９１】
各アクティブイニシエータは、アクティブイニシエータが少ない数のペンディングアクセス要求を有する間に生成されるアクセス要求に高い優先度レベルを割り当てることによって、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルを決定するように構成され得る。
【００９２】
複数の優先度レベル（Ｌ）があり、各アクティブイニシエータは、複数の優先度レベルの中から優先度レベルを選択することによって、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルを決定するように構成され得る。
【００９３】
各アクティブイニシエータは、複数の優先度レベルから優先度レベルを選択することによって、優先度レベルを決定するように構成され得る。
【００９４】
各優先度レベルは、ペンディングアクセス要求の数の範囲に関連付けられ、各アクティブイニシエータは、アクティブイニシエータによって生成されるペンディングアクセス要求の数を含む値の範囲を検索することによって、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルを決定するように構成され得る。
【００９５】
各優先度レベル（Ｑ）について、優先度レベルに関連付けられるペンディングアクセス要求の数の範囲は、実質的に（Ｌ−１−Ｑ）＊Ｒ／Ｍ／（Ｌ−１）に等しい値から開始し、ここで、Ｒは、共有リソースによってサービス可能なアクセス要求の数であり、Ｍは、現在アクティブである複数のイニシエータの現在アクティブなイニシエータの数である。
【００９６】
各優先度レベル（Ｑ）について、優先度レベルに関連付けられるペンディングアクセス要求の数の範囲は、実質的に（Ｌ−Ｑ）＊Ｒ／Ｍ／（Ｌ−１）−１に等しい値で終わる。
【００９７】
図７は、システムの一部の一例を示す。図７は、本出願の他の図と同様に、非限定的な例を提供する。例えば、図７のスイッチの数、スイッチ当たりのポートの数、各スイッチに結合されるイニシエータの数、およびイニシエータの数は、単なる非限定的な例である。
【００９８】
８つのイニシエータＭ０−Ｍ７  ７１１−７１８、８つのアービトレーションスイッチＳＷ０−ＳＷ７  ７２１−７２８などの８つのアービトレーションユニットを含むアービトレーションハードウェア７２０、および２つの共有リソースＳ０−Ｓ１  ７３１−７３２がある。
【００９９】
アービトレーションスイッチは、アービトレーションスイッチの２つのシーケンスに配置されている。第１のシーケンスは、３入力１出力（「３×１」で示す）スイッチＳＷ０、ＳＷ１、ＳＷ２、ＳＷ３、ＳＷ４、ＳＷ５を含み、第２のシーケンスは、２入力１出力（「２×１」で示す）スイッチＳＷ６、ＳＷ７を含む。各アービトレーションスイッチはまた、１つ又は複数のイニシエータに結合される。
【０１００】
各シーケンス内で、アービトレーションスイッチの出力（シーケンスの最後のアービトレーションスイッチを除く）が、シーケンスの次のアービトレーションスイッチの入力に結合される。
【０１０１】
アービトレーションスイッチＳＷ０−ＳＷ７  ７２１−７２８は、優先ラウンドロビンポリシー（prioritized  round-robin  policy）（最高の優先度を持つイニシエータ間のラウンドロビン）を適用するように構成される。任意の他の優先度ベースのアービトレーションスキームが適用され得る。
【０１０２】
ＳＷ０  ７２１は、Ｍ０  ７１１、Ｍ１  ７１２およびＳＷ２  ７２３の間でアービトレートする（arbitrate）ように構成され得る。
【０１０３】
ＳＷ２  ７２３は、Ｍ２  ７１３、Ｍ３  ７１４およびＳＷ４  ７２５の間でアービトレートするように構成され得る。
【０１０４】
ＳＷ４  ７２５は、Ｍ４  ７１５、Ｍ５  ７１６およびＳＷ６  ７２７の間でアービトレートするように構成され得る。
【０１０５】
ＳＷ６  ７２７は、Ｍ６  ７１７とＭ７  ７１８との間でアービトレートするように構成され得る。
【０１０６】
ＳＷ１  ７２２は、Ｍ０  ７１１、Ｍ１  ７１２およびＳＷ３  ７２４の間でアービトレートするように構成され得る。
【０１０７】
ＳＷ３  ７２４は、Ｍ２  ７１３、Ｍ３  ７１４およびＳＷ５  ７２６の間でアービトレートするように構成され得る。
【０１０８】
ＳＷ５  ７２６は、Ｍ４  ７１５、Ｍ５  ７１６およびＳＷ７  ７２８の間でアービトレートするように構成され得る。
【０１０９】
ＳＷ７  ７２８は、Ｍ６  ７１７とＭ７  ７１８との間でアービトレートするように構成され得る。
【０１１０】
各イニシエータは、イニシエータによって生成されるアクセス要求の現在の優先度に関して、イニシエータに関連付けられるアービトレーションユニットを更新するように構成され得る。例えば、イニシエータＭ０  ７１１は、ＳＷ０  ７２１およびＳＷ１  ７２２を更新することができ、他のアービトレーションスイッチを更新しないことができる。
【０１１１】
システムへの言及は、必要な変更を加えて、システムによって実行される方法、またはシステムによって実行されるとシステムに方法を実行させる命令を記憶するコンピュータプログラム製品に適用されるべきである。コンピュータプログラム製品は、非一時的であり得、例えば、集積回路、磁気メモリ、光メモリ、ディスクなどであり得る。
【０１１２】
方法への言及は、必要な変更を加えて、方法を実行するように構成され得るシステム、またはシステムによって実行されると、システムに方法を実行させる命令を記憶するコンピュータプログラム製品に適用されるべきである。
【０１１３】
コンピュータプログラム製品への言及は、必要な変更を加えて、システムによって実行される方法又はコンピュータプログラム製品に記憶される命令を実行するように構成され得るシステムに適用されるべきである。
【０１１４】
用語「および／または」は、追加的にまたは代替的にである。
【０１１５】
前述の明細書では、本発明の実施形態の特定の例を参照して本発明を説明した。しかし、添付の特許請求の範囲に記載された本発明のより広範な精神および範囲から逸脱することなく、様々な修正および変更をその中で行うことができることは明らかであろう。
【０１１６】
さらに、明細書及び、もしあれば、請求項中の用語「前部」、「後部」、「頂部」、「底部」、「上」、「下」等は、説明のために使用され、永続的な相対的位置を記載するためには必ずしも使用されない。理解されるべき点は、これらの用いられる用語が、本願明細書に記載された実施形態を例えば図示された方向又は本願明細書に記載された方向以外の他の方向で動作させるような適切な環境下で相互に交換可能であることである。
【０１１７】
同じ機能を達成するための構成要素の任意の構成が、所望の機能が達成されるように、実質的に「関連」する。従って、特定の機能を達成するために本明細書中で組み合わされる任意の２つの構成要素は、アーキテクチャまたは中間構成要素にかかわらず、所望の機能が達成されるように、互いに「関連」するとみなされ得る。同様に、そのように関連する任意の２つの構成要素は、所望の機能を達成するために、互いに「動作可能に接続されている」または「動作可能に結合されている」とみなされることができる。
【０１１８】
さらに、当業者は、上述の動作間の境界が単に例示的なものであることを認識するであろう。複数の動作は、単一の操作に動作され得、単一の動作は、追加の動作に分散され得、動作は、少なくとも部分的に時間的に重複して実行され得る。さらに、代替の実施形態は、特定の動作の複数のインスタンスを含み得、動作の順序は、種々の他の実施形態では変更され得る。
【０１１９】
しかし、他の修正、バリエーション及び代替案も可能である。したがって、明細書及び図面は、限定的な意味ではなく、例示とみなされるべきである。
【０１２０】
「Ｘであり得る」という語句は、条件Ｘが満たされ得ることを示す。この句はまた、条件Ｘが満たされないかもしれないことを示唆する。例えば、あるコンポーネントを含むシステムへの言及は、そのシステムがあるコンポーネントを含まないシナリオもカバーすべきである。
【０１２１】
用語「含む」、「有する」、「有する」は、交換可能な方法で使用される。例えば、任意の方法は、少なくとも図面または明細書に含まれるステップ、または図面または明細書に含まれるステップのみを含み得る。同様のことが、システム及びモバイルコンピュータにも当てはまる。
【０１２２】
図面を簡単かつ明瞭にするために、図面に示された要素は必ずしも縮尺通りに描かれていないことが理解されるであろう。例えば、要素のいくつかの寸法は、明瞭化のために他の要素と比較して誇張されることがある。さらに、適切と考えられる場合には、対応する要素又は類似の要素を示すために、図の間で参照番号を繰り返すことがある。
【０１２３】
また、例えば、一実施形態では、図示された例は、単一の集積回路上または同一デバイス内に配置された回路として実装されることがある。あるいは、例は、適切な方法で相互に相互接続される任意の数の別個の集積回路または別個のデバイスとして実施されることがある。
【０１２４】
また、例えば、例またはその一部は、任意の適切なタイプのハードウェア記述言語など、物理回路または物理回路に変換可能な論理表現のソフトまたはコード表現として、で実装することができる。
【０１２５】
また、本発明は、非プログラマブルハードウェアで実現される物理デバイスまたはユニットに限定されるものではなく、メインフレーム、ミニコンピュータ、サーバ、ワークステーション、パーソナルコンピュータ、ノートパッド、パーソナルデジタルアシスタント、電子ゲーム、自動車および他の埋め込みシステム、携帯電話、および本出願において一般に「コンピュータシステム」と称される種々の他の無線デバイスなどの適切なプログラムコードに従って動作することによって、所望のデバイス機能を実行することができるプログラマブルデバイスまたはユニットにも適用することができる。
【０１２６】
しかし、他の修正、バリエーション及び代替案も可能である。したがって、明細書及び図面は、限定的な意味ではなく、例示的とみなされる。
【０１２７】
請求項において、括弧の間に付された引用符号は、請求項を限定するものと解釈してはならない。「有する」という語は、請求項に列挙されている他の要素又はステップの存在を除外しない。さらに、用語「１つの、ある（「a」又は「an」）」は、本明細書で使用される場合、１つ又は複数として定義される。また、請求項中の「少なくとも１つ」及び「１つ又は複数」などの導入句の使用は、不定冠詞「１つの、ある（「a」又は「an」）」による別の請求項の要素の導入が、そのように導入された請求項の要素を含む特定の請求項を、導入句「１つ又は複数」又は「少なくとも１つ」及び「１つの、ある（「a」又は「an」）」のような不定冠詞を含む場合であっても、そのような導入された請求項の要素を含む特定の請求項を、そのような１つの要素のみを含む発明に限定することを意味すると解釈されるべきではない。特に示されない限り、「第１」及び「第２」のような語は、これらの語が表す要素間を任意に区別するために用いられる。したがって、これらの用語は、必ずしも、ある手段が相互に異なる請求項に記載されているという単なる事実だけでは、これらの手段の組み合わせが有利に使用できないことを示すものではない。
【０１２８】
本明細書において、「または」という用語は、特に示されない限り、「AまたはB」が「BではなくA」、「B」、および「AおよびBを含むように」のように非排他的ｏｒを示すために使用される。添付の特許請求の範囲では、「含む」および「その中で（in  which）」という用語は、それぞれの用語「有する」および「ここで（wherein）」の平易な英語の等価物として使用される。また、以下の特許請求の範囲において、「含む」および「有する」という用語は、オープンエンドである。すなわち、当該用語の後に列挙されたものに加えて要素を含むシステム、デバイス、物品、またはプロセスは、依然として当該特許請求の範囲内にあるとみなされる。
【０１２９】
本発明の特定の特徴が図示され、本明細書に記載されているが、当業者には、ここで、多くの修正、置換、変化、および均等物が生じる。従って、添付の特許請求の範囲は、そのような修正及び変更全てが本発明の真の精神の範囲内にあるとしてカバーすることを意図していることを理解されたい。
【０１３０】
図面、明細書又は特許請求の範囲のいずれかに示されている任意の構成要素又はシステムのユニットの任意の構成要素の任意の組み合わせを提供することができる。
【０１３１】
図面、明細書又は特許請求の範囲の何れかに例示されている任意のシステムの任意の組み合わせを提供することができる。
【０１３２】
図面、明細書又は特許請求の範囲のいずれかに例示されているステップ、動作又は方法の任意の組み合わせを提供することができる。
【０１３３】
図面、明細書又は特許請求の範囲のいずれかに例示されている動作の任意の組み合わせを提供することができる。
【０１３４】
図面、明細書又は特許請求の範囲のいずれかに例示されている方法の任意の組み合わせを提供することができる。
【０１３５】
さらに、例示的な実施形態が本明細書に記載されているが、本開示に基づいて当業者に理解されるように、すべての実施形態の範囲は、均等の要素、修正、省略、組み合わせ（例えば、様々な実施形態にわたる態様のもの）、適応または変更を有する。請求項における限定は、請求項で使用されている文言に基づいて広く解釈されるべきであり、本明細書に記載されている例や出願手続き中の例に限定されるものではない。これらの例は、非排他的であると解釈される。さらに、開示された方法のステップは、ステップの順序を変えること、またはステップを挿入もしくは削除することを含む任意の方法で修正することができる。従って、明細書及び例は単に例示的であるとみなされ、真の範囲及び精神は、以下の特許請求の範囲及びそれらの均等物の全範囲によって示されることが意図されている。
【図１】
2021520585.tif 000003
【図２Ａ】
2021520585.tif 000004
【図２Ｂ】
2021520585.tif 000005
【図２Ｃ】
2021520585.tif 000006
【図２Ｄ】
2021520585.tif 000007
【図２Ｅ】
2021520585.tif 000008
【図３】
2021520585.tif 000009
【図４Ａ】
2021520585.tif 000010
【図４Ｂ】
2021520585.tif 000011
【図５】
2021520585.tif 000012
【図６】
2021520585.tif 000013
【図７】
2021520585.tif 000014
【国際調査報告】
2021520585.tif 000015
2021520585.tif 000016