特許第6979139号(P6979139)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ モービルアイ ヴィジョン テクノロジーズ リミテッドの特許一覧

特許6979139共有リソースへのアクセスの優先度ベースの管理
<>
  • 特許6979139-共有リソースへのアクセスの優先度ベースの管理 図000002
  • 特許6979139-共有リソースへのアクセスの優先度ベースの管理 図000003
  • 特許6979139-共有リソースへのアクセスの優先度ベースの管理 図000004
  • 特許6979139-共有リソースへのアクセスの優先度ベースの管理 図000005
  • 特許6979139-共有リソースへのアクセスの優先度ベースの管理 図000006
  • 特許6979139-共有リソースへのアクセスの優先度ベースの管理 図000007
  • 特許6979139-共有リソースへのアクセスの優先度ベースの管理 図000008
  • 特許6979139-共有リソースへのアクセスの優先度ベースの管理 図000009
  • 特許6979139-共有リソースへのアクセスの優先度ベースの管理 図000010
  • 特許6979139-共有リソースへのアクセスの優先度ベースの管理 図000011
  • 特許6979139-共有リソースへのアクセスの優先度ベースの管理 図000012
  • 特許6979139-共有リソースへのアクセスの優先度ベースの管理 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6979139
(24)【登録日】2021年11月16日
(45)【発行日】2021年12月8日
(54)【発明の名称】共有リソースへのアクセスの優先度ベースの管理
(51)【国際特許分類】
   G06F 13/362 20060101AFI20211125BHJP
   B60W 30/10 20060101ALI20211125BHJP
   B60W 60/00 20200101ALI20211125BHJP
   G06F 9/50 20060101ALI20211125BHJP
【FI】
   G06F13/362 510E
   B60W30/10
   B60W60/00
   G06F9/50 120B
【請求項の数】18
【全頁数】24
(21)【出願番号】特願2020-567803(P2020-567803)
(86)(22)【出願日】2020年3月6日
(65)【公表番号】特表2021-520585(P2021-520585A)
(43)【公表日】2021年8月19日
(86)【国際出願番号】US2020021564
(87)【国際公開番号】WO2020185623
(87)【国際公開日】20200917
【審査請求日】2020年12月4日
(31)【優先権主張番号】62/815,389
(32)【優先日】2019年3月8日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】514281407
【氏名又は名称】モービルアイ ヴィジョン テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リヒター,イタマル
(72)【発明者】
【氏名】シュルマン,ボリス
(72)【発明者】
【氏名】ケレット,ガリト
【審査官】 松平 英
(56)【参考文献】
【文献】 特開2005−216308(JP,A)
【文献】 特開2007−026022(JP,A)
【文献】 特開2011−059915(JP,A)
【文献】 特開2011−065649(JP,A)
【文献】 米国特許出願公開第2003/0177296(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B60W10/00−10/30
30/00−50/16
G06F 3/00
3/18
9/455−9/54
13/10−13/14
13/20−13/42
(57)【特許請求の範囲】
【請求項1】
共有リソースへの複数のイニシエータのアクセスを管理する方法であって:
前記複数のイニシエータのアクティブイニシエータが、前記アクティブイニシエータによって生成されるペンディングアクセス要求の数を決定することであって、各前記ペンディングアクセス要求は、前記共有リソースのうちのある共有リソースにアクセスするためのペンディング要求である、決定することと;
前記アクティブイニシエータが、前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる優先度レベルを決定することであって、前記決定することは、前記アクティブイニシエータによって生成される前記ペンディングアクセス要求の数、前記複数のイニシエータのうちの前記アクティブイニシエータの数、および前記共有リソースによってサービス可能なアクセス要求の数に基づく、決定することと;
各前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルに基づいて前記共有リソースへのアクセスを管理するように、前記アクティブイニシエータが、前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルについて、ネットワークオンチップのアービトレーションハードウェアに通知することと;
を含む、方法。
【請求項2】
各前記アクティブイニシエータは、前記アービトレーションハードウェアの少なくとも1つのアービトレーションユニットに関連付けられ;各前記アクティブイニシエータについて、前記アービトレーションハードウェアに通知することは、前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルについて、前記少なくとも1つのアービトレーションユニットに通知することを含む、
請求項1に記載の方法。
【請求項3】
前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルを決定することは、前記アクティブイニシエータがより少ない数の前記ペンディングアクセス要求を有する間に生成されるアクセス要求により高い優先度レベルを割り当てることを含む、
請求項1に記載の方法。
【請求項4】
複数の優先度レベル(L)があり、前記決定することは、前記複数の優先度レベルの中からある優先度レベルを選択することを含む、
請求項1に記載の方法。
【請求項5】
各前記優先度レベルは、前記ペンディングアクセス要求の数の範囲に関連付けられ、前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルを決定することは、前記アクティブイニシエータによって生成される前記ペンディングアクセス要求の数を含む値の範囲を検索することを含む、
請求項4に記載の方法。
【請求項6】
各優先度レベル(Q)について、前記優先度レベルに関連付けられる前記ペンディングアクセス要求の数の前記範囲は、実質的に(L−1−Q)*R/M/(L−1)に等しい値から開始し、ここで、Rは、前記共有リソースによってサービス可能な前記アクセス要求の数であり、Mは、現在アクティブである前記複数のイニシエータの現在アクティブなイニシエータの数である、
請求項5に記載の方法。
【請求項7】
前記各優先度レベル(Q)について、前記優先度レベルに関連付けられる前記ペンディングアクセス要求の数の前記範囲は、実質的に(L−Q)*R/M/(L−1)−1に等しい値で終わる、
請求項6に記載の方法。
【請求項8】
前記複数のイニシエータ及び前記共有リソースは、先進運転支援システムに属する、
請求項1に記載の方法。
【請求項9】
前記複数のイニシエータ及び前記共有リソースは、自動運転システムに属する、
請求項1に記載の方法。
【請求項10】
アクセス管理能力を有するシステムであって:
ある数のアクセス要求までサービスするように構成される共有リソースと;
前記共有リソースにアクセスするためのアクセス要求を生成するように構成されるアクティブイニシエータを有する複数のイニシエータと;
アービトレーションハードウェアと;を有し、
前記複数のイニシエータの各前記アクティブイニシエータは:
前記アクティブイニシエータによって生成されるペンディングアクセス要求の数を反復的に決定し、各前記ペンディングアクセス要求は、前記共有リソースのうちのある共有リソースにアクセスするためのペンディング要求であり;
前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる優先度レベルを反復的に決定し、決定することは、前記アクティブイニシエータによって生成される前記ペンディングアクセス要求の数、前記複数のイニシエータのうちの前記アクティブイニシエータの数、および前記共有リソースによってサービス可能なアクセス要求の数に基づき;
前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルについて、ネットワークオンチップの前記アービトレーションハードウェアに通知する;ように構成され、
前記アービトレーションハードウェアは:
各前記アクティブイニシエータについて、前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルに関して、反復的に受信し;
前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルに基づいて、前記共有リソースへのアクセスを反復的に管理する;ように構成される、
システム。
【請求項11】
各前記アクティブイニシエータは、前記アービトレーションハードウェアの少なくとも1つのアービトレーションユニットに関連付けられ;各前記アクティブイニシエータは、前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルについて、前記少なくとも1つのアービトレーションユニットに通知することを含む、
請求項10に記載のシステム。
【請求項12】
各前記アクティブイニシエータは、前記アクティブイニシエータがより少ない数の前記ペンディングアクセス要求を有する間に生成されるアクセス要求により高い優先度レベルを割り当てるように構成される、
請求項10に記載のシステム。
【請求項13】
複数の優先度レベル(L)があり、前記アクティブイニシエータは、前記複数の優先度レベルの中からある優先度レベルを選択するように構成される、
請求項10に記載のシステム。
【請求項14】
各前記優先度レベルは、前記ペンディングアクセス要求の数の範囲に関連付けられ、各前記アクティブイニシエータは、前記アクティブイニシエータによって生成される前記ペンディングアクセス要求の数を含む値の範囲を検索するように構成される、
請求項13に記載のシステム。
【請求項15】
各優先度レベル(Q)について、前記優先度レベルに関連付けられる前記ペンディングアクセス要求の数の前記範囲は、実質的に(L−1−Q)*R/M/(L−1)に等しい値から開始し、ここで、Rは、前記共有リソースによってサービス可能な前記アクセス要求の数であり、Mは、現在アクティブである前記複数のイニシエータの現在アクティブなイニシエータの数である、
請求項14に記載のシステム。
【請求項16】
前記各優先度レベル(Q)について、前記優先度レベルに関連付けられる前記ペンディングアクセス要求の数の前記範囲は、実質的に(L−Q)*R/M/(L−1)−1に等しい値で終わる、
請求項15に記載のシステム。
【請求項17】
前記複数のイニシエータ及び前記共有リソースは、先進運転支援システムに属する、
請求項10に記載のシステム。
【請求項18】
共有リソースへの複数のイニシエータのアクセスを管理するための命令を格納するコンピュータプログラムであって、前記命令は、システムによって実行されるとき、前記システムに:
前記複数のイニシエータのアクティブイニシエータが、前記アクティブイニシエータによって生成されるペンディングアクセス要求の数を決定することであって、各前記ペンディングアクセス要求は、前記共有リソースのうちのある共有リソースにアクセスするためのペンディング要求である、決定することと;
前記アクティブイニシエータが、前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる優先度レベルを決定することであって、前記決定することは、前記アクティブイニシエータによって生成される前記ペンディングアクセス要求の数、前記複数のイニシエータのうちの前記アクティブイニシエータの数、および前記共有リソースによってサービス可能なアクセス要求の数に基づく、決定することと;
前記アクティブイニシエータが、前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルについて、ネットワークオンチップのアービトレーションハードウェアに、各前記アクティブイニシエータによって生成されるすべての前記ペンディングアクセス要求に割り当てられることになる前記優先度レベルに基づいて前記アービトレーションハードウェアによって前記共有リソースへのアクセスを管理するように、通知することと;
を含む動作を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本特許出願は、その全体が参照により本明細書に組み込まれる2019年3月8日に出願された米国特許出願第62/815,389号に対する優先権の利益を主張するものである。
【背景技術】
【0002】
現代のネットワークオンチップ(NOC)では、複数のイニシエータ(中央処理装置(CPU)、グラフィック処理装置(GPU)、アクセラレータなど)が共有リソースをめぐって競合する。共有リソースの例は、メモリユニットおよび周辺機器を含む。メモリユニットの例は、ダブルデータレート(DDR)メモリユニットおよび同期ランダムアクセスメモリ(SRAM)ユニットを含む。メモリユニットと異なる共有リソースの例は、周辺コンポーネント相互接続エクスプレス(PCIe)ポートなどの通信ポートである。
【0003】
いくつかのイニシエータ(例えば、4つまでのイニシエータ)を含むシステム(以下、「小規模システム」)では、各イニシエータの帯域幅および待ち時間(latency requirements)の要件を識別し、要件を満たすために静的QOS(Quality of Service)スキームを適用することにより、共有リソースへのアクセスを管理することが容易である。
【0004】
コンテキストスイッチで複数のイニシエータが実行されている大規模なシステム(例えば、イニシエータが数個以上(イニシエータが4つ以上)の場合)では、QOS設定をオンザフライ(on-the-fly)で更新する必要がある。
【0005】
更新は、イニシエータの様々なパラメータに応答することができる。多くのイニシエータを有するシステムでは、QOS設定を維持するアービトレータ(arbitrators)にこれらのパラメータを供給するには、各イニシエータからアービトレーションハードウェアに多数のワイヤ(そのうちのいくつかは比較的長いかもしれない)をルーティングする必要があることがあり、これはタイミングの問題を引き起こし、システムを複雑にする可能性がある。長いワイヤは、所定の待ち時間を超える待ち時間を有するワイヤである。
【0006】
共有リソースへのアクセスを管理するための効率的なシステムと方法を提供する必要性が高まっている。
【発明の概要】
【0007】
以下の詳細な説明は、添付の図面を参照する。可能な限り、同一の参照番号は、図面及び以下の説明において、同一又は類似の部分を参照するために使用される。いくつかの例示的な実施形態が本明細書に記載されているが、修正、適応および他の実施形態が可能である。例えば、図面に示された構成要素に置換、追加、または修正を行うことができ、本明細書に記載された例示的な方法は、開示された方法にステップを置換、再順序付け、除去、または追加することによって修正することができる。従って、以下の詳細な説明は、開示された実施形態および例に限定されない。
【0008】
開示された実施形態は、自動ナビゲーション/運転またはドライバ支援技術の特徴の一部としてまたはそれと組み合わせて使用することができるシステムおよび方法を提供する。ドライバ支援技術とは、完全自動運転ではなく、前方衝突警報(FCW)、車線逸脱警報(LDW)および交通標識認識(TSR)など、車両のナビゲーションまたは制御において運転者を支援するのに適した任意の技術を指す。
【0009】
共有リソースへのアクセスを管理するためのシステム、方法、および非一時的コンピュータ可読媒体が提供され得る。
【図面の簡単な説明】
【0010】
本開示に組み込まれ、本開示の一部を構成する添付の図面は、種々の開示された実施形態を例示する。
【0011】
図1】開示された実施形態と一致するシステムのブロック図である。
図2A】開示された実施形態と一致するシステムを含む例示的な車両の概略的な側面図である。
図2B】開示された実施形態と一致する図2Aに示された車両およびシステムの概略平面図である。
図2C】開示された実施形態と一致するシステムを含む車両の別の実施形態の概略平面図である。
図2D】開示された実施形態と一致するシステムを含む車両のさらに別の実施形態の概略平面図である。
図2E】開示された実施形態と一致する例示的な車両制御システムの概略図である。
図3】開示された実施形態と一致する車両イメージングシステムのためのバックミラーおよびユーザインターフェースを含む車両内部の概略図である。
図4A】開示された実施形態と一致する方法の例である。
図4B】開示された実施形態と一致する方法の例である。
図5】開示された実施形態と一致する優先度レベルテーブルを示す。
図6】開示された実施形態と一致するシステムの一部を示す。
図7】開示された実施形態と一致するシステムの一部を示す。
【発明を実施するための形態】
【0012】
詳細に議論する前に、システムのダイナミックメモリモジュールの誤り訂正符号化およびメモリ管理の特徴の例が、自動運転、半自動運転、またはドライバ支援技術に関連する様々な特徴を提供し得る。
【0013】
このシステムは、車両の将来の経路を推定するために訓練されたニューラルネットワークを使用して道路を進む(navigating)車両の前方の環境の画像またはそれらの画像の処理の特徴に基づいて車両の将来の経路を推定するようにニューラルネットワークまたはディープラーニングアルゴリズムを訓練するための道路を進む車両の前方の環境の画像を処理するように構成され得る。
【0014】
本開示の主題の例による方法を実行及び実施するために使用することができる車両搭載可能なシステムの様々な可能な実装および構成が提供され得る。いくつかの実施形態では、システムの種々の例は、車両に取り付けることができ、車両が動いている間に操作することができる。いくつかの実施形態では、システムは、本開示の主題の例による方法を実装することができる。
【0015】
ここで参照する図1は、開示される実施形態と一致するシステム100のブロック図である。システム100は、特定の実装の要件に応じて、種々の構成要素を含むことができる。いくつかの例では、システム100は、処理ユニット110、画像取得ユニット120、および1つ又は複数のメモリユニット140、150を含むことができる。処理ユニット110は、1つ又は複数の処理デバイスを含むことができる。いくつかの実施形態では、処理ユニット110は、アプリケーションプロセッサ180、イメージプロセッサ190、または任意の他の適切な処理デバイスを含むことができる。同様に、画像取得ユニット120は、特定のアプリケーションの要件に応じて、任意の数の画像取得ユニットおよび構成要素を含むことができる。いくつかの実施形態では、画像取得ユニット120は、画像キャプチャデバイス122、画像キャプチャデバイス124、および画像キャプチャデバイス126などの1つ又は複数の画像キャプチャデバイス(例えば、カメラ)を含むことができる。いくつかの実施形態では、システム100はまた、処理ユニット110を画像取得ユニット120に通信接続するデータインターフェース128を含むことができる。例えば、データインターフェース128は、画像取得ユニット120によって取得された画像データを処理ユニット110に送信するための任意の有線または無線リンクを含むことができる。
【0016】
アプリケーションプロセッサ180およびイメージプロセッサ190の両方は、種々のタイプの処理デバイスを含むことができる。例えば、アプリケーションプロセッサ180およびイメージプロセッサ190のいずれかまたは両方は、1つ又は複数のマイクロプロセッサ、プリプロセッサ(イメージプリプロセッサなど)、グラフィックスプロセッサ、中央処理装置(CPU)、サポート回路、デジタルシグナルプロセッサ、集積回路、メモリ、または、アプリケーションを実行すること並びに画像処理および分析に適した任意の他のタイプのデバイスを含むことができる。いくつかの実施形態では、アプリケーションプロセッサ180またはイメージプロセッサ190は、任意のタイプのシングルまたはマルチコアプロセッサ、モバイルデバイスマイクロコントローラ、中央処理装置などを含むことができる。例えば、Intel(登録商標)、AMD(登録商標)等の製造業者から入手可能なプロセッサを含む種々の処理装置を使用することができ、種々のアーキテクチャ(例えば、x86プロセッサ、ARM(登録商標)等)を含むことができる。
【0017】
いくつかの実施形態では、アプリケーションプロセッサ180またはイメージプロセッサ190は、Mobileye(登録商標)から入手可能なプロセッサチップのEyeQシリーズのいずれかを含むことができる。これらのプロセッサ設計は、各々、ローカルメモリおよび命令セットを有する複数の処理ユニットを含む。このようなプロセッサは、複数のイメージセンサからイメージデータを受信するためのビデオ入力を含み得るまたビデオ出力機能を含み得る。1つの例では、EyeQ2(登録商標)は332Mhzで動作する90nm−ミクロン技術を使用する。EyeQ2(登録商標)アーキテクチャは、2つの浮動小数点、ハイパースレッド32ビットRISC CPU(MIPS32(登録商標)34K(登録商標)コア)、5つのビジョンコンピューティングエンジン(VCE)、3つのベクトルマイクロコードプロセッサ(VMP(登録商標))、デナリ64ビットモバイルDDRコントローラ、128ビット内部ソニックインターコネクト、デュアル16ビットビデオ入力コントローラおよび18ビットビデオ出力コントローラ、16チャンネルDMAおよびいくつかの周辺機器を有する。MIPS34K CPUは、5つのVCE、3つのVMP.TM、DMA、第2のMIPS34K CPUおよびマルチチャネルDMA並びに他の周辺機器を管理する。5つのVCE、3つのVMP(登録商標)およびMIPS34K CPUは、多機能バンドルアプリケーションで必要とされる集中的なビジョン計算(intensive vision computations)を実行することができる。別の例では、第3世代プロセッサであり、EyeQ2(登録商標)の6倍の性能を有するEyeQ3(登録商標)が、開示された例において使用され得る。さらに別の例では、第4世代プロセッサであるEyeQ4(登録商標)が、開示された例において使用され得る。
【0018】
図1は、処理ユニット110に含まれる2つの別々の処理デバイスを示しているが、より多い又はより少ない処理デバイスを用いることもできる。例えば、いくつかの例では、アプリケーションプロセッサ180およびイメージプロセッサ190のタスクを達成するために、単一の処理デバイスが使用され得る。他の実施形態では、これらのタスクは、2つ以上の処理デバイスによって実行されることができる。
【0019】
処理ユニット110は、種々のタイプのデバイスを含むことができる。例えば、処理ユニット110は、コントローラ、イメージプリプロセッサ、中央処理ユニット(CPU)、サポート回路、デジタルシグナルプロセッサ、集積回路、メモリ、または画像処理および分析のための任意の他のタイプのデバイスなどの種々のデバイスを含み得る。イメージプリプロセッサは、イメージセンサから画像をキャプチャし、デジタル化し、処理するためのビデオプロセッサを含むことができる。CPUは、任意の数のマイクロコントローラまたはマイクロプロセッサを含むことができる。サポート回路は、キャッシュ、電源、クロック、および入出力回路を含む、当技術分野で一般に知られている任意の数の回路であることができる。メモリは、プロセッサによって実行されるとき、システムの動作を制御するソフトウェアを格納することができる。メモリは、例えばニューラルネットワークなどの訓練されたシステムを含む、データベース及び画像処理ソフトウェアを含むことができる。メモリは、任意の数のランダムアクセスメモリ、リードオンリーメモリ、フラッシュメモリ、ディスクドライブ、光学記憶装置、リムーバブル記憶装置、および他のタイプの記憶装置を含むことができる。一例では、メモリは処理ユニット110から分離されることができる。別の例では、メモリは処理ユニット110に統合されることができる。
【0020】
各メモリユニット140、150は、プロセッサ(例えば、アプリケーションプロセッサ180またはイメージプロセッサ190)によって実行されるとき、システム100の様々な態様の動作を制御することができるソフトウェア命令を含むことができる。これらのメモリユニット140、150は、種々のデータベースおよび画像処理ソフトウェアを含むことができる。メモリユニット140、150は、ランダムアクセスメモリ、リードオンリーメモリ、フラッシュメモリ、ディスクドライブ、光記憶装置、テープ記憶装置、リムーバブル記憶装置、または任意の他のタイプの記憶装置を含むことができる。いくつかの例では、メモリユニット140、150は、アプリケーションプロセッサ180またはイメージプロセッサ190から分離することができる。他の実施形態では、これらのメモリユニット140、150は、アプリケーションプロセッサ180またはイメージプロセッサ190に統合することができる。
【0021】
いくつかの実施形態では、システムは、位置センサ130を含むことができる。位置センサ130は、システム100の少なくとも1つの構成要素に関連付けられる位置を決定するのに適した任意のタイプのデバイスを含むことができる。いくつかの実施形態では、位置センサ130は、GPS受信機を含むことができる。このような受信機は、全地球測位システム衛星によって放送される信号を処理することによって位置と速度を決定することができる。位置センサ130からの位置情報は、アプリケーションプロセッサ180またはイメージプロセッサ190に利用可能にすることができる。
【0022】
いくつかの実施形態では、システム100は、システム100が搭載されることができる車両に搭載された種々のシステム、デバイスおよびユニットに動作可能に接続可能であり、任意の適切なインターフェース(例えば、通信バス)を通して、システム100は、車両のシステムと通信することができる。システム100が協働することができる車両システムの例は、スロットルシステム、ブレーキシステム、およびステアリングシステムを含む。
【0023】
いくつかの実施形態では、システム100は、ユーザインターフェース170を含むことができる。ユーザインターフェース170は、例えば、タッチスクリーン、マイクロホン、キーボード、ポインタデバイス、トラックホイール、カメラ、ノブ、ボタン等を含む、システム100の1又は複数のユーザに情報を提供する或いはシステム100の1又は複数のユーザからの入力を受け取るのに適した任意のデバイスを含むことができる。情報は、ユーザインターフェース170を通してシステム100によってユーザに提供されることができる。
【0024】
いくつかの実施形態では、システム100は、地図データベース160を含むことができる。地図データベース160は、デジタル地図データを記憶するための任意のタイプのデータベースを含むことができる。いくつかの例では、地図データベース160は、道路、水の特徴(water features)、地理的特徴、関心ポイントなどを含む種々のアイテムの、基準座標系(reference coordinate system)における位置に関するデータを含むことができる。地図データベース160は、そのようなアイテムの位置だけでなく、例えば、記憶された任意の特徴に関連する名前およびそれらに関する他の情報を含む、それらのアイテムに関連する記述子(descriptors)も記憶することができる。例えば、既知の障害物の位置及び種類、道路の地形又は道路沿いのあるポイントの勾配(grade)に関する情報等をデータベースに含めることができる。いくつかの実施形態では、地図データベース160は、システム100の他の構成要素と物理的に配置される(located)ことができる。代替的または追加的に、地図データベース160またはその一部は、システム100の他の構成要素(例えば、処理ユニット110)に対して離れて配置されることができる。そのような実施形態では、地図データベース160からの情報は、ネットワークへの有線または無線データ接続(例えば、セルラネットワークまたはインターネットなど)を介してダウンロードすることができる。
【0025】
画像キャプチャデバイス122、124、および126はそれぞれ、環境から少なくとも1つの画像をキャプチャするのに適した任意のタイプのデバイスを含むことができる。さらに、イメージプロセッサに入力するための画像を取得するために、任意の数の画像キャプチャデバイスを使用することができる。本開示の主題のいくつかの例は、単一の画像キャプチャデバイスのみを含むことができ、またはそれを用いて実装することができるが、他の例は、2つ、3つ、またはさらに4つ以上の画像キャプチャデバイスを含むことができ、またはそれを用いて実装することができる。画像キャプチャデバイス122、124、および126は、以下に、図2B〜2Eを参照してさらに説明される。
【0026】
システム100は、例えば、音響センサ、RFセンサ(例えば、レーダトランシーバ)、およびLIDARセンサを含む、他のタイプのセンサを含むことができ、または、他のタイプのセンサと動作可能に関連付けられることができることが理解されるべきである。このようなセンサは、画像取得ユニット120とは独立して、または協働して使用することができる。例えば、レーダシステム(図示せず)からのデータは、例えば、画像取得ユニット120によって取得された画像を処理することから生じる特定の偽陽性をフィルタリングするため、画像取得ユニット120によって取得された画像を処理することから受信される処理された情報を検証するために使用することができる、または画像取得ユニット120からの画像データ、または画像取得ユニット120からの画像データの処理されたバリエーションまたは派生物と組み合わせたり、補完したりすることができる。
【0027】
システム100、またはその種々の構成要素は、種々の異なるプラットフォームに組み込むことができる。いくつかの実施形態では、システム100は、図2Aに示すように、車両200に含まれ得る。例えば、車両200は、図1に関して上述したように、処理ユニット110およびシステム100の他の構成要素のいずれかを備えることができる。一部の実施形態では、車両200は、単一の画像キャプチャデバイス(例えば、カメラ)のみを備えることができるが、図2B〜2Eに関連して説明するような他の実施形態では、複数の画像キャプチャデバイスを使用することができる。例えば、図2Aに示されるように、車両200の画像キャプチャデバイス122および124のいずれかは、ADAS(先進運転支援システム)イメージングセットの一部であることができる。
【0028】
画像取得ユニット120の一部として車両200に含まれる画像キャプチャデバイスは、任意の適切な位置に配置することができる。いくつかの実施形態では、図2A〜2Eおよび3A〜3Cに示されるように、画像キャプチャデバイス122は、バックミラーの近傍に配置されることができる。この位置は、車両200のドライバの視線と同様の視線を提供し得、これは、ドライバに見えるものと見えないものを決定する際に支援することができる。
【0029】
画像取得ユニット120の画像キャプチャデバイスのための他の位置も使用することができる。例えば、画像キャプチャデバイス124は、車両200のバンパー上またはバンパー内に配置されることができる。このような位置は、広い視野を有する画像キャプチャデバイスに特に適することができる。バンパー配置画像キャプチャデバイスの視線は、ドライバの視線とは異なることができる。画像キャプチャデバイス(例えば、画像キャプチャデバイス122、124、および126)は、他の位置に配置することもできる。例えば、画像キャプチャデバイスは、車両200のサイドミラーの一方または両方に、車両200の屋根に、車両200のフードに、車両200のトランクに、車両200の側面に、車両200の窓のいずれかに取り付けられ、後方に配置され、または前方に配置され、車両200の前方または後方の光像(light figures)内または光像の近くに取り付けられ得る。画像取得ユニット120、または画像取得ユニット120で使用される複数の画像キャプチャデバイスの1つである画像キャプチャデバイスは、車両のドライバの視野(FOV)とは異なるFOVを有することができ、必ずしも同じ物体を見るわけではない。一例では、画像取得ユニット120のFOVは、典型的なドライバのFOVを超えて広がることができ、したがって、ドライバのFOVの外側にあるオブジェクトを画像化することができる。さらに別の例では、画像取得ユニット120のFOVは、ドライバのFOVの一部である。いくつかの実施形態では、画像取得ユニット120のFOVは、車両の前方の道路の領域および場合によっては道路の周囲もカバーするセクタに対応する。
【0030】
画像キャプチャデバイスに加えて、車両200は、システム100の種々の他の構成要素を含むことができる。例えば、処理ユニット110は、車両のエンジン制御ユニット(ECU)と一体化されているかまたはそれから分離されているかのいずれかで車両200に含まれ得る。車両200はまた、GPS受信機などの位置センサ130を備えることができ、また、地図データベース160およびメモリユニット140および150を含み得る。
【0031】
図2Aは、本開示の主題の例による車両イメージングシステムの概略側面図である。図2Bは、図2Aに示された例の概略平面図である。図2Bに示されているように、開示された例は、車両200のバックミラーの近傍またはドライバの近くに配置された第1の画像キャプチャデバイス122と、車両200のバンパー領域(例えば、バンパー領域210の1つ)上または内に配置された第2の画像キャプチャデバイス124と、処理ユニット110とを有するシステム100をそのボディ内に含む、車両200を含むことができる。
【0032】
図2Cに示すように、画像キャプチャデバイス122および124は、両方とも、バックミラーの近傍または車両200のドライバの近くに配置され得る。加えて、2つの画像キャプチャデバイス122および124が図2Bおよび2Cに示されているが、他の実施形態は2つより多いの画像キャプチャデバイスを含み得ることを理解されたい。例えば、図2Dに示す実施形態では、第1、第2、および第3の画像キャプチャデバイス122、124、および126が、車両200のシステム100に含まれる。
【0033】
図2Dに示すように、画像キャプチャデバイス122、124、および126は、バックミラーの近傍または車両200のドライバシートの近くに配置され得る。開示された例は、画像キャプチャデバイスの任意の特定の数および構成に限定されず、画像キャプチャデバイスは、車両200内または車両200上の任意の適切な位置に配置され得る。
【0034】
開示された実施形態は、特定のタイプの車両200に限定されず、自動車、トラック、トレーラー、自動二輪車、自転車、セルフバランス式移動装置(self-balancing transport devices)および他のタイプの車両を含む全てのタイプの車両に適用可能であることも理解されるべきである。
【0035】
第1の画像キャプチャデバイス122は、任意の好適なタイプの画像キャプチャデバイスを含むことができる。画像キャプチャデバイス122は、光軸を含むことができる。一例では、画像キャプチャデバイス122は、グローバルシャッタを備えたAptina M9V024 WVGAセンサを含むことができる。別の例では、ローリングシャッタセンサを使用することができる。画像取得ユニット120、及び画像取得ユニット120の一部として実装される任意の画像キャプチャデバイスは、任意の所望の画像解像度を有することができる。例えば、画像キャプチャデバイス122は、1280×960ピクセルの解像度を提供することができ、ローリングシャッタを含むことができる。
【0036】
画像取得ユニット120、および画像取得ユニット120の一部として実装される任意の画像キャプチャデバイスは、種々の光学素子を含むことができる。いくつかの実施形態では、例えば、画像取得ユニット120に対して、および画像取得ユニット120の一部として実装される任意の画像キャプチャデバイスに対して、所望の焦点距離および視野を提供するために、1つ又は複数のレンズを含むことができる。いくつかの例では、画像取得ユニット120の一部として実装される画像キャプチャデバイスは、例えば6mmレンズまたは12mmレンズのような任意の光学素子を含むか、またはそれと関連付けられることができる。いくつかの例では、画像キャプチャデバイス122は、所望の(かつ既知の)視野(FOV)を有する画像をキャプチャするように構成することができる。
【0037】
第1の画像キャプチャデバイス122は、第1の一連の画像スキャンライン(image scanlines)の各々の取得に関連するスキャンレート(scan rate)を有し得る。スキャンレートは、イメージセンサが、特定のスキャンラインに含まれる各ピクセルに関連するイメージデータを取得することができる速度を指し得る。
【0038】
図2Eは、本開示の主題の例による、車両制御システムの概略図である。図2Eに示すように、車両200は、スロットルシステム220、ブレーキシステム230、およびステアリングシステム240を含むことができる。システム100は、1つ又は複数のデータリンク(例えば、データを送信するための任意の有線または無線リンクまたはリンク(複数))を介して、スロットルシステム220、ブレーキシステム230、およびステアリングシステム240の1つ又は複数に入力(例えば、制御信号)を提供することができる。例えば、画像キャプチャデバイス122、124、または126によって取得された画像の分析に基づいて、システム100は、スロットルシステム220、ブレーキシステム230、およびステアリングシステム240のうちの1つまたは複数に制御信号を提供して、車両200をナビゲートすることができる(例えば、加速/減速、ターン、車線変更などを引き起こすことによって)。さらに、システム100は、スロットルシステム220、ブレーキシステム230、およびステアリングシステム240のうちの1つまたは複数から、車両200の動作状態(例えば、速度、車両200がブレーキをかけているか曲がっているかなど)を示す入力を受け取ることができる。
【0039】
図3に示すように、車両200はまた、車両200のドライバまたは乗客と対話するためのユーザインターフェース170を含み得る。例えば、車両アプリケーションにおけるユーザインターフェース170は、タッチスクリーン320、ノブ330、ボタン340、およびマイクロホン350を含み得る。また、車両200のドライバまたは乗客は、システム100と対話するために、ハンドル(handles)(例えば、ターンシグナルハンドルを含む車両200のステアリングコラム上またはその近くに配置される)、ボタン(例えば、車両200のステアリングホイール上に配置される)などを使用し得る。いくつかの実施形態では、マイクロホン350は、バックミラー310に隣接して配置され得る。同様に、いくつかの実施形態では、画像キャプチャデバイス122は、バックミラー310の近くに配置され得る。いくつかの実施形態では、ユーザインターフェース170はまた、1つ又は複数のスピーカ360(例えば、車両オーディオシステムのスピーカ)を含み得る。例えば、システム100は、スピーカ360を介して種々の通知(例えば、警告)を提供し得る。
【0040】
本開示の利点を有する当業者には理解されるように、前述の開示された実施形態には、多数の変更または修正を加えることができる。例えば、全ての構成要素がシステム100の動作に必須であるわけではない。さらに、任意の構成要素をシステム100の任意の適切な部分に配置することができ、開示された実施形態の機能性を提供しつつ、構成要素を様々な構成に再配置することができる。従って、前述の構成は例示的なものであり、上述の構成にかかわらず、システム100は、車両200の周囲を分析し、この分析に応答して、車両200をナビゲートし、制御し、または操作するために、広範な機能性を提供することができる。車両200のナビゲーション、制御、または操作は、車両200に関連する種々の特徴、コンポーネント、デバイス、モード、システム、またはサブシステムを(直接的に、または上述のコントローラのような中間コントローラを介して)有効化または無効化することを含み得る。ナビゲーション、制御、または操作は、代替的にまたは追加的に、例えば、視覚、音声、触覚、または他の感覚的警告または表示を提供することによって、車両200の内側または外側に位置し得る、ユーザ、ドライバ、乗客、通行人、または他の車両もしくはユーザとの対話(interaction)を交互にまたは追加的に含み得る。
【0041】
以下でさらに詳細に説明し、種々の開示された実施形態と整合するように、システム100は、自動運転、半自動運転またはドライバ支援技術に関連する種々の特徴を提供し得る。例えば、システム100は、画像データ、位置データ(例えば、GPS位置情報)、地図データ、速度データ、または車両200に含まれるセンサからのデータを分析し得る。システム100は、例えば、画像取得ユニット120、位置センサ130、および他のセンサから、分析のためにデータを収集し得る。さらに、システム100は、収集されたデータを分析して、車両200が特定のアクションをとるべきか否かを判断し、次いで、人の介入なしに決定されたアクションを自動的に取り得る。ある場合には、車両によって自動的に行われるアクションは、人の監督下にあり、機械のアクションに介入、調整、中断又はオーバーライドする人の能力は、特定の状況下で、または、常に可能にされることが理解されるであろう。例えば、車両200が人の介在なしに航行する(navigates)場合、システム100は、(例えば、スロットルシステム220、ブレーキシステム230、およびステアリングシステム240のうちの1つまたは複数に制御信号を送ることによって)車両200のブレーキ、加速、または操舵を自動的に制御し得る。さらに、システム100は、収集されたデータを分析し、収集されたデータの分析に基づいて、ドライバ、乗客、ユーザ、または車両内外の他の人(または他の車両)に警告(warnings)、指示、勧告、アラート(alerts)、または命令(instruction)を発し得る。システム100によって提供される様々な実施形態に関するさらなる詳細は、以下に提供される。
【0042】
図4Aは、方法400を示す。図4Bは、方法401を示す。
【0043】
方法400および401は、共有リソースへの複数のイニシエータ(initiators)のアクセスを管理するためのものである。
【0044】
方法400は、ステップ410および420によって開始し得る。
【0045】
ステップ410は、アービトレーションハードウェアによる、共有リソースへのアクセスの管理を含み得る。アクセスは、アクティブイニシエータによって生成されるペンディングアクセス要求の優先レベル(priority levels)に基づいて管理され得る。
【0046】
アクティブイニシエータは、予め定義された期間の少なくとも一部の間にペンディングされている少なくとも1つのアクセス要求を生成したイニシエータである。予め定義された期間は、ステップ420、430、および440(およびオプションでステップ450)の1つ又は複数の反復の実行の持続時間と等しくなり得る、またはステップ420、430、および440(およびオプションでステップ450)の1つ又は複数の反復の実行の持続時間と異なり得る。
【0047】
任意の優先度ベースのアービトレーション(priority based arbitration)が適用され得る。例えば、ステップ410は、ラウンドロビンアービトレーション(round robin arbitration)プロセス、デイジーチェーンアービトレーション(daisy chain arbitration)プロセス、ランダムアービトレーションプロセス、重み付けラウンドロビンアービトレーションプロセス、疑似ランダムアービトレーションプロセス、優先度ベースのアービトレーションプロセスを適用し得、優先度ベースのラウンドロビンアービトレーションプロセスは、ペンディングアクセス要求の中で最も高い優先度レベルのアクセス要求のみを考慮に入れる。
【0048】
アービトレーションハードウェアは、時々、ペンディングアクセス要求の優先度レベルの更新を受信し、それに応じて優先度を更新し得る。
【0049】
従って、方法400は、別の優先度レベルで以前に受信したアクセス要求の優先度を更新することを含み得る。
【0050】
例えば、イニシエータが第1優先度の第1のアクセス要求を送信したと仮定する(第1のアクセス要求は、ペンディングアクセス要求がほとんどない間に送信された)。第1のアクセス要求がまだペンディングされている間に、イニシエータはより多くのアクセス要求を送信した。そのため、より遅い時点では、より多くのペンディングアクセス要求が存在する。これらの仮定の下で、第1のアクセス要求の優先度は(およそ後の時点で)低下し、現在、イニシエータに関連する多くのペンディングアクセス要求が存在することを反映する。その結果、共有リソースへの多くのアクセス要求を引き起こす欲張りのイニシエータ(greedy initiator)は、優先度が低下し、そのアクセス要求は、他のイニシエータがより公平な方法でサービスを受け得るように、より低い優先度レベルが与えられる。
【0051】
ステップ420は、複数のイニシエータの各アクティブイニシエータによって、アクティブイニシエータによって生成されるペンディングアクセス要求の数を決定することを含み得、各アクセス要求は、共有リソースのうちのある共有リソースにアクセスするための要求である。
【0052】
ステップ420は、各アクティブイニシエータによって、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルを決定するステップ430が続き得る。
【0053】
この優先度レベルは、イニシエータによって生成される各ペンディングアクセス要求に適用されるべきである。
【0054】
決定することは、アクティブイニシエータによって生成されたペンディングアクセス要求の数、アクティブイニシエータの数、および共有リソースによってサービス可能なアクセス要求に数に基づく。各共有リソースは、アクセス要求にサービスを提供する最大容量を有し、異なる時点で、異なる数のイニシエータにサービスを提供し得、そのため、異なる時点で、可変数のアクセス要求にサービスを提供し得る。
【0055】
共有リソースまたは任意の他のユニット若しくはコンポーネントは、共有リソースによってサービス可能なアクセス要求を決定し得る。
【0056】
ステップ430は、(イニシエータに関連する)アクセス要求により高い優先度を割り当てることを含み得、このようなアクセス要求は、イニシエータからのペンディングアクセス要求の数がより少なかったときに生成された。優先度は、優先度レベルとして記憶され得、これは、実施形態では、より高い数字がより高い優先度を示し、より低い数字がより低い優先度を示す範囲の数値スコアである。このように、例えば、優先度は、0〜7の範囲を使用して測定され得、優先度レベル0は、最低の優先度であり、優先度レベル7は、最高の優先度である。
【0057】
アクセス要求には、複数の優先度レベル(L)が存在し得る。Lは1を超える整数である。このように、Lは、システムで使用可能な優先度レベルの数を表す。優先度レベルを表すために3ビットのフィールドを使用するシステムでは、優先度レベルの最大数は8であり、Lは8に設定され得る。4ビットのフィールドでは、列挙され得る優先度レベルの最大数は16であるため、システムがどのように構成されるかに応じて、使用する優先度レベルの数(L)は最小2または最大16に設定され得る。
【0058】
ステップ430は、アクティブイニシエータの数および共有リソースがサービス可能なリクエストの数に基づいて、L優先度レベルから有効な優先度レベルを決定することを含み得る。
【0059】
複数の優先度レベルのそれぞれは、ペンディングアクセス要求の値の範囲に関連付けられる。
【0060】
ステップ430は、アクティブイニシエータによって生成されるペンディングアクセス要求の数を含む値の範囲を検索することを含み得る。
【0061】
各優先度レベル(Q)について、優先度レベルに対応する数の範囲は、実質的に(L−1−Q)*R/M/(L−1)に等しい値によって開始し得る。
1. Rは、共有リソースによってサービス可能(同時にサービス可能またはステップ420、430および440の単一サイクル内でサービス可能)なアクセス要求の数である。
2. Mは複数のイニシエータの現在アクティブなイニシエータの数である。
【0062】
各優先度レベル(Q)について、数の範囲は、(L−Q)*R/M/(L−1)−1に実質的に等しい値で終わる。
【0063】
実質的に等しいものは、最大5%、10%などの偏差を含み得る。
【0064】
ステップ430は、各アクティブイニシエータによって、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルについて、ネットワークオンチップのアービトレーションハードウェアに通知するステップ440が続いてもよい。
【0065】
各アクティブイニシエータは、アービトレーションハードウェアの少なくとも1つのアービトレーションユニットに関連付けられる。各アクティブイニシエータについて、ステップ440は、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルについて、少なくとも1つのアービトレーションユニットに通知することを含み得る。
【0066】
図4Aは、ステップ440が、ステップ420、430、および440を再度反復するようにステップ420が後に続き得ることを示す。
【0067】
図4Bは、ステップ440は、ステップ450が後に続き得ることを示す。ステップ450は、ステップ420、430および440を再度反復するようにステップ420が後に続き得る。
【0068】
ステップ450は、通知への応答を含み得る。
【0069】
ステップ450は、アービトレーションハードウェア、イニシエータ等によって実行され得る。
【0070】
ステップ450は、ネットワークのチップのアービトレーションハードウェアによって、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルを更新することを含み得る。
【0071】
更新は、ステップ440の現在の反復の前にペンディングされていた、少なくともペンディングアクセス要求の優先度レベルを変更することを含み得る。
【0072】
例えば、アクティブイニシエータからのペンディングアクセス要求の数が、ステップ440の現在の反復とステップ440の前回の反復との間に(少なくとも、優先度レベルの低下を必要とする量だけ)増加した場合、更新は、アクティブイニシエータからのペンディングアクセス要求の優先度レベルを低下させることを含み得る。
【0073】
別の例では、アクティブイニシエータからのペンディングアクセス要求の数が、ステップ440の現在の反復とステップ440の前回の反復との間に(少なくとも、優先度レベルの増加を必要とする量だけ)減少した場合、更新は、アクティブイニシエータからのペンディングアクセス要求の優先度レベルを増加させることを含み得る。
【0074】
ステップ450は、ステップ410が後に続いてもよく、その間、この方法は、1つ又は複数のアクティブイニシエータからのアクセス要求間のアービトレーションを実行し得る。アービトレーション(arbitrating)は、少なくとも部分的には、アクセス要求の優先度に基づいて行われる。
【0075】
方法400は、ステップ410の実行中に、ステップ420、430および440の複数の反復が実行されることを可能にする。
【0076】
方法401は、ステップ410の実行中に、ステップ420、430、440、および450の複数の反復が実行されることを可能にする。
【0077】
方法400または方法401は、先進運転支援システムまたは自動運転システムによって実行され得る。
【0078】
複数のイニシエータは、CPU、GPU、周辺機器、センサであり得、共有リソースは、メモリモジュール、計算リソースなどであり得る。
【0079】
図5は、第1の表500および第2の表502の例である。
【0080】
第1の表500は、8つの優先レベルに対する種々の開始点および終了点を示す。第2の表502は、8つの優先度レベルおよびR、M、およびLの特定の値に対する種々の開始点および終了点を示している。表502では、イニシエータ(T)からの要求の数が36から44の間である場合、3の優先度レベル(Q)が割り当てられる。要求数(T)が増加するにつれて、優先度(Q)は減少する。
【0081】
図6は、開示された実施形態と一致するシステムの一部600を示す。
【0082】
システムの一部600は、アービトレーションハードウェア612を含むネットワークオンチップ610を含む。アービトレーションハードウェア612は、K個のアービトレーションユニット612(1)〜612(K)を含み得、Kは2より大きい。
【0083】
共有リソースは共有メモリ620、命令RAM603、およびブートメモリ604である。イニシエータは、CPU601、周辺機器602、コンピュータビジョンプロセッサ605、ハードウェアセキュリティモジュール606、およびセンサインターフェース607である。
【0084】
他のイニシエータまたは他の共有リソースが存在し得る。共有リソースは、計算リソースが含み得る。アクセスは、ネットワークオンチップを介して、または任意の他の相互接続若しくはネットワーク要素を介して行うことができる。
【0085】
ネットワークオンチップ610は、共有メモリ620、命令RAM603およびブートメモリ604、CPU601、周辺機器602、コンピュータビジョンプロセッサ605、ハードウェアセキュリティモジュール606、およびセンサインターフェース607に結合される。
【0086】
アービトレーションハードウェア612は、方法400または401を適用することによって共有リソースへの、ネットワークオンチップを介した、イニシエータのアクセスを管理し得る。
【0087】
CPU601、周辺機器602、コンピュータビジョンプロセッサ605、ハードウェアセキュリティモジュール606およびセンサインターフェース607の各アクティブイニシエータは、アクティブイニシエータによって生成されるペンディングアクセス要求の数を反復して決定するように構成され得、各アクセス要求は、共有リソースのうちのある共有リソースにアクセスするための要求である。
【0088】
各アクティブイニシエータは、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルを反復して決定するように構成され得、その決定は、アクティブイニシエータによって生成されるペンディングアクセス要求の数、複数のイニシエータのアクティブイニシエータの数、および共有リソースによってサービス可能なアクセス要求の数に基づいて行われる。
【0089】
アービトレーションハードウェア612は、各アクティブイニシエータについて、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルに関する情報を反復的に受信するように構成され得、優先度レベルを(必要に応じて)更新し得、各アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルに基づいて、共有リソースへのアクセスを反復的に管理し得る。
【0090】
各アクティブイニシエータは、612(1)〜612(K)の少なくとも1つのアービトレーションユニットに関連付けられ、少なくとも1つのアービトレーションユニットは、アクティブイニシエータによって生成されたすべてのペンディングアクセス要求に割り当てられることになる優先度レベルを反復的に受信するように構成され得る。
【0091】
各アクティブイニシエータは、アクティブイニシエータが少ない数のペンディングアクセス要求を有する間に生成されるアクセス要求に高い優先度レベルを割り当てることによって、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルを決定するように構成され得る。
【0092】
複数の優先度レベル(L)があり、各アクティブイニシエータは、複数の優先度レベルの中から優先度レベルを選択することによって、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルを決定するように構成され得る。
【0093】
各アクティブイニシエータは、複数の優先度レベルから優先度レベルを選択することによって、優先度レベルを決定するように構成され得る。
【0094】
各優先度レベルは、ペンディングアクセス要求の数の範囲に関連付けられ、各アクティブイニシエータは、アクティブイニシエータによって生成されるペンディングアクセス要求の数を含む値の範囲を検索することによって、アクティブイニシエータによって生成されるすべてのペンディングアクセス要求に割り当てられることになる優先度レベルを決定するように構成され得る。
【0095】
各優先度レベル(Q)について、優先度レベルに関連付けられるペンディングアクセス要求の数の範囲は、実質的に(L−1−Q)*R/M/(L−1)に等しい値から開始し、ここで、Rは、共有リソースによってサービス可能なアクセス要求の数であり、Mは、現在アクティブである複数のイニシエータの現在アクティブなイニシエータの数である。
【0096】
各優先度レベル(Q)について、優先度レベルに関連付けられるペンディングアクセス要求の数の範囲は、実質的に(L−Q)*R/M/(L−1)−1に等しい値で終わる。
【0097】
図7は、システムの一部の一例を示す。図7は、本出願の他の図と同様に、非限定的な例を提供する。例えば、図7のスイッチの数、スイッチ当たりのポートの数、各スイッチに結合されるイニシエータの数、およびイニシエータの数は、単なる非限定的な例である。
【0098】
8つのイニシエータM0−M7 711−718、8つのアービトレーションスイッチSW0−SW7 721−728などの8つのアービトレーションユニットを含むアービトレーションハードウェア720、および2つの共有リソースS0−S1 731−732がある。
【0099】
アービトレーションスイッチは、アービトレーションスイッチの2つのシーケンスに配置されている。第1のシーケンスは、3入力1出力(「3×1」で示す)スイッチSW0、SW1、SW2、SW3、SW4、SW5を含み、第2のシーケンスは、2入力1出力(「2×1」で示す)スイッチSW6、SW7を含む。各アービトレーションスイッチはまた、1つ又は複数のイニシエータに結合される。
【0100】
各シーケンス内で、アービトレーションスイッチの出力(シーケンスの最後のアービトレーションスイッチを除く)が、シーケンスの次のアービトレーションスイッチの入力に結合される。
【0101】
アービトレーションスイッチSW0−SW7 721−728は、優先ラウンドロビンポリシー(prioritized round-robin policy)(最高の優先度を持つイニシエータ間のラウンドロビン)を適用するように構成される。任意の他の優先度ベースのアービトレーションスキームが適用され得る。
【0102】
SW0 721は、M0 711、M1 712およびSW2 723の間でアービトレートする(arbitrate)ように構成され得る。
【0103】
SW2 723は、M2 713、M3 714およびSW4 725の間でアービトレートするように構成され得る。
【0104】
SW4 725は、M4 715、M5 716およびSW6 727の間でアービトレートするように構成され得る。
【0105】
SW6 727は、M6 717とM7 718との間でアービトレートするように構成され得る。
【0106】
SW1 722は、M0 711、M1 712およびSW3 724の間でアービトレートするように構成され得る。
【0107】
SW3 724は、M2 713、M3 714およびSW5 726の間でアービトレートするように構成され得る。
【0108】
SW5 726は、M4 715、M5 716およびSW7 728の間でアービトレートするように構成され得る。
【0109】
SW7 728は、M6 717とM7 718との間でアービトレートするように構成され得る。
【0110】
各イニシエータは、イニシエータによって生成されるアクセス要求の現在の優先度に関して、イニシエータに関連付けられるアービトレーションユニットを更新するように構成され得る。例えば、イニシエータM0 711は、SW0 721およびSW1 722を更新することができ、他のアービトレーションスイッチを更新しないことができる。
【0111】
システムへの言及は、必要な変更を加えて、システムによって実行される方法、またはシステムによって実行されるとシステムに方法を実行させる命令を記憶するコンピュータプログラム製品に適用されるべきである。コンピュータプログラム製品は、非一時的であり得、例えば、集積回路、磁気メモリ、光メモリ、ディスクなどであり得る。
【0112】
方法への言及は、必要な変更を加えて、方法を実行するように構成され得るシステム、またはシステムによって実行されると、システムに方法を実行させる命令を記憶するコンピュータプログラム製品に適用されるべきである。
【0113】
コンピュータプログラム製品への言及は、必要な変更を加えて、システムによって実行される方法又はコンピュータプログラム製品に記憶される命令を実行するように構成され得るシステムに適用されるべきである。
【0114】
用語「および/または」は、追加的にまたは代替的にである。
【0115】
前述の明細書では、本発明の実施形態の特定の例を参照して本発明を説明した。しかし、添付の特許請求の範囲に記載された本発明のより広範な精神および範囲から逸脱することなく、様々な修正および変更をその中で行うことができることは明らかであろう。
【0116】
さらに、明細書及び、もしあれば、請求項中の用語「前部」、「後部」、「頂部」、「底部」、「上」、「下」等は、説明のために使用され、永続的な相対的位置を記載するためには必ずしも使用されない。理解されるべき点は、これらの用いられる用語が、本願明細書に記載された実施形態を例えば図示された方向又は本願明細書に記載された方向以外の他の方向で動作させるような適切な環境下で相互に交換可能であることである。
【0117】
同じ機能を達成するための構成要素の任意の構成が、所望の機能が達成されるように、実質的に「関連」する。従って、特定の機能を達成するために本明細書中で組み合わされる任意の2つの構成要素は、アーキテクチャまたは中間構成要素にかかわらず、所望の機能が達成されるように、互いに「関連」するとみなされ得る。同様に、そのように関連する任意の2つの構成要素は、所望の機能を達成するために、互いに「動作可能に接続されている」または「動作可能に結合されている」とみなされることができる。
【0118】
さらに、当業者は、上述の動作間の境界が単に例示的なものであることを認識するであろう。複数の動作は、単一の操作に動作され得、単一の動作は、追加の動作に分散され得、動作は、少なくとも部分的に時間的に重複して実行され得る。さらに、代替の実施形態は、特定の動作の複数のインスタンスを含み得、動作の順序は、種々の他の実施形態では変更され得る。
【0119】
しかし、他の修正、バリエーション及び代替案も可能である。したがって、明細書及び図面は、限定的な意味ではなく、例示とみなされるべきである。
【0120】
「Xであり得る」という語句は、条件Xが満たされ得ることを示す。この句はまた、条件Xが満たされないかもしれないことを示唆する。例えば、あるコンポーネントを含むシステムへの言及は、そのシステムがあるコンポーネントを含まないシナリオもカバーすべきである。
【0121】
用語「含む」、「有する」、「有する」は、交換可能な方法で使用される。例えば、任意の方法は、少なくとも図面または明細書に含まれるステップ、または図面または明細書に含まれるステップのみを含み得る。同様のことが、システム及びモバイルコンピュータにも当てはまる。
【0122】
図面を簡単かつ明瞭にするために、図面に示された要素は必ずしも縮尺通りに描かれていないことが理解されるであろう。例えば、要素のいくつかの寸法は、明瞭化のために他の要素と比較して誇張されることがある。さらに、適切と考えられる場合には、対応する要素又は類似の要素を示すために、図の間で参照番号を繰り返すことがある。
【0123】
また、例えば、一実施形態では、図示された例は、単一の集積回路上または同一デバイス内に配置された回路として実装されることがある。あるいは、例は、適切な方法で相互に相互接続される任意の数の別個の集積回路または別個のデバイスとして実施されることがある。
【0124】
また、例えば、例またはその一部は、任意の適切なタイプのハードウェア記述言語など、物理回路または物理回路に変換可能な論理表現のソフトまたはコード表現として、で実装することができる。
【0125】
また、本発明は、非プログラマブルハードウェアで実現される物理デバイスまたはユニットに限定されるものではなく、メインフレーム、ミニコンピュータ、サーバ、ワークステーション、パーソナルコンピュータ、ノートパッド、パーソナルデジタルアシスタント、電子ゲーム、自動車および他の埋め込みシステム、携帯電話、および本出願において一般に「コンピュータシステム」と称される種々の他の無線デバイスなどの適切なプログラムコードに従って動作することによって、所望のデバイス機能を実行することができるプログラマブルデバイスまたはユニットにも適用することができる。
【0126】
しかし、他の修正、バリエーション及び代替案も可能である。したがって、明細書及び図面は、限定的な意味ではなく、例示的とみなされる。
【0127】
請求項において、括弧の間に付された引用符号は、請求項を限定するものと解釈してはならない。「有する」という語は、請求項に列挙されている他の要素又はステップの存在を除外しない。さらに、用語「1つの、ある(「a」又は「an」)」は、本明細書で使用される場合、1つ又は複数として定義される。また、請求項中の「少なくとも1つ」及び「1つ又は複数」などの導入句の使用は、不定冠詞「1つの、ある(「a」又は「an」)」による別の請求項の要素の導入が、そのように導入された請求項の要素を含む特定の請求項を、導入句「1つ又は複数」又は「少なくとも1つ」及び「1つの、ある(「a」又は「an」)」のような不定冠詞を含む場合であっても、そのような導入された請求項の要素を含む特定の請求項を、そのような1つの要素のみを含む発明に限定することを意味すると解釈されるべきではない。特に示されない限り、「第1」及び「第2」のような語は、これらの語が表す要素間を任意に区別するために用いられる。したがって、これらの用語は、必ずしも、ある手段が相互に異なる請求項に記載されているという単なる事実だけでは、これらの手段の組み合わせが有利に使用できないことを示すものではない。
【0128】
本明細書において、「または」という用語は、特に示されない限り、「AまたはB」が「BではなくA」、「B」、および「AおよびBを含むように」のように非排他的orを示すために使用される。添付の特許請求の範囲では、「含む」および「その中で(in which)」という用語は、それぞれの用語「有する」および「ここで(wherein)」の平易な英語の等価物として使用される。また、以下の特許請求の範囲において、「含む」および「有する」という用語は、オープンエンドである。すなわち、当該用語の後に列挙されたものに加えて要素を含むシステム、デバイス、物品、またはプロセスは、依然として当該特許請求の範囲内にあるとみなされる。
【0129】
本発明の特定の特徴が図示され、本明細書に記載されているが、当業者には、ここで、多くの修正、置換、変化、および均等物が生じる。従って、添付の特許請求の範囲は、そのような修正及び変更全てが本発明の真の精神の範囲内にあるとしてカバーすることを意図していることを理解されたい。
【0130】
図面、明細書又は特許請求の範囲のいずれかに示されている任意の構成要素又はシステムのユニットの任意の構成要素の任意の組み合わせを提供することができる。
【0131】
図面、明細書又は特許請求の範囲の何れかに例示されている任意のシステムの任意の組み合わせを提供することができる。
【0132】
図面、明細書又は特許請求の範囲のいずれかに例示されているステップ、動作又は方法の任意の組み合わせを提供することができる。
【0133】
図面、明細書又は特許請求の範囲のいずれかに例示されている動作の任意の組み合わせを提供することができる。
【0134】
図面、明細書又は特許請求の範囲のいずれかに例示されている方法の任意の組み合わせを提供することができる。
【0135】
さらに、例示的な実施形態が本明細書に記載されているが、本開示に基づいて当業者に理解されるように、すべての実施形態の範囲は、均等の要素、修正、省略、組み合わせ(例えば、様々な実施形態にわたる態様のもの)、適応または変更を有する。請求項における限定は、請求項で使用されている文言に基づいて広く解釈されるべきであり、本明細書に記載されている例や出願手続き中の例に限定されるものではない。これらの例は、非排他的であると解釈される。さらに、開示された方法のステップは、ステップの順序を変えること、またはステップを挿入もしくは削除することを含む任意の方法で修正することができる。従って、明細書及び例は単に例示的であるとみなされ、真の範囲及び精神は、以下の特許請求の範囲及びそれらの均等物の全範囲によって示されることが意図されている。
図1
図2A
図2B
図2C
図2D
図2E
図3
図4A
図4B
図5
図6
図7