(57)【要約】デュアル・インライン・メモリモジュール（ＤＩＭＭ）またはRambus（Ｒ）インライン・メモリモジュール（ＲＩＭＭ）フォーマットにおいてマルチアダプティブプロセッサ要素（２０２）を採用することで、データ転送レートを、標準的な周辺構成要素相互接続（ＰＣＩ）バスを用いて利用可能であったレートに対して大幅に向上させた、クラスタ型コンピュータ用スイッチ／ネットワークアダプタポート。特に、マイクロプロセッサベースのコンピュータシステムであって、外部スイッチ、ネットワークまたはその他の装置との接続を実現することを目的として、ＤＩＭＭまたはＲＩＭＭ物理フォーマットプロセッサ要素を用いるコンピュータシステムが開示される。特定の実施例では、制御情報をホストマイクロプロセッサまたはその他の制御チップに渡すことを目的として、ＰＣＩ、アクセラレーテッド・グラフィックス・ポート（ＡＧＰ）またはシステム管理（ＳＭ）バスへの接続が設けられ得る。フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）ベースのプロセッサ要素は、ここを通過して外部相互接続構造または装置を出入りするデータを変更する能力を有する。
2005500621.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサを周辺バス制御ブロックおよびメモリモジュールバスに結合するためのコントローラと、
周辺バスによって前記周辺バス制御ブロックに結合された少なくとも１つの周辺バススロットと、
前記メモリモジュールバスに結合された少なくとも１つのメモリモジュールスロットと、
プロセッサ要素とを備え、前記プロセッサ要素は、前記少なくとも１つのメモリモジュールスロットに関連付けられて、前記プロセッサ要素に結合された外部装置にデータ接続をもたらす、コンピュータシステム。
【請求項２】
さらに、
前記周辺バスに結合されて、前記プロセッサ要素への前記データ接続を介したデータの到着を、前記少なくとも１つのプロセッサに示すための、前記プロセッサ要素への制御接続を備える、請求項１に記載のコンピュータシステム。
【請求項３】
前記メモリモジュールバスはＤＩＭＭバスを含む、請求項１に記載のコンピュータシステム。
【請求項４】
前記プロセッサ要素は、前記少なくとも１つのメモリモジュールスロット内での保持のためのＤＩＭＭ物理フォーマットを含む、請求項３に記載のコンピュータシステム。
【請求項５】
前記メモリモジュールバスはＲＩＭＭバスを含む、請求項１に記載のコンピュータシステム。
【請求項６】
前記プロセッサ要素は、前記少なくとも１つのメモリモジュールスロット内での保持のためのＲＩＭＭ物理フォーマットを含む、請求項５に記載のコンピュータシステム。
【請求項７】
前記外部装置は、別のコンピュータシステム、スイッチまたはネットワークのうち１つを含む、請求項１に記載のコンピュータシステム。
【請求項８】
前記周辺バスはＰＣＩバスを含む、請求項１に記載のコンピュータシステム。
【請求項９】
前記プロセッサ要素は、前記データ接続を介した前記外部装置への送信前に、前記メモリモジュールバスを介して前記コントローラから受取ったデータを変更するように動作する、請求項１に記載のコンピュータシステム。
【請求項１０】
前記プロセッサ要素は、前記メモリモジュールバスを介した前記コントローラへの送信前に、前記外部装置から前記データ接続を介して受取ったデータを変更するように動作する、請求項１に記載のコンピュータシステム。
【請求項１１】
前記プロセッサ要素は
フィールド・プログラマブル・ゲートアレイを含み、前記フィールド・プログラマブル・ゲートアレイは、前記メモリモジュールバスおよび前記データ接続を介して前記フィールド・プログラマブル・ゲートアレイに与えられたオペランドに対して、識別されたアルゴリズムを実行するように構成可能である、請求項１に記載のコンピュータシステム。
【請求項１２】
前記少なくとも１つのプロセッサは複数のプロセッサを含む、請求項１に記載のコンピュータシステム。
【請求項１３】
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサをグラフィックス制御ブロックおよびメモリモジュールバスに結合するためのコントローラと、
グラフィックスバスによって前記グラフィックス制御ブロックに結合された少なくとも１つのグラフィックスバス接続と、
前記メモリモジュールバスに結合された少なくとも１つのメモリモジュールスロットと、
プロセッサ要素とを備え、前記プロセッサ要素は、前記少なくとも１つのメモリモジュールスロットに関連付けられて、前記プロセッサ要素に結合された外部装置にデータ接続をもたらす、コンピュータシステム。
【請求項１４】
さらに、
前記グラフィックスバスに結合されて、前記プロセッサ要素への前記データ接続を介したデータの到着を、前記少なくとも１つのプロセッサに示すための、前記プロセッサ要素への制御接続を備える、請求項１３に記載のコンピュータシステム。
【請求項１５】
前記メモリモジュールバスはＤＩＭＭバスを含む、請求項１３に記載のコンピュータシステム。
【請求項１６】
前記プロセッサ要素は、前記少なくとも１つのメモリモジュールスロット内での保持のためのＤＩＭＭ物理フォーマットを含む、請求項１５に記載のコンピュータシステム。
【請求項１７】
前記メモリモジュールバスはＲＩＭＭバスを含む、請求項１３に記載のコンピュータシステム。
【請求項１８】
前記プロセッサ要素は、前記少なくとも１つのメモリモジュールスロット内での保持のためのＲＩＭＭ物理フォーマットを含む、請求項１７に記載のコンピュータシステム。
【請求項１９】
前記外部装置は、別のコンピュータシステム、スイッチまたはネットワークのうち１つを含む、請求項１３に記載のコンピュータシステム。
【請求項２０】
前記周辺バスはＡＧＰバスを含む、請求項１３に記載のコンピュータシステム。
【請求項２１】
前記プロセッサ要素は、前記データ接続を介した前記外部装置への送信前に、前記メモリモジュールバスを介して前記コントローラから受取ったデータを変更するように動作する、請求項１３に記載のコンピュータシステム。
【請求項２２】
前記プロセッサ要素は、前記メモリモジュールバスを介した前記コントローラへの送信前に、前記外部装置から前記データ接続を介して受取ったデータを変更するように動作する、請求項１３に記載のコンピュータシステム。
【請求項２３】
前記プロセッサ要素は
フィールド・プログラマブル・ゲートアレイを含み、前記フィールド・プログラマブル・ゲートアレイは、前記メモリモジュールバスおよび前記データ接続を介して前記フィールド・プログラマブル・ゲートアレイに与えられたオペランドに対して、識別されたアルゴリズムを実行するように構成可能である、請求項１３に記載のコンピュータシステム。
【請求項２４】
前記少なくとも１つのプロセッサは複数のプロセッサを含む、請求項１３に記載のコンピュータシステム。
【請求項２５】
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサをシステム管理制御ブロックおよびメモリモジュールバスに結合するためのコントローラと、
システム管理バスによって前記システム管理制御ブロックに結合された少なくとも１つのシステム管理バス接続と、
前記メモリモジュールバスに結合された少なくとも１つのメモリモジュールスロットと、
プロセッサ要素とを備え、前記プロセッサ要素は、前記少なくとも１つのメモリモジュールスロットに関連付けられて、前記プロセッサ要素に結合された外部装置にデータ接続をもたらす、コンピュータシステム。
【請求項２６】
さらに、
前記システム管理バスに結合されて、前記プロセッサ要素への前記データ接続を介したデータの到着を、前記少なくとも１つのプロセッサに示すための、前記プロセッサ要素への制御接続を備える、請求項２５に記載のコンピュータシステム。
【請求項２７】
前記メモリモジュールバスはＤＩＭＭバスを含む、請求項２５に記載のコンピュータシステム。
【請求項２８】
前記プロセッサ要素は、前記少なくとも１つのメモリモジュールスロット内での保持のためのＤＩＭＭ物理フォーマットを含む、請求項２７に記載のコンピュータシステム。
【請求項２９】
前記メモリモジュールバスはＲＩＭＭバスを含む、請求項２５に記載のコンピュータシステム。
【請求項３０】
前記プロセッサ要素は、前記少なくとも１つのメモリモジュールスロット内での保持のためのＲＩＭＭ物理フォーマットを含む、請求項２９に記載のコンピュータシステム。
【請求項３１】
前記外部装置は、別のコンピュータシステム、スイッチまたはネットワークのうち１つを含む、請求項２５に記載のコンピュータシステム。
【請求項３２】
前記周辺バスはＳＭバスを含む、請求項２５に記載のコンピュータシステム。
【請求項３３】
前記プロセッサ要素は、前記データ接続を介した前記外部装置への送信前に、前記メモリモジュールバスを介して前記コントローラから受取ったデータを変更するように動作する、請求項２５に記載のコンピュータシステム。
【請求項３４】
前記プロセッサ要素は、前記メモリモジュールバスを介した前記コントローラへの送信前に、前記外部装置から前記データ接続を介して受取ったデータを変更するように動作する、請求項２５に記載のコンピュータシステム。
【請求項３５】
前記プロセッサ要素は
フィールド・プログラマブル・ゲートアレイを含み、前記フィールド・プログラマブル・ゲートアレイは、前記メモリモジュールバスおよび前記データ接続を介して前記フィールド・プログラマブル・ゲートアレイに与えられたオペランドに対して、識別されたアルゴリズムを実行するように構成可能である、請求項２５に記載のコンピュータシステム。
【請求項３６】
前記少なくとも１つのプロセッサは複数のプロセッサを含む、請求項２５に記載のコンピュータシステム。
【請求項３７】
コンピュータシステムのメモリモジュールバスのためのプロセッサ要素であって、前記プロセッサ要素は、
フィールド・プログラマブル・ゲートアレイを備え、前記フィールド・プログラマブル・ゲートアレイは、前記フィールド・プログラマブル・ゲートアレイに与えられたオペランドに対して、識別されたアルゴリズムを実行するように構成可能であり、かつ前記メモリモジュールバスを介して前記フィールド・プログラマブル・ゲートアレイに与えられたデータを変更するように動作し、前記プロセッサ要素はさらに
データ接続を備え、前記データ接続は、前記フィールド・プログラマブル・ゲートアレイに結合されて、前記プロセッサ要素に結合された外部装置に前記変更されたデータを与える、プロセッサ要素。
【請求項３８】
さらに、
前記プロセッサ要素に結合されて、前記外部装置からの前記データ接続を介したデータの到着を前記コンピュータシステムのプロセッサに示すための制御接続を備える、請求項３７に記載のプロセッサ要素。
【請求項３９】
前記制御接続は、周辺バスを用いて前記データの到着を前記プロセッサに示す、請求項３８に記載のプロセッサ要素。
【請求項４０】
前記周辺バスはＰＣＩバスを含む、請求項３９に記載のプロセッサ要素。
【請求項４１】
前記制御接続は、グラフィックスバスを用いて前記データの到着を前記プロセッサに示す、請求項３８に記載のプロセッサ要素。
【請求項４２】
前記グラフィックスバスはＡＧＰバスを含む、請求項４１に記載のプロセッサ要素。
【請求項４３】
前記制御接続は、システム管理バスを用いて前記データの到着を前記プロセッサに示す、請求項３８に記載のプロセッサ要素。
【請求項４４】
前記グラフィックスバスはＳＭバスを含む、請求項４３に記載のプロセッサ要素。
【請求項４５】
前記メモリモジュールバスはＤＩＭＭバスを含む、請求項３７に記載のプロセッサ要素。
【請求項４６】
前記プロセッサ要素はＤＩＭＭ物理フォーマットを含む、請求項４５に記載のプロセッサ要素。
【請求項４７】
前記メモリモジュールバスはＲＩＭＭバスを含む、請求項３７に記載のプロセッサ要素。
【請求項４８】
前記プロセッサ要素はＲＩＭＭ物理フォーマットを含む、請求項４７に記載のプロセッサ要素。
【請求項４９】
前記外部装置は、別のコンピュータシステム、スイッチまたはネットワークのうち１つを含む、請求項３７に記載のプロセッサ要素。
【請求項５０】
前記コンピュータシステムの前記プロセッサは複数のプロセッサを含む、請求項３７に記載のプロセッサ要素。
【請求項５１】
前記フィールド・プログラマブル・ゲートアレイはさらに、前記データ接続を介して前記外部装置から前記フィールド・プログラマブル・ゲートアレイに与えられたデータを変更して、前記変更されたデータを前記メモリモジュールバスに与えるように動作する、請求項３７に記載のプロセッサ要素。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の背景
この発明は一般的に、多数のプロセッサ要素を組込んだコンピュータアーキテクチャの分野に関する。より特定的には、この発明は、クラスタ型コンピュータ用スイッチ／ネットワークアダプタポート（ＳＮＡＰ）であって、デュアル・インライン・メモリモジュール（Dual In-line Memory Module：ＤＩＭＭ）フォーマットにおいて一連のマルチアダプティブプロセッサ（Multi-Adaptive Processor：ＭＡＰ（Ｒ）、エス・アール・シィ・コンピューターズ・インコーポレイテッド（SRC Computers Inc.）の登録商標）を採用することで、データ転送レートを周辺構成要素相互接続（Peripheral Component Interconnect：ＰＣＩ）バスで利用可能であったレートに対して大幅に向上させたものに関する。
【背景技術】
【０００２】
プロセッサカウントが大きくて経済的なコンピュータをもたらす現在最も有望な方法の中には、パーソナルコンピュータ（ＰＣ）で一般的に見られるような比較的低価格のマイクロプロセッサベースのボードをいくつかまとめてクラスタ化することに関する方法がある。次にこれらさまざまなボードを、利用可能なクラスタ化ソフトウェアを用いて動作させ、こうしてこれらは１つ以上の大きな問題を解くように一斉に実行を行なう。このように問題を解くプロセスの際、プロセッサボード間で中間計算結果が共有されることが多い。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
現在利用可能な技術を利用した場合、この共有は周辺構成要素相互接続（ＰＣＩ）バス経由で行なわれることになるが、これは現在のＰＣで一般的に見られる最も高性能の外部インターフェイスバスである。このバスにはさまざまな利用可能なバージョンがあるが、これらはすべて１ＧＢ／秒未満の帯域幅に限定され、かつこれらはプロセッサバスよりも数レベル下のチップに位置するため、いずれも極めて長い待ち時間を呈する。低価格ＰＣにおいては、このバスは典型的に２５６ＭＢ／秒のオーダの帯域幅を提供するに過ぎない。
【０００４】
これらの要因は、個々としても全体としても、クラスタの全体的な有効性を大幅に制限するおそれがあり、より高速のインターフェイスを見つけることができれば、クラスタが大きな問題を解く能力は大幅に増大するであろう。残念ながら、このようなポートを与えることができる新たな専用のチップセットを設計することは極めて高価であるばかりでなく、遭遇するクラスタ化相互接続の種類ごとに特化しなければならないであろう。当然のことながら、これによってチップセットのいずれの１バージョンについても潜在的な売上量は比較的少なくなり、非経済的となるであろう。
【課題を解決するための手段】
【０００５】
発明の概要
この発明の技術に従い、既存の標準ＰＣメモリバスをマルチアダプティブプロセッサ（ＭＡＰ（Ｒ）、ＳＲＣコンピューターズ・インコーポレイテッドの登録商標）との関連で用いて、このデータ転送レートの問題を一般的に適用可能な態様で解決することを可能にするシステムおよび方法が提供される。この目的のために、クラスタ型コンピュータ用スイッチ／ネットワークアダプタポートであって、ＤＩＭＭフォーマットにおいて一連のマルチアダプティブプロセッサを採用することで、データ転送レートをＰＣＩバスで利用可能であったレートに対して大幅に向上させたものがここに開示される。
【０００６】
今日のＰＣにおいて最も一般的に用いられるメモリフォーマットの１つとしてデュアル・インライン・メモリモジュール（ＤＩＭＭ）フォーマットがある。このモジュールは現在、ダブルデータレート（Double Data Rate：ＤＤＲ）フォーマットと呼ばれるものにおいて利用可能であり、このフォーマットを使用したＰＣは今日最大１．６ＧＢ／秒の帯域幅を提供できるメモリバスを組込む。近い将来、このバスはさらに拡張されて最大３．２ＧＢ／秒の帯域幅を有するクワッドデータレート（Quad Data Rate：ＱＤＲ）ＤＩＭＭをサポートすることになるであろう。現在利用可能な代替的なメモリの形態としてはRambusＤＩＭＭ（ＲＩＭＭ）がある。ＲＩＭＭの基本的な特徴は標準的なＤＩＭＭと類似であるため、先の議論および後の開示のためには、ＤＩＭＭという用語を両方のメモリの形態を表わすために用いる。
【０００７】
ＤＩＭＭメモリはＰＣマイクロプロセッサのための主記憶場所を構成するので、プロセッサバスに対して電気的に極めて「近く」設計されるため、極めて短い待ち時間を呈し、ＤＩＭＭに関連する待ち時間はＰＣＩバスのわずか２５％のオーダであることも珍しくない。本質的にこの帯域幅をコンピュータ間の相互接続として活用することで、大幅に増大したクラスタ性能が実現可能である。
【０００８】
この目的のために、ＭＡＰ要素を（たとえばＤＩＭＭ物理フォーマットで）ＰＣのＤＩＭＭスロットの１つに置くことにより、このＭＡＰ要素のフィールド・プログラマブル・ゲートアレイ（Field Programmable Gate Array：ＦＰＧＡ）は、通常のメモリ「読出」および「書込」トランザクションを受入れて、これらを相互接続スイッチまたはネットワークの用いるフォーマットに変換することができる。
【０００９】
上述の特許および特許出願に開示するように、各ＭＡＰ要素は、これを他のＭＡＰ要素と結合できるようにするためのチェーンポートを含み得る。このチェーンポートを用いて外部クラスタ化構造との接続を行なうことで、データパケットを遠隔ノードに送ることが可能となり、ここでこれらのパケットは同一のボードによって受けられ得る。この特定の応用例では、ＭＡＰ要素はパケットからデータを抽出して、受信側プロセッサが必要とするまでこれを記憶することになる。
【００１０】
この技術の結果として、データ転送レートは現在入手可能ないずれのＰＣインターフェイスよりも数倍高くなる。しかしＤＩＭＭの電気プロトコルでは、データが一旦受信側に到着すると、これが到着したことをＤＩＭＭモジュールがマイクロプロセッサに通知することはできず、これができないため、ＭＡＰ要素の連続的なポーリングを用いてデータが到着したかどうかを判断することでプロセッサの活動を同期化しなければならない。このような技術はマイクロプロセッサを完全に消費し、かつそのバス帯域幅のほとんどを消費してしまうため、その他のバスエージェントすべてをストールしてしまう。
【００１１】
この状況を回避するため、ＤＩＭＭ  ＭＡＰ要素にはさらに、これが既存のＰＣＩバスと通信できるようにするための接続を設けることができ、こうしてＤＩＭＭ  ＭＡＰ要素は通信制御パケットを生成して、ＰＣＩバス経由でプロセッサに送ることができる。これらパケットは動かされるデータ全体のうち極めて小さな割合しか占めないため、ＰＣＩバスの帯域幅が小さいことの影響は最小限に抑えられ、さらに従来のＰＣＩ中断信号を用いてデータが到着したことをプロセッサに通知することもできる。この発明の別の実現例に従うと、システム管理（ＳＭ）バスを用いてプロセッサに通知を行なうこともできる。ＳＭバスは直列カレントモードのバスであり、従来のやり方でプロセッサボード上のさまざまな装置がプロセッサを中断できるようにする。
【００１２】
ＭＡＰ要素を、ＤＩＭＭスロット全体であり得るものと関連付けることによって、ＰＣは、典型的に１ＧＢのオーダの大きなブロックのアドレスを、ＭＡＰ要素による使用に割当てることになる。これらアドレスのうちいくつかは、（上述の特許および特許出願に開示するように）コマンドとしてデコードされ得るが、多くは記憶場所としてなお使用可能である。少なくとも、データを周辺機器から転送するのに用いる通常の入力／出力（Ｉ／Ｏ）ブロックサイズと同数のアドレス場所を設けることで、ほとんどのＰＣで使用される従来のインテル（Intel）（Ｒ）チップセットはＭＡＰ要素への直接のＩ／Ｏ転送を可能にする。そしてこれにより、データはたとえばディスクから到着して直接ＭＡＰ要素に入ることができる。次にこれは所望の任意の態様で変更を加えられ、パケット化されて遠隔ノードへ送信され得る。ディスクのＰＣＩポートも、ＭＡＰ要素のＤＩＭＭスロットも、ＰＣメモリコントローラで制御されるため、この転送によりプロセッサバス帯域幅は消費されない。
【００１３】
なお、いくつかのＰＣにおいては、いくつかのＤＩＭＭをインタリーブしてメモリアクセス能力を拡大し、こうしてメモリ帯域幅を増加させることもできる。これらシステムにおいては、上述の技術をいくつかのＤＩＭＭスロットで並行的に用いることもできる。それでも特定の選択した実現例にかかわらず最終的な結果としては、ＰＣＩバスおよび外部スイッチまたはネットワークへの１つ以上の接続を有するＤＩＭＭベースのＭＡＰ要素が得られ、その結果、ＰＣＩベースの接続のみの数倍の性能が得られ、さらにデータが相互接続構造を通過する際にこのデータを処理する能力もまた数倍となる。
【００１４】
ここで特定的に開示されるのは、マイクロプロセッサベースのコンピュータシステムであって、外部スイッチ、ネットワークまたはその他の装置との接続を実現することを目的として、ＤＩＭＭまたはＲＩＭＭベースのＭＡＰ要素を利用したものである。さらに、ＤＩＭＭまたはＲＩＭＭベースのＭＡＰ要素であって、制御情報をホストマイクロプロセッサまたは他の制御チップに渡すことを目的としたＰＣＩまたはＳＭバスへの接続を有するＭＡＰ要素がここで開示される。さらに、ＤＩＭＭまたはＲＩＭＭベースのＭＡＰ要素であって、ここを通過して外部相互接続構造または装置に出入りするデータを変更させることができるＭＡＰ要素がここで開示される。
【００１５】
この発明の上述およびその他の特徴および目的、ならびにこれらを達成する態様は、添付の図面と関連させながら好ましい実施例の以下の説明を参照することでさらに明らかになり、かつ発明それ自体が最もよく理解されるであろう。
【発明を実施するための最良の形態】
【００１６】
例示的な実施例の説明
まず、図１を参照して、上述の特許および特許出願の開示に従うマルチプロセッサコンピュータ１０のアーキテクチャを示す。マルチプロセッサコンピュータ１０は、メモリ相互接続構造１４と双方向に結合されたＮ個のプロセッサ１２0〜１２Nを組込む。メモリ相互接続構造１４はさらに、メモリバンクサブシステム１６0（バンク０）〜１６M（バンクＭ）を含むＭ個のメモリバンクに結合される。或る数のマルチアダプティブプロセッサ要素（ＭＡＰ（Ｒ））１１２（続く図面でより具体的に示す）が１つ以上のメモリバンク１６と関連付けられる。やはり上述の特許および特許出願で開示するように、ＭＡＰ要素１１２はチェーンポートを含み得る。
【００１７】
次に図２を参照して、この発明に従い複数のマルチアダプティブプロセッサ要素１１２を組込んだマルチプロセッサコンピュータアーキテクチャ１００についての代表的なアプリケーションプログラム分解を示す。コンピュータアーキテクチャ１００は、分解における粗粒部分において、４つの並列領域１０２1から１０２4までのうち（単に例として）１つに対して選択的に向けられたユーザ命令およびデータに応答して動作する。並列領域１０２1〜１０２4の各々からの命令およびデータ出力は、データ区域１０４1〜１０４4および命令区域１０６1〜１０６4となるよう分離された並列領域にそれぞれ入力される。データ区域１０４1〜１０４4内に維持されたデータ、および命令区域１０６1〜１０６4内に維持された命令は、次に、たとえば図示するように対応するプロセッサ対１０８1，１０８2（Ｐ１およびＰ２）、１０８3，１０８4（Ｐ３およびＰ４）、１０８5，１０８6（Ｐ５およびＰ６）、ならびに１０８7，１０８8（Ｐ７およびＰ８）に供給される。この時点で、命令およびデータの中程度のきめの分解が達成されている。
【００１８】
さらなるアルゴリズム分解によってきめの細かい分解または並列性が実行され、ここでプロセッサ１０８1〜１０８8の各プロセッサの出力はばらばらにされて、たとえば図示するように或る数の基本アルゴリズム１１０1A，１１０1B，１１０2A，１１０2B〜１１０8Bになる。次に各アルゴリズムはＭＡＰ要素１１２1A，１１２1B，１１２2A，１１２2B〜１１２8Bのうち対応する１つに供給される。これらはコンピュータアーキテクチャ１００のメモリ空間内に位置してここで実行を行なうことができるが、これについては後により詳細に説明する。
【００１９】
次に図３をさらに参照して、ＭＡＰ要素ベースのシステムのコンピュータアーキテクチャ１００におけるメモリバンク１２０の例示的な実現例を、先の図面に例示したＭＡＰ要素１１２のうち代表的なものについて示す。各メモリバンク１２０は、コンピュータシステム中継線たとえば７２線バス１２４と双方向に結合されたバンク制御ロジックブロック１２２を含む。バンク制御ロジックブロック１２２は双方向データバス１２６（たとえば２５６線）に結合され、さらに、メモリアレイ１３０内の指定された場所にあるデータにアクセスするためのアドレスをアドレスバス１２８（たとえば１７線）に供給する。
【００２０】
データバス１２６およびアドレスバス１２８はさらにＭＡＰ要素１１２に結合される。ＭＡＰ要素１１２は、アドレスバス１２８に結合された制御ブロック１３２を含む。制御ブロック１３２はさらに、或る数の信号線１３６を用いてユーザ・フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）１３４と双方向に結合される。ユーザＦＰＧＡ１３４はデータバス１２６に直接結合される。或る特定の実施例では、ＦＰＧＡ１３４はルーセント・テクノロジーズ（Lucent Technologies）ＯＲ３Ｔ８０デバイスとして設けられ得る。
【００２１】
例示的なコンピュータアーキテクチャ１００は、メモリサブシステムまたはメモリ空間内に位置し得る１つ以上のＭＡＰ要素１１２を有する共通の共有メモリにわたって一様なメモリアクセスを採用したマルチプロセッサシステムを含む。上述のように、各ＭＡＰ要素１１２は、再構成可能な機能ユニットとして用いられる少なくとも１つの比較的大きなＦＰＧＡ１３４を含む。加えて、制御ブロック１３２および予めプログラミングされたまたは動的プログラミング可能な構成ＲＯＭ（これについては後により詳細に説明する）は、再構成可能ＭＡＰ要素１１２が特定のアルゴリズムを実行できるようにするのに必要な情報を含む。ユーザがプログラム制御下でＦＰＧＡ１３４内に新たな構成を直接ダウンロードすることも可能であるが、場合によってはこれはいくつかのメモリアクセスを消費することがあり、結果として、アルゴリズムが一時的なものである場合、システム性能に全体的な低下を引起し得る。
【００２２】
ＦＰＧＡはここに示す出願においていくつかの理由から特に有利である。第１に、市場で入手可能なＦＰＧＡは今や、意味のある計算機能を実行するために十分な内部ロジックセルを含んでいる。第２には、マイクロプロセッサに匹敵するバス速度での動作が可能であり、このため速度調整用バッファの必要性がなくなる。さらに、ＦＰＧＡの内部のプログラミング可能ルーティング資源は今や、入力／出力（Ｉ／Ｏ）ピンの場所を再割当てする必要なしに、意味のあるアルゴリズムをプログラミングできるのに十分大きいものとなっている。
【００２３】
たとえばＭＡＰ要素１１２をメモリサブシステムまたはメモリ空間内に置くことで、これはメモリ「読出」および「書込」コマンドを用いて容易にアクセス可能となり、このためさまざまな標準オペレーティングシステムを使用することが可能である。対照的に、その他の従来の実現例は、再構成可能ロジックをプロセッサ内またはその近くに置くことを提案していることもあるが、これら従来の実現例はマルチプロセッサ環境では一般的にはるかに有効性が低い。それは、これに対する高速アクセスを有し得るのがただ１つのプロセッサだけであるからである。したがってマルチプロセッサシステムでは再構成可能ロジックはあらゆるプロセッサの側に置かれる必要があり、このため全体的なシステムコストが増加する。ＭＡＰ要素１１２はＤＭＡ能力を有し（こうしてこれはメモリへの書込をすることができ）、これはそのオペランドをメモリへの書込を通じて受取るので、ＭＡＰ要素１１２がチェーンポートを用いて別のＭＡＰ要素１１２に結果を入力できるようにすることが可能である。これは極めて強力な特徴点であり、これによって大きなタスクを極めて大規模にパイプライン化および並列化することが可能となり、こうしてこれらがより高速で完了できるようにする。
【００２４】
実現され得るアルゴリズムの多くはオペランドを受取り、結果を生成するのに多くのクロックサイクルを必要とする。このような例の１つが乗算であり得るが、これには６４クロックサイクルかかる。この同じ乗算が何千ものオペランドに対して実行されなければならないこともあり得る。この状況において、入来するオペランドは逐次的に提示されることになり、第１のオペランドは出力に結果を生成するのに６４クロックサイクルを必要とし、一方で第２のオペランドは入力に１クロックサイクル遅く到着して、出力において１クロックサイクル遅く結果を示すことになる。したがって最初の６４クロックサイクルの遅延の後、最後のオペランドの結果が現われるまであらゆる連続的なクロックサイクルにおいて新たな出力データが現われることになる。これは「パイプライン化」と呼ばれる。
【００２５】
マルチプロセッサシステムにおいては、オペレーティングシステムがタスクの途中でプロセッサを止めて、これをより高い優先順位のタスクに再割当てし、該または別のプロセッサを元に戻して最初のタスクを完了させることが極めて多い。これがパイプライン化されたアルゴリズムと組合されると、（プロセッサがリストの途中でオペランドの発行を止め、かつ結果を受付けることを止めた場合に）既に発行されているがまだパイプラインを通り過ぎていないオペランドに関して問題が生じる。この事柄に対処するために、上述の特許および特許出願に開示のとおり、ソフトウェアとハードウェアとの組合せに関連する解決策が提供される。
【００２６】
任意の種類の従来の再構成可能ハードウェアを利用するために、プログラマは自分のアプリケーションプログラムコード内に必要なコマンドを埋込むことがある。この手法の問題は、ＭＡＰハードウェア専用となるようにプログラムを特化しなければならないことである。ここに開示のシステムはこの問題をなくす。マルチプロセッサコンピュータはパラレライザと称されるソフトウェアをしばしば使用する。このソフトウェアの目的は、ユーザのアプリケーションコードを分析して、これをプロセッサ間でどのように分割すれば最良かを判断することである。ここに開示の技術は従来のパラレライザに対して顕著な利点を提供し、ユーザコードのうち、このシステムのためにＭＡＰ要素１１２内に存在するアルゴリズムを表わす部分をパラレライザが認識して、ＭＡＰ要素１１２を別の計算要素として取扱うことができるようにする。次にパラレライザは、ＭＡＰ要素１１２を利用するのに必要なコードを自動的に生成する。これによりユーザはアルゴリズムを直接自分のコードに書込むことができ、こうしてその移植性を増大させ、ＭＡＰ要素１１２の利用に必要なシステムハードウェアの知識を減少させる。
【００２７】
次に図４をさらに参照して、ＭＡＰ制御ブロック１３２のブロック図をより詳細に示す。制御ブロック１３２は、コマンドデコーダ１５０において或る数のコマンドビット（たとえば１７個）をアドレスバス１２８から受取るように結合される。次にコマンドデコーダ１５０は、或る数のレジスタ制御ビットを、８ビットバス１５４を介して一群の状態レジスタ１５２に供給する。コマンドデコーダ１５０は、線１５６を介して単一ビットの最終オペランドフラグをパイプラインカウンタ１５８に供給する。パイプラインカウンタ１５８は、バス１６２を介して８ビット出力を同等性比較器１６０に供給する。同等性比較器１６０はさらに、ＦＰＧＡ１３４からバス１３６を介して、パイプライン深さを表わす８ビット信号を受取る。同等性比較器１６０は、パイプラインが空であると判断すると、状態レジスタ１５２に入力するための単一ビットのパイプライン空フラグを線１６４に与える。状態レジスタ１５２はさらに、バス１３６を介してＦＰＧＡ１３４から８ビット状態信号を受取るように結合され、バス１３６、バス１５４および線１６４上の信号に応答して６４ビット状態ワード出力をバス１６６に生成する。
【００２８】
コマンドデコーダ１５０はさらに、図示するように、線１６８を介して構成マルチプレクサ（ＭＵＸ）１７０に５ビット制御信号を供給する。構成ＭＵＸ１７０は、線１７６を介して２５６ビット並列直列変換器１７２の単一ビット出力を受取る。２５６ビット並列直列変換器１７２の入力は２５６ビットユーザ構成パターンバス１７４に結合される。構成ＭＵＸ１７０はさらに、バス１７８を介して構成ＲＯＭ（ＲＯＭ１８２で例示する）から１６個の単一ビット入力を受取り、バス１６８を介したコマンドデコーダ１５０からの制御信号によって選択されるように、単一ビット構成ファイル信号を線１８０を介してユーザＦＰＧＡ１３４に与える。
【００２９】
動作においては、プロセッサ１０８がオペレーティングシステムによって止められると、オペレーティングシステムは最終オペランドコマンドを、アドレスフィールドに埋込まれたコマンドビットを用いて、バス１２８を介しＭＡＰ要素１１２に対して発行する。このコマンドは制御ブロック１３２のコマンドデコーダ１５０によって認識され、これはハードウェアパイプラインカウンタ１５８を開始させる。アルゴリズムが最初にＦＰＧＡ１３４にロードされたとき、制御ブロック１３２に接続されたいくつかの出力ビットは、同等性比較器１６０に対するバス１３６の入力において、そのパイプラインを通り抜けるのに必要なクロックサイクル数（すなわちパイプライン「深さ」）の２進値表現を示すように構成されている。制御ブロック１３２のパイプラインカウンタ１５８は、最終オペランドコマンドを受取った後、クロックサイクルをカウントし、そのカウントがこの特定のアルゴリズムについてのパイプライン深さと等しくなるまでこれを行なう。この時点で、制御ブロック１３２の同等性比較器１６０は、状態レジスタ１５２の内部群において線１６４を介してビジービットをデアサートする。プロセッサ１０８は、最終オペランド信号を発行した後、状態レジスタ１５２を繰返し読出し、バス１６６上のあらゆる出力データを受入れる。ビジーフラグがデアサートされると、タスクを止めてＭＡＰ要素１１２を異なるタスクのために利用することが可能となる。なお、ＭＡＰ要素１１２を構成されたままにし、プログラムを異なるプロセッサ１０８に転送して、タスクを止めたところから再開させることもまた可能である。
【００３０】
所与の応用例でのＭＡＰ要素１１２の使用の有効性を評価するには、使用に対する或る形のフィードバックが必要となる。このため、ＭＡＰ要素１１２に制御ブロック１３２の内部レジスタを備えさせることがあり、これにより効率に関係する要因、たとえば出力データに対する入力オペランドの数、或る期間にわたるアイドルサイクルの数、および或る期間にわたって受取られたシステムモニタ中断の数などを、ＭＡＰ要素が監視できるようにする。ＭＡＰ要素１１２が有する利点の１つは、その再構成可能な性質のため、アルゴリズムが変わるにつれて、監視される実際の機能および機能の種類もまた変えることができる。このためユーザには、すべての要因を常に監視する必要なしに、考えられ得るほとんど無限数の監視要因が与えられる。
【００３１】
次に図５をさらに参照して、この発明に従うコンピュータシステム２００の例示的な実施例の機能ブロック図を示し、これは、クラスタ型コンピュータ用スイッチ／ネットワークアダプタポートであって、ＤＩＭＭフォーマットにおいて一連のマルチアダプティブプロセッサを採用することで、データ転送レートを周辺構成要素相互接続（ＰＣＩ）バスで利用可能であったレートに対して大幅に向上させたものを含んでいる。
【００３２】
例示する特定の実施例では、コンピュータシステム２００は１つ以上のプロセッサ２０２0〜２０２1を含み、これらは関連のＰＣメモリおよびＩ／Ｏコントローラ２０４に結合される。動作においては、コントローラ２０４はＰＣＩ制御ブロック２０６と制御情報を送受信する。なお、この発明の代替的な実施例では、制御ブロック２０６はＡＧＰまたはＳＭ制御ブロックであることもある。ＰＣＩ制御ブロック２０６は１つ以上のＰＣＩカードスロット２０８に結合されるが、ここで実質的に２５６ＭＰ／秒のレートでデータ転送が可能な比較的小さな帯域幅のＰＣＩバス２１０を用いる。上述のこの発明の代替実施例においては、カードスロット２０８はアクセラレーテッド・グラフィックス・ポート（Accelerated Graphics Port：ＡＧＰ）バス接続またはシステム管理（System Maintenance：ＳＭ）バス接続を代替的に含み得る。
【００３３】
コントローラ２０４はまた従来のやり方で、実質的に２．１ＧＢ／秒以上のデータ転送レートが可能なはるかに大きな帯域幅のＤＩＭＭバス２１６を用いて、或る数のＤＩＭＭスロット２１４に結合される。この発明の特定の実現例に従うと、ＤＩＭＭ  ＭＡＰ要素２１２は、ＤＩＭＭスロット２１４の１つと関連付けられ、または物理的にこの中に位置する。ＤＩＭＭ  ＭＡＰ要素２１２への、またはここからの制御情報は、ＰＣＩバス２１０とＤＩＭＭ  ＭＡＰ要素２１２とを相互接続する接続２１８を用いて与えられる。次にＤＩＭＭ  ＭＡＰ要素２１２を別のクラスタ型コンピュータＭＡＰ要素に結合でき、ここでＭＡＰチェーンポートに接続されたクラスタ相互接続構造接続２２０が用いられ得る。上述のようにＤＩＭＭ  ＭＡＰ要素２１２はＲＩＭＭ  ＭＡＰ要素を含むこともある。
【００３４】
ＤＩＭＭスロット２１４内に位置するＤＩＭＭメモリは、ＰＣマイクロプロセッサ２０２0，２０２1のための主記憶場所を構成するので、プロセッサバスに対して電気的に極めて「近く」設計されるため、極めて短い待ち時間を呈する。上述のように、ＤＩＭＭに関連する待ち時間はＰＣＩバス２１０のわずか２５％のオーダであることも珍しくない。本質的にこの帯域幅をコンピュータシステム２００間の相互接続として活用することで、大幅に増大したクラスタ性能が実現可能である。
【００３５】
この目的のために、ＤＩＭＭ  ＭＡＰ要素２１２をＰＣのＤＩＭＭスロット２１４の１つに置くことにより、このＭＡＰ要素のＦＰＧＡ１３４（図３）は通常のメモリ「読出」および「書込」トランザクションを受入れて、これらを相互接続スイッチまたはネットワークの用いるフォーマットに変換することができる。上述の特許および特許出願に開示するように、各ＭＡＰ要素２１２は、これを他のＭＡＰ要素２１２と結合できるようにするためのチェーンポートを含む。このチェーンポートを用いて接続２２０経由で外部クラスタ化構造との接続を行なうことで、データパケットを遠隔ノードに送ることが可能となり、ここでこれらのパケットは同一のボードに受けられ得る。この特定の応用例では、ＤＩＭＭ  ＭＡＰ要素２１２はパケットからデータを抽出して、受信側プロセッサ２０２が必要とするまでこれを記憶することになる。
【００３６】
この技術の結果として、データ転送レートは、ＰＣＩバス２１０など現在入手可能ないずれのＰＣインターフェイスよりも数倍高くなる。しかしＤＩＭＭの電気的プロトコルでは、データが一旦受信側に到着すると、これが到着したことをＤＩＭＭスロット２１４内のＤＩＭＭモジュールがマイクロプロセッサ２０２に通知することはできず、これができないため、ＤＩＭＭ  ＭＡＰ要素２１２の連続的なポーリングを用いてデータが到着したかどうかを判断することでプロセッサ２０２の活動を同期化しなければならない。このような技術はマイクロプロセッサ２０２を完全に消費し、かつそのバス帯域幅のほとんどを消費してしまうため、その他のバスエージェントすべてをストールしてしまう。
【００３７】
この状況を回避するため、ＤＩＭＭ  ＭＡＰ要素２１２にはさらに、これが既存のＰＣＩバス２１０と通信できるようにするための接続２１８を設けることができ、こうしてこれは通信パケットを生成して、ＰＣＩバス２１０経由でプロセッサ２０２に送ることができる。これらパケットは動かされるデータ全体のうち極めて小さな割合しか占めないため、ＰＣＩバス２１０の帯域幅が小さいことの影響は最小限に抑えられ、さらに従来のＰＣＩ中断信号を用いてデータが到着したことをプロセッサ２０２に通知することもできる。この発明の別の実現例に従うと、システム管理（ＳＭ）バス（図示せず）を用いてプロセッサ２０２に通知を行なうこともできる。ＳＭバスは直列カレントモードのバスであり、従来のやり方でプロセッサボード上のさまざまな装置がプロセッサ２０２を中断できるようにする。代替的な実施例では、アクセラレーデッド・グラフィックス・ポート（ＡＧＰ）を用いてプロセッサ２０２に通知を行なうこともある。
【００３８】
ＤＩＭＭ  ＭＡＰ要素２１２を、ＤＩＭＭスロット２１４全体であり得るものと関連付けることによって、ＰＣは、典型的に１ＧＢのオーダの大きなブロックのアドレスを、ＤＩＭＭ  ＭＡＰ要素２１２による使用に割当てることになる。これらアドレスのうちいくつかは、（上述の特許および特許出願に開示するように）コマンドとしてデコードされ得るが、多くは記憶場所としてなお使用可能である。少なくとも、データを周辺機器から転送するのに用いる通常の入力／出力（Ｉ／Ｏ）ブロックサイズと同数のアドレス場所を設けることで、ほとんどのＰＣで使用される（コントローラ２０４を含む）従来のインテル（Ｒ）チップセットは、ＤＩＭＭ  ＭＡＰ要素２１２への直接のＩ／Ｏ転送を可能にする。そしてこれにより、データはたとえばディスクから到着して直接ＤＩＭＭ  ＭＡＰ要素２１２に入ることができる。次にこれは所望の任意の態様で変更を加えられ、パケット化されて接続２２０経由で遠隔ノードへ送信され得る。ディスクのＰＣＩバス２１０も、ＤＩＭＭ  ＭＡＰ要素２１２およびＤＩＭＭスロット２１４も、ＰＣメモリコントローラ２０４で制御されるため、この転送によりプロセッサバス帯域幅は消費されない。
【００３９】
なお、いくつかのＰＣにおいては、ＤＩＭＭスロット２１４内のいくつかのＤＩＭＭをインタリーブしてメモリアクセス能力を拡大し、こうしてメモリ帯域幅を増加させることもできる。これらシステムにおいては、上述の技術をいくつかのＤＩＭＭスロット２１４で並行的に用いることもできる。それでも特定の選択した実現例にかかわらず最終的な結果としては、ＰＣＩバス２１０への、および接続２２０経由で外部スイッチまたはネットワークへの１つ以上の接続を有するＤＩＭＭベースのＭＡＰ要素２１２が得られ、その結果、ＰＣＩベースの接続のみの数倍の性能が得られ、さらにデータが相互接続構造を通過する際にこのデータを処理する能力もまた数倍となる。
【００４０】
以上、特定のコンピュータアーキテクチャとの関連でこの発明の原理を説明したが、以上の記載は例としてなされたにすぎず、この発明の範囲を限定するものではないことが明らかに理解されるであろう。特に、上述の開示の教示は当業者に他の変形例を示唆するであろうと認められる。このような変形例は、それ自体で既に公知であって、既にここに記載された特徴の代わりにまたはこれに加えて使用され得る他の特徴も含み得る。この出願における請求項は特徴の特定の組合せに対して立てられているが、ここにおける開示の範囲は、当業者に明らかであろう明示的または黙示的に開示されたあらゆる新規の特徴もしくはあらゆる新規の特徴の組合せ、またはこれを一般化もしくは変形したものをも含み、
このことはこれがいずれかの請求項で現在請求されている同じ発明に関しているかどうかにはかかわらず、かつこれがこの発明の対処するのと同じ技術的問題のいくらかまたはすべてを軽減するかどうかにはかかわらないことを理解されたい。ここに出願人は、この出願またはここから導き出されるあらゆるさらなる出願の審査の間に、このような特徴および／またはこのような特徴の組合せに対して新たな請求項を立てる権利を留保する。
【図面の簡単な説明】
【００４１】
【図１】上述の特許および特許出願の開示に従うマルチアダプティブプロセッサ（ＭＡＰ）を採用したマルチプロセッサコンピュータアーキテクチャを簡略化して示す高次の機能ブロック図であり、直接メモリアクセス（ＤＭＡ）技術を用いて、データに加えコマンドをＭＡＰ要素に送ることができる特定の実施例におけるものである。
【図２】たとえばコンピュータシステムメモリ空間に位置する或る数のＭＡＰ要素を用いたマルチプロセッサコンピュータアーキテクチャとの関連で用いられる、考えられ得るコンピュータアプリケーションプログラム分解シーケンスを簡略化して示す論理ブロック図である。
【図３】先の図のＭＡＰ要素の例示的な１個をより詳細に示す機能ブロック図であって、バンク制御ロジック、メモリアレイおよびＭＡＰアセンブリを例示するものである。
【図４】或る特定の実施例における、ユーザＦＰＧＡとの相互接続を例示する、先の図面のＭＡＰアセンブリの制御ブロックをより詳細に示す機能ブロック図である。
【図５】この発明の例示的な一実施例を示す機能ブロック図であって、ＤＩＭＭフォーマットにおいて一連のマルチアダプティブプロセッサを採用することで、データ転送レートを周辺構成要素相互接続（ＰＣＩ）バスで利用可能であったレートに対して大幅に向上させた、クラスタ型コンピュータ用スイッチ／ネットワークアダプタポートを含むものである。
【図１】
2005500621.tif 000003
【図２】
2005500621.tif 000004
【図３】
2005500621.tif 000005
【図４】
2005500621.tif 000006
【図５】
2005500621.tif 000007
【国際公開パンフレット】
2005500621.tif 000008
2005500621.tif 000009
2005500621.tif 000010
2005500621.tif 000011
2005500621.tif 000012
2005500621.tif 000013
2005500621.tif 000014
2005500621.tif 000015
2005500621.tif 000016
2005500621.tif 000017
2005500621.tif 000018
2005500621.tif 000019
2005500621.tif 000020
2005500621.tif 000021
2005500621.tif 000022
2005500621.tif 000023
2005500621.tif 000024
2005500621.tif 000025
2005500621.tif 000026
2005500621.tif 000027
2005500621.tif 000028
2005500621.tif 000029
2005500621.tif 000030
2005500621.tif 000031
2005500621.tif 000032
2005500621.tif 000033
2005500621.tif 000034
2005500621.tif 000035
2005500621.tif 000036
【国際調査報告】
2005500621.tif 000037