複数のマスターデバイスのヘルス情報を決定し、前記複数のマスターデバイスの各々の前記ヘルス情報を仮想優先度空間にマッピングし、前記仮想優先度空間を前記複数のマスターデバイスの各々の物理的な優先度レベルに変換し、前記複数のマスターデバイスの各々の前記物理的な優先度レベルに基づいて前記複数のマスターデバイスのバストランザクションをアービトレーションするように構成されたバス相互接続。前記複数のマスターデバイスから前記バストランザクションを受信するように構成される請求項1に記載のバス相互接続。前記物理的な優先度レベルに基づいて前記バストランザクションをアービトレーションするように構成された少なくとも1つのアービタをさらに含む請求項1に記載のバス相互接続。前記複数のマスターデバイスに対する複数のマスターデバイスクラスの中の1つのマスターデバイスクラスの割当てに基づいて、前記複数のマスターデバイスの相対的優先度を割り振るようにさらに構成される請求項1に記載のバス相互接続。前記マスターデバイスクラスが、ハードリアルタイムクラス、低レイテンシクラス、ソフトリアルタイムクラス、およびベストエフォートクラスのうちの少なくとも1つから構成される、請求項4に記載のバス相互接続。前記複数のマスターデバイスの中の少なくとも1つのマスターデバイスから前記ヘルス情報を受信するように構成される請求項1に記載のバス相互接続。前記複数のマスターデバイスの中の少なくとも1つのマスターデバイスの前記ヘルス情報が、前記少なくとも1つのマスターデバイスのアドレスマップにおける複数のアドレスセグメントに対応する複数のヘルス情報セグメントから構成される、請求項1に記載のバス相互接続。前記複数のマスターデバイスうちの少なくとも1つの前記ヘルス情報を導出するように構成された少なくとも1つのブックキーピング要素をさらに含む請求項1に記載のバス相互接続。前記少なくとも1つのブックキーピング要素が、クレジットデビットオプションに基づいて、前記複数のマスターデバイスうちの前記少なくとも1つの前記ヘルス情報を導出するように構成される、請求項8に記載のバス相互接続。前記少なくとも1つのブックキーピング要素が、平均化帯域幅閾値オプションに基づいて、前記複数のマスターデバイスうちの前記少なくとも1つの前記ヘルス情報を導出するように構成される、請求項8に記載のバス相互接続。前記少なくとも1つのブックキーピング要素が、バス相互接続クロック信号とは無関係にクロック制御される、請求項8に記載のバス相互接続。ラウンドロビンアービトレーション優先度ポリシー、アービトレーション優先度ポリシーを並べ替えることによるラウンドロビン、および固定のアービトレーション優先度ポリシーからなる群から選択される少なくとも1つのアービトレーション優先度方針に基づいて前記バストランザクションをアービトレーションするように構成される請求項1に記載のバス相互接続。前記複数のマスターデバイスの優先度使用の頻度を監視するように構成された優先度使用モニタをさらに含む請求項1に記載のバス相互接続。前記優先度使用モニタが、前記バストランザクションをアービトレーションするための能力要件を決定するように構成される、請求項13に記載のバス相互接続。前記能力要件が前記バストランザクションをアービトレーションするために利用可能な能力に関連する閾値未満である場合、バス相互接続クロック信号の周波数を低減するように構成される請求項14に記載のバス相互接続。前記閾値が、前記バストランザクションをアービトレーションするために前記利用可能な能力の90である、請求項15に記載のバス相互接続。前記能力要件が前記バストランザクションをアービトレーションするために利用可能な能力に関連する閾値を上回る場合、バス相互接続クロック信号の周波数を増加させるように構成される請求項14に記載のバス相互接続。前記閾値が、前記バストランザクションをアービトレーションするために前記利用可能な能力の90である、請求項17に記載のバス相互接続。半導体ダイに統合される、請求項1に記載のバス相互接続。前記バス相互接続が統合されるセットトップボックス、娯楽機器、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスクプレーヤ、およびポータブルデジタルビデオプレーヤからなる群から選択されたデバイスをさらに含む、請求項1に記載のバス相互接続。複数のマスターデバイスのヘルス情報を決定するための手段と、前記複数のマスターデバイスの各々の前記ヘルス情報を仮想優先度空間にマッピングするための手段と、前記仮想優先度空間を前記複数のマスターデバイスの各々の物理的な優先度レベルに変換するための手段と、前記複数のマスターデバイスの各々の前記物理的な優先度レベルに基づいて前記複数のマスターデバイスのバストランザクションをアービトレーションするための手段とを含むバス相互接続。バス相互接続におけるバストランザクションをアービトレーションする方法であって、複数のマスターデバイスのヘルス情報を決定するステップと、前記複数のマスターデバイスの各々の前記ヘルス情報を仮想優先度空間にマッピングするステップと、前記仮想優先度空間を前記複数のマスターデバイスの各々の物理的な優先度レベルに変換するステップと、前記複数のマスターデバイスの各々の前記物理的な優先度レベルに基づいて前記複数のマスターデバイスのバストランザクションをアービトレーションするステップとを含む方法。バス相互接続に、複数のマスターデバイスのヘルス情報を決定させ、前記複数のマスターデバイスの各々の前記ヘルス情報を仮想優先度空間にマッピングさせ、前記仮想優先度空間を前記複数のマスターデバイスの各々の物理的な優先度レベルに変換させ、前記複数のマスターデバイスの各々の前記物理的な優先度レベルに基づいて前記複数のマスターデバイスのバストランザクションをアービトレーションさせるためのコンピュータ実行可能命令を記録するコンピュータ可読記録媒体。マスターデバイスのサービス契約を決定し、前記サービス契約をサービス閾値と比較し、前記サービス契約に対するサービス特性の前記比較に基づいて前記マスターデバイスに関するヘルス情報を符号化するように構成されるブックキーピング要素。前記サービス特性が、帯域幅およびレイテンシからなる群から選択される、請求項24に記載のブックキーピング要素。前記サービス契約が、固定帯域幅契約、平均レイテンシ契約、可変帯域幅契約、および動的契約からなる群から選択される、請求項24に記載のブックキーピング要素。しかしながら、アービタは、他のマスターデバイスによる他の要求のレイテンシの許容できない増加を引き起こす、通信バス上の1つのマスターデバイスからの要求を処理するルーティングリソースを消費することのないように構成されることが望まれる。発明を実施するための形態で開示する実施形態は、バスデバイスのヘルス情報に基づいて通信バス上のバストランザクションをアービトレーションし、通信バスの電力管理を提供するためのデバイス、システム、方法、およびコンピュータ可読媒体を含む。このようにして、マスターデバイスのサービス品質要件を満たすことを試みるためにマスターデバイスからのバストランザクションの優先度を調整するために、マスターデバイスのヘルス情報がバス相互接続によって使用される。例として、ヘルス情報がマスターデバイスのサービス品質要件を上回ることを示すとき、サービス品質要件を満たすことによって、システムの頑強さを向上させ、レイテンシの短縮によって性能を向上させ、およびまたは消費電力を低減することができる。さらに、マスターデバイスのヘルス情報に基づいてバストランザクションをアービトレーションすることによって、動的なバスアービトレーション方式を提供するために、優先度をバストランザクションに動的に割り当てることができる。さらに、マスターデバイスのヘルス情報は、マスターデバイスのバストランザクションをアービトレーションするために使用される物理的な優先度に変換される前に、まず、そのクラスタイプに基づいて仮想優先度空間にマッピングされ得る。このようにして、すべてのマスターデバイスの優先度スケールの最上位獲得競争を回避するために、構成されたクラスタイプに基づいてマスターデバイスが利用可能な最大優先度に制約を設けることができる。また、これによって、アービタは、マスターデバイスの相対的な重要度に基づいて、異なるマスターデバイス間にバストランザクションのためのバス相互接続の能力を割り振ることができる。この点について一実施形態では、通信バスは、複数のマスターデバイスのいずれかからバス相互接続に結合されたスレーブデバイスにバストランザクションを通信するように構成されたバス相互接続である。バス相互接続は、複数のマスターデバイスのヘルス情報を決定するように構成される。バス相互接続は、複数のマスターデバイスの各々のヘルス情報を仮想優先度空間にマッピングするように、さらに構成される。バス相互接続は、仮想優先度空間を複数のマスターデバイスの各々の物理的な優先度レベルに変換するように、さらに構成される。バス相互接続は、複数のマスターデバイスの物理的な優先度レベルに基づいて複数のマスターデバイスのバストランザクションをアービトレーションするように、さらに構成される。別の実施形態では、バス相互接続が提供される。バス相互接続は、複数のマスターデバイスのヘルス情報を決定するための手段を含む。バス相互接続は、複数のマスターデバイスの各々のヘルス情報を仮想優先度空間にマッピングするための手段も含む。バス相互接続は、仮想優先度空間を複数のマスターデバイスの各々の物理的な優先度レベルに変換するための手段も含む。バス相互接続は、複数のマスターデバイスの物理的な優先度レベルに基づいて複数のマスターデバイスのバストランザクションをアービトレーションするための手段も含む。別の実施形態では、バス相互接続におけるバストランザクションをアービトレーションする方法が提供される。方法は、複数のマスターデバイスのヘルス情報を決定するステップを含む。方法は、複数のマスターデバイスの各々のヘルス情報を仮想優先度空間にマッピングするステップも含む。方法は、仮想優先度空間を複数のマスターデバイスの各々の物理的な優先度レベルに変換するステップも含む。方法は、複数のマスターデバイスの物理的な優先度レベルに基づいて複数のマスターデバイスのバストランザクションをアービトレーションするステップも含む。別の実施形態では、コンピュータ実行可能命令を記憶したコンピュータ可読媒体が提供される。バス相互接続に、複数のマスターデバイスのヘルス情報を決定させ、複数のマスターデバイスの各々のヘルス情報を仮想優先度空間にマッピングさせ、仮想優先度空間を複数のマスターデバイスの各々の物理的な優先度レベルに変換させ、複数のマスターデバイスの物理的な優先度レベルに基づいて複数のマスターデバイスのバストランザクションをアービトレーションさせるためのコンピュータ実行可能命令が提供される。別の実施形態では、ブックキーピング要素が提供される。ブックキーピング要素は、マスターデバイスのサービス契約を決定するように構成される。ブックキーピング要素は、サービス契約をサービス閾値と比較するようにも構成される。ブックキーピング要素は、サービス契約に対するサービス特性の比較に基づいてマスターデバイスに関するヘルス情報を符号化するようにも構成される。非限定的な例として、サービス契約は、固定帯域幅契約、平均レイテンシ契約、可変帯域幅契約、または動的契約を含み得る。ここで図面を参照して、本開示のいくつかの例示的な実施形態が説明される。例示的なという言葉は、一例、実例または例としてを意味するために本明細書で使用される。例示的として本明細書で説明する任意の実施形態は、必ずしも他の実施形態よりも好ましいまたは有利であると解釈されるべきではない。発明を実施するための形態で開示する実施形態は、バスデバイスのヘルス情報に基づいて通信バス上のバストランザクションをアービトレーションし、通信バスの電力管理を提供するためのデバイス、システム、方法、およびコンピュータ可読媒体を含む。このようにして、一例として、マスターデバイスのサービス品質要件を満たすことを試みるためにマスターデバイスからのバストランザクションの優先度を調整するために、マスターデバイスのヘルス情報がバス相互接続によって使用される。例として、ヘルス情報がマスターデバイスのサービス品質要件を上回ることを示すとき、サービス品質要件を満たすことによって、システムの頑強さを向上させ、レイテンシの短縮によって性能を向上させ、およびまたは消費電力を低減することができる。さらに、たとえば、マスターデバイスのヘルス情報に基づいてバストランザクションをアービトレーションすることによって、動的なバスアービトレーション方式を提供するために、優先度をバストランザクションに動的に割り当てることができる。さらに、マスターデバイスのヘルス情報は、マスターデバイスのバストランザクションをアービトレーションするために使用される物理的な優先度に変換される前に、まず、そのクラスタイプに基づいて仮想優先度空間にマッピングされ得る。このようにして、一例として、すべてのマスターデバイスの優先度スケールの最上位獲得競争を回避するために、構成されたクラスタイプに基づいてマスターデバイスが利用可能な最大優先度に制約を設けることができる。また、これによって、アービタは、マスターデバイスの相対的な重要度に基づいて、異なるマスターデバイス間にバストランザクションのためのバス相互接続の能力を割り振ることができる。この点について、図1は、バス相互接続12と呼ばれる通信バスに結合された複数のマスターデバイス14のうちの任意のものとバス相互接続12に結合されたスレーブデバイス16との間のバストランザクションをアービトレーションし、ルーティングするように構成されたバス相互接続12を含む例示的なバス相互接続システム10のブロック図である。例として、バス相互接続12は、ソフトウェア命令を実行することができる、フィールドプログラム可能ゲートアレイ、特定用途向け集積回路、コントローラ、マイクロコントローラもしくはマイクロプロセッサ、またはそれらのどの組合せによっても提供され得る。バス相互接続12は、所望のマスターデバイス14と所望のスレーブデバイス16との間に通信経路を確立するように構成可能である、例としてゲート、ラッチ、およびレジスタなどのクロック制御された回路を含む。スレーブデバイス16は、マスターデバイス14との共有リソースでもよい。バス相互接続12に設けられているクロック制御された回路をクロック制御するために、バス相互接続クロック信号18が設けられる。バス相互接続12は、バス相互接続12に接続されたマスターデバイス14の1つまたは複数を、バス相互接続12に結合されたスレーブデバイス16のいずれかと通信させるように構成可能である。一例として、バス相互接続12は、半導体ダイ20内に設けることができ、所望される場合、システムオンチップ集積回路設計において設けることができる。マスターデバイス14およびスレーブデバイス16は、それぞれ、この例ではバス相互接続12に設けられているマスターポート22およびスレーブポート24を介してバス相互接続12に接続されている。マスターデバイス14からスレーブデバイス16への複数のバストランザクション要求をアービトレーションするように構成された1つまたは複数のアービタ26がバス相互接続12に設けられている。マスターデバイス14およびスレーブデバイス16は、所望の任意のタイプの電子デバイスまたはサブシステムとすることができる。たとえば、マスターデバイス14は、限定はしないが、中央処理装置、デジタル信号プロセッサ、ディスプレイプロセッサ、および直接メモリアクセスコントローラを含む、任意のタイプの電子デバイスとすることができる。スレーブデバイス16の一例は、メモリコントローラ16である。メモリコントローラ16は、バス相互接続12に接続されて、マスターデバイス14のいずれもが、メモリコントローラ16に結合されたメモリ28に読取りおよび書込みメモリアクセス要求を与え、読取りおよび書込み応答を受け取ることが可能になる。図1のバス相互接続12は、マスターデバイス14に関するヘルス情報に基づいてマスターデバイス14の各々のバストランザクションをアービトレーションするように構成される。マスターデバイス14のヘルス情報は、バス相互接続12によってマスターデバイス14に提供されるサービス品質を表すいくつかの指標から構成される。たとえば、マスターデバイス14は各々、いくつかのサービス品質要件を有し得る。サービス品質要件の一例は、帯域幅要件であり得る。サービス品質の別の例は、レイテンシ要件であり得る。マスターデバイス14のヘルス情報は、この実施形態では、サービス品質要件を上回るとき、限定はしないが、システムの頑強さ、レイテンシの短縮による性能の向上、およびまたは消費電力の低減を含めて、マスターデバイス14のサービス品質要件を満たすことを試みるためにマスターデバイス14からのバストランザクションの優先度を調整するために、バス相互接続12によって使用される。さらに、この実施形態では、バストランザクションをアービトレーションするように構成されたバス相互接続12に設けられた方法および構成要素は、バス相互接続12の実際のバス技術ならびにバス相互接続クロック信号18の周波数およびそのスケーリングとは無関係に設けることができる。引き続き図1を参照すると、マスターデバイス14は各々、バス相互接続12に結合されたスレーブデバイス16のサービスを要求するいくつかの機能を提供するために、いくつかのマスターデバイスソフトウェアドライバ30およびマスターデバイスハードウェア32を含み得る。マスターデバイス14は、バス相互接続12を介してスレーブデバイス16に通信されるバストランザクションを介してこれらのサービスを要求する。これらのバストランザクションは、例として、バス相互接続クロック信号18の周波数ならびにバス相互接続12のスループットおよびレイテンシなど、バス相互接続12のコアに固有の要因に依存する特定のレベルの性能を必要とする。この点について、マスターデバイス14は、ハードウェアまたはソフトウェアの機構のいずれかを介して、それらのヘルス状況を追跡するように構成され得る。たとえば、ヘルス状況は、マスターデバイス14のバストランザクションの最終期限、マスターデバイス14に割り振られた帯域幅、およびまたはマスターデバイス14のレイテンシ要件がバス相互接続12によって満たされているかどうかに基づき得る。この点について、図1のマスターデバイスソフトウェアドライバ30およびマスターデバイスハードウェア32は、それら自体のヘルス状況を追跡し、次にマスターデバイス14のヘルス状況を追跡するように構成することができる。マスターデバイス14の追跡されたヘルス状況は、バス相互接続12およびバス相互接続システム10の性能を向上させるために、複数のマスターデバイス14間でバストランザクションをアービトレーションするために使用されるヘルス情報として、マスターデバイス14によってバス相互接続12に提供することができる。これらの向上は、限定はしないが、帯域幅に関して十分な能力を提供することによる頑強さの向上、レイテンシの短縮による性能の向上、およびまたは消費電力の低減を含む。また、ヘルス情報を使用して、バス相互接続12におけるコマンドの並べ替えをサポートする、およびまたは、たとえばメモリコントローラ16における、コマンドの優先度ベースのキューイングをサポートすることもできる。マスターデバイス14は、それ自体のヘルス情報34をアービタ26に直接、またはたとえば図1のブックキーピング要素36などの媒介を介して提供することができる。たとえば、図1を参照すると、マスターデバイス14は、BKE36にそれらのヘルス状況を含むヘルス情報34を提供するように構成することができる。ブックキーピング要素36は、マスターデバイス14の性能要件がバス相互接続12によって満たされているかどうかを決定することができる。ブックキーピング要素36は、ヘルス情報34に基づいてマスターデバイス14の性能要件が満たされているかどうかを示す情報38を、仮想バスインターフェース40を介してアービタ26に提供する。ブックキーピング要素36は、バス相互接続12のコアの内側または外側に設けることができる。アービタ26は、この情報を使用して、マスターデバイス14の要件が満たされているかどうかに基づいて、バス相互接続12内でマスターデバイス14のバストランザクションをアービトレーションするための優先度を決定する。たとえば、アービタ26は各々、マスターデバイス14の各々のバストランザクションの優先度を決定するための優先度決定モジュール42を含む。ヘルス情報34は、たとえばマスターデバイス14のマスター識別など、マスターデバイス14ごとに、またはマスターデバイス14のグループで提供することができる。マスターデバイス14の要件は、マスターポート22ごとにアグリゲートすることができる。以下でより詳細に論じるように、それ自体のヘルス状況を追跡するように構成することができない、または構成されていないマスターデバイス14では、ソフトウェアによって構成された契約に基づいて、ブックキーピング要素36は、マスターデバイス14のヘルス情報34を導出することができる。たとえば、マスターデバイス14の性能要件がバス相互接続12によって満たされているかどうかを決定するために、プログラム可能な閾値をブックキーピング要素36に設けることができる。バス相互接続12によって提供されるマスターデバイス14の帯域幅は、マスターデバイス14のヘルス状況を導出するために使用することができる。ブックキーピング要素36は、導出されたヘルス情報34に基づいてマスターデバイス14の性能要件が満たされているかどうかに関して、この情報38を、仮想バスインターフェース40を介してアービタ26に提供する。アービタ26は、この情報を使用して、マスターデバイス14の要件が満たされているかどうかに基づいて、バス相互接続12内でマスターデバイス14のバストランザクションをアービトレーションするための優先度を決定する。ヘルス情報34は、様々な方法で符号化することができる。たとえば、ヘルス情報34は、ヘルス情報34を表すヘルス状況閾値または範囲で符号化することができる。たとえば、バストランザクションの0と33との間のヘルス状況が性能要件を満たしていないことは、申し分ないヘルス状況を示し得る。バストランザクションの33と67との間のヘルス状況が性能要件を満たしていないことは、発熱のヘルス状況を示し得る。バストランザクションの66と99との間のヘルス状況が性能要件を満たしていないことは、病気のヘルス状況を示し得る。100のヘルス状況が性能要件を満たしていないことは、故障のヘルス状況を示し得る。この例では、このヘルス情報34は、2ビットで符号化することができる。このヘルス情報34は、各マスターデバイス14に対して指定することができる。また、閾値は、マスターデバイス14のためにプログラム可能とすることができる。以下でより詳細に論じるように、ブックキーピング要素36は、バス相互接続クロック信号18とは周波数的に無関係の実装を提供するために、バス相互接続クロック信号18とは無関係の基準クロックを使用するように構成することができる。ブックキーピング要素36をクロック制御するために、個別の、一定の周波数のクロック信号が提供され得る。このようにして、バス相互接続クロック信号18がバス相互接続12のためにスケーリングされる場合、ブックキーピング要素36は、マスターデバイス14の性能要件が新しいクロック周波数に基づいて満たされているかどうかを決定するために再プログラムされるまたは再構成される必要がない。各マスターポート22は、この実施形態では、ヘルス情報がどのように優先度情報に変換されることになっているかについて記述する、関連する静的変換テーブルを有する。このテーブルは、所与のバス相互接続システム10のアーキテクチャのためにあらかじめ定義することができ、マスターデバイスソフトウェアドライバ30によって構成することができる。このテーブルは、マスターデバイス14がどのように分類されるか、およびバス相互接続12においてアービタ26によってアービトレーションされる優先度レベルに、ヘルス情報がどのようにマッピングされるかについて記述する。この点について、図2は、図1のバス相互接続12におけるマスターデバイス14間の相対的優先度を割り当てるために使用され得るマスターデバイスクラスを含む例示的なマスターデバイスクラステーブル50のブロック図である。一例として、マスターデバイスクラステーブル50は、マスターデバイス14の異なるクラス56ごとに最大優先度52および代表的な帯域幅要件54を含む。たとえば、ハードリアルタイムデバイスとして割り当てられるマスターデバイス14は、低レイテンシ、ソフトリアルタイム、およびベストエフォートタイプのマスターデバイス14よりも、バス相互接続12によってアービトレーションされるバストランザクションについてより高い最大優先度52を有し得る。ハードリアルタイムのマスターデバイス14の例は、GPS、MDP、VFE、およびモデムを含み得る。低レイテンシを必要とするマスターデバイス14の例は、CPUである。ソフトリアルタイムのマスターデバイス14の例は、ビデオデバイス、回転子デバイス、およびVPEを含み得る。ベストエフォートのマスターデバイス14の例は、グラフィックスデバイスおよび周辺機器を含み得る。マスターデバイス14に関するヘルス情報34は、バス相互接続12における仮想優先度空間にマッピングされる。この点について、図3は、図1のバス相互接続システム10において提供され得る仮想優先度空間に対する例示的なヘルス情報のマッピングのブロック図である。デバイス56として構成されたマスターデバイス14のバストランザクションを、ヘルス情報34に基づいて可能な最大優先度52を含む仮想優先度テーブル60にマッピングすることができることがわかる。デバイス56として構成されたマスターデバイス14のバストランザクションを、ヘルス情報34に基づいて可能な最大優先度52を含む仮想優先度テーブル60にマッピングすることができる。デバイス56として構成されたマスターデバイス14のバストランザクションを、ヘルス情報34に基づいて可能な最大優先度52を含む仮想優先度テーブル60にマッピングすることができる。デバイス56として構成されたマスターデバイス14のバストランザクションを、ヘルス情報34に基づいて可能な最大優先度52を含む仮想優先度テーブル60にマッピングすることができる。アービタ26は、マスターデバイス14のヘルス情報34に基づいて、マスターデバイス14からのバストランザクションをアービトレーションするための物理的な優先度を変換するために、仮想優先度テーブル60のマッピング情報を使用する。仮想優先度空間へのヘルス情報のマッピングによって、バス相互接続12は、マスターデバイス14のクラスタイプおよびヘルス情報に基づいて、バストランザクションに割り当てられた優先度を制御することができる。このマッピングが変更されることが望ましい場合、マスターデバイス14を再プログラムまたは再構成する必要なく、仮想優先度テーブル60における異なる仮想最大優先度52に、クラスタイプを再度マッピングすることができる。また、仮想優先度空間に対するマッピングは、バス相互接続システム10におけるマスターデバイス14間の相対的な優先度についてのバス相互接続12による定義および制御を可能にする。これは、マスターデバイス14の所与のクラス56によって使用することができる図2のマスターデバイスクラステーブル50に示されるように、最大優先度52を制限することによって達成される。したがって、バス相互接続システム10の存続にどのマスターデバイス14が重要であるかが制約される。この制約の役割は、すべてのマスターデバイス14がそれらの性能契約を満たすためにより高い優先度まで上がろうとしているマスターデバイス14の間の最上位獲得競争状態を防止することである。マスターデバイス14のヘルス情報34が任意の性能またはサービス品質の問題を示していない場合、図3の仮想優先度テーブル60において定義されている最下位の優先度を使用して、図1のアービタ26によって、すべてのマスターデバイス14がアービトレーションされる。そうでない場合、ヘルス情報問題を示しているマスターデバイス14のバストランザクションの優先度は、図3の仮想優先度テーブル60に基づいて、アービタ26において変更される。したがって、図1のブックキーピング要素36によって導出または分析されたヘルス情報34に基づいて、優先度がマスターデバイス14のバストランザクションのアービトレーションに割り当てられるという点で、アービトレーション優先度方式は動的である。アービタ26によって異なるアービトレーションポリシーが使用され得る。たとえば、公正なラウンドロビンアービトレーション優先度方式では、上位の優先度レベルのバストランザクションは、優先され、同じレベルの重要度で異なるマスターデバイス14間のバストランザクション間で公平に利用可能な帯域幅を最初にフィルタリングする。これは、本質的に、最重要最終期限第1アービトレーション優先度方式である。バス相互接続12がバッファリングを実施する場合、優先度キューイングを提供するためのコマンドを並べ替えるために、優先度情報を使用することができる。他のアービトレーション優先度方針を使用することができる。たとえば、すべてのマスターデバイス14に同じ優先度が割り当てられている、単純なラウンドロビンアービトレーション優先度方式を使用することができる。すべてのマスターデバイス14に、それらのクラスに基づいて固定された優先度が割り当てられている、固定のアービトレーション優先度方式を使用することができる。上記で論じたように、マスターデバイス14は、ヘルス情報34をバス相互接続12に提供するように構成することができる。マスターデバイス14の複数のクライアントが、マスターデバイス14に対してクライアントによって生成されるトランザクションのヘルス情報を個々に設定することができるケースがある。この点について、図4Aは、ヘルス情報34を図1のバス相互接続12に提供するように構成された例示的なマスターデバイス14のブロック図である。ヘルス情報は、マスターデバイス14の複数のクライアント76からのアグリゲートされたヘルス情報80、およびまたはアグリゲータ71によってアグリゲートされたマスターデバイス14のヘルス情報に基づき得る。たとえば、CPUのようなレイテンシ依存のクライアント76が、たとえば図4Aのマスターデバイス14など、サブシステム内にアグリゲートされる実例がある。バス相互接続システム10の性能を向上させるために、これらのタイプのクライアント76を優先することが重要であり得る。この例では、ヘルス情報34は、複数のヘルス情報セグメント70から構成される。以下でより詳細に論じるように、複数のヘルス情報セグメント70は、アドレスマップ74内のエントリから構成される。アドレスマップ74は、ヘルス情報34がヘルス情報に基づいてマスターデバイス14の優先度を割り当てるために適用可能なマスターデバイス14を識別するマスターIDエントリ73に基づいてインデックスが付けられるエントリを含む。たとえば、引き続き図4Aを参照すると、システムメモリ管理ユニット79がコアまたはサブシステムに使用されているとき、サービス品質ヘルス表示77を、この例では変換ルックアサイドバッファエントリであるメモリページ72に関連付けることができる。SMMU79は、マスターデバイス14の内部または外部に設けられ得る。QoSヘルス表示77は、メモリページ72のページアドレス空間内の特定のアドレス領域またはページとのアクセスに関連付けられたヘルス情報を含む。ヘルス情報は、上記で論じたように、その後、仮想優先度空間に変換される。たとえば、アドレス領域またはページを、重要なヘルスを有するものとしてマークすることができ、さらにそれを、以下でより詳細に開示される、ヘルスから優先度への例示的な変換機構によって、高優先度に変換することができる。この特徴は、アグリゲータ71によってアグリゲートされ、クライアント76から来るヘルス情報80とともに使用され得る。たとえば、入って来るヘルス情報80とQoSヘルス表示77との間の最大値は、最も重要なヘルス値を導出するために使用され得る。代わりに、単にQoSヘルス表示77情報または入って来るヘルス情報80だけを使用することができる。さらに、各QoSヘルス表示77は、QoSヘルス表示77が有効であり、使用することができるかどうかを示すQoSタグ78を含むことができる。それぞれのマスターデバイス14の応答時間を短縮するために、バス相互接続システム10において、より速い応答時間でTLBミスを伝播できるように、TLBミスは、高優先度に変換することができる重要なヘルス情報を有するものとしてタグを付けることができる。図4Bは、図4Aに示される複数のマスターデバイス14のブロック図である。マスターデバイス14は各々、この実施形態では、複数のクライアント76およびまたはマスターデバイス14からのヘルス情報80をアグリゲートし、アグリゲートされたヘルス情報81の出力を図1のバス相互接続12に提供するように構成されている。この例では、図4Bのマスターデバイス14およびSMMU79は、図4Aに示されるマスターデバイス14およびSMMU79である。他のマスターデバイスは、複数のクライアント76およびまたはマスターデバイスからのヘルス情報80をアグリゲートするためのアグリゲータを含むこともできる。以下でより詳細に論じるように、アグリゲートされたヘルス情報81は、アービタ26がマスターデバイス14のバストランザクションをアービトレーションする優先度レベルを決定するために使用される。図1に関して上記で論じたように、ヘルス情報がマスターデバイス14によってバス相互接続12に提供されない場合、ブックキーピング要素36は、マスターポート22を監視し、マスターデバイス14のヘルス状況を導出することができる。たとえば、ブックキーピング要素36は、ソフトウェアを含み得る、またはソフトウェアプログラム可能エンティティであり得る。この点について、図1の実施形態で、ブックキーピング要素36をバス相互接続クロック信号18とは周波数的に無関係にするために、ブックキーピング要素36をクロック制御するために、固定または接点のクロック信号が使用される。ブックキーピング要素36は、マスターデバイス14のバストランザクションの、限定はしないが往復レイテンシを含む平均レイテンシが所与の期間にわたって、または予想されるように維持されることを確実にするために、固定帯域幅要件または他のタイプの契約で動作することができる。一例として、マスターデバイス14のヘルス状況を決定するためにブックキーピング要素36によって監視することができる契約の一種は、固定帯域幅契約である。FBCは、所与の時間ウィンドウ内に所与のデータ量を転送することの保証を提供することができる。マスターデバイス14のヘルス状況を決定するためにブックキーピング要素36によって使用され得る契約の別の例は、平均瞬間レイテンシ契約である。ALCは、平均の所与の帯域幅を有するトラフィックプロファイルについての所与の時間の平均的な往復レイテンシを満たすことの保証を提供することができる。マスターデバイス14のヘルス状況を決定するためにブックキーピング要素36によって使用され得る契約の別の例は、可変帯域幅契約である。VBCは、FBCのような帯域幅保証で開始する。さらに、マスターデバイス14は、事前構成された増分または減分ステップで、ハードウェアシグナリングを介して契約を動的に更新することができる。図5は、図1のマスターデバイス14についてのバス相互接続12によって提供されるサービスレベルを導出するための図1におけるブックキーピング要素36で使用され得る例示的なクレジットデビットオプションの図である。この例では、所与の時間量要件で転送される所与のデータ量は、グラント期間当たりの平均ターゲットグラント数に変換される。たとえば、グラント期間は、ブックキーピング要素36をクロック制御するクロック信号のサイクルで表すことができる。GCGPは、ブックキーピング要素36によって監視される軌道を確立する。期間ごとに、ブックキーピング要素36は、IGCが瞬間的なグラント数である場合、累積されたGCi1として、累積されたGCiを計算する。ヘルス状況は、リアルタイムのバッファ挙動をエミュレートする軌道90、92、94によって提供される閾値レベルに基づき、製作者96のレートが消費者98のレートに等しい間、バッファ100は空である。消費者98のレートが低下すると、帯域幅の瞬間的な低下に続いてバッファ100が満たされる。ヘルス状況は、バッファ100においてレベルを割り当てることによって決定される。ブックキーピング要素36は、公称の傾斜軌道90をたどるように構成される。レートが低下した場合、それはこの傾斜を下回り、ヘルス状況の更新をトリガする。各々に対応する閾値およびヘルス状況をプログラムすることができる。GPは、GP当たりのデータのグラントまたはバイトの観点から提供することができる。図6Aおよび図6Bは、図1のバス相互接続12におけるマスターデバイス14からのバストランザクションのヘルス状況レベルを導出するための図1におけるブックキーピング要素36で使用され得る例示的な平均化オプションの図である。図6Aにおいて、サービス要件または契約は、GP当たりの平均ターゲットGCに変換される。GCGPは、ブックキーピング要素36によって監視される軌道101、102、104を確立する。期間ごとに、ブックキーピング要素36は、IGCが瞬間的なグラント数である場合、累積されたGCiを計算する。GCは、グラントとして、またはバイトとして表すことができる。GP間隔の終わりに、累積された値は、4タップ移動平均フィルタ112を実装する、4エントリの先入れ先出しレジスタ110にシフトされる。最も古い値は、シフトアウトされる。FIFOレジスタ110の値は、合計され、4で割られる。したがって、悪い契約によるエラーは、絶対的な形で累積されるのではなく、平均される。結果は、ヘルス状況を決定するために、コンパレータ116における3つの閾値114と比較される。帯域幅閾値114およびヘルス状況は、GPおよびGCによってプログラム可能である。図6Bの例では、GPおよびGCの追跡のために、16ビットのプログラム可能カウンタ120、121が提供される。ヘルス状況を導出するために使用される3つの16ビット閾値レジスタ122、124、126が設けられている。瞬時バイトグラントアキュムレータ128は、現在のGPについての累算されたバイトを保持する。4つの16ビットアキュムレータレジスタACC0123130、132、134、136が設けられている。組合せ論理に関して、16ビットアキュムレータレジスタ130~136を追加するために、41の加算器138が設けられている。加算器138は、シーリングを計算する。これは、1x減算器および1x加算器を使用して行うこともできる。ヘルスの導出のために平均化の結果を3つの閾値レジスタ122、124、126と比較する3つのコンパレータ140、142、144および符号器145も設けられている。図7は、上記で説明した実施形態に従って、マスターデバイス14に関するヘルス情報、および仮想優先度空間に対するマスターデバイス14のタイプのマッピングに基づいて、いくつかのマスターデバイス14のバストランザクションをアービトレーションするためのアービタ26によって使用される優先度の概念図である。図7の優先度図147に示すように、アービタ26がマスターデバイス14のバストランザクションをアービトレーションする優先度レベルは、マスターデバイス14に関するヘルス情報の変化が生じるときに基づいて変化し得る。たとえば、優先度図147に示すように、マスターデバイス14からのバストランザクションは、最初に、低い優先度でアービタ26によってアービトレーションされる。ヘルスの低下に応答して、マスターデバイス14に割り当てられた優先度は、より高い優先度に上げられる。アービトレーションは、最高優先度レベルP3から開始して、すべての優先度レベルP3~P0についての公平なラウンドロビンのやり方で、アービタ26によって実行することができる。これは、図7の優先度図147に示すように、最高優先度を有するバストランザクションがバス相互接続12およびスレーブデバイス16から第1の利用可能な帯域幅146を吸収する帯域幅フィルタリング機構を提供する。図7の優先度使用図149に示すように、残りの帯域幅を、アービタ26によって下位優先度のマスターデバイス14に割り振ることができる。すべてのマスターデバイス14は、要件が満たされる限り、最低優先度でアービトレーションされるごとに変換テーブルによってプログラムされない限り。アービタ26は、要件を満たすためにアービタ26によって行われる取り組みを理解するための優先度周波数使用から統計を集めるためのアービタアクティビティモニタを含むことができる。この方式は、能力の増加または減少についての能力エンティティに対する推奨を提供するために使用するものとする。図8は、図1のバス相互接続12に設けることができる例示的な優先度アクティビティの監視148を示すブロック図である。特にハードリアルタイムのマスターデバイス14によって使用される最高優先度レベルといった、バス相互接続12における優先度使用の頻度を監視することによって、バス相互接続12によってより多くの能力を割り振る必要があるかどうか、または過剰な能力が存在するかどうかに関する有益な情報を導出することができる。性能を向上させるために、バス相互接続クロック信号18の周波数を増加させることによって、追加の能力を提供することができる。過剰な能力が存在する場合、バス相互接続クロック信号18の周波数は、電力を節約するために低減することできる。この能力情報は、周波数およびまたは電圧の変化をトリガすることができる電力マネージャ機構に送られる。優先度使用147は、たとえばスケジューリングのために優先度を使用しているブックキーピング要素36またはおよびアービタ26においてなど、ソースで監視することができる。アービタ26の取り組みを決定するために、シフトする時間ウィンドウ上の優先度レベルごとの周波数の使用を監視することができる。この実装形態では、図8に示すように、シフトレジスタ150は、アービタ26の場合、最後に定義されたアクセス数を表す要素の数、または、ブックキーピング要素36に実装される場合、最後に定義されたGPの数が提供される。アービタ26の場合のあらゆる新しいバストランザクションは、エントリとしてシフトレジスタ150にシフトされる。最も古い値は、出口としてシフトレジスタ150からシフトアウトされる。同じ操作を、GPに基づいて、ブックキーピング要素36で行うことができる。あらゆる優先度レベルは、関連するカウンタ152、154、156、158を有する。新しい値がシフトレジスタ150にシフトインされるたびに、その優先度値に対応するカウンタ152、154、156、158が増分される。シフトアウトされた値ごとに、対応するカウンタ152、154、156、158が減分される。この機構は、アービタ26での所与の最後のトランザクションの数、またはブックキーピング要素36での所与の最後のGPの数についての相対的な優先度の使用の推論を可能にする。図9は、マスターデバイス14に関するヘルス情報34に基づいて図1のバス相互接続12におけるバストランザクションをアービトレーションし、ルーティングするための例示的なソフトウェアアーキテクチャ160のブロック図である。共通の要素は、図1に示されるものと同様に標示される。H2Pは、ヘルス情報と仮想優先度空間とのマッピングを表す。本明細書で開示する実施形態に従ってバスデバイスのヘルス情報に基づいて通信バス上のバストランザクションをアービトレーションするデバイス、システム、方法、およびコンピュータ可読媒体は、任意のプロセッサベースのデバイスに設けられ得る、または組み込まれ得る。例として、限定されないが、セットトップボックス、娯楽機器、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスクプレーヤ、およびポータブルデジタルビデオプレーヤが含まれる。この点について、図10は、図1に示すバス相互接続システム10の構成要素を使用することができるプロセッサベースのシステム170の例を示す。この例では、プロセッサベースのシステム170は、1つまたは複数のプロセッサ174を各々が含む1つまたは複数の中央処理装置172を含む。CPU172は、マスターデバイス14であり得る。CPU172は、一時記憶データへの高速アクセスのためにプロセッサ174に結合されたキャッシュメモリ176を有し得る。CPU172はシステムバス180に結合され、システムバス180は、プロセッサベースのシステム170に含まれるマスターデバイスおよびスレーブデバイスを相互に結合することができる。システムバス180は、図1に示すバス相互接続12のようなバス相互接続でよい。よく知られているように、CPU172は、アドレス情報、制御情報、およびデータ情報をシステムバス180を通じて交換することによって、これらの他のデバイスと通信する。たとえば、CPU172は、スレーブデバイスの一例として、メモリコントローラ16にバストランザクション要求を通信することができる。図10には示さないが、複数のシステムバス180を設けてもよく、この場合、各システムバス180は異なるファブリックを構成する。他のマスターおよびスレーブデバイスが、システムバス180に接続され得る。図10に示されるように、これらのデバイスは、例として、メモリシステム182、1つまたは複数の入力デバイス184、1つまたは複数の出力デバイス186、1つまたは複数のネットワークインターフェースデバイス188、ならびに1つまたは複数のディスプレイコントローラ190を含み得る。入力デバイス184は、入力キー、スイッチ、音声プロセッサなどを含むが、それに限定されない、どのタイプの入力デバイスも含み得る。出力デバイス186は、オーディオ、ビデオ、他の視覚インジケータなどを含むが、それに限定されない、どのタイプの出力デバイスも含み得る。ネットワークインターフェースデバイス188は、ネットワーク192との間でデータの交換をさせるように構成されたどのデバイスでもよい。ネットワーク192は、限定はされないが、有線ネットワークまたはワイヤレスネットワーク、非公開ネットワークまたは公開ネットワーク、ローカルエリアネットワーク、ワイドローカルエリアネットワーク、およびインターネットを含む、任意のタイプのネットワークであってよい。ネットワークインターフェースデバイス188は、所望の任意のタイプの通信プロトコルをサポートするように構成され得る。メモリシステム182は、1つまたは複数のメモリユニット194を含むことができる。アービタ26は、システムバス180と、たとえばメモリシステム182に設けられているメモリユニット194など、システムバス180に結合されているマスターおよびスレーブデバイスとの間に設けることができる。CPU172はまた、システムバス180を通じてディスプレイコントローラ190にアクセスして、1つまたは複数のディスプレイ194に送られる情報を制御するようにも構成され得る。ディスプレイコントローラ190は、1つまたは複数のビデオプロセッサ196を介して表示されるべき情報を、ディスプレイ194に送り、ビデオプロセッサ196は、表示されるべき情報を、ディスプレイ194に適切なフォーマットとなるように処理する。ディスプレイ194は、限定はされないが、陰極線管、液晶ディスプレイ、プラズマディスプレイなどを含む、任意のタイプのディスプレイを含み得る。CPU172およびディスプレイコントローラ190は、システムバス180を介してアービタ26へのメモリアクセス要求を行うためのマスターデバイスとして作用し得る。CPU172およびディスプレイコントローラ190内の異なるスレッドが、アービタ26への要求を行うことができる。CPU172およびディスプレイコントローラ190は、前に説明したように、バストランザクション要求の一部として、アービタ26にMIDを与えることができる。本明細書で開示される実施形態に関して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子的なハードウェアとして、メモリもしくは別のコンピュータ可読媒体に記憶されるプロセッサもしくは他の処理デバイスにより実行される命令として、またはこれら両方の組合せとして実装され得ることが、当業者にはさらに理解されよう。本明細書に記載したアービタ、マスターデバイス、およびスレーブデバイスは、例として、どの回路、ハードウェア構成要素、集積回路、またはICチップ内でも利用することができる。本明細書で開示するメモリは、どのタイプおよびサイズのメモリでもよく、所望されるどのタイプの情報も記憶するように構成され得る。この互換性を明確に示すために、上記では、様々な例示的構成要素、ブロック、モジュール、回路、およびステップは全般的に、それらの機能に関して説明されている。そのような機能がどのように実装されるかは、具体的な用途、設計の選択、およびまたはシステム全体に課される設計制約により決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、DSP、特定用途向け集積回路、FPGAもしくは他のプログラム可能論理デバイス、個別ゲートもしくはトランジスタ論理回路、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せで実装または実行することができる。プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。本明細書で開示される実施形態は、ハードウェアで具現化されてよく、ハードウェアに記憶される命令により具現化されてよく、たとえば、ランダムアクセスメモリ、フラッシュメモリ、読取り専用メモリ、電気的にプログラム可能なROM、電気的に消去可能なプログラム可能ROM、レジスタ、ハードディスク、リムーバブルディスク、CDROM、または、当技術分野で知られている任意の他の形態のコンピュータ可読媒体に、存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はASIC中に存在し得る。ASICは遠隔局に存在し得る。代替的には、プロセッサおよび記憶媒体は、遠隔局、基地局、またはサーバの中に、個別の構成要素として存在し得る。本明細書の例示的な実施形態のいずれかで説明された動作ステップは、例および議論を提供するために説明されたものであることにも、留意されたい。説明された動作は、例示された順序以外の多くの異なる順序で実行されてもよい。さらに、単一の動作ステップで説明される動作は、実際には、多くの異なるステップで実行され得る。加えて、例示的な実施形態において論じられた1つまたは複数の動作ステップは、組み合わされてもよい。流れ図において例示される動作ステップは、当業者に容易に明らかとなるような多くの異なる修正を受けてもよいことを、理解されたい。情報および信号は、多種多様な技術および技法のいずれかを使用して表され得ることも、当業者には理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。本開示の前述の説明は、いかなる当業者でも本開示を作成または使用することができるように提供される。本開示への様々な修正は当業者には容易に明らかであり、本明細書で定義した一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用できる。したがって、本開示は、本明細書で説明した例および設計に限定されることを意図するものではなく、本明細書で開示する原理および新規の特徴に一致する最も広い範囲を与えられるべきである。