(57)【要約】  ストリームトランザクションに関連する情報に基づいてストリームトランザクションをアービトレーションするためのデバイス、システム、方法、およびコンピュータ可読媒体が開示される。ストリームトランザクションは、効率的なデータのバルク転送を円滑にするためのバーストアクセスタイプのスーパーセットである。一実施形態では、バスを介してアクセス可能なリソースについて競合するバスに結合された複数のデバイスの間のバストランザクションをアービトレーションするアービタが提供される。バス上の要求されたストリームトランザクションを効率的にアービトレーションするために、アービタは、ストリームトランザクションに関連する情報を使用して、バス上の将来のバストラフィックのビューを提供するように構成される。アービタは、このストリームトランザクション情報を使用して、ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを適用するように構成される。この例では、必要に応じて、アービタがストリームトランザクションを完了するためのパラメータを満たすことを試みるために、ストリームトランザクション情報に基づいて、バスアービトレーションポリシーを、ストリームトランザクションのために調整することができる。
2013542520.tif 000002
【特許請求の範囲】
【請求項１】
バスに結合されたデバイスから前記バス上のストリームトランザクションを受信し、前記バス上の前記ストリームトランザクションをアービトレーションするように構成されたコントローラ
を含むバスアービタであって、
前記コントローラが、前記ストリームトランザクションに関連する情報に基づいて、前記バス上の前記ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価するように構成される、バスアービタ。
【請求項２】
前記コントローラが、前記評価に基づいてバスアービトレーションポリシーを適用するようにさらに構成される、請求項1に記載のバスアービタ。
【請求項３】
前記コントローラが、前記評価に基づいてデフォルトのバスアービトレーションポリシーを適用するようにさらに構成される、請求項1に記載のバスアービタ。
【請求項４】
前記ストリームトランザクションに関連する前記情報が、マスター識別子、ストリーム識別子、前記ストリームトランザクションに関連付けられた優先順位、および前記ストリームトランザクションに関連付けられた最終期限からなる群から選択された情報である、請求項1に記載のバスアービタ。
【請求項５】
前記バスアービトレーションポリシーがストリームトランザクションをアービトレーションするための優先順位方式から構成される、請求項1に記載のバスアービタ。
【請求項６】
前記優先順位方式が、前記ストリームトランザクションのランキングおよび前記ストリームトランザクションの重み付けからなる群から選択される、請求項5に記載のバスアービタ。
【請求項７】
前記コントローラが、前記ストリームトランザクションに関連する前記情報に基づいて、前記ストリームトランザクションの保留中、前記ストリームトランザクションのために前記バスアービトレーションポリシーを連続的に評価するように構成される、請求項1に記載のバスアービタ。
【請求項８】
前記コントローラが、前記ストリームトランザクションに関連付けられた最終期限に基づいて前記バスアービトレーションポリシーを評価するように構成される、請求項1に記載のバスアービタ。
【請求項９】
前記ストリームトランザクションに関連付けられた前記最終期限が、前記ストリームトランザクションに関連付けられた直接メモリアクセス(DMA)記述子中に埋め込まれた、請求項8に記載のバスアービタ。
【請求項１０】
前記コントローラが、前記ストリームトランザクションに関連付けられた前記最終期限内に定期的に、前記バスアービトレーションポリシーを評価するように構成される、請求項8に記載のバスアービタ。
【請求項１１】
前記コントローラが、前記ストリームトランザクションのために転送されたデータ量が前記ストリームトランザクションに関連付けられた前記最終期限に先行している場合、前記ストリームトランザクションの優先順位を下げるように構成される、請求項8に記載のバスアービタ。
【請求項１２】
前記コントローラが、前記ストリームトランザクションのために転送されたデータ量が前記ストリームトランザクションに関連付けられた前記最終期限よりも遅れている場合、前記ストリームトランザクションの優先順位を上げるように構成される、請求項8に記載のバスアービタ。
【請求項１３】
前記コントローラが、前記ストリームトランザクションに関連付けられた前記最終期限を満たすことができない場合、前記ストリームトランザクションを終了するように構成される、請求項8に記載のバスアービタ。
【請求項１４】
前記コントローラが、最終期限を有する複数のストリームトランザクションに基づいて前記バスアービトレーションポリシーを評価するように構成される、請求項1に記載のバスアービタ。
【請求項１５】
前記コントローラが、前記複数のストリームトランザクションのために前記バスアービトレーションポリシーを評価するために前記複数のストリームトランザクションの各々についての実現可能性係数を決定するようにさらに構成される、請求項14に記載のバスアービタ。
【請求項１６】
前記コントローラが、前記複数のストリームトランザクションの各々について決定される前記実現可能性係数に基づいて、前記複数のストリームトランザクションの優先順位を調整するようにさらに構成される、請求項14に記載のバスアービタ。
【請求項１７】
半導体ダイに統合される、請求項1に記載のバスアービタ。
【請求項１８】
前記バスアービタが一体化されるセットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータのモニタ、テレビ、チューナ、ラジオ、サテライトラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなる群から選択されたデバイスをさらに備える、請求項1に記載のバスアービタ。
【請求項１９】
バス上で通信されるストリームトランザクションをアービトレーションする方法であって、
前記バスに結合されたデバイスからバス上のストリームトランザクションを受信するステップと、
前記バス上のストリームトランザクションをアービトレーションするように構成されたコントローラで、前記ストリームトランザクションに関連する情報に基づいて、前記バス上の前記ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価するステップと
を含む方法。
【請求項２０】
前記コントローラが前記評価に基づいてバスアービトレーションポリシーを適用するステップをさらに含む、請求項19に記載の方法。
【請求項２１】
前記コントローラが前記評価に基づいてデフォルトのバスアービトレーションポリシーを適用するステップをさらに含む、請求項19に記載の方法。
【請求項２２】
前記バスアービトレーションポリシーを評価するステップが、前記ストリームトランザクションについての優先順位に基づく、請求項19に記載の方法。
【請求項２３】
前記ストリームトランザクションに関連する前記情報に基づいて、前記ストリームトランザクションの保留中、前記ストリームトランザクションのために前記バスアービトレーションポリシーを連続的に評価するステップをさらに含む請求項19に記載の方法。
【請求項２４】
前記バスアービトレーションポリシーを評価するステップが、前記ストリームトランザクションに関連付けられた最終期限に基づく、請求項19に記載の方法。
【請求項２５】
前記ストリームトランザクションに関連付けられた前記最終期限が、前記ストリームトランザクションに関連付けられた直接メモリアクセス(DMA)記述子中に埋め込まれた、請求項24に記載の方法。
【請求項２６】
前記ストリームトランザクションに関連付けられた前記最終期限内に定期的に、前記バスアービトレーションポリシーを評価するステップをさらに含む、請求項24に記載の方法。
【請求項２７】
前記ストリームトランザクションのために転送されたデータ量が前記ストリームトランザクションに関連付けられた前記最終期限に先行している場合、前記ストリームトランザクションの優先順位を下げるステップをさらに含む、請求項24に記載の方法。
【請求項２８】
前記ストリームトランザクションのために転送されたデータ量が前記ストリームトランザクションに関連付けられた前記最終期限よりも遅れている場合、前記ストリームトランザクションの優先順位を上げるステップをさらに含む、請求項24に記載の方法。
【請求項２９】
前記バスアービトレーションポリシーを評価するステップが、最終期限を有する複数のストリームトランザクションに基づく、請求項24に記載の方法。
【請求項３０】
前記複数のストリームトランザクションのために前記バスアービトレーションポリシーを評価するために前記複数のストリームトランザクションの各々についての実現可能性係数を決定するステップをさらに含む請求項29に記載の方法。
【請求項３１】
前記複数のストリームトランザクションの各々について決定される前記実現可能性係数に基づいて、前記複数のストリームトランザクションの優先順位を調整するステップをさらに含む請求項30に記載の方法。
【請求項３２】
バスアービタに、
バスに結合されたデバイスから前記バス上のストリームトランザクションを受信させ、前記バス上の前記ストリームトランザクションをアービトレーションさせ、
前記ストリームトランザクションに関連する情報に基づいて、前記バス上の前記ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価させる
ためのコンピュータ実行可能命令を記録するコンピュータ可読記録媒体。
【請求項３３】
前記コンピュータ実行可能命令が、さらに、前記アービタに、前記評価に基づいてバスアービトレーションポリシーを適用させる、請求項32に記載のコンピュータ可読記録媒体。
【請求項３４】
前記コンピュータ実行可能命令が、さらに、前記アービタに、前記評価に基づいてデフォルトのバスアービトレーションポリシーを適用させる、請求項32に記載のコンピュータ可読記録媒体。
【請求項３５】
前記バスアービトレーションポリシーがストリームトランザクションをアービトレーションするための優先順位方式から構成される、請求項32に記載のコンピュータ可読記録媒体。
【請求項３６】
前記コンピュータ実行可能命令が、さらに、前記アービタに、前記ストリームトランザクションに関連する前記情報に基づいて、前記ストリームトランザクションの保留中、前記ストリームトランザクションのために前記バスアービトレーションポリシーを連続的に評価させる、請求項32に記載のコンピュータ可読記録媒体。
【請求項３７】
前記コンピュータ実行可能命令が、前記アービタに、前記ストリームトランザクションに関連付けられた最終期限に基づいて前記バスアービトレーションポリシーを評価させる、請求項32に記載のコンピュータ可読記録媒体。
【請求項３８】
前記コンピュータ実行可能命令が、前記アービタに、最終期限を有する複数のストリームトランザクションに基づいて前記バスアービトレーションポリシーを評価させる、請求項32に記載のコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、2010年10月8日に出願された「MEMORY CONTROLLERS, SYSTEMS, AND METHODS FOR APPLYING PAGE MANAGEMENT POLICIES BASED ON STREAM TRANSACTION INFORMATION」という名称の同時係属米国特許出願代理人整理番号第100745号、顧客番号第23696号に関連し、その全体が参照により本明細書に組み込まれる。
【０００２】
本開示の技術は、一般に、プロセッサベースのシステムにおける通信バス上のバストランザクションのアービトレーションに関する。
【背景技術】
【０００３】
現代のデジタルシステムおよびプロセッサベースの設計は、一般的に、通信バスを使用する。通信バスは、マスターデバイスとして働くデバイスまたは周辺機器が、スレーブデバイスとして働く受信側の周辺機器またはデバイスに通信を送るのを円滑にするように構成される。たとえば、マスターデバイスがスレーブデバイスに読取り要求を送ることを望む場合、マスターデバイスは、通信バス上でアドレスおよび読取りコマンドを含む制御情報を提供する。通信バスは、制御情報に従って通信バスに結合された適切なスレーブデバイスにコマンドを向ける。さらに、通信バスに結合されたマスターデバイスおよびスレーブデバイスが通信バスとともにシングルチップ上に設けられて、システムオンチップ(SOC)を提供することができる。SOCは、シングルチップで複数の特徴および用途を提供することができる複数のサブシステムの統合のために、特にポータブル電子デバイスに有用である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
通信バスに結合されたスレーブデバイスにマスターデバイスからのバストランザクションを向けるまたはアービトレーションするために、アービタを通信バスに設けることができる。バスのアービトレーションは、たとえば、バストランザクションの衝突を防止することができる。たとえば、通信バスに結合された、コンピュータ処理ユニット(CPU)、デジタル信号プロセッサ(DSP)、および直接メモリアクセス(DMA)コントローラを含むシステムはすべて、同じく通信バスに結合された共有メモリシステムにアクセスすることができる。アービタは、マスターデバイスからの競合する要求の間にバスリソースが割り振られるように、これらのデバイスから共有メモリシステムへのメモリアクセス要求をアービトレーションする。しかしながら、アービタは、他のマスターデバイスによる他の要求のレイテンシの許容できない増加を引き起こす、通信バス上の1つのマスターデバイスからの要求を処理するルーティングリソースを消費することのないように構成されることが望まれる。
【課題を解決するための手段】
【０００５】
発明を実施するための形態で開示する実施形態は、ストリームトランザクションに関連する情報に基づいてストリームトランザクションをアービトレーションするためのデバイス、システム、方法、およびコンピュータ可読媒体を含む。ストリームトランザクションは、効率的なデータのバルク転送を円滑にするためのバーストアクセスタイプのスーパーセットである。ストリームトランザクションに関連する情報は、本明細書では、「ストリームトランザクション情報」とも呼ぶ。本明細書で開示する実施形態では、バスを介してアクセス可能なリソースについて競合する、バス相互接続でもよいバスに結合された複数のデバイスの間のバストランザクションをアービトレーションするアービタが提供される。バス上の要求されたストリームトランザクションを効率的にアービトレーションするために、アービタは、ストリームトランザクションに関連する情報を使用して、バス上の将来のバストラフィックのビューを提供するように構成される。たとえば、ストリームトランザクションは、完了のための時間的および/または他の優先順位パラメータを有することができる。アービタは、このストリームトランザクション情報を使用して、ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価し、および/または適用するように構成される。この例では、必要に応じて、アービタがストリームトランザクションを完了するためのパラメータを満たすことを試みるために、ストリームトランザクション情報に基づいて、バスアービトレーションポリシーを、ストリームトランザクションのために調整するまたは変更することができる。
【０００６】
この点について、一実施形態では、バスアービタが提供される。バスアービタは、バスに結合されたデバイスからバス上のストリームトランザクションを受信するように構成されたコントローラを含む。アービタは、バス上のストリームトランザクションをアービトレーションする。ストリームトランザクションを要求するデバイスのパラメータに基づいて、ストリームトランザクションをアービトレーションすることを試みるために、アービタのコントローラは、ストリームトランザクションに関連する情報に基づいて、バス上のストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価するように構成される。コントローラは、評価に基づいてバスアービトレーションポリシーを適用するように、さらに構成することもできる。
【０００７】
別の実施形態では、バス上で通信されるストリームトランザクションをアービトレーションする方法が提供される。方法は、バスに結合されたデバイスからバス上のストリームトランザクションを受信するステップを含む。方法は、バス上のストリームトランザクションをアービトレーションするように構成されたコントローラで、ストリームトランザクションに関連する情報に基づいて、バス上のストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価するステップを含む。また、方法は、コントローラが評価に基づいてバスアービトレーションポリシーを適用するステップをさらに含み得る。
【０００８】
別の実施形態では、バスに結合されたデバイスからバス上のストリームトランザクションをアービタに受信させるコンピュータ実行可能命令を記憶したコンピュータ可読媒体が提供される。また、コンピュータ実行可能命令は、バス上のストリームトランザクションのためのバストラフィックをアービタにアービトレーションさせる。また、コンピュータ実行可能命令は、ストリームトランザクションに関連する情報に基づいて、バス上のストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーをアービタに評価させる。また、コンピュータ実行可能命令は、評価に基づいてバスアービトレーションポリシーをアービタに適用させることもできる。
【図面の簡単な説明】
【０００９】
【図１】複数のマスターデバイスと複数のスレーブデバイスとの間のトランザクションをアービトレーションし、ルーティングするように構成されたアービタおよびバス相互接続を含む例示的なシステムを示すブロック図である。
【図２】マスターデバイスからスレーブデバイスへのストリームトランザクション要求に応答するスレーブデバイスからの例示的なストリームトランザクション応答を示すブロック図である。
【図３】アービタが保留中のストリームトランザクションに関連する情報に基づいて保留中のストリームトランザクションのためにバスアービトレーションポリシーを評価し、適用する例示的なプロセスを示すフローチャートである。
【図４】図1のバス相互接続におけるマスターデバイスとスレーブデバイスとの間の通信経路における例示的な回路サブシステムを示すブロック図である。
【図５】ストリームトランザクション情報をサポートし、バス相互接続上で通信される要求の一部として図1のバス相互接続によってサポートすることができるバスプロトコルの例示的な制御ブロックを示すブロック図である。
【図６】要求側マスターデバイスを識別するために図5の例示的な制御ブロックに設けられる例示的なマスター識別語を示すブロック図である。
【図７】図1のバス相互接続上のストリームトランザクションをサポートするために図5の例示的な制御ブロックに設けられる例示的なストリーム識別子ブロックを示すブロック図である。
【図８】図7のストリーム識別子ブロックを含む、保留中のバストランザクションを記憶するように構成された例示的なスレーブポートキューの図である。
【図９】ストリームトランザクションとの最終期限情報の関連付けに基づいて、ストリームトランザクションのためにバスアービトレーションポリシーを評価し、適用するために、アービタによって実行することができる例示的なプロセスを示すフローチャートである。
【図１０】所与のスレーブポートについての2つ以上の保留中のストリームトランザクションが関連する最終期限を有するとき、バスアービトレーションポリシーを評価し、適用するために、アービタによって実行することができる例示的なプロセスを示すフローチャートである。
【図１１】例示的な保留中の最終期限付きストリームトランザクションのための例示的な実現可能性係数の計算を示すチャートである。
【図１２】図1のバス相互接続を含むことができる例示的なプロセッサベースのシステムを示すブロック図である。
【発明を実施するための形態】
【００１０】
ここで図面を参照して、本開示のいくつかの例示的な実施形態が説明される。「例示的な」という言葉は、「一例、実例または例として」を意味するために本明細書で使用される。「例示的」として本明細書で説明する任意の実施形態は、必ずしも他の実施形態よりも好ましいまたは有利であると解釈されない。
【００１１】
発明を実施するための形態で開示する実施形態は、ストリームトランザクションに関連する情報に基づいてストリームトランザクションをアービトレーションするためのデバイス、システム、方法、およびコンピュータ可読媒体を含む。ストリームトランザクションは、効率的なデータのバルク転送を円滑にするためのバーストアクセスタイプのスーパーセットである。ストリームトランザクションに関連する情報は、本明細書では、「ストリームトランザクション情報」とも呼ぶ。本明細書で開示する実施形態では、バスを介してアクセス可能なリソースについて競合する複数のデバイスの間のバストランザクションをアービトレーションするアービタが提供される。バス上の要求されたストリームトランザクションを効率的にアービトレーションするために、アービタは、ストリームトランザクションに関連する情報を使用して、バス上の将来のバストラフィックのビューを提供するように構成される。たとえば、ストリームトランザクションは、完了のための時間的および/または他の優先順位パラメータを有することができる。アービタは、このストリームトランザクション情報を使用して、ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価し、および/または適用するように構成される。この例では、必要に応じて、アービタがストリームトランザクションを完了するためのパラメータを満たすことを試みるために、ストリームトランザクション情報に基づいて、バスアービトレーションポリシーを、ストリームトランザクションのために調整するまたは変更することができる。
【００１２】
図3で始まる、ストリームトランザクションに関連する情報に基づいて、ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価し、適用する例について説明する前に、まず、図1および図2が示されており、それらについて説明する。図1は、バス相互接続上で、ストリームトランザクションを含むバストランザクションを受信し、アービトレーションするように構成されたアービタ12を含む例示的なシステム10を示す。この例では、バストランザクションをアービトレーションするアービタ12に、コントローラ13が設けられている。バスアービトレーションポリシーを評価し、適用し、バストランザクションをアービトレーションするためにコントローラ13によって実行される命令を記憶するために、たとえばメモリなどのコンピュータ可読媒体15がアービタ12に含まれていてもよい。
【００１３】
システム10は、本明細書では「バス相互接続18」とも呼ばれる通信バス18を介して1つまたは複数のスレーブデバイス16(0〜N)に相互接続された複数のマスターデバイス14(0〜M)を含む。例として、バス相互接続18は、フィールドプログラマブルゲートアレイ(FPGA)、非同期式シンクロナス集積回路(ASIC)、コントローラ、ソフトウェア命令を実行することができるマイクロコントローラもしくはマイクロプロセッサ、またはその任意の組合せによって提供され得る。アービタ12は、図1に、バス相互接続18の内部に設けられているものとして示されている。代わりに、アービタ12は、バス相互接続18の外部に設けられていてもよい。
【００１４】
バス相互接続18は、バス相互接続18に接続されたマスターデバイス14(0〜M)のうちの1つまたは複数が、バス相互接続18に結合されたスレーブデバイス16(0〜N)のうちの一部または全部と通信できるように構成可能であり得る。本実施形態では、バス相互接続18は、バス相互接続18に接続されたマスターデバイス14(0〜M)のうちの1つまたは複数が、バス相互接続18に結合されたスレーブデバイス16(0〜N)のうちの任意のものと通信できるように構成される。しかしながら、バス相互接続18は、バス相互接続18に接続されたマスターデバイス14(0〜M)のうちの1つまたは複数が、バス相互接続18に結合されたスレーブデバイス16(0〜N)のうちの1つのみまたはサブセットと通信できるように構成することができる。一例として、バス相互接続18は、半導体ダイ24に設けることができ、必要な場合、システムオンチップ(SOC)集積回路設計で提供することができる。マスターデバイス14(0〜M)およびスレーブデバイス16(0〜N)はそれぞれ、この例ではバス相互接続18に設けられているマスターポート20(0〜M)およびスレーブポート22(0〜N)を介してバス相互接続18に接続されている。アービタ12は、マスターデバイス14(0〜M)からスレーブデバイス16(0〜N)への複数のバストランザクション要求をアービトレーションすることができる。スレーブデバイス16(0〜N)は、マスターデバイス14(0〜M)との共有リソースでもよい。
【００１５】
マスターデバイス14(0〜M)およびスレーブデバイス16(0〜N)は、所望の任意のタイプの電子デバイスまたはサブシステムとすることができる。図1に示すように、マスターデバイス14(0〜M)は、限定はしないが、中央処理装置(CPU)14(0)、デジタル信号プロセッサ(DSP)14(1)、ディスプレイ26に提供される情報を制御するディスプレイプロセッサ14(2)、および直接メモリアクセス(DMA)コントローラ14(M)を含む、任意のタイプの電子デバイスとすることができる。DMAコントローラ14(M)は、マスターデバイス14(M)とスレーブデバイス16(N)の両方として働くことができる。スレーブデバイス16(0〜N)の別の例は、メモリシステム28であり、これも図1に示されている。メモリシステム28は、マスターデバイス14(0〜M)のうちの任意のものが、読取りおよび書込みメモリアクセス要求をメモリシステム28のメモリ30に提供し、読取りおよび書込み応答を受信することができるように、バス相互接続18に接続されている。この点について、メモリシステム28は、通信バス18をメモリ30にインターフェース接続し、メモリシステム28に宛てられたバス相互接続18を介してマスターデバイス14(0〜M)によって提供されるメモリアクセス要求に応答して、メモリ30との間のデータの流れを制御するメモリコントローラ32を含む。
【００１６】
以下でより詳細に論じるように、制御ブロック(CTRL_BLOCK)の形態で提供されるメモリアクセス情報は、メモリ30にメモリアクセストランザクションを要求するために、メモリコントローラ32に提供される。メモリバス34は、メモリユニット36(0〜A)ごとに1つ設けられる、チップセレクトCS(0〜A)を含むメモリコントローラ32にメモリ30をインターフェース接続するために提供される。各メモリユニット36(0〜A)は、別々のメモリチップでもよい。チップセレクトCS(0〜A)は、アクセスされる所望のメモリ位置を含むメモリユニット36(0〜A)を有効にするために、メモリコントローラ32によって選択的に有効にされる。メモリコントローラ32は、データの衝突を回避するために、一度にメモリユニット36(0〜A)のうちの1つを有効にする。
【００１７】
図1のマスターデバイス14(0〜M)は、バス相互接続18に接続されたスレーブデバイス16(0〜N)によってサービスされる単一のビートまたはバーストトランザクションをバス相互接続18に提供することができる。図1のマスターデバイス14(0〜M)は、スレーブデバイス16(0〜N)によってサービスされるストリームトランザクションをバス相互接続18に提供することもできる。ストリームトランザクションは、大量のデータを効率的に移動させるために使用することができる。ストリームトランザクションは、単一のトランザクション要求の一部として転送される大量のデータを提供するために、バーストのスーパーセットからなり得る。ストリームトランザクションの一例が、図2に示される。図2におけるこの例では、256のデータのバーストがあり、各バーストは、4つのデータビートから構成される。スレーブデバイス16(0〜N)は、スレーブデバイス16(0〜N)に対してマスターデバイス14(0〜M)によって以前要求されたストリームトランザクションに応答して、バス相互接続18上のバーストデータトランザクション40のスーパーセットから構成されるデータのストリーム38を提供する。たとえば、マスターデバイス14(0〜M)は、この例では、大量のデータをメモリシステム28から受信し、DMAコントローラ14(M)に結合された他のデバイスに転送するように構成された図1のDMAコントローラ14(M)でもよい。
【００１８】
ストリームトランザクションは、バーストおよびデータビートトランザクションよりも長い期間にわたって、バス相互接続18を介して大量のデータを移動させることができるので、ストリームトランザクションをルーティングすることは、他のバストランザクションへのサービスの遅延をもたらし得る。したがって、他のバストランザクションが要求側マスターデバイス14(0〜M)によって望まれるレイテンシパラメータを過度に侵害することなく、バス相互接続18上のストリームトランザクションを効率的にアービトレーションするために、本明細書で提供する実施形態によって、アービタ12は、ストリームトランザクションに関連する情報に基づいて、バス相互接続18上のストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価することができる。ストリームトランザクションに関連する情報は、バス相互接続18上のバストラフィックの将来のビューをアービタ12に提供する。たとえば、ストリームトランザクションは、要求側マスターデバイス14(0〜M)によって提供される完了のための時間的および/または他の優先順位のパラメータを有することができる。アービタ12は、このストリームトランザクション情報を使用して、ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価するように構成される。また、アービタ12は、評価に基づいてバスアービトレーションポリシーを適用するように構成され得る。たとえば、必要に応じて、アービタがストリームトランザクションを完了するためのパラメータを満たすことを試みるために、ストリームトランザクション情報に基づいて、バスアービトレーションポリシーを、ストリームトランザクションのために調整するまたは変更することができる。
【００１９】
この点について、図3は、ストリームトランザクションに関連する情報に基づいてバスアービトレーションポリシーを評価し、適用するために、図1のアービタ12によって実行することができる例示的なプロセスを示すフローチャートである。そこに示されているように、アービタ12のコントローラ13は、マスターデバイス14(0〜M)によって要求されたバス相互接続18上のストリームトランザクションを受信する(ブロック42)。ストリームトランザクションの要求は、ストリームトランザクション情報を含む。コントローラ13は、バス相互接続18上のストリームトランザクションをアービトレーションするための最初のまたはデフォルトのバスアービトレーションポリシーを適用することができる(ブロック44)。コントローラ13は、次の保留中のストリームトランザクションを処理する(ブロック46)。たとえば、複数のストリームトランザクションは、バス相互接続18に結合されたスレーブデバイス16(0〜N)によって完了されるように保留中でもよい。次いで、コントローラ13は、最初にストリームトランザクションを要求したマスターデバイス14(0〜M)から受信されたストリームトランザクション情報に基づいて、保留中のストリームトランザクションのためにバスアービトレーションポリシーを評価し、および/または適用する(ブロック48)。異なるバスアービトレーションポリシーを使用することができる。プロセスは繰り返し、それによって、アービタ12は、新しいストリームトランザクションを受信し(ブロック42)、連続的にもしくは定期的に、動的に、および/またはストリームトランザクションごとに、保留中のストリームトランザクションを処理する(ブロック46)ことができる。
【００２０】
図9〜図11でアービタ12によって適用される例示的なバスアービトレーションポリシーに関して以下でより詳細に論じるように、バスアービトレーションポリシーは、1つまたは複数のストリームトランザクションが保留中であるかどうか、および所与のスレーブデバイス16(0〜N)についての1つまたは複数のストリームトランザクションが完了の最終期限を有しているかどうかに基づき得る。ストリームトランザクション情報に基づいてバスアービトレーションポリシーを評価し、適用するさらなる例について説明する前に、図4〜図8が示されており、それらについて以下で説明する。図4〜図8は、ストリームトランザクション情報を含めて、バストランザクション要求および関連情報を受信し、マスターデバイス14(0〜M)からのバストランザクションをアービトレーションし、スレーブデバイス16(0〜N)にルーティングする実施形態に関して、追加の例示的な詳細を提供する。
【００２１】
図4は、図1のバス相互接続18におけるアービタ12およびルーティングリソースのより詳細な例を示す。アービタ12は、バス相互接続18に結合されたマスターデバイス14(0〜M)とスレーブデバイス16(0〜N)との間の、ストリームトランザクションを含むバストランザクションをアービトレーションする。図4に示すように、通信は、マスターポート20(0〜M)に結合されたマスターポートバス50(0〜M)を介して、マスターデバイス14(0〜M)とバス相互接続18との間でサポートされる。同様に、通信は、スレーブポート22(0〜N)に結合されたスレーブポートバス52(0〜N)を介して、スレーブデバイス16(0〜 N)とバス相互接続18との間でサポートされる。バス相互接続18は、所望のマスターデバイス14(0〜M)と所望のスレーブデバイス16(0〜N)との間に通信経路を確立するように構成可能である、例としてゲート、ラッチ、およびレジスタなどのクロック制御された回路を含む。たとえば、図4に示すように、マスターデバイス14(0〜M)のうちの1つとスレーブデバイス16(0〜N)のうちの1つとの間に通信経路を提供するように構成可能である、バス相互接続18に設けられる例示的な構成要素が示される。
【００２２】
引き続き図4を参照すると、マスターポート20(0〜M)は各々、マスターデバイス14(0〜M)からバストランザクションを受信するためにマスターポートバス50(0〜M)に接続されたマスターポートインターフェース53(0〜M)を含む。マスターポートキュー54(0〜M)とスレーブポートキュー56(0〜N)との間のバストランザクションをアービトレーションするためにアービタ12に提供されるバストランザクションまたはコマンドを記憶するために、マスターポートキュー54(0〜M)が設けられている。アービタ12は、スレーブデバイス16(0〜N)へのバストランザクションをアービトレーションするためにスレーブポート22(0〜N)に関連付けられた別々のアドレス指定アービタ58(0〜N)、およびスレーブポート22(0〜N)から来るデータの読取りおよび書込み完了応答(read data and write completion responses)をアービトレーションするためにマスターポート20(0〜M)に関連付けられたデータ(読取り/書込み)アービタ60(0〜M)を含み得る。スレーブポートキュー56(0〜N)は、スレーブポートバス52(0〜N)に接続されたスレーブポートインターフェース61(0〜N)にバストランザクションを提供する。図4は、マスターデバイス14(0〜M)のうちの1つに結合されたマスターポート20(0〜M)のうちの1つと、スレーブデバイス16(0〜N)のうちの1つに結合されたスレーブポート22(0〜N)のうちの1つとの間の通信経路を示すが、バス相互接続18に設けられたアービタ58(0〜N)、60(0〜M)は、マスターポート20(0〜M)とスレーブポート22(0〜N)との間のバス相互接続18によって可能になる通信経路をアービトレーションするように構成することができることに留意されたい。
【００２３】
引き続き図4を参照すると、スレーブポート22(0〜N)ごとにカウンタ62(0〜N)を設けることもできる。カウンタ62(0〜N)は、それぞれ、スレーブポートインターフェース61(0〜N)によって完了するトランザクションをカウントする。カウンタ62(0〜M)は、カウント情報64(0〜N)をアービタ12に提供することができ、その結果、アービタ12は、ストリームトランザクションを含む、複数のビートトランザクションの完了の経過を監視することができる。たとえば、アービタ12は、カウント情報64(0〜N)を使用して、ストリームトランザクションの完了が、スケジュールに先行しているか、スケジュール通りか、または最終期限よりも遅れているかを評価し、それに応じて、ストリームトランザクションのためにバスアービトレーションポリシーを適用することができる。
【００２４】
ストリームトランザクションのためにバスアービトレーションポリシーを評価し、適用することに関してストリームトランザクションの経過を監視する例について、図9〜図11に関して以下でより詳細に説明する。これらの例について説明する前に、最初に、マスターデバイス14(0〜M)が、ストリームトランザクションを含むバストランザクションをアービトレーションするためにアービタ12によって使用することができるバストランザクション要求の一部として、バストランザクション情報をバス相互接続18に提供する例について、以下、図5〜図8を参照して説明する。バストランザクション情報によって、アービタ12は、バストランザクションのためにバスアービトレーションポリシーを決定し、適切なスレーブデバイス16(0〜N)にバストランザクションを向けることができる。ストリームトランザクションでは、バストランザクション情報は、ストリームトランザクションに関連する情報に基づいてバスアービトレーションポリシーを評価するためにアービタ12に提供されるストリームトランザクション情報を含む。この点について、図5は、バストランザクションを要求するマスターデバイス14(0〜M)が、ストリームトランザクション情報を含む、要求されたバストランザクションのための情報を提供できるようにするために、図1のバス相互接続18によってサポートされるバスプロトコルの例示的な制御ブロック(CTRL_BLOCK)70のブロック図である。
【００２５】
図5に関して、制御ブロック70は、アービタ12がマスターデバイス14(0〜M)からのトランザクション要求を実行できるようにするための制御情報を含む。たとえば、制御ブロック70は、アービタ12に対するバストランザクション要求の要求側に関連付けられた識別子を含むマスター識別子(M_ID)72を含む。アービタ12は、マスター識別子72を使用して、どのマスターデバイス14(0〜M)がスレーブデバイス16(0〜N)から受信された応答を受信すべきかについて決定する。スレーブデバイス16(0〜N)がメモリであるかどうかなど、スレーブデバイス16(0〜N)においてアドレス指定されるアドレスは、アドレスフィールド(ADDRESS)74で提供される。バストランザクション要求がメモリアクセス要求である場合、メモリアクセス要求が読取りトランザクションであるか、書込みトランザクションであるかが、読取り/書込みフィールド(R/W)76で提供される。ストリーム識別子ブロック(STREAM_ID_BLOCK)78は、バストランザクションについてのストリームトランザクション情報を提供するために設けられている。
【００２６】
図6は、バス相互接続18に対してバストランザクション要求でマスターデバイス14(0〜M)によって提供することができる例示的なマスター識別子72のブロック図である。この例では、マスター識別子72は、10ビットワードである。上位の2ビット(F1、F0)は、特定のメモリアクセス要求に関与する4つの別個のファブリックの識別を可能にするファブリック識別子80を含む。中間の4ビット(M3、M2、M1、M0)は、マスターデバイス14(0〜M)を識別するマスターデバイス識別子82である。したがって、この例では、16の一意のマスターデバイス14(0〜M)が可能である。次の2ビット(S1、S0)は、設けられている、または適用可能なマスターデバイス14(0〜M)に結合されたサブマスターデバイスを識別するサブマスターデバイス識別子84を含む。したがって、この例では、4つの一意のサブマスターデバイスが可能である。下位の2ビット(A1、A0)は、マスターデバイス14(0〜M)および/またはサブスターデバイスが所望の任意の属性情報を提供できるように使用することができる属性識別子86を含む。たとえば、マスターデバイス14(0〜M)および/またはサブマスターデバイスがメモリアクセス要求を担当するソフトウェアプロセスまたはスレッドを識別できるようにするために、ソフトウェアプロセスまたはスレッドの識別を属性識別子86で提供することができる。所望の任意の他の情報を、属性識別子86に含めることができる。
【００２７】
図7は、図5の制御ブロック70におけるストリーム識別子ブロック78として使用され得る例示的なストリーム識別子ブロックのブロック図である。ストリーム識別子ブロック78は、ストリームトランザクションに関連する情報に基づいてバス相互接続18上のストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーをアービタ12が評価できるようにするために、図1のアービタ12に提供されるストリームトランザクションに関連する例示的な情報を含む。マスターデバイス14(0〜M)は、バス相互接続18上のストリームトランザクションを要求するとき、ストリーム識別子ブロック78で情報を提供する。
【００２８】
引き続き図7を参照すると、ストリーム識別子ブロック78は、ストリームトランザクションを識別するストリーム識別子フィールド(STREAM_ID)88を含む。転送数フィールド(NO_TRANSFERS)90は、ストリームトランザクションに関連付けられたバースト転送の数を提供する。ビート数フィールド(NO_BEATS)92は、バースト転送ごとに実行されるデータ転送のビートの数を提供する。バイト数フィールド94(NO_BYTES)は、ビート転送ごとに実行されるデータのバイトの数を提供する。バイト数フィールド94は、バス相互接続18およびスレーブデバイス16(0〜N)のアーキテクチャに応じて、構成可能または固定値とすることができる。
【００２９】
ストリームトランザクションに関連付けられた最終期限がある場合、最終期限情報を、最終期限フィールド(DEADLINE)96に記憶することができる。たとえば、マスターデバイス14(0〜M)は、クロックサイクル、ビート、または他の相対的または絶対的なタイミングによることができる、あるタイミング内に特定のストリームトランザクションを完了することを要求することができる。優先順位をストリームトランザクションに関連付けることができるように、優先順位フィールド(PRIORITY)98も設けられている。優先順位フィールド98は、設計に応じて、マスターデバイス14(0〜M)、アービタ12、またはスレーブデバイス16(0〜N)によって供給されるおよび/または変更されるように構成することができる。ストリームトランザクションをアービトレーションするために、ストリームトランザクションのためにバスアービトレーションポリシーを評価し、適用するために、このストリーム情報のいずれかをアービタ12によって使用することができる。
【００３０】
図1のアービタ12は、図5における制御ブロック70を含むバストランザクション要求をマスターデバイス14(0〜M)から受信する。前に説明したように、ストリームトランザクション要求を含む、バストランザクション要求に応答する、スレーブデバイス16(0〜N)からのバストランザクション応答は、スレーブポートキュー56(0〜N)に入れられる。アービタ12は、スレーブポートキュー56(0〜N)に記憶されたストリームトランザクションについてのストリームトランザクション情報に基づいて、ストリームトランザクション応答のためにバスアービトレーションポリシーを評価することができる。この点について、図8は、図7のストリーム識別子ブロック78に基づいて、ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価し、適用することをサポートするために、アービタ12によってアクセスされるスレーブポートキュー56(0〜N)の図である。スレーブポートキュー56(0〜N)は、内部レジスタ、またはアービタ12によってアクセス可能な、バス相互接続18の内部もしくは外部の他のメモリに設けることができる。
【００３１】
図8に示すように、スレーブポートキュー56(0〜N)は、バストランザクション要求応答の0から「X」番までを保持するように構成されたテーブルから構成される。スレーブポートキュー56(0〜N)に記憶されたバストランザクション応答にインデックス付けするために、キュー番号フィールド(QUEUE_NO)100が使用される。この例では、スレーブポートキュー56(0〜N)内の各バストランザクション応答は、バストランザクション応答を受信すべきマスターデバイス14(0〜M)を識別するためのマスター識別子フィールド72(図5)を含む。バストランザクション要求がデータを要求することを伴う場合、応答データをデータフィールド(DATA)102に記憶することができる。また、バストランザクション要求がストリームトランザクションである場合、ストリームトランザクション情報を記憶するために、ストリーム識別子ブロック78がメモリアクセス要求エントリごとに設けられている。
【００３２】
アービタ12が、バストランザクション応答のためにバスアービトレーションポリシーを評価し、適用するために使用すべきストリームトランザクションの経過を決定できるようにするために、残存転送数フィールド(A number of transfers remaining field)(NO_TRANS_REMAIN)104も設けられている。最初に、残存転送数フィールド104は、図7のストリーム識別子ブロック78における転送数フィールド90内のストリームトランザクション要求のために提供される転送数フィールド90に基づいて、アービタ12によって設定される。図4に示したカウンタ62(0〜N)は、残存転送数フィールド104を低減するために、保留中のストリームトランザクションについて、スレーブデバイス16(0〜N)からの完了した転送の数をカウントする。競合するストリームトランザクション応答間をアービトレーションするためにアービタ12によって使用されるバスアービトレーションポリシーにおいてランクおよび/または重みを使用できるようにするために、ランクフィールド(RANK)106および重みフィールド(WEIGHT)108も設けられている。非限定的な例として、重みフィールド108を、重み付けされたラウンドロビンのバスアービトレーションポリシーにおいて使用することができる。別の非限定的な例として、ランクフィールド106を、固定された優先順位のバスアービトレーションポリシーにおいて採用することができる。他のバスアービトレーションポリシーを採用することができる。
【００３３】
バス相互接続18に対してマスターデバイス14(0〜M)によって要求されるストリームトランザクションのためのパラメータのうちの1つは、最終期限内にストリームトランザクションを完了することであり得る。図7のストリーム識別子ブロック78に関して上記で説明したように、最終期限情報は、ストリームトランザクションが最終期限内に完了することを要求するために、最終期限フィールド96に含めることができる。この点について、図9は、関連する最終期限を有する保留中のストリームトランザクション(「保留中の最終期限付きストリームトランザクション」)のためにバスアービトレーションポリシーを評価するために、図1のアービタ12によって適用することができる例示的なプロセスを示すフローチャートである。プロセスは、スレーブポートキュー56(0〜N)に存在する保留中のストリームトランザクションに基づいて、定期的にまたは連続的にアービタ12によって実行され得る。たとえば、アービタ12は、スレーブポートキュー56(0〜N)における存在の順序に基づいて、各スレーブポートキュー56(0〜N)内の保留中のストリームトランザクションごとに、図9のプロセスを実行することができる。
【００３４】
引き続き図9を参照すると、アービタ12は、次の保留中の最終期限付きストリームトランザクションのために実際に移動されるデータの量が、ストリームトランザクションの最終期限を満たすために移動されるデータ未満であるかどうかを決定する(ブロック110)。アービタ12は、この例では、スレーブポートキュー56(0〜N)内の残存転送数フィールド104を調べる。次の保留中の最終期限付きストリームトランザクションのために実際に移動されるデータの量が、最終期限を満たすために移動されるデータ未満である場合、これは、保留中の最終期限付きストリームトランザクションがストリームトランザクションのためのデータ転送の予想されるレートに基づいてその最終期限より遅れていることを意味する。この点について、アービタ12は、保留中の最終期限付きストリームトランザクションの優先順位が上がった場合、保留中の最終期限付きストリームトランザクションの最終期限を満たすことができるかどうかを決定する(ブロック112)。保留中の最終期限付きストリームトランザクションの優先順位を上げることによって保留中のストリームトランザクションがその最終期限を満たすことができる場合、アービタ12は、スレーブポートキュー56(0〜N)内の保留中の最終期限付きストリームトランザクションの優先順位を上げることができる(ブロック114)。たとえば、保留中の最終期限付きストリームトランザクションの優先順位を上げることは、スレーブポートキュー56(0〜N)における優先順位を変えることを含み得る。たとえば、図8に示すように、バスアービトレーションポリシーにおける保留中の最終期限付きストリームトランザクションの優先順位を上げるために、ランクフィールド106および/または重みフィールド108を更新することができる。非限定的な例として、ランクフィールド106を、固定された優先順位のバスアービトレーションポリシーにおいて使用することができる。別の非限定的な例として、重みフィールド108における重みを、重み付けされたラウンドロビンのバスアービトレーションポリシーにおいて使用することができる。
【００３５】
保留中の最終期限付きストリームトランザクションの優先順位を上げることによって、アービタ12は、保留中の最終期限付きストリームトランザクションの最終期限を満たすことができない場合、保留中の最終期限付きストリームトランザクションを終了することができる(ブロック116)。この点について、アービタ12は、保留中の最終期限付きストリームトランザクションをスレーブポートキュー56(0〜N)から取り除くことができる。次いで、アービタ12は、最初に最終期限付きストリームトランザクションを要求したマスターデバイス14(0〜M)に終了された状況を示すために、保留中のストリームトランザクションについてのエラー処理プロセスを実行することができる(ブロック118)。保留中の最終期限付きストリームトランザクションを終了し、取り除くことは、バス相互接続18から不必要に使用される帯域幅を取り除くことができ、したがって、バス相互接続18の性能を向上させることができることに留意されたい。
【００３６】
ブロック110での決定において、アービタ12は、保留中の最終期限付きストリームトランザクションのために実際に移動されるデータの量が、保留中の最終期限付きストリームトランザクションの最終期限を満たすために移動されるデータ以上であることを決定した場合、保留中の最終期限付きストリームトランザクションのために実際に移動されるデータの量が最終期限を満たすために移動されるデータよりも大きいかどうかを決定する(ブロック120)。そうである場合、アービタ12は、保留中の最終期限付きストリームトランザクションの優先順位を下げることができ(ブロック122)、その結果、他の保留中のストリームトランザクションを含む、他の保留中のバストランザクションは、バス相互接続18におけるルーティングリソースによって、より多くの処理時間を受信することができる。そうでない場合、アービタ12は、保留中の最終期限付きストリームトランザクションの優先順位を調整せず、次の保留中の最終期限付きストリームトランザクションが検討される(ブロック110)。
【００３７】
保留中の最終期限付きストリームトランザクションを検討し、それに応じてアービタ12によって適用されるバスアービトレーションポリシーを調整するプロセスは、連続的に実行することができる。プロセスは、「ストリームウォーターマーク」とも呼ばれる保留中の最終期限付きストリームトランザクションごとに、完了の定期的な間隔で(たとえば、完了の25%、完了の50%、および完了の75%、または他の間隔で)実行することもできる。保留中の最終期限付きストリームトランザクションを調べ、必要に応じて、それに応じてそれらのバスアービトレーションポリシーを更新するための所望の粒度に基づいて、使用されるストリームウォーターマークの数を提供することができる。
【００３８】
所与のスレーブポート22(0〜N)について、1つのみの保留中のストリームトランザクションが最終期限付きである場合、アービタ12は、図9における例示的なプロセスに従って保留中の最終期限付きストリームトランザクションを優先することができる。しかしながら、所与のスレーブポート22(0〜N)について、2つ以上の保留中のストリームトランザクションが最終期限を有する場合、アービタ12は、保留中の最終期限付きストリームトランザクションの間の優先順位を決定する。この点について、図10は、所与のスレーブポート22(0〜N)について、2つ以上の保留中のストリームトランザクションが関連する最終期限を有するとき、バスアービトレーションポリシーを評価するためにアービタ12によって実行することができる例示的なプロセスを示すフローチャートである。図10のプロセスは、スレーブポートキュー56(0〜N)ごとに、連続的に、または、保留中の最終期限付きストリームトランザクションのための指定されたストリームウォーターマークで実行することができる。図10に示すように、アービタ12は、所与のスレーブポート22(0〜N)についての2つ以上の保留中のストリームトランザクションが関連する最終期限を有するかどうかを、スレーブポート22(0〜N)ごとに決定する(ブロック130)。そうでない場合、プロセスは終了する(ブロック132)。所与のスレーブポート22(0〜N)についての2つ以上の保留中のストリームトランザクションが関連する最終期限を有する場合、アービタ12は、この例では、スレーブポートキュー56(0〜N)内の保留中の最終期限付きストリームトランザクションごとに実現可能性係数を計算する(ブロック134)。
【００３９】
実現可能性係数は、保留中の最終期限付きストリームトランザクションがその最終期限内に完了する実現可能性を決定するために使用される。任意の実現可能性係数を使用することができ、特定の実装形態に応じた任意の計算とすることができる。この例では、実現可能性係数は、保留中の最終期限付きストリームトランザクションを完了するための残余時間、および保留中の最終期限付きストリームトランザクションについての残余転送の数の関数である。たとえば、保留中の最終期限付きストリームトランザクションについて、転送が完了するにつれて、スレーブポートキュー56(0〜N)内の残存転送数フィールド104は、アービタ12によって更新される。
【００４０】
所与の保留中の最終期限付きストリームトランザクションについての実現可能性係数が最終期限までの完了が可能ではないことを示す場合(ブロック136)、アービタ12はその保留中のストリームトランザクションを終了することができる(ブロック138)。エラー処理プロセスは、ストリームトランザクションが完了前に終了されていることを、終了されたストリームトランザクションを要求するマスターデバイス14(0〜M)に示すために実行することができる(ブロック140)。保留中の最終期限付きストリームトランザクションを完了することが実現可能であると決定された場合(ブロック136)、アービタ12は、実現可能性係数に基づいて保留中の最終期限付きストリームトランザクションのためにバスアービトレーションポリシーを変更または調整することができる(ブロック142)。非限定的な例として、アービタ12は、重み付けされたラウンドロビンのバスアービトレーションポリシーから固定された優先順位方式に、またはその逆に、バスアービトレーションポリシーを変更することができる。所与のスレーブポート22(0〜N)が処理中の複数の保留中の最終期限付きストリームトランザクションから1つのみの保留中の最終期限付きストリームトランザクションに移行すると、アービタ12は、非限定的な例として図9のプロセスに基づいて保留中の最終期限付きストリームトランザクションに対するバスアービトレーションポリシーの評価に戻ることができる。
【００４１】
図11は、保留中の最終期限付きストリームトランザクションを完了する実現可能性を決定するために、アービタ12によって使用することができる例示的な実現可能性係数を示すためのチャート144である。この例では、6つの保留中の最終期限付きストリームトランザクションが、チャート144の各行に1つずつ示されている。各保留中の最終期限付きストリームトランザクションについてのクロックサイクルに関する残余時間は、残余時間(TR)カラム146に示される。各保留中の最終期限付きストリームトランザクションについての残余トランザクション数は、トランザクション数(XR)カラム148に示される。バスアービトレーションポリシーを決定するための各保留中の最終期限付きストリームトランザクションについて計算された実現可能性係数は、実現可能性係数(Ff)カラム150に示される。
【００４２】
引き続き図11の例を参照すると、保留中の最終期限付きストリームトランザクションについての残余時間(TR)が、保留中の最終期限付きストリームトランザクションについての残余転送数(XR)未満である場合、実現可能性係数は「0」と決定される。これは、保留中の最終期限付きストリームトランザクションの完了が可能ではない、または実現可能ではないことを意味する。保留中の最終期限付きストリームトランザクションについての残余時間(TR)が、保留中の最終期限付きストリームトランザクションについての残余転送数(XR)と同じである場合、実現可能性係数は「1」と決定される。このシナリオでは、保留中の最終期限付きストリームトランザクションの完了は、依然として実現可能である。保留中の最終期限付きストリームトランザクションについての残余時間(TR)が、保留中の最終期限付きストリームトランザクションについての残余転送数(XR)よりも大きいとき、実現可能性係数はTR-XRと決定される。
【００４３】
図9において示されるように、所与のスレーブポート22(0〜N)についての1つのみの保留中のストリームトランザクションが最終期限付きであるとき、アービタ12は、実現可能性係数を計算するように構成することができることに留意されたい。保留中の最終期限付きストリームトランザクションが最終期限内に完了することが実行可能ではないことを実現可能性係数が示す場合、アービタ12は、保留中の最終期限付きストリームトランザクションを早く終了することができる。保留中の最終期限付きストリームトランザクションを終了し、取り除くことは、バス相互接続18から不必要に使用される帯域幅を取り除くことができ、したがって、バス相互接続18の性能を向上させることができる。
【００４４】
保留中の最終期限付きストリームトランザクションを完了することができない、またはその最終期限前に完了することが実行可能ではないと決定されたときはいつでも、ストリームトランザクションを終了することに加えて、他のアクションをとることができることに留意されたい。たとえば、ストリームトランザクションの終了は、シンドロームレジスタに記録することができる。別の非限定的な例として、限定はしないが、マスターデバイス14(0〜M)を含む、適切なアクションをとることができる、システム10における1つまたは複数のインテリジェントシステムエージェントに対する割込みとして、ストリームトランザクションの終了をルーティングすることができる。終了したストリームトランザクションに関して伝えられたメッセージは、アービタ12によって応答チャネルに組み込むことができる。
【００４５】
バスアービトレーションポリシーの本明細書の例は、必要に応じて、単独で、または任意の組合せで、提供することが出来ることに留意されたい。同じく、本明細書で開示するバスアービトレーションポリシーのいずれかまたはすべては、アービタ12における回路によって実行することができ、図1に示すように、アービタ12は、コントローラ13を含んでいても、または含んでいなくてもよく、コンピュータ可読媒体15のソフトウェア命令を実行することができても、または実行することができなくてもよい。ストリームトランザクションに関連する情報に基づいて、ストリームトランザクションのためにバスアービトレーションポリシーを評価し、および/または適用するために、他のバスアービトレーションポリシーをアービタ12によって使用することができる。
【００４６】
本明細書で開示する実施形態に従ってストリームトランザクションに関連する情報に基づいてストリームトランザクションをアービトレーションするためのデバイス、システム、方法、およびコンピュータ可読媒体は、任意のプロセッサベースのデバイスに設ける、または組み込むことができる。このようなデバイスの例には、限定されないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータのモニタ、テレビ、チューナ、ラジオ、サテライトラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤが含まれる。
【００４７】
この点について、図12は、図1に示すシステム10の構成要素を使用することができるプロセッサベースシステム160の一例を示す。この例では、プロセッサベースシステム160は、各々1つまたは複数のプロセッサ164を含む1つまたは複数の中央処理装置(CPU)162を含む。CPU162は、マスターデバイスでもよい。CPU162は、一時的に記憶されたデータへの迅速なアクセスのために、プロセッサ164に結合されたキャッシュメモリ166を有することができる。CPU162はシステムバス170に結合され、プロセッサベースのシステム160に含まれるマスターデバイスおよびスレーブデバイスを相互に接続する。システムバス170は、図1に示すバス相互接続18のようなバス相互接続とすることができる。よく知られているように、CPU162は、アドレス情報、制御情報、およびデータ情報をシステムバス170を通じて交換することによって、これらの他のデバイスと通信する。たとえば、CPU162は、スレーブデバイスの一例として、メモリコントローラ32にバストランザクション要求を通信することができる。図12には図示されていないが、複数のシステムバス170を設けることができ、各システムバス170は、異なるファブリックを構成する。
【００４８】
他のマスターおよびスレーブデバイスは、システムバス170に接続することができる。図12に示すように、これらのデバイスは、メモリシステム28、1つまたは複数の入力デバイス174、1つまたは複数の出力デバイス176、1つまたは複数のネットワークインターフェースデバイス178、および1つまたは複数のディスプレイコントローラ180を含み得る。入力デバイス174は、限定はしないが、入力キー、スイッチ、音声プロセッサなどを含む任意のタイプの入力デバイスを含むことができる。出力デバイス176は、限定はしないが、オーディオ、ビデオ、他の視覚的指示などを含む任意のタイプの出力デバイスを含むことができる。ネットワークインターフェースデバイス178は、ネットワーク182との間のデータの交換を可能にするように構成された任意のデバイスとすることができる。ネットワーク182は、限定はしないが、有線ネットワークまたはワイヤレスネットワーク、非公開ネットワークまたは公開ネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、およびインターネットを含む、任意の種類のネットワークとすることができる。ネットワークインターフェースデバイス178は、所望の任意の種類の通信プロトコルをサポートするように構成することができる。メモリシステム28は、1つまたは複数のメモリユニット36(0〜A)を含むことができる。アービタ12は、システムバス170と、たとえば、メモリシステム28に設けられたメモリユニット36(0〜A)など、システムバス170に結合されたマスターおよびスレーブデバイスとの間に設けられていてもよい。
【００４９】
CPU162は、システムバス170を通じてディスプレイコントローラ180にアクセスして、1つまたは複数のディスプレイ184に送られる情報を制御することもできる。ディスプレイコントローラ180は、1つまたは複数のビデオプロセッサ186を介して表示されるべき情報をディスプレイ184に送り、ビデオプロセッサ186は、表示されるべき情報を、ディスプレイ184に適切なフォーマットとなるように処理する。ディスプレイ184は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む、任意の種類のディスプレイを含むことができる。
【００５０】
CPU162およびディスプレイコントローラ180は、システムバス170を介してアービタ12にメモリアクセス要求を行うマスターデバイスとして働き得る。CPU162およびディスプレイコントローラ180内の異なるスレッドがアービタ12に要求を行うことができる。CPU162およびディスプレイコントローラ180は、前述のように、マスター識別子72を、バストランザクション要求の一部としてアービタ12に提供することができる。
【００５１】
任意のタイプのマスターデバイス14(0〜M)およびスレーブデバイス16(0〜N)は、ストリームトランザクションに対する要求および応答を行うために、プロセッサベースシステム160で使用することができる。非限定的な例として、図12に示すように、最終期限付きストリームトランザクションを要求するマスターデバイス14(0〜M)がDMAコントローラ14(M)である場合、DMAコントローラ14(M)は、記述子フィールドで提供される任意の必要な最終期限パラメータを含む記述子を解析することができる。CPU162による記述セットアップに、最終期限パラメータが与えられ得る。DMAコントローラ14(M)は、後でこの最終期限パラメータを解析することができ、システムバス170を介して、新しいストリームトランザクション要求の一部として、そのような最終期限をブロードキャストすることができる。この点について、一例として、最終期限パラメータは、図7のストリーム識別子ブロック78の最終期限フィールド96におけるDMAコントローラ14(M)によって提供することができる。ストリームトランザクション転送の過程を通って、アービタ12は、記述子によって伝えられる最終期限を達成しようと試みるために、ストリームトランザクションのためにバスアービトレーションポリシーを動的に調整することができる。
【００５２】
本明細書で開示される実施形態とともに説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子的なハードウェアとして、メモリもしくは別のコンピュータ可読媒体に記憶されプロセッサもしくは他の処理デバイスにより実行される命令として、またはこれら両方の組合せとして実装され得ることが、当業者にはさらに理解されよう。例として、本明細書で説明するアービタ、マスターデバイス、サブマスターデバイス、およびスレーブデバイスは、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップにおいて採用され得る。本明細書で開示するメモリは、任意のタイプおよびサイズのメモリとすることができ、所望の任意のタイプの情報を記憶するように構成することができる。この互換性を明確に示すために、上記では、様々な例示的構成要素、ブロック、モジュール、回路、およびステップは全般的に、それらの機能に関して説明されている。そのような機能がどのように実装されるかは、具体的な用途、設計の選択、および/またはシステム全体に課される設計制約により決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【００５３】
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、DSP、特定用途向け集積回路(ASIC)、FPGAもしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せで実装または実行することができる。プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
【００５４】
本明細書で開示される実施形態は、ハードウェアで具現化されてよく、ハードウェアに記憶される命令により具現化されてよく、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取専用メモリ(ROM)、電気的にプログラム可能なROM(EPROM)、電気的に消去可能なプログラム可能ROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または、当技術分野で知られている任意の他の形態のコンピュータ可読媒体に、存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はASIC中に常駐し得る。ASICは遠隔局に存在し得る。代替的には、プロセッサおよび記憶媒体は、遠隔局、基地局、またはサーバの中に、個別の構成要素として存在し得る。
【００５５】
本明細書の例示的な実施形態のいずれかで説明された動作ステップは、例および議論を提供するために説明されたものであることにも、留意されたい。説明された動作は、例示された順序以外の多くの異なる順序で実行されてもよい。さらに、単一の動作ステップで説明される動作は、実際には、多くの異なるステップで実行され得る。加えて、例示的な実施形態において論じられた1つまたは複数の動作ステップは、組み合わされてもよい。フローチャートにおいて例示される動作ステップは、当業者に容易に明らかとなるような多くの異なる修正を受けてもよいことを、理解されたい。情報および信号は、多種多様な技術および技法のいずれかを使用して表され得ることも、当業者には理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【００５６】
本開示の前述の説明は、いかなる当業者でも本開示を作成または使用することができるように提供される。本開示への様々な修正は当業者には容易に明らかであり、本明細書で定義した一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用できる。したがって、本開示は、本明細書で説明した例および設計に限定されることを意図するものではなく、本明細書で開示する原理および新規の特徴に一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００５７】
10  システム
12  アービタ
13  コントローラ
14  マスターデバイス
14(0)  中央処理装置(CPU)
14(1)  デジタル信号プロセッサ(DSP)
14(2)  ディスプレイプロセッサ
14(M)  直接メモリアクセス(DMA)コントローラ
15  コンピュータ可読媒体
16  スレーブデバイス
18  通信バス
20  マスターポート
22  スレーブポート
24  半導体ダイ
26  ディスプレイ
28  メモリシステム
30  メモリ
32  メモリコントローラ
36  メモリユニット
38  データのストリーム
40  バーストデータトランザクション
50  マスターポートバス
52  スレーブポートバス
53  マスターポートインターフェース
54  マスターポートキュー
56  スレーブポートキュー
58  アドレス指定アービタ
60  データ(読取り/書込み)アービタ
61  スレーブポートインターフェース
62  カウンタ
70  制御ブロック(CTRL_BLOCK)
72  マスター識別子(M_ID)
74  アドレスフィールド(ADDRESS)
76  読取り/書込みフィールド(R/W)
78  ストリーム識別子ブロック(STREAM_ID_BLOCK)
80  ファブリック識別子
82  マスターデバイス識別子
84  サブマスターデバイス識別子
86  属性識別子
88  ストリーム識別子フィールド(STREAM_ID)
90  転送数フィールド(NO_TRANSFERS)
92  ビート数フィールド(NO_BEATS)
94  バイト数フィールド(NO_BYTES)
96  最終期限フィールド(DEADLINE)
98  優先順位フィールド(PRIORITY)
100  キュー番号フィールド(QUEUE_NO)
102  データフィールド(DATA)
104  残存転送数フィールド(NO_TRANS_REMAIN)
106  ランクフィールド(RANK)
108  重みフィールド(WEIGHT)
146  残余時間(TR)カラム
148  トランザクション数(XR)カラム
150  実現可能性係数(Ff)カラム
160  プロセッサベースシステム
162  中央処理装置(CPU)
164  プロセッサ
166  キャッシュメモリ
170  システムバス
174  入力デバイス
176  出力デバイス
178  ネットワークインターフェースデバイス
180  ディスプレイコントローラ
182  ネットワーク
184  ディスプレイ
186  ビデオプロセッサ
【図１】
2013542520.tif 000003
【図２】
2013542520.tif 000004
【図３】
2013542520.tif 000005
【図４】
2013542520.tif 000006
【図５】
2013542520.tif 000007
【図６】
2013542520.tif 000008
【図７】
2013542520.tif 000009
【図８】
2013542520.tif 000010
【図９】
2013542520.tif 000011
【図１０】
2013542520.tif 000012
【図１１】
2013542520.tif 000013
【図１２】
2013542520.tif 000014
【手続補正書】
【提出日】平成24年8月8日(2012.8.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
バス(18)に結合されたデバイス(120, 140)から前記バス(18)上の保留中のストリームトランザクション(38)を受信し、前記保留中のストリームトランザクション(38)に関連付けられた最終期限(96)に基づいて、前記バス(18)上の前記保留中のストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価し、前記保留中のストリームトランザクション(38)に関連付けられた前記最終期限(96)に基づいて、前記バスアービトレーションポリシーを変更するかどうかを決定する
ように構成されたコントローラ(13)
によって特徴付けられるバスアービタ(12)。
【請求項２】
前記コントローラが、前記バスアービトレーションポリシーを変更するために、前記バスアービトレーションポリシーを、重み付けされたラウンドロビンのバスアービトレーションポリシーから固定された優先順位方式に変更するようにさらに構成される、請求項1に記載のバスアービタ。
【請求項３】
前記コントローラが、前記バスアービトレーションポリシーを変更するために、前記バスアービトレーションポリシーを、固定された優先順位方式から重み付けされたラウンドロビンのバスアービトレーションポリシーに変更するようにさらに構成される、請求項1に記載のバスアービタ。
【請求項４】
前記コントローラが、マスター識別子、ストリーム識別子、または前記保留中のストリームトランザクションに関連付けられた優先順位のうちの1つまたは複数に基づいて、前記保留中のストリームトランザクションをアービトレーションするために、前記バスアービトレーションポリシーを評価するようにさらに構成される、請求項1に記載のバスアービタ。
【請求項５】
前記バスアービトレーションポリシーが重み付けされたラウンドロビンのバスアービトレーションポリシーまたは固定された優先順位方式を含む、請求項1に記載のバスアービタ。
【請求項６】
コントローラが、前記重み付けされたラウンドロビンのバスアービトレーションポリシーまたは前記固定された優先順位方式が前記保留中のストリームトランザクションおよび前記1つまたは複数の競合するストリームトランザクションと関連する重みまたはランクに基づいて前記保留中のストリームトランザクションと1つまたは複数の競合するストリームトランザクションとの間をアービトレーションするようにさらに構成される、請求項5に記載のバスアービタ。
【請求項７】
前記コントローラが、前記最終期限が保留中のままである間、前記保留中のストリームトランザクションに関連付けられた前記最終期限に基づいて、前記バスアービトレーションポリシーを連続的に評価するようにさらに構成される、請求項1に記載のバスアービタ。
【請求項８】
前記コントローラが、前記バスアービトレーションポリシーを変更し、前記最終期限内に前記保留中のストリームトランザクションを完了するために、前記保留中のストリームトランザクションに関連付けられた優先順位を変更するようにさらに構成される、請求項1に記載のバスアービタ。
【請求項９】
前記保留中のストリームトランザクションに関連付けられた前記最終期限が、前記保留中のストリームトランザクションに関連付けられた直接メモリアクセス記述子中に埋め込まれる、請求項1に記載のバスアービタ。
【請求項１０】
前記コントローラが、前記最終期限が保留中のままである間、前記保留中のストリームトランザクションに関連付けられた前記最終期限に基づいて、前記バスアービトレーションポリシーを定期的に評価するようにさらに構成される、請求項1に記載のバスアービタ。
【請求項１１】
前記コントローラが、前記保留中のストリームトランザクションのために移動された第1のデータ量が前記最終期限内に前記保留中のストリームトランザクションを完了するために移動すべき第2のデータ量以上である場合、前記保留中のストリームトランザクションに関連付けられた前記優先順位を下げるようにさらに構成される、請求項8に記載のバスアービタ。
【請求項１２】
前記コントローラが、前記保留中のストリームトランザクションのために移動された第1のデータ量が前記最終期限内に前記保留中のストリームトランザクションを完了するために移動すべき第2のデータ量未満である場合、前記保留中のストリームトランザクションに関連付けられた前記優先順位を上げるようにさらに構成される、請求項8に記載のバスアービタ。
【請求項１３】
前記コントローラが、前記保留中のストリームトランザクションに関連付けられた前記優先順位の変更が前記最終期限内に前記保留中のストリームトランザクションを完了しない場合、前記保留中のストリームトランザクションを終了するようにさらに構成される、請求項8に記載のバスアービタ。
【請求項１４】
前記コントローラが、前記保留中のストリームトランザクションに関連付けられた前記最終期限、および1つまたは複数の競合するストリームトランザクションに関連付けられた最終期限に基づいて、前記保留中のストリームトランザクションと前記1つまたは複数の競合するストリームトランザクションとの間をアービトレーションするために前記バスアービトレーションポリシーを評価するようにさらに構成される、請求項1に記載のバスアービタ。
【請求項１５】
前記コントローラが、前記保留中のストリームトランザクションおよび前記1つまたは複数の競合するストリームトランザクションに関連付けられた前記最終期限に基づいて、前記保留中のストリームトランザクションに関連付けられた前記最終期限内に前記保留中のストリームトランザクションを完了するための実現可能性を決定するようにさらに構成される、請求項14に記載のバスアービタ。
【請求項１６】
前記コントローラが、前記決定された実現可能性に基づいて、それに関連付けられた前記最終期限で前記保留中のストリームトランザクションを完了するために、保留中のストリームトランザクション、または前記1つまたは複数の競合するストリームトランザクションのうちの1つまたは複数に関連付けられた優先順位を調整するようにさらに構成される、請求項15に記載のバスアービタ。
【請求項１７】
前記コントローラが、前記保留中のストリームトランザクションを完了するための残余時間、および前記保留中のストリームトランザクションについての残余転送数に基づいて、前記最終期限内に前記保留中のストリームトランザクションを完了するための前記実現可能性を決定するようにさらに構成される、請求項15に記載のバスアービタ。
【請求項１８】
半導体ダイ、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末、モニタ、コンピュータのモニタ、テレビ、チューナ、ラジオ、サテライトラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスクプレーヤ、またはポータブルデジタルビデオプレーヤのうちの1つまたは複数に統合される、請求項1に記載のバスアービタ。
【請求項１９】
バス(18)上で通信されるストリームトランザクションをアービトレーションする方法であって、
バス(18)に結合されたデバイス(120, 140)から前記バス(18)上の保留中のストリームトランザクション(38)を受信するステップと、
前記バス(18)上のストリームトランザクション(38)をアービトレーションするように構成されたコントローラ(13)で、前記保留中のストリームトランザクション(38)に関連付けられた最終期限(96)に基づいて、前記バス(18)上の前記保留中のストリームトランザクション(38)をアービトレーションするためにバスアービトレーションポリシーを評価するステップと、
前記コントローラ(13)で、前記保留中のストリームトランザクション(38)に関連付けられた前記最終期限(96)に基づいて、前記バスアービトレーションポリシーを変更するかどうかを決定するステップと
によって特徴づけられる方法。
【請求項２０】
前記コントローラが、前記バスアービトレーションポリシーを変更するために、前記バスアービトレーションポリシーを、重み付けされたラウンドロビンのバスアービトレーションポリシーから固定された優先順位方式に変更するステップをさらに含む、請求項19に記載の方法。
【請求項２１】
前記コントローラが、前記バスアービトレーションポリシーを変更するために、前記バスアービトレーションポリシーを、固定された優先順位方式から重み付けされたラウンドロビンのバスアービトレーションポリシーに変更するステップをさらに含む、請求項19に記載の方法。
【請求項２２】
前記コントローラが、マスター識別子、ストリーム識別子、または前記保留中のストリームトランザクションに関連付けられた優先順位のうちの1つまたは複数に基づいて、前記保留中のストリームトランザクションをアービトレーションするために、前記バスアービトレーションポリシーをさらに評価する、請求項19に記載の方法。
【請求項２３】
前記最終期限が保留中のままである間、前記保留中のストリームトランザクションに関連付けられた前記最終期限に基づいて、前記バスアービトレーションポリシーを連続的に評価するステップをさらに含む、請求項19に記載の方法。
【請求項２４】
前記バスアービトレーションポリシーを変更し、前記最終期限内に前記保留中のストリームトランザクションを完了するために、前記保留中のストリームトランザクションに関連付けられた優先順位を変更するステップをさらに含む、請求項19に記載の方法。
【請求項２５】
前記保留中のストリームトランザクションに関連付けられた前記最終期限が、前記保留中のストリームトランザクションに関連付けられた直接メモリアクセス記述子中に埋め込まれる、請求項19に記載の方法。
【請求項２６】
前記最終期限が保留中のままである間、前記保留中のストリームトランザクションに関連付けられた前記最終期限に基づいて、前記バスアービトレーションポリシーを定期的に評価するステップをさらに含む、請求項19に記載の方法。
【請求項２７】
前記保留中のストリームトランザクションのために移動された第1のデータ量が前記最終期限内に前記保留中のストリームトランザクションを完了するために移動すべき第2のデータ量以上である場合、前記保留中のストリームトランザクションに関連付けられた前記優先順位を下げるステップをさらに含む、請求項24に記載の方法。
【請求項２８】
前記保留中のストリームトランザクションのために移動された第1のデータ量が前記最終期限内に前記保留中のストリームトランザクションを完了するために移動すべき第2のデータ量未満である場合、前記保留中のストリームトランザクションに関連付けられた前記優先順位を上げるステップをさらに含む、請求項24に記載の方法。
【請求項２９】
前記コントローラが、前記保留中のストリームトランザクションに関連付けられた前記最終期限、および1つまたは複数の競合するストリームトランザクションに関連付けられた最終期限に基づいて、前記保留中のストリームトランザクションと前記1つまたは複数の競合するストリームトランザクションとの間をアービトレーションするために前記バスアービトレーションポリシーをさらに評価する、請求項19に記載の方法。
【請求項３０】
前記保留中のストリームトランザクションおよび前記1つまたは複数の競合するストリームトランザクションに関連付けられた前記最終期限に基づいて、前記保留中のストリームトランザクションに関連付けられた前記最終期限内に前記保留中のストリームトランザクションを完了するための実現可能性を決定するステップをさらに含む、請求項29に記載の方法。
【請求項３１】
前記決定された実現可能性に基づいて、それに関連付けられた前記最終期限で前記保留中のストリームトランザクションを完了するために、保留中のストリームトランザクション、または前記1つまたは複数の競合するストリームトランザクションのうちの1つまたは複数に関連付けられた優先順位を調整するステップをさらに含む、請求項30に記載の方法。
【請求項３２】
バスアービタ(12)に、
バス(18)に結合されたデバイス(120, 140)から前記バス(18)上の保留中のストリームトランザクション(38)を受信させ、
前記保留中のストリームトランザクション(38)に関連付けられた最終期限(96)に基づいて、前記バス(18)上の前記保留中のストリームトランザクション(38)をアービトレーションするためにバスアービトレーションポリシーを評価させ、
前記保留中のストリームトランザクション(38)に関連付けられた前記最終期限(96)に基づいて、前記バスアービトレーションポリシーを変更するかどうかを決定させる
ことによって特徴付けられる、コンピュータ実行可能命令を記録するコンピュータ可読記録媒体。
【請求項３３】
前記コンピュータ実行可能命令が、さらに、前記バスアービタに、前記バスアービトレーションポリシーを変更するために、前記バスアービトレーションポリシーを、重み付けされたラウンドロビンのバスアービトレーションポリシーから固定された優先順位方式に変更させる、請求項32に記載のコンピュータ可読記録媒体。
【請求項３４】
前記コンピュータ実行可能命令が、さらに、前記バスアービタに、前記バスアービトレーションポリシーを変更するために、前記バスアービトレーションポリシーを、固定された優先順位方式から重み付けされたラウンドロビンのバスアービトレーションポリシーに変更させる、請求項32に記載のコンピュータ可読記録媒体。
【請求項３５】
前記バスアービトレーションポリシーが重み付けされたラウンドロビンのバスアービトレーションポリシーまたは固定された優先順位方式を含む、請求項32に記載のコンピュータ可読記録媒体。
【請求項３６】
前記コンピュータ実行可能命令が、さらに、前記バスアービタに、前記最終期限が保留中のままである間、前記保留中のストリームトランザクションに関連付けられた前記最終期限に基づいて、前記バスアービトレーションポリシーを連続的に評価させる、請求項32に記載のコンピュータ可読記録媒体。
【請求項３７】
前記コンピュータ実行可能命令が、さらに、前記バスアービタに、前記バスアービトレーションポリシーを変更し、前記最終期限内に前記保留中のストリームトランザクションを完了するために、前記保留中のストリームトランザクションに関連付けられた優先順位を変更させる、請求項32に記載のコンピュータ可読記録媒体。
【請求項３８】
前記コンピュータ実行可能命令が、さらに、前記バスアービタに、前記保留中のストリームトランザクションに関連付けられた前記最終期限、および1つまたは複数の競合するストリームトランザクションに関連付けられた最終期限に基づいて、前記保留中のストリームトランザクションと前記1つまたは複数の競合するストリームトランザクションとの間をアービトレーションするために前記バスアービトレーションポリシーを評価させる、請求項32に記載のコンピュータ可読記録媒体。
【国際調査報告】
2013542520.tif 000015
2013542520.tif 000016