(57)【要約】コンピュータシステムは、第１のリピータと、第１のリピータに結合されている第２のリピータを含む。コンピュータシステムは、第１のリピータに結合されている第３のリピータをまた含む。第１のリピータは、第１のリピータと第２のリピータとの間でトランザクションをアービトレイトし、第１のリピータと第３のリピータとの間でトランザクションをアービトレイトする第１のアービタを含む。第２のリピータは、第１のリピータからトランザクションを受け取り、第１のリピータから第２のリピータへトランザクションの受領を予測する第２のアービタを含む。
2005509199.tif 000002
【特許請求の範囲】
【請求項１】
ａ）第１のリピータと、
ｂ）該第１のリピータに結合されている第２のリピータと、
ｃ）該第１のリピータに結合されている第３のリピータと
を備えるコンピュータシステムであって、
該第１のリピータは、該第１のリピータと該第２のリピータとの間でトランザクションをアービトレイトし、該第１のリピータと該第３のリピータとの間でトランザクションをアービトレイトする第１のアービタを含み、
該第２のリピータは、該第１のリピータからトランザクションを受け取り、該第１のリピータから該第２のリピータへのトランザクションの受領を予測する第２のアービタを含む、コンピュータシステム。
【請求項２】
前記第１のリピータは、アドレスリピータである、請求項１に記載のコンピュータシステム。
【請求項３】
前記第１のリピータと、前記第２のリピータと、前記第３のリピータとは、アドレスリピータである、請求項１に記載のコンピュータシステム。
【請求項４】
前記第２のアービタは、分散アービタである、請求項１に記載のコンピュータシステム。
【請求項５】
前記第２のアービタは、信号を前記第３のリピータから受け取る分散アービタである、請求項１に記載のコンピュータシステム。
【請求項６】
ａ）第１のリピータと、
ｂ）該第１のリピータに結合されている第２のリピータと、
ｃ）該第１のリピータに結合されている第３のリピータと
を備えるコンピュータシステムであって、
該第１のリピータは、該第１のリピータと該第２のリピータとの間でトランザクションをアービトレイトし、該第１のリピータと該第３のリピータとの間でトランザクションをアービトレイトする第１のアービタを含み、
該第２のリピータは、該第１のリピータからトランザクションを受け取り、該第１のリピータから該第３のリピータへのトランザクションの受領を予測する第２のアービタを含む、コンピュータシステム。
【請求項７】
前記第１のリピータは、アドレスリピータである、請求項６に記載のコンピュータシステム。
【請求項８】
前記第１のリピータと、前記第２のリピータと、前記第３のリピータとは、アドレスリピータである、請求項６に記載のコンピュータシステム。
【請求項９】
前記第２のアービタは、分散アービタである、請求項６に記載のコンピュータシステム。
【請求項１０】
前記第２のアービタは、信号を前記第３のリピータから受け取る分散アービタである、請求項６に記載のコンピュータシステム。
【請求項１１】
第１のリピータと、複数のクライアントに結合されている第２のリピータと、第３のリピータとを含み、該第１のリピータは、該第２のリピータと該第３のリピータとに結合されている、コンピュータシステムにおいて、トランザクションを第1の複数のクライアントに送る方法であって、
該方法は、
ａ）該トランザクションを第２の複数のクライアントから該第２のリピータに送る工程と、
ｂ）該トランザクションを該第２のリピータの出力要求キューに格納する工程と、
ｃ）該トランザクションを該第２のリピータから該第１のリピータに送る工程と、
ｄ）該トランザクションを該第２のリピータの該出力要求キューから読み出す工程と、
ｅ）該第２のリピータから読み出した該トランザクションを該第１の複数のクライアントに送る工程と
を包含する、方法。
【請求項１２】
第１のサイクルにおいて、前記トランザクションを前記第１のリピータから前記第３のリピータに送る工程をさらに包含する、請求項１１に記載の方法。
【請求項１３】
前記第１のサイクルにおいて、第２のトランザクションを前記第２のリピータから前記第１のリピータに送る工程をさらに包含する、請求項１２に記載の方法。
【請求項１４】
前記トランザクションを前記第２のリピータから前記第１のリピータへ送る工程は、該トランザクションを第２のアドレスリピータから第１のアドレスリピータへ送る工程を含む、請求項１１に記載の方法。
【請求項１５】
前記複数のクライアントのうちの前記第１のクライアントで読み出された前記トランザクションを送る工程は、該読み出されたトランザクションを中央処理ユニットを含むクライアントへ送る工程を含む、請求項１１に記載の方法。
【請求項１６】
第１のリピータと、クライアントに結合されている第２のリピータと、第３のリピータとを含み、該第１のリピータは、該第２のリピータと該第３のリピータとに結合されている、コンピュータシステムにおいて、トランザクションを第１の複数のクライアントに送る方法であって、
該方法は、
ａ）該トランザクションを該クライアントから該第２のリピータに送る工程と、
ｂ）該トランザクションを該第２のリピータの出力要求キューに格納する工程と、
ｃ）該トランザクションを該第２のリピータから該第１のリピータに送る工程と、
ｄ）該トランザクションを該第２のリピータの該出力要求キューから読み出す工程と、
ｅ）該読み出したトランザクションを該第２のリピータから該クライアントに送る工程と
を包含する、方法。
【請求項１７】
第１のサイクルにおいて、前記トランザクションを前記第１のリピータから前記第３のリピータに送る工程をさらに包含する、請求項１６に記載の方法。
【請求項１８】
前記第１のサイクルにおいて、第２のトランザクションを前記第２のリピータから前記第１のリピータに送る工程をさらに包含する、請求項１６に記載の方法。
【請求項１９】
前記トランザクションを前記第２のリピータから前記第１のリピータへ送る工程は、該トランザクションを第２のアドレスリピータから第１のアドレスリピータへ送る工程を含む、請求項１６に記載の方法。
【請求項２０】
前記読み出されたトランザクションを前記クライアントへ送る工程は、該読み出されたトランザクションを中央処理ユニットを含むクライアントに格納する工程を含む、請求項１６に記載の方法。
【請求項２１】
ａ）第１のリピータと、
ｂ）該第１のリピータに結合されている第２のリピータと、
ｃ）該第２のリピータに結合されているクライアントと、
ｄ）該第１のリピータに結合されている第３のリピータと
を備えるコンピュータシステムであって、
該第２のリピータは、該クライアントによって生成されるトランザクションを格納する出力要求キューを含み、
該第２のリピータは、トランザクションを該出力要求キューから読み出し、該トランザクションを該クライアントへ送るように動作可能である、コンピュータシステム。
【請求項２２】
前記第１のリピータは、アドレスリピータである、請求項２１に記載のコンピュータシステム。
【請求項２３】
前記第１のリピータと、前記第２のリピータと、前記第３のリピータとは、アドレスリピータである、請求項２１に記載のコンピュータシステム。
【請求項２４】
前記クライアントは、中央処理ユニットを含む、請求項２１に記載のコンピュータシステム。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、マルチプロセッサコンピュータシステムの分野に関し、特にマルチプロセッサコンピュータシステム内部の複数のマイクロプロセッサのアーキテクチャ的な接続に関する。
【０００２】
（背景）
マルチプロセッシングコンピュータシステムは、２つ以上のマイクロプロセッサを含み、それらのマイクロプロセッサはコンピューティングタスクを実行するために利用され得る。ある特定のコンピューティングタスクが一方のマイクロプロセッサで実行され得、一方、他のマイクロプロセッサは、無関係なコンピューティングタスクを実行する。または、ある特定のコンピューティングタスクの成分は、複数のマイクロプロセッサ間に分散され得、全体としてコンピューティングタスクを実行するために要求される時間を減少し得る。
【０００３】
市販のマルチプロセッシングコンピュータシステムの一般的なアーキテクチャは、対称型マルチプロセッサ（ＳＭＰ）アーキテクチャである。一般に、ＳＭＰコンピュータシステムは、キャッシュ階層を介して共有バスに接続された複数のマイクロプロセッサを含む。メモリがさらにバスに接続され、メモリは、システムのマイクロプロセッサ間で共有される。メモリ内の任意の特定のメモリ位置へのアクセスは、任意の他の特定のメモリ位置へのアクセスと同様の時間起こる。メモリの各位置へのアクセスは、幾分均一に起こり得るために、この構造は、均一メモリアーキテクチャ（ＵＭＡ）として、しばしば参照される。
【０００４】
プロセッサは、しばしば内部キャッシュと共に構成され、ＳＭＰコンピュータシステムでは、１以上のキャッシュは、一般に、マイクロプロセッサと共有バスとの間のキャッシュ階層に含まれる。特定のメインメモリアドレスで常駐するデータの複数のコピーは、これらのキャッシュ内に格納され得る。共有メモリモデルを維持するために、共有バスコンピュータシステムは、キャッシュコヒーレンシを利用する。共有メモリモデルでは、特定のアドレスが、常時、あるデータ値を正確に格納する。一般に、特定のメモリアドレスに格納されたデータで効果的に動作することが、キャッシュ階層内のデータの各コピーで参照される場合は、動作はコヒーレントである。例えば、特定のメモリアドレスに格納されたデータが、更新された時、更新は、更新前のデータのコピーを格納するキャッシュに供給され得る。または、更新前のデータのコピーは、キャッシュ内で無効にされ、特定のメモリアドレスへの後のアクセスによって、更新されたコピーは、メインメモリから転送される。共有バスシステムについて、スヌープバスプロトコルが、一般に利用される。共有バスで実行された各コヒーレントトランザクションは、キャッシュ中のデータに反して審査（スヌープ）される。影響されたデータのコピーが発覚した場合、データを含むキャッシュラインの状態は、コヒーレントトランザクションに応答して更新され得る。
【０００５】
あいにく、共有バスアーキテクチャは、マイクロプロセシングコンピュータシステムの実用性を制限するいくつかの弊害を被る。更なるマイクロプロセッサがバスに接続される時、マイクロプロセッサにデータと命令を供給するために要求される帯域幅は、バスのピーク帯域幅以上であり得る。したがって、いくつかのマイクロプロセッサは、無理に有用なバス帯域幅を待たされ、マイクロプロセッサの帯域幅要求が有用なバス帯域幅以上である時に、コンピュータシステムの性能は損害を受ける。
【０００６】
さらに、マイクロプロセッサを共有バスに追加する場合は、バス上の容量性ローディングが増加し、バスの物理長すら増加し得る。容量性ローディングおよびバス長が増加するために、バス全般への信号の伝搬遅延が増加する。増加した伝搬遅延のために、トランザクションの実行に時間がかかり得る。従って、バスのピーク帯域幅は、さらにマイクロプロセッサを追加する時に、減少し得る。
【０００７】
更なるマイクロプロセッサとデバイスが共有バスシステムに追加されるたびに生じる問題に対処する一般的な方法は、バスを階層化することである。階層化共有バスシステムにおいて、マイクロプロセッサおよび他のバスデバイスはいくつかの低レベルバス間で分割される。これらの低レベルバスは、高レベルバスによって接続される。トランザクションは、低レベルバスで発信され、高レベルバスに転送され、次に、全ての低レベルバスにリピータによって戻る。従って、全てのバスデバイスは、トランザクションを同時に確認し、トランザクションは要求され続ける。階層化共有バスは、論理的に、１つの大型共有バスとして全てのデバイスに現れる。さらに、階層化構造は、単一大型共有バスの電気的な制約を克服する。
【０００８】
（発明の要旨）
本発明のある実施形態におけるコンピュータシステムは、第１のリピータと、第１のリピータに結合されている第２のリピータを含む。コンピュータシステムは、第１のリピータに結合されている第３のリピータをまた含む。第１のリピータは、第１のリピータと第２のリピータとの間でトランザクションをアービトレイトし、第１のリピータと第３のリピータとの間でトランザクションをアービトレイトする第１のアービタを含む。第２のリピータは、トランザクションを第１のリピータから受け取り、第１のリピータから第２のリピータへのトランザクションの受領を予測する第２のアービタを含む。
【０００９】
本発明の他の実施形態におけるコンピュータシステムは、第１のリピータと、第１のリピータに結合されている第２のリピータを含む。コンピュータシステムは、第１のリピータに結合されている第３のリピータをまた含む。第１のリピータは、第１のリピータと第２のリピータとの間でトランザクションをアービトレイトし、第１のリピータと第３のリピータとの間でトランザクションをアービトレイトする第１のアービタを含む。第２のリピータは、第１のリピータからトランザクションを受け取り、第１のリピータから第３のリピータへのトランザクションの受領を予測する第２のアービタを含む。
【００１０】
本発明の他の実施形態は、第１のリピータと、複数のクライアントに結合されている第２のリピータと、第３のリピータとを含むコンピュータシステムにおいで実施される。第１のリピータは、第２のリピータと第３のリピータとに結合されている。本発明の方法は、トランザクションを第２の複数のクライアントから第２のリピータに送る工程と、トランザクションを第２のリピータの出力要求キューに格納する工程と、トランザクションを第２のリピータから第１のリピータに送る工程と、トランザクションを第２のリピータの出力要求キューから読み出す工程と、第２のリピータから読み出したトランザクションを第１の複数のクライアントに送る工程とを包含する。
【００１１】
（好適な実施形態の説明）
下記の記載は、当業者によって、本発明が製造され、利用され得ることを示し、特定の応用および特定の条件で提供される。開示された実施形態への種々の変更が当業者に直ちに理解され、本明細書中で明確にされた一般原理が、本発明の意図および範囲から逸脱することなく、他の実施形態および応用に適用され得る。従って、本発明は、示された実施形態に制限されることなく、本明細書中で開示の原理および特徴の広範囲内で、与えられる。
【００１２】
マルチプロセシングコンピュータシステム１００のブロック図が、図１に示される。マルチプロセシングコンピュータシステムは、Ｌ１アドレスリピータノード１２５とＬ１アドレスリピータノード１５５との２つと、単一のＬ２アドレスリピータ１３０とを含む。第１のＬ１アドレスリピータノード１２５は、Ｌ２アドレスリピータに第１のＬ１−Ｌ２バス１６０を介して結合されている。同様に、第２のＬ１アドレスリピータノード１５５は、第２のＬ１−Ｌ２バス１６５を介してＬ２アドレスリピータに結合されている。第２のＬ１アドレスリピータノード１５５は、第１のＬ１アドレスリピータノード１２５に含まれるＣＰＵと同数のＣＰＵを含み得る。または、第２のＬ１アドレスリピータノード１５５に含まれるＣＰＵの数は、第１のＬ１アドレスリピータノード１２５に含まれるＣＰＵの数よりも少なくてもよい。また、多くてもよい。コンピュータシステムシステム１００は、Ｌ１アドレスリピータ入出力（Ｉ／Ｏ）ノードおよび入出力（Ｉ／Ｏ）デバイスなどの他の構成要素をまた含み得るが、これらの構成要素は、本発明を不明瞭にしてしまうために示されていない。
【００１３】
５．１  Ｌ１アドレスリピータノード
Ｌ１アドレスリピータノード１２５は、複数のマイクロプロセッサ（ＣＰＵ）１０５、１１０、１１５を含み得る。ある実施形態では、ＣＰＵは、ＵｌｔｒａＳＰＡＲＣ−ＩＩＩマイクロプロセッサであり得る。しかし、他の実施形態では、ＣＰＵは、デジタル信号プロッセサ（ＤＳＰ）またはマイクロプロセッサであり得る。これらのプロセッサは、Ｉｎｔｅｌ、Ｍｏｔｏｒｏｌａ、Ｔｅｘａｓ  Ｉｎｓｔｒｕｍｅｎｔｓ、Ｔｒａｎｓｍｅｔａ、または、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓによって製造される。これらのＣＰＵは、ＤＲＡＭメモリまたはＲＡＭＢＵＳメモリおよび、高速キャッシュメモリ（図示せず）などのメモリをまた含み得る。ＣＰＵ１０５、１１０、１１５は、Ｌ１アドレスリピータにＣＰＵバス１７０、１７５、１８０を介して、結合されている。ＣＰＵバス１７０、１７５、１８０は、バストランザクションを通し得る任意のバスであり得る。ある実施形態では、ＣＰＵバスには、６０ビットワイドデータパスが備わっていてもよく、周知のように、制御信号を通し得る追加の信号ラインが含まれてもよい。
【００１４】
ＣＰＵ１０５、１１０、１１５は、バストランザクションを同報通信し、受け取ることによって、Ｌ１アドレスリピータ１２０と通信する。バストランザクションは、ビットコード化パケットとして同報通信され得る。これらのパケットは、アドレス、コマンドおよび／または、ソースＩＤをまた含み得る。アドレッシングモードまたはマスク情報などの他の情報もまた、各トランザクションでコード化され得る。
【００１５】
５．２  Ｌ１アドレスリピータ
Ｌ１アドレスリピータ１２０のブロック図が、図２に示される。Ｌ１アドレスリピータ１２０は、複数のＣＰＵ２０５、２１０、２１５を含む。これらのポートは、ＣＰＵバス１７０、１７５、１８０を介して、ＣＰＵとインターフェイスを取る。ＣＰＵポートは、以下のセクション５．２．１でさらに記載される。Ｌ２ポートは、セクション５．２．２でさらに記載される。
【００１６】
５．２．１  ＣＰＵポート
図４ａは、ＣＰＵポートのブロック図を示す。図４ａは、ＣＰＵバスから受け取り、ＣＰＵポートを通り、ＣＰＵ−Ｌ１バスに出力されるデータの流れをまた示す。図４ａに示されるように、ＣＰＵポートは、入力要求キュー（ＩＲＱ）４０５を含む。ＣＰＵポートが、トランザクションをＣＰＵから受け取り、トランザクションがＬ２ポートに送られるのに時間がかかる場合は、例えば、Ｌ２ポートがＣＰＵ−Ｌ１バスを制御するために、ＩＲＱ４０５は、トランザクションを格納する。
【００１７】
ＩＲＱ４０５は、シフトレジスタなどの複数のレジスタであり得、または、先入れ先出しバッファ、環状バッファ、またはキューバッファなどのバッファであり得る。ＩＲＱ４０５は、トランザクションを格納するための十分な任意の幅があり得る。ある実施形態では、ＩＲＱ４０５は、６０ビットワイドであり、１６トランザクション用のストレージを含む。ＣＰＵポートが、ＣＰＵ−Ｌ１バスへのアクセスを得る時、次に、トランザクションは、マルチプレクサ４１０を通って、ＣＰＵ−Ｌ１バスに出力される。
【００１８】
図４ｂは、ＣＰＵ−Ｌ１バスから受け取り、ＣＰＵポートを通り、ＣＰＵバスに出力されるデータの流れを示す。ある実施形態では、ＣＰＵポートは、ＣＰＵ−Ｌ１バスからのデータを直接ＣＰＵバスに通過させる。他の実施形態（図示せず）では、ＣＰＵポートは、複数のＣＰＵポート間で共有され得る、または共有され得ない出力キューをまた含み得る。
【００１９】
５．２．２  Ｌ２ポート
図５は、Ｌ２ポートのブロック図を示す。Ｌ２ポートがトランザクションをＣＰＵポートからＣＰＵ−Ｌ１バスを介して受け取る時、トランザクションは、入力マルチプレクサ５０５を通過する。トランザクションは、次にＬ１−Ｌ２バスに送られる。トランザクションは、出力要求キュー（ＯＲＱ）５１０にまた格納される。ＯＲＱ５１０は、シフトレジスタなどの複数のレジスタ、または、先入れ先出しバッファ、環状バッファ、またはキューバッファなどのバッファであり得る。ＯＲＱ５１０は、トランザクションを格納するための十分な任意の幅があり得る。本発明のある実施形態では、ＯＲＱ５１０は、６０ビットワイドであり、１６トランザクション用のストレージを含む。
【００２０】
５．２．３  Ｌ１アドレスリピータアービタ
図２で示されるように、Ｌ１アドレスリピータは、アービタ２２５をまた含む。図３で示されるように、アービタ２２５は、ＣＰＵアービタ３０５、Ｌ１−Ｌ１分散アービタ３１０およびスイッチモジュール３１５を含み得る。
【００２１】
５．２．３．１  ＣＰＵアービタ
ＣＰＵアービタ３０５は、要求を複数のＣＰＵポート２０５、２１０、２１５から受け取り、あるＣＰＵポートにトランザクションをＬ２ポート２２０に同報通信する権利を与える。ある実施形態では、アービトレーションアルゴリズムは、複数のＣＰＵポート２０５、２１０、２１５間のラウンドロビンアルゴリズムである。しかし、当業者に公知の優先基底付きアルゴリズムなどの他のアービトレーションアルゴリズムも、また利用され得る。いくつかの実施形態では、Ｌ２ポート２２０から発信するトランザクションは、ＣＰＵポート２０５、２１０、２１５から発信する全てのトランザクション以上の優先順位が与えられる。
【００２２】
セクション５．２で議論されたように、本発明のいくつかの実施形態では、ＣＰＵポート２０５、２１０、２１５の各々は、ＩＲＱ４０５を有する。そのような実施形態では、ＣＰＵポートがＣＰＵ−Ｌ１バスへのアクセスを要求し、その要求が、与えられない場合、トランザクションは、ＣＰＵポートのＩＲＱに挿入される。この場合、ＣＰＵポートは、ＩＲＱが空でない限り、ＣＰＵ−Ｌ１バスへのアクセスを要求し続ける。本発明のいくつかの実施形態では、ＣＰＵポートが新しいトランザクションを受け取り、ＩＲＱが空でない場合、新しいトランザクションは、ＣＰＵポートから発信するトランザクションのシークェンスが維持されるように、ＩＲＱに格納される。
【００２３】
ＣＰＵポートがＣＰＵ−Ｌ１バスへのアクセスを与えられる時、ＣＰＵポートは、トランザクションをＬ２ポートへ同報通信する。次に、Ｌ２ポートは、トランザクションを受け取り、トランザクションをＯＲＱ５１０に格納する。トランザクションを受け取った後、Ｌ２ポートは、次にトランザクションをＬ２アドレスリピータ１３０へＬ１−Ｌ２バスを介して、同報通信する。
【００２４】
５．２．３．２  Ｌ１−Ｌ１分散アービタ
Ｌ１アドレスリピータ間でのアービトレーションの多くの方法が利用される一方、本発明のある実施形態では、分散アービトレーションスキームが、インプリメントされ得る。この実施形態では、明示的アービトレーションは不要である。各Ｌ１アドレスリピータは、Ｌ２アドレスリピータがＬ１−Ｌ２バスにアクセスする時を正確に予測し得るからである。
【００２５】
Ｌ１アドレスリピータは、Ｌ２アドレスリピータがＬ１−Ｌ２バスにアクセスする時を正確に予測するために、Ｌ１アドレスリピータは、Ｌ２アドレスリピータへ送られる全てのトランザクションを知らされるべきである。本発明のいくつかの実施形態では、Ｌ１アドレスリピータは、Ｌ２アドレスリピータへ送られる各トランザクションを発信するＬ１アドレスリピータを知らされるべきである。
【００２６】
Ｌ１アドレスリピータによってそのようなトランザクションが把握されるある方法は、各Ｌ１アドレスリピータによって、直接他のＬ１アドレスリピータと通信することである。例えば、各Ｌ１アドレスリピータが、トランザクションをＬ２アドレスリピータへ送る度に、各Ｌ１アドレスリピータは、ＴＲＡＮ−ＯＵＴ信号１３５および１４０をアサートし得る。各ＴＲＡＮ−ＯＵＴ信号１３５および１４０は、コンピュータシステムの他のＬ１アドレスリピータの各々のＴＲＡＮ−ＩＮポート（示さず）に結合され得る。または、Ｌ１アドレスリピータ間の通信の他の方法が、利用され得る。
【００２７】
上述された実施形態では、各Ｌ１アドレスリピータは、一般に、コンピュータシステムの他のＬ１アドレスリピータの各々に対してＴＲＡＮ−ＩＮポートを有する。この実施形態では、ＴＲＡＮ−ＩＮポートは、トランザクションカウンタに結合されている。カウンタは、他のＬ１アドレスリピータがトランザクションをＬ２アドレスリピータへ送る度に増加される。カウンタは、Ｌ１アドレスリピータが、他のＬ１アドレスリピータから発信されるトランザクションをＬ２アドレスリピータから受け取る度に、減少される。特定のカウンタの値は、Ｌ２アドレスリピータのＩＲＱの１つにおけるトランザクションの数を示す。Ｌ２アドレスリピータポートの構造は、セクション５．３．１で記載される。
【００２８】
５．２．３．３  スイッチモジュール
図３を再び参照して、Ｌ１アドレスリピータアービタは、スイッチモジュール３１５を含む。スイッチモジュール３１５は、Ｌ１−Ｌ１分散アービタ３１０とＣＰＵアービタ３０５との双方に結合され、セクション５．２．３．２で議論されたＴＲＡＮ−ＯＵＴの生成を制御する。
【００２９】
５．３  Ｌ２アドレスリピータ
図６は、Ｌ２アドレスリピータ１３０のブロック図を示す。Ｌ２アドレスリピータ１３０は、複数のＬ１ポート６０５、６１０、６１５を含む。Ｌ１ポート６０５、６１０、６１５は、さらにセクション５．３．１で記載される。ある実施形態では、第１のＬ１ポート６０５は、Ｌ１アドレスリピータノード１２５に結合され得、第２のＬ１ポート６１０は、第２のＬ１アドレスリピータノード１５５に結合され得る。さらに、第３のＬ１ポート６１５は、Ｉ／Ｏデバイス（示さず）を含むＬ１アドレスリピータノードに結合され得る。図６に示されるように、Ｌ２−Ｌ２バス６３５は、Ｌ１ポート６０５、６１０、６１５を結合する。
【００３０】
５．３．１  Ｌ１ポート
図７ａは、Ｌ１ポートのブロック図を示す。図７ａは、また、Ｌ１−Ｌ２バスから受け取り、Ｌ１ポートを通り、Ｌ２−Ｌ２バスに出力されるデータの流れを示す。図７ａに示されるように、Ｌ１ポートは、入力要求キュー（ＩＲＱ）７０５を含む。入力要求キュー（ＩＲＱ）７０５は、ＣＰＵポートのＩＲＱと類似である。ＩＲＱポートがトランザクションをＬ１−Ｌ２バスから受け取り、トランザクションがＬ２−Ｌ２バスへ送られるのに時間がかかる場合、例えば、他のＬ１ポートがＬ２−Ｌ２バスの制御を有するので、ＩＲＱ７０５は、トランザクションを格納する。
【００３１】
ＩＲＱ７０５は、シフトレジスタなどの複数のレジスタ、または、先入れ先出しバッファ、環状バッファ、または、キューバッファなどのバッファであり得る。ＩＲＱ７０５は、トランザクションを格納するのに十分な任意の幅を有し得る。ある実施形態では、ＩＲＱ７０５は、６０ビットワイドであり、１６トランザクション用のストレージを含む。Ｌ１ポートが、Ｌ２−Ｌ２バスへのアクセスを得る時、次に、トランザクションは、マルチプレクサ／デマルチプレクサ７１０を通って、Ｌ２−Ｌ２バスに出力される。
【００３２】
図７ｂは、Ｌ２−Ｌ２バスから受け取り、Ｌ１ポートを通り、Ｌ１−Ｌ２バスに出力されるデータの流れを示す。ある実施形態では、Ｌ１ポートは、Ｌ２−Ｌ２バスからのデータを出力マルチプレクサ７１５に通し、Ｌ１−Ｌ２バスに通過させる。
【００３３】
５．３．２  Ｌ２アドレスリピータアービタ
図６に示すように、Ｌ２アドレスリピータは、また、アービタ６２０を含む。アービタ６２０は、要求を複数のＬ１ポート６０５、６１０、６１５から受け取り、１つのＬ１ポートに、トランザクションを他のＬ１ポートへ同報通信する権利を与える。ある実施形態では、アービトレーションアルゴリズムは、複数のＬ１ポート６０５、６１０、６１５間のラウンドロビンアルゴリズムである。しかし、当業者に公知である優先基底付きアルゴリズムなどの他のアービトレーションアルゴリズムもまた、利用され得る。
【００３４】
セクション５．３．１で議論したように、いくつかの実施形態では、Ｌ１ポート６０５、６１０、６１５の各々は、ＩＲＱ７０５を有する。そのような実施形態では、Ｌ１ポートがＬ２−Ｌ２バスへのアクセスを要求し、要求が、与えられない場合、トランザクションは、Ｌ１ポートのＩＲＱに挿入される。この場合、Ｌ１ポートは、ＩＲＱが空である限り、Ｌ２−Ｌ２バスへのアクセス要求を続ける。本発明のいくつかの実施形態では、Ｌ１ポートは、新しいトランザクションを受け取り、ＩＲＱが空でない場合、新しいトランザクションは、Ｌ１ポートから受信されるトランザクションのシークェンスを示すように、ＩＲＱに格納される。
【００３５】
５．４  性能最適化
５．４．１  Ｌ２アドレスリピータからＬ１アドレスリピータへの送信を予測  各Ｌ１アドレスリピータは、Ｌ２アドレスリピータの各ＩＲＱでトランザクションの数を把握し、各Ｌ１アドレスリピータは、Ｌ２アドレスリピータと同じアービトレーションスキームをインプリメントするために、各Ｌ１アドレスリピータは、Ｌ１アドレスリピータとＬ２アドレスリピータとの間での全ての通信を予測し得る。したがって、Ｌ１アドレスリピータは、トランザクションをＬ２アドレスリピータから受け取る時を予測し得る。Ｌ１アドレスリピータが、そのような予測をする時、Ｌ１アドレスリピータは、ＰＲＥＤＩＣＴ−ＲＥＱＵＥＳＴ状態に入る。
【００３６】
ＰＲＥＤＩＣＴ−ＲＥＱＵＥＳＴ状態に入ると、Ｌ１アドレスリピータは、ＣＰＵアービタに、近い将来受け取るトランザクションに備えてＣＰＵバスを解放するように命令し得る。さらに、トランザクションがＬ２アドレスリピータからＬ１アドレスリピータへ送られると同時に、受け取ったトランザクションが、ＣＰＵポートへ通過されるように、Ｌ１アドレスリピータは、ＯＲＱモジュレータ／出力モジュレータ５１５の状態を前設定し得る。結果的に、トランザクションは、Ｌ２アドレスリピータポートからＣＰＵポートへ最少待ち時間で横切ることができる。ある実施形態では、トランザクションは、Ｌ２アドレスリピータポートからＣＰＵポートへ単一サイクルで横切ることができる。
【００３７】
５．４．２．  特定のＬ１アドレスリピータから発信される転送の予測
セクション５．４．１で議論したように、各Ｌ１アドレスリピータは、Ｌ１アドレスリピータとＬ２アドレスリピータとの間での全ての通信を予測し得る。したがって、ある実施形態では、Ｌ１アドレスリピータは、Ｌ２アドレスリピータによって次に同報通信されるトランザクションを発信するＬ１アドレスリピータを予測し得る。
【００３８】
Ｌ１アドレスリピータが、Ｌ２アドレスリピータによって同報通信されるトランザクションを発信することを予測した場合、Ｌ１アドレスリピータは、ＰＲＥＤＩＣＴ−ＩＮＣＯＭＩＮＧ状態として参照される状態に入る。そのような状態に入った場合、Ｌ１アドレスリピータは、トランザクションをＬ２アドレスリピータからの代わりに、ＯＲＱから受け取り得る。したがって、Ｌ１アドレスリピータは、トランザクションをＯＲＱから受け取り得、トランザクションをいくつかの、または全てのＣＰＵポートへＣＰＵ−Ｌ１バスを介して、同報通信し得る。
【００３９】
Ｌ１アドレスリピータが、トランザクションをＯＲＱから得ることが可能であるという結果として、Ｌ２アドレスリピータは、トランザクションを発信するＬ１アドレスリピータへトランザクションを同報通信する必要がなくなる。Ｌ２アドレスリピータは、トランザクションの発信元でないＬ１アドレスリピータへトランザクションを同報通信することのみ必要とされる。Ｌ２アドレスリピータは、Ｌ２アドレスリピータを第１のトランザクションを発信するＬ１アドレスリピータへ結合するＬ１バスを利用する必要がないために、Ｌ１アドレスリピータは、Ｌ１−Ｌ２バスを利用し得、Ｌ２アドレスリピータが第１のトランザクションを他のＬ１アドレスリピータへ送ると同時に、第２のトランザクションをＬ２アドレスリピータへ送る。
【００４０】
５．５  通信
図８は、コンピュータシステム１００の簡略版であるコンピュータシステム８００を示す。図９で示されるタイミング図９００は、コンピュータシステム８００を動作する方法を示す。タイミング図９００の各欄は、特定のバスサイクルに対応する。サイクル０では、ＣＰＵ８０５は、ＣＰＵバス８７０へのアクセスを要求する。サイクル２では、ＣＰＵ８０５は、ＣＰＵバス８７０へのアクセスを与えるか否かを決定する。次に、サイクル３では、ＣＰＵ８０５は、トランザクションＡをＣＰＵバス８７０へ送る。サイクル４では、Ｌ１アドレスリピータ８２０は、トランザクションを受け取り、Ｌ１−Ｌ２バス８６０の制御のためにアービトレイトする。コンピュータシステム８００が、アイドル状態であり、アービトレーションを不要とする場合、トランザクションＡは、サイクル５において、Ｌ２アドレスリピータ８３０へ移される。
【００４１】
サイクル５の間、Ｌ１アドレスリピータ８２０は、また、ＴＲＡＮ−ＯＵＴ８３５を移動させる。Ｌ１アドレスリピータ８４５は、この信号をサイクル６で受け取る。Ｌ１アドレスリピータ８２０、Ｌ１アドレスリピータ８４５、Ｌ２アドレスリピータ８３０は、全て、Ｌ２アドレスリピータ８３０が、近い将来、トランザクションＡを同報通信することを把握しているので、Ｌ１アドレスリピータ８３０は、ＰＲＥＤＩＣＴ−ＩＮＣＯＭＩＮＧ状態に入り、Ｌ１アドレスリピータ８５５は、ＰＲＥＤＩＣＴ−ＲＥＱＵＥＳＴ状態に入るであろう。サイクル７では、Ｌ２アドレスリピータ８３０は、トランザクションＡをＬ１−Ｌ２バス８６５へ同報通信する。サイクル８では、トランザクションＡは、Ｌ１アドレスリピータ８４５を横切る。トランザクションＡは、また、Ｌ１アドレスリピータ８２０でＯＲＱから読み出される。
【００４２】
サイクル９では、トランザクションＡは、ＣＰＵバス８７０、８８０、８９０全てで同報通信される。サイクル１０では、ＣＰＵ８０５、８１５、８８５は、全て、トランザクションＡを受け取る。
【００４３】
図９は、Ｌ１−Ｌ２バス８６０がサイクル７で利用されないことを示す。構成要素９０５は、未利用バスサイクルを示す。Ｌ１アドレスリピータ８２０が、トランザクションＢをサイクル６でＩＲＱに含む場合、トランザクションＢは、Ｌ１−Ｌ２バス８６０上で、サイクル７の間、Ｌ２アドレスリピータ８３０へ同報通信され得る。この実行最適化は、Ｌ１−Ｌ２バス８６０の最大利用を保証する。
【００４４】
５．６  結論
本発明の実施形態の上述の記載は、例示および記載の目的のためにのみ示される。本発明を開示された形態に限定することを意図しない。したがって、多くの改良および変更が、当業者には明らかである。例えば、追加のＬ１アドレスリピータノードおよび１つより多くのＬ２アドレスリピータを含むことを考慮し得る。そのような構成要素の数を増加することによって、Ｌ２アドレスリピータなどの冗長な構成要素は、コンピュータシステムが作動し続ける間、「スワップアウト」され得る。
【００４５】
さらに、上述した記載および図において、ＣＰＵおよびＣＰＵポートについて議論したが、本発明は、そのように限定されない。任意のクライアントデバイス（メモリコントローラ、Ｉ／Ｏブリッジ、ＤＳＰ、グラフィックコントローラ、アドレスリピータおよびデータリピータなどのリピータ、および上記クライアントデバイスの組合せおよびネットワークなど）は、上述されたＣＰＵに置き換え可能である。しかし、これらに限定されない。同様に、上記クライアントデバイスのいずれかをインターフェイスする任意のポートは、上述されたＣＰＵポートに置き換え可能であり、本発明の範囲内である。さらに、上記記載および図は、アドレスリピータを議論し、本発明は、それに限定されない。データリピータなどの任意のリピータは、記載されたアドレスリピータと置き換え可能であり、本発明の範囲内である。
【００４６】
上記の開示は、本発明を限定することを意図しない。本発明の範囲が、上掲の特許請求の範囲に規定される。
【図面の簡単な説明】
【図１】
図１は、マイクロプロセシングコンピュータシステムのブロック図である。
【図２】
図２は、Ｌ１アドレスリピータのブロック図である。
【図３】
図３は、アービタのブロック図である。
【図４ａ】
図４ａは、ＣＰＵポートのブロック図である。
【図４ｂ】
図４ｂは、ＣＰＵポートの他のブロック図である。
【図５】
図５は、Ｌ２ポートのブロック図である。
【図６】
図６は、Ｌ２アドレスリピータのブロック図である。
【図７ａ】
図７ａは、Ｌ１ポートのブロック図である。
【図７ｂ】
図７ｂは、Ｌ１ポートの他のブロック図である。
【図８】
図８は、簡易化されたマイクロプロセシングコンピュータシステムのブロック図である。
【図９】
図９は、図８のコンピュータシステムを動作させる１つの方法のタイミング図である。
【図１】
2005509199.tif 000003
【図２】
2005509199.tif 000004
【図３】
2005509199.tif 000005
【図４ａ】
2005509199.tif 000006
【図４ｂ】
2005509199.tif 000007
【図５】
2005509199.tif 000008
【図６】
2005509199.tif 000009
【図７ａ】
2005509199.tif 000010
【図７ｂ】
2005509199.tif 000011
【図８】
2005509199.tif 000012
【図９】
2005509199.tif 000013
【国際調査報告】
2005509199.tif 000014
2005509199.tif 000015