(57)【特許請求の範囲】
【請求項１】
複数のリングバスの各々が、バス幅を有し、少なくとも1つのリクエスタデバイスからバストランザクションメッセージを受信するように構成された半導体ダイ内の複数のリングバスと、
前記複数のリングバスに結合された前記半導体ダイ内の少なくとも１つのリング間ルータと
を備えたプロセッサベースシステムのためのリングバス相互接続であって、
前記少なくとも１つのリング間ルータが、前記少なくとも1つのリクエスタデバイスの帯域幅性能要件に基づいて、前記複数のリングバス間で前記バストランザクションメッセージを動的に導くように構成される、リングバス相互接続。
【請求項２】
前記複数のリングバスが、複数のローカルリングバスと、複数のグローバルリングバスとを備え、
前記少なくとも１つのリング間ルータは、前記少なくとも１つのリクエスタデバイスの前記帯域幅性能要件に基づいて、前記複数のローカルリングバスの中のローカルリングバスから前記複数のグローバルリングバスの中のグローバルリングバスへ前記バストランザクションメッセージを動的に導くように構成される、請求項1に記載のリングバス相互接続。
【請求項３】
前記少なくとも１つのリング間ルータは、複数のリング間ルータを備え、前記複数のリング間ルータの各々は、前記少なくとも１つのリクエスタデバイスの前記帯域幅性能要件に基づいて、前記複数のローカルリングバスの中の前記ローカルリングバスから前記複数のグローバルリングバスの中の前記グローバルリングバスへ前記バストランザクションメッセージを動的に導くように構成される、請求項２に記載のリングバス相互接続。
【請求項４】
前記複数のリングバス内に少なくとも１つの送信リングバスと、少なくとも１つの受信リングバスとをさらに備える、請求項1に記載のリングバス相互接続。
【請求項５】
前記少なくとも1つのリクエスタデバイスの前記帯域幅性能要件に基づいて、前記複数のリングバス間で前記バストランザクションメッセージを導くために、前記少なくとも１つのリング間ルータを制御するように構成されたリソースマネージャをさらに備える、請求項1に記載のリングバス相互接続。
【請求項６】
前記リソースマネージャが、前記複数のリングバスの各々を単独で周波数スケーリングするようにさらに構成される、請求項５に記載のリングバス相互接続。
【請求項７】
前記リソースマネージャが、前記複数のリングバスの各々を単独でアクティブ化および非アクティブ化するようにさらに構成される、請求項５に記載のリングバス相互接続。
【請求項８】
前記リソースマネージャが、より低い電力モード更新を受信することに応答して、前記複数のリングバスの中の少なくとも1つのリングバスを非アクティブ化するようにさらに構成される、請求項７に記載のリングバス相互接続。
【請求項９】
前記リソースマネージャが、より高い電力モード更新を受信することに応答して、前記少なくとも1つのリングバスを再アクティブ化するようにさらに構成される、請求項８に記載のリングバス相互接続。
【請求項１０】
前記リソースマネージャが、前記複数のリングバスの各々の前記バス幅を変更するようにさらに構成される、請求項５に記載のリングバス相互接続。
【請求項１１】
少なくとも2つの異なる電圧レールをさらに備え、前記複数のリングバスの各々が、前記少なくとも2つの異なる電圧レールのうちの1つによって電力投入される、請求項1に記載のリングバス相互接続。
【請求項１２】
少なくとも1つの半導体ダイに組み込まれる、請求項1に記載のリングバス相互接続。
【請求項１３】
前記リングバス相互接続が統合される、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなる群から選択されたデバイスをさらに含む、請求項1に記載のリングバス相互接続。
【請求項１４】
前記少なくとも１つのリング間ルータは、前記少なくとも１つのリクエスタデバイスの前記帯域幅性能要件に基づいて、前記複数のリングバス間で前記バストランザクションメッセージを動的に導くように各々構成される複数のリング間ルータを備える、請求項１に記載のリングバス相互接続。
【請求項１５】
少なくとも1つのリクエスタデバイスからバストランザクションメッセージを受信し、半導体ダイ内の複数のリングのあるリング内で前記バストランザクションメッセージを経路指定するための手段であって、前記複数のリングの各々がバス幅を有する、手段と、
前記少なくとも１つのリクエスタデバイスの帯域幅性能要件に基づいて、前記複数のリング間で前記バストランザクションメッセージを動的に導くための手段と
を備えたリングバス相互接続手段。
【請求項１６】
リングバス相互接続においてバストランザクションメッセージを導く方法であって、
少なくとも1つのリクエスタデバイスからバストランザクションメッセージを受信するステップと、
複数のリングバスの各々が、バス幅を有し、前記バストランザクションメッセージを受信するように構成された、半導体ダイ内の複数のリングバスの中のあるリングバス上に前記バストランザクションメッセージを導くステップと、
前記少なくとも1つのリクエスタデバイスの帯域幅性能要件に基づいて、前記リングバスから前記複数のリングバスの中の別のリングバスへの前記バストランザクションメッセージを、前記リングバスに結合された前記半導体ダイ内の少なくとも1つのリング間ルータから動的に導くステップと
を含む方法。
【請求項１７】
前記複数のリングバスが、複数のローカルリングバスと、複数のグローバルリングバスとを含み、
前記バストランザクションメッセージを動的に導くステップは、前記少なくとも１つのリクエスタデバイスの前記帯域幅性能要件に基づいて、前記複数のローカルリングバスの中のローカルリングバスから前記複数のグローバルリングバスの中のグローバルリングバスへの前記バストランザクションメッセージを、前記少なくとも１つのリング間ルータから動的に導くステップをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記バストランザクションメッセージを動的に導くステップは、前記少なくとも１つのリクエスタデバイスの前記帯域幅性能要件に基づき、前記複数のローカルリングバスの中の前記ローカルリングバスから前記複数のグローバルリングバスの中の前記グローバルリングバスへの前記バストランザクションメッセージを、複数のリング間ルータから動的に導くステップを含む、請求項１７に記載の方法。
【請求項１９】
前記帯域幅性能要件に基づいて、前記複数のリングバスの中の少なくとも1つのリングバスを非アクティブ化するステップをさらに含む、請求項１６に記載の方法。
【請求項２０】
前記帯域幅性能要件に基づいて、前記少なくとも1つのリングバスを再アクティブ化するステップをさらに含む、請求項１９に記載の方法。
【請求項２１】
前記少なくとも１つのリクエスタデバイスの前記帯域幅性能要件に基づいて、前記リングバスから前記複数のリングバスの中の前記別のリングバスへの前記バストランザクションメッセージを、前記リングバスに結合された前記半導体ダイ内の前記少なくとも１つのリング間ルータから動的に導くステップを含む、請求項１６に記載の方法。
【請求項２２】
リングバス相互接続を制御するためのリソースマネージャであって、
複数のバストランザクションリクエスタがアクティブであるかどうかを判断して、
各アクティブなバストランザクションリクエスタの帯域幅性能要件を判断して、
前記アクティブなバストランザクションリクエスタの前記帯域幅性能要件に基づいて、半導体ダイ内の前記リングバス相互接続のトポロジを計算して、
前記計算したトポロジに基づいて、前記半導体ダイ内の複数のリングバスの間でバストランザクションメッセージを動的に経路指定するために、少なくとも１つのリング間ルータの構成を修正する
ように構成されるリソースマネージャ。
【請求項２３】
前記リングバス相互接続が、
前記複数のリングバスの各々が、バス幅を有し、少なくとも1つのリクエスタデバイスから前記バストランザクションメッセージを受信するように構成された前記半導体ダイ内の前記複数のリングバスを備え、
前記半導体ダイ内の前記少なくとも１つのリング間ルータが前記複数のリングバスに結合され、
前記リソースマネージャが、前記少なくとも1つのリクエスタデバイスの前記帯域幅性能要件に基づいて、前記複数のリングバス間で前記バストランザクションメッセージを動的に導くために、前記少なくとも１つのリング間ルータを制御するように構成される請求項２２に記載のリソースマネージャ。
【請求項２４】
前記少なくとも１つのリング間ルータの前記構成を修正するために、前記リソースマネージャが、
前記計算したトポロジに基づいて、前記少なくとも１つのリング間ルータに関する少なくとも１つのルーティングテーブルを判断して、
前記少なくとも１つのルーティングテーブルを前記少なくとも１つのリング間ルータに送信する
ように構成される、請求項２３に記載のリソースマネージャ。
【請求項２５】
前記送信された少なくとも１つのルーティングテーブルを再構成するために、ハンドシェークメッセージを前記少なくとも１つのリング間ルータに送信するようにさらに構成される、請求項２４に記載のリソースマネージャ。
【請求項２６】
前記少なくとも１つのルーティングテーブルが、前記バストランザクションメッセージの送信先および前記バストランザクションメッセージの送信元の少なくとも１つに基づいて、前記バストランザクションメッセージを送信するための方向を含む、請求項２４に記載のリソースマネージャ。
【請求項２７】
前記少なくとも１つのルーティングテーブルが、前記バストランザクションメッセージの送信先および前記バストランザクションメッセージの送信元の少なくとも１つに基づいて、前記バストランザクションメッセージを送信するためのバス周波数データレートをさらに含む、請求項２４に記載のリソースマネージャ。
【請求項２８】
前記少なくとも１つのルーティングテーブルが、前記バストランザクションメッセージの送信先および前記バストランザクションメッセージの送信元の少なくとも１つに基づいて、前記バストランザクションメッセージを送信するためのバス幅を含む、請求項２４に記載のリソースマネージャ。
【請求項２９】
より低い電力モード更新を受信することに応答して、前記複数のリングバスの中の少なくとも1つのリングバスを非アクティブ化するようにさらに構成される、請求項２３に記載のリソースマネージャ。
【請求項３０】
前記少なくとも1つのリングバスに電力供給する電圧レールを電力切断することによって、前記少なくとも1つのリングバスを非アクティブ化するように構成される、請求項２９に記載のリソースマネージャ。
【請求項３１】
前記少なくとも1つのリングバスをクロック制御するクロック信号を停止することによって、前記少なくとも1つのリングバスを非アクティブ化するように構成される、請求項２９に記載のリソースマネージャ。
【請求項３２】
より高い電力モード更新を受信することに応答して、前記少なくとも1つのリングバスを再アクティブ化するようにさらに構成される、請求項２９に記載のリソースマネージャ。
【請求項３３】
前記計算したトポロジに基づいて、前記バストランザクションメッセージを経路指定するために、複数のリング間ルータを修正するように構成されることによって、前記構成を修正するように構成される、請求項２３に記載のリソースマネージャ。
【請求項３４】
前記複数のリングバスは、複数のローカルリングバスおよび複数のグローバルリングバスを備え、前記リソースマネージャは、前記少なくとも１つのリクエスタデバイスの前記帯域幅性能要件に基づいて、前記複数のローカルリングバスの中のローカルリングバスから前記複数のグローバルリングバスの中のグローバルリングバスへ前記バストランザクションメッセージを動的に導くように、前記少なくとも１つのリング間ルータを制御するように構成されることを特徴とする請求項２３に記載のリソースマネージャ。
【請求項３５】
前記少なくとも１つのリクエスタデバイスの前記帯域幅性能要件に基づいて、前記複数のリングバスの間で前記バストランザクションメッセージを動的に導くように、複数のリング間ルータを制御するように構成される、請求項２２に記載のリソースマネージャ。
【請求項３６】
リングバス相互接続を制御するためのリソースマネージャであって、
複数のバストランザクションリクエスタがアクティブであるかどうかを判断するための手段と、
各アクティブなバストランザクションリクエスタの帯域幅性能要件を判断するための手段と、
各アクティブなバストランザクションリクエスタの前記帯域幅性能要件に基づいて、半導体ダイ内のリングバス相互接続のトポロジを計算するための手段と、
前記計算したトポロジに基づいて、複数のリングバスの間でバストランザクションメッセージを動的に経路指定するために、少なくとも１つのリング間ルータの構成を修正するための手段と
を備えるリソースマネージャ。
【請求項３７】
リソースマネージャに、
少なくとも1つのリクエスタデバイスからバストランザクションメッセージを受信させて、
各々が、バス幅を有し、前記少なくとも1つのリクエスタデバイスから前記バストランザクションメッセージを受信するように構成された複数のリングバスの中の半導体ダイ内のあるリングバス上に前記バストランザクションメッセージを導かせて、
前記少なくとも1つのリクエスタデバイスの帯域幅性能要件に基づいて、前記複数のリングバスに結合された前記半導体ダイ内の少なくとも１つのリング間ルータを介して、前記複数のリングバス間で前記バストランザクションメッセージを動的に導かせ、
前記少なくとも1つのリクエスタデバイスの前記帯域幅性能要件を判断させる
ことによって、前記リソースマネージャに、リングバス相互接続内で前記バストランザクションメッセージを導かせるためのコンピュータ実行可能命令を記憶したコンピュータ可読記録媒体。
【請求項３８】
前記リソースマネージャに、前記帯域幅性能要件に基づいて、前記複数のリングバスの中の少なくとも1つのリングバスを非アクティブ化させるためのコンピュータ実行可能命令をさらに備えた、請求項３７に記載のコンピュータ可読記録媒体。
【請求項３９】
前記リソースマネージャに、前記帯域幅性能要件に基づいて、前記少なくとも1つのリングバスを再アクティブ化させるためのコンピュータ実行可能命令をさらに備えた、請求項３８に記載のコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の技術は、一般に、プロセッサベースシステム内の多様な電子システムを通信可能にインターフェースするためのバス相互接続に関する。
【背景技術】
【０００２】
モバイルフォン、携帯情報端末(PDA)など、ポータブル電子デバイスは、特定用途向け集積回路(ASIC)設計を使用して製造され得る。ハイレベルのシリコン集積の達成における発展は、複雑なASICおよびフィールドプログラマブルゲートアレイ(FPGA)設計の創出を可能にした。これらのASICおよびFPGAは、システムオンチップ(SOC)を実現するために、シングルチップで提供され得る。SOCは、たとえばプロセッサ、マルチプライヤ、キャッシュ、および/または他の電子的構成要素など、単一の半導体チップ上で複数の機能を果たすサブシステムを提供する。SOCは、シングルチップ内で複数の特徴および用途を提供することができる複数のサブシステムの統合のために、特にポータブル電子デバイスに有用である。さらに、SOCは、シングルチップを使用することによってより小さいポータブル電子デバイスを提供することができ、それは、他にマルチチップを使用して提供されていた。
【０００３】
チップ上に設けられた回路内で、複数の多様な構成要素またはサブシステムを通信可能にインターフェースするために、バス相互接続とも呼ばれる相互接続通信バスが提供され得る。バス相互接続は、例としてレジスタ、キュー(queue)、および/または様々なサブシステム間の通信を管理するための他の回路を含み得る、クロック制御される回路(clocked  circuitry)を含む回路を使用して提供される。バス相互接続は、通信要求のイニシエータと通信要求のターゲットとの間のポイントツーポイント接続を可能にする。バス相互接続内の回路は、所望のスループットを与えるために、所望のバスクロック周波数で動作するマスタークロック信号から生成される1つまたは複数のクロック信号を用いてクロック制御され得る。
【０００４】
低減された電力消費が望ましい用途では、よく知られている、fCV2に等しい電力消費の式に従って、バスクロック周波数が引き下げられてよく、ここで「f」は周波数、「C」はキャパシタンス、「V」は電圧である。しかしながら、バスクロック周波数を引き下げることで、バス相互接続の性能がやはり低下する。反対に、バスクロック周波数を引き下げることで、バス相互接続に結合されているサブシステムに対するレイテンシの要件または条件を超えてバスのレイテンシが増加する可能性があり、その場合、サブシステムの性能は、劣化するかまたはまったく機能しなくなる。サブシステムの性能劣化または機能不全の危険を受けるのではなく、バスクロック周波数は、レイテンシを低減し、性能余裕を与えるために、より高い周波数に設定されることがある。しかしながら、より高いバスクロック周波数をバス相互接続に与えることで、より多くの電力が消費される。
【０００５】
この点について、高いバスクロック周波数でより低い電力消費を用いて高速ポイントツーポイント通信を可能にするために、リングバスアーキテクチャをバス相互接続内に提供することができる。図1は、バス相互接続を提供するために使用され得る例示的なリングバス10を示す。リングバス10は、クロスバー相互接続と比較して、リングバスノード12(0)〜12(15)内に配置されたより単純なスイッチを使用することによって、より高いバスクロック周波数を可能にし得る。たとえば、図1に示すリングバスノード12は、マルチプレクサ(MUX)およびラッチ(たとえば、D型フリップフロップ)から構成され得る。バス相互接続内で実装されるリングバスアーキテクチャは、チップマルチプロセッサ(CMP)ベースの設計についてもやはりスケーラブルであり得る。
【０００６】
図1を引き続き参照すると、リングバス10内への通信のための入口点は、送信リングインターフェースユニット(Tx  RIU)14(0)〜14(2)によって提供される。リングバス10からの通信のための出口点は、受信リングインターフェースユニット(Rx  RIU)16(0)〜16(1)によって提供される。バストランザクションメッセージ18(たとえば、18(0)〜18(15))は、クロック20の各サイクルでリングバス10を回って進む。図1では、16個のリングバスノード12が提供されている。結果として、所与の時間に、最高で16個までのバストランザクションメッセージ18をリングバス10に通信することができる。しかしながら、リングバスノード12の数が増えるにつれて、ポイントツーポイント通信のレイテンシも増加し得る。この例では、レイテンシを減少させるために、3個のリングバスノード12にTx  RIU14(0)〜14(2)を接続させ、2個のリングバスノード12に2つのRx  RIU16(0)〜16(1)を接続させて、リングバス10内に複数の入力点および出力点を設けている。たとえそうであっても、リングバス10のデータバスサイズは、リングバスノード12間の各通信段階で最大帯域幅を制限する。各々がワイドデータバスを有する複数の並列リングバス10を用いて、より高速のポイントツーポイント接続に関して所望される帯域幅要件を達成することができる。しかしながら、これは、共有バスまたはクロスバー相互接続アーキテクチャと比べて、より高い電力消費をもたらす。
【発明の概要】
【課題を解決するための手段】
【０００７】
詳細な説明で開示される実施形態は、プロセッサベースシステムハイブリッドリングバス相互接続(processor-based  system  hybrid  ring  bus  interconnects)、ならびに関連デバイス、プロセッサベースシステム、および方法を含む。この点について、一実施形態では、プロセッサベースシステムハイブリッドリングバス相互接続が提供される。プロセッサベースシステムハイブリッドリングバス相互接続は、非限定的な例として、オンチッププロセッサベースシステムハイブリッドリングバス相互接続であり得る。プロセッサベースシステムハイブリッドリングバス相互接続は、各々が、バス幅を有し、少なくとも1つのリクエスタ(requester)デバイスからバストランザクションメッセージを受信するように構成された複数のリングバスを備える。プロセッサベースシステムハイブリッドリングバス相互接続は、それらの複数のリングバスに結合された少なくとも1つのリング間ルータをやはり備える。少なくとも1つのリング間ルータは、少なくとも1つのリクエスタデバイスの帯域幅要件に基づいて、複数のリングバス間でバストランザクションメッセージを動的に導くように構成される。このようにして、プロセッサベースシステムハイブリッドリングバス相互接続は、リングバスアーキテクチャとクロスバー相互接続アーキテクチャの両方の性能利益を含む。
【０００８】
非限定的な例として、リングバス同士の間にバストランザクションメッセージを導くために複数のリング間ルータを提供することは、結果として、リング間ルータを用いないリングバスの経路よりも短い経路をバストランザクションリクエスタとバストランザクションレスポンダ(responder)との間にもたらし得る。リング間ルータを用いないリングバスのレイテンシは、リングバスに関与するリングバスノードの数に基づくレイテンシを有する。プロセッサベースシステムハイブリッドリングバス相互接続はまた、クロスバー相互接続アーキテクチャとは対照的に、より単純なスイッチング構成を用いることによって、より少ない電力を消費し得る。加えて、1つまたは複数のリング間ルータを提供して、リクエスタデバイスの帯域幅要件に基づいて、リングバス同士の間でバストランザクションメッセージを動的に導くことは、帯域幅要件に基づいて、動的にアクティブ化および非アクティブ化され得る複数のリングバスを実現することを可能にする。これは、バス相互接続に関して全帯域幅要件が必要とされないとき、電力節約を可能にする。リングバスのうちの1つまたは複数を非アクティブ化することは、帯域幅要件が依然として達成され得るとき、電力を節約し得る。
【０００９】
別の実施形態では、プロセッサベースシステムハイブリッドリングバス相互接続手段が提供される。プロセッサベースシステムハイブリッドリングバス相互接続手段は、各々が、バス幅を有し、少なくとも1つのリクエスタデバイスからバストランザクションメッセージを受信するように構成された複数のリングバス手段を含む。プロセッサベースシステムハイブリッドリングバス相互接続手段は、それらの複数のリングバス手段に結合された少なくとも1つのリング間ルータ手段をやはり備える。少なくとも1つのリング間ルータ手段は、少なくとも1つのリクエスタデバイスの帯域幅要件に基づいて、複数のリングバス手段間でバストランザクションメッセージを動的に導くように構成される。
【００１０】
別の実施形態では、プロセッサベースシステムハイブリッドリングバス相互接続においてバストランザクションメッセージを導く方法が提供される。この方法は、少なくとも1つのリクエスタデバイスからバストランザクションメッセージを受信するステップを含む。この方法は、各々が、バス幅を有し、バストランザクションメッセージを受信するように構成された、複数のリングバスの中のあるリングバス上にバストランザクションメッセージを導くステップをやはり含む。この方法は、少なくとも1つのリクエスタデバイスの帯域幅要件に基づいて、そのリングバスから複数のリングバスの中の別のリングバスへのバストランザクションメッセージを、リングバスに結合された少なくとも1つのリング間ルータから動的に導くステップをやはり含む。
【００１１】
別の実施形態では、プロセッサベースシステムハイブリッドリングバス相互接続を制御するためのリソースマネージャが提供される。リソースマネージャは、複数のバストランザクションリクエスタがアクティブであるかどうかを判断するように構成される。リソースマネージャはまた、各アクティブなバストランザクションリクエスタの帯域幅要件を判断するように構成される。リソースマネージャはまた、アクティブなバストランザクションリクエスタの帯域幅要件に基づいて、プロセッサベースシステムハイブリッドリングバス相互接続のトポロジを計算するように構成される。リソースマネージャはまた、計算したトポロジに基づいて、バストランザクションメッセージを経路指定するために、少なくとも1つのリング間ルータの構成を修正するように構成される。
【００１２】
別の実施形態では、プロセッサベースシステムハイブリッドリングバス相互接続を制御するためのリソースマネージャが提供される。リソースマネージャは、複数のバストランザクションリクエスタがアクティブであるかどうかを判断するためのアクティブリクエスタ判断手段を備える。リソースマネージャはまた、各アクティブなバストランザクションリクエスタの帯域幅要件を判断するための帯域幅判断手段を備える。リソースマネージャはまた、アクティブなバストランザクションリクエスタの帯域幅要件に基づいて、プロセッサベースシステムハイブリッドリングバス相互接続のトポロジを計算するための計算手段を備える。リソースマネージャはまた、計算したトポロジに基づいて、バストランザクションメッセージを経路指定するために、少なくとも1つのリング間ルータの構成を修正するための修正手段を備える。
【００１３】
別の実施形態では、リソースマネージャに、プロセッサベースシステムハイブリッドリングバス相互接続内でバストランザクションメッセージを導かせるためのコンピュータ実行可能命令を記憶したコンピュータ可読媒体が提供される。コンピュータ実行可能命令は、リソースマネージャに、少なくとも1つのリクエスタデバイスからバストランザクションメッセージを受信させて、各々が、バス幅を有し、少なくとも1つのリクエスタデバイスからバストランザクションメッセージを受信するように構成された複数のリングバスの中のあるリングバス上にバストランザクションメッセージを導かせて、少なくとも1つのリクエスタデバイスの帯域幅要件に基づいて、複数のリングバスに結合された少なくとも1つのリング間ルータを介して、複数のリングバス間でバストランザクションメッセージを導かせて、少なくとも1つのリクエスタデバイスの帯域幅要件を判断させる。
【図面の簡単な説明】
【００１４】
【図１】バス相互接続を提供するための例示的なリングバスのブロック図である。
【図２】複数のリングバスを含み、リクエスタデバイスの帯域幅要件に基づいて、リングバス間でバストランザクションメッセージを動的に導くように構成されたリング間ルータをやはり含む例示的なオンチップハイブリッドリングバス相互接続のブロック図である。
【図３Ａ】すべてのリングバスがアクティブ化されたときの、図2のプロセッサベースシステムハイブリッドリングバス相互接続を介したバストランザクションメッセージの例示的な経路を示すブロック図である。
【図３Ｂ】グローバルリングバスが非アクティブ化された後の、図2のプロセッサベースシステムハイブリッドリングバス相互接続を介したバストランザクションメッセージの例示的な代替経路を示すブロック図である。
【図４】少なくとも1つのリクエスタデバイスの帯域幅要件に基づいて、複数のリングバス間でバストランザクションメッセージを動的に導くための、図2、図3A、および図3Bのプロセッサベースシステムハイブリッドリングバス相互接続のリング間ルータを制御するように構成されたリソースマネージャの例示的な状態マシンを示す図である。
【図５】図4の状態マシンの起動状態の間に実行され得るリソースマネージャの例示的な方法のフローチャートである。
【図６】図4の状態マシンのバス相互接続構成状態の間に実行され得るリソースマネージャの例示的な方法のフローチャートである。
【図７】図3Aのバス相互接続を含む、プロセッサベースシステムハイブリッドリングバス相互接続のリング間ルータに関する例示的なルーティングテーブルである。
【図８】図3Bのバス相互接続を含む、プロセッサベースシステムハイブリッドリングバス相互接続のリング間ルータに関する別の例示的なルーティングテーブルである。
【図９】複数のリングバスを含み、リクエスタデバイスの帯域幅要件に基づいて、リングバス間でバストランザクションメッセージを動的に導くように構成されたリング間ルータをやはり含む別の例示的なプロセッサベースシステムハイブリッドリングバス相互接続のブロック図である。
【図１０】すべてのリングバスがアクティブ化されたときの、図9のプロセッサベースシステムハイブリッドリングバス相互接続を介したバストランザクションメッセージの例示的な経路を示すブロック図である。
【図１１】グローバルリングバスが非アクティブ化された後の、図9のプロセッサベースシステムハイブリッドリングバス相互接続を介したバストランザクションメッセージの例示的な代替経路を示すブロック図である。
【図１２】プロセッサベースシステムハイブリッドリングバス相互接続の様々なリングバスに電力供給するための様々な電圧レールを含む、図9のプロセッサベースシステムハイブリッドリングバス相互接続を示すブロック図である。
【図１３】リクエスタデバイスの帯域幅要件に基づいて、プロセッサベースシステムハイブリッドリングバス相互接続の複数のリングバス間でバストランザクションメッセージを動的に導くように構成されたリング間ルータを有する、図2〜図12のプロセッサベースシステムハイブリッドリングバス相互接続を含むが、これに限定されない、本開示によるプロセッサベースシステムハイブリッドリングバス相互接続を含み得る例示的なプロセッサベースシステムのブロック図である。
【発明を実施するための形態】
【００１５】
ここで図面を参照して、本開示のいくつかの例示的な実施形態について説明する。「例示的」という語は、本明細書では「例、実例、または例示として働く」ことを意味するように使用される。「例示的な」として本明細書で説明する任意の実施形態は、必ずしも他の実施形態よりも好ましいか、または有利であると解釈されるべきではない。
【００１６】
詳細な説明で開示される実施形態は、プロセッサベースシステムハイブリッドリングバス相互接続、ならびに関連デバイス、プロセッサベースシステム、およびに方法を含む。この点について、一実施形態では、プロセッサベースシステムハイブリッドリングバス相互接続が提供される。プロセッサベースシステムハイブリッドリングバス相互接続は、非限定的な例として、オンチッププロセッサベースシステムハイブリッドリングバス相互接続であり得る。プロセッサベースシステムハイブリッドリングバス相互接続は、各々が、バス幅を有し、リクエスタデバイスからバストランザクションメッセージを受信するように構成された複数のリングバスを含む。プロセッサベースシステムハイブリッドリングバス相互接続は、複数のリングバスに結合された1つまたは複数のリング間ルータをやはり含む。1つまたは複数のリング間ルータは、リクエスタデバイスの帯域幅要件に基づいて、リングバス間でバストランザクションメッセージを動的に導くように構成される。このようにして、プロセッサベースシステムハイブリッドリングバス相互接続は、リングバスアーキテクチャとクロスバー相互接続アーキテクチャの両方の性能利益を含む。
【００１７】
非限定的な例として、リングバス同士の間でバストランザクションメッセージを導くために複数のリング間ルータを提供することは、結果として、リング間ルータを用いないリングバスの経路よりも短い経路をバストランザクションリクエスタとバストランザクションレスポンダとの間にもたらし得る。リング間ルータを用いないリングバスのレイテンシは、リングバスに関与するリングバスノードの数に基づくレイテンシを有する。プロセッサベースシステムハイブリッドリングバス相互接続はまた、クロスバー相互接続アーキテクチャとは対照的に、より単純なスイッチング構成を用いることによって、より少ない電力を消費し得る。加えて、1つまたは複数のリング間ルータを提供して、リクエスタデバイスの帯域幅要件に基づいて、リングバス同士の間でバストランザクションメッセージを動的に導くことは、帯域幅要件に基づいて、動的にアクティブ化および非アクティブ化され得る複数のリングバスを実現することを可能にする。これは、バス相互接続の全帯域幅が必要とされないとき、電力節約を可能にする。リングバスのうちの1つまたは複数を非アクティブ化することは、帯域幅要件が依然として達成され得るとき、電力を節約し得る。
【００１８】
この点について、図2は、プロセッサベースシステムハイブリッドリングバス相互接続22の例を示す。図2のこの例では、プロセッサベースシステムハイブリッドリングバス相互接続22は、オンチップハイブリッドリングバス相互接続22であり、したがって、この例では、「オンチップハイブリッドリングバス相互接続22」と呼ばれることになる。本明細書で使用するオンチップは、ハイブリッドリングバス相互接続が、コンピュータまたは他のプロセッサベースシステムの他の構成要素とともに組み込まれた集積回路(IC)内にチップもしくは一連のチップの形で提供され得ることを意味する。非限定的な例として、オンチップハイブリッドリングバス相互接続22は、システムオンチップ(SOC)の形で提供され得る。しかしながら、本開示および本明細書で開示される実施形態は、オンチップハイブリッドリングバス相互接続であるハイブリッドリングバス相互接続に限定されないことに留意されたい。
【００１９】
図2を引き続き参照すると、オンチップハイブリッドリングバス相互接続22は、この例では、通信のために少なくとも1つの半導体ダイ25の形で提供されるシステムオンチップ(SOC)内でバストランザクション参加者24を相互接続する。バストランザクション参加者24は、「バスマスター」とも呼ばれる、いくつかのバストランザクションリクエスタ26を含む。たとえば、バストランザクションリクエスタ26(0)〜26(X)は、プロセッサ28(0)〜28(X)をさらに含み得る。バストランザクション参加者24は、「バススレーブ」とも呼ばれる、いくつかのバストランザクションレスポンダ30(0)〜30(Y)をやはり含む。たとえば、バストランザクションレスポンダ30(0)〜30(Y)は、メモリノード32(0)〜32(Y)を含み得る。オンチップハイブリッドリングバス相互接続22は、複数のローカルリングバス34(0)〜34(M)およびグローバルリングバス36(0)〜36(N)から構成される。図2に示すように、グローバルリングバス36は、中央処理装置(CPU)アーキテクチャ内のローカルリングバス34(0)〜34(M)のすべてにまたがることが可能である。ポイントツーポイント通信は、あるローカルリングバス34が2個の参加者ノード38を相互接続する場合、そのローカルリングバス34上でそれらの2個の参加者ノード38同士の間で発生し得る。そうでない場合、リング間ルータ40(たとえば、40(0))は、所望される送信先に達するために、バストランザクションメッセージ18(図示せず)をあるリングバス(たとえば、ローカルリングバス34(0))から別のリングバス(たとえば、グローバルリングバス36(0))に経路指定することができる。リソースマネージャ42は、リング間ルータ40のルーティングを制御するために提供され得る。リング間ルータ40によってバストランザクションメッセージ18が経路指定され得る例示的なルーティング方向44が図2で言及される。
【００２０】
リング間ルータ40(0)〜40(15)の経路は変更され得るので、リングバス性能が許容レベルに達することになる場合、1つまたは複数のグローバルリングバス(たとえば、グローバルリングバス36(N))を非アクティブ化して、電力を節約することができる。グローバルリングバス36(N)が非アクティブ化されるとき、リング間ルータ40の経路は、他のリングバス(たとえば、ローカルリングバス34および/またはグローバルリングバス36)を介したバストランザクションメッセージ18の配信を確実にするように設定される。グローバルリングバス36(N)を再アクティブ化して、性能を増大することも可能である。グローバルリングバス36(N)が再アクティブ化されるとき、リング間ルータ40の経路は、性能の増大を達成するために、バストランザクションメッセージ18を配信する性能を増大するように設定されるが、電力消費が増大するという代償が伴う。たとえば、リング間ルータ40の経路は、オンチップハイブリッドリングバス相互接続22を横断するバストランザクションメッセージ18に関して、短縮された経路および/または競合が低減した経路(reduced  contention  path)を提供するように制御され得る。競合が低減した経路を横断するとき、バストランザクションメッセージ18は、競合が増大した経路(increased  contention  path)を横断するときよりも、キューイング遅延を回避すること、および/またはより短いキューイング遅延を受けることも可能である。短縮された経路および/または競合が低減した経路の結果として、バストランザクションメッセージ18の配信スループットは増大し得る。
【００２１】
バストランザクションリクエスタ26(0)〜26(X)の帯域幅要件が性能の増大を必要とする場合、オンチップハイブリッドリングバス相互接続22のすべてのリングバス(たとえば、すべてのローカルリングバス34(0)〜34(M)および/またはすべてのグローバルリングバス36(0)〜36(N))をアクティブ化して、バストランザクションメッセージ18を経路指定する際に最大の柔軟性を提供することができる。この点について、下でより詳細に説明するように、図3Aは、リングバス34、36のすべてがアクティブ化されたときの、図2のオンチップハイブリッドリングバス相互接続22を介したバストランザクションメッセージ18の例示的な経路46、48を示す。しかしながら、バストランザクションリクエスタ26の帯域幅要件が性能の低下を許可する場合、あるリングバス(たとえば、グローバルリングバス36(N))を非アクティブ化して、電力を節約することができる。結果として、バストランザクションメッセージ18は、リングバス34、36のすべてがアクティブであった場合に通常ならば可能になることになるよりも、より長い経路および/またはより競合の高い経路を介して経路指定され得る。この点について、下でより詳細に説明するように、図3Bは、グローバルリングバス36(N)が非アクティブ化された後の、図2のオンチップハイブリッドリングバス相互接続22を介したバストランザクションメッセージ18の例示的な代替経路50、52を示す。
【００２２】
次に図3Aを再び参照すると、オンチップハイブリッドリングバス相互接続22のリングバス34、36のすべてがアクティブであるときの、図2のオンチップハイブリッドリングバス相互接続22を介したバストランザクションメッセージ18の例示的な経路46、48を示す。図3Aで、バストランザクションリクエスタ26(0)からバストランザクションレスポンダ30(0)へのバストランザクション要求メッセージ(図示せず)は、オンチップハイブリッドリングバス相互接続22によって経路46に沿って経路指定される。この点について、バストランザクション要求メッセージは、参加者ノード38(0)からリング間ルータ40(14)に経路指定される。リング間ルータ40(14)は、バストランザクション要求メッセージをグローバルリングバス36(N)上に経路指定する。リング間ルータ40(13)は、次いで、バストランザクション要求メッセージをローカルリングバス34(M)上で参加者ノード38(1)に経路指定し、ここでこのバストランザクション要求メッセージはバストランザクションレスポンダ30(0)によって受信される。応答して、バストランザクションレスポンダ30(0)は、経路48に沿って経路指定されたバストランザクション応答メッセージ(図示せず)をバストランザクションリクエスタ26(0)に送信する。バストランザクション応答メッセージは、参加者ノード38(1)からローカルリングバス34(M)に送信される。リング間ルータ40(11)は、次いで、バストランザクション応答メッセージをグローバルリングバス36(N)上に経路指定する。リング間ルータ40(8)は、次いで、バストランザクション応答メッセージをローカルリングバス34(0)上に経路指定する。バストランザクション応答メッセージは、参加者ノード38(0)によって受信されて、バストランザクションリクエスタ26(0)に配信される。
【００２３】
バストランザクションリクエスタ26(0)〜26(X)の帯域幅要件が性能の低下を許可する場合、1つまたは複数のリングバス(たとえば、グローバルリングバス36(N))を非アクティブ化して、電力を節約することができる。帯域幅要件は性能の低下を許可し得るが、これは、1つもしくは複数のバストランザクションリクエスタ26(0)〜26(X)が非活性化している(たとえば、電力低下している、および/または電力遮断している)ため、かつ/あるいはCPUがより低い電力モードに入っているためである。オンチップハイブリッドリングバス相互接続22の一部は非アクティブ化され得るので、オンチップハイブリッドリングバス相互接続22はより少ない電力を消費することができる。しかしながら、1つもしくは複数のリングバス(たとえば、グローバルリングバス36(N))が非アクティブ化されるとき、バストランザクションメッセージ18(たとえば、バストランザクション要求メッセージおよび/またはバストランザクション応答メッセージ)は、図3Aに示した経路46、48よりも、より長い経路ならびに/あるいはより競合の高い経路を介して経路指定され得る。
【００２４】
この点について、図3Bは、グローバルリングバス36(N)が非アクティブ化された後の、図2のオンチップハイブリッドリングバス相互接続22を介したバストランザクションメッセージ18の例示的な代替経路50、52を示す。図3Bで、グローバルリングバス36(N)は非アクティブ化されているので、バストランザクションリクエスタ26(0)からバストランザクションレスポンダ30(0)へのバストランザクション要求メッセージは、このとき、(図3Aに示した経路46とは異なる)代替経路50に沿って経路指定される。図3Bの代替経路50は、図3Aに示した経路46よりも長い。しかしながら、グローバルリングバス36(N)が非アクティブ化されるとき、オンチップハイブリッドリングバス相互接続22はやはりより少ない電力を消費することができる。
【００２５】
図3Bで、バストランザクション要求メッセージは、参加者ノード38(0)によってローカルリングバス34(0)上に送信される。リング間ルータ40(14)は、図3Aの場合のように、バストランザクション要求メッセージをグローバルリングバス36(N)に経路指定する代わりに、バストランザクション要求メッセージをローカルリングバス34(0)上に維持する。リング間ルータ40(6)は、次いで、バストランザクション応答メッセージをグローバルリングバス36(0)上に経路指定する。リング間ルータ40(5)は、次いで、バストランザクション応答メッセージをローカルリングバス34(M)上に経路指定する。バストランザクション要求メッセージは、参加者ノード38(1)によって受信されて、バストランザクションレスポンダ30(0)に配信される。
【００２６】
応答して、バストランザクションレスポンダ30(0)は、バストランザクション応答メッセージをバストランザクションリクエスタ26(0)に送信する。図3Bで、グローバルリングバス36(N)は非アクティブ化されているので、バストランザクションレスポンダ30(0)からバストランザクションリクエスタ26(0)へのバストランザクション応答メッセージは、このとき、(図3Aに示した経路48とは異なる)代替経路52に沿って経路指定される。図3Bの代替経路52はやはり、図3Aに示した経路48よりも長い。しかしながら、グローバルリングバス36(N)が非アクティブ化されるとき、オンチップハイブリッドリングバス相互接続22はやはりより少ない電力を消費することができる。この点について、バストランザクション応答メッセージは、参加者ノード38(1)からローカルリングバス34(M)に送信される。リング間ルータ40(11)は、図3Aの場合のように、バストランザクション応答メッセージをグローバルリングバス36(N)に経路指定する代わりに、バストランザクション応答メッセージをローカルリングバス34(M)上に維持する。リング間ルータ40(3)は、次いで、バストランザクション応答メッセージをグローバルリングバス36(0)上に経路指定する。リング間ルータ40(0)は、次いで、バストランザクション応答メッセージをローカルリングバス34(0)上に経路指定する。バストランザクション応答メッセージは、参加者ノード38(0)によって受信されて、バストランザクションリクエスタ26(0)に配信される。
【００２７】
したがって、図2、図3A、および図3Bのオンチップハイブリッドリングバス相互接続22は、リング間ルータ40を用いない(図1に示した)単純なリングバス10とリングバス10および/またはリング間ルータ40を用いないクロスバー相互接続の両方よりも利点を有する。オンチップハイブリッドリングバス相互接続22はリング間ルータ40を用いるので、バストランザクションメッセージ18は、単純なリングバス10に沿って送信された場合に可能になるよりも短い経路に沿って送信され得る。結果として、オンチップハイブリッドリングバス相互接続22は、単純なリングバス10よりも高いスループットを受けることが可能である。さらに、単純なリングバス10上で送信されるとき、バストランザクションメッセージ18は、その単純なリングバス10の同じ部分に対して競合する可能性がある。しかしながら、オンチップハイブリッドリングバス相互接続22上で送信されるとき、バストランザクションメッセージ18は、その単純なリングバス10よりも少ない競合を受けることも可能である。この点について、競合が低減した経路を横断するとき、バストランザクションメッセージ18は、競合が増大した経路を横断するときよりも、キューイング遅延を回避すること、および/またはより短いキューイング遅延を受けることも可能である。オンチップハイブリッドリングバス相互接続22のより短い経路および/または競合が低減した経路の結果として、バストランザクションメッセージ18の配信スループットが高まる。この追加の理由で、オンチップハイブリッドリングバス相互接続22は、単純なリングバス10よりも高いスループットを受けることが可能である。
【００２８】
オンチップハイブリッドリングバス相互接続22は、リングバス10およびリング間ルータ40を用いないクロスバー接続よりもやはり利点を有する。オンチップハイブリッドリングバス相互接続22のリング間ルータ40は、クロスバー相互接続よりも単純なスイッチを使用して実装され得る。たとえば、各リング間ルータ40は、2ポートクロスバースイッチとして実装され得る。しかしながら、クロスバー相互接続は、2つを超える入力ポートおよび出力ポートを有するクロスバースイッチを必要とし得る。さらに、オンチップハイブリッドリングバス相互接続22は、クロスバー相互接続よりも少ない電力を消費し得る。たとえば、オンチップハイブリッドリングバス相互接続22の1つまたは複数のリングバス34、36が非アクティブ化されるとき、オンチップハイブリッドリングバス相互接続22は、クロスバー相互接続よりも少ない電力を消費し得る。さらに、オンチップハイブリッドリングバス相互接続22は、クロスバー相互接続よりも高い周波数で動作し得る。これは、オンチップハイブリッドリングバス相互接続22が動作し得る最大周波数が、隣接するリング間ルータ40同士の間の最大距離に依存し得るためである。
【００２９】
リング間ルータ40のルーティングは、リソースマネージャ42によって制御され得る。次に図4〜図6を参照すると、例示的なリソースマネージャ状態マシン54(図4)と、付随するリソースマネージャ方法500、600(図5〜図6)とが提供される。図4に示すリソースマネージャ状態マシン54は、起動状態56、バス相互接続構成状態58、および更新待機状態60という3つの状態を含む。リソースマネージャ状態マシン54は起動状態56で開始する。図5は、起動状態56の間に実行され得るリソースマネージャ状態マシン54の例示的な方法500を示す。リング間ルータ40のルーティングを制御するために、リソースマネージャ状態マシン54は、どのバストランザクションリクエスタ26がアクティブであるかを判断することができる(ブロック502)。リソースマネージャ状態マシン54は、アクティブなバストランザクションリクエスタ26の帯域幅要件を探索することも可能である(ブロック504)。アクティブなバストランザクションリクエスタ26の帯域幅要件に基づいて、リソースマネージャ状態マシン54は、オンチップハイブリッドリングバス相互接続22のリングバス34、36を介して、バストランザクションメッセージ18を経路指定するためのバス相互接続トポロジを計算することができる(ブロック506)。
【００３０】
バス相互接続トポロジ計算を完了するとすぐに、リソースマネージャ状態マシン54は、バス相互接続構成状態58に遷移(図4の遷移62)することができる。図6は、バス相互接続構成状態58の間に実行され得るリソースマネージャ状態マシン54の例示的な方法600を示す。この点について、リソースマネージャ状態マシン54は、オンチップハイブリッドリングバス相互接続22を判断されたトポロジに再構成することができる。たとえば、リソースマネージャ状態マシン54は、リングバス34、36のうちの1つもしくは複数を単独でアクティブ化および/または非アクティブ化することができる(ブロック602)。リソースマネージャ状態マシン54は、リング間ルータ40のうちの1つもしくは複数をさらにアクティブ化および/または非アクティブ化することができる(ブロック604)。
【００３１】
図6を引き続き参照すると、リソースマネージャ状態マシン54は、次に、各リング間ルータ40に関するルーティングテーブルを判断することができる(ブロック606)。ルーティングテーブルの例は、図7および図8に関して下で議論される。リソースマネージャ42は、ルーティングテーブルをリング間ルータ40に送信すること、および/または場合によっては、ルーティングテーブルに従って、バストランザクションメッセージ18を経路指定するためにリング間ルータ40を構成することもできる(ブロック608)。加えて、リソースマネージャ状態マシン54内で、リソースマネージャ42は、ハンドシェークメッセージをリング間ルータ40に送信することもできる(ブロック610)。ハンドシェークメッセージは、アクティブなルーティングテーブルに更新が存在するであろうこと、およびリング間ルータ40は、リソースマネージャ42に対する肯定応答の前に、バストランザクションメッセージ18を休止しなければならないことをリング間ルータ40に示す。再構成の影響を受けるすべてのリング間ルータ40が、そのバストランザクションメッセージ18が休止したことを示すと、リソースマネージャ42は、ルーティングテーブルの更新が許可されることをリング間ルータ40に示すことができる。方法600を完了した後、リソースマネージャ状態マシン54は、更新待機状態60に遷移(図4の遷移64)する。
【００３２】
更新を受信するとすぐ、リソースマネージャ状態マシン54は、(更新の後)各アクティブなバストランザクションリクエスタ26の帯域幅要件を再度判断して、オンチップハイブリッドリングバス相互接続22のバス相互接続トポロジを再計算する(図4の遷移66)。バス相互接続構成状態58に再度入るとすぐ、リソースマネージャ状態マシン54は、図6の方法600を再度実行する。様々な更新は、オンチップハイブリッドリングバス相互接続22のバス相互接続トポロジの再計算および再構成をトリガし得る。非限定的な例として、より低い電力モード更新、より高い電力モード更新、バストランザクションリクエスタ26がアクティブ化する(たとえば、電力上昇する)という更新、および/またはバストランザクションリクエスタ26が非アクティブ化する(たとえば、電力低下する)という更新は、各々、遷移66をトリガし得る。たとえば、リソースマネージャ状態マシン54は、より低い電力モード更新を受信することに応答して、グローバルリングバス36(N)を非アクティブ化することができる。リソースマネージャ状態マシン54は、より高い電力モード更新を受信することに応答して、後で、グローバルリングバス36(N)を再アクティブ化することができる。
【００３３】
図7および図8は、オンチップハイブリッドリングバス相互接続22のリング間ルータ40に関する例示的なルーティングテーブル68(1)、68(2)を示す。図7に示すように、各リング間ルータ40に関するルーティングテーブル68(1)更新は、様々なバストランザクションメッセージ18を経路指定するための方向70を含み得る。ルーティング方向70は、バストランザクションメッセージ18の送信先(送信先識別子72)および/またはバストランザクションメッセージ18の送信元(送信元識別子74)に基づくことが可能である。リソースマネージャ状態マシン54は、リングバス34、36の各々を単独で周波数スケーリングすることもできる。この点について、ルーティングテーブル68(1)は、バストランザクションメッセージ18を転送するバス周波数データレート76(たとえば、シングルデータレート(SDR)またはダブルデータレート(DDR))を指定することもできる。バス周波数データレート76がSDRに設定されるとき、オンチップハイブリッドリングバス相互接続22のリング間ルータ40は、バストランザクションメッセージ18をクロックサイクルごとに1回転送することができる。バス周波数データレート76がDDRに設定されるとき、オンチップハイブリッドリングバス相互接続22のリング間ルータ40は、バストランザクションメッセージ18をクロックビート(clock  beat)ごとに1回(すなわち、各クロックサイクルごとに2回)転送することができる。ルーティングテーブル68(1)は、バストランザクションメッセージ18を転送するために使用する(非限定的な例として、32ビット、64ビット、128ビットなど)バス幅78を指定することもできる。
【００３４】
非限定的な例として、ルーティングテーブル68(1)は、図2〜図3Bのリング間ルータ40(14)のルーティングテーブルであり得る。図7は、グローバルリングバス36(N)がアクティブ化されるとき(図3A)の、リング間ルータ40(14)に関するリング間ルータルーティングテーブル68(1)を示す。図7でリング間ルータルーティングテーブル68(1)の第1のエントリーに示すように、グローバルリングバス36(N)がアクティブ化されるとき、リング間ルータ40(14)のルーティング方向は、(列74内の)送信元識別子0および(列72内の)送信先識別子1に関して、「1」、すなわち、図3Aに示すように右になる。図8は、グローバルリングバス36(N)が非アクティブ化された後(図3B)の、リング間ルータ40(14)に関する別のリング間ルータルーティングテーブル68(2)を示す。図8でリング間ルータルーティングテーブル68(2)の第1のエントリーに示すように、グローバルリングバス36(N)が非アクティブ化されるとき、リング間ルータ40(14)のルーティング方向は、(列74内の)送信元識別子0および(列72内の)送信先識別子1に関して、「2」、すなわち、図3Bに示すように下方になる。各リング間ルータ40は、ルーティングテーブル68(1)、68(2)を含むことが可能であるか、またはルーティングテーブル68(1)、68(2)に従って構成され得る。
【００３５】
さらに、各リング間ルータ40は、アクティブなルーティングテーブルとシャドー(shadow)ルーティングテーブルとを含み得る。アクティブなルーティングテーブルは、バストランザクションメッセージ18を経路指定するために使用可能であるのに対して、シャドールーティングテーブルは、リソースマネージャ状態マシン54によってロードされている。シャドールーティングテーブルのロードが完了するとき、リング間ルータ40のアクティブなルーティングテーブルとして使用するためにシャドールーティングテーブルを切り替えることができる。
【００３６】
図9は、プロセッサベースシステムハイブリッドリングバス相互接続の例として、オンチップハイブリッドリングバス相互接続22(1)の別の例を示す。類似の要素番号を有する類似の要素は、その他の説明が無い限り、同じであるかまたは類似である。図9のオンチップハイブリッドリングバス相互接続22(1)は、この例では、通信のために、システムオンチップ(SOC)内でバストランザクション参加者24を相互接続する。バストランザクション参加者24は、「バスマスター」とも呼ばれる、バストランザクションリクエスタ26'(たとえば、26'(0)〜26'(1))を含む。たとえば、バストランザクションリクエスタ26'は、プロセッサ28'(たとえば、28'(0)〜28'(1))をさらに備え得る。バストランザクション参加者24は、「バススレーブ」とも呼ばれる、バストランザクションレスポンダ30'(たとえば、30'(0)〜30'(3))をやはり含む。たとえば、バストランザクションリクエスタ30'は、メモリノード32'(たとえば、32'(0)〜32'(1))および/またはキャッシュ33'(たとえば、33'(0)〜33'(1))を備え得る。オンチップハイブリッドリングバス相互接続22(1)は、ローカルリングバス34'(たとえば、34'(0)〜34'(5))とグローバルリングバス36とから構成される。図9で、グローバルリングバス36は、1つのグローバル要求リングバス80と2つ以上のグローバルデータリングバス82(0)〜82(N)とを備える。図9に示すように、グローバルリングバス36は、中央処理装置(CPU)アーキテクチャ内のすべてのローカルリングバス34'にまたがることが可能である。ポイントツーポイント通信は、あるローカルリングバス34'が2個の参加者ノード38を相互接続する場合、そのローカルリングバス34'上でそれらの2個の参加者ノード38同士の間で発生し得る。そうでない場合、リング間ルータ40(たとえば、40(16))は、所望される送信先に達するために、バストランザクションメッセージ18をあるリングバス(たとえば、ローカルリングバス34'(0))から別のリングバス(たとえば、グローバル要求リングバス80)に経路指定することができる。リソースマネージャ42(1)は、リング間ルータ40のルーティングを制御するために提供され得る。
【００３７】
リング間ルータ40の経路は変更され得るので、1つまたは複数のグローバルリングバス(たとえば、グローバルデータリングバス82(N))を非アクティブ化して、電力を節約することができる。グローバルリングバス82(N)が非アクティブ化されるとき、リング間ルータ40の経路は、他のリングバス34'、36を介したバストランザクションメッセージ18の配信を確実にするように設定される。グローバルリングバス82(N)を再アクティブ化して、性能を増大することも可能である。グローバルリングバス82(N)が再アクティブ化されるとき、リング間ルータ40の経路は、性能の増大を達成するために、電力消費が増大するという代償を伴って、バストランザクションメッセージ18を配信する性能を増大するように設定される。たとえば、リング間ルータ40の経路は、オンチップハイブリッドリングバス相互接続22(1)を横断するバストランザクションメッセージ18に関して、短縮された経路および/または競合が低減された経路を提供するように制御され得る。
【００３８】
バストランザクションリクエスタ26'の帯域幅要件が性能の増大を必要とする場合、オンチップハイブリッドリングバス相互接続22(1)のすべてのリングバス34'、36をアクティブ化して、バストランザクションメッセージ18を経路指定する際に最大の柔軟性を提供することができる。この点について、下でより詳細に説明するように、図10は、すべてのリングバス34'、36がアクティブ化されたときの、図9のオンチップハイブリッドリングバス相互接続22(1)を介したバストランザクションメッセージ18の例示的な経路84、86、88、90を示す。しかしながら、バストランザクションリクエスタ26'の帯域幅要件が性能の低下を許可する場合、あるリングバス(たとえば、グローバルデータリングバス82(N))を非アクティブ化して、電力を節約することができる。結果として、バストランザクションメッセージ18は、すべてのリングバス34'、36がアクティブであった場合に、通常ならば可能になることになるよりも、より長い経路および/またはより競合性の高い経路を介して経路指定され得る。
【００３９】
次に図10を参照すると、図9のオンチップハイブリッドリングバス相互接続22(1)のすべてのリングバス34'、36がアクティブであるときの、オンチップハイブリッドリングバス相互接続22(1)を介したバストランザクションメッセージ18の例示的な経路を示す。この例では、バストランザクションリクエスタ26'(0)からバストランザクションレスポンダ30'(2)へのバストランザクション要求メッセージ(図示せず)は、オンチップハイブリッドリングバス相互接続22(1)によって経路84に沿って経路指定される。この点について、バストランザクション要求メッセージは参加者ノード38(4)を介してローカルリングバス34'(0)に沿って参加者ノード38(19)からリング間ルータ40(16)に経路指定される。リング間ルータ40(16)は、バストランザクション要求メッセージをグローバル要求リングバス80上に経路指定する。リング間ルータ40(17)は、次いで、バストランザクション要求メッセージをローカルリングバス34'(2)上で参加者ノード38(7)に経路指定し、ここでバストランザクション要求メッセージはバストランザクションレスポンダ30'(2)によって受信される。応答して、バストランザクションレスポンダ30'(2)は、経路86に沿って経路指定されるバストランザクション応答メッセージ(図示せず)を送信する。バストランザクション応答メッセージは、参加者ノード38(8)からローカルリングバス34'(3)に送信される。リング間ルータ40(27)は、バストランザクション応答メッセージをグローバルリングバス82(0)上に経路指定する。リング間ルータ40(29)は、次いで、バストランザクション応答メッセージをローカルリングバス34'(1)上に経路指定する。バストランザクション応答メッセージは、参加者ノード38(17)によって受信される。
【００４０】
図10を引き続き参照すると、第2のバストランザクション要求メッセージ(図示せず)は経路88に沿って送信される。この点について、第2のバストランザクション要求メッセージは、バストランザクションリクエスタ26'(1)からローカルリングバス34'(4)に送信される。リング間ルータ40(20)は、第2のバストランザクション要求メッセージをグローバル要求リングバス80上に経路指定する。リング間ルータ40(21)は、第2のバストランザクション要求メッセージをローカルリングバス34'(2)上に経路指定し、ここで第2のバストランザクション要求メッセージはバストランザクションレスポンダ30'(0)によって受信される。応答して、バストランザクションレスポンダ30'(0)は、第2のバストランザクション応答メッセージ(図示せず)をローカルリングバス34'(3)に送信する。第2のバストランザクション応答メッセージは経路90に沿って経路指定される。この点について、リング間ルータ40(30)は、第2のバストランザクション応答メッセージをグローバルデータリングバス82(N)上に経路指定する。リング間ルータ40(32)は、第2のバストランザクション応答メッセージをローカルリングバス34'(5)上に経路指定し、ここから第2のバストランザクション応答メッセージはバストランザクションレスポンダ26'(1)の参加者ノード38(12)によって受信される。
【００４１】
図11は、グローバルリングバス36(この場合、グローバルデータリングバス82(N))が非アクティブ化された後の、図9および図10のオンチップハイブリッドリングバス相互接続22(1)を介したバストランザクションメッセージ18の例示的な代替経路を示す。図11で、経路84、86、および88は図10と同じである。しかしながら、第2のバストランザクション応答メッセージは、このとき、(図10に示す経路90とは異なる)代替経路92に沿って経路指定される。図11の代替経路92はやはり、図10に示す経路90よりも長い。この点について、図11で、リング間ルータ40(30)は、図10の場合のように、第2のバストランザクション応答メッセージをグローバルデータリングバス82(N)に経路指定する代わりに、第2のバストランザクション応答メッセージをローカルリングバス34'(3)上に維持する。リング間ルータ40(24)は、第2のバストランザクション応答メッセージをグローバルデータリングバス82(0)上に経路指定する。リング間ルータ40(26)は、第2のバストランザクション応答メッセージをローカルリングバス34'(5)上に経路指定し、ここで第2のバストランザクション応答メッセージは参加者ノード38(12)によって受信される。
【００４２】
次に図12を参照すると、1つまたは複数のグローバルリングバス36を非アクティブ化するために、オンチップハイブリッドリングバス相互接続22(2)は、2つ以上の異なる電圧レール94(たとえば、94(0)〜94(N))を含み得る。オンチップハイブリッドリングバス相互接続22(2)のグローバルリングバス36の各々は、2つ以上の異なる電圧レール94(0)〜94(N)のうちの1つによって電力投入され得る。したがって、オンチップハイブリッドリングバス相互接続22(2)の各グローバルリングバス36は、そのグローバルリングバス36に電力供給する電圧レール94を電力切断することによって非アクティブ化され得る。電圧レール94(0)〜94(N)の各々の電圧は、異なる電圧調整器96(0)〜96(N)によって別々に維持され得る。電圧調整器96(0)〜96(N)は、同じ基準電圧レール98に結合されてよく、または結合されなくてもよい。図12で、グローバル要求リングバス80および/またはグローバルデータリングバス82(0)は、電圧レール94(0)を電力切断することによって非アクティブ化され得る。グローバルデータリングバス82(N)は、電圧レール94(N)を電力切断することによって非アクティブ化され得る。あるいは、グローバルリングバス36は、グローバルリングバス36をクロック制御するクロック信号20(図示せず)を停止させることによって非アクティブ化され得る。
【００４３】
本明細書において開示した実施形態によるオンチップハイブリッドリングバス相互接続22、22(1)、22(2)、ならびに関連デバイス、プロセッサベースシステム、および方法は、任意のプロセッサベースデバイスに設けられてもまたは組み込まれてもよい。例として、限定されないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤが含まれる。
【００４４】
この点について、図13は、図2〜図12に示したオンチップハイブリッドリングバス相互接続22、22(1)、または22(2)であってよい、本明細書で論じるプロセッサベースシステムハイブリッドリングバス相互接続101を用いることが可能なプロセッサベースシステム100の例を示す。この例では、プロセッサベースシステム100は、システムオンチップ(SOC)102を備える。プロセッサベースシステム100は、1つまたは複数のプロセッサ106を各々が含む1つまたは複数の中央処理装置(CPU)104をさらに含む。図13に示すように、1つまたは複数のプロセッサ106は、オンチップハイブリッドリングバス相互接続22、22(1)、22(2)に結合され得る。やはり図13に示すように、CPU104は、プロセッサ106が一時的に記憶されたデータに素早くアクセスするのを可能にするために、オンチップハイブリッドリングバス相互接続22、22(1)、22(2)に結合されたキャッシュメモリ108を含み得る。プロセッサ106は、バストランザクションリクエスタ26、26'(たとえば、バスマスターデバイス)であり得る。キャッシュメモリ108は、バストランザクションレスポンダ30、30'(たとえば、バススレーブデバイス)であり得る。
【００４５】
図13に示すように、CPU104は、システムバスとして働くオンチップハイブリッドリングバス相互接続22'、22'(1)、または22'(2)であり得る別のプロセッサベースシステムハイブリッドリングバス相互接続105に結合され得る。プロセッサベースシステムハイブリッドリングバス相互接続105は、プロセッサベースシステム100内に含まれたバスマスターデバイスとバススレーブデバイスとを相互結合する。CPU104は、プロセッサベースシステムハイブリッドリングバス相互接続105を介してアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信する。たとえば、CPU104は、スレーブデバイスの一例として、メモリコントローラ110にバストランザクション要求を通信することができる。図13に示すように、複数のプロセッサベースシステムハイブリッドリングバス相互接続(たとえば、101、105)をSOC102内に設けることができ、各プロセッサベースシステムハイブリッドリングバス相互接続101、105は異なる機構を構成する。しかしながら、プロセッサベースシステムハイブリッドリングバス相互接続101、105をSOC102に関する単一のオンチップハイブリッドリングバス相互接続101、105として設けることも可能である。
【００４６】
他のマスターデバイスおよびスレーブデバイスがプロセッサベースシステムハイブリッドリングバス相互接続105に接続され得る。図13に示されるように、これらのデバイスは、例として、メモリシステム112、1つまたは複数の入力デバイス116と通信するための1つまたは複数の入力インターフェースデバイス114、1つまたは複数の出力デバイス120と通信するための1つまたは複数の出力インターフェースデバイス118、1つまたは複数のネットワークインターフェースデバイス122、および1つまたは複数のディスプレイコントローラ124を含み得る。入力デバイス116は、限定はしないが、入力キー、スイッチ、音声プロセッサなどを含む、任意のタイプの入力デバイスを含み得る。出力デバイス120は、限定はしないが、オーディオ、ビデオ、他の視覚的指示などを含む、任意のタイプの出力デバイスを含み得る。ネットワークインターフェースデバイス122は、ネットワーク126との間のデータの交換を可能にするように構成された任意のデバイスとすることができる。ネットワーク126は、限定はしないが、ワイヤードネットワークまたはワイヤレスネットワーク、プライベートネットワークまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、およびインターネットを含む、任意のタイプのネットワークであってよい。ネットワークインターフェースデバイス122は、所望の任意のタイプの通信プロトコルをサポートするように構成され得る。メモリシステム112は、1つまたは複数のメモリユニット128(0)〜128(N)を含み得る。
【００４７】
CPU104はまた、プロセッサベースシステムハイブリッドリングバス相互接続105を介してディスプレイコントローラ124にアクセスして、1つまたは複数のディスプレイ130に送られる情報を制御するようにも構成され得る。ディスプレイコントローラ124は、1つまたは複数のビデオプロセッサ132を介して表示されるべき情報をディスプレイ130に送り、ビデオプロセッサ132は、表示されるべき情報を、ディスプレイ130に適切なフォーマットとなるように処理する。ディスプレイ130は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、発光ディスプレイ(LED)などを含む、任意のタイプのディスプレイを含み得る。CPU104およびディスプレイコントローラ124は、プロセッサベースシステムハイブリッドリングバス相互接続105を介してメモリアクセス要求を行うためのマスターデバイスとして作用し得る。
【００４８】
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子的なハードウェアとして、メモリもしくは別のコンピュータ可読媒体に記憶され、プロセッサもしくは他の処理デバイスにより実行される命令として、またはこれら両方の組合せとして実装され得ることが、当業者にはさらに諒解されよう。例として、本明細書で説明するプロセッサベースシステムハイブリッドリングバス相互接続、マスターデバイス、およびスレーブデバイスは、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップにおいて用いられることが可能である。本明細書で開示するメモリは、任意のタイプおよびサイズのメモリであってもよく、所望の任意のタイプの情報を記憶するように構成され得る。この互換性を明確に示すために、上記では、様々な例示的構成要素、ブロック、モジュール、回路、およびステップは全般的に、それらの機能に関して説明されている。そのような機能がどのように実装されるかは、具体的な用途、設計の選択、および/またはシステム全体に課される設計制約により決まる。当業者は、説明した機能を具体的な適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈すべきではない。
【００４９】
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理回路、個別ハードウェア構成要素、または本明細書で説明する機能を実施するように設計されたそれらの任意の組合せで実装あるいは実施することができる。プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態マシンであり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。
【００５０】
本明細書で開示する実施形態は、ハードウェアで具現化されてよく、ハードウェアに記憶される命令で具現化されてよく、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD-ROM)、または、当技術分野で知られている任意の他の形態のコンピュータ可読媒体に、存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、かつ記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はASIC内に存在することができる。ASICは遠隔局に存在し得る。代替として、プロセッサおよび記憶媒体は、遠隔局、基地局、またはサーバの中に、個別の構成要素として存在し得る。
【００５１】
本明細書の例示的な実施形態のいずれかで説明した動作ステップは、例および考察を提供するために説明したものであることにも、留意されたい。説明された動作は、例示された順序以外の多くの異なる順序で実行されてもよい。さらに、単一の動作ステップで説明される動作は、実際には、いくつかの異なるステップで実行され得る。加えて、例示的な実施形態において論じられた1つまたは複数の動作ステップは、組み合わされてもよい。フローチャート図において例示される動作ステップは、当業者に容易に明らかとなるような多くの異なる修正を受けてもよいことを、理解されたい。情報および信号は、多種多様な技術および技法のいずれかを使用して表され得ることも、当業者には理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【００５２】
本開示の前述の説明は、いかなる当業者でも本開示を作成または使用することができるように記載されている。本開示への様々な修正が当業者には容易に明らかになることになり、本明細書に定義する一般原理は、本開示の趣旨および範囲を逸脱することなしに他の変形形態に適用され得る。したがって、本開示は、本明細書で説明した例および設計に限定されることを意図するものではなく、本明細書で開示する原理および新規の特徴に一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００５３】
10  リングバス
12(12(0)〜12(15))  リングバスノード
14(14(0)〜14(2))  送信リングインターフェースユニット(Tx  RIU)
16(16(0)〜16(1))  受信リングインターフェースユニット(Rx  RIU)
18(18(0)〜18(15))  バストランザクションメッセージ
20  クロック信号
22(22(1)〜22(2))  プロセッサベースシステムハイブリッドリングバス相互接続、オンチップハイブリッドリングバス相互接続
22'(22'(1)〜22'(2))  オンチップハイブリッドリングバス相互接続
24  バストランザクション参加者
25  半導体ダイ
26(26(0)〜26(X))  バストランザクションリクエスタ
26'(26'(0)〜26'(1))  バストランザクションリクエスタ
28(28(0)〜28(X))  プロセッサ
28'(28'(0)〜28'(X))  プロセッサ
30(30(0)〜30(Y))  バストランザクションレスポンダ
30'(30'(0)〜30'(3))  バストランザクションレスポンダ
32(32(0)〜32(Y))  メモリノード
32'(32'(0)〜32'(1))  メモリノード
33'(33'(0)〜33'(1))  キャッシュ
34(34(0)〜34(M))  ローカルリングバス、リングバス
34'(34'(0)〜34'(M))  ローカルリングバス
36(36(0)〜36(N))  グローバルリングバス、リングバス
38(38(0)〜38(19))  参加者ノード
40(40(0)〜40(32))  リング間ルータ
42  リソースマネージャ
44  ルーティング方向
46、48、50、52、84、86、88、90、92  ルート
54  リソースマネージャ状態マシン
56  起動状態
58  バス相互接続構成状態
60  更新待機状態
62、64、66  遷移
68(1)、68(2)  ルーティングテーブル
70  方向
72  送信先識別子、列
74  送信元識別子、列
76  バス周波数データレート
78  バス幅
80  グローバル要求リングバス
82(82(0)〜82(N))  グローバルデータリングバス
94(94(0)〜94(N))  電圧レール
96(96(0)〜96(N))  電圧調整器
98  基準電圧レール
100  プロセッサベースシステム、プロセッサベースシステムハイブリッドリングバス相互接続
101  プロセッサベースシステムハイブリッドリングバス相互接続
102  システムオンチップ(SOC)
104  中央処理装置(CPU)
105  プロセッサベースシステムハイブリッドリングバス相互接続
106  プロセッサ
108  キャッシュメモリ
110  メモリコントローラ
112  メモリシステム
114  入力インターフェースデバイス
116  入力デバイス
118  出力インターフェースデバイス
120  出力デバイス
122  ネットワークインターフェースデバイス
124  ディスプレイコントローラ
126  ネットワーク
128(128(0)〜128(N))  メモリユニット
130  ディスプレイ
132  ビデオプロセッサ
500、600  リソースマネージャ方法
602〜610  ブロック
【図１】
0005968549.tif 000002
【図２】
0005968549.tif 000003
【図３Ａ】
0005968549.tif 000004
【図３Ｂ】
0005968549.tif 000005
【図４】
0005968549.tif 000006
【図５】
0005968549.tif 000007
【図６】
0005968549.tif 000008
【図７】
0005968549.tif 000009
【図８】
0005968549.tif 000010
【図９】
0005968549.tif 000011
【図１０】
0005968549.tif 000012
【図１１】
0005968549.tif 000013
【図１２】
0005968549.tif 000014
【図１３】
0005968549.tif 000015