(57)【要約】  様々な実施形態で、装置は、複数のエージェントと相互接続を備える。一実施形態では、複数のエージェントは第１から第４までのエージェントを含む。相互接続は、エージェント間で通信パスを形成するように切換え可能な（例えば複数の選択回路を使用して）複数のセグメントを備え、第１セグメントは、第１エージェントから第２エージェントへの第１通信パスに含まれ、また第３エージェントから第４エージェントへの第２通信パスにも含まれる。別の実施形態では、各セグメントは選択回路によって駆動される。少なくとも１つの選択回路は、少なくとも１つのセグメントと、少なくとも１つのエージェントからの出力とを、入力として有する。さらに別の実施形態では、アービタが、セグメントを介した宛先エージェントへの通信パスを、各要求に対して相互接続上で決定するように構成される。アービタは、対応する通信パス中の各セグメントが利用可能であるような要求のサブセット間で、調停するように構成される。
2009505241.tif 000002
【特許請求の範囲】
【請求項１】
第１エージェント、第２エージェント、第３エージェント、第４エージェントと、
前記第１エージェント、前記第２エージェント、前記第３エージェント、前記第４エージェントが結合された相互接続と
を備える装置であって、前記相互接続は、前記相互接続に結合された前記エージェント間で通信パスを形成するように切換え可能な複数のセグメントを備え、前記複数のセグメントのうちの第１セグメントは、前記第１エージェントから前記第２エージェントへの第１通信パスに含まれ、前記第１セグメントはまた、前記第３エージェントから前記第４エージェントへの第２通信パスにも含まれる装置。
【請求項２】
前記第１セグメントはさらに、前記第１エージェントから前記第４エージェントへの第３通信パスにも含まれる請求項１に記載の装置。
【請求項３】
前記第１セグメントはさらに、前記第３エージェントから前記第２エージェントへの第４通信パスにも含まれる請求項２に記載の装置。
【請求項４】
前記相互接続に結合された第５エージェントをさらに備え、前記複数のセグメントのうちの第２セグメントは、前記第５エージェントから前記第２エージェントへの通信パスに含まれる請求項１に記載の装置。
【請求項５】
前記第２セグメントはまた、前記第１通信パスと前記第２通信パスにも含まれる請求項４に記載の装置。
【請求項６】
前記第５エージェントから前記第２エージェントへの前記通信パスは前記第１セグメントを含まない請求項４に記載の装置。
【請求項７】
前記相互接続を使用する要求を、前記相互接続に結合されたエージェントから受け取るように結合されたアービタをさらに備え、前記アービタは、前記要求間を調停して、前記相互接続を使用する要求元エージェントを選択するように構成され、前記調停に関与する要求は、対応する通信パス中で使用される少なくとも１つのセグメントが利用可能でない要求を除外する請求項１に記載の装置。
【請求項８】
少なくとも１つのセグメントが、完了していない通信のための異なる通信パスに含まれていれば、その少なくとも１つのセグメントは利用可能でない請求項７に記載の装置。
【請求項９】
前記相互接続はデータ相互接続である請求項１に記載の装置。
【請求項１０】
複数のエージェントと、
前記複数のエージェントが結合された相互接続と
を備える装置であって、前記相互接続は複数のセグメントと複数の選択回路を備え、前記複数のセグメントはそれぞれ、前記複数の選択回路のうちのそれぞれの選択回路によって駆動され、少なくとも１つの選択回路は、前記複数のセグメントのうちの少なくとも１つと、前記複数のエージェントのうちの少なくとも１つからの出力とを入力として有し、前記複数のエージェントのうちの第１エージェントから、前記複数のエージェントのうちの第２エージェントへの通信パスは、前記複数の選択回路のうちの１つ又は複数が、前記第１エージェントの出力を前記第２エージェントの入力に結合するように構成することによって確立される装置。
【請求項１１】
前記複数のセグメントの第１サブセットは、前記複数のエージェント間で第１方向の通信を運び、前記複数のセグメントの第２サブセットは、前記複数のエージェント間で第２方向の通信を運び、前記サブセットどうしは重複しない請求項１０に記載の装置。
【請求項１２】
前記複数のエージェントのうちの所与のエージェントから受信側エージェントへの通信は、前記所与のエージェントから、前記受信側エージェントの方向に駆動される請求項１１に記載の装置。
【請求項１３】
前記複数の選択回路は前記相互接続内で物理的に分散されている請求項１０に記載の装置。
【請求項１４】
前記複数の選択回路のうちの第１選択回路は、前記複数のエージェントのうち、出力が前記第１選択回路の入力として結合された第１エージェントに物理的に近接して配置された請求項１３に記載の装置。
【請求項１５】
前記相互接続を使用する要求を前記複数のエージェントから受け取るように結合されたアービタをさらに備え、前記アービタは、前記複数のエージェントのうちの１つからの要求を認可するように構成され、前記複数のエージェントのうちの前記認可されたエージェントのために通信パスを確立するように前記複数の選択回路を構成するように、前記アービタが構成されている請求項１０に記載の装置。
【請求項１６】
複数のエージェントと、
前記複数のエージェントに結合された相互接続とを備える装置であって、前記相互接続は、複数のセグメントと、前記複数のエージェント間で前記複数のセグメント上の通信パスを確立するように構成可能な複数の選択回路とを備え、装置はさらに、
前記複数のエージェント及び前記相互接続に結合されたアービタを備え、前記アービタは、前記相互接続を使用する要求を前記複数のエージェントから受け取るように結合され、各要求元エージェントは、前記要求の宛先エージェントを識別するように構成され、前記アービタは、前記複数のセグメントのうちの１つ又は複数を介した、前記要求元エージェントから前記宛先エージェントへの通信パスを、各要求について前記相互接続上で決定するように構成され、前記アービタは、対応する通信パス中の各セグメントが利用可能である要求のサブセットの間で調停するように構成された装置。
【請求項１７】
前記アービタは、前記複数のエージェントのうちの第１エージェントを調停勝者として選択するように構成され、前記アービタは、前記複数の選択回路を制御することによって、前記第１エージェントから前記複数のエージェントのうちの宛先エージェントへの通信パスを確立するように構成された請求項１６に記載の装置。
【請求項１８】
前記複数の選択回路のうちの各選択回路は、前記複数のセグメントのうちの１つを駆動するように構成された請求項１６に記載の装置。
【請求項１９】
各選択回路は、入力として、前記複数のセグメントのうちの少なくとも１つと、前記複数のエージェントのうちの少なくとも１つのエージェントの出力とに結合された請求項１８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路の分野に関し、より詳細には、集積回路内／集積回路間での相互接続に関する。
【背景技術】
【０００２】
システム中の集積回路、又は集積回路内の様々な回路は、通常、相互と通信する必要がある。多くの場合、システム中／集積回路中のコミュニケータは、メモリ・マップ中の様々なアドレスを介して通信する。すなわち、様々なコミュニケータは、メモリ・マップ内にアドレスが割り当てられ、アドレスに対する読取り／書込みを用いて通信が行われる。通常、このようなコミュニケータは、コミュニケータ間の相互接続を介して送信される読取り／書込みトランザクションを使用する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
例えば、トランザクションを開始するために、アドレス、コマンド、その他のトランザクション情報を送信するアドレス・バスを有することが一般的である。加えて、トランザクションに対応するデータがあれば、データ・バスを使用してそれを送信する。トランザクションに対してキャッシュ・コヒーレンシが実現される場合は、コミュニケータに実装されたコヒーレンシ方式に従ってコヒーレンシ状態を維持するために、応答インターフェースが設けられる。アドレス・バスとデータ・バスの帯域幅はいくらか制限される。というのは、一度につき、アドレス・バス上では１つのアドレス転送しか送信することができず、データ・バス上では１つのデータ転送しか送信することができないからである。２つ以上の転送を並行して行うことができるとしても、バス構造は並列性を許可しない。加えて、各コミュニケータがバスに結合されてバスのドライバに容量性負荷を与えるので、バスは電力消費が高い傾向がある。
【０００４】
しばしば使用される別の相互接続は、クロスバと呼ばれるものである。クロスバは通常、各送信側コミュニケータが任意の受信側コミュニケータと通信できるようにするとともに、並行して、他の任意の送信側コミュニケータが他の任意の受信側コミュニケータと通信できるようにする。しかし、送信側と受信側との間における任意の１組の同時接続を可能にするためにクロスバ中で必要とされる回路は、しばしば高い電力消費につながる。
【課題を解決するための手段】
【０００５】
一実施態様では、装置は、第１エージェント、第２エージェント、第３エージェント、第４エージェント、相互接続を備える。第１から第４までの各エージェントは相互接続に結合され、相互接続は、その相互接続に結合されたエージェント間で通信パスを形成するように切換え可能な複数のセグメントを備える。複数のセグメントのうちの第１セグメントは、第１エージェントから第２エージェントへの第１通信パスに含まれ、また第３エージェントから第４エージェントへの第２通信パスにも含まれる。
【０００６】
別の実施態様では、装置は、相互接続に結合された複数のエージェントを備える。相互接続は、複数のセグメントを備え、かつ複数の選択回路を備え、複数のセグメントはそれぞれ、複数の選択回路のうちのそれぞれの選択回路によって駆動される。少なくとも１つの選択回路は、複数のセグメントのうちの少なくとも１つと、複数のエージェントのうちの少なくとも１つからの出力とを、入力として有する。複数のエージェントのうちの第１エージェントから、複数のエージェントのうちの第２エージェントへの通信パスは、第１エージェントの出力を第２エージェントの入力に結合するように複数の選択回路のうちの１つ又は複数を構成することによって確立される。
【０００７】
さらに別の実施態様では、装置が、相互接続に結合された複数のエージェントを備えている。相互接続は、複数のセグメントを備え、かつ複数のエージェント間で複数のセグメント上の通信パスを確立するように構成可能な複数の選択回路を備える。アービタが、複数のエージェントと相互接続とに結合され、かつ相互接続を使用する要求を複数のエージェントから受け取るように結合される。各要求元エージェントは、要求の宛先エージェントを識別するように構成され、アービタは、複数のセグメントのうちの１つ又は複数を介した、要求元エージェントから宛先エージェントへの通信パスを、各要求について相互接続上で決定するように構成される。アービタは、対応する通信パス中の各セグメントが利用可能であるような要求のサブセット間で、調停するように構成される。
【発明を実施するための最良の形態】
【０００８】
以下の詳細な記述では、添付の図面を参照する。
【０００９】
本発明は様々な修正及び代替形態が可能だが、本発明の具体的な実施形態を、例として図面に示し、本明細書に詳細に述べる。しかし、図面及びそれに対する詳細な記述は、開示する具体的な形態に本発明を限定するものとはせず、反対に、添付の特許請求の範囲で定義される本発明の趣旨及び範囲に含まれるすべての修正、均等物、代替をカバーするものとすることを理解されたい。
【００１０】
ここで図１に目を向けると、システム１０の一実施形態のブロック図が示されている。図示の実施形態では、システム１０は、エージェント１２Ａ〜１２Ｄなど複数のエージェントを含む。システムはまた、アドレス／応答相互接続１６、データ相互接続１８、データ・アービタ１４も含む。エージェント１２Ａ〜１２Ｄは、データ・アービタ１４及びデータ相互接続１８に結合される。加えて、エージェント１２Ａ〜１２Ｄは、アドレス／応答相互接続１６にも結合される。データ・アービタ１４はさらに、データ相互接続１８に結合される。一実施形態では、システム１０は単一の集積回路チップ上に統合される。他の実施形態では、システム１０の様々なコンポーネントは、別々の集積回路上に実装される。様々な実施形態で、任意のレベルの統合を用いることができる。
【００１１】
エージェント１２Ａ〜１２Ｄの少なくともいくつかは、システム１０中の他のエージェント１２Ａ〜１２Ｄと通信するためのトランザクションを開始するように構成される。トランザクションは、アドレス／応答相互接続１６上のアドレス・フェーズと、データ相互接続１８上のデータ・フェーズとを含む。コヒーレント・トランザクションは、アドレス／応答相互接続１６上の応答フェーズをも含む。
【００１２】
アドレス／応答相互接続１６は、任意の通信媒体からなる。例えば、一実施形態では、アドレス／応答相互接続１６を、ソース・エージェント間で調停することができる。集中型の調停方式を使用することができ、この方式では、ソース・エージェントがアドレス・フェーズ要求（トランザクションのアドレスやコマンドなどを含む）を集中型アービタに送信し、集中型アービタは、要求を待ち行列に入れ、これらの要求間で調停し、勝ちトランザクションをアドレス／応答相互接続１６上で送信する。他の実施形態は、他の任意の望ましい通信媒体を使用することができる。
【００１３】
エージェント１２Ａ〜１２Ｄは、トランザクションのデータ・フェーズを実施するために、同様にデータ相互接続１８の使用についても調停する。エージェント１２Ａ〜１２Ｄは、データ相互接続１８を求める要求を、データ・アービタ１４に信号で伝えることができ、データ・アービタ１４は、要求間で調停し、調停勝者を選択する。データ・アービタ１４は、勝ちエージェント１２Ａ〜１２Ｄに信号で伝えることができ、勝ちエージェント１２Ａ〜１２Ｄは、認可に応答して、データ相互接続１８上でデータを駆動する。任意の調停方式を使用することができる（例えば、優先度、ラウンドロビン、重み付きラウンドロビン、優先度と様々なラウンドロビン方式との組合せなど）。
【００１４】
一実施形態では、データ相互接続１８は部分的にポピュレートされたクロスバを含む。データ相互接続１８は、データ転送のためにいくらかの量の同時性（並列性）をサポートすることはできるが、フル・クロスバを実装することはできない。いくつかの実施形態では、広帯域幅と低電力との組合せをサポートすることができ、その場合、データ相互接続１８に備わる回路が削減される。一実装形態では、データ相互接続１８は、マルチプレクサ（ｍｕｘ）などの選択回路によって結合された１組のセグメントを備える。データ・アービタ１４は、ｍｕｘを制御して、セグメントのいくつかを介した、あるエージェント１２Ａ〜１２Ｄから別のエージェント１２Ａ〜１２Ｄへの通信パスを確立する。セグメントのいくつかは、異なる通信パスによって共有され、したがって、通信パスのうちの１つが使用されている場合は、確立された通信パス上のデータ・フェーズが完了するまで、共有セグメントを使用する他の通信パスを確立することはできない。データ・アービタ１４は、要求された各データ・フェーズごとに通信パスを決定するように構成され、希望する通信パスの少なくとも１つのセグメントが使用中であるパスへの要求をマスクすることができる。データ相互接続１８の一実施形態についての追加の詳細は、図２〜７に関して後で提供する。
【００１５】
エージェント１２Ａ〜１２Ｄのうちの１つ又は複数は、システム１０中でトランザクションを開始するように構成される。このようなエージェントを、ソース・エージェントと呼ぶ。例示的なソース・エージェントは、プロセッサ、外部のライト・バック・キャッシュ（修正済みの排除されるキャッシュ・ブロックをメモリに書き込むための書込みトランザクションのソースとなる）、入出力（Ｉ／Ｏ）ブリッジ（それらが結合されている周辺デバイスに代わってトランザクションのソースとなる）を備えることができる。他のエージェントは、トランザクションのソースとなることはできないが、トランザクションのターゲット（すなわち、トランザクションを受け取り、トランザクションのデータを担うエージェント）になることができる。このようなエージェントは、ターゲット・エージェントと呼ばれる。読取りトランザクションでは、ターゲット・エージェントは、別のエージェントがデータのより新しい（修正された）キャッシュ済みコピーを持っていない限り、データを供給する。書込みトランザクションでは、ターゲット・エージェントは、ソース・エージェントによって供給された書込みデータをシンクする。ターゲット・エージェントは、例えばメモリ・コントローラ及びＩ／Ｏブリッジを含む。したがって、読取りトランザクションでは、ターゲット・エージェントが、データ相互接続１８に対して調停し、データ相互接続１８上でデータを送信する。書込みトランザクションでは、ソース・エージェントが、データ相互接続１８に対して調停し、データ相互接続１８上でデータを送信する。いくつかのエージェントは、いくつかのトランザクションでソース・エージェントとなり、かつ他のトランザクションでターゲット・エージェントとなることができる。例示的なソース／ターゲット・エージェントは、前述のＩ／Ｏブリッジ又は外部キャッシュを含む。一般に、エージェントは、アドレス／応答相互接続１６やデータ相互接続１８上でのトランザクションを介して通信するように構成された任意の回路を含む。本明細書では、セグメントは、ワイヤなど１つ又は複数の導体のことを言う。複数の導体がセグメントに含まれる場合、導体は並列に駆動されて、導体の一方の端部から他方の端部まで多ビット値を搬送することができる。例えば、一実施形態では、データ相互接続１８は、１クロック・サイクルごとに１６バイトのデータを転送することができる。このような一実施形態では、１２８個の並列駆動型の導体が１つのセグメントを構成する。ある特定の実施形態では、誤り訂正符号（ＥＣＣ）ビット用に、追加の導体を各セグメントに含めることもできる。加えて、コマンド、トランザクションＩＤ、有効信号などを、セグメントの一部として、あるいは別個に、データ相互接続１８上で各エージェント１２Ａ〜１２Ｄに同報通信方式で送信することもできる。
【００１６】
以下の例では、選択回路としてｍｕｘが使用されることに留意されたい。しかし、一般に、２つ又は複数の入力と、２つ又は複数の入力間を選択するための選択制御入力とを受け取る任意の回路を使用して、選択回路を形成することができる。
【００１７】
次に図２に移ると、データ相互接続１８の一実施形態のブロック図がより詳細に示されている。図２には、エージェント１２Ａ〜１２Ｄと共に、追加のエージェント１２Ｅが示されている。様々な実施形態で、任意の数のエージェントを含めることができる。エージェント１２Ｅは、他のエージェント１２Ａ〜１２Ｄと同様にしてデータ・アービタ１４に結合される（図２には示さず）。図示の実施形態では、データ相互接続１８は、１組のｍｕｘ２０Ａ〜２０Ｉを備える。ｍｕｘ２０Ａ〜２０Ｅは、図２で、エージェント１２Ａ〜１２Ｅのデータ入力をそれぞれ駆動するように結合される。ｍｕｘ２０Ｆ〜２０Ｉはそれぞれ、データ相互接続１８のセグメント（例えば図２に示すセグメント２２Ａ〜２２Ｄ）を駆動するように結合される。ｍｕｘ２０Ａ〜２０Ｉへの各入力は、セグメント２２Ａ〜２２Ｄであるか、あるいはエージェント１２Ａ〜１２Ｄのうちの１つのデータ出力である。具体的には、図示の実施形態では、ｍｕｘ入力は以下の通りである。すなわち、ｍｕｘ２０Ａは、エージェント１２Ｃのデータ出力とセグメント２２Ｃとを入力として有する。ｍｕｘ２０Ｂは、セグメント２２Ａと２２Ｄを入力として有する。ｍｕｘ２０Ｃは、エージェント１２Ａのデータ出力と、セグメント２２Ｃとを入力として有する。ｍｕｘ２０Ｄは、エージェント１２Ｅのデータ出力と、セグメント２２Ｂとを入力として有する。ｍｕｘ２０Ｅは、エージェント１２Ｄのデータ出力と、セグメント２２Ｂとを入力として有する。ｍｕｘ２０Ｆは、エージェント１２Ｄ〜１２Ｅのデータ出力を入力として有する。ｍｕｘ２０Ｇは、エージェント１２Ｂのデータ出力と、セグメント２２Ｄとを入力として有する。ｍｕｘ２０Ｈは、エージェント１２Ａと１２Ｃのデータ出力を入力として有する。ｍｕｘ２０Ｉは、エージェント１２Ｂのデータ出力と、セグメント２２Ａとを入力として有する。各ｍｕｘ２０Ａ〜２０Ｉは、その入力間を選択するｍｕｘ制御を有する。データ・アービタ１４は、データ相互接続１８上で通信パスを確立するためのｍｕｘ制御を提供する。図を簡潔にするために、個々のｍｕｘ２０Ａ〜２０Ｉに対する個々の制御は、図２には示していない。
【００１８】
データ・アービタ１４は、ｍｕｘ２０Ａ〜２０Ｉを制御して、データ・アービタ１４によって決定された調停勝者（「勝ちエージェント」）であるエージェント１２Ａ〜１２Ｅから、勝ちエージェント１２Ａ〜１２Ｅによって駆動されるデータを受け取ることになる宛先エージェント１２Ａ〜１２Ｅへの通信パスを、データ相互接続１８上で確立する。すなわち、データ・アービタ１４は、ｍｕｘ２０Ａ〜２０Ｉを制御して、勝ちエージェントのデータ出力を、宛先エージェントのデータ入力に結合する。一実施形態では、各要求元エージェントは、データ転送のために、要求と共に、宛先エージェントをデータ・アービタ１４に対して識別する。例えば、読取りオペレーションでは、要求元エージェントは、トランザクションのアドレス・フェーズでソース・エージェントによって提供されたトランザクションＩＤから、エージェントＩＤを提供することができる。書込みオペレーションでは、ソース・エージェントに宛先エージェントの指示を提供することができる（例えば、図１に関して上述した集中型実施形態ではアドレス・アービタによって、又は、ターゲット・エージェントによって）。ソース・エージェントは、要求と共に、宛先エージェントＩＤをデータ・アービタ１４に提供する。
【００１９】
例えば、図２の実施形態では、エージェント１２Ａからエージェント１２Ｄへの通信パスは、ｍｕｘ２０Ｈを制御してエージェント１２Ａのデータ出力を選択し、ｍｕｘ２０Ｉを制御してセグメント２２Ａを選択し、ｍｕｘ２０Ｄを制御してセグメント２２Ｂを選択することによって確立することができる。別の例として、エージェント１２Ｂからエージェント１２Ｃへの通信パスは、ｍｕｘ２０Ｇを制御してエージェント１２Ｂからのデータ出力を選択し、ｍｕｘ２０Ｃを制御してセグメント２２Ｃを選択することによって確立することができる。
【００２０】
データ相互接続１８は、部分的にポピュレートされたクロスバと見なすことができる。すなわち、各エージェント１２Ａ〜１２Ｅは、そのデータ出力上でデータを駆動し、データ相互接続１８は、１つ又は複数のセグメントを介してこのデータを宛先エージェント１２Ａ〜１２Ｅにルーティングする。データ相互接続１８は、部分的な並列性を提供することはできるが、フル・クロスバの完全な並列性をもたらすことはできない。例えば、図２の実施形態では、エージェント１２Ｂがエージェント１２Ｄにデータを送信している場合、エージェント１２Ａと１２Ｃは、並行してエージェント１２Ｅにデータを送信することはできない（というのは、セグメント２２Ｂは、エージェント１２Ｂからエージェント１２Ｄへの通信に使用され、またエージェント１２Ａと１２Ｃからエージェント１２Ｅへの通信にも使用されるからである）。しかし、エージェント１２Ｂがエージェント１２Ｄにデータを送信するのと並行して、エージェント１２Ｅは、エージェント１２Ａ又は１２Ｃに（セグメント２２Ｃ〜２２Ｄを介して）データを送信することができる。
【００２１】
データ相互接続１８上で提供される並列性の量は、実施形態ごとに変えられる。一般に、データ相互接続１８に備わるセグメントとｍｕｘの数を増加させることによって、並列性を増大させることができる。ｍｕｘとセグメントを任意の望ましい方式で追加して、所与のエージェントと別の所与のエージェントとの間、所与のエージェントと他の任意のエージェントとの間、又は所与のエージェントと他のエージェントのサブセットとの間に、追加のパスを形成することができる。提供される並列性の量は、所望の性能レベル（例えば大域幅の増大から見て）によって、かつ／又は様々な作業負荷の下で予想される同時トラフィックによって、決定される。例えば、一実施形態は、システム１０は、２つのプロセッサ、Ｌ２キャッシュ、Ｉ／Ｏブリッジ、２つのメモリ・コントローラを備えるとする。この実施形態では、少なくとも以下の並列性を提供することが望ましい。すなわち、（ｉ）プロセッサがＬ２キャッシュにデータを送信している間、Ｌ２キャッシュはメモリ・コントローラにデータを送信することができる。（ii）Ｌ２キャッシュが一方のプロセッサにデータを送信している間、メモリ・コントローラは他方のプロセッサにデータを送信することができる。（iii）Ｌ２キャッシュがＩ／Ｏブリッジにデータを送信している間、メモリ・コントローラはプロセッサにデータを送信することができる。
【００２２】
図示の実施形態では、少なくともいくつかのセグメント２２Ａ〜２２Ｄは、異なる要求元エージェントから異なる受信側エージェントへの通信パス間で共用される。例えば、セグメント２２Ｂは、エージェント１２Ａ〜１２Ｃのいずれかからエージェント１２Ｄ〜１２Ｅのどちらかへのパス間で共用される。すなわち、いずれかのエージェント１２Ａ〜１２Ｃからエージェント１２Ｄへの通信パスは、セグメント２２Ｄを使用する。加えて、いずれかのエージェント１２Ａ〜１２Ｃからエージェント１２Ｅへの通信パスも、セグメント２２Ｂを使用する。同様に、セグメント２２Ａは、エージェント１２Ａと１２Ｃのどちらかからエージェント１２Ｂ、１２Ｅ、１２Ｄのいずれかへの通信パス中で使用される。セグメント２２Ａは、エージェント１２Ｂによって使用されない。異なる要求元エージェントから異なる宛先エージェントへの通信パス間でセグメントを共用することにより、いくつかの実施形態では、データ相互接続１８を実装するのに使用される配線の量を低減することができ、これにより、配線を単純化し電力消費全体を削減することができる。
【００２３】
データ相互接続１８は、分散型クロスバとすることができる。ｍｕｘ２０Ａ〜２０Ｉを、データ相互接続１８によって横断される物理的距離に沿って物理的に分散させる。例えば、エージェント１２Ａ〜１２Ｅのデータ出力を入力として有するｍｕｘは、物理的にそのエージェントの近くに位置する。したがって、ｍｕｘ２０Ｆは、物理的にエージェント１２Ｅと１２Ｄの近くに位置し、ｍｕｘ２０Ｇと２０Ｉは、物理的にエージェント１２Ｂの近くに位置し、ｍｕｘ２０Ｈは、物理的にエージェント１２Ａと１２Ｃの近くに位置する。エージェント１２Ａ〜１２Ｅのデータ入力を駆動するｍｕｘは、物理的にそのエージェントの近くに位置する。例えば、ｍｕｘ２０Ａ〜２０Ｅは、物理的にそれぞれエージェント１２Ａ〜１２Ｅの近くに位置する。セグメント２２Ａ〜２２Ｄは、図２に示すように、データを、ソースｍｕｘからデータ相互接続１８の物理的距離の一部を通って次のｍｕｘに搬送する。
【００２４】
ｍｕｘ２０Ａ〜２０Ｉは、階層型の多重化構造とすることができる。従来のクロスバでは、１組の入力ｍｕｘがクロスバへの入力から選択し、追加のｍｕｘを使用して入力ｍｕｘの出力間で選択して、所与の宛先へのクロスバ出力を生成する。ｍｕｘ２０Ａ〜２０Ｉの少なくともいくつかは、ｍｕｘ出力（セグメント２２Ａ〜２２Ｄ）と、エージェントからの出力との間を選択する。例えば、図２の実施形態では、ｍｕｘ２０Ｉは、セグメント２２Ａ（前のｍｕｘ２０Ｈの出力）と、エージェント１２Ｂからの出力との間を選択する。同様に、ｍｕｘ２０Ｄ〜２０Ｅは、セグメント２２Ｂと、エージェント１２Ｅ、１２Ｄの出力との間をそれぞれ選択する。
【００２５】
データ相互接続１８はまた、性質上、方向性を持たせることができる。すなわち、データは、データ相互接続１８上で、所与のエージェント１２Ａ〜１２Ｅから宛先エージェントの方向に駆動される（他の方向には駆動されない）。ｍｕｘ２０Ｆ〜２０Ｇとセグメント２２Ｃ〜２２Ｄは、左へのデータ送信を（図２に示すように）可能にし、ｍｕｘ２０Ｈ〜２０Ｉとセグメント２２Ａ〜２２Ｂは、右へのデータ送信を（図２に示すように）可能にする。すなわち、セグメント２２Ａ〜２２Ｄの重複しないサブセットが、各方向の通信に使用される。例えば、エージェント１２Ｂがエージェント１２Ａ又は１２Ｃにデータを送信している場合、データはｍｕｘ２２Ｃを介し、セグメント２２Ｃ上を経て、ｍｕｘ２０Ａ又は２０Ｃを介して駆動される。同様に、エージェント１２Ｂがエージェント１２Ｅ又は１２Ｄにデータを送信している場合、データはｍｕｘ２０Ｉを介し、セグメント２２Ｂ上を経て、ｍｕｘ２０Ｅ又は２０Ｄを介して駆動される。データは、データを要求元エージェントから宛先エージェントに移すのに使用される、データ相互接続１８の一部のみの上で、駆動することができる。例えば、エージェント１２Ｂからのデータは、セグメント２２Ｄ又は２２Ａ上では駆動されない。
【００２６】
他の実施形態では、追加エージェントを含めることができることに留意されたい。各追加エージェントは、ｍｕｘ２０Ｇと２０Ｉと同様の追加ｍｕｘと、これらのｍｕｘによって駆動される追加セグメントとを使用してサポートすることができる。
【００２７】
いくつかの実施形態では、データ相互接続１８はパイプライン化することができる。例えば、データ相互接続１８の一方の端部から他方の端部へのフライトタイムが、データ相互接続１８に使用されるクロックのクロック・サイクルを超える場合は、パイプライン化が望ましい。フロップ又は他のクロックド記憶デバイスを、所望のようにデータ相互接続１８に挿入して、相互接続をパイプライン化することができる。
【００２８】
図示の実施形態では、データ・アービタ１４がｍｕｘ２０Ａ〜２０Ｉをｍｕｘ制御するものとして示されているが、ｍｕｘ制御を生成する回路は、データ・アービタ１４とは別であってもよいことに留意されたい。この回路は、勝ちエージェントへの認可と、対応する宛先エージェントとを通知されて、ｍｕｘを制御して、勝ちエージェントから宛先エージェントへの通信パスを確立する。
【００２９】
図２の実施形態では２つの入力ｍｕｘが示されているが、他の実施形態は、３つ以上の入力を有するｍｕｘを含むことができることに留意されたい。このようなｍｕｘは、入力として、２つ以上のセグメント、及び／又は、エージェントの２つ以上のデータ出力に結合される。
【００３０】
次に図３に移ると、データ相互接続１８に対する調停を実施するデータ・アービタ１４の一実施形態のオペレーションを説明するフローチャートが示されている。理解しやすいように図３ではブロックが特定の順序で示されているが、他の順序を用いることもできる。さらに、ブロックは、データ・アービタ１４中の組合せ論理回路によって並行して実施することもできる。ブロック、フローチャートの各部分、又はフローチャート全体は、望むなら複数のクロック・サイクルにわたってパイプライン化することができる。
【００３１】
アサートされた各要求につき、データ・アービタ１４は、要求元エージェントから宛先エージェントへのパスを決定する（ブロック３０）。各要求元エージェントはそれ自体の要求信号を有し、したがってデータ・アービタ１４は、対応する要求信号のアサートに基づいて要求元エージェントを識別する。要求元エージェントはまた、宛先エージェントの識別を提供する。データ・アービタは、対応する通信パスの少なくとも１つのセグメントが要求元エージェントのための通信パスへの割振りに利用不可能であるような各要求を、マスクする（ブロック３２）。したがって、通信パスを確立することのできる要求のみが、調停において考慮される。あるセグメントが、別のデータ転送のための通信パス中で使用されるように割り振られている場合は、このセグメントは利用可能となることはできない。
【００３２】
図２の実施形態では、所与の要求元エージェントから所与の宛先エージェントへのパスは１つである。追加の並列性のために、追加のセグメントとｍｕｘとが設けられる実施形態では、所与の要求元エージェントから所与の宛先エージェントへの複数のパスが可能な場合、データ・アービタ１４は、通信パスの決定において、可能な各パスを考慮する。データ・アービタ１４は、可能なら、すべてのセグメントが利用可能である通信パスを調停の目的で選択する。
【００３３】
マスクされていないアサート済みの要求が少なくとも１つある場合は（判定ブロック３４、「Ｙｅｓ」肢）、データ・アービタ１４は、勝ちエージェントを選択し、勝ちエージェントへの認可をアサートする（ブロック３６）。勝ちエージェントは、要求元エージェントのサブセットから選択され、サブセットのメンバは、要求元エージェントから宛先エージェントへの通信パス中の少なくとも１つのセグメントがデータ転送に利用不可能であるためにそのアサート済み要求信号がマスクされているということのない、要求元エージェントである。勝ちエージェントは、データ・アービタ１４によって実施される調停方式を用いて決定される。データ・アービタ１４はまた、後続の調停で通信パスを考慮するために、勝ちエージェントからその宛先エージェントへの通信パス中で使用されるセグメントを「ビジー」（又は「利用不可能」）として記録する（ブロック３８）。例えば、データ・アービタ１４は、調停の目的で、各セグメントにつき、セグメントがビジー又は利用可能であるかどうかを示す１ビットを維持する。データ・アービタ１４は、ｍｕｘ２０Ａ〜２０Ｉに対するｍｕｘ制御を生成して、勝ちエージェントからその宛先エージェントへの通信パスを確立する（ブロック４０）。いくつかの実施形態では、通信パスの実際の確立は、勝ちエージェントの決定から遅延させることができる。例えば、一実施形態では、勝ちエージェントは、認可を受け取ってから２クロック・サイクル後にそのデータの転送を開始する。通信パスの確立も同様に遅延させることができる。別法として、認可とデータ転送の開始との間のクロック・サイクルを用いて、通信パスをセットアップすることもできる。アサートされておりマスクされていない要求がない場合は（判定ブロック３４、「Ｎｏ」肢）、勝ちエージェントを宣言することはできない。
【００３４】
一実施形態では、データ・アービタ１４は、クロック・サイクルごとに１つの要求元エージェントを認可する。独立した通信パスが利用可能な場合（すなわち共用セグメントなし）、データ転送の同時性は、後続のクロック・サイクルでデータ・アービタ１４によってアサートされる追加の認可によって生じる。他の実施形態では、データ・アービタ１４は、クロック・サイクルごとに複数の認可を発行するように構成することもできる。
【００３５】
次に図４に移ると、データ相互接続１８上でのデータ転送の終了に応答したデータ・アービタ１４の一実施形態のオペレーションを説明するフローチャートが示されている。いくつかの実施形態では、データ・アービタ１４は、データ転送が所与のクロック・サイクル上で完了するであろうことをあらかじめ認識して、データ転送がこの所与のクロック・サイクル上で終了するであろうことを検出する。例えば、図７に調停インターフェースが示されているが、この調停インターフェースでは、要求元エージェントは、既知の数の連続したクロック・サイクル（例えば、１クロック当たり１６バイトの転送で、６４バイトのキャッシュ・ブロックの転送の場合、４クロック・サイクル）のバーストとして、データ転送が行われるであろうことを示す。このような場合、データ・アービタ１４は、データ転送が後続の転送の開始よりも前に終了するであろうことを検出し、このような検出に応答して、図４に示すオペレーションを実施する。このようなオペレーションは、１つ又は複数のセグメントを共用する通信パスに対する認可のパイプライン化を可能にする。他の場合では、データ・アービタ１４は、有効なデータ転送を追跡して（例えば、データ有効信号がデータ相互接続１８上でのデータの転送を示すことができる）、データ転送の終了を検出する、あるいは、転送元エージェントが、データ転送が終了することをデータ・アービタ１４に信号で伝える。データ転送が終了することをデータ・アービタ１４が検出した場合、データ・アービタ１４は、転送で使用されたセグメントを記録して、通信パスを「ビジーでない」又は「利用可能」として形成する（ブロック５０）。したがって、セグメントは、要求元エージェントの通信パスに割り当てるために利用可能になる。いくつかの実施形態では、データ・アービタ１４はまた、ｍｕｘ２０Ａ〜２０Ｉに対するｍｕｘ制御を生成して、通信パスを、そのデータ・パス上でのデータ転送が終了した後も維持する（例えば、そうすることによって節電できる場合に）。
【００３６】
図５は、データ相互接続１８上の第１の通信パスの例を示す、図２と同様のブロック図である。図５の例では、エージェント１２Ｃからエージェント１２Ｄへの通信パスが確立され、これは図５では破線で示されている。データ・アービタ１４は、ｍｕｘ２０Ｈを制御して、セグメント２２Ａ上へのエージェント１２Ｃのデータ出力を選択する。データ・アービタ１４は、ｍｕｘ２０Ｉを制御して、セグメント２２Ｂ上へのセグメント２２Ａを選択する。データは、ｍｕｘ２０Ｄを制御して、エージェント１２Ｄのデータ入力上へのセグメント２２Ｂを選択する。このようにして、エージェント１２Ｃのデータ出力からｍｕｘ２０Ｈ〜２０Ｉ及び２０Ｄを介しセグメント２２Ａ〜２２Ｂにわたる通信パスが確立される。
【００３７】
図６は、図５に示した第１の通信パスと同時に発生するデータ相互接続１８上の第２の通信パスの例を示す、図２、５と同様のブロック図である。図６の例では、第２の通信パスはエージェント１２Ｅからエージェント１２Ａまでであり、これは図６ではより細かい破線で示されている（第１の通信パスの破線と比較して）。データ・アービタ１４は、ｍｕｘ２０Ｆを制御して、セグメント２２Ｄ上へのエージェント１２Ｅのデータ出力を選択する。データ・アービタ１４は、ｍｕｘ２０Ｇを制御して、セグメント２２Ｃ上へのセグメント２２Ｄを選択する。データは、ｍｕｘ２０Ａを制御して、エージェント１２Ａのデータ入力上へのセグメント２２Ｃを選択する。このようにして、第１の通信パスと同時に発生する、エージェント１２Ｅのデータ出力からｍｕｘ２０Ｆ〜２０Ｇ及び２０Ａを介しセグメント２２Ｃ〜２２Ｄにわたる通信パスが確立される。
【００３８】
次に図７に移ると、データ・アービタ１４の一実施形態に関する例示的な調停インターフェースを示すブロック図が示されている。図示の実施形態では、このインターフェースは、データ・アービタ１４と各エージェントとの間の個々の信号を含む（これらは、図７のエージェント１２Ａ〜１２Ｂなど、各エージェントについて繰り返される）。図示の実施形態では、これらの信号は、要求信号（Ｒｅｑ．）、バースト信号（Ｂｒｓｔ．）、宛先識別子（ＤｅｓｔＩＤ）、認可信号（Ｇｎｔ．）を含む。
【００３９】
各エージェントは、その要求信号をアサートすることによって、データ相互接続１８を要求する。要求信号と同時に、エージェントは、宛先ＩＤを使用して、要求しているデータ転送の宛先エージェントを識別させ、また、バースト信号を使用して、データが連続したクロック・サイクル上でバーストとして転送されることになるか否かも示す。いくつかの実施形態では、データ・アービタ１４は、バースト信号を使用して、いつデータ転送が終了すると予想されるかを決定することができる。他の実施形態では、バースト信号は含まれない場合がある。データ・アービタ１４は、その認可信号をアサートすることによって、調停勝者に認可を信号で伝える。
【００４０】
以上の開示が完全に理解されれば、当業者には多くの変形や修正が明らかになるであろう。特許請求の範囲は、そのようなすべての変形と修正を包含するように解釈されるものとする。
【図面の簡単な説明】
【００４１】
【図１】集積回路の一実施形態のブロック図である。
【図２】図１に示すデータ相互接続の一実施形態のブロック図である。
【図３】データ相互接続の調停に関する、図１及び２に示すデータ・アービタの一実施形態のオペレーションを示すフローチャートである。
【図４】データ転送が完了するときの、図１及び２に示すデータ・アービタの一実施形態のオペレーションを示すフローチャートである。
【図５】データ相互接続上で構成される第１の通信パスの一例を示すブロック図である。
【図６】第１の通信パスと同時に発生する、データ相互接続上で構成される第２の通信パスの一例を示すブロック図である。
【図７】データ・アービタに対する調停インターフェースの一実施形態を示すブロック図である。
【図１】
2009505241.tif 000003
【図２】
2009505241.tif 000004
【図３】
2009505241.tif 000005
【図４】
2009505241.tif 000006
【図５】
2009505241.tif 000007
【図６】
2009505241.tif 000008
【図７】
2009505241.tif 000009
【手続補正書】
【提出日】平成20年4月14日(2008.4.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のエージェントと、
前記複数のエージェントに結合された相互接続とを備える装置であって、前記相互接続は、複数のセグメントと、前記複数のエージェント間で前記複数のセグメント上で通信パスを確立するように構成可能な複数の選択回路とを備え、装置はさらに、
前記複数のエージェント及び前記相互接続に結合されたアービタを備え、前記アービタは、前記相互接続を使用する要求を前記複数のエージェントから受け取るように結合され、各要求元エージェントは、前記要求の宛先エージェントを識別するように構成され、前記アービタは、前記複数のセグメントのうちの１つ又は複数を介した、前記要求元エージェントから前記宛先エージェントへの通信パスを、各要求について前記相互接続上で決定するように構成され、前記アービタは、対応する通信パス中の各セグメントが利用可能である要求のサブセットの間で調停するように構成された装置。
【請求項２】
前記アービタは、前記複数のエージェントのうちの第１エージェントを調停勝者として選択するように構成され、前記アービタは、前記複数の選択回路を制御することによって、前記第１エージェントから前記複数のエージェントのうちの宛先エージェントへの通信パスを確立するように構成された請求項１に記載の装置。
【請求項３】
前記複数の選択回路のうちの各選択回路は、前記複数のセグメントのうちの１つを駆動するように構成された請求項１に記載の装置。
【請求項４】
各選択回路は、入力として、前記複数のセグメントのうちの少なくとも１つと、前記複数のエージェントのうちの少なくとも１つのエージェントの出力とに結合された請求項３に記載の装置。
【請求項５】
少なくとも１つのセグメントが、完了していない通信のための異なる通信パスに含まれていれば、その少なくとも１つのセグメントは利用可能でない請求項１に記載の装置。
【請求項６】
前記複数のセグメントはそれぞれ、前記複数の選択回路のうちのそれぞれの選択回路によって駆動され、少なくとも１つの選択回路は、前記複数のセグメントのうちの少なくとも１つと、前記複数のエージェントのうちの少なくとも１つからの出力とを入力として有し、前記複数のエージェントのうちの第１エージェントから、前記複数のエージェントのうちの第２エージェントへの通信パスは、前記複数の選択回路のうちの１つ又は複数が、前記第１エージェントの出力を前記第２エージェントの入力に結合するように構成することによって確立される請求項１記載の装置。
【請求項７】
前記複数のセグメントの第１サブセットは、前記複数のエージェント間で第１方向の通信を運び、前記複数のセグメントの第２サブセットは、前記複数のエージェント間で第２方向の通信を運び、前記サブセットどうしは重複せず、要求元エージェントから宛先エージェントへの通信は、要求元エージェントから宛先エージェントへ駆動される請求項６記載の装置。
【請求項８】
前記複数の選択回路は、前記相互接続内で物理的に分散されている請求項６に記載の装置。
【請求項９】
相互接続に結合されている複数のエージェントからその相互接続を使用するための要求を受け取るステップであって、前記相互接続は、複数のセグメントと、前記複数のエージェント間で前記複数のセグメント上で通信パスを確立するように構成可能な複数の選択回路とを備え、前記各要求元エージェントは要求に対する宛先エージェントを識別する、前記ステップと、  
前記要求元エージェントから宛先エージェントへ、１つ以上の前記セグメントを介して、各要求について相互接続上で通信パスを決定するステップと、
対応する通信パス中の各セグメントを利用可能である要求のサブセットの間で調停するステップと
を含む方法。
【請求項１０】
調停の勝者として、前記複数のエージェントの第１のエージェントを選択するステップと、
前記第１のエージェントから、複数のエージェントの中の前記第１のエージェントによって識別された宛先エージェントへの通信パスを確立するステップと
をさらに有する請求項９記載の方法。
【国際調査報告】
2009505241.tif 000010
2009505241.tif 000011