(57)【要約】  バスデッドロックを回避するようにトランザクションを順序付けるための方法および装置が提供される。例示的な方法では、ネットワークトポロジーおよびトラフィックプロファイルに基づいて、複数の相互接続を介した複数のマスタと複数のスレーブとの間のデータ転送に関して、データ転送のためのカスタム経路指定規則が定義される。一例では、カスタマイズされた規則は、複数の相互接続のうちの第2の相互接続において要求アドレスに関連する書込みデータを受け取る前に要求アドレスが複数の相互接続のうちの第1の相互接続において調停の第1の段階における調停を受けることを可能にし、要求アドレスが他の競合するアドレス要求に勝利しない限り、要求アドレスがその後の調停の第2の段階の間に調停を受けることを許容しない。
2015508193.tif 000002
【特許請求の範囲】
【請求項１】
バスデッドロックを軽減するための方法であって、ネットワークトポロジーおよびトラフィックプロファイルに基づいて、複数の相互接続を介した複数のマスタと複数のスレーブとの間のデータ転送に関するカスタマイズされた経路指定規則を定義するステップを含む方法。
【請求項２】
前記カスタマイズされた規則は、
前記複数の相互接続のうちのある相互接続において要求アドレスに関連する書込みデータを受け取る前に前記要求アドレスが前記相互接続において調停の第1の段階における調停を受けるのを可能にし、
前記要求アドレスが、対応する書込みデータを有さない限り、前記要求アドレスがその後の調停の第2の段階の間調停を受けることを許容しない、請求項1に記載の方法。
【請求項３】
前記カスタマイズされた規則は、前記複数の相互接続のうちのある相互接続において第1の要求アドレスおよび第2の要求アドレスに関連するそれぞれの書込みデータを受け取る前に前記第1の要求アドレスおよび前記第2の要求アドレスが前記相互接続において調停を受けることを可能にし、前記第1の要求アドレスと前記第2の要求アドレスはどちらもリモートスレーブをターゲットとする、請求項1に記載の方法。
【請求項４】
前記カスタマイズされた規則は、リモートスレーブアドレス要求がリモートスレーブをターゲットとし、ローカルスレーブアドレス要求が前記リモートスレーブアドレス要求に後続する場合、前記複数の相互接続のうちのある相互接続のそれぞれのマスタポートからリモートスレーブ書込みデータが除去されるまでローカルスレーブをターゲットとする前記ローカルスレーブアドレス要求をブロックする、請求項1に記載の方法。
【請求項５】
前記カスタマイズされた規則は、ローカルスレーブの書込みデータに関連するローカルスレーブアドレス要求がローカルスレーブをターゲットとし、リモートスレーブアドレス要求がリモートスレーブをターゲットとし、前記リモートスレーブアドレス要求が前記ローカルスレーブアドレス要求の後に受け取られる場合、前記複数の相互接続のうちのある相互接続上でそれぞれのマスタポートから前記ローカルスレーブの書込みデータが除去される後まで前記リモートスレーブアドレス要求をブロックする、請求項1に記載の方法。
【請求項６】
バスデッドロックを軽減するように構成された装置であって、ネットワークトポロジーおよびトラフィックプロファイルに基づいて、複数の相互接続を介した複数のマスタと複数のスレーブとの間のデータ転送に関するカスタマイズされた経路指定規則を定義するための手段を備える装置。
【請求項７】
前記カスタマイズされた規則は、
前記複数の相互接続のうちのある相互接続において要求アドレスに関連する書込みデータを受け取る前に前記要求アドレスが前記相互接続において調停の第1の段階における調停を受けるのを可能にし、
前記要求アドレスが、対応する書込みデータを有さない限り、前記要求アドレスがその後の調停の第2の段階の間調停を受けることを許容しない、請求項6に記載の装置。
【請求項８】
前記カスタマイズされた規則は、前記複数の相互接続のうちのある相互接続において第1の要求アドレスおよび第2の要求アドレスに関連するそれぞれの書込みデータを受け取る前に前記第1の要求アドレスおよび前記第2の要求アドレスが前記相互接続において調停を受けることを可能にし、前記第1の要求アドレスと前記第2の要求アドレスはどちらもリモートスレーブをターゲットとする、請求項6に記載の装置。
【請求項９】
前記カスタマイズされた規則は、リモートスレーブアドレス要求がリモートスレーブをターゲットとし、ローカルスレーブアドレス要求が前記リモートスレーブアドレス要求に後続する場合、前記複数の相互接続のうちのある相互接続のそれぞれのマスタポートからリモートスレーブ書込みデータが除去されるまでローカルスレーブをターゲットとする前記ローカルスレーブアドレス要求をブロックする、請求項6に記載の装置。
【請求項１０】
前記カスタマイズされた規則は、ローカルスレーブの書込みデータに関連するローカルスレーブアドレス要求がローカルスレーブをターゲットとし、リモートスレーブアドレス要求がリモートスレーブをターゲットとし、前記リモートスレーブアドレス要求が前記ローカルスレーブアドレス要求の後に受け取られる場合、前記複数の相互接続のうちのある相互接続上でそれぞれのマスタポートから前記ローカルスレーブの書込みデータが除去される後まで前記リモートスレーブアドレス要求をブロックする、請求項6に記載の装置。
【請求項１１】
前記装置の少なくとも一部が半導体ダイに組み込まれる、請求項6に記載の装置。
【請求項１２】
前記装置が組み込まれる、特定用途向け集積回路、システムオンチップ(SoC)集積回路の一部、基地局、モバイルデバイス、マイクロコントローラ、データ処理デバイス、およびコンピュータのうちの少なくとも1つをさらに備える、請求項6に記載の装置。
【請求項１３】
バスデッドロックを軽減するように構成された装置であって、ネットワークトポロジーおよびトラフィックプロファイルに基づいて、複数の相互接続を介した複数のマスタと複数のスレーブとの間のデータ転送に関するカスタマイズされた経路指定規則を定義するように構成されたプロセッサを備える装置。
【請求項１４】
前記カスタマイズされた規則は、
前記複数の相互接続のうちのある相互接続において要求アドレスに関連する書込みデータを受け取る前に前記要求アドレスが前記相互接続において調停の第1の段階における調停を受けるのを可能にし、
前記要求アドレスが、対応する書込みデータを有さない限り、前記要求アドレスがその後の調停の第2の段階の間調停を受けることを許容しない、請求項13に記載の装置。
【請求項１５】
前記カスタマイズされた規則は、前記複数の相互接続のうちのある相互接続において第1の要求アドレスおよび第2の要求アドレスに関連するそれぞれの書込みデータを受け取る前に前記第1の要求アドレスおよび前記第2の要求アドレスが前記相互接続において調停を受けることを可能にし、前記第1の要求アドレスと前記第2の要求アドレスはどちらもリモートスレーブをターゲットとする、請求項13に記載の装置。
【請求項１６】
前記カスタマイズされた規則は、リモートスレーブアドレス要求がリモートスレーブをターゲットとし、ローカルスレーブアドレス要求が前記リモートスレーブアドレス要求に後続する場合、前記複数の相互接続のうちのある相互接続のそれぞれのマスタポートからリモートスレーブ書込みデータが除去されるまでローカルスレーブをターゲットとする前記ローカルスレーブアドレス要求をブロックする、請求項14に記載の装置。
【請求項１７】
前記カスタマイズされた規則は、ローカルスレーブの書込みデータに関連するローカルスレーブアドレス要求がローカルスレーブをターゲットとし、リモートスレーブアドレス要求がリモートスレーブをターゲットとし、前記リモートスレーブアドレス要求が前記ローカルスレーブアドレス要求の後に受け取られる場合、前記複数の相互接続のうちのある相互接続上でそれぞれのマスタポートから前記ローカルスレーブの書込みデータが除去される後まで前記リモートスレーブアドレス要求をブロックする、請求項15に記載の装置。
【請求項１８】
前記装置の少なくとも一部が半導体ダイに組み込まれる、請求項15に記載の装置。
【請求項１９】
前記装置が組み込まれる、特定用途向け集積回路、システムオンチップ(SoC)集積回路の一部、基地局、モバイルデバイス、マイクロコントローラ、データ処理デバイス、およびコンピュータのうちの少なくとも1つをさらに備える、請求項15に記載の装置。
【請求項２０】
プロセッサによって実行された場合に、前記プロセッサに、ネットワークトポロジーおよびトラフィックプロファイルに基づいて、複数の相互接続を介した複数のマスタと複数のスレーブとの間のデータ転送に関するカスタマイズされた経路指定規則を定義するステップを含む方法を実行させる命令が記録された非一時的コンピュータ可読記録媒体。
【請求項２１】
前記コンピュータ可読記録媒体が組み込まれる、特定用途向け集積回路、システムオンチップ(SoC)集積回路の一部、基地局、モバイルデバイス、マイクロコントローラ、データ処理デバイス、およびコンピュータのうちの少なくとも1つをさらに備える、請求項20に記載の非一時的コンピュータ可読記録媒体。
【請求項２２】
前記カスタマイズされた規則は、
前記複数の相互接続のうちの第2の相互接続において要求アドレスに関連する書込みデータを受け取る前に前記要求アドレスが前記複数の相互接続のうちの第1の相互接続において調停の第1の段階における調停を受けるのを可能にし、
前記要求アドレスが他の競合するアドレス要求に勝利しない限り、前記要求アドレスがその後の調停の第2の段階の間調停を受けることを許容しない、請求項20に記載の非一時的コンピュータ可読記録媒体。
【請求項２３】
前記カスタマイズされた規則は、前記複数の相互接続のうちのある相互接続において第1の要求アドレスおよび第2の要求アドレスに関連するそれぞれの書込みデータを受け取る前に前記第1の要求アドレスおよび前記第2の要求アドレスが前記相互接続において調停を受けることを可能にし、前記第1の要求アドレスと前記第2の要求アドレスはどちらもリモートスレーブをターゲットとする、請求項20に記載の非一時的コンピュータ可読記録媒体。
【請求項２４】
前記カスタマイズされた規則は、リモートスレーブアドレス要求がリモートスレーブをターゲットとし、ローカルスレーブアドレス要求が前記リモートスレーブアドレス要求に後続する場合、前記複数の相互接続のうちのある相互接続のそれぞれのマスタポートからリモートスレーブ書込みデータが除去されるまでローカルスレーブをターゲットとする前記ローカルスレーブアドレス要求をブロックする、請求項20に記載の非一時的コンピュータ可読記録媒体。
【請求項２５】
前記カスタマイズされた規則は、ローカルスレーブの書込みデータに関連するローカルスレーブアドレス要求がローカルスレーブをターゲットとし、リモートスレーブアドレス要求がリモートスレーブをターゲットとし、前記リモートスレーブアドレス要求が前記ローカルスレーブアドレス要求の後に受け取られる場合、前記複数の相互接続のうちのある相互接続上でそれぞれのマスタポートから前記ローカルスレーブの書込みデータが除去される後まで前記リモートスレーブアドレス要求をブロックする、請求項20に記載の非一時的コンピュータ可読記録媒体。
【請求項２６】
リソグラフィックデバイスによって実行された場合に、ネットワークトポロジーおよびトラフィックプロファイルに基づいて、複数の相互接続を介した複数のマスタと複数のスレーブとの間のデータ転送に関するカスタマイズされた経路指定規則を定義するように構成されたプロセッサを備える集積回路の少なくとも一部を前記リソグラフィックデバイスに製造させる命令が記録された非一時的コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
米国特許法第119条に基づく優先権の主張
本特許出願は、本出願の譲受人に譲渡され、参照によって本明細書に明確に組み込まれる、2012年1月23日に出願された「TRANSACTION ORDERING TO AVOID BUS DEADLOCKS」と題する米国仮特許出願第61/589,582号の優先権を主張する。
【０００２】
本開示は全般に電子機器に関し、より詳細には、限定はしないが、バスデッドロックを軽減するようにトランザクションを順序付けるための装置および方法に関する。
【背景技術】
【０００３】
モバイルシステムオンチップ(SoC)では、チップ性能がますます重要になりつつある。SoC集積回路(IC)は、関連する機能を実行する一群の回路が集積され、単一のダイまたは基板上に製造されたシステムである。SoC ICは概して、たとえばマイクロプロセッサ、デジタル信号プロセッサ、メモリアレイ、バッファなどの回路の機能ブロックを含む。これらの回路機能ブロックはコアと呼ばれることもある。機能ブロックの各々は、機能ブロックが互いにデータを交換するとともにバスに接続された任意の他のデバイスとデータを交換する、SoC IC内の相互接続バスに電気的に接続される。
【０００４】
SoCでは、マスタ(すなわち、開始側)などの機能ブロックがサブシステム間データ転送パスを構成する相互接続バス(すなわち、ネットワークオンチップ(NoC)、相互接続、バスなど)を介してスレーブ(ターゲット)などの機能ブロックと通信する。マスタは、データ(たとえば、要求アドレス)を求める要求を発行し、要求に応答して、要求したデータ(たとえば、書込みデータ)を受け取る。マスタの一例はプロセッサコアである。スレーブはデータを求める要求を受け取り、要求されたデータを要求側マスタに供給する。スレーブの例には、スレーブプロセッサ、ディスプレイデバイス(たとえば、グラフィクスプロセッサ)、メモリ(たとえば、キャッシュメモリ)、メモリインターフェース、周辺機器、周辺インターフェース、ユーザ入力および/または出力デバイス、ユーザ入力、ならびに/あるいは出力デバイスインターフェース(たとえば、ユニバーサルシリアルバスポート)が含まれる。
【０００５】
2つ以上のマスタおよび/またはスレーブが相互接続バス上にデータを配置するかまたは相互接続バスからデータを取り込むことを試みると相互接続バスを介したデータ転送間の競合が生じる。相互接続バスを介したデータ転送間の競合を軽減するために、従来の技術ではSoC IC内にバスコントローラを組み込んでいる。SoCでは一般に、複数のマスタおよび複数のスレーブが単一の相互接続バスまたインターリンクされたNoCを介して互いに通信する。したがって、バスコントローラは一般に、任意の所与の時間にどのマスタがスレーブへのアクセスを許可されるかを選択するアービタを含む。代表的な相互接続バスでは、データがスレーブに書き込まれる順序はアドレスの番号順に従う。マスタが調停に「勝利」した場合、「勝利側」マスタから要求が送られるスレーブまでの書込みデータパスは、要求が送られるスレーブによってすべてのデータが受け取られるまで「勝利側」マスタにロックされる。言い換えれば、従来のアービタは、バスデッドロックを生じさせる順次アクセスを可能にするにすぎない。その結果、従来のアービタは比較的低速で非効率的であり、バスデッドロックを生じさせることによってシステム性能に悪影響を与えることがある。
【０００６】
複数のデータ転送が循環依存性および/または衝突優先順位を有するときにバスデッドロックが生じる。バスデッドロックは、相互接続バスの少なくとも一部をロックアップし、したがって、相互接続バスの影響を受ける部分は、ロックアップされたデータを転送すること、新しい要求アドレスを受け入れること、および/または書込みデータを受け入れることができなくなる。
【０００７】
図1は、従来の方法および装置に関する問題を示す。図1および本明細書において説明する他の例では、データおよびデータ転送デバイスは英数字コードによって表される(たとえば、W17、A16)。本明細書において使用する略語は以下のキーによって定義される。
【０００８】
X#は、特定の相互接続バスおよびその固有の識別番号を示す。
【０００９】
M#は、特定のマスタ/開始側(たとえば、マイクロプロセッサ)およびその固有の識別番号を示す。
【００１０】
S#は、スレーブ/ターゲット(たとえば、メモリアレイ)などのエンドポイントおよびその固有の識別番号を示す。
【００１１】
L#は、2つの相互接続バス/NoC間のリンクおよびその固有の識別番号を示す。
【００１２】
MPT#は、マスタが結合された相互接続バスのポートおよびその固有の識別番号を示す。
【００１３】
ARB#は、バスアービタおよびその固有の識別番号を示す。
【００１４】
A#は、要求アドレスおよびその固有の識別番号を示す。2番目の数字は、そのアドレスに関連する要求を生成したマスタのマスタ番号を反映する。たとえば、アドレスA0#(たとえば、A01)はマスタ番号M0からの要求に相当し、A1#(たとえば、A14)はマスタ番号M1からの要求に相当する。3番目の数字は順次要求番号を示す。
【００１５】
W#は、対応する要求アドレス(たとえば、A#)の書込みデータを示す。マスタから送られる特定の書込みデータの番号は、容易に読めるように、対応する要求アドレスの番号と同一である。前のパラグラフの例で引き続き説明すると、書込みデータW01は、マスタM0によって送られた要求アドレスA01に関連してマスタM0から送られる。
【００１６】
図1を参照すると分かるように、相互接続X0、X1、およびX3は独立に動作し、したがって、各相互接続バス上で開始されたトランザクションを互いに対して順序付けるように相互接続X0、X1、およびX3が協調することはない。リモートスレーブをターゲットとするマスタからの要求は、マスタとリモートスレーブとの間に配置されたいくつかの相互接続の各々において少なくとも1回の調停を受ける必要がある。図1に示す例示的なトランザクションでは、以下のデータ転送シーケンスに従来の調停技術を適用すると循環依存性によるバスデッドロックが生じる。
【００１７】
マスタM0は、アドレスA00、A01、A02、およびA03を有する要求をマスタポートMPT0、アービタARB2、相互接続X0、リンクL0、マスタポートMPT4、アービタARB1、および相互接続X1を介してスレーブS1に送る。マスタM0はまた、アドレスA04を有する要求をマスタポートMPT0、アービタARB0、および相互接続X0を介してスレーブS0に送る。マスタM0の要求アドレスA00は、相互接続X0においてアービタARB2での第1の段階の調停に勝利するが、アドレスA00は相互接続X1においてアービタARB1での第2の段階の調停を受けなければならない。従来の技術では、相互接続X0上でのマスタM0に関するデータ経路指定順序は、相互接続X1上での要求アドレスA00の調停よりも前に定められる必要がある。従来の技術では、NoC/SoCがカスケード接続された相互接続(たとえば、多層相互接続)を有するとき各層(たとえば、複数の相互接続)にわたるデータ経路指定順序を定めない。
【００１８】
その場合、マスタM1はまた、アドレスA19を有する要求をマスタポートMPT1、アービタARB1、および相互接続X1を介してスレーブS1に送る。マスタM1はまた、アドレスA15、A16、A17、およびA18を有する要求をマスタポートMPT1、アービタARB3、相互接続X1、リンクL1、マスタポートMPT5、アービタARB0、および相互接続X0を介してスレーブS0に送る。
【００１９】
シーケンスにおけるこの時点で、スレーブS1において、アドレスA19を有する要求がアドレスA00、A01、A02、およびA03を有する要求よりも優先される。さらに、スレーブS0において、アドレスA04を有する要求がアドレスA15、A16、A17、およびA18を有する要求よりも優先される。
【００２０】
マスタM0は、アドレスW00、W01、W02、およびW03を有するデータをマスタポートMPT0、アービタARB2、相互接続X0、リンクL0、マスタポートMPT4、アービタARB1、および相互接続X1を介してスレーブS1に送ることを試みる。マスタM0はまた、アドレスW04を有するデータをマスタポートMPT0、アービタARB0、および相互接続X0を介してスレーブS0に送ることを試みる。しかしながら、従来の調停技術の結果として、マスタM0において、書込みデータW04がアドレスW00、W01、W02、およびW03を有するデータよりも後回しにされ、したがって、スレーブS0において、アドレスA04を有する対応する要求を実現することができなくなる。
【００２１】
マスタM1はまた、アドレスW15、W16、W17、およびW18を有するデータをマスタポートMPT1、アービタARB1、および相互接続X1を介してスレーブS0に送ることを試みる。マスタM1はまた、アドレスW19を有する要求をマスタポートMPT1、アービタARB3、相互接続X1、リンクL1、マスタポートMPT5、アービタARB0、および相互接続X0を介してスレーブS1に送ることを試みる。しかしながら、従来の調停技術の結果として、マスタM1において、書込みデータW19がアドレスW15、W16、W17、およびW18を有するデータよりも後回しにされ、したがって、スレーブS1において、アドレスA19を有する対応する要求を実現することができなくなる。その結果、この例に示すように、従来の調停技術を適用すると、循環依存性によるバスデッドロックが生じる。
【００２２】
したがって、産業界では長年にわたり、バスデッドロックを回避するようにトランザクションを順序付けするための装置および方法を含む、従来の方法および装置を改善する方法および装置が求められている。
【発明の概要】
【課題を解決するための手段】
【００２３】
本概要は、本教示のいくつかの態様の基本的な理解を可能にする。本概要は詳細において網羅的ではなく、すべての重要な特徴を特定するものでもなく、また特許請求の範囲を限定するものでもない。
【００２４】
バスデッドロックを軽減するための例示的な方法および装置が提供される。例示的な方法は、ネットワークトポロジーおよびトラフィックプロファイルに基づいて、複数の相互接続を介した複数のマスタと複数のスレーブとの間のデータ転送に関するカスタマイズされた経路指定規則を定義することを含む。カスタマイズされた経路指定テーブルの定義は静的であってもまたは動的であってもよい。カスタマイズされた規則は、複数の相互接続のうちのある相互接続において要求アドレスに関連する書込みデータを受け取る前に要求アドレスがその相互接続において調停の第1の段階における調停を受けることを可能にすることができ、要求アドレスが、対応する書込みデータを有さない限り、要求アドレスがその後の調停の第2の段階の間に調停を受けることを許容しない。カスタマイズされた規則は、複数の相互接続のうちのある相互接続において第1の要求アドレスおよび第2の要求アドレスに関連するそれぞれの書込みデータを受け取る前に第1の要求アドレスおよび第2の要求アドレスがその相互接続において調停を受けることを可能にすることができ、第1の要求アドレスと第2の要求アドレスはどちらもリモートスレーブをターゲットとする。さらに、カスタマイズされた規則は、リモートスレーブアドレス要求がリモートスレーブをターゲットとし、ローカルスレーブアドレス要求がリモートスレーブアドレス要求に後続する場合、複数の相互接続のうちのある相互接続のそれぞれのマスタポートからリモートスレーブ書込みデータが除去されるまでローカルスレーブをターゲットとするローカルスレーブアドレス要求をブロックすることができる。別の態様では、カスタマイズされた規則は、ローカルスレーブの書込みデータに関連するローカルスレーブアドレス要求がローカルスレーブをターゲットとし、リモートスレーブアドレス要求がリモートスレーブをターゲットとし、リモートスレーブアドレス要求がローカルスレーブアドレス要求の後に受け取られる場合、複数の相互接続のうちのある相互接続上でそれぞれのマスタポートからローカルスレーブの書込みデータが除去される後までリモートスレーブアドレス要求をブロックする。
【００２５】
さらなる一例では、プロセッサによって実行された場合、プロセッサに前述の方法の少なくとも一部分を実行させる命令を記録した非一時的コンピュータ可読記録媒体が提供される。非一時的コンピュータ可読記録媒体は、モバイルデバイス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定位置データユニット、および/またはコンピュータなどのデバイスに組み込まれ得る。
【００２６】
別の例では、バスデッドロックを軽減するように構成された装置が提供される。装置は、ネットワークトポロジーおよびトラフィックプロファイルに基づいて、複数の相互接続を介した複数のマスタと複数のスレーブとの間のデータ転送に関するカスタマイズされた経路指定規則を定義するための手段を含む。カスタマイズされた経路指定テーブルの定義は静的であってもまたは動的であってもよい。カスタマイズされた規則は、複数の相互接続のうちのある相互接続において要求アドレスに関連する書込みデータを受け取る前に要求アドレスがその相互接続において調停の第1の段階における調停を受けることを可能にすることができ、要求アドレスが、対応する書込みデータを有さない限り、要求アドレスがその後の調停の第2の段階の間に調停を受けることを許容しない。カスタマイズされた規則は、複数の相互接続のうちのある相互接続において第1の要求アドレスおよび第2の要求アドレスに関連するそれぞれの書込みデータを受け取る前に第1の要求アドレスおよび第2の要求アドレスがその相互接続において調停を受けることを可能にすることができ、第1の要求アドレスと第2の要求アドレスはどちらもリモートスレーブをターゲットとする。カスタマイズされた規則は、リモートスレーブアドレス要求がリモートスレーブをターゲットとし、ローカルスレーブアドレス要求がリモートスレーブアドレス要求に後続する場合、複数の相互接続のうちのある相互接続のそれぞれのマスタポートからリモートスレーブ書込みデータが除去されるまでローカルスレーブをターゲットとするローカルスレーブアドレス要求をブロックすることができる。さらなる態様では、カスタマイズされた規則は、ローカルスレーブの書込みデータに関連するローカルスレーブアドレス要求がローカルスレーブをターゲットとし、リモートスレーブアドレス要求がリモートスレーブをターゲットとし、リモートスレーブアドレス要求がローカルスレーブアドレス要求の後に受け取られる場合、複数の相互接続のうちのある相互接続上でそれぞれのマスタポートからローカルスレーブの書込みデータが除去される後までリモートスレーブアドレス要求をブロックする。
【００２７】
装置の少なくとも一部が半導体ダイに組み込まれてよい。さらに、装置の少なくとも1つの一部がモバイルデバイスなどのデバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定位置データユニット、コンピュータ、特定用途向け集積回路、システムオンチップ(SoC)集積回路の一部、基地局、マイクロコントローラ、および/またはデータ処理デバイスのうちの少なくとも1つに組み込まれ得る。さらなる例では、リソグラフィデバイスによって実行された場合、リソグラフィデバイスに装置の少なくとも一部分を作製させる命令を記録した非一時的コンピュータ可読記録媒体が提供される。
【００２８】
別の例では、バスデッドロックを軽減するように構成された装置が提供される。装置は、ネットワークトポロジーおよびトラフィックプロファイルに基づいて、複数の相互接続を介した複数のマスタと複数のスレーブとの間のデータ転送に関するカスタマイズされた経路指定規則を定義するように構成されたプロセッサを含む。カスタマイズされた経路指定テーブルの定義は静的であってもまたは動的であってもよい。カスタマイズされた規則は、複数の相互接続のうちの第2の相互接続において要求アドレスに関連する書込みデータを受け取る前に要求アドレスが複数の相互接続のうちの第1の相互接続において調停の第1の段階における調停を受けることを可能にすることができ、要求アドレスが他の競合するアドレス要求に勝利しない限り、要求アドレスがその後の調停の第2の段階の間に調停を受けることを許容しない。カスタマイズされた規則は、複数の相互接続のうちのある相互接続において第1の要求アドレスおよび第2の要求アドレスに関連するそれぞれの書込みデータを受け取る前に第1の要求アドレスおよび第2の要求アドレスがその相互接続において調停を受けることを可能にすることができ、第1の要求アドレスと第2の要求アドレスはどちらもリモートスレーブをターゲットとする。カスタマイズされた規則は、リモートスレーブアドレス要求がリモートスレーブをターゲットとし、ローカルスレーブアドレス要求がリモートスレーブアドレス要求に後続する場合、複数の相互接続のうちのある相互接続のそれぞれのマスタポートからリモートスレーブ書込みデータが除去されるまでローカルスレーブをターゲットとするローカルスレーブアドレス要求をブロックすることができる。さらなる態様では、カスタマイズされた規則は、ローカルスレーブの書込みデータに関連するローカルスレーブアドレス要求がローカルスレーブをターゲットとし、リモートスレーブアドレス要求がリモートスレーブをターゲットとし、リモートスレーブアドレス要求がローカルスレーブアドレス要求の後に受け取られる場合、複数の相互接続のうちのある相互接続上でそれぞれのマスタポートからローカルスレーブの書込みデータが除去される後までリモートスレーブアドレス要求をブロックする。装置は、特定用途向け集積回路、システムオンチップ(SoC)集積回路の一部、基地局、マイクロコントローラ、および/またはデータ処理デバイスのうちの少なくとも1つに組み込まれ得る。
【００２９】
装置の少なくとも一部が半導体ダイに組み込まれてよい。さらに、装置の少なくとも1つの一部がモバイルデバイスなどのデバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定位置データユニット、コンピュータ、特定用途向け集積回路、システムオンチップ(SoC)集積回路の一部、基地局、マイクロコントローラ、および/またはデータ処理デバイスのうちの少なくとも1つに組み込まれ得る。さらなる一例では、リソグラフィックデバイスによって実行された場合に、ネットワークトポロジーおよびトラフィックプロファイルに基づいて、複数の相互接続を介した複数のマスタと複数のスレーブとの間のデータ転送に関するカスタマイズされた経路指定規則を動的に定義するように構成されたプロセッサを備える集積回路などの装置の少なくとも一部をリソグラフィックデバイスに製造させる命令が記録された非一時的コンピュータ可読記録媒体が提供される。
【００３０】
上記の概要は、詳細な説明および図面をより良く理解できるように、本教示の特徴および技術的利点のうちのいくつかを広く概説したものである。詳細な説明では追加的な特徴および利点についても説明する。本教示の同じ目的を実施するために他の構造を修正または設計する際の基礎として、概念および開示する実施形態が容易に利用され得る。そのような等価な構成は、特許請求の範囲に記載された本教示の技術から逸脱しない。本教示を特徴付ける新規の特徴は、さらなる目的および利点とともに、詳細な説明および添付の図面からより良く理解される。図面の各々は例示および説明のみのために与えられ、本教示を限定しない。
【００３１】
添付の図面は、本教示の例を説明するために提示され、限定するためのものではない。
【図面の簡単な説明】
【００３２】
【図１】従来の方法および装置に関する問題を示す図である。
【図２】本開示の実施形態が有利に利用され得る例示的な通信システムを示す図である。
【図３】バスデッドロックを軽減するようにトランザクションを順序付けるための例示的な方法および装置を示す。
【図４】バスデッドロックを軽減するための例示的な方法を示す図である。
【発明を実施するための形態】
【００３３】
慣例に従って、図面に示される特徴は、一定の縮尺で描かれていない可能性がある。したがって、示された特徴の寸法は、明快にするために、任意に拡大または縮小されている可能性がある。慣例に従って、いくつかの図面は明快にするために簡略化されている。したがって、図面は、特定の装置または方法のすべての構成要素を示すとは限らない。さらに、同様の参照符号は、本明細書および図を通して同様の特徴を示す。
【００３４】
序論
バスデッドロックを回避するようにトランザクションを順序付けるための方法および装置が提供される。本明細書で開示する例示的な装置および方法によって実現される利点は、従来のデバイスと比べてバスデッドロックが軽減されることである。さらなる利点は、本明細書で開示する例示的な装置および方法が、従来のデバイスと比べてバスデッドロックの影響を軽減することである。
【００３５】
本出願の本文および図面では、本教示の例が開示される。この例は、有利なことに、長年にわたる産業界のニーズならびにこれまでに同定されていないニーズに対処し、従来の方法および装置の欠点を軽減する。本発明の範囲から逸脱することなく、代替の実施形態が考案され得る。さらに、本教示の従来の要素は、本教示の態様を曖昧にすることを避けるために、詳細には説明されないことも、省略されることもある。
【００３６】
以下の説明では、特定の特徴を説明するために特定の用語を使用するが、このような用語は限定的なものではない。本明細書で使用する単数形「a」、「an」、および「the」は、文脈が別段に明確に示すのでなければ、複数形をも含むものとする。また、「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、および「含んでいる(including)」という用語は、本明細書で用いられる場合、述べられた特徴、整数、ステップ、動作、要素、および/または、構成要素の存在を指定するが、1つもしくは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはこれらの群の存在ならびに/あるいは追加を除外することはない。
【００３７】
本明細書における「第1の」、「第2の」などの呼称を使用する特徴のあらゆる参照は、そのような特徴の数量および/または順序を限定するものではない。むしろ、これらの呼称は、2つ以上の特徴、または特徴の例を区別する都合のよい方法として使用されている。したがって、第1および第2の特徴の参照は、2つの特徴のみが利用され得ること、または第1の特徴が必ず第2の特徴に先行しなければならないことを必要とするものではない。また、別段に記載されていない限り、1組の特徴は、1つまたは複数の特徴を含み得る。さらに、説明または特許請求の範囲で使用される「A、B、またはCのうちの少なくとも1つ」という形式の用語は、「AまたはBまたはCあるいはこれらの特徴の任意の組合せ」として解釈され得る。
【００３８】
本明細書で使用する「例示的な」いう用語は、「例、実例、または例示として働くこと」を意味する。「例示的な」として説明するいかなる実施形態も、他の実施形態よりも好ましいかまたは有利であると必ずしも解釈されるべきではない。同様に、「本発明の実施形態」という用語は、本発明のすべての実施形態が、論じられた特徴、利点または動作モードを含むことを必要としない。本明細書において「一例では」、「例」、「1つの特徴では」および/または「特徴」という言い方を使用する場合、必ずしも同じ特徴および/または例を指すわけではない。さらに、特定の特徴および/または構造は、1つもしくは複数の他の特徴および/または構造と組み合わせることができる。
【００３９】
「接続される」、「結合される」という用語、またはそれらのいかなる変形も、2つ以上の要素の間での直接的または間接的な任意の接続または結合を意味し、互いに「接続」または「結合」される2つの要素間に1つまたは複数の仲介する要素の存在を含み得ることに留意されたい。要素間の結合または接続は、物理的、論理的、またはそれらの組合せであってよい。本明細書で利用される場合、2つの要素は、いくつかの非限定的かつ非網羅的な例として、1つもしくは複数の電線、ケーブル、および/またはプリントされた電気接続の使用によって、かつ、無線周波数領域、マイクロ波領域、および/または光(可視と不可視の両方の)領域の波長を有する電磁エネルギーなどの電磁エネルギーの使用によって、互いに「接続」または「結合」されるものと考えられ得る。
【００４０】
「信号」という用語は、データ信号、オーディオ信号、ビデオ信号、および/またはマルチメディア信号などの任意の信号を含み得ることを理解されたい。多種多様な技術および技法のうちのいずれかを使用して、情報および信号は表され得る。たとえば、本明細書において言及されるデータ、命令、処理ステップ、コマンド、情報、信号、ビット、シンボル、および/またはチップは、電圧、電流、電磁波、磁場または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【００４１】
「モバイルデバイス」という用語は、限定はしないが、モバイル電話、モバイル通信デバイス、携帯情報端末、手のひらサイズのモバイルコンピュータ、ワイヤレスデバイス、および/あるいは一般に個人によって持ち運ばれ、かつ/または何らかの形態の通信機能(たとえば、ワイヤレス、赤外線、短距離無線など)を有する他のタイプの携帯型電子デバイスを含む。
【００４２】
図面の説明
図2は、本開示の実施形態が有利に利用され得る例示的なワイヤレス通信システム200を示す。図2は、説明のために、3つのリモートユニット220、230、および250、ならびに、2つの基地局240を示す。ワイヤレス通信システム200はこれよりも多くのリモートユニットおよび/またはこれよりも多くの基地局を有してよい。リモートユニット220、230、および250は、本明細書でさらに論じるように、本開示の実施形態225A〜225Cの少なくとも一部を含む。図2は、基地局240からリモートユニット220、230、および250への順方向リンク信号280、ならびにリモートユニット220、230、および250から基地局240への逆方向リンク信号290を示す。
【００４３】
図2では、リモートユニット220は携帯電話として示され、リモートユニット230はポータブルコンピュータとして示され、リモートユニット250はワイヤレスローカルループシステム中の固定位置のリモートユニットとして示されている。各例では、リモートユニット230は、携帯電話、ハンドヘルドパーソナル通信システム(PCS)ユニット、携帯情報端末などのポータブルデータユニット、GPS対応デバイス、ナビゲーションデバイス、セットトップボックス、音楽プレーヤ、モバイルデバイス、ビデオプレーヤ、エンターテインメントユニット、データもしくはコンピュータ命令の記録および/または取込みを行う任意のその他のデバイス、ならびに/あるいはそれらの任意の組合せであってよい。図2は、本開示の教示によるリモートユニットを示すが、本開示は、これらの例示的な示されたユニットに限定されない。本開示の実施形態は、従来の技術の問題を経験し、かつ/または開示された方法およびデバイスの利点から利益を得ることのできる任意のデバイスにおいて適切に使用され得る。
【００４４】
図3は、バスデッドロックを軽減するようにトランザクションを順序付けるための例示的な方法および装置を示す。バスデッドロックを軽減するには、要求を従来の技術の順序とは異なる順序で経路指定する必要がある。ある相互接続バス上のマスタからの要求およびデータを別の相互接続バス上のスレーブに経路指定すると、本明細書において説明するトランザクション順序付け規則から利益が得られる。トポロジーおよびトラフィックプロファイルに基づいて、各マスタ/スレーブに関するカスタム規則を定義すると、バス性能が向上しバスデッドロックが軽減するという利点がもたらされる。
【００４５】
例示的な実施形態では、従来の技術の問題に対処する1つの解決策は、カスタマイズされた経路指定規則を使用して、ある相互接続に結合された各マスタポートの方向を定め、スレーブ交差に基づいてトラフィックを経路指定することである。たとえば、カスタマイズされた経路指定規則では、それぞれのマスタからの現在の要求がそれぞれのマスタからの以前の要求とは異なるスレーブをターゲットにするものである場合、マスタポートがそれぞれのマスタからの現在の要求を常にブロックすることが必要になることがある。現在の要求は、以前の要求の関連する書込みデータがマスタポートから削除されるまでブロックされる。これによって、関連するデータをスレーブに経路指定するためのクリアなパスがない場合に要求がスレーブへのパス上で遠くに経路指定されることがなくなる。さらに、連続する要求が同じスレーブをターゲットとする場合、要求のブロッキングは行われない。
【００４６】
別の例示的な実施形態では、要求およびデータの操作は、ローカルスレーブとリモートスレーブを区別することによって行われる。たとえば、図3を参照すると分かるように、ローカルスレーブS0とマスタM0はどちらも第2の相互接続(たとえば、相互接続X1)を介してデータを転送する必要なしに同じ相互接続X0を介して互いにデータ転送を実行するので、スレーブS0はマスタM0のローカルスレーブである。さらに、マスタM0とスレーブS1との間のデータ転送では複数の相互接続を介した転送が必要になるので、スレーブS1はマスタM0のリモートスレーブである。同様に、スレーブS1はマスタM1のローカルスレーブであり、スレーブS0はマスタM1のリモートスレーブである。経路指定の間、以下のカスタマイズされた経路指定規則のうちの少なくとも1つがマスタポートMPT#(たとえば、マスタM#のそれぞれのマスタポートMPT)に適用される。
【００４７】
1.  リモートスレーブをターゲットとする要求が複数の調停段階を経なければならず、かつマスタポートMPTにおいてデータが得られないとき、要求は第1の段階においてのみ調停を受ければよい。要求における対応する第1のデータが調停において勝利するかまたはすべてのデータが調停において勝利するまで、調停の第1の段階以外で要求を調停することはできない。たとえば、図3では、要求アドレスA00をマスタポートMPT0における書込みデータW00なしにリンクL0を介して相互接続X1に送ることができるが、要求アドレスA00は、マスタポートMPT4に達すると、スレーブS1に送られるように(アービタARB1を介して)調停できるようになる前に、書込みデータW00がマスタポートMPT4において利用可能になるのを待たなければならない。
【００４８】
2.  調停の第1の段階の間、同じリモートスレーブまたは互いに異なるリモートスレーブをターゲットとする2つの連続する要求をブロックする必要はない。たとえば、図3において、マスタM3は、対応する書込みデータが調停において待ち行列に入れられた他のデータに勝利するのを待たずにスレーブS0とスレーブS2の間で連続する要求をやり取りすることができる。
【００４９】
3.  2つの連続する要求があり、第1の要求がリモートスレーブをターゲットとし、第2の要求がローカルスレーブをターゲットとする場合、リモートスレーブ要求が第2の段階の調停に勝利し、エンドポイントの待ち行列の先頭になるという保証はないので、ローカルスレーブ要求は、リモートスレーブ書込みデータがそれぞれのマスタポートから除去されるまでブロックされる。たとえば、図3において、要求アドレスA04は、書込みデータW00、W01、W02、およびW03がマスタポートMPT0から除去されるまでスレーブS0に送られない。
【００５０】
4.  2つの連続する要求があり、第1の要求がローカルスレーブをターゲットとし、第2の要求がリモートスレーブをターゲットとする場合、それぞれの書込みデータがそれぞれのマスタポートから除去されるまでリモートスレーブ要求はブロックされない。リモートスレーブ要求がリモートスレーブに転送されているにもかかわらず、上記の規則#1によって、リモートスレーブ要求は別の相互接続上で待たなければならない。
【００５１】
5.  頻繁に(または常に)ローカルスレーブをターゲットとし、かつ/または頻繁に(または常に)リモートスレーブをターゲットとするマスタは、上記の規則に従う必要があり、それぞれの相互接続MPTにおいてデータが利用可能になるのを待たずに要求をディスパッチすることができる。
【００５２】
一態様では、マスタ当たりにいくつかの規則を定義してよいが、すべての規則が常に適用されるとは限らない。特定のケースでは、マスタおよび/またはスレーブに関するいくつかの規則を緩和すると、スループットを向上させることができる。本明細書において説明する技術を実行するように構成されたハードウェアは、ネットワークトポロジー、トラフィックプロファイル、およびデータフローを自動検出し、規則セットを動的に変更することができる。様々な規則および/または規則の集合を定義すると、ソフトウェアに動作モードを変更する融通性が与えられる。
【００５３】
別の例では、マスタは、規則の低電力モード切替えの間、スレーブおよびその他の相互接続からのステータスに基づいて、順序付け規則を動的に切り替えてネットワーク性能を向上させバスデッドロックを軽減する。
【００５４】
例示的な装置は、図3に示す少なくとも1つのデバイスに結合されたプロセッサを含む。プロセッサは、本明細書において説明する方法の少なくとも一部を実行するように構成されてよい。
【００５５】
図4は、バスデッドロックを軽減するための例示的な方法400を示す。バスデッドロックを軽減するための方法は、図3に示す装置のような、本明細書によって説明する装置によって実行されてよい。
【００５６】
ステップ405において、複数の相互接続を介した複数のマスタと複数のスレーブとの間のデータ転送に関するカスタマイズされた経路指定規則が、ネットワークトポロジーおよびトラフィックプロファイルに基づいて動的に定義される。各例において、カスタマイズされた経路指定規則は、本明細書において詳述する経路指定規則のうちの少なくとも1つであってよい(かつ従来の技術を除外してよい)。
【００５７】
ステップ410において、データは、カスタマイズされた経路指定規則を使用して複数の相互接続間で経路指定される。
【００５８】
例示的な実施形態では、本明細書において説明する方法の少なくとも一部を実行するように構成された回路が、特定用途向け集積回路(ASIC)、システムオンチップ(SoC)集積回路の一部、基地局、モバイルデバイス、マイクロコントローラ、データ処理デバイス、および/またはコンピュータのうちの少なくとも1つに組み込まれてよい。
【００５９】
いくつかの態様では、本明細書の教示は、利用可能なシステム資源を共有することによって(たとえば、帯域幅、送信電力、コーディング、インターリービングなどのうちの1つまたは複数を指定することによって)複数のユーザとの通信をサポートすることができる多元接続システムにおいて利用され得る。たとえば、本明細書の教示は、符号分割多元接続(CDMA)システム、マルチキャリアCDMA(MCCDMA)、広帯域CDMA(W-CDMA)、高速パケットアクセス(HSPA、HSPA+)システム、時分割多元接続(TDMA)システム、周波数分割多元接続(FDMA)システム、シングルキャリアFDMA(SC-FDMA)システム、直交周波数分割多元接続(OFDMA)システム、または他の多元接続技術の各技術のうちのいずれか1つまたは組合せに適用されてよい。本明細書の教示を利用するワイヤレス通信システムは、IS-95、cdma2000、IS-856、W-CDMA、TDSCDMA、および他の規格など、1つまたは複数の規格を実装するように設計され得る。CDMAネットワークは、Universal Terrestrial Radio Access(UTRA)、cdma2000、または何らかの他の技術などの無線技術を実装することができる。UTRAは、W-CDMAおよびLow Chip Rate(LCR)を含む。cdma2000技術は、IS-2000、IS-95およびIS-856規格をカバーする。TDMAネットワークは、Global System for Mobile Communications(GSM(登録商標))などの無線技術を実装することができる。OFDMAネットワークは、Evolved UTRA(E-UTRA)、IEEE802.11、IEEE802.16、IEEE802.20、Flash-OFDM(登録商標)などの無線技術を実装することができる。UTRA、E-UTRA、およびGSM(登録商標)は、Universal Mobile Telecommunication System(UMTS)の一部である。本明細書の教示は、3GPP Long Term Evolution(LTE)システム、Ultra-Mobile Broadband(UMB)システム、および他のタイプのシステムにおいて実装され得る。LTEは、E-UTRAを使用するUMTSのリリースである。UTRA、E-UTRA、GSM(登録商標)、UMTS、およびLTEは、「第3世代パートナーシッププロジェクト」(3GPP)という名称の組織の文書に記載されており、cdma2000は、「第3世代パートナーシッププロジェクト2」(3GPP2)という名称の組織の文書に記載されている。本開示のいくつかの態様は、3GPP用語を使用して説明され得るが、本明細書の教示は、3GPP(たとえば、Re199、Re15、Re16、Re17)技術、および3GPP2(たとえば、1xRTT、1xEV-DO、RelO、RevA、RevB)技術、ならびに他の技術に適用され得ることを理解されたい。これらの技術は、Long Term Evolution(LTE)を含む、新生のおよび将来のネットワークおよびインターフェースに使用され得る。
【００６０】
情報および信号は、多種多様な技術および技法のいずれかを使用して表され得ることを当業者は理解するだろう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、および/あるいはそれらの任意の組合せによって表され得る。
【００６１】
さらに、本明細書で開示した実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装できることを、当業者は理解するだろう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能がハードウェアとして実装されるかそれともソフトウェアとして実装されるかそれともその両方として実装されるかは、特定のシステムの用途および設計の制約に依存する。当業者は、説明した機能を特定の用途ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【００６２】
本明細書で開示した実施形態と関連して説明した方法、シーケンス、および/またはアルゴリズムの少なくとも一部は、ハードウェアにおいて直接実施されるか、またはプロセッサによって実行されるソフトウェアモジュールにおいて実施されるか、またはその2つの組合せにおいて実施され得る。一例では、プロセッサは複数の個別ハードウェア構成要素を含む。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、および/または当技術分野で知られている任意の他の形態の記録媒体中に常駐し得る。例示的な記録媒体は、プロセッサが記録媒体から情報を読み取り、記録媒体に情報を書き込むことができるようにプロセッサに結合され得る。代替として、記録媒体はプロセッサと一体であり得る。本発明の実施形態は、本明細書で説明した方法を具現化するコンピュータ可読記録媒体を含み得る。したがって、本発明は図示の例に限定されず、本明細書で説明した機能を実行するためのいかなる手段も、本発明の実施形態中に含まれる。実施形態は、プロセッサによって実行されたときに、プロセッサおよび任意の他の協働するデバイスを本明細書によって説明する機能を実行するための機械に変換する命令を具現化する機械可読記録媒体および/またはコンピュータ可読記録媒体を含んでよい。
【００６３】
さらに、多くの実施形態について、たとえばコンピューティングデバイスの要素によって実行されるべき、一連の動作に関して説明する。本明細書で説明する様々なアクションは、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって実施されるか、あるいは1つまたは複数のプロセッサによって実行されるプログラム命令によって実施されるか、あるいは両方の組合せによって実施され得る。さらに、本明細書で説明する一連のアクションは、実行時に関連するプロセッサに本明細書で説明する機能を実行させるコンピュータ命令の対応するセットを記録した、任意の形式のコンピュータ可読記録媒体内で完全に具現化されるものと見なすことができる。したがって、本発明の様々な態様は、特許請求する主題の範囲内にすべて入ることが期待されているいくつかの異なる形式で具現化され得る。さらに、本明細書で説明する実施形態ごとに、任意のそのような実施形態の対応する回路について、本明細書では、たとえば、記載のアクションを実行する「ように構成された論理回路」として説明することがある。
【００６４】
開示されたデバイスおよび方法は、コンピュータ可読記録媒体上に記録されたGraphic Database System Two(GDSII)互換フォーマット、Open Artwork System Interchange Standard(OASIS)互換フォーマット、および/またはGERBER(たとえば、RS-274D、RS-274Xなど)互換フォーマットのコンピュータ実行可能ファイルとして設計されかつ構成されてよい。ファイルは、ファイルを使用してリソグラフィックデバイスを用いて集積デバイスを製造する製造担当者に提供されてよい。一例では、集積デバイスは半導体ウェハ上に製造される。半導体ウェハは、半導体ダイとして切削され、半導体チップとしてパッケージ化されてよい。半導体チップは本明細書において説明するデバイス(たとえば、モバイルデバイス)において使用され得る。
【００６５】
本明細書に記述するかまたは図示したもののいずれも、任意のコンポーネント、ステップ、特徴、物体、利益、利点、または等価物が特許請求の範囲に記載されているかどうかにかかわらず、それらのコンポーネント、ステップ、特徴、物体、利益、利点、または等価物が公衆に献呈されることを意図していない。本開示は本発明の例示的な実施形態を記載しているが、添付の特許請求の範囲によって規定される本発明の範囲から逸脱することなく、本明細書において様々な変更および修正を施すことができることに留意されたい。
【符号の説明】
【００６６】
A00、A01、A02、A03、A04、A15、A16、A17、A18、A19  アドレス
ARB0、ARB1、ARB2、ARB3  アービタ
L0、L1  リンク
M0、M1  マスタ
MPT0、MPT1、MPT4、MPT5  マスタポート
S0、S1  スレーブ
W00、W01、W02、W03、W15、W16、W17、W18、W19  アドレス
X0、X1、X2、X3  相互接続
200  ワイヤレス通信システム
220、230、250  リモートユニット
240  基地局
【図１】
2015508193.tif 000003
【図２】
2015508193.tif 000004
【図３】
2015508193.tif 000005
【図４】
2015508193.tif 000006
【手続補正書】
【提出日】平成26年4月10日(2014.4.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
バスデッドロックを軽減するための方法であって、
ネットワークトポロジーおよびトラフィックプロファイルに基づいて、複数の相互接続デバイスを介した複数のマスタデバイスと複数のスレーブデバイスとの間のデータ転送を導くための経路指定規則を定義するステップであって、前記経路指定規則が、前記複数の相互接続デバイスのうちのある相互接続デバイスにおいて第1の要求アドレスに関連する書込みデータを受け取る前に、前記第1の要求アドレスを有する第1の経路指定要求を前記相互接続デバイスにおける調停の第1の段階において第2の経路指定要求に対して調停するのを可能にするステップと、
前記経路指定規則を使用して前記複数の相互接続デバイスのうちのある相互接続デバイスを介してデータを経路指定するステップとを含む方法。
【請求項２】
前記経路指定規則は、前記第1の要求アドレスが前記第1の要求アドレスに関連する前記書込みデータを有さない限り、前記第1の要求アドレスがその後の調停の第2の段階の間調停を受けることを許容しない、請求項1に記載の方法。
【請求項３】
前記経路指定規則は、前記複数の相互接続デバイスのうちのある相互接続デバイスにおいて前記第1の要求アドレスに関連する前記書込みデータおよび第2の要求アドレスに関連するそれぞれの書込みデータを受け取る前に前記第1の要求アドレスおよび前記第2の要求アドレスが前記相互接続デバイスにおいて調停を受けることを可能にし、前記第1の要求アドレスと前記第2の要求アドレスはどちらもリモートスレーブデバイスをターゲットとする、請求項1に記載の方法。
【請求項４】
前記経路指定規則は、リモートスレーブデバイスアドレス要求がリモートスレーブデバイスをターゲットとし、ローカルスレーブデバイスアドレス要求が前記リモートスレーブデバイスアドレス要求に後続する場合、前記複数の相互接続デバイスのうちのある相互接続デバイスのそれぞれのマスタポートからリモートスレーブデバイス書込みデータが除去されるまでローカルスレーブデバイスをターゲットとする前記ローカルスレーブデバイスアドレス要求をブロックする、請求項1に記載の方法。
【請求項５】
前記経路指定規則は、ローカルスレーブデバイスの書込みデータに関連するローカルスレーブデバイスアドレス要求がローカルスレーブデバイスをターゲットとし、リモートスレーブデバイスアドレス要求がリモートスレーブデバイスをターゲットとし、前記リモートスレーブデバイスアドレス要求が前記ローカルスレーブデバイスアドレス要求の後に受け取られる場合、前記複数の相互接続デバイスのうちのある相互接続デバイス上でそれぞれのマスタポートから前記ローカルスレーブデバイスの書込みデータが除去される後まで前記リモートスレーブデバイスアドレス要求をブロックする、請求項1に記載の方法。
【請求項６】
バスデッドロックを軽減するように構成された装置であって、
ネットワークトポロジーおよびトラフィックプロファイルに基づいて、複数の相互接続デバイスを介した複数のマスタデバイスと複数のスレーブデバイスとの間のデータ転送を導くための経路指定規則を定義するための手段であって、前記経路指定規則が、前記複数の相互接続デバイスのうちのある相互接続デバイスにおいて第1の要求アドレスに関連する書込みデータを受け取る前に、前記第1の要求アドレスを有する第1の経路指定要求を前記相互接続デバイスにおける調停の第1の段階において第2の経路指定要求に対して調停するのを可能にするための手段と、
前記経路指定規則を使用して前記複数の相互接続デバイスのうちのある相互接続デバイスを介してデータを経路指定するための手段とを備える装置。
【請求項７】
前記経路指定規則は、前記第1の要求アドレスが前記第1の要求アドレスに関連する前記書込みデータを有さない限り、前記第1の要求アドレスがその後の調停の第2の段階の間調停を受けることを許容しない、請求項6に記載の装置。
【請求項８】
前記経路指定規則は、前記複数の相互接続デバイスのうちのある相互接続デバイスにおいて前記第1の要求アドレスに関連する前記書込みデータおよび第2の要求アドレスに関連するそれぞれの書込みデータを受け取る前に前記第1の要求アドレスおよび前記第2の要求アドレスが前記相互接続デバイスにおいて調停を受けることを可能にし、前記第1の要求アドレスと前記第2の要求アドレスはどちらもリモートスレーブデバイスをターゲットとする、請求項6に記載の装置。
【請求項９】
前記経路指定規則は、リモートスレーブデバイスアドレス要求がリモートスレーブデバイスをターゲットとし、ローカルスレーブデバイスアドレス要求が前記リモートスレーブデバイスアドレス要求に後続する場合、前記複数の相互接続デバイスのうちのある相互接続デバイスのそれぞれのマスタポートからリモートスレーブデバイス書込みデータが除去されるまでローカルスレーブデバイスをターゲットとする前記ローカルスレーブデバイスアドレス要求をブロックする、請求項6に記載の装置。
【請求項１０】
前記経路指定規則は、ローカルスレーブデバイスの書込みデータに関連するローカルスレーブデバイスアドレス要求がローカルスレーブデバイスをターゲットとし、リモートスレーブデバイスアドレス要求がリモートスレーブデバイスをターゲットとし、前記リモートスレーブデバイスアドレス要求が前記ローカルスレーブデバイスアドレス要求の後に受け取られる場合、前記複数の相互接続デバイスのうちのある相互接続デバイス上でそれぞれのマスタポートから前記ローカルスレーブデバイスの書込みデータが除去される後まで前記リモートスレーブデバイスアドレス要求をブロックする、請求項6に記載の装置。
【請求項１１】
定義するための前記手段の少なくとも一部が半導体ダイに組み込まれる、請求項6に記載の装置。
【請求項１２】
定義するための前記手段が組み込まれる、特定用途向け集積回路、システムオンチップ(SoC)集積回路の一部、基地局、モバイルデバイス、マイクロコントローラ、データ処理デバイス、およびコンピュータのうちの少なくとも1つをさらに備える、請求項6に記載の装置。
【請求項１３】
バスデッドロックを軽減するように構成された装置であって、
ネットワークトポロジーおよびトラフィックプロファイルに基づいて、複数の相互接続デバイスを介した複数のマスタデバイスと複数のスレーブデバイスとの間のデータ転送を導くための経路指定規則を定義することであって、前記経路指定規則が、前記複数の相互接続デバイスのうちのある相互接続デバイスにおいて第1の要求アドレスに関連する書込みデータを受け取る前に、前記第1の要求アドレスを有する第1の経路指定要求を前記相互接続デバイスにおける調停の第1の段階において第2の経路指定要求に対して調停するのを可能にすることと、
前記経路指定規則を使用して前記複数の相互接続デバイスのうちのある相互接続デバイスを介してデータを経路指定することとを行うように構成されたプロセッサを備える装置。
【請求項１４】
前記経路指定規則は、前記第1の要求アドレスが前記第1の要求アドレスに関連する前記書込みデータを有さない限り、前記第1の要求アドレスがその後の調停の第2の段階の間調停を受けることを許容しない、請求項13に記載の装置。
【請求項１５】
前記経路指定規則は、前記複数の相互接続デバイスのうちのある相互接続デバイスにおいて前記第1の要求アドレスに関連する前記書込みデータおよび第2の要求アドレスに関連するそれぞれの書込みデータを受け取る前に前記第1の要求アドレスおよび前記第2の要求アドレスが前記相互接続デバイスにおいて調停を受けることを可能にし、前記第1の要求アドレスと前記第2の要求アドレスはどちらもリモートスレーブデバイスをターゲットとする、請求項13に記載の装置。
【請求項１６】
前記経路指定規則は、リモートスレーブデバイスアドレス要求がリモートスレーブデバイスをターゲットとし、ローカルスレーブデバイスアドレス要求が前記リモートスレーブデバイスアドレス要求に後続する場合、前記複数の相互接続デバイスのうちのある相互接続デバイスのそれぞれのマスタポートからリモートスレーブデバイス書込みデータが除去されるまでローカルスレーブデバイスをターゲットとする前記ローカルスレーブデバイスアドレス要求をブロックする、請求項14に記載の装置。
【請求項１７】
前記経路指定規則は、ローカルスレーブデバイスの書込みデータに関連するローカルスレーブデバイスアドレス要求がローカルスレーブデバイスをターゲットとし、リモートスレーブデバイスアドレス要求がリモートスレーブデバイスをターゲットとし、前記リモートスレーブデバイスアドレス要求が前記ローカルスレーブデバイスアドレス要求の後に受け取られる場合、前記複数の相互接続デバイスのうちのある相互接続デバイス上でそれぞれのマスタポートから前記ローカルスレーブデバイスの書込みデータが除去される後まで前記リモートスレーブデバイスアドレス要求をブロックする、請求項15に記載の装置。
【請求項１８】
前記プロセッサの少なくとも一部が半導体ダイに組み込まれる、請求項15に記載の装置。
【請求項１９】
前記プロセッサが組み込まれる、特定用途向け集積回路、システムオンチップ(SoC)集積回路の一部、基地局、モバイルデバイス、マイクロコントローラ、データ処理デバイス、およびコンピュータのうちの少なくとも1つをさらに備える、請求項15に記載の装置。
【請求項２０】
プロセッサによって実行された場合に、前記プロセッサに、
ネットワークトポロジーおよびトラフィックプロファイルに基づいて、複数の相互接続デバイスを介した複数のマスタデバイスと複数のスレーブデバイスとの間のデータ転送を導くための経路指定規則を定義するステップであって、前記経路指定規則が、前記複数の相互接続デバイスのうちの第2の相互接続デバイスにおいて第1の要求アドレスに関連する書込みデータを受け取る前に、前記第1の要求アドレスを有する第1の経路指定要求を前記複数の相互接続デバイスのうちの第1の相互接続デバイスにおける調停の第1の段階において第2の経路指定要求に対して調停するのを可能にするステップと、
前記経路指定規則を使用して前記複数の相互接続デバイスのうちのある相互接続デバイスを介してデータを経路指定するステップとを含む方法を実行させる命令が記録された非一時的コンピュータ可読記録媒体。
【請求項２１】
前記コンピュータ可読媒体が組み込まれる、特定用途向け集積回路、システムオンチップ(SoC)集積回路の一部、基地局、モバイルデバイス、マイクロコントローラ、データ処理デバイス、およびコンピュータのうちの少なくとも1つをさらに備える、請求項20に記載の非一時的コンピュータ可読記録媒体。
【請求項２２】
前記経路指定規則は、前記第1の要求アドレスが他の競合するアドレス要求に勝利しない限り、前記第1の要求アドレスがその後の調停の第2の段階の間調停を受けることを許容しない、請求項20に記載の非一時的コンピュータ可読記録媒体。
【請求項２３】
前記経路指定規則は、前記複数の相互接続デバイスのうちのある相互接続デバイスにおいて前記第1の要求アドレスに関連する前記書込みデータおよび第2の要求アドレスに関連するそれぞれの書込みデータを受け取る前に前記第1の要求アドレスおよび前記第2の要求アドレスが前記相互接続デバイスにおいて調停を受けることを可能にし、前記第1の要求アドレスと前記第2の要求アドレスはどちらもリモートスレーブデバイスをターゲットとする、請求項20に記載の非一時的コンピュータ可読記録媒体。
【請求項２４】
前記経路指定規則は、リモートスレーブデバイスアドレス要求がリモートスレーブデバイスをターゲットとし、ローカルスレーブデバイスアドレス要求が前記リモートスレーブデバイスアドレス要求に後続する場合、前記複数の相互接続デバイスのうちのある相互接続デバイスのそれぞれのマスタポートからリモートスレーブデバイス書込みデータが除去されるまでローカルスレーブデバイスをターゲットとする前記ローカルスレーブデバイスアドレス要求をブロックする、請求項20に記載の非一時的コンピュータ可読記録媒体。
【請求項２５】
前記経路指定規則は、ローカルスレーブデバイスの書込みデータに関連するローカルスレーブデバイスアドレス要求がローカルスレーブデバイスをターゲットとし、リモートスレーブデバイスアドレス要求がリモートスレーブデバイスをターゲットとし、前記リモートスレーブデバイスアドレス要求が前記ローカルスレーブデバイスアドレス要求の後に受け取られる場合、前記複数の相互接続デバイスのうちのある相互接続デバイス上でそれぞれのマスタポートから前記ローカルスレーブデバイスの書込みデータが除去される後まで前記リモートスレーブデバイスアドレス要求をブロックする、請求項20に記載の非一時的コンピュータ可読記録媒体。
【請求項２６】
リソグラフィックデバイスによって実行された場合に、
ネットワークトポロジーおよびトラフィックプロファイルに基づいて、複数の相互接続デバイスを介した複数のマスタデバイスと複数のスレーブデバイスとの間のデータ転送を導くための経路指定規則を定義することであって、前記経路指定規則が、前記複数の相互接続デバイスのうちのある相互接続デバイスにおいて第1の要求アドレスに関連する書込みデータを受け取る前に、前記第1の要求アドレスを有する第1の経路指定要求を前記相互接続デバイスにおける調停の第1の段階において第2の経路指定要求に対して調停するのを可能にすることと、
前記経路指定規則を使用して前記複数の相互接続デバイスのうちのある相互接続デバイスを介してデータを経路指定することとを行うように構成されたプロセッサを備える集積回路の少なくとも一部を前記リソグラフィックデバイスに製造させる命令が記録された非一時的コンピュータ可読記録媒体。
【国際調査報告】
2015508193.tif 000007
2015508193.tif 000008