JP3983926B2 - マルチプロセッサコンピューティング環境におけるメッセージ受渡しのオーバランを防止する方法及びコンピュータシステム - Google Patents
マルチプロセッサコンピューティング環境におけるメッセージ受渡しのオーバランを防止する方法及びコンピュータシステム Download PDFInfo
- Publication number
- JP3983926B2 JP3983926B2 JP12741099A JP12741099A JP3983926B2 JP 3983926 B2 JP3983926 B2 JP 3983926B2 JP 12741099 A JP12741099 A JP 12741099A JP 12741099 A JP12741099 A JP 12741099A JP 3983926 B2 JP3983926 B2 JP 3983926B2
- Authority
- JP
- Japan
- Prior art keywords
- credit
- node
- message
- buffer
- computer system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Multi Processors (AREA)
- Communication Control (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータ通信プロトコルに一般的に係わり、さらに特にマルチプロセッサコンピュータシステムにおけるクレジットベーズドメッセージプロトコルに係わる。
【0002】
なお、本願は、1998年5月8日付けの米国仮出願No. 60/084,795による利益を請求するものである。
また、本願は、次の同時係属出願と関連している。同時係属米国特許出願番号 09/041,568 、「パイプライン化されたスヌーピープロトコルを有する相互接続用マルチプロセッサノードのためのキャッシュコヒーレンスユニット」の名称で、1998年3月12日に出願、同時係属米国特許出願番号 09/003,771 、「統合されたメッセージパッシングサポートを備える分散共有メモリマルチプロセッサのためのメモリ保護メカニズム」の名称で、1998年1月7日に出願、同時係属米国特許出願番号 09/003,721 、「分散共有メモリマルチプロセッサシステムのための統合されたメッセージパッシングおよびメモリ保護を備えるキャッシュコヒーレンスユニット」の名称で、1998年1月7日に出願、同時係属米国特許出願番号(未知)、「分散共有メモリマルチプロセッサのための分割疎ディレクトリ」の名称で、1998年3月30日に出願、同時係属米国特許出願番号(未知)、「ネットワーク通信におけるデッドロックを回避するためのコンピュータアーキテクチャ」の名称で、1999年4月2日に出願。参考として、上記の出願の全てを本願発明の全体に亘って取り入れている。
【0003】
【従来の技術】
マルチプロセッサコンピュータシステムは、高速相互接続ネットワークを通じて通信する複数のプロセッサノードによって構成されている。各々のプロセッサノードは、一般的に、プロセッサとローカルランダムアクセスメモリ(RAM)とを含む。個々のプロセッサノードで使用可能なリソースの利用を最大化するために、計算タスクが各プロセッサノードに分割される。プロセッサノード間でタスクを分割することは、計算結果を得るために必要とされる時間を減少させることが可能であるが、このことは、1つのノードで処理されているタスクの一部分が、別のプロセッサノードによって処理されているそのタスクの別の部分の結果に依存する可能性があるということを意味する。個々のサブタスクが、ネットワークを介してそのサブタスクの処理に関連した情報を交換し合い、各サブタスクの処理を同期化させなければならない。
【0004】
様々な通信方法が存在する。共用記憶域通信方法は、各プロセッサが別のプロセッサによって書き込まれた情報を単純に読み取ることが可能なので、非常に高速である。しかし、この方法では、1つのサブタスクによって通信のために使用されるクリティカル記憶域が、別のタスクによってオーバライトされることからは保護されていない。一方、メッセージ受渡しモデルでは、各プロセッサがそれ自体のメモリだけにしかアクセスできず、したがって、メッセージを明示的に構成してそれを他のプロセッサに送ることによってだけ、他のプロセッサと通信することが可能であるにすぎない。1つのプロセッサが別のプロセッサのメモリに書き込むことが不可能なので、このモデルは通信を保護する。
【0005】
こうした通信方法のどちらにおいても、第1のプロセッサノードが第2のプロセッサノードにメッセージを送るときに、第1のノードが第2のノードからの肯定応答を待機する。メッセージが第2のノードに到達すると、3つの可能性がある。すなわち、メッセージが受け取られるか、メッセージが失われるか、メッセージがブロックされる。メッセージ受信側プロセッサノードがビジー状態であるかまたは満杯状態であるために、そのメッセージを処理することが不可能である場合には、そのメッセージが失われる可能性もある。受信側プロセッサノードがメッセージの損失を示すメッセージを戻す可能性もあり、または、そのノードが沈黙状態のままである可能性がある。メッセージがブロックされる場合には、通信インタフェースがそのシステムを渋滞させ、その渋滞が逆方向に伝播され、ネットワークを輻輳させおよび/またはシステムに損傷を与えることになる。
【0006】
着信メッセージを受信するための効率的な方法は、当該受信側ノードと通信することが可能である全ての送信側ノードの間で共有される受信側ノードメモリバッファに、着信メッセージが書き込まれることを可能にする。いずれかの特定の送信側ノードが、例えば、その送信側ノードにおけるソフトウェアエラーまたはハードウェアエラーのために、メッセージを連続的に受信側ノードに送り続ける場合には、その送信側ノードが受信側ノードをオーバランして共有バッファを満杯にする可能性がある。この場合には、追加の着信メッセージがネットワーク内で破棄されるか阻止される可能性がある。いずれの場合でも、誤りメッセージの洪水が、他のノードからの適正なメッセージの処理に干渉することになるだろう。
【0007】
【発明が解決しようとする課題】
したがって、必要とされているものは、上記欠陥を克服するメッセージ受渡しシステムである。
【0008】
【課題を解決するための手段】
本発明は、マルチプロセッサノードコンピュータシステムにおけるある1つのノードが別のノードから受け取ることが可能であるパケットの最大数を制限するためのクレジットベースの機構を提供する。本発明は、各ノード内にバッファプールとクレジット機構とを含み、このバッファが他のノードによって送られる着信パケットを一時的に記憶する。このクレジット機構は、送信側ノードが上記バッファプールのその割当て部分を越えてバッファを使用することが不可能であるように、ある1つのノードが別のノードから受け取ることが可能である予め決められた個数のパケットを割り当て、したがって、バッファプールがオーバフローしないことを確実なものにする。ノードが不適切なパケットを伝送し続けることが可能であっても、そうしたパケットがパケットバッファプールの中に書き込まれず、したがって、廃棄される。パケットバッファがオーバフローしないので、受信側ノードが他のノードとの通信を続けることが可能である。
【0009】
【発明の実施の形態】
本発明は、マルチプロセッサノードコンピュータシステムにおける、ある1つのノードが別のノードから受け取ることが可能であるパケットの個数を制限するためのクレジットベースの機構を提供する。
【0010】
図1は、複数のプロセッサノード102a−tとノードインタコネクション104とを含む、マルチプロセッサコンピュータシステム100のブロック図であり、このインタコネクションはノード102間の二点間通信を可能にする。各々のノード102は、インタコネクション104内において固有ノードIDによって識別され、スタンドアロン形コンピュータシステムとして構成されることが可能であり、または、他のプロセッサノード102と組み合わされてサイト106を形成するように構成されることも可能である。各々のプロセッサノード102は、インタコネクション104を介して他のノード102と通信するために、メッセージ受渡しプロトコルを使用する。本発明では、メッセージ交換速度を増加させるためのプロセッサノード間キャッシュコヒーレンスプロトコルとメッセージ受渡しプロトコルとの両方のために、プロセッサノード102が、サイト106の場合に、同じ通信チャネル、すなわち、インタコネクション104を使用する。これは、メッセージ受渡しプロトコルがキャッシュコヒーレンスプロトコルと緊密に一体化されているからである。したがって、本発明は、入力/出力チャネルとインタコネクションとを経由してメッセージの受渡しを行う従来技術に比較して有利である。さらに、図1は、単なる一例として二点間通信を示しているにすぎず、本発明はさらに同報通信相互接続にも使用可能である。
【0011】
図2は、一例として示されている図1のプロセッサノード102のブロック図であり、複数のプロセッサ202a−dと、メモリサブシステム206と、入力/出力サブシステム208と、メッシュコヒーレンスユニット(MCU)210とを含む。各々のプロセッサ202a−dが別々のキャッシュ204a−dを有する。機能ユニット202a−d、206、208、210が、制御信号とアドレス信号とデータ信号とを伝送するためにプロセッサバス212に接続されている。インタコネクション104に接続されている、本発明を具体化するMCU210が、プロセッサノード102相互間のキャッシュコヒーレンスとメッセージ経路とメモリ保護とを調整する。
【0012】
MCU210はクレジットベースのメッセージ受信ユニット354を含み、このメッセージ受信ユニット354は、送信側ノード102が受信側ノード102にパケットを過剰に伝送して受信側ノード102のメモリを溢れさせることを防止するようにメッセージの受渡しを行うための、バッファプール301(図3)と制御機構とを含む。クレジットベーズド受信ユニット354が、インタコネクション104を経由して、送信側ノード102からメッセージを受け取る。この好ましい実施形態では、メッセージが、各パケットが64バイトである複数のパケットに分割される。クレジットベーズド受信ユニット354は、送信側ノード102が受信側ノード102に送ることが可能であるパケットの個数(すなわち、クレジット)を記憶する。バッファプール301が、送信側ノード102から受け取られたメッセージを保持する。上記制御機構は、受信側ノード102が送信側ノード102から受け取ることが可能である予め決められた個数のパケット(すなわち、クレジット)を割り当てる。送信側ノード102がパケット割当て個数を越えるパケットを送り出すときには、送信側ノード102がそのクレジットを回復するまで、または、そのシステムがリセットされるまで、余分のパケットが廃棄されることになる。パケットが、バッファプール301内に書き込まれずに廃棄されるので、バッファ301はオーバフローすることがあり得ず、したがって、受信側ノードが他のノードと通信を続けることが可能である。その結果として、本発明は、個々の送信側ノードのための専用バッファを確保する従来技術の方式に比較して有利である。さらに、本発明は、従来技術の方式に比較して、より少ないリソースしか必要とせず、かつ、より低コストである。
【0013】
この好ましい実施形態では、本発明は、送信側ノードに通知することなしにメッセージを廃棄するので通信を保証しない、Internet User Datagram Protocol(UDP)のようなプロトコルを使用する。しかし、本発明は、例えば、通信の信頼性が別のソフトウェアレイアによってもたらされるウィンドウベースのプロトコルと組み合わせて使用されることも可能である。このソフトウェアは、それがハードウェアよりも高レベルのレイアにおいてウィンドウベーズドプロトコルを使用する限り、パケット損失を検出するためにパケットのシーケンスを検査することが可能である。本発明は、オーバフローに起因する損失パケットを検出するために、様々なソフトウェアをプロセッサ202上で実行することが可能である。本発明は、割込みを発生させるために、情報を記録するために、または、メッセージパケットが廃棄されるときにノード単位でオーバフローフラグを設定するために、追加のハードウェアを追加することが可能である。本発明は、損失パケットの個数をカウントするために1つまたは1組のカウンタを加えることが可能である。
【0014】
メモリコントローラ356が、メッセージ受信ユニット354からメモリ206への受信パケットの受渡しを制御する。
【0015】
図3は、図2のクレジットベーズドメッセージ受信ユニット354のブロック図であり、このメッセージ受信ユニット354は、バッファ301と、クレジットレジスタバンク302(302−1から302−N)と、復号器306と、マルチプレクサ310と、クレジット評価器312と、読取り/書込み制御論理回路314と、クレジット調整論理回路318とを含む。バッファ301は、ライン3003上で入力パケットを受け取り、ライン3009によってメモリ206に出力パケットを供給する。バッファ301は、全ての送信側ノード102によって共有されており、この好ましい実施形態では、1組の読取り/書込みポインタを含む先入れ先出し(FIFO)メモリを含む。パケットがバッファ301内に書き込まれるときには、書込みポインタが1つだけ先に進められる。同様に、パケットがバッファ301から読み取られるときには、読取りポインタが1つだけ先に進められる。送信側ノード102が正の「クレジット」を有するときだけ、ライン3003上のパケットがバッファ301内に書き込まれる。送信側ノード102が「ゼロ」クレジットを有する場合には、ライン3003上のパケットはバッファ301内に書き込まれることがなく、したがって、このパケットが廃棄される。ライン3029上の信号がバッファ301の読み書きを制御し、すなわち、この信号は、ライン3003上のパケットがバッファ301内に書き込まれ、さらにその後でバッファ301から読み取られることを実行可能化する。バッファ301は、受信ユニット354の一部分として示されているが、受信ユニット354の外側に存在することも可能である。
【0016】
クレジットレジスタ302は、送信側ノード102が受信側ノード102に送ることが可能であるクレジット、すなわち、パケットの最大数を記憶する。レジスタ302の各々は送信側ノード102に関連付けられている。システム設計者は、バッファ301がオーバフローしないように、各ノード毎のパケット最大数を設定する。したがって、各ノード毎のパケット最大数は、次のように、バッファ301のサイズ(バッファサイズ)に関係している。
バッファサイズ≧パケットサイズ*ノード1つ当たりのクレジット*ノード数
【0017】
クレジットレジスタ302における値の更新の際の競合状態を回避するために、プロセッサ202が上記値を読み取り、上記値を調整し、その調整された値をクレジットレジスタ302に書き込んでいる間中は、調整論理回路318はクレジットレジスタ302内の上記値を調整することは許可されない。そうでない場合には、調整効果が失われる。したがって、この好ましい実施形態では、クレジット調整論理回路318が、更新の完了を待つ必要なしに、クレジットを調整する(加算または減算する)ことが可能であるように、クレジットレジスタ302に対する書込みが、クレジットレジスタ302の現在値に書込みオペランド値を加算する。
【0018】
復号器306はライン3001上の(送信側ノード102の)入力パケットノードIDを受け取り、各々のノードIDを復号化して、ライン3005上に選択信号を供給し、この選択信号は、ライン3023上のクレジットデータの中の適切な1つを選択するように、マルチプレクサ310を制御する。
【0019】
マルチプレクサ310は、ライン3005上の選択信号に基づいて、選択ライン3023上のクレジット値を送信側ノード102のクレジットレジスタ302からライン3027に送る。
【0020】
クレジット評価器312は、送信側ノード102がクレジットを有するかどうか、したがって、その送信パケットがバッファ301内に記憶されることが許可されるべきがどうかを判定する。クレジット評価器312が、ライン3013上に信号を供給するために、ライン3027上のクレジット値をゼロ値と比較することが好ましい。この値がゼロより大きい場合には、送信側ノード102が一時的にそのパケットをバッファ301内に記憶することが可能である。そうでない場合には、パケットが記憶されず、したがって廃棄される。その後で、ライン3013上の信号が読取り/書込み制御論理回路314とクレジット調整論理回路318とに入力される。
【0021】
読取り/書込み制御論理回路314は、ライン3013上の出力信号に基づいて、ライン3029上に制御信号を発生させる。ライン3013上の信号が、バッファ301への書込みが許可可能であることを示す場合には、読取り/書込み制御論理回路314が、ライン3003上のパケットをバッファ301に書き込むことを許可する、ライン3029上の「書込みイネーブル(WE)」を発生させることが好ましい。そうでない場合には、読取り/書込み制御論理回路314が、バッファ301への書込みを実行不能化するために、ライン3029上に信号を発生させる。
【0022】
ライン3029上に信号を発生させる際には、読取り/書込み制御論理回路314が、プロセッサ202からライン3017とライン3033上に「再クレジット(re−credit)」信号も受け取る。ライン3017(およびライン3009)上の「再クレジット」信号は、例えば、パケットがバッファ301から読み取られるときに、適用可能である。バッファ301がメモリ206の一部分である実施形態では、読取り/書込み制御論理回路314がメモリコントローラ356の一部分であることが好ましい。
【0023】
クレジット調整論理回路318は、クレジットレジスタ302の内容を調整し、すなわち、送信側ノード102が受信側ノード102に送信することが可能である「クレジット」(すなわち、パケットの個数)を増減する。バッファ301からパケットが読み取られる場合にはクレジットが増やされ、ライン3003上のパケットがバッファ301内に書き込まれる場合には、クレジットが減らされる。ライン3009、3013、3017、3023、3031上の入力信号に基づいてクレジット調整論理回路318が機能する。ライン3009上の信号が、バッファ301からパケットが読み取られた送信側ノード102のノードIDをクレジット調整論理回路318に供給する。或いは、クレジット調整論理回路318が、ライン3031を介して同じノードID情報を得ることが可能である。ライン3013上の信号が、送信側ノード102からのパケットがバッファ301内に書き込まれるかどうかを表示し、この場合には、対応するレジスタクレジットが減少させられなければならない。例えば、パケットがバッファ301から読み取られるときに、または、システムがリセットされるときに、ライン3017上の信号「再クレジット」により、クレジット調整論理回路318は、送信側ノード102にクレジットを与えることが可能となる。ライン3023−1からライン3023−Nの上の信号により、クレジット調整論理回路318は、送信側ノード102に対応するクレジットレジスタ302内の値を調整することが可能となる。
【0024】
図4は、プロセッサ202と、メモリコントローラ356と、メモリ206と、バッファ301と、クレジットベーズドメッセージ受信ユニット360とを含むシステム370の形の、第2の実施形態を示す。この図4の実施形態では、バッファ301が、クレジットベーズドメッセージ受信ユニット354(図3)の外側にある。したがって、クレジットベーズドメッセージ受信ユニット360は、バッファ301を除いてクレジットベーズドメッセージ受信ユニット354と同じである。プロセッサ202とメモリコントローラ356とメモリ206の機能は、図2のそれらと同一である。システム370は、ノード102を構成し、インタコネクション104に接続されることが可能である。
【0025】
本発明の第3の実施形態では、バッファ301がメモリ206の一部分であることが可能であり、したがって、読取り/書込み制御論理回路314(図3)がメモリコントローラ356の一部分であることが好ましい。
【0026】
図5は、送信側ノード102Sからのメッセージの受け取りの際の、受信側ノード102Rの受信ユニット354Rを動作させるための方法を示す流れ図である。接尾辞S、Rは、各々に、送信側ノード102Sと受信側ノード102Rとに関連付けられている要素を示している。ステップ502では、ノード102Rが、プロセッサ202Rを経由して、バッファ301Rとクレジットレジスタ302Rとを初期化する。ステップ504では、ノード102Rが、ノード102Rにメッセージを送ることが可能である各ノード102Sにクレジットの最大数を割り当てるために、システム設計者の入力を使用する。上記のように、ノード102S1つ当たりのクレジットの最大数は、次式によって、バッファ301Rのサイズ(バッファサイズ)に関係付けられている。
バッファサイズ≧パケットサイズ*ノード1つ当たりのクレジット*ノード数
【0027】
ノード102Rは、各ノード102Sにクレジットレジスタ302Rを1つずつ割り当てる。ステップ508では、受信ユニット354Rが、ノード102Sからパケット「パケットS」を受け取る。ステップ512では、復号器306RがノードID−Sを復号化し、このノードID−Sをライン3005(図3)上の信号として供給する。ステップ516では、送信側ノード102Sに対応するクレジットレジスタ302Rによって供給される適切なクレジット値(クレジットS)の受渡しのために、マルチプレクサ310RがこのノードID−Sを使用する。ステップ520では、クレジット評価器312Rが、ノード102Sのクレジットの使用可能性を評価する。ノード102Sがゼロのクレジットを有する場合には、クレジット評価器312Rが、バッファ301Rに対するパケットSの書込みを実行不能にするために信号を発生させる。したがって、パケットSはステップ528において暗黙のうちに廃棄され、ステップ508では、ノード102Rが別のパケットSの受信を待機する。しかし、ノード102Sが正のクレジットSを有する場合には、ステップ532において、クレジット調整論理回路318RがクレジットSを減少させ、ステップ536において、読取り/書込み制御論理回路314Rが、バッファ301R内へのパケットSの書込みを実行可能化する。プロセッサ202Rが、バッファ301Rの書込みポインタもしくは読取り/書込み制御314Rの状態を周期的にポーリングすることによって、または、受信ユニット354Rからの割込みを受け入れることによって、バッファ301R内のパケットSの到着を検出することが可能である。パケットSが適正に到着している場合、すなわち、パケットSがバッファ301R内に記憶される場合には、ステップ538において、プロセッサ202Rがバッファ301RからパケットSを読み取る。ステップ540では、ノード102Rが、パケットSがバッファ301Rから読み取られ終わったかどうかを判定する。そうである場合には、ノード102Rが、クレジット調整論理回路318Rを経由して、クレジットレジスタ302Sを1だけ増加させる。
【0028】
本明細書で説明した実施形態は、本発明を例示するためのものであって、本発明を限定することは意図されていない。したがって、当業者は、特許請求の範囲と思想とから逸脱することなしに、他の実施形態が実現可能であることを理解することだろう。
【図面の簡単な説明】
【図1】本発明によるマルチプロセッサノードを有するコンピュータシステムのブロック図である。
【図2】本発明を具体化するメッシュコヒーレンスユニットを含む図1のプロセッサノードの実施形態を示す。
【図3】図2のクレジットベーズドメッセージ受信ユニットのブロック図である。
【図4】本発明の第2の実施形態を示す。
【図5】本発明を実行するための方法を示す流れ図である。
【符号の説明】
100…マルチプロセッサコンピュータシステム
102…プロセッサノード
104…ノードインタコネクション
106…サイト
202…プロセッサ
204…キャッシュ
206…メモリサブシステム
208…入力/出力サブシステム
210…メッシュコヒーレンスユニット(MCU)
212…プロセッサバス
301…バッファプール
302…クレジットレジスタバンク
306…復号器
310…マルチプレクサ
312…クレジット評価器
314…読取り/書込み制御論理回路
318…クレジット調整論理回路
354…クレジットベーズドメッセージ受信ユニット
356…メモリコントローラ
360…クレジットベーズドメッセージ受信ユニット
Claims (18)
- マルチプロセッサコンピューティング環境におけるメッセージ受渡しのオーバランを防止するコンピュータシステムであって、
インタコネクションと、
該インタコネクションに接続されたマルチプロセッサノード群と、
該インタコネクションに結合され、該マルチプロセッサノード群を通してのメッセージの受渡しを制御するクレジットベーズドメッセージ受信手段であって、クレジットレジスタ群に結合されたメッセージバッファを含み、一つの受信側ノード内の該クレジットレジスタ群の各クレジットレジスタを一つの送信側ノードに対応させ、該クレジットレジスタに格納されたクレジット値に基づいて該メッセージバッファへの書込みを制御し、該クレジット値が、一つの関連する送信側ノードからパケット群を受信するために該メッセージバッファの利用可能な容量を表す、クレジットベーズドメッセージ受信手段と、
を具備するコンピュータシステム。 - 該メッセージバッファが、読取り/書込みアクセスのための一組のポインタを有するFIFOによって構成される、請求項1に記載のコンピュータシステム。
- 該メッセージバッファのサイズが次の条件、バッファサイズ≧パケットサイズ*ノード1つ当たりのクレジット*ノード数、を満たす、請求項1に記載のコンピュータシステム。
- 該クレジット値が、該利用可能な容量を、メッセージの最大数として表す、請求項1に記載のコンピュータシステム。
- 該クレジット値が、該利用可能な容量を、パケットの数として表す、請求項1に記載のコンピュータシステム。
- 該メッセージバッファ内のメッセージへのアクセスに応じて該クレジット値が更新される、請求項1に記載のコンピュータシステム。
- 該クレジット値がプリセットされる、請求項6に記載のコンピュータシステム。
- マルチプロセッサノード群の各ノードが少なくとも一つのプロセッサと一つのメモリとを具備する、請求項7に記載のコンピュータシステム。
- 該メッセージバッファと該クレジットレジスタ群とが、マルチプロセッサノード群の各ノード内のメッシュコヒーレンスユニットの一部である、請求項8に記載のコンピュータシステム。
- 該クレジット値は正又はゼロのみである、請求項1に記載のコンピュータシステム。
- 一つの送信側ノードは、他の送信側ノードに割当てられた、該メッセージバッファの部分に書込むことができない、請求項1に記載のコンピュータシステム。
- 該クレジットベーズドメッセージ受信手段は、一つの復号器と該クレジットレジスタ群とに結合された一つのマルチプレクサを具備する、請求項1に記載のコンピュータシステム。
- インタコネクションと、
該インタコネクションに接続されたマルチプロセッサノード群と、
該インタコネクションに結合されたクレジットベーズドメッセージ受信手段であって、クレジットレジスタ群に結合されたメッセージバッファを含み、一つの受信側ノード内の該クレジットレジスタ群の各クレジットレジスタを一つの送信側ノードに対応させた、クレジットベーズドメッセージ受信手段と、
を具備するマルチプロセッサコンピューティング環境におけるメッセージ受渡しのオーバランを防止する方法であって、
クレジットベーズドメッセージ受信手段が、少なくとも一つの送信側ノードから受信側ノードへのメッセージを一時的に記憶するメッセージバッファを使用する段階と、
クレジットベーズドメッセージ受信手段が、クレジットレジスタ群に記憶されているクレジット値群を使用する段階であって、各クレジット値を、前記少なくとも一つの送信側ノードに対応させ、かつ、該少なくとも一つの送信側ノードからの着信メッセージを該メッセージバッファ内に書込む制御に使用する、段階と、
クレジットベーズドメッセージ受信手段が、該少なくとも一つの送信側ノードに対応する該クレジット値を調整するために、該メッセージバッファに対する該少なくとも一つの送信側ノードのアクセスの数を判定する段階であって、各クレジットレジスタ内のクレジット値が、受信側ノードが該対応する送信側ノードから受取り可能なメッセージの最大数を表すものである、段階と、
を具備する方法。 - クレジットベーズドメッセージ受信手段が、該送信側ノードに対応するクレジットレジスタを選択するために送信側ノードIDを使用する段階、を更に具備する、請求項13に記載の方法。
- クレジットベーズドメッセージ受信手段が、割込み信号を受取ることによって又は該メッセージバッファのポインタレジスタ群を周期的にポーリングすることによってメッセージの到着を検出する段階、を更に具備する、請求項13に記載の方法。
- クレジットベーズドメッセージ受信手段が、該送信側ノードからの着信メッセージを廃棄すべきか否かを決定するために送信側ノードのクレジット値を使用する段階、を更に具備する、請求項13に記載の方法。
- クレジットベーズドメッセージ受信手段が、クレジットの欠如のためにメッセージが廃棄されるときに、割込みを発生させるか、オーバフロー信号を発生させるか、又はオーバフロー情報を記録する段階、を更に具備する、請求項13に記載の方法。
- メッセージオーバラン防止コンピューティングシステムであって、
インタコネクションと、
該インタコネクションに接続されたマルチプロセッサノード群と、
を具備し、該マルチプロセッサノード群の各ノードが、
バスと、
該バスに接続されたキャッシュを具備するプロセッサ群と、
該バスに接続された入出力ユニットと、
メモリユニットと、
該バスに接続されたメッシュコヒーレンスユニットと、
を具備し、該メッシュコヒーレンスユニットが、
該メモリユニットを制御するメモリコントローラと、
クレジットベーズドメッセージ受信手段と、
を具備し、該クレジットベーズドメッセージ受信手段が、
該インタコネクションからパケットを受信する入力部と、
該入力部に結合されたバッファと、
該入力部に結合され、該パケットのIDを復号する復号器と、
該復号器と該バッファとに結合され、該復号器の復号結果及び該バッファの内容に基づきクレジットを調整する信号を作成するクレジット調整論理ユニットと、
クレジットを調整する該信号に基づきクレジットが調整されるクレジットレジスタを有し、該クレジットレジスタが一つの送信側ユニットに対応するように該クレジット調整論理ユニットに信号を戻すクレジットレジスタ群と、
該復号器と該クレジットレジスタ群とに接続され、該復号器の復号結果に基づき、該クレジットレジスタと関連するクレジット値を決定し受け渡すマルチプレクサと、
該クレジット値とクレジット無しに対応する値とを比較してクレジットが残っているかを決定することにより、受け渡されたクレジット値を評価するクレジット評価器と、
該バッファと該クレジット評価器とに結合され、該クレジット評価器の評価結果を使用して、該パケットが該バッファに書込まれるのを許容すべきか否かを決定する読取り/書込み制御ユニットと、
を具備し、該クレジット調整論理ユニットは、該読取り/書込み制御ユニットに結合され、該バッファに対しパケットが読取られるか、読取られないか、書込まれるか、又は書込まれないか、に依存してクレジットレジスタ群の各クレジット値を調整する、
システム。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8477398P | 1998-05-08 | 1998-05-08 | |
US09/287,650 US6715008B2 (en) | 1998-05-08 | 1999-04-07 | Method and system for over-run protection in a message passing multi-processor computer system using a credit-based protocol |
US60/084773 | 1999-04-07 | ||
US09/287650 | 1999-04-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000090060A JP2000090060A (ja) | 2000-03-31 |
JP3983926B2 true JP3983926B2 (ja) | 2007-09-26 |
Family
ID=26771412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12741099A Expired - Fee Related JP3983926B2 (ja) | 1998-05-08 | 1999-05-07 | マルチプロセッサコンピューティング環境におけるメッセージ受渡しのオーバランを防止する方法及びコンピュータシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3983926B2 (ja) |
-
1999
- 1999-05-07 JP JP12741099A patent/JP3983926B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000090060A (ja) | 2000-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6715008B2 (en) | Method and system for over-run protection in a message passing multi-processor computer system using a credit-based protocol | |
Kanakia et al. | The VMP network adapter board (NAB): High-performance network communication for multiprocessors | |
US7627738B2 (en) | Request and combined response broadcasting to processors coupled to other processors within node and coupled to respective processors in another node | |
US6490630B1 (en) | System and method for avoiding deadlock in multi-node network | |
US10210117B2 (en) | Computing architecture with peripherals | |
EP1615138A2 (en) | Multiprocessor chip having bidirectional ring interconnect | |
US6910062B2 (en) | Method and apparatus for transmitting packets within a symmetric multiprocessor system | |
US7739451B1 (en) | Method and apparatus for stacked address, bus to memory data transfer | |
US8086766B2 (en) | Support for non-locking parallel reception of packets belonging to a single memory reception FIFO | |
EP1701267A2 (en) | Address snoop method and multi-processor system | |
US8819305B2 (en) | Directly providing data messages to a protocol layer | |
US10664398B2 (en) | Link-level cyclic redundancy check replay for non-blocking coherence flow | |
WO2006007053A1 (en) | Method and apparatus for synchronous unbuffered flow control of packets on a ring interconnect | |
US6826643B2 (en) | Method of synchronizing arbiters within a hierarchical computer system | |
US10394636B2 (en) | Techniques for managing a hang condition in a data processing system with shared memory | |
JP3983926B2 (ja) | マルチプロセッサコンピューティング環境におけるメッセージ受渡しのオーバランを防止する方法及びコンピュータシステム | |
US6826619B1 (en) | Method and apparatus for preventing starvation in a multi-node architecture | |
US6889343B2 (en) | Method and apparatus for verifying consistency between a first address repeater and a second address repeater | |
US6735654B2 (en) | Method and apparatus for efficiently broadcasting transactions between an address repeater and a client | |
US6877055B2 (en) | Method and apparatus for efficiently broadcasting transactions between a first address repeater and a second address repeater | |
US20020133652A1 (en) | Apparatus for avoiding starvation in hierarchical computer systems that prioritize transactions | |
WO2002046888A2 (en) | Shared resource architecture for multichannel processing system | |
NZ716954B2 (en) | Computing architecture with peripherals |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040324 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051104 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060718 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060905 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061026 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070605 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070705 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100713 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100713 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110713 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110713 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120713 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120713 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130713 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |