JP3816531B2 - 非同期パケット交換 - Google Patents
非同期パケット交換 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source 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)
- パケットでデータを通信するシステムであって、各パケットはフレームに含まれ、該システムは、
フレームを順次送信し受信すべく配置された複数のルータ(118)と、
複数のノード(102)であって、各ノードが、ルータへフレームを送りルータからフレームを受け取るべく配置されたフレームムーバ(116)とフレームムーバへパケットを供給しフレームムーバからパケットを受け取るべく配置されたパケットムーバ(114)とを含むものとを具備し、
複数のルータとノードがネットワークにおいて相互接続され、
複数のノードの中の発信元ノードのパケットムーバがそのフレームムーバへ複数のノードの中の宛先ノードを示すパケット(302)を供給し、
ルーチングテーブル(406)が発信元ノードから宛先ノードへの複数の予め定められたルートを有し、
発信元ノードのフレームムーバが宛先ノードへの選択されたルートとして複数の予め定められたルートの一つを選択して選択されたルートとパケットを含むフレーム(300)を生成し、
発信元ノードが発信元ノードから宛先ノードへ選択されたルートに沿ってフレームを送信し、ここにおいて、選択されたルートはフレームに含まれる選択されたルートに応答してフレームを送信する1つ以上のルータの連鎖を含み、
宛先ノードのフレームムーバがフレームを受信しそれに含まれているパケットを宛先ノードのパケットムーバへ供給し宛先ノードのパケットムーバがパケットのエラーをチェックしエラーの検出に応答してパケットを廃棄しエラーを検出しないことに応答してパケットのアクノリッジメントを発信元ノードへ送信し、
発信元ノードのパケットムーバが予め定められた期間パケットのアクノリッジメントを受信しないことに応答して宛先ノードへパケットを再送し、ここにおいて、複数のノードの少なくとも1つのフレームムーバは選択されたルートとして複数の予め定められたルートの確率分布に従って複数の予め定められたルートの前記1つを選択する、システム。 - 複数のルータとノードはネットワークにおいてメッシュリンクで相互接続される請求項1記載のシステム。
- 複数のノードの少なくとも1つのフレームムーバは複数の予め定められたルートの前記1つを選択されたルートとして選択するために使用される乱数を発生する乱数発生器を具備する請求項1記載のシステム。
- 発信元ノードのフレームムーバは選択されたルートをフレームの初めの部分に含ませ、
1つ以上のルータの連鎖におけるルータの少なくとも1つはフレームの初めの部分を受信しフレームの終わりの部分の受信に先立ってフレームの初めの部分に含まれる選択されたルートに応答して該初めの部分を送信する請求項1記載のシステム。 - 複数のノードの少なくとも1つのパケットムーバは、
複数の中の互いに他のノードのパケットムーバからの期待される次のパケットの通し番号を格納するテーブルと、
他のパケットムーバから受信された1つ以上のパケットを格納するためのバッファ(1114)と、
前記他のパケットムーバから受信した前記1つ以上のパケットの1つの通し番号をそのパケットムーバに対応してテーブルに格納されている通し番号と比較して、該1つ以上のパケットの該1つの通し番号が該格納されている通し番号に続くことに応答して該1つ以上のパケットの該1つをバッファに格納し、該1つ以上のパケットの該1つの通し番号が格納されている通し番号に一致することに応答して該1つ以上のパケットの該1つを処理して格納されている通し番号をインクリメントし、インクリメントされた格納されている通し番号がバッファに格納されている他のパケットの通し番号に一致することに応答して該他のパケットを取り出して処理してインクリメントされた格納されている通し番号を再度インクリメントするための受信回路(1104)とを具備する請求項1記載のシステム。 - 発信元ノードが発信元ノードから宛先ノードへ選択されたルートに沿ってフレームを送信することは、
受信ノードまたはルータが送信ノードまたはルータの第1のクロック信号を使ってバッファにフレームの一部を受け入れること、および
受信ノードまたはルータが受信ノードまたはルータの第2のクロック信号を使ってバッファから該フレームの一部を読み出すことを含む請求項1記載のシステム。 - パケットを含むフレームを順次送信し受信すべく配置された複数のルータ(118)と複数のノード(102)を具備するシステムにおいてパケットでデータを通信する方法であって、複数のルータとノードはネットワークにおいて相互接続され、該方法は、
発信元ノードから宛先ノードへパケット(302)を通信するための選択されたルートとして予め定められた複数のルートの1つを選択し、
選択されたルートおよびパケットを含むフレーム(300)を生成し、
発信元ノードから宛先ノードへ選択されたルートに沿ってフレームを送信し、ここにおいて、選択されたルートはフレームに含まれる選択されたルートに応答してフレームを送信する1つ以上のルータの連鎖を含み、各ノードはフレームを送信しルータからフレームを受信すべく配置されたフレームムーバ(116)とフレームムーバへパケットを供給しフレームムーバからパケットを受け取るべく配置されたパケットムーバ(114)とを含み、フレームムーバはパケットを通信するための選択されたルートとして複数の予め定められたルートの確率分布に従って複数の予め定められたルートの前記1つを選択することを具備する方法。 - フレームを受信し、
パケットのエラーをチェックし、
エラーの検出に応答してパケットを廃棄し、
エラーを検出しないことに応答してノードの1つへパケットのアクノリッジメントを送信し、
予め定められた期間内にパケットのアクノリッジメントを受信しないことに応答して宛先ノードへパケットを再送することをさらに具備する請求項7記載の方法。 - 選択されたルートとして複数の予め定められたルートの確率分布に従って複数の予め定められたルートの前記1つを選択することは、複数の予め定められたルートの前記1つを選択されたルートとして選択するために使用される乱数を発生することを具備する請求項7記載の方法。
- 選択されたルートをフレームの初めの部分に含ませ、
前記1つ以上のルータの連鎖におけるルータの少なくとも1つが、フレームの終わりの部分の受信に先立って、フレームの初めの部分に含まれる選択されたルートに応答して該初めの部分を送信することをさらに具備する請求項7記載の方法。 - 複数の中の1つ以上の他のノードのパケットムーバの各々から期待される次のパケットの通し番号を格納し、
該1つ以上の他のパケットムーバの1つから受信した1つ以上のパケットの通し番号をそのパケットムーバに対応して格納されている通し番号と比較し、
該1つ以上のパケットの1つの通し番号が該格納されている通し番号に続くことに応答して該1つ以上のパケットの該1つを格納し、
該1つ以上のパケットの該1つの通し番号が該格納されている通し番号に一致することに応答して該1つ以上のパケットの該1つを処理して該格納されている通し番号をインクリメントし、
インクリメントされた格納されている通し番号が他の格納されているパケットの通し番号に一致することに応答して該他の格納されているパケットを取り出して処理しインクリメントされた格納されている通し番号を再度インクリメントすることをさらに具備する請求項7記載の方法。 - 発信元ノードから宛先ノードへ選択されたルートに沿ってフレームを送信することは、
受信ノードまたはルータが送信ノードまたはルータの第1のクロック信号を使ってバッファにフレームの一部を受け入れること、および
受信ノードまたはルータが受信ノードまたはルータの第2のクロック信号を使ってバッファからフレームの一部を読み出すことを含む請求項7記載の方法。
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)
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)
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)
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 |
-
1996
- 1996-02-22 US US08/605,677 patent/US5959995A/en not_active Expired - Lifetime
-
1997
- 1997-02-20 DE DE69735740T patent/DE69735740T2/de not_active Expired - Lifetime
- 1997-02-20 JP JP53040697A patent/JP3816531B2/ja not_active Expired - Fee Related
- 1997-02-20 WO PCT/US1997/002943 patent/WO1997031464A1/en active IP Right Grant
- 1997-02-20 EP EP97906765A patent/EP0823165B1/en not_active Expired - Lifetime
Cited By (5)
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 |