説明

部分的にポピュレートされる階層型クロスバ

様々な実施形態で、装置は、複数のエージェントと相互接続を備える。一実施形態では、複数のエージェントは第1から第4までのエージェントを含む。相互接続は、エージェント間で通信パスを形成するように切換え可能な(例えば複数の選択回路を使用して)複数のセグメントを備え、第1セグメントは、第1エージェントから第2エージェントへの第1通信パスに含まれ、また第3エージェントから第4エージェントへの第2通信パスにも含まれる。別の実施形態では、各セグメントは選択回路によって駆動される。少なくとも1つの選択回路は、少なくとも1つのセグメントと、少なくとも1つのエージェントからの出力とを、入力として有する。さらに別の実施形態では、アービタが、セグメントを介した宛先エージェントへの通信パスを、各要求に対して相互接続上で決定するように構成される。アービタは、対応する通信パス中の各セグメントが利用可能であるような要求のサブセット間で、調停するように構成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、集積回路の分野に関し、より詳細には、集積回路内/集積回路間での相互接続に関する。
【背景技術】
【0002】
システム中の集積回路、又は集積回路内の様々な回路は、通常、相互と通信する必要がある。多くの場合、システム中/集積回路中のコミュニケータは、メモリ・マップ中の様々なアドレスを介して通信する。すなわち、様々なコミュニケータは、メモリ・マップ内にアドレスが割り当てられ、アドレスに対する読取り/書込みを用いて通信が行われる。通常、このようなコミュニケータは、コミュニケータ間の相互接続を介して送信される読取り/書込みトランザクションを使用する。
【発明の開示】
【発明が解決しようとする課題】
【0003】
例えば、トランザクションを開始するために、アドレス、コマンド、その他のトランザクション情報を送信するアドレス・バスを有することが一般的である。加えて、トランザクションに対応するデータがあれば、データ・バスを使用してそれを送信する。トランザクションに対してキャッシュ・コヒーレンシが実現される場合は、コミュニケータに実装されたコヒーレンシ方式に従ってコヒーレンシ状態を維持するために、応答インターフェースが設けられる。アドレス・バスとデータ・バスの帯域幅はいくらか制限される。というのは、一度につき、アドレス・バス上では1つのアドレス転送しか送信することができず、データ・バス上では1つのデータ転送しか送信することができないからである。2つ以上の転送を並行して行うことができるとしても、バス構造は並列性を許可しない。加えて、各コミュニケータがバスに結合されてバスのドライバに容量性負荷を与えるので、バスは電力消費が高い傾向がある。
【0004】
しばしば使用される別の相互接続は、クロスバと呼ばれるものである。クロスバは通常、各送信側コミュニケータが任意の受信側コミュニケータと通信できるようにするとともに、並行して、他の任意の送信側コミュニケータが他の任意の受信側コミュニケータと通信できるようにする。しかし、送信側と受信側との間における任意の1組の同時接続を可能にするためにクロスバ中で必要とされる回路は、しばしば高い電力消費につながる。
【課題を解決するための手段】
【0005】
一実施態様では、装置は、第1エージェント、第2エージェント、第3エージェント、第4エージェント、相互接続を備える。第1から第4までの各エージェントは相互接続に結合され、相互接続は、その相互接続に結合されたエージェント間で通信パスを形成するように切換え可能な複数のセグメントを備える。複数のセグメントのうちの第1セグメントは、第1エージェントから第2エージェントへの第1通信パスに含まれ、また第3エージェントから第4エージェントへの第2通信パスにも含まれる。
【0006】
別の実施態様では、装置は、相互接続に結合された複数のエージェントを備える。相互接続は、複数のセグメントを備え、かつ複数の選択回路を備え、複数のセグメントはそれぞれ、複数の選択回路のうちのそれぞれの選択回路によって駆動される。少なくとも1つの選択回路は、複数のセグメントのうちの少なくとも1つと、複数のエージェントのうちの少なくとも1つからの出力とを、入力として有する。複数のエージェントのうちの第1エージェントから、複数のエージェントのうちの第2エージェントへの通信パスは、第1エージェントの出力を第2エージェントの入力に結合するように複数の選択回路のうちの1つ又は複数を構成することによって確立される。
【0007】
さらに別の実施態様では、装置が、相互接続に結合された複数のエージェントを備えている。相互接続は、複数のセグメントを備え、かつ複数のエージェント間で複数のセグメント上の通信パスを確立するように構成可能な複数の選択回路を備える。アービタが、複数のエージェントと相互接続とに結合され、かつ相互接続を使用する要求を複数のエージェントから受け取るように結合される。各要求元エージェントは、要求の宛先エージェントを識別するように構成され、アービタは、複数のセグメントのうちの1つ又は複数を介した、要求元エージェントから宛先エージェントへの通信パスを、各要求について相互接続上で決定するように構成される。アービタは、対応する通信パス中の各セグメントが利用可能であるような要求のサブセット間で、調停するように構成される。
【発明を実施するための最良の形態】
【0008】
以下の詳細な記述では、添付の図面を参照する。
【0009】
本発明は様々な修正及び代替形態が可能だが、本発明の具体的な実施形態を、例として図面に示し、本明細書に詳細に述べる。しかし、図面及びそれに対する詳細な記述は、開示する具体的な形態に本発明を限定するものとはせず、反対に、添付の特許請求の範囲で定義される本発明の趣旨及び範囲に含まれるすべての修正、均等物、代替をカバーするものとすることを理解されたい。
【0010】
ここで図1に目を向けると、システム10の一実施形態のブロック図が示されている。図示の実施形態では、システム10は、エージェント12A〜12Dなど複数のエージェントを含む。システムはまた、アドレス/応答相互接続16、データ相互接続18、データ・アービタ14も含む。エージェント12A〜12Dは、データ・アービタ14及びデータ相互接続18に結合される。加えて、エージェント12A〜12Dは、アドレス/応答相互接続16にも結合される。データ・アービタ14はさらに、データ相互接続18に結合される。一実施形態では、システム10は単一の集積回路チップ上に統合される。他の実施形態では、システム10の様々なコンポーネントは、別々の集積回路上に実装される。様々な実施形態で、任意のレベルの統合を用いることができる。
【0011】
エージェント12A〜12Dの少なくともいくつかは、システム10中の他のエージェント12A〜12Dと通信するためのトランザクションを開始するように構成される。トランザクションは、アドレス/応答相互接続16上のアドレス・フェーズと、データ相互接続18上のデータ・フェーズとを含む。コヒーレント・トランザクションは、アドレス/応答相互接続16上の応答フェーズをも含む。
【0012】
アドレス/応答相互接続16は、任意の通信媒体からなる。例えば、一実施形態では、アドレス/応答相互接続16を、ソース・エージェント間で調停することができる。集中型の調停方式を使用することができ、この方式では、ソース・エージェントがアドレス・フェーズ要求(トランザクションのアドレスやコマンドなどを含む)を集中型アービタに送信し、集中型アービタは、要求を待ち行列に入れ、これらの要求間で調停し、勝ちトランザクションをアドレス/応答相互接続16上で送信する。他の実施形態は、他の任意の望ましい通信媒体を使用することができる。
【0013】
エージェント12A〜12Dは、トランザクションのデータ・フェーズを実施するために、同様にデータ相互接続18の使用についても調停する。エージェント12A〜12Dは、データ相互接続18を求める要求を、データ・アービタ14に信号で伝えることができ、データ・アービタ14は、要求間で調停し、調停勝者を選択する。データ・アービタ14は、勝ちエージェント12A〜12Dに信号で伝えることができ、勝ちエージェント12A〜12Dは、認可に応答して、データ相互接続18上でデータを駆動する。任意の調停方式を使用することができる(例えば、優先度、ラウンドロビン、重み付きラウンドロビン、優先度と様々なラウンドロビン方式との組合せなど)。
【0014】
一実施形態では、データ相互接続18は部分的にポピュレートされたクロスバを含む。データ相互接続18は、データ転送のためにいくらかの量の同時性(並列性)をサポートすることはできるが、フル・クロスバを実装することはできない。いくつかの実施形態では、広帯域幅と低電力との組合せをサポートすることができ、その場合、データ相互接続18に備わる回路が削減される。一実装形態では、データ相互接続18は、マルチプレクサ(mux)などの選択回路によって結合された1組のセグメントを備える。データ・アービタ14は、muxを制御して、セグメントのいくつかを介した、あるエージェント12A〜12Dから別のエージェント12A〜12Dへの通信パスを確立する。セグメントのいくつかは、異なる通信パスによって共有され、したがって、通信パスのうちの1つが使用されている場合は、確立された通信パス上のデータ・フェーズが完了するまで、共有セグメントを使用する他の通信パスを確立することはできない。データ・アービタ14は、要求された各データ・フェーズごとに通信パスを決定するように構成され、希望する通信パスの少なくとも1つのセグメントが使用中であるパスへの要求をマスクすることができる。データ相互接続18の一実施形態についての追加の詳細は、図2〜7に関して後で提供する。
【0015】
エージェント12A〜12Dのうちの1つ又は複数は、システム10中でトランザクションを開始するように構成される。このようなエージェントを、ソース・エージェントと呼ぶ。例示的なソース・エージェントは、プロセッサ、外部のライト・バック・キャッシュ(修正済みの排除されるキャッシュ・ブロックをメモリに書き込むための書込みトランザクションのソースとなる)、入出力(I/O)ブリッジ(それらが結合されている周辺デバイスに代わってトランザクションのソースとなる)を備えることができる。他のエージェントは、トランザクションのソースとなることはできないが、トランザクションのターゲット(すなわち、トランザクションを受け取り、トランザクションのデータを担うエージェント)になることができる。このようなエージェントは、ターゲット・エージェントと呼ばれる。読取りトランザクションでは、ターゲット・エージェントは、別のエージェントがデータのより新しい(修正された)キャッシュ済みコピーを持っていない限り、データを供給する。書込みトランザクションでは、ターゲット・エージェントは、ソース・エージェントによって供給された書込みデータをシンクする。ターゲット・エージェントは、例えばメモリ・コントローラ及びI/Oブリッジを含む。したがって、読取りトランザクションでは、ターゲット・エージェントが、データ相互接続18に対して調停し、データ相互接続18上でデータを送信する。書込みトランザクションでは、ソース・エージェントが、データ相互接続18に対して調停し、データ相互接続18上でデータを送信する。いくつかのエージェントは、いくつかのトランザクションでソース・エージェントとなり、かつ他のトランザクションでターゲット・エージェントとなることができる。例示的なソース/ターゲット・エージェントは、前述のI/Oブリッジ又は外部キャッシュを含む。一般に、エージェントは、アドレス/応答相互接続16やデータ相互接続18上でのトランザクションを介して通信するように構成された任意の回路を含む。本明細書では、セグメントは、ワイヤなど1つ又は複数の導体のことを言う。複数の導体がセグメントに含まれる場合、導体は並列に駆動されて、導体の一方の端部から他方の端部まで多ビット値を搬送することができる。例えば、一実施形態では、データ相互接続18は、1クロック・サイクルごとに16バイトのデータを転送することができる。このような一実施形態では、128個の並列駆動型の導体が1つのセグメントを構成する。ある特定の実施形態では、誤り訂正符号(ECC)ビット用に、追加の導体を各セグメントに含めることもできる。加えて、コマンド、トランザクションID、有効信号などを、セグメントの一部として、あるいは別個に、データ相互接続18上で各エージェント12A〜12Dに同報通信方式で送信することもできる。
【0016】
以下の例では、選択回路としてmuxが使用されることに留意されたい。しかし、一般に、2つ又は複数の入力と、2つ又は複数の入力間を選択するための選択制御入力とを受け取る任意の回路を使用して、選択回路を形成することができる。
【0017】
次に図2に移ると、データ相互接続18の一実施形態のブロック図がより詳細に示されている。図2には、エージェント12A〜12Dと共に、追加のエージェント12Eが示されている。様々な実施形態で、任意の数のエージェントを含めることができる。エージェント12Eは、他のエージェント12A〜12Dと同様にしてデータ・アービタ14に結合される(図2には示さず)。図示の実施形態では、データ相互接続18は、1組のmux20A〜20Iを備える。mux20A〜20Eは、図2で、エージェント12A〜12Eのデータ入力をそれぞれ駆動するように結合される。mux20F〜20Iはそれぞれ、データ相互接続18のセグメント(例えば図2に示すセグメント22A〜22D)を駆動するように結合される。mux20A〜20Iへの各入力は、セグメント22A〜22Dであるか、あるいはエージェント12A〜12Dのうちの1つのデータ出力である。具体的には、図示の実施形態では、mux入力は以下の通りである。すなわち、mux20Aは、エージェント12Cのデータ出力とセグメント22Cとを入力として有する。mux20Bは、セグメント22Aと22Dを入力として有する。mux20Cは、エージェント12Aのデータ出力と、セグメント22Cとを入力として有する。mux20Dは、エージェント12Eのデータ出力と、セグメント22Bとを入力として有する。mux20Eは、エージェント12Dのデータ出力と、セグメント22Bとを入力として有する。mux20Fは、エージェント12D〜12Eのデータ出力を入力として有する。mux20Gは、エージェント12Bのデータ出力と、セグメント22Dとを入力として有する。mux20Hは、エージェント12Aと12Cのデータ出力を入力として有する。mux20Iは、エージェント12Bのデータ出力と、セグメント22Aとを入力として有する。各mux20A〜20Iは、その入力間を選択するmux制御を有する。データ・アービタ14は、データ相互接続18上で通信パスを確立するためのmux制御を提供する。図を簡潔にするために、個々のmux20A〜20Iに対する個々の制御は、図2には示していない。
【0018】
データ・アービタ14は、mux20A〜20Iを制御して、データ・アービタ14によって決定された調停勝者(「勝ちエージェント」)であるエージェント12A〜12Eから、勝ちエージェント12A〜12Eによって駆動されるデータを受け取ることになる宛先エージェント12A〜12Eへの通信パスを、データ相互接続18上で確立する。すなわち、データ・アービタ14は、mux20A〜20Iを制御して、勝ちエージェントのデータ出力を、宛先エージェントのデータ入力に結合する。一実施形態では、各要求元エージェントは、データ転送のために、要求と共に、宛先エージェントをデータ・アービタ14に対して識別する。例えば、読取りオペレーションでは、要求元エージェントは、トランザクションのアドレス・フェーズでソース・エージェントによって提供されたトランザクションIDから、エージェントIDを提供することができる。書込みオペレーションでは、ソース・エージェントに宛先エージェントの指示を提供することができる(例えば、図1に関して上述した集中型実施形態ではアドレス・アービタによって、又は、ターゲット・エージェントによって)。ソース・エージェントは、要求と共に、宛先エージェントIDをデータ・アービタ14に提供する。
【0019】
例えば、図2の実施形態では、エージェント12Aからエージェント12Dへの通信パスは、mux20Hを制御してエージェント12Aのデータ出力を選択し、mux20Iを制御してセグメント22Aを選択し、mux20Dを制御してセグメント22Bを選択することによって確立することができる。別の例として、エージェント12Bからエージェント12Cへの通信パスは、mux20Gを制御してエージェント12Bからのデータ出力を選択し、mux20Cを制御してセグメント22Cを選択することによって確立することができる。
【0020】
データ相互接続18は、部分的にポピュレートされたクロスバと見なすことができる。すなわち、各エージェント12A〜12Eは、そのデータ出力上でデータを駆動し、データ相互接続18は、1つ又は複数のセグメントを介してこのデータを宛先エージェント12A〜12Eにルーティングする。データ相互接続18は、部分的な並列性を提供することはできるが、フル・クロスバの完全な並列性をもたらすことはできない。例えば、図2の実施形態では、エージェント12Bがエージェント12Dにデータを送信している場合、エージェント12Aと12Cは、並行してエージェント12Eにデータを送信することはできない(というのは、セグメント22Bは、エージェント12Bからエージェント12Dへの通信に使用され、またエージェント12Aと12Cからエージェント12Eへの通信にも使用されるからである)。しかし、エージェント12Bがエージェント12Dにデータを送信するのと並行して、エージェント12Eは、エージェント12A又は12Cに(セグメント22C〜22Dを介して)データを送信することができる。
【0021】
データ相互接続18上で提供される並列性の量は、実施形態ごとに変えられる。一般に、データ相互接続18に備わるセグメントとmuxの数を増加させることによって、並列性を増大させることができる。muxとセグメントを任意の望ましい方式で追加して、所与のエージェントと別の所与のエージェントとの間、所与のエージェントと他の任意のエージェントとの間、又は所与のエージェントと他のエージェントのサブセットとの間に、追加のパスを形成することができる。提供される並列性の量は、所望の性能レベル(例えば大域幅の増大から見て)によって、かつ/又は様々な作業負荷の下で予想される同時トラフィックによって、決定される。例えば、一実施形態は、システム10は、2つのプロセッサ、L2キャッシュ、I/Oブリッジ、2つのメモリ・コントローラを備えるとする。この実施形態では、少なくとも以下の並列性を提供することが望ましい。すなわち、(i)プロセッサがL2キャッシュにデータを送信している間、L2キャッシュはメモリ・コントローラにデータを送信することができる。(ii)L2キャッシュが一方のプロセッサにデータを送信している間、メモリ・コントローラは他方のプロセッサにデータを送信することができる。(iii)L2キャッシュがI/Oブリッジにデータを送信している間、メモリ・コントローラはプロセッサにデータを送信することができる。
【0022】
図示の実施形態では、少なくともいくつかのセグメント22A〜22Dは、異なる要求元エージェントから異なる受信側エージェントへの通信パス間で共用される。例えば、セグメント22Bは、エージェント12A〜12Cのいずれかからエージェント12D〜12Eのどちらかへのパス間で共用される。すなわち、いずれかのエージェント12A〜12Cからエージェント12Dへの通信パスは、セグメント22Dを使用する。加えて、いずれかのエージェント12A〜12Cからエージェント12Eへの通信パスも、セグメント22Bを使用する。同様に、セグメント22Aは、エージェント12Aと12Cのどちらかからエージェント12B、12E、12Dのいずれかへの通信パス中で使用される。セグメント22Aは、エージェント12Bによって使用されない。異なる要求元エージェントから異なる宛先エージェントへの通信パス間でセグメントを共用することにより、いくつかの実施形態では、データ相互接続18を実装するのに使用される配線の量を低減することができ、これにより、配線を単純化し電力消費全体を削減することができる。
【0023】
データ相互接続18は、分散型クロスバとすることができる。mux20A〜20Iを、データ相互接続18によって横断される物理的距離に沿って物理的に分散させる。例えば、エージェント12A〜12Eのデータ出力を入力として有するmuxは、物理的にそのエージェントの近くに位置する。したがって、mux20Fは、物理的にエージェント12Eと12Dの近くに位置し、mux20Gと20Iは、物理的にエージェント12Bの近くに位置し、mux20Hは、物理的にエージェント12Aと12Cの近くに位置する。エージェント12A〜12Eのデータ入力を駆動するmuxは、物理的にそのエージェントの近くに位置する。例えば、mux20A〜20Eは、物理的にそれぞれエージェント12A〜12Eの近くに位置する。セグメント22A〜22Dは、図2に示すように、データを、ソースmuxからデータ相互接続18の物理的距離の一部を通って次のmuxに搬送する。
【0024】
mux20A〜20Iは、階層型の多重化構造とすることができる。従来のクロスバでは、1組の入力muxがクロスバへの入力から選択し、追加のmuxを使用して入力muxの出力間で選択して、所与の宛先へのクロスバ出力を生成する。mux20A〜20Iの少なくともいくつかは、mux出力(セグメント22A〜22D)と、エージェントからの出力との間を選択する。例えば、図2の実施形態では、mux20Iは、セグメント22A(前のmux20Hの出力)と、エージェント12Bからの出力との間を選択する。同様に、mux20D〜20Eは、セグメント22Bと、エージェント12E、12Dの出力との間をそれぞれ選択する。
【0025】
データ相互接続18はまた、性質上、方向性を持たせることができる。すなわち、データは、データ相互接続18上で、所与のエージェント12A〜12Eから宛先エージェントの方向に駆動される(他の方向には駆動されない)。mux20F〜20Gとセグメント22C〜22Dは、左へのデータ送信を(図2に示すように)可能にし、mux20H〜20Iとセグメント22A〜22Bは、右へのデータ送信を(図2に示すように)可能にする。すなわち、セグメント22A〜22Dの重複しないサブセットが、各方向の通信に使用される。例えば、エージェント12Bがエージェント12A又は12Cにデータを送信している場合、データはmux22Cを介し、セグメント22C上を経て、mux20A又は20Cを介して駆動される。同様に、エージェント12Bがエージェント12E又は12Dにデータを送信している場合、データはmux20Iを介し、セグメント22B上を経て、mux20E又は20Dを介して駆動される。データは、データを要求元エージェントから宛先エージェントに移すのに使用される、データ相互接続18の一部のみの上で、駆動することができる。例えば、エージェント12Bからのデータは、セグメント22D又は22A上では駆動されない。
【0026】
他の実施形態では、追加エージェントを含めることができることに留意されたい。各追加エージェントは、mux20Gと20Iと同様の追加muxと、これらのmuxによって駆動される追加セグメントとを使用してサポートすることができる。
【0027】
いくつかの実施形態では、データ相互接続18はパイプライン化することができる。例えば、データ相互接続18の一方の端部から他方の端部へのフライトタイムが、データ相互接続18に使用されるクロックのクロック・サイクルを超える場合は、パイプライン化が望ましい。フロップ又は他のクロックド記憶デバイスを、所望のようにデータ相互接続18に挿入して、相互接続をパイプライン化することができる。
【0028】
図示の実施形態では、データ・アービタ14がmux20A〜20Iをmux制御するものとして示されているが、mux制御を生成する回路は、データ・アービタ14とは別であってもよいことに留意されたい。この回路は、勝ちエージェントへの認可と、対応する宛先エージェントとを通知されて、muxを制御して、勝ちエージェントから宛先エージェントへの通信パスを確立する。
【0029】
図2の実施形態では2つの入力muxが示されているが、他の実施形態は、3つ以上の入力を有するmuxを含むことができることに留意されたい。このようなmuxは、入力として、2つ以上のセグメント、及び/又は、エージェントの2つ以上のデータ出力に結合される。
【0030】
次に図3に移ると、データ相互接続18に対する調停を実施するデータ・アービタ14の一実施形態のオペレーションを説明するフローチャートが示されている。理解しやすいように図3ではブロックが特定の順序で示されているが、他の順序を用いることもできる。さらに、ブロックは、データ・アービタ14中の組合せ論理回路によって並行して実施することもできる。ブロック、フローチャートの各部分、又はフローチャート全体は、望むなら複数のクロック・サイクルにわたってパイプライン化することができる。
【0031】
アサートされた各要求につき、データ・アービタ14は、要求元エージェントから宛先エージェントへのパスを決定する(ブロック30)。各要求元エージェントはそれ自体の要求信号を有し、したがってデータ・アービタ14は、対応する要求信号のアサートに基づいて要求元エージェントを識別する。要求元エージェントはまた、宛先エージェントの識別を提供する。データ・アービタは、対応する通信パスの少なくとも1つのセグメントが要求元エージェントのための通信パスへの割振りに利用不可能であるような各要求を、マスクする(ブロック32)。したがって、通信パスを確立することのできる要求のみが、調停において考慮される。あるセグメントが、別のデータ転送のための通信パス中で使用されるように割り振られている場合は、このセグメントは利用可能となることはできない。
【0032】
図2の実施形態では、所与の要求元エージェントから所与の宛先エージェントへのパスは1つである。追加の並列性のために、追加のセグメントとmuxとが設けられる実施形態では、所与の要求元エージェントから所与の宛先エージェントへの複数のパスが可能な場合、データ・アービタ14は、通信パスの決定において、可能な各パスを考慮する。データ・アービタ14は、可能なら、すべてのセグメントが利用可能である通信パスを調停の目的で選択する。
【0033】
マスクされていないアサート済みの要求が少なくとも1つある場合は(判定ブロック34、「Yes」肢)、データ・アービタ14は、勝ちエージェントを選択し、勝ちエージェントへの認可をアサートする(ブロック36)。勝ちエージェントは、要求元エージェントのサブセットから選択され、サブセットのメンバは、要求元エージェントから宛先エージェントへの通信パス中の少なくとも1つのセグメントがデータ転送に利用不可能であるためにそのアサート済み要求信号がマスクされているということのない、要求元エージェントである。勝ちエージェントは、データ・アービタ14によって実施される調停方式を用いて決定される。データ・アービタ14はまた、後続の調停で通信パスを考慮するために、勝ちエージェントからその宛先エージェントへの通信パス中で使用されるセグメントを「ビジー」(又は「利用不可能」)として記録する(ブロック38)。例えば、データ・アービタ14は、調停の目的で、各セグメントにつき、セグメントがビジー又は利用可能であるかどうかを示す1ビットを維持する。データ・アービタ14は、mux20A〜20Iに対するmux制御を生成して、勝ちエージェントからその宛先エージェントへの通信パスを確立する(ブロック40)。いくつかの実施形態では、通信パスの実際の確立は、勝ちエージェントの決定から遅延させることができる。例えば、一実施形態では、勝ちエージェントは、認可を受け取ってから2クロック・サイクル後にそのデータの転送を開始する。通信パスの確立も同様に遅延させることができる。別法として、認可とデータ転送の開始との間のクロック・サイクルを用いて、通信パスをセットアップすることもできる。アサートされておりマスクされていない要求がない場合は(判定ブロック34、「No」肢)、勝ちエージェントを宣言することはできない。
【0034】
一実施形態では、データ・アービタ14は、クロック・サイクルごとに1つの要求元エージェントを認可する。独立した通信パスが利用可能な場合(すなわち共用セグメントなし)、データ転送の同時性は、後続のクロック・サイクルでデータ・アービタ14によってアサートされる追加の認可によって生じる。他の実施形態では、データ・アービタ14は、クロック・サイクルごとに複数の認可を発行するように構成することもできる。
【0035】
次に図4に移ると、データ相互接続18上でのデータ転送の終了に応答したデータ・アービタ14の一実施形態のオペレーションを説明するフローチャートが示されている。いくつかの実施形態では、データ・アービタ14は、データ転送が所与のクロック・サイクル上で完了するであろうことをあらかじめ認識して、データ転送がこの所与のクロック・サイクル上で終了するであろうことを検出する。例えば、図7に調停インターフェースが示されているが、この調停インターフェースでは、要求元エージェントは、既知の数の連続したクロック・サイクル(例えば、1クロック当たり16バイトの転送で、64バイトのキャッシュ・ブロックの転送の場合、4クロック・サイクル)のバーストとして、データ転送が行われるであろうことを示す。このような場合、データ・アービタ14は、データ転送が後続の転送の開始よりも前に終了するであろうことを検出し、このような検出に応答して、図4に示すオペレーションを実施する。このようなオペレーションは、1つ又は複数のセグメントを共用する通信パスに対する認可のパイプライン化を可能にする。他の場合では、データ・アービタ14は、有効なデータ転送を追跡して(例えば、データ有効信号がデータ相互接続18上でのデータの転送を示すことができる)、データ転送の終了を検出する、あるいは、転送元エージェントが、データ転送が終了することをデータ・アービタ14に信号で伝える。データ転送が終了することをデータ・アービタ14が検出した場合、データ・アービタ14は、転送で使用されたセグメントを記録して、通信パスを「ビジーでない」又は「利用可能」として形成する(ブロック50)。したがって、セグメントは、要求元エージェントの通信パスに割り当てるために利用可能になる。いくつかの実施形態では、データ・アービタ14はまた、mux20A〜20Iに対するmux制御を生成して、通信パスを、そのデータ・パス上でのデータ転送が終了した後も維持する(例えば、そうすることによって節電できる場合に)。
【0036】
図5は、データ相互接続18上の第1の通信パスの例を示す、図2と同様のブロック図である。図5の例では、エージェント12Cからエージェント12Dへの通信パスが確立され、これは図5では破線で示されている。データ・アービタ14は、mux20Hを制御して、セグメント22A上へのエージェント12Cのデータ出力を選択する。データ・アービタ14は、mux20Iを制御して、セグメント22B上へのセグメント22Aを選択する。データは、mux20Dを制御して、エージェント12Dのデータ入力上へのセグメント22Bを選択する。このようにして、エージェント12Cのデータ出力からmux20H〜20I及び20Dを介しセグメント22A〜22Bにわたる通信パスが確立される。
【0037】
図6は、図5に示した第1の通信パスと同時に発生するデータ相互接続18上の第2の通信パスの例を示す、図2、5と同様のブロック図である。図6の例では、第2の通信パスはエージェント12Eからエージェント12Aまでであり、これは図6ではより細かい破線で示されている(第1の通信パスの破線と比較して)。データ・アービタ14は、mux20Fを制御して、セグメント22D上へのエージェント12Eのデータ出力を選択する。データ・アービタ14は、mux20Gを制御して、セグメント22C上へのセグメント22Dを選択する。データは、mux20Aを制御して、エージェント12Aのデータ入力上へのセグメント22Cを選択する。このようにして、第1の通信パスと同時に発生する、エージェント12Eのデータ出力からmux20F〜20G及び20Aを介しセグメント22C〜22Dにわたる通信パスが確立される。
【0038】
次に図7に移ると、データ・アービタ14の一実施形態に関する例示的な調停インターフェースを示すブロック図が示されている。図示の実施形態では、このインターフェースは、データ・アービタ14と各エージェントとの間の個々の信号を含む(これらは、図7のエージェント12A〜12Bなど、各エージェントについて繰り返される)。図示の実施形態では、これらの信号は、要求信号(Req.)、バースト信号(Brst.)、宛先識別子(DestID)、認可信号(Gnt.)を含む。
【0039】
各エージェントは、その要求信号をアサートすることによって、データ相互接続18を要求する。要求信号と同時に、エージェントは、宛先IDを使用して、要求しているデータ転送の宛先エージェントを識別させ、また、バースト信号を使用して、データが連続したクロック・サイクル上でバーストとして転送されることになるか否かも示す。いくつかの実施形態では、データ・アービタ14は、バースト信号を使用して、いつデータ転送が終了すると予想されるかを決定することができる。他の実施形態では、バースト信号は含まれない場合がある。データ・アービタ14は、その認可信号をアサートすることによって、調停勝者に認可を信号で伝える。
【0040】
以上の開示が完全に理解されれば、当業者には多くの変形や修正が明らかになるであろう。特許請求の範囲は、そのようなすべての変形と修正を包含するように解釈されるものとする。
【図面の簡単な説明】
【0041】
【図1】集積回路の一実施形態のブロック図である。
【図2】図1に示すデータ相互接続の一実施形態のブロック図である。
【図3】データ相互接続の調停に関する、図1及び2に示すデータ・アービタの一実施形態のオペレーションを示すフローチャートである。
【図4】データ転送が完了するときの、図1及び2に示すデータ・アービタの一実施形態のオペレーションを示すフローチャートである。
【図5】データ相互接続上で構成される第1の通信パスの一例を示すブロック図である。
【図6】第1の通信パスと同時に発生する、データ相互接続上で構成される第2の通信パスの一例を示すブロック図である。
【図7】データ・アービタに対する調停インターフェースの一実施形態を示すブロック図である。

【特許請求の範囲】
【請求項1】
第1エージェント、第2エージェント、第3エージェント、第4エージェントと、
前記第1エージェント、前記第2エージェント、前記第3エージェント、前記第4エージェントが結合された相互接続と
を備える装置であって、前記相互接続は、前記相互接続に結合された前記エージェント間で通信パスを形成するように切換え可能な複数のセグメントを備え、前記複数のセグメントのうちの第1セグメントは、前記第1エージェントから前記第2エージェントへの第1通信パスに含まれ、前記第1セグメントはまた、前記第3エージェントから前記第4エージェントへの第2通信パスにも含まれる装置。
【請求項2】
前記第1セグメントはさらに、前記第1エージェントから前記第4エージェントへの第3通信パスにも含まれる請求項1に記載の装置。
【請求項3】
前記第1セグメントはさらに、前記第3エージェントから前記第2エージェントへの第4通信パスにも含まれる請求項2に記載の装置。
【請求項4】
前記相互接続に結合された第5エージェントをさらに備え、前記複数のセグメントのうちの第2セグメントは、前記第5エージェントから前記第2エージェントへの通信パスに含まれる請求項1に記載の装置。
【請求項5】
前記第2セグメントはまた、前記第1通信パスと前記第2通信パスにも含まれる請求項4に記載の装置。
【請求項6】
前記第5エージェントから前記第2エージェントへの前記通信パスは前記第1セグメントを含まない請求項4に記載の装置。
【請求項7】
前記相互接続を使用する要求を、前記相互接続に結合されたエージェントから受け取るように結合されたアービタをさらに備え、前記アービタは、前記要求間を調停して、前記相互接続を使用する要求元エージェントを選択するように構成され、前記調停に関与する要求は、対応する通信パス中で使用される少なくとも1つのセグメントが利用可能でない要求を除外する請求項1に記載の装置。
【請求項8】
少なくとも1つのセグメントが、完了していない通信のための異なる通信パスに含まれていれば、その少なくとも1つのセグメントは利用可能でない請求項7に記載の装置。
【請求項9】
前記相互接続はデータ相互接続である請求項1に記載の装置。
【請求項10】
複数のエージェントと、
前記複数のエージェントが結合された相互接続と
を備える装置であって、前記相互接続は複数のセグメントと複数の選択回路を備え、前記複数のセグメントはそれぞれ、前記複数の選択回路のうちのそれぞれの選択回路によって駆動され、少なくとも1つの選択回路は、前記複数のセグメントのうちの少なくとも1つと、前記複数のエージェントのうちの少なくとも1つからの出力とを入力として有し、前記複数のエージェントのうちの第1エージェントから、前記複数のエージェントのうちの第2エージェントへの通信パスは、前記複数の選択回路のうちの1つ又は複数が、前記第1エージェントの出力を前記第2エージェントの入力に結合するように構成することによって確立される装置。
【請求項11】
前記複数のセグメントの第1サブセットは、前記複数のエージェント間で第1方向の通信を運び、前記複数のセグメントの第2サブセットは、前記複数のエージェント間で第2方向の通信を運び、前記サブセットどうしは重複しない請求項10に記載の装置。
【請求項12】
前記複数のエージェントのうちの所与のエージェントから受信側エージェントへの通信は、前記所与のエージェントから、前記受信側エージェントの方向に駆動される請求項11に記載の装置。
【請求項13】
前記複数の選択回路は前記相互接続内で物理的に分散されている請求項10に記載の装置。
【請求項14】
前記複数の選択回路のうちの第1選択回路は、前記複数のエージェントのうち、出力が前記第1選択回路の入力として結合された第1エージェントに物理的に近接して配置された請求項13に記載の装置。
【請求項15】
前記相互接続を使用する要求を前記複数のエージェントから受け取るように結合されたアービタをさらに備え、前記アービタは、前記複数のエージェントのうちの1つからの要求を認可するように構成され、前記複数のエージェントのうちの前記認可されたエージェントのために通信パスを確立するように前記複数の選択回路を構成するように、前記アービタが構成されている請求項10に記載の装置。
【請求項16】
複数のエージェントと、
前記複数のエージェントに結合された相互接続とを備える装置であって、前記相互接続は、複数のセグメントと、前記複数のエージェント間で前記複数のセグメント上の通信パスを確立するように構成可能な複数の選択回路とを備え、装置はさらに、
前記複数のエージェント及び前記相互接続に結合されたアービタを備え、前記アービタは、前記相互接続を使用する要求を前記複数のエージェントから受け取るように結合され、各要求元エージェントは、前記要求の宛先エージェントを識別するように構成され、前記アービタは、前記複数のセグメントのうちの1つ又は複数を介した、前記要求元エージェントから前記宛先エージェントへの通信パスを、各要求について前記相互接続上で決定するように構成され、前記アービタは、対応する通信パス中の各セグメントが利用可能である要求のサブセットの間で調停するように構成された装置。
【請求項17】
前記アービタは、前記複数のエージェントのうちの第1エージェントを調停勝者として選択するように構成され、前記アービタは、前記複数の選択回路を制御することによって、前記第1エージェントから前記複数のエージェントのうちの宛先エージェントへの通信パスを確立するように構成された請求項16に記載の装置。
【請求項18】
前記複数の選択回路のうちの各選択回路は、前記複数のセグメントのうちの1つを駆動するように構成された請求項16に記載の装置。
【請求項19】
各選択回路は、入力として、前記複数のセグメントのうちの少なくとも1つと、前記複数のエージェントのうちの少なくとも1つのエージェントの出力とに結合された請求項18に記載の装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2009−505241(P2009−505241A)
【公表日】平成21年2月5日(2009.2.5)
【国際特許分類】
【出願番号】特願2008−526263(P2008−526263)
【出願日】平成18年8月11日(2006.8.11)
【国際出願番号】PCT/US2006/031521
【国際公開番号】WO2007/022019
【国際公開日】平成19年2月22日(2007.2.22)
【出願人】(508004683)ピイ・エイ・セミ・インコーポレーテッド (5)
【Fターム(参考)】