(57)【特許請求の範囲】
【請求項１】
コンピュータシステムであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサを制御ブロックおよびメモリバスに結合するためのコントローラと、
前記メモリバスに結合された複数のメモリモジュールスロットと、
前記複数のメモリモジュールスロットのサブセットに関連付けられるアダプタポートと、
前記アダプタポートに結合されるクラスタ相互接続ファブリックとを含み、
前記複数のメモリモジュールスロットと直接接続することによって制御情報が前記アダプタポートとの間でやりとりされ、
前記クラスタ相互接続ファブリックに結合された再構成可能なプロセッサ要素と、
前記メモリバス上において前記コントローラから受信したデータを変更するよう動作する、前記クラスタ相互接続ファブリックに結合されたプロセッサ要素と、
変更されたデータを前記メモリバス上に配置する前に、外部ソースから受信したデータを変更するよう動作する、前記クラスタ相互接続ファブリックに結合されたプロセッサ要素と、
前記クラスタ相互接続ファブリックに結合される制御ブロックと、のうちの少なくとも１つをさらに含む、コンピュータシステム。
【請求項２】
前記コントローラはインタリーブされたメモリコントローラを含む、請求項１に記載のコンピュータシステム。
【請求項３】
前記複数のメモリモジュールスロットはＤＩＭＭメモリモジュールスロットを含む、請求項１に記載のコンピュータシステム。
【請求項４】
前記アダプタポートは、前記ＤＩＭＭメモリモジュールスロットのうちの１つの内部における保持のためのＤＩＭＭ物理フォーマットを含む、請求項３に記載のコンピュータシステム。
【請求項５】
前記複数のメモリモジュールスロットはランバスフォーマットメモリモジュールスロットを含む、請求項１に記載のコンピュータシステム。
【請求項６】
前記アダプタポートは、前記ＲＩＭＭメモリモジュールスロットのうちの１つの内部における保持のためのランバス物理フォーマットを含む、請求項５に記載のコンピュータシステム。
【請求項７】
前記制御ブロックは、
周辺バス制御ブロックと、
グラフィックス制御ブロックと、
システムメンテナンス制御ブロックと、のうちの少なくとも１つを含む、請求項１に記載のコンピュータシステム。
【請求項８】
前記アダプタポートは、前記メモリバスからデータ情報を受信するよう適合されたメモリバスデータマルチプレクサを含む、請求項１に記載のコンピュータシステム。
【請求項９】
前記アダプタポートはさらに、
前記メモリバスからアドレス情報を受信するよう適合されたアドレスおよびコマンドデコーダと、
前記クラスタ相互接続ファブリックに結合されたプロセッサ要素に前記メモリバスから受信した前記データ情報を結合するための書込バッファ、および、前記プロセッサ要素によって供給されるデータを前記メモリバスに結合するための読出バッファと、
のうちの少なくとも１つを含む、請求項８に記載のコンピュータシステム。
【請求項１０】
書込バッファを含む場合、前記システムは、
前記書込バッファを前記プロセッサ要素に結合するためのパケット化装置と、
前記プロセッサ要素を前記読出バッファに結合するための非パケット化装置とをさらに含む、請求項９に記載のコンピュータシステム。
【請求項１１】
前記メモリバスデータマルチプレクサに結合された複数のレジスタをさらに含む、請求項８に記載のコンピュータシステム。
【請求項１２】
前記複数のレジスタは、
構成レジスタと、
状態レジスタと、のうちの少なくとも１つを含む、請求項１１に記載のコンピュータシステム。
【請求項１３】
前記クラスタ相互接続ファブリックに結合されたプロセッサ要素に前記アドレスおよびコマンドデコーダを結合するコマンドフォーマッタをさらに含む、請求項９に記載のコンピュータシステム。
【請求項１４】
前記クラスタ相互接続ファブリックに結合される制御ブロックを含む場合、前記制御ブロックはさらに、
前記アダプタポート上における識別されたアルゴリズムと、前記アダプタポートによって供給されるオペランドとを実行するよう構成可能な少なくとも１つのフィールドプログラマブルゲートアレイを含む、請求項１に記載のコンピュータシステム。
【請求項１５】
前記アダプタポートに結合された制御ブロックを前記少なくとも１つのフィールドプログラマブルゲートアレイに結合するデュアルポートメモリブロックをさらに含む、請求項
１４に記載のコンピュータシステム。
【請求項１６】
前記クラスタ相互接続ファブリックに結合されるチェーンポートをさらに含む、請求項１に記載のコンピュータシステム。
【請求項１７】
前記制御ブロックは、それに構成情報を供給するための読出専用メモリをさらに含む、請求項１６に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連する出願の相互参照
この発明は、２００３年１月１０日に出願され本願と同じタイトルを有する米国特許出願連続番号第１０／３４０，３９０号の優先権を主張する。これは、「デュアル・インライン・メモリモジュールフォーマットの多重適応プロセッサのチェーンを用いるクラスタ化されたコンピュータのためのスイッチ／ネットワークアダプタポート（“Switch/Network Adapter Port for Clustered Computers Employing a Chain of Multi-Adaptive Processors in a Dual In-Line Memory Module Format”）」と題され２００１年８月１７日に出願された米国特許出願連続番号第０９／９３２，３３０号と、「汎用の再構成可能な演算ハードウェアおよびソフトウェア（“General Purpose Reconfigurable Computing Hardware and Software”）」と題され２００２年１０月３１日に出願された米国仮特許出願連続番号第６０／４２２，７２２号とに関し、そのすべてがエス・アール・シー・コンピュータズ・インコーポレイテッド（SRC Computers, Inc.）（コロラド州（Colorado）、コロラドスプリングス（Colorado Springs））に譲渡され、それらの開示の全体が引用によりこの明細書中に具体的に援用されている。
【０００２】
発明の背景
発明の分野
この発明は、一般に、１つ以上の再構成可能な（reconfigurable）処理要素を組込んだコンピュータシステムおよび方法の分野に関する。より特定的には、この発明は、データ転送レートを上げるためにインタリーブされたメモリコントローラとともに用いるための多重適応処理要素（「ＭＡＰ」（登録商標））を採用する計算システムのためのデュアル・インライン・メモリモジュール（「ＤＩＭＭ」）またはランバス（「ＲＩＭＭ」）フォーマットのスイッチ／ネットワークアダプタポート（「ＳＮＡＰTM」（登録商標）、共にSRC Computers, Inc.の登録商標）に関する。
【背景技術】
【０００３】
関連する背景技術
プロセッサカウントが大きく経済的なコンピュータをもたらす現在最も有望な方法の中には、パーソナルコンピュータ（ＰＣ）で一般的に見出されるような比較的低価格のマイクロプロセッサベースのボードをいくつかまとめてクラスタリングすることに関するものがある。次に、利用可能なクラスタリングソフトウェアを用いてこれらさまざまなボードを動作させることにより、１つ以上の大きな問題を解くためにこれらを一斉に実行させることが可能となる。このような問題を解くプロセスの最中には、プロセッサボード間で中間演算結果が共有されることが多い。
【０００４】
現在利用可能な技術を利用した場合、この共有は周辺構成要素相互接続（ＰＣＩ）バスを介してなされなければならないが、これは現在のＰＣで一般的に見られる最も高性能の外部インターフェイスバスである。このバスにはさまざまな利用可能なバージョンがあるが、これらはすべて１ＧＢ／ｓｅｃ未満の帯域幅に制限され、また、これらはプロセッサバスよりも数レベル下のチップに位置するため、いずれも極めて長い待ち時間を呈する。低価格のＰＣにおいては、このバスは典型的には２５６ＭＢ／ｓｅｃのオーダの帯域幅を提供するに過ぎない。
【０００５】
これらの要因は、個々としても全体としても、クラスタの全体的な有効性を大幅に制限
するおそれがあり、より高速のインターフェイスを見出すことができればクラスタが大きな問題を解く能力は大幅に向上するだろう。残念ながら、このようなポートを与え得る新たな専用のチップセットを設計することは非常に費用がかかるだけでなく、遭遇するクラスタリング相互接続の種類ごとに特化する必要もあるだろう。当然、これによってチップセットのいずれか１つのバージョンについても潜在的な売上量が比較的少なくなり、非経済的になるだろう。
【０００６】
プロセッサの速度がますます速くなりつつあるために、高性能のメモリサブシステムの必要性が引続き高まってきている。上述の米国特許出願連続番号第０９／９３２，３３０号に開示されるスイッチ／ネットワークアダプタポートシステムの開発以来、パーソナルコンピュータ（「ＰＣ」）の市場に対する高性能のメモリサブシステムのための技術には、インタリーブされたメモリが用いられるようになってきた。
【０００７】
インタリーブされたメモリシステムにおいては、２つ以上のデュアル・インライン・メモリモジュール（「ＤＩＭＭ」）スロットがメモリコントローラによって同時にアクセスされる。二重インタリーブ方式が用いられる場合、データバスの幅が事実上２倍にされるので、メモリに対して得られる帯域幅も２倍になる。４つのＤＩＭＭスロットを用いる四重または４方向にインタリーブされたシステムを形成するために類似の構成が確立可能である。このメモリコントローラの形は、現在、よりハイエンドのサーバシステムに見出されるより一般的な高性能メモリのうちの１つであり、より主流の製品において急速に利用可能になりつつある。
【発明の開示】
【課題を解決するための手段】
【０００８】
発明の概要
この明細書中の代表的な実施例に開示されるように、SRC Computers, Inc.の独自仕様のＳＮＡＰTM技術は、２つ以上のＤＩＭＭ（またはＲＩＭＭ）スロットからの信号が共通の制御チップに経路指定されるように向上されてきた。物理的には、二重構成においては、２つのＤＩＭＭフォームファクタ・スイッチ／ネットワークアダプタボードは、リッジドフレックス（ridged flex）回路構成を用いて共に結合されて単一のアセンブリを形成し得る。ＤＩＭＭボードのうちの１つはまた、制御フィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）に装着されてもよく、これには両方のＤＩＭＭスロットからの信号が経路指定されてもよい。次いで、制御チップは、スロットの独立したクロックを用いて両方のスロットからデータを抽出する。両方のスロットからのデータを用いてデータパケットを形成し、これがシステムの他の部分に送信される。この明細書中に開示される技術が、同様の態様で、３つ以上のＤＩＭＭスロットと共に用いられてもよく、たとえば４つのＤＩＭＭスロットは４方向にインタリーブされたシステムとなる。
【０００９】
この発明に従うと、インタリーブされたメモリシステムは、ロックステップ（lock-step）において実行する２つ以上のメモリチャネルを用いる。ＤＩＭＭスロットのうちの１つへの接続がなされ、得られた信号がもとの組のＳＮＡＰTMボード信号と共に用いられる。これにより、動作の際に、メモリに対するデータバスの幅が有効に２倍（以上）にされる。この技術は、インタリーブされたメモリをサポートするメモリおよび入出力（「Ｉ／Ｏ」）コントローラ（「ノースブリッジ（North Bridge）」）チップを適切に選択することと共に実現可能である。
【００１０】
この明細書中に特に開示されるコンピュータシステムは、少なくとも１つのプロセッサと、プロセッサを制御ブロックおよびメモリバスに結合するためのコントローラと、メモリバスに結合された複数のメモリモジュールスロットと、複数のメモリモジュールスロットのサブセットに関連付けられるアダプタポートと、アダプタポートに結合されるプロセ
ッサ要素とを含む。好ましい実施例においては、当該アダプタポートはＤＩＭＭまたはＲＩＭＭフォームファクタに便宜的に設けられてもよい。
【００１１】
この明細書中に開示されるコンピュータシステムは、また、少なくとも１つのプロセッサと、プロセッサを制御ブロックおよびメモリバスに結合するためのインタリーブされたコントローラと、メモリバスに結合される複数のメモリスロットと、メモリスロットのうちの少なくとも２つに関連付けられるアダプタポートと、アダプタポートの各々に結合されるプロセッサ要素とを含む。
【００１２】
この発明の上述および他の特徴および目的、ならびにこれらを達成する態様がより明らかとなり、この発明自体は、添付の図面と関連して好ましい実施例の以下の記載を参照することにより最適に理解されるだろう。
【発明を実施するための最良の形態】
【００１３】
代表的な実施例の説明
図１を参照すると、コンピュータシステム１００の具体的な実施例の機能ブロック図が示され、当該コンピュータシステム１００は、周辺構成要素相互接続（「ＰＣＩ」）バスから得られる以上のデータ転送レートを大幅に向上させるためにＤＩＭＭフォーマットの多重適応プロセッサのチェーンを用いるクラスタ化されたコンピュータのためのスイッチ／ネットワークアダプタポートを含む。
【００１４】
図示される特定の実施例においては、コンピュータシステム１００は１つ以上のプロセッサ１０２0および１０２1を含み、当該１つ以上のプロセッサ１０２0および１０２1は関連するＰＣメモリおよびＩ／Ｏコントローラ１０４に結合される。動作の際に、コントローラ１０４は、ＰＣＩ制御ブロック１０６からの制御情報を送受信する。なお、この発明の代替的な実現例においては、制御ブロック１０６はまたアクセラレーテッド・グラフィックス・ポート（「ＡＧＰ」）またはシステムメンテナンス（「ＳＭ」）制御ブロックであってもよい。ＰＣＩ制御ブロック１０６は、帯域幅が比較的低いＰＣＩバス１１０によって１つ以上のＰＣＩカードスロット１０８に結合されることにより、実質的に２５６ＭＢ／ｓｅｃの速度でデータを転送することが可能となる。この発明の上述の代替的な実施例においては、カードスロット１０８は代替的にはアクセラレーテッド・グラフィックス・ポート（「ＡＧＰ」）またはシステムメンテナンス（「ＳＭ」）バス接続を含み得る。
【００１５】
コントローラ１０４はまた、実質的に２．１ＧＢ／ｓｅｃ以上のデータ転送レートを可能にする帯域幅のはるかに高いＤＩＭＭバス１１６によっていくつかのＤＩＭＭスロット１１４に便宜的に結合される。この発明の特定の実現例に従うと、ＤＩＭＭ  ＭＡＰ要素１１２は、ＤＩＭＭスロット１１４のうちの１つに関連付けられるかまたは物理的にその内部に位置する。ＰＣＩバス１１０とＤＩＭＭ  ＭＡＰ要素１１２とを相互接続する接続１１８によってＤＩＭＭ  ＭＡＰ要素１１２との間で制御情報がやりとりされる。次いで、ＤＩＭＭ  ＭＡＰ要素１１２が、ＭＡＰチェーンポートに接続されるクラスタ相互接続ファブリック接続１２０によって別のクラスタ化されたコンピュータＭＡＰ要素に結合され得る。これは後により十分に記載されるとおりである。ＤＩＭＭ  ＭＡＰ要素１１２がランバスＤＩＭＭ（「ＲＩＭＭ」）ＭＡＰ要素をも含み得ることに留意されたい。
【００１６】
ＤＩＭＭスロット１１４内に位置するＤＩＭＭメモリは、ＰＣマイクロプロセッサ１０２0、１０２1に対する主要な記憶位置を含むので、プロセッサバスに電気的に非常に「近く」なるよう設計され、こうして待ち時間が非常に短くなる。先述のとおり、ＤＩＭＭに関連付けられる待ち時間がＰＣＩバス１１０の待ち時間の僅か２５％のオーダとなることは珍しくない。本質的には、この帯域幅をコンピュータシステム１００間の相互接続として利用することにより、クラスタ性能の大幅な向上が実現され得る。
【００１７】
この目的のために、ＤＩＭＭ  ＭＡＰ要素１１２をＰＣのＤＩＭＭスロット１１４のうちの１つに配置することにより、（以下により十分に記載される）その制御チップが通常のメモリ「読出」および「書込」トランザクションを受取り、これらを、相互接続スイッチまたはネットワークによって用いられるフォーマットに変換し得る。後により十分に記載されるように、各ＭＡＰ要素１１２は、当該ＭＡＰ要素１１２を他のＭＡＰ要素１１２に結合することを可能にするチェーンポートを含む。チェーンポートを用いて接続１２０を介して外部のクラスタリングファブリックに接続することにより、データパケットがリモートノードに送信され、ここで、同一のボードによって受信され得る。この特定の応用例においては、ＤＩＭＭ  ＭＡＰ要素１１２はパケットからデータを抽出し、受信プロセッサ１０２が必要とするまでこれを記憶するだろう。
【００１８】
この技術により、ＰＣＩバス１１０などの現在利用可能ないかなるＰＣインターフェイスよりも数倍高いデータ転送レートがもたらされる。しかしながら、ＤＩＭＭの電気的プロトコルは、データが受信機に到着しても、ＤＩＭＭスロット１１４内のＤＩＭＭモジュールが当該データの到着をマイクロプロセッサ１０２に信号で伝える可能性がないようなものであり、この能力がないので、データが到着したかどうかを判断するためにＤＩＭＭ
ＭＡＰ要素１１２の連続したポーリングを用いることによってプロセッサ１０２の活動を同期させなければならない。このような技術はマイクロプロセッサ１０２とそのバス帯域幅の大部分とを完全に消費するため、他のすべてのバスエージェントを機能停止させることとなる。
【００１９】
この状況を避けるために、ＤＩＭＭ  ＭＡＰ要素１１２はさらに接続１１８を備えてもよく、これにより既存のＰＣＩバス１１０と通信することが可能となり、通信パケットが生成され、これらがＰＣＩバス１１０を介してプロセッサ１０２に送信され得る。移動させる全データのうちこれらのパケットが占める割合はほんの僅かにすぎないので、ＰＣＩバス１１０の低帯域幅の影響が最小限にされ、従来のＰＣＩ割込信号を用いて、データが到着したことをプロセッサ１０２に通知することもできる。この発明の別の実現例に従うと、プロセッサ１０２に信号を送るのにシステムメンテナンス（「ＳＭ」）バス（図示せず）がまた用いられてもよい。ＳＭバスはシリアル電流モードバスであり、従来、プロセッサボード上のさまざまな装置がプロセッサ１０２に割込むことを可能にする。代替的な実施例においては、プロセッサ１０２に信号を送るのにアクセラレーテッド・グラフィックス・ポート（「ＡＧＰ」）が用いられてもよい。
【００２０】
ＤＩＭＭスロット１１４全体たり得るものに関連付けられるＤＩＭＭ  ＭＡＰ要素１１２を用いる場合、ＰＣは、ＤＩＭＭ  ＭＡＰ要素１１２が用いるための、典型的には１ＧＢのオーダのアドレスの大きなブロックを割当てるだろう。これらのうちいくつかはコマンドとしてデコードされ得るが、ストレージとして用いられ得るものが依然として多い。周辺装置からデータを転送するのに用いられる通常の入出力（「Ｉ／Ｏ」）ブロックサイズと少なくとも同じ数のアドレス位置を有することにより、（コントローラ１０４を含む）大抵のＰＣで用いられる従来のインテル（Intel）（登録商標）チップセットは、ＤＩＭＭ  ＭＡＰ要素１１２への直接的なＩ／Ｏ転送を可能にするだろう。これにより、データがたとえばディスクから到着し、直接ＤＩＭＭ  ＭＡＰ要素１１２に渡ることが可能となる。これは、所望される如何なる態様にも変更されてもよく、パケット化され、接続１２０を介してリモートノードに伝送されてもよい。ディスクのＰＣＩバス１１０ならびにＤＩＭＭ  ＭＡＰ要素１１２およびＤＩＭＭスロット１１４が共にＰＣメモリコントローラ１０４によって制御されるので、プロセッサバス帯域幅はこの転送によっては消費されない。
【００２１】
或るＰＣにおいては、ＤＩＭＭスロット１１４内におけるいくつかのＤＩＭＭがインタ
リーブされて、より幅広いメモリアクセス能力がもたされることによりメモリ帯域幅が増大し得ることにも留意されたい。これらのシステムにおいては、前述の技術はまた、いくつかのＤＩＭＭスロット１１４において同時に利用され得る。しかしながら、選択された特定の実現例にも拘らず、最終結果として、ＰＣＩバス１１０への１つ以上の接続と接続１２０を介する外部のスイッチまたはネットワークとを有するＤＩＭＭベースのＭＡＰ要素１１２ということになり、これにより、ＰＣＩベースの接続の単独での性能や、データが相互接続ファブリックを通過する際のデータの処理能力が何倍にもされる。
【００２２】
加えて、図２Ａを参照すると、この発明に従ったスイッチ／ネットワークアダプタポート２００Ａの具体的な実施例の機能ブロック図が示される。上述の図に関連して開示されるものと同じ構造および機能には同じ参照符号が付けられ、これに対しては上述の説明で十分であるだろう。スイッチ／ネットワークアダプタポート２００Ａは、共通の制御要素２０２に結合されるインタリーブされたＤＩＭＭスロットフォームファクタのＳＮＡＰ要素２０４Ａおよび２０４Ｂの二重構成で示される。この実施例においては、コントローラ１０４は、チャネルＡ  ２１６ＡおよびチャネルＢ  ２１６ＢによってＤＩＭＭスロット１１４およびＳＮＡＰ要素２０４Ａ、２０４Ｂに双方向に結合されるインタリーブされたメモリコントローラである。
【００２３】
加えて図２Ｂを参照すると、この発明に従ったスイッチ／ネットワークアダプタポート２００Ｂの別の具体的な実施例の機能ブロック図が示される。また、上述の図に関連して開示されるものと同じ構造および機能には同じ番号が付けられ、これに対しては上述の説明で十分であるだろう。スイッチ／ネットワークアダプタポート２００Ｂは、共通の制御要素２０２に結合されるインタリーブされたＤＩＭＭスロットフォームファクタのＳＮＡＰ要素２０４Ａ〜２０４Ｄの四重構成で示される。この実施例においては、コントローラ１０４はまた、それぞれのチャネルＡ  ２１６Ａ、チャネルＢ  ２１６Ｂ、チャネルＣ  ２１６ＣおよびチャネルＤ  ２１６ＤによってＤＩＭＭスロット１１４ならびにＳＮＡＰ要素２０４Ａ、２０４Ｂ、２０４Ｃおよび２０４Ｄに双方向に結合されるインタリーブされたメモリコントローラである。
【００２４】
さらに図３を参照すると、SRC Computers, Inc.から入手可能なＳＲＣ−６Ｅコンピュータシステム３００の高レベルの機能ブロック図が示される。コンピュータシステム３００は、図２Ａおよび図２Ｂのスイッチ／ネットワークアダプタポート要素２０４を組込んでもよく、いくつかのＭＡＰ要素３０２0〜３０２Nを含んでおり、各々は、それぞれのスイッチ／ネットワークアダプタポート３０４0〜３０４Nによって対応するマイクロプロセッサボード３０６0〜３０６Nに結合されている。帯域幅が１２００ＭＢ／ｓｅｃ以上であるいくつかのチェーンポート３０８は、さまざまなＭＡＰ要素３０２0〜３０２NをＭＡＰ要素３０２0〜３０２Nのうちの別のものに結合する。動作の際に、コンピュータシステム３００は、データ共有が少なく、ＭＡＰ要素３０２の入出力（「Ｉ／Ｏ」）の利用が多く、プロセッサ間通信が非常に少ないプロセッサ利用に等しいＭＡＰ要素３０２を提供する。
【００２５】
加えて図４を参照すると、上述の図のＳＲＣ−６Ｅコンピュータシステム３００の一部のより詳細な機能ブロック図が計算システム４００として示され、さらに、ＭＡＰボード３０２の半分とともにプロセッサボード３０６の半分が示される。図示のとおり、プロセッサボード３０６は１対のマイクロプロセッサ４０２0および４０２1を含み、各々は関連するレベル２（「Ｌ２」）のキャッシュ４０４とメモリおよびＩ／Ｏコントローラ（たとえば「ノースブリッジ」）４０６とに結合されている。コントローラ４０６は、たとえば１つ以上の周辺構成要素相互接続（「ＰＣＩ」）スロット４０８および専用のメモリ４１０へのアクセスを提供する。専用のメモリ４１０は、たとえば、関連するスイッチ／ネットワークアダプタポート３０４を有するインタリーブされたＤＩＭＭまたはＲＩＭＭスロ
ットを含み得る。これは以下により十分に記載されるとおりである。
【００２６】
ＭＡＰ要素３０２は制御ブロックまたは制御チップ４１２を含み、これが、プロセッサボード３０６におけるスイッチ／ネットワークアダプタポート３０４に結合されて、これを制御する。制御チップ４１２はフィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）を含み得るが、オンボードメモリ４１４に結合されており、当該オンボードメモリ４１４は、たとえばデュアルポートのスタティックランダムアクセスメモリ（「ＳＲＡＭ」）または他の種類のメモリ素子を含み得る。オンボードメモリ４１４はまた、（ＦＰＧＡとしても設けられ得る）１つ以上のユーザチップ４１６0および４１６1に結合される。
【００２７】
加えて図５を参照すると、上述の図のＭＡＰ要素３０２のより詳細なさらなる機能ブロック図が示される。この図においては、制御ＦＰＧＡ４１２、オンボードメモリ４１４、ユーザＦＰＧＡ４１６0および４１６1ならびにそれらの間のさまざまな接続の帯域幅をより詳細に示す機能ブロック５００が示される。また、制御ＦＰＧＡ４１２の動作を特定するためのマイクロコード読出専用メモリ（「ＲＯＭ」）５０２および構成ＲＯＭ５０４が示され、さらに、ジョイント・テスト・アクション・グループ（「ＪＴＡＧ」）の米国電気電子学会（ＩＥＥＥ  １１４９．１）規格の境界スキャン接続がいくつか示される。計算システム全体においてさまざまなＭＡＰ要素３０２を直接結合するためのいくつかのチェーンポート３０８が示される。
【００２８】
好ましい実施例においては、制御ＦＰＧＡ４１２は、ザイリンクス（Xilinx, Inc.）から入手可能なＶｉｒｔｅｘ  ＩＩ  ＸＣ２Ｖ６０００デバイスを含み得る。これは、ユーザＦＰＧＡ４１６を制御するためのダイレクトメモリアクセス（「ＤＭＡ」）機能で実現される６００万個のゲートを含み得る。同様に、ユーザＦＰＧＡ４１６はまた、多重周波数に対し１００ＭＨｚクロックの位相ロックループ（「ＰＬＬ」）で実現されるＸＣ２Ｖ６０００デバイスを含み得る。オンボードメモリ４１４は、６４ビットのデータ経路を備え１００ＭＨｚで動作可能な２４Ｍバイトの６個のデュアルポートメモリバンクを含み得る。
【００２９】
加えて図６を参照すると、図４および図５に示されたＭＡＰ要素３０２の制御ブロック４１２のより詳細なさらなる機能ブロック図が機能ブロック６００として示される。上述のとおり、制御ブロック４１２は、プロセッサボード３０６のスイッチ／ネットワークアダプタポート３０４と、オンボードメモリ４１４およびユーザチップ４１６とに結合される。
【００３０】
制御ブロック４１２は、コマンドリスト（「ＣｏｍＬｉｓｔ」）を処理し、かつＤＭＡ要求を発行するためのコマンドプロセッサ６０２を含む。オンボードメモリ６０４に対するＤＭＡエンジンはコマンドプロセッサ６０２に結合され、当該ＤＭＡエンジンを用いてオンボードメモリ４１４の６個のメモリバンクを線形ストライドでアドレス指定し、１６エントリの不規則なアクセスをもたらす。外部アクセス６０８に対する別のＤＭＡエンジンがまたコマンドプロセッサ６０２に結合され、ＭＡＰ要素３０２の外部のメモリに対するＤＭＡ動作を実行する。これもストライドの能力を有し、順序がばらばらな応答のトラックを維持する。
【００３１】
ＤＭＡエンジン６０８はパケット化装置６０６に結合され、当該パケット化装置６０６は伝送すべき３２バイトのパケットを形成し、誤り訂正符号（「ＥＣＣ」）を生成して、送受信されるデータの妥当性を確実にする。非パケット化装置６１０はまたＤＭＡエンジン６０８に関連付けられ、データパケットの妥当性をチェックするよう機能し、かつＥＣＣデータをチェックして訂正するよう機能する。データレジスタ６１２およびフラグレジスタ６１４はコマンドプロセッサ６０２とユーザチップ４１６との間に結合される。前者
は１６組のデータを保持し、各組は３２個の６４ビット値を含み、後者は３２個の１ビット値を保持する。
【００３２】
制御ブロック４１２はまた、いくつかの記憶位置を含み、図示される具体的な実施例においては、コマンドプロセッサ６０２とＤＭＡエンジン６０８との間に結合される記憶０ブロック６１６および記憶１ブロック６１８を含む。記憶０ブロック６１６は、第１のＣｏｍＬｉｓｔと制御ブロック４１２に対するユーザ構成データの第１の位置とを保持するのに用いられる。記憶１ブロック６１８は、第２のＣｏｍＬｉｓｔとユーザ構成データの第２の位置とを保持する。ユーザチップコンフィギュレータ６２０はコマンドプロセッサ６０２およびユーザチップ４１６に結合されてユーザ論理ビットストリームを制御し、ユーザチップ４１６0および４１６1の各々を構成する。
【００３３】
さらに図７を参照すると、代表的なスイッチ／ネットワークアダプタポート３０４のより詳細な追加の機能ブロック図が、図３および図４に示されたコンピュータシステムと共に用いることのできる機能ブロック７００として示される。スイッチ／ネットワークアダプタポート３０４は便宜的にフォームファクタに設けられてマイクロプロセッサボード３０６（図３）のＤＩＭＭまたはＲＩＭＭスロットに差込まれてもよく、ＭＡＰ要素３０２を１つ以上のマイクロプロセッサ４０２、たとえば図１、図２Ａおよび図２Ｂのマイクロプロセッサ１０２に相互接続させる。この点に関して、スイッチ／ネットワークアダプタポート３０４は、データおよびアドレス情報を、たとえばダブルデータレート（「ＤＤＲ」）メモリインターフェイス７０２と１つ以上のマイクロプロセッサ４０２との間で交換するよう結合されてもよい。
【００３４】
スイッチ／ネットワークアダプタポート３０４はパケット化装置７０４を含み、当該パケット化装置７０４はＭＡＰ要素３０２に結合されて、ＤＭＡヘッダパケット応答を与え、機能性ならびにＥＣＣチェックバイト生成を再試行する。非パケット化装置７０６がまたＭＡＰ要素３０２に結合され、当該非パケット化装置７０６は、スイッチ／ネットワークアダプタポート３０４が受信したデータ上でＤＭＡヘッダパケットソート、データ要求パケットソートならびにＥＣＣチェックおよび訂正機能を実行する。読出バッファ７０８は非パケット化装置７０６に結合され、図示される具体的な実施例においては、「読出」データの１０２４本のキャッシュラインを保持するための３２Ｋバイト以上の能力を備える。対応する書込バッファ７１０はパケット化装置７０４に結合される。当該対応する書込バッファ７１０はまた、「書込」データの１０２４本のキャッシュラインを保持するための３２Ｋバイト以上の能力を有し得る。
【００３５】
メモリバスデータマルチプレクサ７１２は、ＤＤＲメモリインターフェイス７０２のデータバスと読出バッファ７０８および書込バッファ７１０との間に結合される。メモリバスデータマルチプレクサ７１２はこれらの要素間でデータマルチプレクサとして機能するが、アドレスおよびコマンドデコードブロック７１４はＤＤＲメモリインターフェイス７０２のアドレスバスとマルチプレクサ７１２との間に結合されて、メモリバスデータマルチプレクサ７１２のデータ読出／書込機能を制御して、情報を状態および構成レジスタ７１８に維持し、ダイレクトコマンドをＭＡＰ要素３０２へと送信する。この点に関して、シリアルダイレクトコマンドフォーマッタ７１６がアドレスおよびコマンドデコードブロック７１４に結合されて、ＭＡＰ要素３０２にダイレクトコマンドサポートを与える。
【００３６】
加えて図８を参照すると、ＭＡＰ制御ブロック４１２とスイッチ／ネットワークアダプタポート３０４と（たとえば図４の）１つ以上のマイクロプロセッサ４０２との間の相互作用を示す図が、この発明に従ったスイッチ／ネットワークアダプタポートを利用するコンピュータシステムの動作の一例として提供される。
【００３７】
この代表的な「読出」動作の際に、ＭＡＰ制御ブロック４１２はまずＣｏｍＬｉｓｔを処理し、要求されるデータのアドレスおよび長さを含む「読出」要求を発行する。この要求は、関連するスイッチ／ネットワークアダプタポート３０４に転送され、そこで処理される。スイッチ／ネットワークアダプタポート３０４はその制御レジスタを更新し、要求されるデータのアドレスおよび長さをマイクロプロセッサ４０２に送信する。マイクロプロセッサ４０２は、「読出」または「書込」要求を待つＤＭＡスレッドを有する。次いで、これがデータ要求を処理し、要求しているスイッチ／ネットワークアダプタポート３０４に対し要求されたデータを転送する。スイッチ／ネットワークアダプタポート３０４は受信したデータのデータ書込を処理し、ＭＡＰ制御ブロック４１２にデータを転送するために先入れ先出しレジスタを充填し始める。ＭＡＰ制御ブロック４１２のＤＭＡエンジン６０８（図６）が当該データを受信し、当該データはＤＭＡエンジン６０４によってオンボードメモリ４１４に書込まれる。図示される具体的な実施例においては、この動作全体に対する総待ち時間は、ＭＡＰ制御ブロック４１２が要求を発行した時間からデータの第１のストリームが受信されるまで１．０ナノ秒のオーダである。
【００３８】
特定のシステム実現例および技術との関連でこの発明の原理を説明してきたが、上述の記載が例としてのみなされ、この発明の範囲を限定するものではないことが明確に理解されるだろう。特に、上述の開示の教示は当業者に他の変形例を示唆するであろうことが認められる。このような変形例は、それ自体が既に公知であって、ここに既に記載された特徴の代わりにまたはこれに加えて使用され得る他の特徴をも含み得る。この出願では特許請求の範囲は特徴の特定の組合せについて作成されているが、ここにおける開示の範囲は、明示的または暗示的に開示されたあらゆる新規の特徴もしくはあらゆる新規の特徴の組合せ、または当業者に明らかであろうその一般例もしくは変形例をも含み、これは、そのようなものがいずれかの請求項で現在請求されているものと同じ発明に関しているか否かにかかわらず、かつこれがこの発明が直面するものと同じ技術的問題のいずれかまたはすべてを軽減するか否かにかかわらないことを理解されたい。出願人は、この出願またはこれより発生する出願すべての審査手続期間において、そのような特徴および／またはそのような特徴の組合せに対して新たな請求項を作成する権利をこれにより留保する。
【図面の簡単な説明】
【００３９】
【図１】周辺構成要素相互接続（「ＰＣＩ」）バスから得られる以上のデータ転送レートを大幅に向上させるために、ＤＩＭＭフォーマットの多重適応プロセッサのチェーンを用いるクラスタ化されたコンピュータのためのスイッチ／ネットワークアダプタポートの具体的な実施例を示す機能ブロック図である。
【図２Ａ】共通の制御要素に結合されるインタリーブされたＤＩＭＭスロットフォームファクタのＳＮＡＰ要素の二重構成を示す、この発明に従ったスイッチ／ネットワークアダプタポートの具体的な実施例を示す機能ブロック図である。
【図２Ｂ】共通の制御要素に結合されるインタリーブされたＤＩＭＭスロットフォームファクタのＳＮＡＰ要素の四重構成を示す、この発明に従ったスイッチ／ネットワークアダプタポートの別の具体的な実施例を示す更なる機能ブロック図である。
【図３】前述の図のスイッチ／ネットワークアダプタポート要素を組込み得、各プロセッサボードがそれ自体のＭＡＰ要素に結合されており、SRC Computers, Inc.から入手可能なＳＲＣ−６Ｅコンピュータシステムを示す高レベルの機能ブロック図である。
【図４】ＭＡＰボードの半分とともにプロセッサボードの半分を示す、前述の図のＳＲＣ−６Ｅコンピュータシステムの一部を示すより詳細な機能ブロック図である。
【図５】制御ＦＰＧＡ、オンボードメモリおよびユーザＦＰＧＡを特に示し、前述の図のＭＡＰ要素を示すより詳細なさらなる機能ブロック図である。
【図６】図４および図５に示されたＭＡＰボードの制御ブロックまたはチップを示すより詳細なさらなる機能ブロック図である。
【図７】図３および図４に示されるコンピュータシステムと共に用いるための代表的なスイッチ／ネットワークアダプタポートを示すより詳細な追加の機能ブロック図である。
【図８】この発明に従ったスイッチ／ネットワークアダプタポートを利用するコンピュータシステムの動作におけるＭＡＰ制御ブロックとスイッチ／ネットワークアダプタポートとマイクロプロセッサとの間の相互作用を示す図である。
【図１】
0004703189.tif 000002
【図２Ａ】
0004703189.tif 000003
【図２Ｂ】
0004703189.tif 000004
【図３】
0004703189.tif 000005
【図４】
0004703189.tif 000006
【図５】
0004703189.tif 000007
【図６】
0004703189.tif 000008
【図７】
0004703189.tif 000009
【図８】
0004703189.tif 000010