JP2007328813A - ネットワーク通信におけるデッドロックを回避するためのコンピュータアーキテクチャ - Google Patents

ネットワーク通信におけるデッドロックを回避するためのコンピュータアーキテクチャ Download PDF

Info

Publication number
JP2007328813A
JP2007328813A JP2007204666A JP2007204666A JP2007328813A JP 2007328813 A JP2007328813 A JP 2007328813A JP 2007204666 A JP2007204666 A JP 2007204666A JP 2007204666 A JP2007204666 A JP 2007204666A JP 2007328813 A JP2007328813 A JP 2007328813A
Authority
JP
Japan
Prior art keywords
message
network
node
buffer
messages
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.)
Pending
Application number
JP2007204666A
Other languages
English (en)
Inventor
Leon Poon Win
レオン プーン ウィン
J Heland Patrick
ジェイ.ヘランド パトリック
Shimizu Takeshi
シミズ タケシ
Umezawa Yasushi
ウメザワ ヤスシ
Weber Wolf-Dietrich
ウェーバー ウォルフ−ディートリッチ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2007328813A publication Critical patent/JP2007328813A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

【課題】相互接続ネットワークにおけるデッドロック条件を回避するためのコンピュータアーキテクチャを提供する。
【解決手段】ノードからの出力メッセージを一時的に記憶するように予め計算されたサイズを有するメッセージ通信バッファを含む。メッセージがその処理要件とメッセージ通信プロトコルとにしたがって分類され、メッセージバッファの予約割り当て量が各々のメッセージタイプに対して割り当てられる。オーバフローを回避するために、未処理であることが可能であるメッセージの最大数を常に制限する機構によって、予約割り当て量の割当てが制御される。メッセージ通信バッファは、ノードが入力メッセージを処理することが常に可能であることを確実なものにするのに十分な大きさのサイズを有し、それによって通信時においてデッドロックを回避すると同時に順方向転送を促進する。
【選択図】図3

Description

本発明は、一般的にコンピュータネットワークメッセージ通信に関するものであり、さらに特に、マルチノードコンピュータネットワークにおけるメッセージ制御の際のデッドロックの防止に関する。
なお、本願は、1998年5月8日付けの米国仮出願No.60/084,795に基づくものである。
また、本願は、次の同時係属出願と関連している。同時係属米国特許出願番号09/041,568、「パイプライン化されたスヌーピープロトコルを有する相互接続用マルチプロセッサノードのためのキャッシュコヒーレンスユニット」の名称で、1998年3月12日に出願(米国特許第6,631,448号)、同時係属米国特許出願番号09/003,771、「統合されたメッセージパッシングサポートを備える分散共有メモリマルチプロセッサのためのメモリ保護メカニズム」の名称で、1998年1月7日に出願(米国特許第6,212,610号)、同時係属米国特許出願番号09/003,721、「分散共有メモリマルチプロセッサシステムのための統合されたメッセージパッシングおよびメモリ保護を備えるキャッシュコヒーレンスユニット」の名称で、1998年1月7日に出願(米国特許第6,209,610号)、同時係属米国特許出願番号09/281,714、「分散共有メモリマルチプロセッサのための分割疎ディレクトリ」の名称で、1999年3月30日に出願(米国特許第6,560,681号)。
マルチノードコンピュータネットワークでは、ネットワークメッセージをインタコネクトに通過させることによってノードが互いに通信し合う。こうしたネットワークメッセージは、そのネットワークの種類と要件とに応じて、様々な形のノード相互間通信をサポートする。例えば並列処理システムでは、ネットワークメッセージは共有メモリマルチプロセッサシステムにおけるキャッシュコヒーレンス通信を特にサポートし、分散メモリマルチコンピュータシステムにおいてはメッセージ受渡し通信をサポートする。1つのコンピュータシステムで1つ以上の形式のメッセージ通信をサポートする場合が多い。
ネットワークが適正に機能するためには、ネットワークメッセージ制御の際のデッドロックを防止することが重要である。一般的に、デッドロックは、(1)或る資源が1つのプロセスに割り当てられる相互排除、(2)資源が増加的に獲得されかつプロセスが別の資源を待ちながら1つの資源を保持する保持および待機、(3)割当てられた資源を別のプロセスが強制的に獲得することができない無横取り(no preemption)、(4)他のプロセスが保持している資源を待つという従属関係の鎖を2つ以上のプロセスが環状に形成する環状待機という4つの条件の全てが満たされる時に発生する。
ネットワークメッセージ通信においては、「資源」は、ネットワークメッセージを1つのノードから別のノードへ転送するときにそれを保持するために利用可能なバッファ領域と定義され、「プロセス」は、ネットワークメッセージを生成し消費するノードと定義される。デッドロックが発生すると、ネットワーク内の幾つかのノードが先に進めなくなる(すなわち、ネットワークメッセージを処理できなくなる)。適切な回復処置がなければ、ネットワークはリセットまたは割込を開始しなければならず、このことはメッセージの損失を生じさせシステム全体に損害を与える可能性がある。
デッドロックは、防止、回避、および、検出/回復を含む幾つかの手法のいずれかによって対処することが可能である。防止手法は、上記の4つの条件の1つを取り除き、それによってデッドロックの発生を不可能にすることによる。回避手法は、各資源の割振りの前にデッドロック条件を検査して、デッドロックの発生可能性がない場合にだけ資源割当てを許可することによる。検出/回復手法は、デッドロックを防止も回避もしないが、デッドロック発生後にそのデッドロック状況を検出して、こうしたデッドロック状況から回復させることによる。
デッドロックを回避するための一般的な手法の1つは、要求メッセージと応答メッセージとのために、2つの別々のインタコネクト、または、同じ1つのインタコネクト内の2つの別々のチャネルを設けることによる。この手法では、ノードが提起する要求の数を制限することによって、そのノードの応答メッセージのための十分なバッファを確保する。この手法の一例が、ANSI/IEEE Std.1596−1992,Scalable Coherence Interface(SCI)(1992)に記述されている。単純な要求−応答メッセージ通信プロトコルだけを許可するネットワークでは、この手法は、デッドロックを回避する上で十分なものである。
要求転送(request forwarding)を可能にするメッセージ通信プロトコルのような、より先進的なメッセージ通信プロトコルでは、2つのインタコネクトを使用する上記の手法を、インタコネクトの個数を増加させることによって拡張する。必要とされる独立のインタコネクトの個数は、メッセージ通信プロトコルの従属連鎖の最大長さに対応する。
LenoskiとWeberによってScalable Shared−Memory Multiprocessing(1995)で説明されている別の手法は、2つの別個のインタコネクトチャネルを使用する要求転送メッセージ通信を可能にするが、この2つのチャネルをメッセージ通信プロトコルのバックオフ機構と結合する。潜在的なデッドロック状況が検出されると、その潜在的デッドロック状況が解消され終わるまで、転送を必要とする全ての要求に対して否定応答を送ることによって、バックオフ機構が要求−応答トランザクションに復帰する。
しかし、要求メッセージと応答メッセージとのために別々のインタコネクトまたはインタコネクトチャネルを必要とすることは、相互接続ネットワークとその管理構造とに対して追加のオーバヘッドを負わせることになる。これに加えて、別々のインタコネクト上のメッセージを互いに順序付けることは不可能であり、かつ、メッセージの順序付けに関する仮定を単純化することが不可能であるので、この多重インタコネクト手法もメッセージ通信プロトコルを複雑化する。さらに、バックオフ機構を有することも、メッセージ通信プロトコルをさらに複雑化する。
検出/回復を使用する別の手法は、デッドロックが検出される時に、使用可能であるバッファを拡張することを含む。これは、KubiatowicsおよびAgarwalの″Anatomy of a Message in the Alewife Multiprocessor,″ Proceedings of the 7th International Conference on Supercomputing(1993)によって、Alewife機械の形で既に具体化されている。このAlewifeアプローチでは、ある特定の期間内にその出力キューがブロックされ終わった後で、ネットワークインタフェースチップがプロセッサに中断信号を送る。その後で、そのプロセッサが入力キューをローカルメモリ内に記憶する。
このAlewifeアプローチは、入力キューがオーバフローする時には何時でも、ローカルメモリ中の入力キューを拡張することによって、仮想無限バッファをエミュレートする。しかし、このアプローチは、このバッファのサイズの管理を取り扱わない。さらに、このAlewifeは、まず最初に潜在的なデッドロック状況を検出することと、その次にプロセッサにキューをローカルメモリ内に拡張させることによって、ソフトウェア的にデッドロック状況を解決することとに依存している。同じデッドロックに捕らえられている未処理の要求をプロセッサが有する可能性があり、かつ、特殊な実行中止/障害回復機構なしでは、このデッドロックが解決され終わるまでプロセッサが中断処理を行うことが不可能であるので、上記アプローチは常に実現可能というわけではない。
したがって、求められているものは、要求メッセージと応答メッセージとのための別個のインタコネクトチャネルをサポートするために必要とされるインタコネクト管理オーバヘッドを増大させることがなく、かつ、バックオフ機構サポートとソフトウェア管理デッドロック回復との複雑性を排除する、メッセージ通信デッドロックを回避するための手法である。
本発明は、マルチノードコンピュータネットワークにおいてノード間のメッセージを制御する際にデッドロックを回避するためのコンピュータアーキテクチャを提供する。
デッドロックを回避する本発明は、ノードからの出力ネットワークメッセージの全てをバッファリングするために、ノード出力とネットワークとの間にバッファとその関連の制御回路系とを挿入する。関連のフロー制御回路系を伴うバッファの適正なサイズ決定が、十分なバッファリングを確実なものとし、その結果として、バッファがオーバフローせず、環状待機に含まれる一群のノードの中の少なくとも1つのノードが常に入力メッセージを処理し、それによって順方向転送を促進し、デッドロックを回避することが可能である。
上記バッファを効果的に管理するために、ネットワークメッセージが、そのメッセージの処理要件とメッセージ通信プロトコルとに基づいて、好ましくは3つのタイプに分類される。この好ましい実施様態では、これらのメッセージタイプが、「高信頼トランザクションメッセージ(reliable transaction message)」、「通知メッセージ(posted message)」、「不信頼トランザクションメッセージ(unreliable transaction message)」と呼ばれる。本発明は、各メッセージタイプ毎に割り当て量をバッファ内に予約し、この割り当て量に基づいて、未処理である各タイプのネットワークメッセージの個数を常に制御する。合計バッファサイズは、これらのメッセージタイプの領域要件の合計である。実施様態の1つでは、本発明は、さらに、より精密な領域要件を許可するために、各々のメッセージタイプ毎にそのメッセージタイプをさらに区分する。バッファサイズを縮小させるための他の考慮も組み込まれている。
したがって、本発明のアーキテクチャは、インタコネクトに対する出力メッセージを受け取るためのバッファと、そのメッセージを個々のメッセージタイプに復号化するための復号器と、上記バッファを通してのメッセージの受渡しを制御するための、上記バッファと上記復号器とに結合されている出力制御装置とを含む。
本発明は、別々の要求チャネルと応答チャネルとをサポートするために必要とされるインタコネクト管理オーバヘッドを回避する。本発明は、さらに、メッセージバックオフをサポートするメッセージ通信プロトコルの複雑性と、ソフトウェア管理デッドロック回復手順に関連した複雑性とを取り除く。
本発明は、マルチノードコンピュータネットワークにおいてノード間のメッセージを制御する際にデッドロックを回避するためのコンピュータアーキテクチャを提供する。本発明は、ノードからの出力メッセージを一時的に記憶するように予め計算された最適サイズを有するメッセージ通信バッファを含む。メッセージはその処理要件とメッセージ通信プロトコルとにしたがって分類され、メッセージ通信バッファ内の予約割り当て量が個々のタイプのメッセージに割り当てられる。この予約割り当て量は、オーバフローを防止するために、未処理である可能性がある最大数のメッセージを常に制限する機構によって制御される。メッセージ通信バッファは、ノードが常に入力メッセージを処理することが可能であることを確実なものにするのに十分な大きさであり、それによって、デッドロックを回避し、順方向転送を促進する。上記バッファが空である時、または、上記バッファ内のデータが破損している時には、システム性能を向上させるために、上記バッファをバイパスすることも可能である。これに加えて、多数のメッセージを生成し通過を許可するマルチキャスト(同報通信)が存在するかどうかを判定するために、マルチキャストエンジンがメッセージヘッダから情報を受け取る。
図1は、複数のノード102とインタコネクト104とを有するコンピュータネットワーク100を示す。各ノード102は、スタンドアロン型データ処理システム、または、ノード102の集合体で構成されているデータ処理システムの一部分のどちらかとして構成されている。後者の場合には、記憶装置および/または入出力(I/O)のような共通の資源が、個々のノードによって共有されている。これに加えて、各ノード102はネットワークインタフェースユニット(NIU)106を含み、このネットワークインタフェースユニット106は個々のノード102をインタコネクト104に接続する。好ましくは、インタコネクト104は、接続されている個々のノード102相互間のポイントツーポイント接続を提供する。
図2は、入力キュー202Aまたは202Bと出力キュー204Aまたは204Bとを各々が含む2つのノード102A、102Bのネットワークにおける、デッドロック条件を示すブロック図である。入力キュー202A、202Bが入力ネットワークメッセージを記憶し、出力キュー204A、202Bが出力ネットワークメッセージを記憶する。ネットワークメッセージは出力キュー204Aまたは204Bからインタコネクト104を経由して入力キュー202Aまたは202Bに進む。メッセージReqBA 602とメッセージReqAB 604とがノード102Aとノード102Bとの間で転送される時にこれらを保持するために使用可能なバッファ領域がこれらのキューによってモデル化されている。宛先ノード102Aまたは102Bがブロック状態になり、入力メッセージを処理できなくなると、さらに到着した入力メッセージはまずそのノードのそれぞれの入力キュー202Aまたは202Bを埋めはじめ、最終的には、インタコネクト104を経て送出ノードのそれぞれの出力キュー204Bまたは204Aまで後退する。
図2では、入力キュー202A、202Bと出力キュー204A、204Bは一杯になっている。メッセージReqBA 602とメッセージReqAB 604とが処理されて、入力キュー202A、202Bの各々の先頭から削除されるまでは、上記キューの領域は解放されない。ノード102Aは、対応する応答メッセージを出力キュー204Aに送出することなしに、要求メッセージReqBA 602を処理することはできない。しかるに、出力キュー204Aが一杯であり、かつ、この出力キュー204Aは、ノード102Bの入力キュー202Bが領域を解放するまでは、領域を解放することができない。出力キュー204Aが一杯ではなくなるまで、メッセージReqBA 602がブロックされる。同様に、出力キュー204Bが一杯なので、ノード102Bが要求メッセージReqAB 604の処理をブロックされ、かつ、ノード102Aの入力キュー202Aが領域を解放し終わるまでは、ノード102Bが要求メッセージReqAB 604を処理することができない。このようなデッドロック条件が存在する限り、ノード102は個々の要求を処理することができない。
図2では、デッドロック発生の4つの条件の各々が満たされている。まず第1に、入力キュー202A、202Bと出力キュー204A、204Bの各エントリは、ノード102Aまたはノード102Bが発生した1つのネットワークメッセージが格納されればそれによって占有されるので、相互排除が存在する。第2に、ノード102Aとノード102Bの各々は、その個々の入力キュー202Aまたは202Bが新たなネットワーク要求を受け取ることを阻止し、これと同時に、各ノード102は、その個々の出力キュー204Aまたは204Bにおいて領域が使用可能になるのを待機しているので、保持および待機が存在する。第3に、ネットワークメッセージはその宛先ノードにおいてだけ随意に削除されることが可能である(すなわち、ノード102Aだけが入力キュー202Aからメッセージを削除することが可能であり、ノード102Bだけが入力キュー202Bからメッセージを削除することが可能である)ので、横取り(preemption)がない。そして、第4に、各ノード102は他のノード102がその個々の入力待ち行列202Aまたは202B内の領域を解放するのを待機しているので、ノード102Aとノード102Bの双方が環状待機の状態にある。
図2では、ネットワークメッセージのためのメッセージ通信バッファとして機能するキュー202A、202B、204A、204Bが別々に設けられている。このことは余分な順序付け上の制約を加え、デッドロックを発生しやすくする。しかし、上記バッファがキューとして実現されない場合でさえ、デッドロックが発生する可能性がある。これに加えて、こうしたメッセージ通信バッファが、ノード102とインタコネクト104との間に存在する。好ましい実施様態では、メッセージ通信バッファがNIU 106内にあり、このNIU 106はノード102の一部である。別の実施様態では、メッセージ通信バッファをノード102の他の部分および/またはインタコネクト104の中に含めることも可能である。
図3は、ノード内インタコネクト312(好ましくはシステムバス)によって接続された複数のプロセッサ302と記憶装置306とI/0 308とNIU 106とを含む実施様態における、図1のノード102のブロック図である。あるいは、ノード内インタコネクト312がクロスババックプレーン(cross−bar backplane)であることも可能である。さらに、図3はノード102内の構成要素302、306、308を示しているが、本発明は、構成要素302、306、308、106が半導体チップの形で一体化されている別の組合せの形にも適用可能である。好ましくは、ノード102内のプロセッサ302と他の構成要素306、308とからの要求と応答とに対応して、NIU 106がネットワークメッセージを生成し受け取る。NIU 106はメッセージ通信バッファ420を含み、インタコネクト104に接続されている。ネットワークメッセージが1つのノード102からNIU 106とインタコネクト104とを通過して別のノード102に進む。このネットワークメッセージはメッセージ通信バッファ420内に一時的に記憶される。
図4は、図3のNIU 106の1つの実施様態のブロック図であり、このNIU 106は、メッセージ通信バッファ420とその関連の制御回路系を含み、この制御回路系は、ノードインタフェース402と、メッセージタイプ復号器404と、出力制御装置408と、マルチプレクサ412と、マルチキャストエンジン416と、ネットワークインタフェース418とを含む。
ノード内コネクト312とNIU 106との間の通信点であるノードインタフェース402は、出力ネットワークメッセージを生成し、インタコネクト104からの入力ネットワークメッセージを受け取って処理する。
復号器404は、ノードインタフェース402から出力ネットワークメッセージを受け取り、その出力メッセージの処理要件とメッセージ通信プロトコルとにしたがって出力メッセージを個々のタイプに復号化する。この好ましい実施様態では、3つのタイプのメッセージ、すなわち、(1)高信頼トランザクションメッセージ、(2)通知メッセージ、(3)不信頼トランザクションメッセージがある。「トランザクション」は、ノード102がネットワーク内の他のノード102と通信しまたは資源を交換しようとする時に、ノード102によって開始される一連のネットワークメッセージを意味する。高信頼トランザクションメッセージは、ハードウェアによって確実に完了することを必要とするトランザクションに関連するメッセージであり、すなわち、このメッセージは、ノード102によって出力され、受け取られ、処理されることが常に保証されている。通知メッセージは、応答メッセージまたは他の応答メッセージを要求せずに宛先ノードに到着する個々のメッセージである。不信頼トランザクションメッセージは、ハードウェアによって確実に完了することを必要としないトランザクションに関するメッセージであるが、未完了のトランザクションを回復させるソフトウェア層によって管理されているメッセージである。ソフトウェアがトランザクションのタイムアウトを検査し、割り当てられているタイムアウトの範囲内でトランザクションが完了しない場合には、そのトランザクションを再び開始させることが可能である。その結果として、不信頼トランザクションメッセージをネットワークハードウェアが排除することが可能であり、すなわち、処理されることなくインタコネクト104から削除することが可能である。説明を理解し易くするために、確実に完了する必要がない個々のメッセージを通知メッセージとして類別する。これら3つのメッセージタイプの組合せが広範囲の通信トラヒックを代表する。
システム設計者は、システム要件に基づいてどのメッセージタイプを使用するかを選択する。例えば、高信頼トランザクションメッセージおよび/または通知メッセージは、共有メモリマルチプロセッサシステムにおいてキャッシュコヒーレンスおよび記憶整合性を維持するためのハードウェアベースのスキームに適している。これとは対照的に、不信頼トランザクションメッセージは、ソフトウェアベースの信頼性検査を有する、メッセージ受渡し基本命令を使用するシステムに適している。
出力制御装置408は、メッセージ通信バッファ420によるメッセージの蓄積を管理し、バッファ420内のメッセージを追跡する。出力制御装置408は、ノードインタフェース402と共に、各タイプのメッセージに関するバッファ420内の予約割り当て量を維持し、各メッセージタイプについてメッセージ数がバッファ420内の予約割り当て量を超えないことを確実なものにする。プログラム可能制御レジスタ(図示されていない)が出力制御装置408とノードインタフェース402とに対して各メッセージタイプに関する使用可能な予約割り当て量を通知する。
通知メッセージに関しては、ノード102がその割り当て量に達したら、出力制御装置408が、割り当て量に達したことをノードインタフェース402に信号で知らせる。高信頼トランザクションメッセージの場合には、ノードインタフェース402が、既に開始した未処理の高信頼トランザクションの数をカウントする。通知メッセージまたは高信頼トランザクションについて規定割り当て量に達した時には、ノードインタフェース402は、ノードインタフェース402により多くの当該タイプのメッセージを開始させる原因となる新たな要求を停止させるかまたは後退させる。ノード102が不信頼トランザクションメッセージの割り当て量に達すると、出力制御装置408は、不信頼トランザクションの発生を停止させるためにノードインタフェース402に信号を送る。ノードインタフェース402は、応答メッセージを必要とする、入力した不信頼トランザクションメッセージの全てをドロップすることも行なう。したがって、応答メッセージは発生させられない。ドロップされたメッセージは最終的に発信元ノード102においてトランザクションタイムアウトとなる。
出力制御装置408は、ネットワークメッセージをバッファ420からマルチプレクサ412に伝送する。これに加えて、出力制御装置408は、ネットワークメッセージをノードインタフェース402からマルチプレクサ412に直接伝送してバッファ420をバイパスすることも可能である。バッファ420をバイパスする場合には、出力制御装置408がライン414を介してマルチプレクサ412にエラー空信号(error−empty signal)を送り、それによってマルチプレクサ412はノードインタフェース402からのネットワークメッセージを選択する。バッファ420が空の時に(性能の向上のために)、または、バッファ420からのメッセージ読取り時に訂正不可能なエラーが検出される時に、出力制御装置408はバッファ420をバイパスする。メッセージはバッファ420を稠密形式で占有するので、メッセージヘッダに相当するバッファ420の内容の一部に訂正不可能なエラーが発生するとバッファ420の内容全体が破損される。これは、上記ヘッダ内に指定された破損メッセージのサイズと後続メッセージの始点とが判別できないからである。
マルチプレクサ412はネットワークメッセージをマルチキャストエンジン416に転送し、マルチキャストエンジン416は、そのメッセージを1つ以上のノード102に転送するべきかどうかを決定する。マルチキャストエンジン416は、別々のメッセージを発生させて各宛先ノード102に送るために、メッセージヘッダ内の宛先情報を使用する。この好ましい実施様態では、マルチキャストエンジン416がバッファ420の外側にあり、マルチキャストメッセージがバッファ420の1つのエントリだけを占有するので、バッファ420のサイズが小さくなる。
ネットワークインタフェース418は、マルチキャストエンジン416からの出力ネットワークメッセージをインタコネクト104に伝送し、インタコネクト104からの入力ネットワークメッセージをノードインタフェース402に伝送する。
ノード102からの出力メッセージを一時的に記憶するバッファ420は、各メッセージタイプ毎の予約割り当て量を記憶するように予め計算されたサイズを有する。予約割り当て量の割当ては、バッファ420がオーバフローするのを防止するために、未処理である可能性があるメッセージの最大数を常に制限する機構によって管理される。したがって、バッファ420は、ノードが常に入力メッセージを処理することが可能であることを確実なものにするのに十分なサイズにされ、それによって、デッドロックを回避し、通信における順方向転送を促進する。
高信頼トランザクションメッセージのために予約されているバッファ420の割り当て量は、(1)ノード1つ当たりの未処理トランザクションの最大数と、(2)トランザクション1つ当たりのメッセージのファンアウトの最大数と、(3)各メッセージのサイズと、(4)高信頼の相互通信を必要とするノードの合計数の1/2との積によって決定される。少なくとも2つのバッファが環状待機に関与するのであるから、ノードの合計数の1/2が計算に使用される。個々のタイプのメッセージトランザクションに関するメッセージのファンアウトの計算を、図5から図8を参照して後に説明する。
通知メッセージのために予約されている各ノード102内のバッファ420の割り当て量は、ノード102が未処理のまま有する可能性がある通知メッセージの個数によって決定される。通知メッセージは、発信元ノードのノードインタフェース402からその通知メッセージが送出される時点から、その通知メッセージが上記発信元ノードのバッファ420を出ていくまで、未処理のままである。バッファ領域の計算は出力バッファ420に関して行われるので、宛先ノード102に通知メッセージが到着する前に通知メッセージの未処理数のカウントを減らしても良い。
不信頼トランザクションメッセージに割り当てられている割り当て量は、そのようなトランザクションの予測頻度によって決定され、その割り当て量のオーバフローが稀にしか起こらないような大きさのサイズにされる。
任意の時刻においてバッファ420を占有できるメッセージの最大数を表すバッファ420の全体サイズは、各タイプのメッセージに関して必要な空き領域の合計である。これに加えて、そのシステムが主に採用する通信トラヒックのパターンに基づいて、システム構成に適合するようにバッファ420が区切られる。システム設計者は、バッファ420を区切るために、出力制御装置408内とノードインタフェース402内のプログラム可能制御要素を変更する。例えば、並列処理コンピュータシステムでは、共有メモリトラヒック構成要素が高信頼トランザクションと通知メッセージとを必要とし、メッセージ受渡しトラヒック構成要素は通知メッセージと不信頼トランザクションメッセージとを必要とする。例えば、メッセージ受渡しだけのシステムでは、バッファ420は通知メッセージと不信頼トランザクションメッセージとのためだけに区切られることになる。こうして、バッファ420は、上記システム内の通信トラヒックパターンに適合するようにカスタマイズされ、あらゆる構成に対してフルに利用される。
本発明によるデッドロック回避方法を具体化する時には、メッセージ通信バッファ420の合計サイズが、考慮されるべき重要事項である。したがって、本発明は、このバッファ420のサイズを減少させるために幾つかの機構を組み合わせる。まず第1に、本発明は、バッファ420に関して容量をより厳密に計算することを可能にするために、各メッセージタイプにおけるさらなる細分化を可能にする。例えば、この好ましい実施様態では、調停トランザクションが正規トランザクションよりも最大メッセージファンアウトが小さいので、本発明は、高信頼トランザクションメッセージタイプにおいて、調停トランザクションと正規トランザクションとを区別する。したがって、より厳密なファンアウト数を各タイプのトランザクションに関して使用することが可能であり、この結果として、高信頼トランザクションメッセージに関して必要なバッファサイズがより小さくなる。第2に、ノード102間のメッセージ転送を確実なものとするために、本発明がネットワーク通信層の下の層に依存することが好ましい。この好ましい実施様態では、これは、ネットワークインタフェース418の形で具体化されている。伝送を確実なものにすることにより、ネットワークメッセージ通信層におけるアクノリッジが必要でなくなり、それによってファンアウトが著しく削減される。第3に、マルチキャストエンジン機構が、マルチキャストメッセージがバッファ420内の1つのエントリだけを占有することを可能にし、バッファ420のサイズをさらに小さくする。第4に、本発明は、好ましくはバッファ420内に稠密形式でメッセージを記憶する。したがって、データを保持しないメッセージがバッファ420を占有する領域は、データを保持するメッセージがバッファ420内に占有する領域に比べて小さい。各メッセージのサイズがそのヘッダにおいて指定される。
この好ましい実施様態では、バッファ420は、1つの半導体チップの形でNIU 106内に含まれているスタティックRAM(SRAM)である。例えば、中規模マルチプロセッサ相互接続ネットワークは、合計32個のノードを有し、4個までのノードで各グループが構成される複数のグループを有し、各グループ内のノードは同じ1つの記憶装置を共用するので高信頼通信が必要である。各ノード102は、標準IntelTMQuad Pentium(登録商標)−ProTM AP450GXサーバプラットフォームを含み、このサーバプラットフォームは、4個のPentium(登録商標)−Proプロセッサ302と、メモリサブシステム用の1ギガバイトまでのダイナミックRAM(DRAM)306と、I/0 308取付け用の2つのPCIブリッジとを含む。NIU 106は、共有メモリタイプの通信トラヒックとメッセージ受渡しタイプの通信トラヒックの両方をサポートする、16ビットから48ビットまでのネットワークメッセージを生成する。この実施様態では、バッファ420は、8キロバイトの先入れ先出し(FIFO)SRAMとして実現されている。
別の実施様態では、バッファ420を、NIU 106を含むローカルノード102(図3)内のDRAM 306の予約部分の中に展開することが可能である。この別の実施様態は、集積回路チップ上のバッファ420の部分が何時オーバフローしたかを検出し、DRAM 306に対するダイレクトメモリアクセス(DMA)を介したマネジメントスワッピングを行う。NIU 106は、ソフトウェアの介入またはインタコネクト104内に発生させられるべき新たなネットワークメッセージを必要とせずに、上記DMAを行う。DRAMが比較的安価であるので、バッファ240の大きな領域と低コストでDRAM内に割り当てることが可能である。より高い性能を得るために、バッファ420のオンチップ部分が、オーバフローが稀であるように適切なサイズにされる。
図5から図8は、各タイプの通信トランザクションに関するメッセージファンアウトの計算を示している。ファンアウトとは、1つのトランザクションに関してインタコネクタ104内で転送されうるメッセージの数である。第1のノード102(発信元ノード102)が、要求メッセージを第2のノード102に送ることによってトランザクションを開始する。これに応答して、第2のノード102が発信元ノード102に対する応答を発生させる。第2のノードは、同様にまたはその代わりに、第3のノードまたは一連のノード102に対するメッセージ連鎖を発生する。トランザクションが完了すると、発信元ノード102は完了メッセージを受け取る。発信元ノード102が要求メッセージを送出する時点から発信元ノード102が完了メッセージを受け取るまで1つのトランザクションが存在する。任意の時刻においてノード102は、進行中の一定の数の未処理トランザクションを有する。
「調停」と呼ばれる新たな要求がトランザクションの途上で発生させられる場合がある。例えば、追い立てメッセージ(eviction message)が、トランザクションを処理するために必要な資源を解放するために、必要とされることもあり得る。調停は、バッファ領域計算における新たなトランザクションの開始として考慮される。
図5は、基本的な要求−応答トランザクションを示す。ノード102Aが要求メッセージABをノード102Bに送り、ノード102Bは、ノード102Aに対する応答メッセージBAで応答する。ノード102Bが応答メッセージBAを発生させる前に、要求メッセージABがノード102Bで受信されなければならない。したがって、常に、インタコネクト104内には、転送中のメッセージ(ABまたはBAのどちらか)は1つだけしかない。したがって、要求−応答トランザクションに関するファンアウトは1である。
図6は、要求転送トランザクションを示す。ノード102Aがノード102Bに要求メッセージABを送る。その後で、ノード102Bがノード102Cに要求メッセージAB(この時点ではメッセージBC)を送る。さらに、ノード102Cがノード102Aに対して応答メッセージCAで応答する。ノード102がその次のメッセージを発生させる前に、メッセージAB、メッセージBC、メッセージCAの各々がその宛先ノード102によって受信されなければならない。すなわち、インタコネクト104内には常に多くとも1つのメッセージが存在し、したがって、このトランザクションに関するファンアウトは1である。
図7は、中間応答を伴う要求転送トランザクションを示す。ノード102Aは要求メッセージABをノード102Bに送る。その後で、ノード102Bは、その要求メッセージAB(この時点ではメッセージBC)をノード102Cに転送すると同時に中間応答メッセージBAをノード102Aに送る。ノード102CはメッセージBCに応答して、最終応答メッセージCAによってノード102Aに応答する。中間応答メッセージBAが、要求メッセージBCまたは最終応答メッセージCAのどちらかと同時にインタコネクタ104内で転送中である可能性があるので、このトランザクションに関するファンアウトは2である。
図8は、要求−応答トランザクションに応答して発生させられる調停トランザクションを示す。ノード102Bは、ノード102Aからの要求メッセージABを処理すると同時に、ノード102Cに対する調停要求メッセージBCも発生する。ノード102Cは調停応答メッセージCBをノード102Bに返す。ノード102Aからノード102Bへのトランザクションと、ノード102Bからノード102Cへのトランザクションとの両方が、単純な要求−応答連鎖であるので、各トランザクションに関するファンアウトは1である。
図9はメッセージ通信バッファ420の具体例である。この図9の具体例では、ネットワークメッセージ510−1からネットワークメッセージ510−nである複数のネットワークメッセージがバッファ420を通過する時に、バッファ420が、これらのネットワークメッセージを記憶する。各ネットワークメッセージ510は、ヘッダ502と変数データ504とを含む。この好ましい実施様態では、ヘッダ502がメッセージタイプ502−2、メッセージ発信元502−4、メッセージ宛先502−6、メッセージサイズ502−8を含む。「メッセージタイプ」フィールド502−2は、メッセージ510タイプが高信頼トランザクションメッセージ、通知メッセージ、または、不信頼トランザクションメッセージのどれであるかを表示する。「メッセージ発信元」フィールド502−4はメッセージ510の発信元ノード102を表示する。「メッセージ宛先」フィールド502−6は、メッセージ510が送られるべきノード102を表示する。「メッセージサイズ」フィールド502−8は、メッセージ510のサイズを表示する。別の実施様態では、ヘッダ502が、メッセージ510に関する他の情報を伴う他のフィールドを含むことが可能である。
上記では、本発明の好ましい実施様態を参照しながら、本発明を説明してきた。この開示内容を理解することによって、他の実施様態が当業者には明らかになるだろう。例えば、本発明は他の構成の形で実現されることが可能である。さらに、本発明は、本明細書で説明しているネットワークシステム以外のネットワークシステムと組み合わせて効果的に使用されることが可能である。したがって、上記の好ましい実施様態に対するこうした変形例や他の変形例が添付の請求範囲内に含まれている。
ネットワークインタフェースを経由してインタコネクトに接続されている複数のノードを有するコンピュータネットワークを示すブロック図である。 2ノード形ネットワークにおけるデッドロック条件を示すブロック図である。 図1のノードのブロック図である。 図3のネットワークインタフェースユニット(NIU)のブロック図である。 各タイプのメッセージトランザクションに関するメッセージファンアウトの計算を示す。 各タイプのメッセージトランザクションに関するメッセージファンアウトの計算を示す。 各タイプのメッセージトランザクションに関するメッセージファンアウトの計算を示す。 各タイプのメッセージトランザクションに関するメッセージファンアウトの計算を示す。 図4のメッセージ通信バッファの実施様態を示す。

Claims (10)

  1. マルチノードコンピュータネットワークにおけるデッドロックを回避するメッセージ受渡し装置であって、
    ノード内の他の構成要素からの要求に対して、ネットワークメッセージを生成するノードインターフェースと、
    前記ノードインターフェースが生成した様々なタイプのネットワークメッセージを受け取って一時的に蓄積する、メッセージタイプ毎に予約割当量が設定される単一バッファと、
    前記ネットワークメッセージのタイプを復号化するための復号器と、
    前記ノードインターフェースと共に未処理であるネットワークメッセージの数を管理し、未処理であるメッセージタイプのネットワークメッセージの数が、該メッセージタイプに対する予約割当量に達したら、対応するメッセージタイプのネットワークメッセージの発生の停止を前記ノードインターフェースに通知して、前記バッファを通しての前記メッセージの受渡しを制御する、前記バッファと前記復号器とに結合された出力制御装置と、を含むメッセージ受け渡し装置。
  2. 前記バッファがノードの出力とネットワークとの間に結合されている請求項1に記載の装置。
  3. 前記バッファが、前記ネットワークメッセージのトラヒックの主要パターンに従って可変的に区切られている請求項1に記載の装置。
  4. メッセージの受渡しを許可するマルチキャストが存在するかどうかを判定し、マルチキャストメッセージを蓄積するために前記バッファ内に必要とされるエントリ個数を減らす、前記バッファに結合されたマルチキャストエンジンを更に含む請求項1に記載の装置。
  5. 前記バッファに結合され、メッセージに前記バッファをバイパスさせるバイパスエンジンをさらに含む請求項1に記載の装置。
  6. 前記バッファ内に記憶されるメッセージのオーバフローの指示時に前記バッファが拡張される請求項1に記載の装置。
  7. 前記ネットワークメッセージタイプがその処理要件とメッセージ通信プロトコルとに基づいて分類されている請求項1に記載の装置。
  8. 前記ネットワークメッセージが、マルチキャストがあるかどうかに関する情報を有するヘッダを含む請求項1に記載の装置。
  9. ネットワークメッセージを使用するマルチノードコンピュータにおけるデッドロックを防止するための方法であって、
    ノード内の構成要素からの要求に対応して、ネットワークメッセージを生成する段階と、
    前記生成されたネットワークメッセージを、そのネットワークメッセージタイプに従って分類する段階と、
    未処理である各メッセージタイプのネットワークメッセージの数を管理し、未処理であるメッセージタイプのネットワークメッセージの数が、該ネットワークメッセージタイプに対して割り当てられた単一のバッファの割当量に達したか否かを判別する段階と、
    前記未処理であるメッセージタイプのネットワークメッセージの数が、該ネットワークタイプに対する割当量に達した場合、対応するタイプのネットワークメッセージの発生を停止させる段階と、を含むデッドロック防止方法。
  10. データ処理システムであって、
    プロセッサ間通信ネットワークと、
    少なくとも1つのプロセッサを含む第1のプロセッサノードと、
    前記第1のプロセッサノードに結合されておりかつ前記ネットワークに結合されている第1のネットワークインタフェースユニットであって、前記第1のプロセッサノードからの要求に対応して、第1のネットワークメッセージを生成する第1のノードインターフェースと、第1のネットワークメッセージを受け取って一時的に蓄積するための単一の第1のバッファと、前記第1のネットワークメッセージを異なったタイプに復号化するための第1の復号器と、前記第1のノードインターフェースと共に未処理であるネットワークメッセージの数を管理し、未処理である各メッセージタイプのネットワークメッセージの数が各メッセージタイプに対する割り当て量に達したら、前記第1のノードインタフェースに通知して、対応するタイプのメッセージの発生を停止させることにより、前記第1のバッファを通しての前記第1のメッセージの受渡しを制御するための、前記第1のバッファと前記第1の復号器とに結合されている第1の出力制御装置とを含む第1のネットワークインタフェースユニットと、
    少なくとも1つのプロセッサを含む第2のプロセッサノードと、
    前記第2のプロセッサノードに結合されておりかつ前記ネットワークに結合されている第2のネットワークインタフェースユニットであって、前記第2のプロセッサノードからの要求に対応して、第2のネットワークメッセージを生成する第2のノードインターフェースと、第2のネットワークメッセージを受け取って一時的に蓄積するための単一の第2のバッファと、前記第2のネットワークメッセージを異なったタイプに復号化するための第2の復号器と、前記第2のノードインターフェースと共に未処理であるネットワークメッセージの数を管理し、未処理である各メッセージタイプのネットワークメッセージの数が各メッセージタイプに対する割り当て量に達したら、前記第2のノードインターフェースに通知して、対応するタイプのネットワークメッセージの発生を停止させることにより、前記第2のメッセージの受渡しを制御するための、前記第2のバッファと前記第2の復号器とに結合されている第2の出力制御装置とを含む第2のネットワークインタフェースユニットとを含むデータ処理システム。
JP2007204666A 1998-05-08 2007-08-06 ネットワーク通信におけるデッドロックを回避するためのコンピュータアーキテクチャ Pending JP2007328813A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8479598P 1998-05-08 1998-05-08
US09/285,316 US6490630B1 (en) 1998-05-08 1999-04-02 System and method for avoiding deadlock in multi-node network

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP12743599A Division JP4509248B2 (ja) 1998-05-08 1999-05-07 ネットワーク通信におけるデッドロックを回避するためのコンピュータアーキテクチャ

Publications (1)

Publication Number Publication Date
JP2007328813A true JP2007328813A (ja) 2007-12-20

Family

ID=26771439

Family Applications (2)

Application Number Title Priority Date Filing Date
JP12743599A Expired - Fee Related JP4509248B2 (ja) 1998-05-08 1999-05-07 ネットワーク通信におけるデッドロックを回避するためのコンピュータアーキテクチャ
JP2007204666A Pending JP2007328813A (ja) 1998-05-08 2007-08-06 ネットワーク通信におけるデッドロックを回避するためのコンピュータアーキテクチャ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP12743599A Expired - Fee Related JP4509248B2 (ja) 1998-05-08 1999-05-07 ネットワーク通信におけるデッドロックを回避するためのコンピュータアーキテクチャ

Country Status (2)

Country Link
US (1) US6490630B1 (ja)
JP (2) JP4509248B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008060245A1 (de) 2007-12-20 2009-07-02 Fujitsu Microelectronics Limited Halbleiteranordnung, Verfahren zum Herstellen der Halbleiteranordnung und computerlesbares Medium

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6631448B2 (en) * 1998-03-12 2003-10-07 Fujitsu Limited Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
US6490630B1 (en) * 1998-05-08 2002-12-03 Fujitsu Limited System and method for avoiding deadlock in multi-node network
WO2001025933A1 (fr) * 1999-10-01 2001-04-12 Fujitsu Limited Systeme de modele d'agent et de gestionnaire
US6732209B1 (en) * 2000-03-28 2004-05-04 Juniper Networks, Inc. Data rate division among a plurality of input queues
AU2001280857A1 (en) * 2000-08-17 2002-02-25 Api Networks, Inc. System and method for separate virtual channels for posted requests in a multiprocessor system
US7379470B2 (en) * 2002-04-26 2008-05-27 International Business Machines Coproration Combined and data compressed FIFO based arbitration for a non-blocking switch
US7254696B2 (en) * 2002-12-12 2007-08-07 Alacritech, Inc. Functional-level instruction-set computer architecture for processing application-layer content-service requests such as file-access requests
US20040128351A1 (en) * 2002-12-27 2004-07-01 Intel Corporation Mechanism to broadcast transactions to multiple agents in a multi-node system
US20040257993A1 (en) * 2003-03-26 2004-12-23 Olav Lysne Method and device for network reconfiguration
US20050289505A1 (en) * 2004-06-25 2005-12-29 Williams Stanley N Method and system for improving performance and scalability of applications that utilize a flow-based-programming methodology
US7613830B2 (en) * 2004-12-10 2009-11-03 Microsoft Corporation Reliably transferring queued application messages
US7742406B1 (en) * 2004-12-20 2010-06-22 Packeteer, Inc. Coordinated environment for classification and control of network traffic
US9053072B2 (en) * 2007-01-25 2015-06-09 Hewlett-Packard Development Company, L.P. End node transactions at threshold-partial fullness of storage space
US8726283B1 (en) * 2007-06-04 2014-05-13 Nvidia Corporation Deadlock avoidance skid buffer
US8112559B2 (en) * 2008-09-30 2012-02-07 International Business Machines Corporation Increasing available FIFO space to prevent messaging queue deadlocks in a DMA environment
US8631086B2 (en) * 2008-09-30 2014-01-14 International Business Machines Corporation Preventing messaging queue deadlocks in a DMA environment
US8671220B1 (en) * 2008-11-28 2014-03-11 Netlogic Microsystems, Inc. Network-on-chip system, method, and computer program product for transmitting messages utilizing a centralized on-chip shared memory switch
US8671172B2 (en) * 2009-07-09 2014-03-11 International Business Machines Corporation Network device configuration
US10528400B2 (en) 2017-06-05 2020-01-07 International Business Machines Corporation Detecting deadlock in a cluster environment using big data analytics
JP6882681B2 (ja) 2017-07-12 2021-06-02 富士通株式会社 情報処理システム、情報処理装置、及び情報処理システムの制御方法
US20190020586A1 (en) * 2017-07-14 2019-01-17 Qualcomm Incorporated Selective insertion of a deadlock recovery buffer in a bus interconnect for deadlock recovery
WO2021073755A1 (en) * 2019-10-18 2021-04-22 DFINITY Stiftung Messaging in distributed networks
US11741050B2 (en) 2021-01-29 2023-08-29 Salesforce, Inc. Cloud storage class-based variable cache availability
CN113076282B (zh) * 2021-04-21 2023-06-02 中国人民解放军国防科技大学 一种面向处理器片上网络的死锁处理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0550021B2 (ja) * 1986-12-22 1993-07-27 American Telephone & Telegraph
JPH0652129A (ja) * 1992-07-28 1994-02-25 Nippon Steel Corp 通信のデッドロック回避装置
JPH0743665B2 (ja) * 1989-06-26 1995-05-15 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン コンピユータ・システム資源管理方法
JPH08185380A (ja) * 1994-12-28 1996-07-16 Hitachi Ltd 並列計算機
JPH08249295A (ja) * 1995-03-15 1996-09-27 Kofu Nippon Denki Kk メッセージ制御装置
JP2000067023A (ja) * 1998-05-08 2000-03-03 Fujitsu Ltd ネットワ―ク通信におけるデッドロックを回避するためのコンピュ―タア―キテクチャ

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5381413A (en) * 1992-12-28 1995-01-10 Starlight Networks Data throttling system for a communications network
US5490007A (en) * 1994-10-31 1996-02-06 Hewlett-Packard Company Bypass switching and messaging mechanism for providing intermix data transfer for a fiber optic switch
US5905729A (en) * 1995-07-19 1999-05-18 Fujitsu Network Communications, Inc. Mapping a data cell in a communication switch
JP3120963B2 (ja) * 1995-12-14 2000-12-25 株式会社日立製作所 メッセージを転送する方法およびメッセージを転送するシステム
US5859850A (en) * 1995-12-28 1999-01-12 Lucent Technologies Inc. Elastic store circuit for composite cells switched through an ATM network
US5983278A (en) * 1996-04-19 1999-11-09 Lucent Technologies Inc. Low-loss, fair bandwidth allocation flow control in a packet switch
KR100233091B1 (ko) * 1997-10-23 1999-12-01 윤종용 에이티엠 트래픽 제어장치 및 방법
US6188698B1 (en) * 1997-12-31 2001-02-13 Cisco Technology, Inc. Multiple-criteria queueing and transmission scheduling system for multimedia networks
US6055564A (en) * 1998-03-11 2000-04-25 Hewlett Packard Company Admission control where priority indicator is used to discriminate between messages
US6092108A (en) * 1998-03-19 2000-07-18 Diplacido; Bruno Dynamic threshold packet filtering of application processor frames

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0550021B2 (ja) * 1986-12-22 1993-07-27 American Telephone & Telegraph
JPH0743665B2 (ja) * 1989-06-26 1995-05-15 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン コンピユータ・システム資源管理方法
JPH0652129A (ja) * 1992-07-28 1994-02-25 Nippon Steel Corp 通信のデッドロック回避装置
JPH08185380A (ja) * 1994-12-28 1996-07-16 Hitachi Ltd 並列計算機
JPH08249295A (ja) * 1995-03-15 1996-09-27 Kofu Nippon Denki Kk メッセージ制御装置
JP2000067023A (ja) * 1998-05-08 2000-03-03 Fujitsu Ltd ネットワ―ク通信におけるデッドロックを回避するためのコンピュ―タア―キテクチャ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008060245A1 (de) 2007-12-20 2009-07-02 Fujitsu Microelectronics Limited Halbleiteranordnung, Verfahren zum Herstellen der Halbleiteranordnung und computerlesbares Medium

Also Published As

Publication number Publication date
JP2000067023A (ja) 2000-03-03
JP4509248B2 (ja) 2010-07-21
US6490630B1 (en) 2002-12-03

Similar Documents

Publication Publication Date Title
JP4509248B2 (ja) ネットワーク通信におけるデッドロックを回避するためのコンピュータアーキテクチャ
US8032892B2 (en) Message passing with a limited number of DMA byte counters
US8756350B2 (en) Method and apparatus for efficiently tracking queue entries relative to a timestamp
US7558895B2 (en) Interconnect logic for a data processing apparatus
US7627738B2 (en) Request and combined response broadcasting to processors coupled to other processors within node and coupled to respective processors in another node
US20050251612A1 (en) Separating transactions into different virtual channels
EP1615138A2 (en) Multiprocessor chip having bidirectional ring interconnect
US6651124B1 (en) Method and apparatus for preventing deadlock in a distributed shared memory system
US6715055B1 (en) Apparatus and method for allocating buffer space
JP2505050B2 (ja) 複数プロセツサ間で通信するためのシステム
EP1027659A1 (en) Message flow protocol for avoiding deadlocks
KR20030051433A (ko) 스위칭 시스템
US7143226B2 (en) Method and apparatus for multiplexing commands in a symmetric multiprocessing system interchip link
US20080244136A1 (en) Integrated Circuit and Method For Transaction Abortion
US20020178306A1 (en) Method and system for over-run protection in amessage passing multi-processor computer system using a credit-based protocol
US8843651B2 (en) Software aware throttle based flow control
JP2644134B2 (ja) 並列プロセツサ・システム及びこのシステムに使用されるスイツチの待ち行列構造
US7996572B2 (en) Multi-node chipset lock flow with peer-to-peer non-posted I/O requests
US20190138630A1 (en) Techniques for implementing a split transaction coherency protocol in a data processing system
US20020009098A1 (en) Communication control method and device
US20190042342A1 (en) Techniques for managing a hang condition in a data processing system with shared memory
JP2004334863A (ja) 順番のある(in−order)キューをドレインする(drain)システムおよび方法
US6826619B1 (en) Method and apparatus for preventing starvation in a multi-node architecture
JP2023531137A (ja) オン・チップ・ルーター
US9959173B2 (en) Node, arithmetic processing device, and arithmetic processing method

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20100511

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100914