JP3816531B2 - 非同期パケット交換 - Google Patents

非同期パケット交換 Download PDF

Info

Publication number
JP3816531B2
JP3816531B2 JP53040697A JP53040697A JP3816531B2 JP 3816531 B2 JP3816531 B2 JP 3816531B2 JP 53040697 A JP53040697 A JP 53040697A JP 53040697 A JP53040697 A JP 53040697A JP 3816531 B2 JP3816531 B2 JP 3816531B2
Authority
JP
Japan
Prior art keywords
packet
frame
mover
node
serial number
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
Application number
JP53040697A
Other languages
English (en)
Other versions
JPH11511634A (ja
Inventor
マーチン ウィッキ,トーマス
ジェイ. ヘーランド,パトリック
シミズ,タケシ
ウェバー,ウルフ−ディートリッヒ
ダブリュ. ウィルク,ウィンフリード
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 JPH11511634A publication Critical patent/JPH11511634A/ja
Application granted granted Critical
Publication of JP3816531B2 publication Critical patent/JP3816531B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

関連出願の相互参照
本願発明の主題は、下記に掲げる出願の主題と関連している。
米国特許出願第08/605,676号、“ダイナミックなネットワーク・トポロジー探査のシステムおよび方法”の名称で、Thomas M.Wicki, Patrick J.Helland, Wolf-Dietrich WeberおよびWinfried W.Wilckeによって1996年2月22日に出願、そして米国特許第5,740,346号として1998年4月14日に発行、(特表平11−504494号公報)、
米国特許出願第08/603,926号、“低い待ち時間、高いクロック周波数 プレジオ非同期 パケットベース クロスバー・スイッチング・チップ・システムおよび方法”の名称で、Thomas M.Wicki, Jeffrey D.Larson, Albert MuおよびRaghu Sastryによって1996年2月22日に出願、そして米国特許第5,838,684号として1998年11月17日に発行、(特表平11−504496号公報)、
米国特許出願第08/603,880号、“パケットスイッチングネットワーク内のルーチングデバイス出力アクセス用調整方法および装置”の名称で、Jeffrey D.Larson, Albert MuおよびThomas M.Wickiによって1996年2月22日に出願、そして米国特許第5,892,766号として1999年4月6日に発行、(特表平11−504781号公報)、
米国特許出願第08/604,920号、“電圧の揺れを少なくし、かつ、内部のブロック化データパスを生じさせないクロスバースイッチおよびその方法”の名称で、Albert MuおよびJeffrey D. Larsonによって1996年2月22日に出願、そして米国特許第5,991,296号として1999年11月23日に発行、(特表平11−51163号公報)、
米国特許出願第08/603,913号、“ネットワーク要素間のデータ伝送を制御するシステムおよび方法”の名称で、Thomas M.Wicki, Patrick J.Helland, Jeffrey D.Larson, Albert Mu, Raghu SastryおよびRichard L.Schober, Jr.によって1996年2月22日に出願、そして米国特許第6,003,064号として1999年12月14日に発行、(特表2000−506326号公報)、
米国特許出願第08/603,911号、“相互接続の障害検出およびその位置特定方法および装置”の名称で、Raghu Sastry, Jeffrey D.Larson, Albert Mu, John R.Slice, Richard L.Schober, Jr.およびThomas M.Wickiによって1996年2月22日に出願、そして米国特許第5,768,300号として1998年6月16日に発行、(特表平11−504495号公報)、
米国特許出願第08/603,923号、“多重ワード通信におけるエラー検出方法および装置”の名称で、Thomas M.Wicki, Patrick J.HellandおよびTakeshi Shimizuによって1996年2月22日に出願、そして米国特許第5,931,967号として1999年8月3日に発行、(特表2000−503498号)、
米国特許出願第08/603,882号、“正のソース帰還をそなえたクロック動作されるセンス増幅器”の名称で、Albert Muによって1996年2月22日に出願、そして米国特許第5,615,161号として1997年3月25日に発行、(特表2000−503449号)、
参考として、上記の出願の全てを本願発明の全体に亘って取り入れている。
発明の分野
本発明は、ネットワーク上のデータ転送、特に、マルチプロセッサ環境における非同期パケット交換データ転送に関する。
発明の背景
マルチプロセッサシステムは1つまたはそれ以上のメモリに接続されたいくつかのプロセッサを含んでいる。それらの相互接続は、例えば共有バス、クロスバー等のいくつかの形の1つを取り得る。そのような相互接続は高速アクセス(短かい待ち時間)と広い帯域幅をサポートしなければならない。現在存在している相互接続には(バス相互接続におけるように)帯域幅が制限されるか(クロスバー相互接続におけるように)スケーラビリティの問題があるか(一般のネットワークにおけるように)待ち時間が長過ぎるといった欠点がある。
すべてのメモリに対して短かい待ち時間で広い帯域幅のアクセスを可能にするマルチプロセッサシステムが望まれている。さらにプロセッサ/メモリが追加されたとき利用可能な帯域幅が増える(比例的に増える)べきである。
発明の概要
本発明において、マルチノードシステムは互いに結合された複数のノードを具備している。ノードはポイント−ポイント間のパケットで互いに通信している。各ノードはパケットムーバとフレームムーバを含んでいる。パケットムーバはフレームムーバへパケットを供給し、他のパケットムーバの1つからのパケットの受信に応答してアクノリッジメントを供給し、アクノリッジメントが予め定められた時間内に他のパケットムーバの1つから受信されないならばパケットをフレームムーバへ再送する。各パケットは宛先ノードを指示する。フレームムーバはパケットをフレームに変換し宛先ノードまでのルートを生成する。フレームに欠陥があれば廃棄されパケットムーバがそのパケットを再送する。フレームムーバはソースルーチングとノードまでの複数ルートを提供する。相互接続はフレキシブルなトポロジで良い。パケットは制限された有限の寿命を有する。
フレームムーバは宛先ノードまでの予め選択されたルートを選択し、該予め選択されたルートを含むフレームを生成し、フレームを宛先ノードへの伝達のために複数のルータへ供給する。ルートはそれらの間での伝達のための複数のルータのうちのいくつかを通るルートステップの連鎖を含んでいる。フレームムーバは宛先ノードまでの複数の予め選択されたルートを格納するためのルーチングテーブルを含み、フレームに含めるために複数の予め選択されたルートの1つを選択するためのコントローラを含んでいる。
【図面の簡単な説明】
図1は本発明に係るマルチプロセッサシステムを表わすブロック図である。
図2は図1のマルチプロセッサシステムのプロトコル階層を表わすブロック図である。
図3はフレームとパケットを表わす図である。
図4はファストフレームムーバを表わすブロック図である。
図5はフレームのルートの選択を表わすブロック図である。
図6はフレームが相互接続を経て伝達される間のフレームヘッダ内のルーチング情報の修正を表わすブロック図である。
図7は半メッシュリンクを表わす図である。
図8はメッシュリンクのレシーバとトランスミッタの対に対する異なるクロックドメインを表わすブロック図である。
図9は本発明の第2の実施例におけるフォールトトレラントな相互接続を表わすブロック図である。
図10はバーチャルカットスルールーチングを表わすブロック図である。
図11は図1のマルチプロセッサシステムのリライアブルパケットムーバを表わすブロック図である。
図12aはリライアブルパケットムーバによるパケットの送信動作を表わすフローチャートである。
図12bはリライアブルパケットムーバによるアクノリッジメントの処理とパケットの再送の動作を表わすフローチャートである。
図13はリライアブルパケットムーバによるパケットの受信の動作を表わすフローチャトである。
図14はペンディングパケットバッファをチェックする動作を表わすフローチャートである。
好適な具体例の詳細な記述
本発明の好適な具体例が図面を参照して記述されるが、そこでは同じ参照番号は同一または機能的に類似の要素を示している。また各参照番号の下2桁以外の数字はその参照番号が最初に使われる図面に対応している。
図1を参照すると、本発明に係るマルチプロセッサシステム100を表わすブロック図が示されている。マルチプロセッサシステム100は各々がメッシュリンク120で相互接続104に結合された複数のプロセッサノード102を含んでいる。各プロセッサノード102はプロセッサ106、コヒーレンス制御ユニット110及びローカルメモリ112を含んでいる。コヒーレンス制御ユニット110はリライアブルパケットムーバ(RPM)114とファストフレームムーバ(FFM)116を含んでいる。
リライアブルパケットムーバ114はプロセッサノード102間の信頼性のあるエンド−エンド間データ通信を提供する。ファストフレームムーバ116はデータを発信元プロセッサノード102から宛先プロセッサノード102へルーチングする。各プロセッサノード102に対して、あらゆる宛先プロセッサノード102へ向かう少なくとも1つの経路がファストフレームムーバ116に格納されている。相互接続104におけるトポロジー及びその中の失敗の領域の決定方法は、特許出願第08/605,676号、“ダイナミックなネットワート・トポロジー探査のシステムおよび方法”の名称で、Thomas M.Wicki, Patrick J.Helland, Wolf-Dietrich WeberおよびWinfried W.Wickeによって1996年2月22日に出願、そして米国特許第5,740,346号として1998年4月14日に発行、に記述されており、その事項は参照することによりここに組み入れられる。
プロセッサ102の他のアーキテクチャも使用可能である。例えば、コヒーレンス制御ユニット110はプロセッサ106に結合されたキャッシュメモリに結合されても良い。
相互接続104はメッシュリンク120で相互接続された複数のルータ118を含んでいる。複数のプロセッサノード102はメッシュリンク120でルータ118に結合されている。1つ以上のプロセッサノード102が同じルータ118に結合されても良い。ルータ118は好ましくはクロスバースイッチである。図示の目的のためにここに記述される特別の実現形態において、ルータ118は6つのポートを有している。勿論、プロセッサノード102の数が少ないシステムにおいては、相互接続104は唯1つのルータ118を含んでおり、2つのプロセッサノード102を含むシステムでは、ルータ118が含まれる必要はない。ルータの一例は、特許第08/603,926号、“低い待ち時間、高いクロック周波数 プレジオ非同期 パケットベース クロスバー・スイッチング・チップ・システムおよび方法”の名称で、Thomas M.Wicki, Jeffrey D.Larson, Albert MuおよびRaghu Sastryによって1996年2月22日に出願、そして米国特許第5,838,684号として1998年11月17日に発行、に記述されており、その事項は参照することによりここに組み入れられる。
相互接続104はすべての通信がプロセッサノード102−プロセッサノード102間で直接行なわれるパケットベースのプロトコルを使用する。相互接続104は多数同報または放送機能を提供する必要はない。すべての転送データは、図3との関連において以下に記述されるパケットに分けられる。
マルチプロセッサシステム100は不均一なメモリアクセス時間を提供する共有メモリシステムである。プロセッサ106は他のローカルメモリ112をアクセスすることもできる。第1のプロセッサノード102のローカルメモリ112へのアクセスは他のプロセッサノード102のメモリへのアクセス時間よりも短かい。プロセッサ106がローカルメモリ112をより多く使用することを許すソフトウェアを書くことにより、待ち時間は減少する。ネットワークの待ち時間は、メモリ要求が送信されたときから測定された、要求中のプロセッサノード102へ要求されたデータがもたらされるまでに必要な時間である。言い換えれば、待ち時間はデータが要求された後にそれが受け取られるまでにどれだけの時間がかかるかを示している。
コヒーレンス制御ユニット110とローカルメモリ112の間のリンクの帯域幅は、コヒーレンス制御ユニット112と相互接続104の間のリンクの帯域幅に実質的に等しいことが好ましい。帯域幅はデータを受け取りまたは送出することのできる速度とパスの幅の双方に依存する。
マルチプロセッサシステム100は好適には分散メモリシステムである。より特定すれば、システム100は物理的に分散されているがローカルメモリ112が論理的に共有されるメモリアーキテクチャを有している。例えば、プロセッサノード102例えばノードAは、このノード102がローカルであるものとして処理するがそれは実際には異なるプロセッサノード102例えばノードBに結合された異なるローカルメモリ112に物理的に位置するメモリ位置へのアクセスを要求することができる。要求中のノードまたは発信元のノード(ノードA)のコヒーレンス制御ユニット110はメモリの位置を特定しその位置に格納されたデータがすばやく取り出される。
マルチプロセッサシステム100はプロセッサとしての能力を持たない入力/出力(I/O)ノード103もまた含んでいる。明確化のため、唯一のI/Oノード103が示されている。そのようなノード103はPCIバスまたはSバスのようなバスとのインターフェースをとるためのバス変換器であっても良い。そのようなI/Oノード103はここに記述されたような発信元または宛先ノード102として機能することもできる。このように、ここでのデータの通信及び処理の記述において、プロセッサノード102が記述されるとき、I/Oノード103もまた使用することができる。
図2を参照すると、プロセッサノード102と相互接続104のプロトコル階層を表わすブロック図が示されている。プロトコル階層は相互接続サービスマネージャ(ISM)層202、リライアブルパケットムーバ(RPM)層104、ファストフレームムーバ(FFM)層206、及び物理層208を含んでいる。コヒーレンス制御ユニット110は、プロセッサ106が実行するソフトウェアで制御可能な相互接続サービスマネージャ層202、リライアブルパケットムーバ層204、ファストフレームムーバ層206、及び物理層208の一部、の機能を提供する。それらの階層ではシステム100の機能のより能率的な分割とシステムの一部の独立な更新及び試験のことが考慮されている。相互接続サービスマネージャ層202はコヒーレンスを保証するためにポイント−ポイント間でメッセージを通信する。第1のプロセッサノード202の相互接続マネージャ層202が他のプロセッサノード102へデータを送るかまたはそれからのデータを要求するとき、第1のプロセッサノード102の相互接続マネージャ層202は、リライアブルパケットムーバ114にデータを送るべきであるかまたは要求すべきであること及びデータの発信元または宛先を知らせるコマンドをリライアブルパケットムーバ114へ送る。
リライアブルパケットムーバ層204では、発信元のプロセッサノード102が宛先のプロセッサノード102へデータを送り、相互接続104内の経路を決定することまたは経路に関する何らの情報を使用することもない。リライアブルパケットムーバ層204は、パケット302を通信するためにファストフレームムーバ層206を使うことによって、プロセッサノード102間でパケット302(図3参照)の信頼性のある配送を提供する。リライアブルパケットムーバ層204はエンド−エンド間のデータの一貫性を提供する。リライアブルパケットムーバ層204では、リライアブルパケットムーバ114はデータを送りそのデータが受けとられたことを示すアクノリッジ信号を監視する。もしそれが或るタイムアウト期間内にアクノリッジされなかったら、リライアブルパケットムーバ114はデータを再送する。これは好ましくはソフトウェアによる実現ではなくハードウェアで実現される。このように、リライアブルパケットムーバ層204は伝送中に失なわれたかまたは破壊されたデータを再送する。リライアブルパケットムーバ層204はパケットの重複を抑制し、誤った順序で受信されたデータパケットの並べ換えを行なう。リライアブルパケットムーバ層204は宛先プロセッサノード102の送信パケットバッファ1106(図11)のオーバーランを避けるべくノード−ノード間のフロー制御を提供する。リライアブルパケットムーバ層では、通信はプロセッサ102間で行なわれ1対多または同報通信ではない。パケット302が2以上のプロセッサノード102へ送られるときは、相互接続サービスマネージャ層202が各宛先プロセッサノード102へパケット302のコピーを別々に送る。
ファストフレームムーバ層206では、通信は直接に接続されたエレメント(例えばプロセッサノード102とルータ118)間のポイント−ポイント間通信である。フレーム300(図3参照)は発信元プロセッサノード102から相互接続104のルータ118を経て他のルータ118へ送られさらに宛先プロセッサノード102へ送られる。ファストフレームムーバ層206は隣り合ったエレメント(ルータ118とプロセッサノード102)間の各ステップについてフロー制御を提供する。ファストフレームムーバ層206はこれらのステップをつないだルートを提供し、それによってフレームを或るノードから他へ送達する。ファストフレームムーバ層206は使用されるフレーム300の部分のみについて簡単な一貫性チェックを行なうがエラーの訂正は行なわない。もしエラーが起こったらファストフレームムーバ層206はそのフレーム300を廃棄し、その後に、センダがデータを再送する。ファストフレームムーバ層206はメッシュリンク120の他端に接続された直接の隣人のオーバーランを避けるためのメッシュリンクフロー制御を提供する。ファストフレームムーバ層206は各フレーム300に対するエラー検出を行なわず悪いフレーム300をドロップすることにより短かい待ち時間でストリームライン化されている。
物理層208は相互接続104のケーブル、コネクタ等とプロセッサノード102とのインターフェースを含んでいる。
図3を参照すると、フレーム300とパケット302を表わす図が示されている。フレーム300はファストフレームムーバ116で使用されるデータ転送の単位である。フレーム300はフレームヘッダ304とフレーム本体であるパケット302を含んでいる。フレームヘッダ304はルーチング情報318、フロー制御情報320、及びプライオリティ情報322を含んでいる。ルーチング情報318はそのフレームを処理しそのルーチングを制御する予定のルータ118の連鎖を含んでいる。フロー制御情報320は次の下流のルータ118またはプロセッサノード102の容量に関する情報を含んでおり、データの流れの制御または停止を可能にする。プライオリティ情報322はフレーム300の優先度レベルを含んでいる。フレームヘッダ304は好ましくは大きさ68ビット(81/2バイト)のワードで1ワードである。フレーム本体(パケット302)は好適には大きさが2〜18(68ビット)ワードである。
パケット302はパケットヘッダ306とパケットデータ308を含んでいる。パケットヘッダ306はパケットヘッダディスクリプタ310、プライオリティアクノリッジメントリクエスト324、及びエラー検出コード(EDC)312を含んでいる。パケットヘッダ306は好適には68ビットのワードで2ワードであり、各ワードは64ビット(8バイト)のデータと4ビットのEDCである。パケット302はパケットデータ308を含んでいなくても良い。パケットデータ308は可変長であり、好ましくは0ないし128バイトのデータ(0ないし16ワード)である。例えばアクトリッジメントパケット(後述)はパケットヘッダ306とEDC312のみを含んでいる。パケットデータ308はデータであって良い。パケットヘッダディスクリプタ310は宛先プロセッサノード102を示す情報を含んでいる。図12とともに後に説明するように、リライアブルパケットムーバ114はそれがパケット302を処理するときパケット302にEDC312を付加する。EDC312は好ましくはパケット308の16バイトごとに1バイト(8ビット)である。EDC312はパケットデータ308の各8バイトに対して4ビットとして格納され、16バイトまたは2ワードに対する8ビットが1度にチェックされる。プライオリティアクノリッジメントリクエスト324はパケット302が受信されたという既座のアクノリッジメントを宛先プロセッサノード102が送ることの要求である。
リライアブルパケットムーバ114はパケット302の通し番号を含むパケットヘッダを生成する。通し番号は識別子であり発信元プロセッサノード102から宛先ノード102へ送られるパケット302の順序のインジケータである。通し番号は各発信先−宛先ノードのペアについて生成される。ファストフレームムーバ116はフレーム本体(パケット302)を調べたり修正したりはしない。ファストフレームムーバ116はパケット302を受信するとフレームヘッダ304を生成する。ファストフレームムーバ層206の一部であるルータ118は図5〜6に関連して以下に記述されるように相互接続104を経てフレームが通信されるときフレームヘッダ304を修正する。宛先プロセッサノード102のファストフレームムーバ116は宛先プロセッサノード102のリライアブルパケットムーバ114へパケット302を引き渡すときフレームヘッダ304を廃棄する。
図4を参照すると、送信回路402と受信回路404を含むファストフレームムーバ116を表わすブロック図が示されている。各ファストフレームムーバ116は送信回路402と受信回路404の双方を含んでいるが、明確化のために、1つの送信回路402と1つの受信回路404のみが示されている。送信回路402はルーチングテーブル406、乱数発生器407、及びFFM送信コントローラ408を含んでいる。受信回路404はバッファマネージャ410、バッファ412、及びFFM受信コントローラ414を含んでいる。ルーチングテーブル406は相互接続104を経て各宛先プロセッサノード102へ至る少なくとも1つのルートを格納している。フレーム300がルートに沿って通信されるときルート上の各ルータ118はルートから1つのルーチングステップを取り除くことによってフレームヘッダ304を修正する。
ファストフレームムーバ114及びルータ118はメッシュリンク120上のフロー制御を維持する。受信回路404のバッファマネージャ410はバッファ412のステータスを監視し、ルータ118またはプロセッサノード102のいずれかである次の上流の隣人にメッシュリンク120を介してステータス情報を送る。同様に、各ルータ118はその中のバッファ(図示せず)のステータスを監視し、同様にルータ118またはプロセッサノード102のいずれかである次の上流の隣人にメッシュリンク120を介してステータス情報を送る。発信元プロセッサノード102のファストフレームムーバ114またはルータはバッファ412に空きができるまで次の下流の隣人(プロセッサノード102またはルータのいずれか)へのフレーム300の送信を遅くするかまたは停止する。フロー制御のそのような実現の1つは米国特許出願第08/603,913号、“ネットワーク要素間のデータ伝送を制御するシステムおよび方法”の名称で、1996年2月22日に出願、そして米国特許第6,003,064号として1999年12月14日に発行、に記述されており、その事項は参照することによりここに組み入れられる。
ルータ118はルータ118の動作として許される範囲内のエラー検出を行なう。例えば、ルータ118はルータ118の次のリンクが存在するかどうかを決定する。例えば、ルータ118が6つのポートを持っておりフレームヘッダ304はフレーム300がポート0のような存在していないポートへ供給されるべきであることを示しているならばルータ118はフレーム300を廃棄する。
図5を参照すると、フレーム300のルートの選択を表わすブロック図が示されている。図6を参照すると、フレーム300が相互接続104を介して通信される間におけるフレームヘッダ304内のルーチング情報318の修正を表わすブロック図が示されている。ルートの選択は発信元プロセッサノード102と宛先プロセッサノード102と複数のルートの1つを取り出すための乱数のみに依存する。ルートは好ましくはフレーム300の大きさまたは種類に基づかない。
相互接続104を通るルートは決定論的である。ルートの選択は予め定められたルートのテーブルを格納するルーチングテーブル406から選択される。ルートが選択されフレーム300が相互接続104へ供給されるとパスが決定される。フレーム300は宛先プロセッサノード102までのこのルートに従うかまたはエラーの際にルートの途中で廃棄される。決定論的なルーチングはいくつかの利点をもたらす。第1に、ルータ118による決定を伴うことなくフレーム300がフレーム300の次の宛先を定めるのでルータ118がフレーム300をすばやく処理することができる。第2に、フレーム300の相互接続内での寿命が制限される。フレーム300は有限の長さの予め定められたルートによって通信される。このことはリライアブルパケットムーバ114が有限の長さの通し番号を使用することを許し、それによってパケットヘッダ306の大きさが小さくなる。ほとんどの場合に、このことは相互接続104からの古いパケット802をなくす。第3に、予め選択されたルートは相互接続104を通る任意のパスに従うことができる。相互接続の負荷を適切に分散させることができる。
ルートは発信元プロセッサノード102と宛先プロセッサノード102の間で直接結合されたルータ118の連鎖を含んでいる。ルートは特別のトポロジを必要としない。実際、2つの直接結合されたルータ118間のリンクがユニークに定められる任意のトポロジが使用可能である。
特に図5〜6を参照すると、ファストフレームムーバ116は、予め特定された宛先ノード例えばプロセッサノードBに送られるべきであるパケット302で示されるパケット302をリライアブルパケットムーバ114から受け取る。ファストフレームムーバ116は乱数発生器407から1つの乱数を受け取る。ファストフレームムーバ116は確率分布テーブル502内の複数のメモリ位置504の1つを選択するためにこの乱数を使用する。各メモリ位置504は、発信元プロセッサノード102(例えばノードA)から宛先プロセッサノード102(例えばノードB)までの複数の予め特定されたルートの1つを格納している。次にファストフレームムーバ116は選択されたメモリ位置504からその中に格納されている予め特定されたルートを抽出する。確率分布テーブル502は好適にはルートの選択を偏らせる予め特定された確率分布に従ってつくられる。例えば、ファストフレームムーバ116はルーチングテーブル406に格納されたルートの1つを予め定められた数のメモリ位置504に格納することによって確率分布を生成する。確率分布502はルートの各々がメモリ位置504に格納される頻度によって決定される。ファストフレームムーバ116はこのように選択された予め特定されたルートを含むフレームヘッダ304を生成し、このフレームヘッダ304をパケット302に付加してフレーム300を生成する。
さて、特に図6を参照する。前述したようにフレームヘッダ304は発信元プロセッサノード102から相互接続104を経て宛先プロセッサノード102に至る予め定められたパスを特定するルーチング情報318を含んでいる。前に指摘したように、ルートは一連のルートステップを含んでいる。各ルートステップはルータ118がフレーム300を送り出すルータ118のポートを定める。各ルートステップは可変の大きさを有する。例えば、6ポートのルータ118においては3ビットがポートを定める。12ポートのルータ118においては4ビットがポートを定める。従って、1つのルートが様々な大きさのルータ118を含む場合がある。勿論、ルートが異なる数のルートステップを含む場合がある。この場合に、ルートは異なる大きさのルートステップを含む。図6のリンク1において、ルーチングパスはリンク3、リンク5、リンク2及び宛先プロセッサノード102である。ルーチングパスの各リンクはフレームヘッダ304から次のリンクのコードを取り去り、フレームヘッダ304内のルーチングパスをシフトし、フレームヘッダ304の終りを存在しないプロセッサノードの番号すなわち0で満たす。次にそのリンクは修正されたフレームヘッダ304を有するフレーム300を次のリンクに供給する。例えばリンク#3はポート5を経てフレーム300を供給しフレームヘッダ304からリンク5を除去する。勿論、ルートの最後のリンクはフレーム300を宛先プロセッサノード102へ供給する。
図7を参照すると、メッシュリンク120の半分を表わす線図が示されている。メッシュリンク120は1対の単方向のデータパスを含んでいる。この対は送信から受信へスイッチされる共有媒体よりも広い帯域幅を提供し、そのような共有媒体に対して起こる伝幡遅延への依存性をなくす。高速度システムに対しては多ビットの情報がメッシュリンク120上に一度に存在しうる。その対はルータ118が双方向で同時に通信することを可能にする。メッシュリンク120はポイント−ポイント間の電機接続を提供する。メッシュリンク120は好適にはバスではない。各単方向データパスはデータライン702と制御ライン、特に、クロックライン704、データ/ステータス指示ライン706、フレームエンベロープライン708及び基準電圧ライン710を含む半メッシュリンクである。データライン702はフレーム300を伝達するためのパスを提供する。バッファステータス情報はフレーム300が送られないときに同じデータライン702上に多重化される。相互接続104の帯域輻はデータライン702の数に依存する。データライン702は好適にはクロックエッジあたり1/2ワードのフレーム300を伝達するために34線である。クロックライン704はフレーム300を相互接続104を経て供給しているプロセッサノード102のクロックのための通信パスを提供する。クロックライン704は好適には2線上の完全差動単一クロックである。データ/ステータス指示ライン706はデータライン702上の信号がデータであるかステータスであるかを示す信号を供給する。例えば、図4との関連において前述されたようなメッシュリンク120のフロー制御については、データ/ステータス指示ライン706はバッファ412のステータス情報がデータライン702上で通信されていることを示す。データ/ステータス指示ライン706は好ましくは1本の線を有している。フレームエンベロープライン708はフレームの始まりを示すフレームエンベロープ信号を供給する。特に、フレームエンベロープ信号はフレームヘッダ304の始まりを示し、フレームの伝送中はアクティブにとどまる。フレームエンベロープ信号はフレームの終りでまたはフレームが背中合わせで伝送されることを可能にするためその終りよりも充分な時間だけ前にイナクティブになる。フレームエンベロープライン708は好ましくは単一の線を有している。基準電圧ライン710は単線差動であるすべてのデータ及び制御ライン702,706,708上での小信号の変化を可能にするため、ルータ118またはプロセッサノード102に対する基準電圧を提供する。基準電圧ライン710は好ましくは5線である。各メッシュライン120は好ましくは各方向で43線或いは全体で86線を有している。これによりメッシュリンク120上で34ビットのパラレル伝送が可能となる。したがって1ワードは2クロックサイクルで伝送され、それは双方のエッジでラッチされれば1クロックサイクルに等しい。
図8を参照すると、メッシュリンク120の1対のレシーバとトランスミッタに対する異なるクロックドメインを表わすブロック図が示されている。各プロセッサノード102と各ルータ118はクロック信号を提供するための内部クロック発生器802を有している。クロック発生器802は好ましくは実質的に等しいクロック信号を提供する。クロックはメッシュリンク120上で次の隣人(宛先プロセッサノード102またはルータ118)へ供給され、それはデータを受け入れるためにこのクロックを使用する。より特定すれば、このクロックは宛先プロセッサノード102またはルータ118においてファーストインファーストアクト(FIFO)バッファ804にデータをラッチするために使用される。宛先プロセッサノード102またはルータ118はFIFOバッファ804からデータを読み出すためにそれ自身の内部クロック発生器802を使用する。これにより宛先プロセッサノード102またはルータ118のクロックからの周波数シフト及び位相シフトを有するクロックに基づくデータを宛先プロセッサノード102またはルータ118が受け入れることが可能になる。このクロック手法はすべてのクロック全体の同期化の必要性をなくす。クロックドメインはプレジオ同期クロックドメインである。クロックはデータライン702上のデータとともにメッシュリンク120上に提供される。クロック手法の一例は米国特許出願第08/223,575号、“マルチパスデータ同期化システム及び方法”の名称で1994年4月6日に出願、そして米国特許第5,509,038号として1996年4月16日に発行、にあり、その事項は参照することによりここに組み入れられる。
図9を参照すると、本発明の第2の実施例に係るフォールトトレラントな相互接続を表わすブロック図が示されている。相互接続104はプロセッサノード102間にフォールトトレラントにするために冗長なパスを提供する少なくとも2つのサブメッシュ902を含んでいる。ファストフレームムーバ116は、動的に、機能していないかまたは取り除かれたルータ118またはメッシュリンク120のまわりに再ルーチングするか他のサブメッシュ902を使用する。
各サブメッシュ902はすべてのプロセッサノード102へメッシュリンク120により結合される。各サブメッシュ902は好ましくはフォールトトレラントでないメッシュに類似している。各プロセッサノード102はサブメッシュ902の各々と別のメッシュリンク120で結合されているルータ118にメッシュリンク120で結合される。
各ルータ118はルータ118がフレーム300を廃棄するごとにインクリメントされるカウンタ(図示せず)を含んでいる。マルチプロセッサシステム100は周期的にカウンタを読みそれに接続されているルータ118またはメッシュリンク120が欠陥を有しているかを決定する。そのような決定がなされたら、マルチプロセッサシステム100は欠陥冗長性のあるシステムにおいて予め定められたルートからそのルータ118またはサブメッシュ902を取り除く。例えば、プロセッサノード102はルーチングテーブル406からルートを選択するための確率分布テーブル502からこのルートを削除する。プロセッサノード102は各宛先プロセッサノード102について要求されるパケット302の再送の回数をカウントし、カウント値が予め定められた閾値よりも大きければパス内のルータ118が高い欠陥カウントを有しているかを決定する。
図10を参照すると、フレーム300終りがまだ受信されていなくてもルート内の次のルータ118またはプロセッサノード102へフレーム300の始まりが送られるバーチャルカットスルールーチングを表わすブロック図が示されている。より特定すれば、パケット302は複数のセグメント1002、例えば7に区切られる。セグメント1002は好ましくは異なるサイズである。前述のように、発信元プロセッサノード102は宛先プロセッサノード102へパケットを送るためのルートを選択する。発信元プロセッサノード102はフレーム300をルート内の最初のルータ118に供給する。フレームヘッダ306を受信すると、ルート内の第1のルータ118はフレーム300を送るための次のメッシュリンク120を決定し受け側のバッファ資源が利用可能であり出力ポートが利用可能であればフレーム300の送出を開始する。フレーム300は宛先プロセッサノード102を含む多くのルータ118とメッシュリンクにまたがる可能性がある。図10に示されるように、フレーム300の第1セグメント1002は宛先プロセッサノード102に到着し第2〜第6セグメント1002はルート内の異なるルータ118及びメッシュリンク120にある。発信元プロセッサノード102は第7セグメント1002をまだ送っていない。バーチャルカットスルールーチングの待ち時間は代表的には中間のルータ118におけるバッファリングを含んでいない。これに対して、蓄積交換ルーチングではメッセージ全体が転送の前に蓄積される。このようなルーチングでは待ち時間はバッファリングを含んでいる。
図11を参照すると、リライアブルパケットムーバ114を表わすブロック図が示され、それは送信回路1102と受信回路1104を含んでいる。各リライアブルパケットムーバ114は送信回路1102と受信回路1104の双方を含んでいるが、明確化のため、1つの送信回路1102と1つの受信回路1104のみが示されている。送信回路1102は失われたかまたは破壊されたデータの再送の制御のために送信パケットバッファ1106、RPM送信コントローラ1108、パートナインフォメーションテーブル1110及びタイムアウト回路1112を含んでいる。送信パケットバッファ1106は送信されたがアクノリッジされていないパケット302を格納する。送信パケットバッファ1106はソフトウェアで実現されるシステムにおけるよりもサイズが小さい。その理由は、バーチャルカットスルールーチングとの組み合わせにおいてシステム100の待ち時間を小さくすればパケット302の受信順序の誤りが少なくなりもし送信パケットバッファ1106が一杯になったら相互接続サービスマネージャ層202がパケット302を保持するからである。パートナ情報テーブル1110は各宛先プロセッサノード102について送る予定でありその宛先プロセッサノード102からアクノリッジされる予定である次のパケット302の通し番号を格納する。RPM送信コントローラ1108は送信回路1102の動作を制御する。タイムアウト回路1112は失なわれたかまたは破壊されたデータの再送の制御のための時間カウントを提供する。
受信回路1104はペンディングパケットバッファ1114、RPM受信コントローラ1116、及びパートナ情報テーブル1118を含んでいる。ペンディングパケットバッファ1114は誤った順序で受信されたパケット302を格納する。ペンディングパケットバッファ1114はソフトウェアで実現されたシステムにおけるよりもサイズが小さい。その理由はシステム100の待ち時間が小さいのでパケット302を誤った順序で受信することがより少ないからである。RPM受信コントローラ1116は受信回路1104の動作を制御する。パートナ情報テーブル1118は各発信元プロセッサノード102についてその発信元プロセッサノード102からの次に期待されるパケット302の通し番号を格納する。
リライアブルパケットムーバ114はパケット302の通し番号を含むパケットヘッダ306を生成する。通し番号は宛先プロセッサノード102にパケット302の順序を知らせるために使われる。宛先ノードは順番にパケット302を処理するのみである。正しい順序のパケットを受信したら宛先プロセッサノードは発信元プロセッサノードへパケット302の受信を知らせるアクノリッジメントを発信元プロセッサノードに送り返す。発信元プロセッサノード102が所定の時間内にアクノリッジメントを受け取らないならば発信元プロセッサノード102は同じ通し番号を使ってパケット302を再送する。
図12aを参照すると、リライアブルパケットムーバ114の送信回路1102の動作を表わすフローチャートが示されている。データを送信するために、コヒーレンス制御ユニット110はデータと宛先プロセッサノード102の識別子をリライアブルパケットムーバ114へ供給し、それはデータをパケット302に変換して各パケット302に通し番号を割り当てる。各送信パケット302は発信元プロセッサノード102において送信パケットバッファ1106に格納される。もし1201それが容量を持っていたら、送信パケットバッファ1106はデータを受け入れ、リライアブルパケットムーバ114はパケット302を送信する。もしそうでなければ、相互接続サービスマネージャ層202はパケット302の送出を停止して待つ。
リライアブルパケットムーバ114がパケット302を送るとき、送信回路1102は宛先プロセッサノード102に対応するパートナ情報テーブル1110から通し番号を取得する1202。送信回路1102は取得した通し番号をパケット302のパケットヘッダ306に付加し1206エラー検出を行なう1207。送信回路1102は前述のように送信するためにパケット302をファストフレームムーバ116へ送る1208。送信回路1102はまたパケットが受信されたとのアクノリッジメントが受信されるまで、パケット302をそのパケット302のためのセットされていないマークビットとともに送信パケットバッファ1106に格納する1210。パートナ情報テーブル1110の通し番号は次のパケット302の送信のためにインクリメントされる1204。通し番号は有限であるからそれらは結局巡回する。従って、通し番号の領域は同じ通し番号のパケット302がシステム100内に同時にないように充分に大きい。
図12bを参照すると、パケットが送られた後のリライアブルパケットムーバによるアクノリッジメントパケットの処理とパケットの再送の動作を表わすフローチャートが示されている。アクノリッジメントパケットとはパケット302が受信されエラー検出を通過したことを示す受信回路1104から発信元プロセッサノード102への制御パケットである。アクノリッジメントパケットは宛先ノード番号、受信パケット302の通し番号及びEDCを含み好適には16バイトである。アクノリッジメントパケットは発信元宛先ノード102へ送られるべき他のパケット302に付加されても良い。これにより相互接続104におけるトラヒックが軽減される。アクノリッジメントパケッ自身はアクノリッジされずそれ自身の通し番号を含まない。アクノリッジメントパケット内の通し番号はすべての先行するパケット、すなわちアクノリッジメント内の通し番号または前に指摘した巡回を考慮して調整したものよりも小さい通し番号をもつすべてのパケットを暗黙的にアクノリッジしている。このことは受信回路1104がパケット302のアクノリッジメントを出し遅れることを許し2以上のパケット302をアクノリッジするために1つのアクノリッジメントパケットを使うことによりアクノリッジメントパケットのトラヒックが減少する。
送信回路1102はアクノリッジメントパケットが受信されたかを決定する1212。もしそうであれば送信回路1102は送信パケットバッファ1106から受信されたアクノリッジメントに対応するパケット302を削除する1214。この削除には発信元−宛先プロセッサノード102の対に対する送信パケットバッファ1106内のすべての先行するパケット302が含まれている。これらのパケット302はアクノリッジメントパケット内の通し番号或いは巡回を考慮して適切に調節された通し番号よりも小さいか等しい通し番号を有している。
アクノリッジメントパケットが所定のタイムアウト期間内に受信されないならばパケット302は再送される。特に、アクノリッジメントパケットが受信されないならば1212、送信回路1102はタイムアウト回路1112がタイムアウトしたかを決定する1216。もしそうでなければ、送信回路1102はアクノリッジメントが受信されるかの決定1212を続行する。
一方、タイムアウト回路1112がタイムアウトしたならば、送信回路1102は送信パケットバッファ1106に格納された各パケット302をチェックして1218そのパケット302にマークビットがセットされているか決定する。ビットがセットされていなければ、送信回路1102はそのパケット302にマークビットをセットする1220。このことはパケット302が再送される前に1ないし2回のタイムアウト期間を許すものである。マークビットがセットされている1218パケット302については、送信回路1102は送信パケットバッファ1106からパケット302を取り出し1222そのパケット302を再送信する1224。相互接続104に欠陥があるかを決めるために、制限されたまたは最大数の再送信が行なわれる。より特定すれば、送信回路1102はパケット302が所定の回数だけ再送されたかを決める1225。もしそうであれば、送信回路1102は相互接続サービスマネージャ層202にその再送の回数を知らせ1227、層202は発信元−宛先ノードの対の間でパケット302のルートを再設定する。再送回数が最大に達していなければ、最後のパケット302に達したら1226、送信回路1102は前述のようなアクノリッジメントパケットが受信されるかの決定1212を続行する。
図13を参照すると、リライアブルパケットムーバ114の受信回路1104の動作を表わすフローチャートが示されている。リライアブルパケットムーバ114の受信回路1104はパケット302を相互接続サービスマネージャ層202へ通し番号の順序で供給する。受信回路1104は相互接続104からパケット302を受け取る1302。ペンディングパケットバッファ1114が満杯であれば、受信回路1104はパケット302を廃棄する。或いは、受信回路1104がペンディングパケットバッファ1114に格納された最後のパケット302を廃棄するようにしても良い。これは処理量のためのもので正確さのためのものではないから、勿論他のパケットをペンディングパケットバッファ1114から廃棄するようにしても良い。受信回路1104はパケット302についてエラー検出を行なう1316。パケット302がエラー検出で失敗すれば1318、パケット302は廃棄され1310、受信回路1104はパケット302の受信1302を続行する。一方、パケット302がエラー検出で失敗しなければ1318、受信回路1104はパケットヘッダ306から通し番号と発信元ノード番号を抽出する1304。受信回路1104はパートナ情報テーブル1118から発信元プロセッサノードについての次に期待される通し番号を読み出し1306、次に期待される通し番号を抽出された通し番号と比較する1308。抽出された通し番号が期待される通し番号よりも小さければそのパケット302は既に受信回路1104で処理されており重複している。ここでも通し番号の巡回が適切に考慮される。そのパケット302は廃棄され1310、受信回路1104はパケット302の受信1302を続行する。
抽出された通し番号が期待された通し番号よりも小さくなければ、受信回路は抽出された通し番号が期待された通し番号に等しいかを決める1312。一致がなければ受信されたパケット302は正しい順序でない。受信回路1104はパケット302をペンディングパケットバッファ1114に格納し1314、受信回路1104はパケット302の受信1302を続行する。
一方、次に期待される通し番号が抽出された通し番号に一致すると1312、受信回路1104は相互接続104へアクノリッジメントを供給する1320。受信したパケット302は期待したパケット302であるから、受信回路1104は対応する発信元プロセッサについてのパートナ情報テーブル1118をインクリメントする1322。受信回路1104は順番における次のパケット302についてのペンディングパケットバッファ1114を処理しチェックする1326ためにパケット302を相互接続サービスマネージャ層202へ供給する1324。
図14を参照すると、ペンディングバッファ1114をチェックする1326動作を表わすフローチャートが示されている。受信回路1104は順番において次のパケット302についてペンディングパケットバッファ1114をチェックする1402。次の期待されたパケット302がペンディングバッファ1114にあれば、受信回路1104はアクノリッジメントを送り1104通し番号をインクリメントする1406。受信回路1104は相互接続サービスマネージャ層202へそのパケット302を供給する1408。受信回路1104は次に期待されるパケット302についてそのようなパケットがみつからなくなるまでペンディングパケットバッファ1114のチェックを続行する。受信回路1104は受信されたパケット302について監視1302(図13)を続行する。
上記の記述は好適な実施例の動作の説明のためのものであり、本発明の範囲を限定することを意味するものではない。上記の議論から、当業者にとって本発明の精神と範囲に含まれる多くの変形が明らかである。

Claims (12)

  1. パケットでデータを通信するシステムであって、各パケットはフレームに含まれ、該システムは、
    フレームを順次送信し受信すべく配置された複数のルータ(118)と、
    複数のノード(102)であって、各ノードが、ルータへフレームを送りルータからフレームを受け取るべく配置されたフレームムーバ(116)とフレームムーバへパケットを供給しフレームムーバからパケットを受け取るべく配置されたパケットムーバ(114)とを含むものとを具備し、
    複数のルータとノードがネットワークにおいて相互接続され、
    複数のノードの中の発信元ノードのパケットムーバがそのフレームムーバへ複数のノードの中の宛先ノードを示すパケット(302)を供給し、
    ルーチングテーブル(406)が発信元ノードから宛先ノードへの複数の予め定められたルートを有し、
    発信元ノードのフレームムーバが宛先ノードへの選択されたルートとして複数の予め定められたルートの一つを選択して選択されたルートとパケットを含むフレーム(300)を生成し、
    発信元ノードが発信元ノードから宛先ノードへ選択されたルートに沿ってフレームを送信し、ここにおいて、選択されたルートはフレームに含まれる選択されたルートに応答してフレームを送信する1つ以上のルータの連鎖を含み、
    宛先ノードのフレームムーバがフレームを受信しそれに含まれているパケットを宛先ノードのパケットムーバへ供給し宛先ノードのパケットムーバがパケットのエラーをチェックしエラーの検出に応答してパケットを廃棄しエラーを検出しないことに応答してパケットのアクノリッジメントを発信元ノードへ送信し、
    発信元ノードのパケットムーバが予め定められた期間パケットのアクノリッジメントを受信しないことに応答して宛先ノードへパケットを再送し、ここにおいて、複数のノードの少なくとも1つのフレームムーバは選択されたルートとして複数の予め定められたルートの確率分布に従って複数の予め定められたルートの前記1つを選択する、システム。
  2. 複数のルータとノードはネットワークにおいてメッシュリンクで相互接続される請求項1記載のシステム。
  3. 複数のノードの少なくとも1つのフレームムーバは複数の予め定められたルートの前記1つを選択されたルートとして選択するために使用される乱数を発生する乱数発生器を具備する請求項1記載のシステム。
  4. 発信元ノードのフレームムーバは選択されたルートをフレームの初めの部分に含ませ、
    1つ以上のルータの連鎖におけるルータの少なくとも1つはフレームの初めの部分を受信しフレームの終わりの部分の受信に先立ってフレームの初めの部分に含まれる選択されたルートに応答して該初めの部分を送信する請求項1記載のシステム。
  5. 複数のノードの少なくとも1つのパケットムーバは、
    複数の中の互いに他のノードのパケットムーバからの期待される次のパケットの通し番号を格納するテーブルと、
    他のパケットムーバから受信された1つ以上のパケットを格納するためのバッファ(1114)と、
    前記他のパケットムーバから受信した前記1つ以上のパケットの1つの通し番号をそのパケットムーバに対応してテーブルに格納されている通し番号と比較して、該1つ以上のパケットの該1つの通し番号が該格納されている通し番号に続くことに応答して該1つ以上のパケットの該1つをバッファに格納し、該1つ以上のパケットの該1つの通し番号が格納されている通し番号に一致することに応答して該1つ以上のパケットの該1つを処理して格納されている通し番号をインクリメントし、インクリメントされた格納されている通し番号がバッファに格納されている他のパケットの通し番号に一致することに応答して該他のパケットを取り出して処理してインクリメントされた格納されている通し番号を再度インクリメントするための受信回路(1104)とを具備する請求項1記載のシステム。
  6. 発信元ノードが発信元ノードから宛先ノードへ選択されたルートに沿ってフレームを送信することは、
    受信ノードまたはルータが送信ノードまたはルータの第1のクロック信号を使ってバッファにフレームの一部を受け入れること、および
    受信ノードまたはルータが受信ノードまたはルータの第2のクロック信号を使ってバッファから該フレームの一部を読み出すことを含む請求項1記載のシステム。
  7. パケットを含むフレームを順次送信し受信すべく配置された複数のルータ(118)と複数のノード(102)を具備するシステムにおいてパケットでデータを通信する方法であって、複数のルータとノードはネットワークにおいて相互接続され、該方法は、
    発信元ノードから宛先ノードへパケット(302)を通信するための選択されたルートとして予め定められた複数のルートの1つを選択し、
    選択されたルートおよびパケットを含むフレーム(300)を生成し、
    発信元ノードから宛先ノードへ選択されたルートに沿ってフレームを送信し、ここにおいて、選択されたルートはフレームに含まれる選択されたルートに応答してフレームを送信する1つ以上のルータの連鎖を含み、各ノードはフレームを送信しルータからフレームを受信すべく配置されたフレームムーバ(116)とフレームムーバへパケットを供給しフレームムーバからパケットを受け取るべく配置されたパケットムーバ(114)とを含み、フレームムーバはパケットを通信するための選択されたルートとして複数の予め定められたルートの確率分布に従って複数の予め定められたルートの前記1つを選択することを具備する方法。
  8. フレームを受信し、
    パケットのエラーをチェックし、
    エラーの検出に応答してパケットを廃棄し、
    エラーを検出しないことに応答してノードの1つへパケットのアクノリッジメントを送信し、
    予め定められた期間内にパケットのアクノリッジメントを受信しないことに応答して宛先ノードへパケットを再送することをさらに具備する請求項7記載の方法。
  9. 選択されたルートとして複数の予め定められたルートの確率分布に従って複数の予め定められたルートの前記1つを選択することは、複数の予め定められたルートの前記1つを選択されたルートとして選択するために使用される乱数を発生することを具備する請求項7記載の方法。
  10. 選択されたルートをフレームの初めの部分に含ませ、
    前記1つ以上のルータの連鎖におけるルータの少なくとも1つが、フレームの終わりの部分の受信に先立って、フレームの初めの部分に含まれる選択されたルートに応答して該初めの部分を送信することをさらに具備する請求項7記載の方法。
  11. 複数の中の1つ以上の他のノードのパケットムーバの各々から期待される次のパケットの通し番号を格納し、
    該1つ以上の他のパケットムーバの1つから受信した1つ以上のパケットの通し番号をそのパケットムーバに対応して格納されている通し番号と比較し、
    該1つ以上のパケットの1つの通し番号が該格納されている通し番号に続くことに応答して該1つ以上のパケットの該1つを格納し、
    該1つ以上のパケットの該1つの通し番号が該格納されている通し番号に一致することに応答して該1つ以上のパケットの該1つを処理して該格納されている通し番号をインクリメントし、
    インクリメントされた格納されている通し番号が他の格納されているパケットの通し番号に一致することに応答して該他の格納されているパケットを取り出して処理しインクリメントされた格納されている通し番号を再度インクリメントすることをさらに具備する請求項7記載の方法。
  12. 発信元ノードから宛先ノードへ選択されたルートに沿ってフレームを送信することは、
    受信ノードまたはルータが送信ノードまたはルータの第1のクロック信号を使ってバッファにフレームの一部を受け入れること、および
    受信ノードまたはルータが受信ノードまたはルータの第2のクロック信号を使ってバッファからフレームの一部を読み出すことを含む請求項7記載の方法。
JP53040697A 1996-02-22 1997-02-20 非同期パケット交換 Expired - Fee Related JP3816531B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/605,677 US5959995A (en) 1996-02-22 1996-02-22 Asynchronous packet switching
US08/605,677 1996-02-22
PCT/US1997/002943 WO1997031464A1 (en) 1996-02-22 1997-02-20 Asynchronous packet switching

Publications (2)

Publication Number Publication Date
JPH11511634A JPH11511634A (ja) 1999-10-05
JP3816531B2 true JP3816531B2 (ja) 2006-08-30

Family

ID=24424724

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53040697A Expired - Fee Related JP3816531B2 (ja) 1996-02-22 1997-02-20 非同期パケット交換

Country Status (5)

Country Link
US (1) US5959995A (ja)
EP (1) EP0823165B1 (ja)
JP (1) JP3816531B2 (ja)
DE (1) DE69735740T2 (ja)
WO (1) WO1997031464A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011004566A1 (ja) 2009-07-07 2011-01-13 パナソニック株式会社 バス制御装置
US9075747B2 (en) 2010-05-27 2015-07-07 Panasonic Intellectual Property Management Co., Ltd. Bus controller and control unit that outputs instruction to the bus controller
US9164944B2 (en) 2010-01-25 2015-10-20 Panasonic Intellectual Property Management Co., Ltd. Semiconductor system, relay apparatus, and chip circuit
US9264371B2 (en) 2011-10-14 2016-02-16 Panasonic Intellectual Property Management Co., Ltd. Router, method for controlling the router, and computer program

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6683876B1 (en) * 1996-09-23 2004-01-27 Silicon Graphics, Inc. Packet switched router architecture for providing multiple simultaneous communications
US6282195B1 (en) * 1997-01-09 2001-08-28 Silicon Graphics, Inc. Packetized data transmissions in a switched router architecture
US6252851B1 (en) * 1997-03-27 2001-06-26 Massachusetts Institute Of Technology Method for regulating TCP flow over heterogeneous networks
EP0868103A3 (de) * 1997-03-27 2002-10-16 Siemens Aktiengesellschaft Annahme von Verbindungen niedriger Priorität, insbesondere non-real-time (NRT)-Verkehr, von nur einem redundanter Übertragungswege
US6683850B1 (en) * 1997-08-29 2004-01-27 Intel Corporation Method and apparatus for controlling the flow of data between servers
US6181704B1 (en) * 1997-08-29 2001-01-30 Intel Corporation Method and apparatus for input/output link retry, failure and recovery in a computer network
US20020144696A1 (en) 1998-02-13 2002-10-10 A. Adam Sharkawy Conduits for use in placing a target vessel in fluid communication with a source of blood
US6651670B2 (en) 1998-02-13 2003-11-25 Ventrica, Inc. Delivering a conduit into a heart wall to place a coronary vessel in communication with a heart chamber and removing tissue from the vessel or heart wall to facilitate such communication
US6205498B1 (en) 1998-04-01 2001-03-20 Microsoft Corporation Method and system for message transfer session management
US6529932B1 (en) 1998-04-01 2003-03-04 Microsoft Corporation Method and system for distributed transaction processing with asynchronous message delivery
US6393023B1 (en) * 1998-05-08 2002-05-21 Fujitsu Limited System and method for acknowledging receipt of messages within a packet based communication network
US7075937B1 (en) * 1998-05-19 2006-07-11 Canon Kabushiki Kaisha Method and device for sending data, method and device for receiving data
FR2779019B1 (fr) * 1998-05-19 2003-01-24 Canon Kk Procede et dispositif d'emission de donnees, procede et dispositif de reception de donnees
US6185631B1 (en) 1998-10-14 2001-02-06 International Business Machines Corporation Program for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence
US6415312B1 (en) * 1999-01-29 2002-07-02 International Business Machines Corporation Reliable multicast for small groups
US7285235B2 (en) * 1999-05-19 2007-10-23 Medtronic, Inc. Manufacturing conduits for use in placing a target vessel in fluid communication with a source of blood
US6609165B1 (en) 1999-09-27 2003-08-19 International Business Machines Corporation Method and apparatus for using fibre channel extended link service commands in a point-to-point configuration
US6499066B1 (en) 1999-09-27 2002-12-24 International Business Machines Corporation Method and apparatus for using fibre channel test extended link service commands for interprocess communication
US6771659B1 (en) * 2000-01-21 2004-08-03 Nokia Mobile Phones Ltd. Method and apparatus for a selective acknowledgement scheme in a modified unacknowledge mode for use over a communications link
US6810031B1 (en) 2000-02-29 2004-10-26 Celox Networks, Inc. Method and device for distributing bandwidth
US6967950B2 (en) * 2000-08-11 2005-11-22 Texas Instruments Incorporated Pull transfers and transfer receipt confirmation in a datapipe routing bridge
US7095753B1 (en) * 2000-09-19 2006-08-22 Bbn Technologies Corp. Digital network processor-based multi-protocol flow control
US6907490B2 (en) * 2000-12-13 2005-06-14 Intel Corporation Method and an apparatus for a re-configurable processor
US6826645B2 (en) 2000-12-13 2004-11-30 Intel Corporation Apparatus and a method to provide higher bandwidth or processing power on a bus
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
US20020118692A1 (en) * 2001-01-04 2002-08-29 Oberman Stuart F. Ensuring proper packet ordering in a cut-through and early-forwarding network switch
KR20040008124A (ko) * 2001-01-31 2004-01-28 인터내셔널 비지네스 머신즈 코포레이션 제어 정보 제공 방법 및 통신 스위치 및 이를 포함하는호스트 컴퓨터 시스템
US7184401B2 (en) * 2001-02-05 2007-02-27 Interdigital Technology Corporation Link-aware transmission control protocol
US7921188B2 (en) * 2001-08-16 2011-04-05 Newisys, Inc. Computer system partitioning using data transfer routing mechanism
US7054330B1 (en) 2001-09-07 2006-05-30 Chou Norman C Mask-based round robin arbitration
US6763418B1 (en) 2001-09-07 2004-07-13 Agilent Technologies, Inc. Request bus arbitration
US6920106B1 (en) 2001-09-07 2005-07-19 Agilent Technologies, Inc. Speculative loading of buffers within a port of a network device
US7237016B1 (en) 2001-09-07 2007-06-26 Palau Acquisition Corporation (Delaware) Method and system to manage resource requests utilizing link-list queues within an arbiter associated with an interconnect device
US6950394B1 (en) 2001-09-07 2005-09-27 Agilent Technologies, Inc. Methods and systems to transfer information using an alternative routing associated with a communication network
US6922749B1 (en) 2001-10-12 2005-07-26 Agilent Technologies, Inc. Apparatus and methodology for an input port of a switch that supports cut-through operation within the switch
US7209476B1 (en) 2001-10-12 2007-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and apparatus for input/output port mirroring for networking system bring-up and debug
US6839794B1 (en) 2001-10-12 2005-01-04 Agilent Technologies, Inc. Method and system to map a service level associated with a packet to one of a number of data streams at an interconnect device
US7574597B1 (en) 2001-10-19 2009-08-11 Bbn Technologies Corp. Encoding of signals to facilitate traffic analysis
US7290277B1 (en) * 2002-01-24 2007-10-30 Avago Technologies General Ip Pte Ltd Control of authentication data residing in a network device
US6907028B2 (en) * 2002-02-14 2005-06-14 Nokia Corporation Clock-based time slicing
US7016996B1 (en) 2002-04-15 2006-03-21 Schober Richard L Method and apparatus to detect a timeout condition for a data item within a process
EP1367499A1 (en) * 2002-05-28 2003-12-03 Fujitsu Siemens Computers, LLC Compute node to mesh interface for highly scalable parallel processing system
US7058034B2 (en) * 2002-09-09 2006-06-06 Nokia Corporation Phase shifted time slice transmission to improve handover
GB2398650B (en) * 2003-02-21 2006-09-20 Picochip Designs Ltd Communications in a processor array
JP4038147B2 (ja) * 2003-04-17 2008-01-23 株式会社日立製作所 情報処理システム
US7814222B2 (en) * 2003-12-19 2010-10-12 Nortel Networks Limited Queue state mirroring
US7660583B2 (en) * 2004-03-19 2010-02-09 Nokia Corporation Advanced handover in phased-shifted and time-sliced networks
US7600023B2 (en) * 2004-11-05 2009-10-06 Hewlett-Packard Development Company, L.P. Systems and methods of balancing crossbar bandwidth
US20060266273A1 (en) * 2005-03-14 2006-11-30 Todd Westberg System and method of modular vehicle gauge system and illumination
US7366132B2 (en) * 2005-03-30 2008-04-29 At&T Corp. Loss tolerant transmission control protocol
US7889654B2 (en) * 2005-03-30 2011-02-15 At&T Intellectual Property Ii, L.P. Loss tolerant transmission control protocol
KR101224591B1 (ko) * 2006-02-23 2013-01-22 삼성전자주식회사 네트워크 중계 장치 및 그 방법
US7835284B2 (en) * 2006-10-06 2010-11-16 International Business Machines Corporation Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by routing through transporter nodes
US8031614B2 (en) * 2006-10-06 2011-10-04 International Business Machines Corporation Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by dynamic global mapping of contended links
US7839786B2 (en) * 2006-10-06 2010-11-23 International Business Machines Corporation Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by semi-randomly varying routing policies for different packets
US8423987B2 (en) * 2007-01-30 2013-04-16 International Business Machines Corporation Routing performance analysis and optimization within a massively parallel computer
GB2454865B (en) 2007-11-05 2012-06-13 Picochip Designs Ltd Power control
US8055879B2 (en) * 2007-12-13 2011-11-08 International Business Machines Corporation Tracking network contention
JP4901777B2 (ja) * 2008-02-05 2012-03-21 アラクサラネットワークス株式会社 ネットワーク中継装置およびネットワーク中継方法
US8015313B2 (en) * 2008-03-04 2011-09-06 Sony Corporation Method and apparatus for managing transmission of TCP data segments
US9225545B2 (en) 2008-04-01 2015-12-29 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
JP5204603B2 (ja) * 2008-09-29 2013-06-05 株式会社日立製作所 4重化コンピュータシステムおよび2重化リングネットワーク
JP4592800B2 (ja) * 2009-03-12 2010-12-08 パナソニック株式会社 経路選択装置、経路選択方法、およびプログラム
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
GB2474071B (en) 2009-10-05 2013-08-07 Picochip Designs Ltd Femtocell base station
US9565094B2 (en) * 2009-11-13 2017-02-07 International Business Machines Corporation I/O routing in a multidimensional torus network
US9954760B2 (en) 2010-01-29 2018-04-24 International Business Machines Corporation I/O routing in a multidimensional torus network
RU2012144031A (ru) * 2010-03-17 2014-04-27 Нек Корпорейшн Система связи, узел, сервер управления, способ осуществления связи и программа
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
US8949453B2 (en) 2010-11-30 2015-02-03 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
GB2491098B (en) 2011-05-16 2015-05-20 Intel Corp Accessing a base station
US8949328B2 (en) 2011-07-13 2015-02-03 International Business Machines Corporation Performing collective operations in a distributed processing system
US8930962B2 (en) 2012-02-22 2015-01-06 International Business Machines Corporation Processing unexpected messages at a compute node of a parallel computer
US8990662B2 (en) * 2012-09-29 2015-03-24 Intel Corporation Techniques for resilient communication
US10789115B2 (en) * 2014-10-09 2020-09-29 Hewlett Packard Enterprise Development Lp Transmitter that does not resend a packet despite receipt of a message to resend the packet
WO2017053968A1 (en) 2015-09-25 2017-03-30 Fsa Technologies, Inc. Data redirection in a bifurcated communication trunk system and method
US11741050B2 (en) 2021-01-29 2023-08-29 Salesforce, Inc. Cloud storage class-based variable cache availability

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4058838A (en) * 1976-11-10 1977-11-15 International Telephone And Telegraph Corporation Packet-switched facsimile communications system
AU1199888A (en) * 1987-03-13 1988-09-15 Northern Telecom Limited Communications system and components and methods for use therein
US5115433A (en) * 1989-07-18 1992-05-19 Metricom, Inc. Method and system for routing packets in a packet communication network
US5524116A (en) * 1992-02-14 1996-06-04 At&T Corp. Packet framer
JP2826416B2 (ja) * 1992-06-05 1998-11-18 日本電気株式会社 ローカルエリアネットワーク間の接続ルータ
EP0602693B1 (en) * 1992-12-18 2001-11-21 Alcatel ATM switching node and ATM switching element having routing logic means
US5444718A (en) * 1993-11-30 1995-08-22 At&T Corp. Retransmission protocol for wireless communications
US5590122A (en) * 1994-12-22 1996-12-31 Emc Corporation Method and apparatus for reordering frames
US5544161A (en) * 1995-03-28 1996-08-06 Bell Atlantic Network Services, Inc. ATM packet demultiplexer for use in full service network having distributed architecture

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011004566A1 (ja) 2009-07-07 2011-01-13 パナソニック株式会社 バス制御装置
US8301823B2 (en) 2009-07-07 2012-10-30 Panasonic Corporation Bus controller arranged between a bus master and a networked communication bus in order to control the transmission route of a packet that flows through the communication bus, and simulation program to design such a bus controller
US9164944B2 (en) 2010-01-25 2015-10-20 Panasonic Intellectual Property Management Co., Ltd. Semiconductor system, relay apparatus, and chip circuit
US9075747B2 (en) 2010-05-27 2015-07-07 Panasonic Intellectual Property Management Co., Ltd. Bus controller and control unit that outputs instruction to the bus controller
US9264371B2 (en) 2011-10-14 2016-02-16 Panasonic Intellectual Property Management Co., Ltd. Router, method for controlling the router, and computer program

Also Published As

Publication number Publication date
US5959995A (en) 1999-09-28
DE69735740D1 (de) 2006-06-01
DE69735740T2 (de) 2006-09-14
WO1997031464A1 (en) 1997-08-28
EP0823165B1 (en) 2006-04-26
JPH11511634A (ja) 1999-10-05
EP0823165A1 (en) 1998-02-11

Similar Documents

Publication Publication Date Title
JP3816531B2 (ja) 非同期パケット交換
US6393023B1 (en) System and method for acknowledging receipt of messages within a packet based communication network
CA2564363C (en) Method and apparatus for group communication with end-to-end reliability
Cheriton VMTP: A transport protocol for the next generation of communication systems
JP3816529B2 (ja) 相互接続の障害検出およびその位置特定方法および装置
US6952419B1 (en) High performance transmission link and interconnect
US6661773B1 (en) Method for detection of stale cells following route changes in a data communication
JP3739798B2 (ja) ダイナミックなネットワークトポロジー探査のシステム及び方法
US7876751B2 (en) Reliable link layer packet retry
JP2825120B2 (ja) マルチキャスト伝送のための方法及び通信ネットワーク
US6950428B1 (en) System and method for configuring adaptive sets of links between routers in a system area network (SAN)
EP1323264B1 (en) Mechanism for completing messages in memory
US20090028172A1 (en) Speculative forwarding in a high-radix router
MXPA04010437A (es) Sistema, metodo y producto para administrar transferencias de datos en una red.
Jones et al. Protocol design for large group multicasting: the message distribution protocol
Kao et al. Aggressive transmissions of short messages over redundant paths
US6741561B1 (en) Routing mechanism using intention packets in a hierarchy or networks
US6339796B1 (en) System for logical connection resynchronization
US8885673B2 (en) Interleaving data packets in a packet-based communication system
JP2003288284A (ja) マルチプロセッサコンピュータアーキテクチャにおいてトランザクションを動的に再送する方法
US20080107116A1 (en) Large scale multi-processor system with a link-level interconnect providing in-order packet delivery
US6230283B1 (en) Logical connection resynchronization
JP3562121B2 (ja) 分散共有データ伝送方式
CN117424849A (zh) 数据传输方法、装置、计算机设备及可读介质
JPH06252895A (ja) データ伝送方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060314

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: 20060509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060608

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: 20100616

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100616

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100616

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100616

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110616

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130616

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140616

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees