JP2002305535A - データを転送する信頼できるプロトコルを提供する方法および装置 - Google Patents
データを転送する信頼できるプロトコルを提供する方法および装置Info
- Publication number
- JP2002305535A JP2002305535A JP2001386626A JP2001386626A JP2002305535A JP 2002305535 A JP2002305535 A JP 2002305535A JP 2001386626 A JP2001386626 A JP 2001386626A JP 2001386626 A JP2001386626 A JP 2001386626A JP 2002305535 A JP2002305535 A JP 2002305535A
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing system
- sub
- request
- data packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/266—Stopping or restarting the source, e.g. X-on or X-off
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Small-Scale Networks (AREA)
- Communication Control (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 データを転送する方法、装置、およびコンピ
ュータ実施される命令を提供すること。 【解決手段】 要求が、要求発行者によって応答側に送
信される。要求には、要求発行者側で使用可能な処理ス
ペースの量が含まれる。要求が、応答側から受信される
時に、データが、その要求を使用して識別される。デー
タは、要求発行者への転送のためにデータ・パケットの
複数のサブシーケンスに配置され、サブシーケンスの組
の各パケットは、使用可能なスペースの量以下の量のデ
ータを保持する。これらのサブシーケンスを、1時に1
サブシーケンスずつ、要求発行者に送信する。要求発行
者側の使用可能な処理スペースが、別のサブシーケンス
からのデータを処理するために空いている状態になるた
びに、新しいサブシーケンスを送信する。
ュータ実施される命令を提供すること。 【解決手段】 要求が、要求発行者によって応答側に送
信される。要求には、要求発行者側で使用可能な処理ス
ペースの量が含まれる。要求が、応答側から受信される
時に、データが、その要求を使用して識別される。デー
タは、要求発行者への転送のためにデータ・パケットの
複数のサブシーケンスに配置され、サブシーケンスの組
の各パケットは、使用可能なスペースの量以下の量のデ
ータを保持する。これらのサブシーケンスを、1時に1
サブシーケンスずつ、要求発行者に送信する。要求発行
者側の使用可能な処理スペースが、別のサブシーケンス
からのデータを処理するために空いている状態になるた
びに、新しいサブシーケンスを送信する。
Description
【0001】
【発明の属する技術分野】本発明は、全般的には、改良
されたネットワーク・データ処理システムに関し、具体
的には、ネットワーク・データ処理システムを管理する
方法および装置に関する。さらに具体的には、本発明
は、データ・パケットの組を使用してデータを転送する
方法および装置に関する。
されたネットワーク・データ処理システムに関し、具体
的には、ネットワーク・データ処理システムを管理する
方法および装置に関する。さらに具体的には、本発明
は、データ・パケットの組を使用してデータを転送する
方法および装置に関する。
【0002】
【従来の技術】システム・エリア・ネットワーク(SA
N)では、ハードウェアによってメッセージ・パッシン
グ機構が提供され、このメッセージ・パッシング機構
を、入出力装置と、汎用コンピューティング・ノード間
のプロセス間通信(IPC)とに使用することができ
る。装置で実行されるプロセスが、送信/受信メッセー
ジをポストすることによってSANメッセージ・パッシ
ング・ハードウェアにアクセスして、SANチャネル・
アダプタ(CA)上の作業キューを送信/受信する。こ
れらのプロセスを、「コンシューマ」とも称する。送信
/受信作業キュー(WQ)は、キュー対(QP)として
コンシューマに割り当てられる。メッセージは、5つの
異なるトランスポート・タイプすなわち、Reliable Con
nected(RC、信頼できる接続)、Reliable datagram
(RD、信頼できるデータグラム)、Unreliable Conne
cted(UC、信頼できない接続)、Unreliable Datagra
m(UD、信頼できないデータグラム)、Raw Datagram
(RawD、生データグラム)を介して送信することが
できる。コンシューマは、SAN送信受信作業完了(W
C)を介して完了キュー(CQ)からこれらのメッセー
ジの結果を取り出す。ソース・チャネル・アダプタは、
アウトバウンド・メッセージのセグメント化とデスティ
ネーションへの送信を処理する。デスティネーション・
チャネル・アダプタは、インバウンド・メッセージの再
組立と、デスティネーションのコンシューマによって指
定されるメモリ・スペースへのそれらの配置を処理す
る。2つのチャネル・アダプタ・タイプすなわち、ホス
ト・チャネル・アダプタ(HCA)およびターゲット・
チャネル・アダプタ(TCA)が存在する。ホスト・チ
ャネル・アダプタは、汎用コンピューティング・ノード
によって、SANファブリックのアクセスに使用され
る。コンシューマは、SAN動詞を使用して、ホスト・
チャネル・アダプタ機能にアクセスする。動詞を解釈
し、チャネル・アダプタに直接にアクセスするソフトウ
ェアを、チャネル・インターフェース(CI)と称す
る。
N)では、ハードウェアによってメッセージ・パッシン
グ機構が提供され、このメッセージ・パッシング機構
を、入出力装置と、汎用コンピューティング・ノード間
のプロセス間通信(IPC)とに使用することができ
る。装置で実行されるプロセスが、送信/受信メッセー
ジをポストすることによってSANメッセージ・パッシ
ング・ハードウェアにアクセスして、SANチャネル・
アダプタ(CA)上の作業キューを送信/受信する。こ
れらのプロセスを、「コンシューマ」とも称する。送信
/受信作業キュー(WQ)は、キュー対(QP)として
コンシューマに割り当てられる。メッセージは、5つの
異なるトランスポート・タイプすなわち、Reliable Con
nected(RC、信頼できる接続)、Reliable datagram
(RD、信頼できるデータグラム)、Unreliable Conne
cted(UC、信頼できない接続)、Unreliable Datagra
m(UD、信頼できないデータグラム)、Raw Datagram
(RawD、生データグラム)を介して送信することが
できる。コンシューマは、SAN送信受信作業完了(W
C)を介して完了キュー(CQ)からこれらのメッセー
ジの結果を取り出す。ソース・チャネル・アダプタは、
アウトバウンド・メッセージのセグメント化とデスティ
ネーションへの送信を処理する。デスティネーション・
チャネル・アダプタは、インバウンド・メッセージの再
組立と、デスティネーションのコンシューマによって指
定されるメモリ・スペースへのそれらの配置を処理す
る。2つのチャネル・アダプタ・タイプすなわち、ホス
ト・チャネル・アダプタ(HCA)およびターゲット・
チャネル・アダプタ(TCA)が存在する。ホスト・チ
ャネル・アダプタは、汎用コンピューティング・ノード
によって、SANファブリックのアクセスに使用され
る。コンシューマは、SAN動詞を使用して、ホスト・
チャネル・アダプタ機能にアクセスする。動詞を解釈
し、チャネル・アダプタに直接にアクセスするソフトウ
ェアを、チャネル・インターフェース(CI)と称す
る。
【0003】
【発明が解決しようとする課題】特に構成中の、ネット
ワーク管理動作は、しばしば、限られた情報転送機能お
よび情報保管機能を有する比較的単純なルーチンによっ
て実行される。このため、unreliable datagramメッセ
ージ・タイプが使用され、データグラム長が、固定され
た小さい値に制限される。多くの管理動作を、単一のデ
ータグラムまたは要求/応答データグラム対の転送によ
って達成することができる。これらの単純な動作中にエ
ラーが発生した時には、過度のオーバーヘッドをこうむ
らずに動作全体を繰り返すことができる。他の管理動作
は、単一のデータグラムに含めることができない大量の
データの転送を必要とする。これらの動作は、関係する
データグラムを相関させ、失われたデータグラムを認識
し、失われたデータグラムを回復する手段を必要とす
る。また、要求側がデータベースにデータを要求するネ
ットワーク管理「Get」動作では、要求側が、返される
データの量を知らない。要求側が、返されるデータの量
の上限を設定し、追加データが使用可能である場合に要
求に関するより多くのデータを返すことを継続する方式
が必要である。最後に、大量のデータが受信側に送信さ
れるネットワーク管理「Set」動作では、データの受信
側が、当初はすべてのデータを受け取る準備ができてい
ない場合がある。
ワーク管理動作は、しばしば、限られた情報転送機能お
よび情報保管機能を有する比較的単純なルーチンによっ
て実行される。このため、unreliable datagramメッセ
ージ・タイプが使用され、データグラム長が、固定され
た小さい値に制限される。多くの管理動作を、単一のデ
ータグラムまたは要求/応答データグラム対の転送によ
って達成することができる。これらの単純な動作中にエ
ラーが発生した時には、過度のオーバーヘッドをこうむ
らずに動作全体を繰り返すことができる。他の管理動作
は、単一のデータグラムに含めることができない大量の
データの転送を必要とする。これらの動作は、関係する
データグラムを相関させ、失われたデータグラムを認識
し、失われたデータグラムを回復する手段を必要とす
る。また、要求側がデータベースにデータを要求するネ
ットワーク管理「Get」動作では、要求側が、返される
データの量を知らない。要求側が、返されるデータの量
の上限を設定し、追加データが使用可能である場合に要
求に関するより多くのデータを返すことを継続する方式
が必要である。最後に、大量のデータが受信側に送信さ
れるネットワーク管理「Set」動作では、データの受信
側が、当初はすべてのデータを受け取る準備ができてい
ない場合がある。
【0004】したがって、送信される初期データの量を
制限し、受信側に、データを受け取る準備ができた時に
次のデータを要求する手段を提供する、改良された方法
および装置を有することが有利である。
制限し、受信側に、データを受け取る準備ができた時に
次のデータを要求する手段を提供する、改良された方法
および装置を有することが有利である。
【0005】
【課題を解決するための手段】本発明は、要求に応答し
てデータを転送し、前の要求を受け取らずに受信側にデ
ータを転送する方法、装置、およびコンピュータ実施さ
れる命令を提供する。データが、要求に応答して転送さ
れる時には、要求が、要求発行者によって応答側に送信
される。この要求には、要求発行者側で使用可能な処理
スペースの量が含まれる。要求が、応答側から受信され
る時に、データが、その要求を使用して識別される。デ
ータは、要求発行者への転送のために複数のデータ・パ
ケットに配置され、パケットの組のうちの各パケット
が、固定された量のデータを保持する。パケットは、パ
ケットのサブシーケンスにグループ化され、このサブシ
ーケンスのそれぞれが、使用可能なスペースの量以下の
量のデータを保持する。これらのサブシーケンスが、そ
の後、要求発行者に送信される。新しいサブシーケンス
は、要求発行者側の使用可能な処理スペースが空いて、
別のサブシーケンスからのデータを処理できるようにな
るたびに送信される。要求発行者は、使用可能な処理ス
ペースの量が空きになるたびに要求に応答してデータ・
パケットのサブシーケンスを受信し、データ・パケット
の各サブシーケンス内のデータは、使用可能な処理スペ
ースの量におさまる。
てデータを転送し、前の要求を受け取らずに受信側にデ
ータを転送する方法、装置、およびコンピュータ実施さ
れる命令を提供する。データが、要求に応答して転送さ
れる時には、要求が、要求発行者によって応答側に送信
される。この要求には、要求発行者側で使用可能な処理
スペースの量が含まれる。要求が、応答側から受信され
る時に、データが、その要求を使用して識別される。デ
ータは、要求発行者への転送のために複数のデータ・パ
ケットに配置され、パケットの組のうちの各パケット
が、固定された量のデータを保持する。パケットは、パ
ケットのサブシーケンスにグループ化され、このサブシ
ーケンスのそれぞれが、使用可能なスペースの量以下の
量のデータを保持する。これらのサブシーケンスが、そ
の後、要求発行者に送信される。新しいサブシーケンス
は、要求発行者側の使用可能な処理スペースが空いて、
別のサブシーケンスからのデータを処理できるようにな
るたびに送信される。要求発行者は、使用可能な処理ス
ペースの量が空きになるたびに要求に応答してデータ・
パケットのサブシーケンスを受信し、データ・パケット
の各サブシーケンス内のデータは、使用可能な処理スペ
ースの量におさまる。
【0006】データが、前の要求なしで受信側に送信さ
れる時には、送信側が、まず、デフォルトの量までのデ
ータを保持するデータ・パケットのサブシーケンスを送
信する。送信側は、その後、受信側の処理スペースの量
が空きになるたびに、データの追加のサブシーケンスを
送信する。
れる時には、送信側が、まず、デフォルトの量までのデ
ータを保持するデータ・パケットのサブシーケンスを送
信する。送信側は、その後、受信側の処理スペースの量
が空きになるたびに、データの追加のサブシーケンスを
送信する。
【0007】本発明に特有と思われる新規の特徴を、請
求項に示す。しかし、本発明自体ならびに本発明の使用
の好ましい態様、さらなる目的、および長所は、添付図
面と共に例示的実施形態の以下の詳細な説明を参照する
ことによって最もよく理解される。
求項に示す。しかし、本発明自体ならびに本発明の使用
の好ましい態様、さらなる目的、および長所は、添付図
面と共に例示的実施形態の以下の詳細な説明を参照する
ことによって最もよく理解される。
【0008】
【発明の実施の形態】ここで図面、具体的には図1を参
照すると、本発明の好ましい実施形態による、ネットワ
ーク・グローバル変更コンピューティング・システムの
図が示されている。図1に示された分散コンピュータ・
システムは、システム・エリア・ネットワーク(SA
N)100の形をとり、単に例示のために提供され、下
で説明する本発明の実施形態は、多数の他のタイプおよ
び構成のコンピュータ・システム上で実施することがで
きる。たとえば、本発明を実施するコンピュータ・シス
テムは、1つのプロセッサと少数の入出力アダプタを有
する小型サーバから、数百個または数千個のプロセッサ
と数千個の入出力アダプタを有する大量並列スーパーコ
ンピュータ・システムまでの範囲におよぶものとするこ
とができる。さらに、本発明は、インターネットまたは
イントラネットによって接続されたリモート・コンピュ
ータ・システムのインフラストラクチャ内で実施するこ
とができる。SAN100は、分散コンピュータ・シス
テム内の高帯域幅低待ち時間ネットワーク相互接続ノー
ドである。ノードは、ネットワークの1つまたは複数の
リンクに接続され、ネットワーク内のメッセージの起点
またはデスティネーションを形成する構成要素である。
図示の例では、SAN100に、ホスト・プロセッサ・
ノード102、ホスト・プロセッサ・ノード104、R
AID(新磁気ディスク制御機構)サブシステム・ノー
ド106、および入出力シャシー・ノード108の形の
ノードが含まれる。図1に示されたノードは、例示だけ
を目的とする。というのは、SAN100に、任意の数
のすべてのタイプの独立の処理ノード、入出力アダプタ
・ノード、および入出力装置ノードを接続することがで
きるからである。これらのノードのどれもが、本明細書
でSAN100内のメッセージまたはフレームを発する
か最終的に消費する装置として定義されるエンドノード
として機能することができる。
照すると、本発明の好ましい実施形態による、ネットワ
ーク・グローバル変更コンピューティング・システムの
図が示されている。図1に示された分散コンピュータ・
システムは、システム・エリア・ネットワーク(SA
N)100の形をとり、単に例示のために提供され、下
で説明する本発明の実施形態は、多数の他のタイプおよ
び構成のコンピュータ・システム上で実施することがで
きる。たとえば、本発明を実施するコンピュータ・シス
テムは、1つのプロセッサと少数の入出力アダプタを有
する小型サーバから、数百個または数千個のプロセッサ
と数千個の入出力アダプタを有する大量並列スーパーコ
ンピュータ・システムまでの範囲におよぶものとするこ
とができる。さらに、本発明は、インターネットまたは
イントラネットによって接続されたリモート・コンピュ
ータ・システムのインフラストラクチャ内で実施するこ
とができる。SAN100は、分散コンピュータ・シス
テム内の高帯域幅低待ち時間ネットワーク相互接続ノー
ドである。ノードは、ネットワークの1つまたは複数の
リンクに接続され、ネットワーク内のメッセージの起点
またはデスティネーションを形成する構成要素である。
図示の例では、SAN100に、ホスト・プロセッサ・
ノード102、ホスト・プロセッサ・ノード104、R
AID(新磁気ディスク制御機構)サブシステム・ノー
ド106、および入出力シャシー・ノード108の形の
ノードが含まれる。図1に示されたノードは、例示だけ
を目的とする。というのは、SAN100に、任意の数
のすべてのタイプの独立の処理ノード、入出力アダプタ
・ノード、および入出力装置ノードを接続することがで
きるからである。これらのノードのどれもが、本明細書
でSAN100内のメッセージまたはフレームを発する
か最終的に消費する装置として定義されるエンドノード
として機能することができる。
【0009】本発明の一実施形態では、分散コンピュー
タ・システム内にエラー処理機構が存在し、このエラー
処理機構によって、SAN100などの分散コンピュー
ティング・システム内のエンド・ノード間のreliable c
onnectionまたはreliable datagram通信が可能になる。
タ・システム内にエラー処理機構が存在し、このエラー
処理機構によって、SAN100などの分散コンピュー
ティング・システム内のエンド・ノード間のreliable c
onnectionまたはreliable datagram通信が可能になる。
【0010】本明細書で使用するメッセージは、データ
交換のアプリケーション定義の単位であり、共同するプ
ロセスの間の通信のプリミティブな単位である。パケッ
トは、ネットワーキング・プロトコル・ヘッダまたはネ
ットワーキング・プロトコル・トレーラによってカプセ
ル化されたデータの1単位である。ヘッダは、一般に、
SANを介してフレームを送信するための制御情報およ
び経路指定情報を提供する。トレーラには、一般に、パ
ケットが内容を破壊されて送達されないようにするため
の、制御データおよび巡回冗長検査(CRC)データが
含まれる。SAN100には、分散コンピュータ・シス
テム内の入出力およびプロセス間通信(IPC)の両方
をサポートする通信管理インフラストラクチャが含まれ
る。図1に示されたSAN100には、交換回線通信フ
ァブリック116が含まれ、これによって、多数の装置
が、保護されリモート管理される環境で、高帯域幅と低
待ち時間で並列にデータを転送できるようになる。エン
ドノードは、複数のポートを介して通信することがで
き、SANファブリックを介する複数の経路を使用する
ことができる。図1に示された複数のポートおよびSA
Nを介する経路は、フォールト・トレランスおよび改善
された帯域幅のデータ転送に使用することができる。
交換のアプリケーション定義の単位であり、共同するプ
ロセスの間の通信のプリミティブな単位である。パケッ
トは、ネットワーキング・プロトコル・ヘッダまたはネ
ットワーキング・プロトコル・トレーラによってカプセ
ル化されたデータの1単位である。ヘッダは、一般に、
SANを介してフレームを送信するための制御情報およ
び経路指定情報を提供する。トレーラには、一般に、パ
ケットが内容を破壊されて送達されないようにするため
の、制御データおよび巡回冗長検査(CRC)データが
含まれる。SAN100には、分散コンピュータ・シス
テム内の入出力およびプロセス間通信(IPC)の両方
をサポートする通信管理インフラストラクチャが含まれ
る。図1に示されたSAN100には、交換回線通信フ
ァブリック116が含まれ、これによって、多数の装置
が、保護されリモート管理される環境で、高帯域幅と低
待ち時間で並列にデータを転送できるようになる。エン
ドノードは、複数のポートを介して通信することがで
き、SANファブリックを介する複数の経路を使用する
ことができる。図1に示された複数のポートおよびSA
Nを介する経路は、フォールト・トレランスおよび改善
された帯域幅のデータ転送に使用することができる。
【0011】図1のSAN100には、スイッチ11
2、スイッチ114、スイッチ146、およびルータ1
17が含まれる。スイッチとは、複数のリンクを一緒に
接続し、小さいヘッダのDestination Local Identifier
(DLID)フィールドを使用して、サブネット内であ
るリンクから別のリンクへのパケットの経路指定を可能
にする装置である。ルータとは、複数のサブネットを一
緒に接続し、大きいヘッダのDestination Globally Uni
que Identifier(DGUID)を使用して、第1のサブ
ネットのあるリンクから第2のサブネットの別のリンク
へフレームを経路指定することができる装置である。
2、スイッチ114、スイッチ146、およびルータ1
17が含まれる。スイッチとは、複数のリンクを一緒に
接続し、小さいヘッダのDestination Local Identifier
(DLID)フィールドを使用して、サブネット内であ
るリンクから別のリンクへのパケットの経路指定を可能
にする装置である。ルータとは、複数のサブネットを一
緒に接続し、大きいヘッダのDestination Globally Uni
que Identifier(DGUID)を使用して、第1のサブ
ネットのあるリンクから第2のサブネットの別のリンク
へフレームを経路指定することができる装置である。
【0012】一実施形態では、リンクが、エンドノー
ド、スイッチ、またはルータなどの、2つのネットワー
ク・ファブリック要素の間の全二重チャネルである。適
当なリンクの例には、銅線ケーブル、光ファイバ・ケー
ブル、バックプレーンおよびプリント回路基板上のプリ
ント回路銅トレースが含まれるが、これに制限はされな
い。
ド、スイッチ、またはルータなどの、2つのネットワー
ク・ファブリック要素の間の全二重チャネルである。適
当なリンクの例には、銅線ケーブル、光ファイバ・ケー
ブル、バックプレーンおよびプリント回路基板上のプリ
ント回路銅トレースが含まれるが、これに制限はされな
い。
【0013】信頼できるサービス・タイプの場合、ホス
ト・プロセッサ・エンドノードおよび入出力アダプタ・
エンドノードなどのエンドノードが、要求パケットを生
成し、肯定応答パケットを返す。スイッチおよびルータ
は、ソースからデスティネーションへパケットを渡す。
ネットワークの各ステージで更新される変形CRCトレ
ーラ・フィールドを除いて、スイッチは、パケットを無
変更で渡す。ルータは、パケットが経路指定される際
に、変形CRCトレーラ・フィールドを更新し、ヘッダ
内の他のフィールドを変更する。
ト・プロセッサ・エンドノードおよび入出力アダプタ・
エンドノードなどのエンドノードが、要求パケットを生
成し、肯定応答パケットを返す。スイッチおよびルータ
は、ソースからデスティネーションへパケットを渡す。
ネットワークの各ステージで更新される変形CRCトレ
ーラ・フィールドを除いて、スイッチは、パケットを無
変更で渡す。ルータは、パケットが経路指定される際
に、変形CRCトレーラ・フィールドを更新し、ヘッダ
内の他のフィールドを変更する。
【0014】図1に示されたSAN100では、ホスト
・プロセッサ・ノード102、ホスト・プロセッサ・ノ
ード104および入出力シャシー・ノード108に、S
AN100とインターフェースするために少なくとも1
つのチャネル・アダプタ(CA)が含まれる。一実施形
態では、各チャネル・アダプタが、SAN100上で伝
送されるパケットのソースまたはシンクになるのに十分
に詳細にチャネル・アダプタ・インターフェースを実装
する端点である。ホスト・プロセッサ・ノード102に
は、ホスト・チャネル・アダプタ118およびホスト・
チャネル・アダプタ120の形のチャネル・アダプタが
含まれる。ホスト・プロセッサ・ノード104には、ホ
スト・チャネル・アダプタ122およびホスト・チャネ
ル・アダプタ124が含まれる。ホスト・プロセッサ・
ノード102には、バス・システム134によって相互
接続される、中央処理装置126ないし130およびメ
モリ132も含まれる。ホスト・プロセッサ・ノード1
04には、同様に、バス・システム144によって相互
接続される、中央処理装置136ないし140およびメ
モリ142が含まれる。
・プロセッサ・ノード102、ホスト・プロセッサ・ノ
ード104および入出力シャシー・ノード108に、S
AN100とインターフェースするために少なくとも1
つのチャネル・アダプタ(CA)が含まれる。一実施形
態では、各チャネル・アダプタが、SAN100上で伝
送されるパケットのソースまたはシンクになるのに十分
に詳細にチャネル・アダプタ・インターフェースを実装
する端点である。ホスト・プロセッサ・ノード102に
は、ホスト・チャネル・アダプタ118およびホスト・
チャネル・アダプタ120の形のチャネル・アダプタが
含まれる。ホスト・プロセッサ・ノード104には、ホ
スト・チャネル・アダプタ122およびホスト・チャネ
ル・アダプタ124が含まれる。ホスト・プロセッサ・
ノード102には、バス・システム134によって相互
接続される、中央処理装置126ないし130およびメ
モリ132も含まれる。ホスト・プロセッサ・ノード1
04には、同様に、バス・システム144によって相互
接続される、中央処理装置136ないし140およびメ
モリ142が含まれる。
【0015】ホスト・チャネル・アダプタ118および
120は、スイッチ112への接続を提供し、ホスト・
チャネル・アダプタ122および124は、スイッチ1
12および114への接続を提供する。一実施形態で
は、ホスト・チャネル・アダプタが、ハードウェアで実
施される。この実施形態では、ホスト・チャネル・アダ
プタ・ハードウェアが、中央処理装置および入出力アダ
プタの通信オーバーヘッドの多くをオフロードする。こ
のホスト・チャネル・アダプタのハードウェア実施で
は、通信プロトコルに関連する従来のオーバーヘッドな
しで、交換回線ネットワークを介する複数の同時通信も
可能になる。一実施形態では、図1のホスト・チャネル
・アダプタおよびSAN100が、分散コンピュータ・
システムの入出力コンシューマおよびプロセス間通信
(IPC)コンシューマに、オペレーティング・システ
ム・カーネル・プロセスを伴わずに0プロセッサコピー
・データ転送を提供し、ハードウェアを使用して、信頼
できるフォールト・トレラントな通信を提供する。
120は、スイッチ112への接続を提供し、ホスト・
チャネル・アダプタ122および124は、スイッチ1
12および114への接続を提供する。一実施形態で
は、ホスト・チャネル・アダプタが、ハードウェアで実
施される。この実施形態では、ホスト・チャネル・アダ
プタ・ハードウェアが、中央処理装置および入出力アダ
プタの通信オーバーヘッドの多くをオフロードする。こ
のホスト・チャネル・アダプタのハードウェア実施で
は、通信プロトコルに関連する従来のオーバーヘッドな
しで、交換回線ネットワークを介する複数の同時通信も
可能になる。一実施形態では、図1のホスト・チャネル
・アダプタおよびSAN100が、分散コンピュータ・
システムの入出力コンシューマおよびプロセス間通信
(IPC)コンシューマに、オペレーティング・システ
ム・カーネル・プロセスを伴わずに0プロセッサコピー
・データ転送を提供し、ハードウェアを使用して、信頼
できるフォールト・トレラントな通信を提供する。
【0016】図1に示されているように、ルータ117
は、他のホストまたは他のルータへの広域ネットワーク
(WAN)接続またはローカル・エリア・ネットワーク
(LAN)接続に結合される。
は、他のホストまたは他のルータへの広域ネットワーク
(WAN)接続またはローカル・エリア・ネットワーク
(LAN)接続に結合される。
【0017】図1の入出力シャシー・ノード108に
は、スイッチ146および複数の入出力モジュール14
8ないし156が含まれる。この例では、入出力モジュ
ールが、アダプタ・カードの形をとる。図1に示された
例のアダプタ・カードには、入出力モジュール148の
SCSIアダプタ・カード、入出力モジュール152の
fiber channelハブおよびfiber channel-arbitrated lo
op(FC−AL)デバイスへのアダプタ・カード、入出
力モジュール150のイーサネット(R)アダプタ・カ
ード、入出力モジュール154のグラフィックス・アダ
プタ・カード、および入出力モジュール156のビデオ
・アダプタ・カードが含まれる。既知のタイプのアダプ
タ・カードのどれでも実装することができる。入出力ア
ダプタには、アダプタ・カードをSANファブリックに
結合するための入出力アダプタ・バックプレーン内のス
イッチも含まれる。これらのモジュールには、ターゲッ
ト・チャネル・アダプタ158ないし166も含まれ
る。この例では、図1のRAIDサブシステム・ノード
106に、プロセッサ168、メモリ170、ターゲッ
ト・チャネル・アダプタ(TCA)172、および複数
の冗長なまたはストライピングされたストレージ・ディ
スク装置174が含まれる。ターゲット・チャネル・ア
ダプタ172は、完全に機能するホスト・チャネル・ア
ダプタとすることができる。
は、スイッチ146および複数の入出力モジュール14
8ないし156が含まれる。この例では、入出力モジュ
ールが、アダプタ・カードの形をとる。図1に示された
例のアダプタ・カードには、入出力モジュール148の
SCSIアダプタ・カード、入出力モジュール152の
fiber channelハブおよびfiber channel-arbitrated lo
op(FC−AL)デバイスへのアダプタ・カード、入出
力モジュール150のイーサネット(R)アダプタ・カ
ード、入出力モジュール154のグラフィックス・アダ
プタ・カード、および入出力モジュール156のビデオ
・アダプタ・カードが含まれる。既知のタイプのアダプ
タ・カードのどれでも実装することができる。入出力ア
ダプタには、アダプタ・カードをSANファブリックに
結合するための入出力アダプタ・バックプレーン内のス
イッチも含まれる。これらのモジュールには、ターゲッ
ト・チャネル・アダプタ158ないし166も含まれ
る。この例では、図1のRAIDサブシステム・ノード
106に、プロセッサ168、メモリ170、ターゲッ
ト・チャネル・アダプタ(TCA)172、および複数
の冗長なまたはストライピングされたストレージ・ディ
スク装置174が含まれる。ターゲット・チャネル・ア
ダプタ172は、完全に機能するホスト・チャネル・ア
ダプタとすることができる。
【0018】SAN100は、入出力およびプロセッサ
間通信に関するデータ通信を処理する。SAN100
は、入出力に必要な高帯域幅およびスケーラビリティを
サポートし、プロセッサ間通信に必要な極度に低い待ち
時間および低いCPUオーバーヘッドもサポートする。
ユーザ・クライアントは、オペレーティング・システム
・カーネル・プロセスをバイパスし、ホスト・チャネル
・アダプタなどの、効率的なメッセージ・パッシング・
プロトコルを可能にするネットワーク通信ハードウェア
に直接にアクセスすることができる。SAN100は、
最新のコンピューティング・モデルに適し、新しい形態
の入出力およびコンピュータ・クラスタ通信の基本構成
要素である。さらに、図1のSAN100を用いると、
入出力アダプタ・ノードが、それら自体の間で通信する
か、分散コンピュータ・システム内のプロセッサ・ノー
ドのいずれかまたはすべてと通信することができるよう
になる。SAN100に付加された入出力アダプタに関
して、結果の入出力アダプタ・ノードは、SAN100
内のホスト・プロセッサ・ノードと実質的に同一の通信
機能を有する。
間通信に関するデータ通信を処理する。SAN100
は、入出力に必要な高帯域幅およびスケーラビリティを
サポートし、プロセッサ間通信に必要な極度に低い待ち
時間および低いCPUオーバーヘッドもサポートする。
ユーザ・クライアントは、オペレーティング・システム
・カーネル・プロセスをバイパスし、ホスト・チャネル
・アダプタなどの、効率的なメッセージ・パッシング・
プロトコルを可能にするネットワーク通信ハードウェア
に直接にアクセスすることができる。SAN100は、
最新のコンピューティング・モデルに適し、新しい形態
の入出力およびコンピュータ・クラスタ通信の基本構成
要素である。さらに、図1のSAN100を用いると、
入出力アダプタ・ノードが、それら自体の間で通信する
か、分散コンピュータ・システム内のプロセッサ・ノー
ドのいずれかまたはすべてと通信することができるよう
になる。SAN100に付加された入出力アダプタに関
して、結果の入出力アダプタ・ノードは、SAN100
内のホスト・プロセッサ・ノードと実質的に同一の通信
機能を有する。
【0019】次に図2に移ると、本発明の好ましい実施
形態によるホスト・プロセッサ・ノードの機能ブロック
図が示されている。ホスト・プロセッサ・ノード200
は、図1のホスト・プロセッサ・ノード102などのホ
スト・プロセッサ・ノードの例である。
形態によるホスト・プロセッサ・ノードの機能ブロック
図が示されている。ホスト・プロセッサ・ノード200
は、図1のホスト・プロセッサ・ノード102などのホ
スト・プロセッサ・ノードの例である。
【0020】この例では、図2に示されたホスト・プロ
セッサ・ノード200に、ホスト・プロセッサ・ノード
200上で実行されるプロセスである1組のコンシュー
マ202ないし208が含まれる。ホスト・プロセッサ
・ノード200には、チャネル・アダプタ210および
チャネル・アダプタ212も含まれる。チャネル・アダ
プタ210には、ポート214および216が含まれ、
チャネル・アダプタ212には、ポート218および2
20が含まれる。各ポートは、リンクに接続される。こ
れらのポートを、図1のSAN100などの、1つのS
ANサブネットまたは複数のSANサブネットに接続す
ることができる。この例では、チャネル・アダプタが、
ホスト・チャネル・アダプタの形をとる。コンシューマ
202ないし208は、動詞インターフェース222
と、メッセージおよびデータ・サービス224とを介し
てSANにメッセージを転送する。動詞インターフェー
スは、本質的に、ホスト・チャネル・アダプタの機能性
の抽象記述である。オペレーティング・システムは、そ
のプログラミング・インターフェースを介して動詞機能
性の一部またはすべてを公開することができる。基本的
に、このインターフェースでは、ホストの挙動が定義さ
れる。
セッサ・ノード200に、ホスト・プロセッサ・ノード
200上で実行されるプロセスである1組のコンシュー
マ202ないし208が含まれる。ホスト・プロセッサ
・ノード200には、チャネル・アダプタ210および
チャネル・アダプタ212も含まれる。チャネル・アダ
プタ210には、ポート214および216が含まれ、
チャネル・アダプタ212には、ポート218および2
20が含まれる。各ポートは、リンクに接続される。こ
れらのポートを、図1のSAN100などの、1つのS
ANサブネットまたは複数のSANサブネットに接続す
ることができる。この例では、チャネル・アダプタが、
ホスト・チャネル・アダプタの形をとる。コンシューマ
202ないし208は、動詞インターフェース222
と、メッセージおよびデータ・サービス224とを介し
てSANにメッセージを転送する。動詞インターフェー
スは、本質的に、ホスト・チャネル・アダプタの機能性
の抽象記述である。オペレーティング・システムは、そ
のプログラミング・インターフェースを介して動詞機能
性の一部またはすべてを公開することができる。基本的
に、このインターフェースでは、ホストの挙動が定義さ
れる。
【0021】さらに、ホスト・プロセッサ・ノード20
0には、メッセージおよびデータ・サービス224が含
まれ、このメッセージおよびデータ・サービス224
は、動詞層より高水準のインターフェースであり、チャ
ネル・アダプタ210およびチャネル・アダプタ212
を介して受け取られたメッセージおよびデータの処理に
使用される。メッセージおよびデータ・サービス224
は、メッセージおよび他のデータを処理するためのイン
ターフェースをコンシューマ202ないし208に提供
する。
0には、メッセージおよびデータ・サービス224が含
まれ、このメッセージおよびデータ・サービス224
は、動詞層より高水準のインターフェースであり、チャ
ネル・アダプタ210およびチャネル・アダプタ212
を介して受け取られたメッセージおよびデータの処理に
使用される。メッセージおよびデータ・サービス224
は、メッセージおよび他のデータを処理するためのイン
ターフェースをコンシューマ202ないし208に提供
する。
【0022】ここで図3を参照すると、本発明の好まし
い実施形態によるホスト・チャネル・アダプタが示され
ている。図3に示されたホスト・チャネル・アダプタ3
00には、1組のキュー対(QP)302ないし310
が含まれ、これらのキュー対は、ホスト・チャネル・ア
ダプタ・ポート312ないし316にメッセージを転送
するのに使用される。
い実施形態によるホスト・チャネル・アダプタが示され
ている。図3に示されたホスト・チャネル・アダプタ3
00には、1組のキュー対(QP)302ないし310
が含まれ、これらのキュー対は、ホスト・チャネル・ア
ダプタ・ポート312ないし316にメッセージを転送
するのに使用される。
【0023】ホスト・チャネル・アダプタ・ポート31
2ないし316へのデータのバッファリングは、仮想レ
ーン(VL)318ないし334を介してチャネル化さ
れ、各VLが、それ自体のフロー制御を有する。サブネ
ット・マネージャが、各物理ポートのローカル・アドレ
スすなわちポートのLIDを用いてチャネル・アダプタ
を構成する。サブネット・マネージャ・エージェント
(SMA)336は、チャネル・アダプタを構成するた
めにサブネット・マネージャと通信する実体である。メ
モリ変換および保護(MTP)338は、仮想アドレス
を物理アドレスに変換し、アクセス権の妥当性検査を行
う機構である。直接メモリ・アクセス(DMA)340
は、キュー対302ないし310に関してメモリ342
を使用する直接メモリ・アクセス動作を提供する。
2ないし316へのデータのバッファリングは、仮想レ
ーン(VL)318ないし334を介してチャネル化さ
れ、各VLが、それ自体のフロー制御を有する。サブネ
ット・マネージャが、各物理ポートのローカル・アドレ
スすなわちポートのLIDを用いてチャネル・アダプタ
を構成する。サブネット・マネージャ・エージェント
(SMA)336は、チャネル・アダプタを構成するた
めにサブネット・マネージャと通信する実体である。メ
モリ変換および保護(MTP)338は、仮想アドレス
を物理アドレスに変換し、アクセス権の妥当性検査を行
う機構である。直接メモリ・アクセス(DMA)340
は、キュー対302ないし310に関してメモリ342
を使用する直接メモリ・アクセス動作を提供する。
【0024】図3に示されたホスト・チャネル・アダプ
タ300などの単一のチャネル・アダプタが、数千個の
キュー対をサポートすることができる。対照的に、入出
力アダプタ内のターゲット・チャネル・アダプタは、通
常は、はるかに少数のキュー対をサポートする。
タ300などの単一のチャネル・アダプタが、数千個の
キュー対をサポートすることができる。対照的に、入出
力アダプタ内のターゲット・チャネル・アダプタは、通
常は、はるかに少数のキュー対をサポートする。
【0025】各キュー対は、送信作業キュー(SWQ)
および受信作業キューからなる。送信作業キューは、チ
ャネル・セマンティック・メッセージおよびメモリ・セ
マンティック・メッセージを送信するのに使用される。
受信作業キューは、チャネル・セマンティック・メッセ
ージを受信する。コンシューマは、本明細書で動詞と称
するオペレーティング・システム固有のプログラミング
・インターフェースを呼び出して、作業キューに作業要
求(WR)を置く。
および受信作業キューからなる。送信作業キューは、チ
ャネル・セマンティック・メッセージおよびメモリ・セ
マンティック・メッセージを送信するのに使用される。
受信作業キューは、チャネル・セマンティック・メッセ
ージを受信する。コンシューマは、本明細書で動詞と称
するオペレーティング・システム固有のプログラミング
・インターフェースを呼び出して、作業キューに作業要
求(WR)を置く。
【0026】ここで図4を参照すると、本発明の好まし
い実施形態による、作業要求の処理を示す図が示されて
いる。図4では、受信作業キュー400、送信作業キュ
ー402、および完了キュー404が、コンシューマ4
06からの要求およびコンシューマ406に関する要求
を処理するために存在する。これらのコンシューマ40
6からの要求は、最終的にハードウェア408に送られ
る。この例では、コンシューマ406が、作業要求41
0および412を生成し、作業完了414を受け取る。
図4からわかるように、作業キューに置かれた作業要求
を、作業キュー要素(WQE)と称する。送信作業キュ
ー402には、SANファブリックに送信されるデータ
を記述する作業キュー要素(WQE)422ないし42
8が含まれる。受信作業キュー400には、SANファ
ブリックからの着信チャネル・セマンティック・データ
を置く位置を記述する、作業キュー要素(WQE)41
6ないし420が含まれる。作業キュー要素は、ホスト
・チャネル・アダプタ内のハードウェア408によって
処理される。
い実施形態による、作業要求の処理を示す図が示されて
いる。図4では、受信作業キュー400、送信作業キュ
ー402、および完了キュー404が、コンシューマ4
06からの要求およびコンシューマ406に関する要求
を処理するために存在する。これらのコンシューマ40
6からの要求は、最終的にハードウェア408に送られ
る。この例では、コンシューマ406が、作業要求41
0および412を生成し、作業完了414を受け取る。
図4からわかるように、作業キューに置かれた作業要求
を、作業キュー要素(WQE)と称する。送信作業キュ
ー402には、SANファブリックに送信されるデータ
を記述する作業キュー要素(WQE)422ないし42
8が含まれる。受信作業キュー400には、SANファ
ブリックからの着信チャネル・セマンティック・データ
を置く位置を記述する、作業キュー要素(WQE)41
6ないし420が含まれる。作業キュー要素は、ホスト
・チャネル・アダプタ内のハードウェア408によって
処理される。
【0027】動詞も、完了キュー404から完了した作
業を取り出す機構を提供する。図4からわかるように、
完了キュー404には、完了キュー要素(CQE)43
0ないし436が含まれる。完了キュー要素には、前に
完了した作業キュー要素に関する情報が含まれる。完了
キュー404は、複数のキュー対に関する完了通知の単
一の点を作成するのに使用される。完了キュー要素は、
完了キュー上のデータ構造である。この要素では、完了
した作業キュー要素が記述される。完了キュー要素に
は、完了したキュー対および特定の作業キュー要素を判
定するのに十分な情報が含まれる。完了キュー・コンテ
キストは、個々の完了キューへのポインタ、長さ、およ
び個々の完了キューを管理するのに必要な他の情報を含
む情報のブロックである。
業を取り出す機構を提供する。図4からわかるように、
完了キュー404には、完了キュー要素(CQE)43
0ないし436が含まれる。完了キュー要素には、前に
完了した作業キュー要素に関する情報が含まれる。完了
キュー404は、複数のキュー対に関する完了通知の単
一の点を作成するのに使用される。完了キュー要素は、
完了キュー上のデータ構造である。この要素では、完了
した作業キュー要素が記述される。完了キュー要素に
は、完了したキュー対および特定の作業キュー要素を判
定するのに十分な情報が含まれる。完了キュー・コンテ
キストは、個々の完了キューへのポインタ、長さ、およ
び個々の完了キューを管理するのに必要な他の情報を含
む情報のブロックである。
【0028】図4に示された送信作業キュー402に関
してサポートされる作業要求の例は、次の通りである。
送信作業要求は、リモート・ノードの受信作業キュー要
素によって参照されるデータ・セグメントへローカル・
データ・セグメントの組をプッシュする、チャネル・セ
マンティック動作である。たとえば、作業キュー要素4
28に、データ・セグメント4 438、データ・セグ
メント5 440、およびデータ・セグメント6 44
2への参照が含まれる。送信作業要求のデータ・セグメ
ントのそれぞれに、仮想的に連続したメモリ領域が含ま
れる。ローカル・データ・セグメントを参照するのに使
用される仮想アドレスは、ローカル・キュー対を作成し
たプロセスのアドレス・コンテキスト内にある。
してサポートされる作業要求の例は、次の通りである。
送信作業要求は、リモート・ノードの受信作業キュー要
素によって参照されるデータ・セグメントへローカル・
データ・セグメントの組をプッシュする、チャネル・セ
マンティック動作である。たとえば、作業キュー要素4
28に、データ・セグメント4 438、データ・セグ
メント5 440、およびデータ・セグメント6 44
2への参照が含まれる。送信作業要求のデータ・セグメ
ントのそれぞれに、仮想的に連続したメモリ領域が含ま
れる。ローカル・データ・セグメントを参照するのに使
用される仮想アドレスは、ローカル・キュー対を作成し
たプロセスのアドレス・コンテキスト内にある。
【0029】リモート直接メモリ・アクセス(RDM
A)読取作業要求によって、リモート・ノード上の仮想
的に連続したメモリ・スペースを読み取るためのメモリ
・セマンティック動作が提供される。メモリ・スペース
は、メモリ領域の一部またはメモリ・ウィンドウの一部
のいずれかとすることができる。メモリ領域は、仮想ア
ドレスおよび長さによって定義される、仮想的に連続し
たメモリ・アドレスの前に登録された組を指す。メモリ
・ウィンドウは、前に登録された領域にバインドされて
いる仮想的に連続したメモリ・アドレスの組を指す。
A)読取作業要求によって、リモート・ノード上の仮想
的に連続したメモリ・スペースを読み取るためのメモリ
・セマンティック動作が提供される。メモリ・スペース
は、メモリ領域の一部またはメモリ・ウィンドウの一部
のいずれかとすることができる。メモリ領域は、仮想ア
ドレスおよび長さによって定義される、仮想的に連続し
たメモリ・アドレスの前に登録された組を指す。メモリ
・ウィンドウは、前に登録された領域にバインドされて
いる仮想的に連続したメモリ・アドレスの組を指す。
【0030】RDMA Read作業要求では、リモー
ト・エンドノード上の仮想的に連続したメモリ・スペー
スが読み取られ、そのデータが、仮想的に連続したロー
カル・メモリ・スペースに書き込まれる。送信作業要求
に類似して、ローカル・データ・セグメントを参照する
RDMA Read作業キュー要素によって使用される
仮想アドレスは、ローカル・キュー対を作成したプロセ
スのアドレス・コンテキスト内にある。たとえば、受信
作業キュー400の作業キュー要素416は、データ・
セグメント1 444、データ・セグメント2 44
6、およびデータ・セグメント3 448を参照する。
リモート仮想アドレスは、RDMA Read作業キュ
ー要素によってターゲットにされるリモート・キュー対
を所有するプロセスのアドレス・コンテキスト内にあ
る。
ト・エンドノード上の仮想的に連続したメモリ・スペー
スが読み取られ、そのデータが、仮想的に連続したロー
カル・メモリ・スペースに書き込まれる。送信作業要求
に類似して、ローカル・データ・セグメントを参照する
RDMA Read作業キュー要素によって使用される
仮想アドレスは、ローカル・キュー対を作成したプロセ
スのアドレス・コンテキスト内にある。たとえば、受信
作業キュー400の作業キュー要素416は、データ・
セグメント1 444、データ・セグメント2 44
6、およびデータ・セグメント3 448を参照する。
リモート仮想アドレスは、RDMA Read作業キュ
ー要素によってターゲットにされるリモート・キュー対
を所有するプロセスのアドレス・コンテキスト内にあ
る。
【0031】RDMA Write作業キュー要素によ
って、リモート・ノード上の仮想的に連続したメモリ・
スペースに書き込むメモリ・セマンティック動作が提供
される。RDMA Write作業キュー要素には、ロ
ーカルの仮想的に連続したメモリ・スペースおよびロー
カル・メモリ・スペースが書き込まれるリモート・メモ
リ・スペースの仮想アドレスの分散リストが含まれる。
って、リモート・ノード上の仮想的に連続したメモリ・
スペースに書き込むメモリ・セマンティック動作が提供
される。RDMA Write作業キュー要素には、ロ
ーカルの仮想的に連続したメモリ・スペースおよびロー
カル・メモリ・スペースが書き込まれるリモート・メモ
リ・スペースの仮想アドレスの分散リストが含まれる。
【0032】RDMA FetchOp作業キュー要素
によって、リモート・ワードに対するアトミック・オペ
レーションを実行するメモリ・セマンティック動作が提
供される。RDMA FetchOp作業キュー要素
は、RDMA Read動作、Modify動作、およ
びRDMA Write動作の組合せである。RDMA
FetchOp作業キュー要素は、Compare and Swap i
f equalなどの、複数の読取−修正−書込動作をサポー
トすることができる。
によって、リモート・ワードに対するアトミック・オペ
レーションを実行するメモリ・セマンティック動作が提
供される。RDMA FetchOp作業キュー要素
は、RDMA Read動作、Modify動作、およ
びRDMA Write動作の組合せである。RDMA
FetchOp作業キュー要素は、Compare and Swap i
f equalなどの、複数の読取−修正−書込動作をサポー
トすることができる。
【0033】バインド(アンバインド)リモート・アク
セス・キー(R_Key)作業キュー要素によって、メ
モリ・ウィンドウをメモリ領域に関連付ける(関連付け
を解除する)ことによってメモリ・ウィンドウを修正
(破壊)する、ホスト・チャネル・アダプタ・ハードウ
ェアに対するコマンドが提供される。R_Keyは、各
RDMAアクセスの一部であり、リモート・プロセスが
バッファへのアクセスを許可したことの検証に使用され
る。
セス・キー(R_Key)作業キュー要素によって、メ
モリ・ウィンドウをメモリ領域に関連付ける(関連付け
を解除する)ことによってメモリ・ウィンドウを修正
(破壊)する、ホスト・チャネル・アダプタ・ハードウ
ェアに対するコマンドが提供される。R_Keyは、各
RDMAアクセスの一部であり、リモート・プロセスが
バッファへのアクセスを許可したことの検証に使用され
る。
【0034】一実施形態では、図4の受信作業キュー4
00が、受信作業キュー要素と称する1つのタイプの作
業キュー要素だけをサポートする。受信作業キュー要素
によって、着信送付メッセージが書き込まれるローカル
・メモリ・スペースを記述するチャネル・セマンティッ
ク動作が提供される。受信作業キュー要素には、複数の
仮想的に連続したメモリ・スペースを記述する分散リス
トが含まれる。着信送付メッセージは、これらのメモリ
・スペースに書き込まれる。仮想アドレスは、ローカル
・キュー対を作成したプロセスのアドレス・コンテキス
ト内にある。
00が、受信作業キュー要素と称する1つのタイプの作
業キュー要素だけをサポートする。受信作業キュー要素
によって、着信送付メッセージが書き込まれるローカル
・メモリ・スペースを記述するチャネル・セマンティッ
ク動作が提供される。受信作業キュー要素には、複数の
仮想的に連続したメモリ・スペースを記述する分散リス
トが含まれる。着信送付メッセージは、これらのメモリ
・スペースに書き込まれる。仮想アドレスは、ローカル
・キュー対を作成したプロセスのアドレス・コンテキス
ト内にある。
【0035】プロセス間通信に関して、ユーザモード・
ソフトウェア・プロセスは、バッファがメモリ内に常駐
する場所から直接にキュー対を介してデータを転送す
る。一実施形態では、キュー対を介する転送で、オペレ
ーティング・システムがバイパスされ、消費するホスト
命令サイクル数が減る。キュー対は、オペレーティング
・システム・カーネル介入を伴わない、0プロセッサコ
ピー・データ転送を可能にする。0プロセッサコピー・
データ転送によって、高帯域幅低待ち時間通信の効率的
なサポートがもたらされる。
ソフトウェア・プロセスは、バッファがメモリ内に常駐
する場所から直接にキュー対を介してデータを転送す
る。一実施形態では、キュー対を介する転送で、オペレ
ーティング・システムがバイパスされ、消費するホスト
命令サイクル数が減る。キュー対は、オペレーティング
・システム・カーネル介入を伴わない、0プロセッサコ
ピー・データ転送を可能にする。0プロセッサコピー・
データ転送によって、高帯域幅低待ち時間通信の効率的
なサポートがもたらされる。
【0036】キュー対が作成される時に、キュー対は、
選択されたタイプのトランスポート・サービスを提供す
るようにセットされる。一実施形態では、本発明を実施
する分散コンピュータ・システムが、4つのタイプのト
ランスポート・サービスをサポートする。
選択されたタイプのトランスポート・サービスを提供す
るようにセットされる。一実施形態では、本発明を実施
する分散コンピュータ・システムが、4つのタイプのト
ランスポート・サービスをサポートする。
【0037】Reliable connectedサービスおよびUnreli
able connectedサービスでは、ローカル・キュー対が、
1つだけのリモート・キュー対と関連付けられる。Conn
ectedサービスは、プロセスが、プロセスごとに1つの
キュー対を作成することを必要とし、このキュー対は、
SANファブリックを介して通信するためのものであ
る。したがって、N個のホスト・プロセッサ・ノードの
それぞれにP個のプロセスが含まれ、各ノードのP個の
プロセスのすべてが、他のすべてのノード上のすべての
プロセスとの通信を望む場合には、各ホスト・プロセッ
サ・ノードに、P 2×(N−1)個のキュー対が必要で
ある。さらに、プロセスは、キュー対を、同一のホスト
・チャネル・アダプタ上の別のキュー対に接続すること
ができる。
able connectedサービスでは、ローカル・キュー対が、
1つだけのリモート・キュー対と関連付けられる。Conn
ectedサービスは、プロセスが、プロセスごとに1つの
キュー対を作成することを必要とし、このキュー対は、
SANファブリックを介して通信するためのものであ
る。したがって、N個のホスト・プロセッサ・ノードの
それぞれにP個のプロセスが含まれ、各ノードのP個の
プロセスのすべてが、他のすべてのノード上のすべての
プロセスとの通信を望む場合には、各ホスト・プロセッ
サ・ノードに、P 2×(N−1)個のキュー対が必要で
ある。さらに、プロセスは、キュー対を、同一のホスト
・チャネル・アダプタ上の別のキュー対に接続すること
ができる。
【0038】Reliable datagramサービスでは、ローカ
ル・エンド−エンド(EE)コンテキストが、1つのリ
モート・エンド−エンド・コンテキストだけに関連付け
られる。reliable datagramサービスでは、1つのキュ
ー対のクライアント・プロセスが、他のいずれかのリモ
ート・ノード上の他のいずれかのキュー対と通信するこ
とが許可される。受信作業キューでは、reliable datag
ramサービスで、他のいずれかのリモート・ノード上の
いずれかの送信作業キューからの着信メッセージが許可
される。reliable datagramサービスは、コネクション
レスなので、reliable datagramサービスでは、スケー
ラビリティが大幅に改善される。したがって、固定され
た個数のキュー対を有するエンドノードが、reliable c
onnectionトランスポート・サービスの場合よりもはる
かに多数の、reliable datagramサービスを用いるプロ
セスおよびエンドノードと通信することができる。たと
えば、N個のホスト・プロセッサ・ノードのそれぞれに
P個のプロセスが含まれ、各ノードのP個のプロセスの
すべてが、他のすべてのノードのすべてのプロセスと通
信することを望む場合に、reliable connectionサービ
スでは、各ノードにP2×(N−1)個のキュー対が必
要になる。これに比べて、コネクションレスのreliable
datagramサービスでは、正確に同一の数の通信のため
に、各ノードでP個のキュー対+(N−1)個のEEコ
ンテキストだけが必要である。
ル・エンド−エンド(EE)コンテキストが、1つのリ
モート・エンド−エンド・コンテキストだけに関連付け
られる。reliable datagramサービスでは、1つのキュ
ー対のクライアント・プロセスが、他のいずれかのリモ
ート・ノード上の他のいずれかのキュー対と通信するこ
とが許可される。受信作業キューでは、reliable datag
ramサービスで、他のいずれかのリモート・ノード上の
いずれかの送信作業キューからの着信メッセージが許可
される。reliable datagramサービスは、コネクション
レスなので、reliable datagramサービスでは、スケー
ラビリティが大幅に改善される。したがって、固定され
た個数のキュー対を有するエンドノードが、reliable c
onnectionトランスポート・サービスの場合よりもはる
かに多数の、reliable datagramサービスを用いるプロ
セスおよびエンドノードと通信することができる。たと
えば、N個のホスト・プロセッサ・ノードのそれぞれに
P個のプロセスが含まれ、各ノードのP個のプロセスの
すべてが、他のすべてのノードのすべてのプロセスと通
信することを望む場合に、reliable connectionサービ
スでは、各ノードにP2×(N−1)個のキュー対が必
要になる。これに比べて、コネクションレスのreliable
datagramサービスでは、正確に同一の数の通信のため
に、各ノードでP個のキュー対+(N−1)個のEEコ
ンテキストだけが必要である。
【0039】unreliable datagramサービスは、コネク
ションレスである。unreliable datagramサービスは、
管理アプリケーションによって、新しいスイッチ、ルー
タ、およびエンドノードを発見し、所与の分散コンピュ
ータ・システムに統合するのに使用される。unreliable
datagramサービスは、reliable connectionサービスお
よびreliable datagramサービスの信頼性保証を提供し
ない。したがって、unreliable datagramサービスは、
各エンドノードで維持される、より少ない状態情報を用
いて動作する。次に、図5に移ると、本発明の好ましい
実施形態による、データ・パケットの図が示されてい
る。メッセージ・データ500には、データ・セグメン
ト1 502、データ・セグメント2 504、および
データ・セグメント3 506が含まれ、これらは、図
4に示されたデータ・セグメントに類似する。この例で
は、これらのデータ・セグメントがパケット508を形
成し、パケット508は、データ・パケット512内の
パケット・ペイロード510に置かれる。さらに、デー
タ・パケット512に、エラー検査に使用されるCRC
514が含まれる。さらに、経路指定ヘッダ516およ
びトランスポート・ヘッダ518が、データ・パケット
512内に存在する。経路指定ヘッダ516は、データ
・パケット512のソース・ポートおよびデスティネー
ション・ポートを識別するのに使用される。この例のト
ランスポート・ヘッダ518では、データ・パケット5
12のデスティネーション・キュー対が指定される。
ションレスである。unreliable datagramサービスは、
管理アプリケーションによって、新しいスイッチ、ルー
タ、およびエンドノードを発見し、所与の分散コンピュ
ータ・システムに統合するのに使用される。unreliable
datagramサービスは、reliable connectionサービスお
よびreliable datagramサービスの信頼性保証を提供し
ない。したがって、unreliable datagramサービスは、
各エンドノードで維持される、より少ない状態情報を用
いて動作する。次に、図5に移ると、本発明の好ましい
実施形態による、データ・パケットの図が示されてい
る。メッセージ・データ500には、データ・セグメン
ト1 502、データ・セグメント2 504、および
データ・セグメント3 506が含まれ、これらは、図
4に示されたデータ・セグメントに類似する。この例で
は、これらのデータ・セグメントがパケット508を形
成し、パケット508は、データ・パケット512内の
パケット・ペイロード510に置かれる。さらに、デー
タ・パケット512に、エラー検査に使用されるCRC
514が含まれる。さらに、経路指定ヘッダ516およ
びトランスポート・ヘッダ518が、データ・パケット
512内に存在する。経路指定ヘッダ516は、データ
・パケット512のソース・ポートおよびデスティネー
ション・ポートを識別するのに使用される。この例のト
ランスポート・ヘッダ518では、データ・パケット5
12のデスティネーション・キュー対が指定される。
【0040】さらに、トランスポート・ヘッダ518
は、データ・パケット512に関する、命令コード、パ
ケット・シーケンス番号、および区画などの情報も提供
する。命令コードによって、パケットが、メッセージの
先頭、最後、中間、または唯一のパケットのどれである
かが識別される。命令コードによって、動作が送信RD
MAの書込、読取、またはアトミックのどれであるかも
指定される。パケット・シーケンス番号は、通信が確立
される時に初期化され、キュー対が新しいパケットを作
成するたびに増分される。エンドノードのポートは、区
画と称する1つまたは複数のおそらくはオーバーラップ
する組のメンバになるように構成することができる。
は、データ・パケット512に関する、命令コード、パ
ケット・シーケンス番号、および区画などの情報も提供
する。命令コードによって、パケットが、メッセージの
先頭、最後、中間、または唯一のパケットのどれである
かが識別される。命令コードによって、動作が送信RD
MAの書込、読取、またはアトミックのどれであるかも
指定される。パケット・シーケンス番号は、通信が確立
される時に初期化され、キュー対が新しいパケットを作
成するたびに増分される。エンドノードのポートは、区
画と称する1つまたは複数のおそらくはオーバーラップ
する組のメンバになるように構成することができる。
【0041】信頼できるトランスポート・サービスが使
用される場合に、要求パケットがそのデスティネーショ
ン・エンドノードに達した時に、デスティネーション・
エンドノードが肯定応答パケットを使用して、要求パケ
ットがデスティネーションで検証され、受け入れられた
ことを要求パケット送信側に知らせる。肯定応答パケッ
トは、1つまたは複数の有効で受け入れられた要求パケ
ットを肯定応答する。要求側は、肯定応答を受信する前
に、複数の保留中の要求パケットを有することができ
る。一実施形態では、複数の保留中のメッセージの数
が、QPを作成する時に決定される。
用される場合に、要求パケットがそのデスティネーショ
ン・エンドノードに達した時に、デスティネーション・
エンドノードが肯定応答パケットを使用して、要求パケ
ットがデスティネーションで検証され、受け入れられた
ことを要求パケット送信側に知らせる。肯定応答パケッ
トは、1つまたは複数の有効で受け入れられた要求パケ
ットを肯定応答する。要求側は、肯定応答を受信する前
に、複数の保留中の要求パケットを有することができ
る。一実施形態では、複数の保留中のメッセージの数
が、QPを作成する時に決定される。
【0042】本発明は、データを要求する要求発行者
と、要求されたデータを要求発行者に送り返す応答側と
の間のデータの転送を管理する機構を提供する。本発明
は、送信側と、データに関する要求を前に送っていない
受信側との間のデータの転送の管理も提供する。これら
の機構は、要求発行者および応答側、または送信側およ
び受信側のプロセスを介すると同時に、管理データグラ
ム(MAD)と称するunreliable datagramを使用して
信頼できるデータ転送をもたらすためにデータ・パケッ
ト内にフィールドを配置することによって、実施され
る。要求側がデータを要求する機構に、要求発行者が照
会またはデータの要求を送信することが含まれる。この
場合、応答のサイズ、データの量が、未知である。この
要求には、応答で返されるデータを処理するために要求
発行者側で使用可能なバッファ・スペースの量が含まれ
る。応答側は、要求に応答するデータを含むデータ・パ
ケットを送信することによって応答する。これらの例で
は、データが、MADのシーケンスに含まれる。MAD
のシーケンスで送信されるデータの量は、要求発行者側
で使用可能なバッファ・スペースの量を超えない。すべ
てのデータをデータ・パケットの単一のシーケンスで送
信するのではなく、この形で一連のMADが送信され
る。これらのデータ・パケットのシーケンスを、サブシ
ーケンスとも称する。
と、要求されたデータを要求発行者に送り返す応答側と
の間のデータの転送を管理する機構を提供する。本発明
は、送信側と、データに関する要求を前に送っていない
受信側との間のデータの転送の管理も提供する。これら
の機構は、要求発行者および応答側、または送信側およ
び受信側のプロセスを介すると同時に、管理データグラ
ム(MAD)と称するunreliable datagramを使用して
信頼できるデータ転送をもたらすためにデータ・パケッ
ト内にフィールドを配置することによって、実施され
る。要求側がデータを要求する機構に、要求発行者が照
会またはデータの要求を送信することが含まれる。この
場合、応答のサイズ、データの量が、未知である。この
要求には、応答で返されるデータを処理するために要求
発行者側で使用可能なバッファ・スペースの量が含まれ
る。応答側は、要求に応答するデータを含むデータ・パ
ケットを送信することによって応答する。これらの例で
は、データが、MADのシーケンスに含まれる。MAD
のシーケンスで送信されるデータの量は、要求発行者側
で使用可能なバッファ・スペースの量を超えない。すべ
てのデータをデータ・パケットの単一のシーケンスで送
信するのではなく、この形で一連のMADが送信され
る。これらのデータ・パケットのシーケンスを、サブシ
ーケンスとも称する。
【0043】サブシーケンスを送信した後に、応答側
は、次のサブシーケンスの送信の前に、前のサブシーケ
ンスの正しい受信とバッファ・スペースの可用性を示す
応答を待つ。エラーが発生した場合には、応答全体を再
送信するのではなく、サブシーケンスを再送信すること
ができる。
は、次のサブシーケンスの送信の前に、前のサブシーケ
ンスの正しい受信とバッファ・スペースの可用性を示す
応答を待つ。エラーが発生した場合には、応答全体を再
送信するのではなく、サブシーケンスを再送信すること
ができる。
【0044】さらに、バッファ・スペースの量を変更す
ることができ、使用可能なバッファ・スペースの量のこ
の変更を、要求発行者からの応答に反映することができ
る。また、最後のデータ・パケットには、使用可能バッ
ファ・スペースの量までデータが含まれない場合があ
る。言い換えると、このデータ・パケットには、使用可
能バッファ・スペースの量より少ないデータが含まれる
場合がある。そのような場合には、データ・パケット内
のフラグメント・フラグをセットして、データ・パケッ
トがどれほど満杯であるかを示し、現在のパケットを、
要求に応答するデータを含む最後に送信されるデータ・
パケットとして識別することができる。
ることができ、使用可能なバッファ・スペースの量のこ
の変更を、要求発行者からの応答に反映することができ
る。また、最後のデータ・パケットには、使用可能バッ
ファ・スペースの量までデータが含まれない場合があ
る。言い換えると、このデータ・パケットには、使用可
能バッファ・スペースの量より少ないデータが含まれる
場合がある。そのような場合には、データ・パケット内
のフラグメント・フラグをセットして、データ・パケッ
トがどれほど満杯であるかを示し、現在のパケットを、
要求に応答するデータを含む最後に送信されるデータ・
パケットとして識別することができる。
【0045】次に図6に移ると、本発明の好ましい実施
形態による、MADの図が示されている。MAD600
は、図5のパケット・ペイロード510などの、データ
・パケットのパケット・ペイロード・フィールドの例で
ある。セグメント番号フィールド602、ペイロード長
フィールド604、フラグメント・フラグ・フィールド
606、およびウィンドウ・パラメータ・フィールド6
08は、要求発行者と応答側の間の信頼できるデータ転
送をもたらすのに使用される追加フィールドである。こ
れらの例では、要求発行者を、図1のホスト・プロセッ
サ・ノード102とすることができ、応答側を、図1の
RAIDサブシステム・ノード106とすることができ
る。
形態による、MADの図が示されている。MAD600
は、図5のパケット・ペイロード510などの、データ
・パケットのパケット・ペイロード・フィールドの例で
ある。セグメント番号フィールド602、ペイロード長
フィールド604、フラグメント・フラグ・フィールド
606、およびウィンドウ・パラメータ・フィールド6
08は、要求発行者と応答側の間の信頼できるデータ転
送をもたらすのに使用される追加フィールドである。こ
れらの例では、要求発行者を、図1のホスト・プロセッ
サ・ノード102とすることができ、応答側を、図1の
RAIDサブシステム・ノード106とすることができ
る。
【0046】セグメント番号フィールド602によっ
て、要求または応答の中でのパケットの相対位置が識別
される。たとえば、特定のパケットを、処理される一連
のパケットの最初のパケットとすることができる。その
代わりに、パケットを、最後のパケット、または他のパ
ケットに配置されたデータに関して途中のどこかのパケ
ットとすることができる。セグメント番号フィールド6
02では、パケット内のデータの相対位置が識別され、
その結果、このデータを、他のデータ・パケットからの
データと共に正しい順序で再組立することができる。
て、要求または応答の中でのパケットの相対位置が識別
される。たとえば、特定のパケットを、処理される一連
のパケットの最初のパケットとすることができる。その
代わりに、パケットを、最後のパケット、または他のパ
ケットに配置されたデータに関して途中のどこかのパケ
ットとすることができる。セグメント番号フィールド6
02では、パケット内のデータの相対位置が識別され、
その結果、このデータを、他のデータ・パケットからの
データと共に正しい順序で再組立することができる。
【0047】これらの例では、ペイロード長フィールド
604が、複数パケット要求および複数パケット応答の
最初のパケットで有効になる。ペイロード長フィールド
604では、複数パケットの要求または応答の全体の期
待される長さが指定される。ペイロード長フィールド
は、動作の最後のパケットにどれだけのデータが含まれ
るかを指定するために、複数パケット送信動作または応
答の最後のパケットでも有効になる。送信されたデータ
の実際の量が、動作の最初のパケットのペイロード長フ
ィールドで示されたデータの期待される量と等しくない
場合に、最後のパケットの有効なデータ・バイトの数を
指定するために、複数パケット動作の最後のパケットに
ペイロード長を含めることが必要である。フラグメント
・フラグ・フィールド606では、パケットが、(1)
要求または応答の最初のパケットまたは最後のパケット
と、(2)パケットの受信を肯定応答する肯定応答パケ
ットと、(3)パケットの再送信を要求する再送信要求
パケットと、(4)トランザクションをリセットするタ
イマを要求するパケットのいずれであるかが指定され
る。
604が、複数パケット要求および複数パケット応答の
最初のパケットで有効になる。ペイロード長フィールド
604では、複数パケットの要求または応答の全体の期
待される長さが指定される。ペイロード長フィールド
は、動作の最後のパケットにどれだけのデータが含まれ
るかを指定するために、複数パケット送信動作または応
答の最後のパケットでも有効になる。送信されたデータ
の実際の量が、動作の最初のパケットのペイロード長フ
ィールドで示されたデータの期待される量と等しくない
場合に、最後のパケットの有効なデータ・バイトの数を
指定するために、複数パケット動作の最後のパケットに
ペイロード長を含めることが必要である。フラグメント
・フラグ・フィールド606では、パケットが、(1)
要求または応答の最初のパケットまたは最後のパケット
と、(2)パケットの受信を肯定応答する肯定応答パケ
ットと、(3)パケットの再送信を要求する再送信要求
パケットと、(4)トランザクションをリセットするタ
イマを要求するパケットのいずれであるかが指定され
る。
【0048】ウィンドウ・パラメータ・フィールド60
8では、後続のサブシーケンスについて受信側で使用可
能なバッファ・スペースの量が指定される。ウィンドウ
・パラメータ・フィールドは、要求パケットまたは肯定
応答パケットで有効になる。
8では、後続のサブシーケンスについて受信側で使用可
能なバッファ・スペースの量が指定される。ウィンドウ
・パラメータ・フィールドは、要求パケットまたは肯定
応答パケットで有効になる。
【0049】図7および図8に、データの要求に応答し
て送信される、複数パケット要求を含むプロトコルのプ
ロセスを示す。図9および図10に、前の要求を受信し
ない、複数パケット・メッセージの送信を含むプロトコ
ルのプロセスを示す。
て送信される、複数パケット要求を含むプロトコルのプ
ロセスを示す。図9および図10に、前の要求を受信し
ない、複数パケット・メッセージの送信を含むプロトコ
ルのプロセスを示す。
【0050】次に図7に移ると、本発明の好ましい実施
形態による、データの要求および受信に使用されるプロ
セスの流れ図が示されている。図7に示されたプロセス
は、要求発行者側で実施することができる。
形態による、データの要求および受信に使用されるプロ
セスの流れ図が示されている。図7に示されたプロセス
は、要求発行者側で実施することができる。
【0051】プロセスは、要求を送信することによって
開始される(ステップ700)。この要求には、要求発
行者が、ウィンドウ・フィールドを含め、これによっ
て、サブシーケンスで送信することができるデータのブ
ロックの処理に使用可能なバッファ・スペースまたは他
のメモリ・スペースの量を指定する。次に、タイマを始
動する(ステップ702)。タイマを始動した後に、サ
ブシーケンスを受信した場合には、肯定応答を送信する
(ステップ704)。この肯定応答では、サブシーケン
スの受信を肯定応答する。その後、要求全体の最後のデ
ータ・パケットを受信したかどうかに関する判定を行う
(ステップ706)。そのような識別は、図6のフラグ
メント・フラグ・フィールド606などのフラグメント
・フラグ・フィールドに配置されるフラグメント・フラ
グを使用することによって行うことができる。最後のデ
ータ・パケットを受信した場合には、プロセスを終了す
る。
開始される(ステップ700)。この要求には、要求発
行者が、ウィンドウ・フィールドを含め、これによっ
て、サブシーケンスで送信することができるデータのブ
ロックの処理に使用可能なバッファ・スペースまたは他
のメモリ・スペースの量を指定する。次に、タイマを始
動する(ステップ702)。タイマを始動した後に、サ
ブシーケンスを受信した場合には、肯定応答を送信する
(ステップ704)。この肯定応答では、サブシーケン
スの受信を肯定応答する。その後、要求全体の最後のデ
ータ・パケットを受信したかどうかに関する判定を行う
(ステップ706)。そのような識別は、図6のフラグ
メント・フラグ・フィールド606などのフラグメント
・フラグ・フィールドに配置されるフラグメント・フラ
グを使用することによって行うことができる。最後のデ
ータ・パケットを受信した場合には、プロセスを終了す
る。
【0052】もう一度ステップ702を参照すると、タ
イマを始動した後に、タイムアウトまたはエラーが発生
した場合には、再試行の最大回数を超えたかどうかに関
する判定を行う(ステップ708)。許容される再試行
の最大回数を超えていない場合には、再送信要求を送信
し(ステップ710)、プロセスはステップ702に戻
る。タイムアウトは、タイマが満了した場合に発生す
る。エラーは、データ・パケットが正しく受信されなか
った場合、またはエラー検査の後にデータ・パケットに
エラーが含まれる場合に発生する可能性がある。許容さ
れる再試行の最大回数を超えている場合には、動作に割
り振られたリソースを解放し(ステップ712)、その
後、プロセスが終了する。
イマを始動した後に、タイムアウトまたはエラーが発生
した場合には、再試行の最大回数を超えたかどうかに関
する判定を行う(ステップ708)。許容される再試行
の最大回数を超えていない場合には、再送信要求を送信
し(ステップ710)、プロセスはステップ702に戻
る。タイムアウトは、タイマが満了した場合に発生す
る。エラーは、データ・パケットが正しく受信されなか
った場合、またはエラー検査の後にデータ・パケットに
エラーが含まれる場合に発生する可能性がある。許容さ
れる再試行の最大回数を超えている場合には、動作に割
り振られたリソースを解放し(ステップ712)、その
後、プロセスが終了する。
【0053】タイマを始動した後に、キープアライブ応
答を受信した場合には、プロセスはステップ702に戻
る。これらの例では、キープアライブ応答は、データを
要求発行者に転送するのに追加の時間が必要である場合
に、応答側から受信される。
答を受信した場合には、プロセスはステップ702に戻
る。これらの例では、キープアライブ応答は、データを
要求発行者に転送するのに追加の時間が必要である場合
に、応答側から受信される。
【0054】もう一度ステップ706を参照すると、最
後のデータ・パケットを受信していない場合には、プロ
セスはステップ702に戻る。
後のデータ・パケットを受信していない場合には、プロ
セスはステップ702に戻る。
【0055】次に図8に移ると、本発明の好ましい実施
形態による、データの要求を処理するのに使用されるプ
ロセスの流れ図が示されている。図8に示されたプロセ
スは、これらの例では応答側で実施することができる。
形態による、データの要求を処理するのに使用されるプ
ロセスの流れ図が示されている。図8に示されたプロセ
スは、これらの例では応答側で実施することができる。
【0056】プロセスは、要求発行者から要求を受信す
ることによって開始される(ステップ800)。次に、
データにアクセスする(ステップ802)。このデータ
は、要求に対応するデータである。アクセスされるデー
タの量は、要求のウィンドウ・フィールドで指定された
長さに等しい。その後、データを送信する(ステップ8
04)。ステップ804で送信されるデータは、ウィン
ドウ・フィールドで指定された、要求発行者によって使
用可能とされたスペースの量までの量のデータを含むサ
ブシーケンスで送信される。さらに、データが、ユーザ
に送信される最後のデータ・パケットに関するものであ
る場合には、フラグメント・フラグをセットして、その
データ・パケットが最後のデータ・パケットであること
を示す。次に、このプロセスは、要求発行者からの肯定
応答を待つ(ステップ806)。肯定応答を受信した場
合には、最後のデータ・パケットを送信したかどうかに
関する判定を行う(ステップ808)。最後のデータ・
パケットを送信した場合には、プロセスが終了する。
ることによって開始される(ステップ800)。次に、
データにアクセスする(ステップ802)。このデータ
は、要求に対応するデータである。アクセスされるデー
タの量は、要求のウィンドウ・フィールドで指定された
長さに等しい。その後、データを送信する(ステップ8
04)。ステップ804で送信されるデータは、ウィン
ドウ・フィールドで指定された、要求発行者によって使
用可能とされたスペースの量までの量のデータを含むサ
ブシーケンスで送信される。さらに、データが、ユーザ
に送信される最後のデータ・パケットに関するものであ
る場合には、フラグメント・フラグをセットして、その
データ・パケットが最後のデータ・パケットであること
を示す。次に、このプロセスは、要求発行者からの肯定
応答を待つ(ステップ806)。肯定応答を受信した場
合には、最後のデータ・パケットを送信したかどうかに
関する判定を行う(ステップ808)。最後のデータ・
パケットを送信した場合には、プロセスが終了する。
【0057】ステップ802をもう一度参照すると、デ
ータにアクセスするのにさらに時間が必要な場合には、
キープアライブを送信し(ステップ810)、プロセス
はステップ802に戻る。
ータにアクセスするのにさらに時間が必要な場合には、
キープアライブを送信し(ステップ810)、プロセス
はステップ802に戻る。
【0058】ステップ806をもう一度参照すると、肯
定応答を待っている間に再送信要求を受信した場合に
は、プロセスはステップ804に戻る。この再送信要求
は、要求発行者によって受信されたデータのエラーに応
答して受信される可能性がある。肯定応答を待っている
間にタイムアウトを受け取った場合には、リソースを解
放し(ステップ812)、その後、プロセスが終了す
る。
定応答を待っている間に再送信要求を受信した場合に
は、プロセスはステップ804に戻る。この再送信要求
は、要求発行者によって受信されたデータのエラーに応
答して受信される可能性がある。肯定応答を待っている
間にタイムアウトを受け取った場合には、リソースを解
放し(ステップ812)、その後、プロセスが終了す
る。
【0059】次に図9に移ると、本発明の好ましい実施
形態による、前の要求を送信していない送信側からデー
タを受信するのに使用されるプロセスの流れ図が示され
ている。
形態による、前の要求を送信していない送信側からデー
タを受信するのに使用されるプロセスの流れ図が示され
ている。
【0060】プロセスは、最初のサブシーケンスを受信
することによって開始される(ステップ900)。この
最初のサブシーケンスには、デフォルトの量のデータが
含まれ、送信動作に関して送信されるデータの量全体を
指定する情報が含まれる。次に、送信側に肯定応答を送
信する(ステップ902)。タイマを始動する(ステッ
プ904)。ステップ904では、サブシーケンス全体
を受信した場合に、送信側に肯定応答を送り返す(ステ
ップ906)。その後、送信動作全体の最後のデータ・
パケットを受信したかどうかに関する判定を行う(ステ
ップ908)。送信動作全体の最後のデータ・パケット
を受信した場合には、プロセスが終了する。このデータ
・パケットは、データ・パケットの最後のサブシーケン
スの最後のデータ・パケットである。
することによって開始される(ステップ900)。この
最初のサブシーケンスには、デフォルトの量のデータが
含まれ、送信動作に関して送信されるデータの量全体を
指定する情報が含まれる。次に、送信側に肯定応答を送
信する(ステップ902)。タイマを始動する(ステッ
プ904)。ステップ904では、サブシーケンス全体
を受信した場合に、送信側に肯定応答を送り返す(ステ
ップ906)。その後、送信動作全体の最後のデータ・
パケットを受信したかどうかに関する判定を行う(ステ
ップ908)。送信動作全体の最後のデータ・パケット
を受信した場合には、プロセスが終了する。このデータ
・パケットは、データ・パケットの最後のサブシーケン
スの最後のデータ・パケットである。
【0061】ステップ904をもう一度参照すると、キ
ープアライブを受信した場合に、プロセスはステップ9
04に戻る。エラーまたはタイムアウトが発生した場合
には、再試行の最大回数を超えたかどうかに関する判定
を行う(ステップ910)。再試行の最大回数を超えて
いない場合には、送信側に再送信要求を送信し(ステッ
プ912)、プロセスはステップ904に戻る。ステッ
プ910で、再試行の最大回数を超えている場合には、
動作に割り振られたすべてのリソースを解放し(ステッ
プ914)、プロセスが終了する。ステップ908をも
う一度参照すると、最後のデータ・パケットを受信して
いない場合には、プロセスはステップ904に戻る。
ープアライブを受信した場合に、プロセスはステップ9
04に戻る。エラーまたはタイムアウトが発生した場合
には、再試行の最大回数を超えたかどうかに関する判定
を行う(ステップ910)。再試行の最大回数を超えて
いない場合には、送信側に再送信要求を送信し(ステッ
プ912)、プロセスはステップ904に戻る。ステッ
プ910で、再試行の最大回数を超えている場合には、
動作に割り振られたすべてのリソースを解放し(ステッ
プ914)、プロセスが終了する。ステップ908をも
う一度参照すると、最後のデータ・パケットを受信して
いない場合には、プロセスはステップ904に戻る。
【0062】次に図10に移ると、本発明の好ましい実
施形態による、それに関する前の要求が送信されていな
いデータを受信するのに使用されるプロセスの流れ図が
示されている。
施形態による、それに関する前の要求が送信されていな
いデータを受信するのに使用されるプロセスの流れ図が
示されている。
【0063】プロセスは、送信側が最初のサブシーケン
スを送信することによって開始される(ステップ100
0)。このサブシーケンスには、デフォルトの量のデー
タが含まれる。次に、タイマを始動して、肯定応答の受
信の時間を計る(ステップ1002)。肯定応答を受信
した場合には、追加データにアクセスする(ステップ1
004)。アクセスされるデータの量は、肯定応答パケ
ットのウィンドウ・パラメータ・フィールドで指定され
た値に等しい。データが、設定された時間以内にアクセ
スされる場合には、データを送信し(ステップ100
6)、プロセスは、肯定応答の受信を待つ(ステップ1
008)。データは、サブシーケンス内で送信され、サ
ブシーケンス内のデータの量は、受信側から受信された
最初の肯定応答パケットのウィンドウ・パラメータ・フ
ィールドで示される、受信側で使用可能なメモリまたは
バッファ・スペース以下になる。送信したデータについ
て肯定応答を受信する場合には、最後のパケットを送信
したかどうかに関する判定を行う(ステップ101
0)。最後のパケットを送信した場合には、プロセスが
終了する。
スを送信することによって開始される(ステップ100
0)。このサブシーケンスには、デフォルトの量のデー
タが含まれる。次に、タイマを始動して、肯定応答の受
信の時間を計る(ステップ1002)。肯定応答を受信
した場合には、追加データにアクセスする(ステップ1
004)。アクセスされるデータの量は、肯定応答パケ
ットのウィンドウ・パラメータ・フィールドで指定され
た値に等しい。データが、設定された時間以内にアクセ
スされる場合には、データを送信し(ステップ100
6)、プロセスは、肯定応答の受信を待つ(ステップ1
008)。データは、サブシーケンス内で送信され、サ
ブシーケンス内のデータの量は、受信側から受信された
最初の肯定応答パケットのウィンドウ・パラメータ・フ
ィールドで示される、受信側で使用可能なメモリまたは
バッファ・スペース以下になる。送信したデータについ
て肯定応答を受信する場合には、最後のパケットを送信
したかどうかに関する判定を行う(ステップ101
0)。最後のパケットを送信した場合には、プロセスが
終了する。
【0064】ステップ1002をもう一度参照すると、
タイムアウトが発生する場合に、再試行の最大回数を超
えたかどうかに関する判定を行う(ステップ101
2)。再試行の最大回数を超えていない場合には、動作
を再試行し(ステップ1014)、プロセスはステップ
1000に戻る。許容される再試行の最大回数を超えて
いる場合には、プロセスが終了し、動作に割り振られた
すべてのリソースが解放される。
タイムアウトが発生する場合に、再試行の最大回数を超
えたかどうかに関する判定を行う(ステップ101
2)。再試行の最大回数を超えていない場合には、動作
を再試行し(ステップ1014)、プロセスはステップ
1000に戻る。許容される再試行の最大回数を超えて
いる場合には、プロセスが終了し、動作に割り振られた
すべてのリソースが解放される。
【0065】ステップ1004をもう一度参照すると、
データのアクセスにさらに時間が必要な場合には、キー
プアライブ応答を受信側に送信し(ステップ101
6)、プロセスはステップ1004に戻る。
データのアクセスにさらに時間が必要な場合には、キー
プアライブ応答を受信側に送信し(ステップ101
6)、プロセスはステップ1004に戻る。
【0066】ステップ1008をもう一度参照すると、
肯定応答または再送信要求のいずれかを受信する前にタ
イムアウトが発生した場合に、動作が終了し、リソース
が、送信側で解放される(ステップ1018)。ステッ
プ1012で再試行の最大回数を超えた場合にも、プロ
セスはステップ1018に進む。
肯定応答または再送信要求のいずれかを受信する前にタ
イムアウトが発生した場合に、動作が終了し、リソース
が、送信側で解放される(ステップ1018)。ステッ
プ1012で再試行の最大回数を超えた場合にも、プロ
セスはステップ1018に進む。
【0067】ステップ1010をもう一度参照すると、
最後のデータ・パケットを送信していない場合には、プ
ロセスはステップ1004に戻る。
最後のデータ・パケットを送信していない場合には、プ
ロセスはステップ1004に戻る。
【0068】したがって、本発明は、データを転送する
方法、装置、およびコンピュータ実施される命令を提供
する。この機構は、MADを使用する信頼できる転送を
提供する。データは、受信側でデータの処理に使用可能
なメモリ・スペースを超えない量で送信される。追加デ
ータは、データが処理されたことの肯定応答が受信され
た時に送信される。この形で、要求に応答するデータ
が、単一のMADではなく複数のMADからなるサブシ
ーケンスで送信される。
方法、装置、およびコンピュータ実施される命令を提供
する。この機構は、MADを使用する信頼できる転送を
提供する。データは、受信側でデータの処理に使用可能
なメモリ・スペースを超えない量で送信される。追加デ
ータは、データが処理されたことの肯定応答が受信され
た時に送信される。この形で、要求に応答するデータ
が、単一のMADではなく複数のMADからなるサブシ
ーケンスで送信される。
【0069】完全に機能するデータ処理システムに関し
て本発明を説明したが、本発明のプロセスを、命令のコ
ンピュータ可読媒体の形およびさまざまな形で配布する
ことができることと、本発明が、配布の実行に実際に使
用される信号担持媒体の特定の種類に無関係に同等に適
用されることを、当業者が諒解するであろうことに留意
することが重要である。コンピュータ可読媒体の例に
は、フロッピー(R)ディスク、ハード・ディスク、R
AM、CD−ROM、DVD−ROMなどの記録可能型
媒体と、ディジタル通信リンク、アナログ通信リンク、
たとえば無線伝送および光波伝送などの伝送形態を使用
する有線通信リンクまたは無線通信リンクなどの伝送型
媒体が含まれる。コンピュータ可読媒体は、特定のデー
タ処理システムでの実際の使用のためにデコードされる
コード化されたフォーマットの形をとることができる。
て本発明を説明したが、本発明のプロセスを、命令のコ
ンピュータ可読媒体の形およびさまざまな形で配布する
ことができることと、本発明が、配布の実行に実際に使
用される信号担持媒体の特定の種類に無関係に同等に適
用されることを、当業者が諒解するであろうことに留意
することが重要である。コンピュータ可読媒体の例に
は、フロッピー(R)ディスク、ハード・ディスク、R
AM、CD−ROM、DVD−ROMなどの記録可能型
媒体と、ディジタル通信リンク、アナログ通信リンク、
たとえば無線伝送および光波伝送などの伝送形態を使用
する有線通信リンクまたは無線通信リンクなどの伝送型
媒体が含まれる。コンピュータ可読媒体は、特定のデー
タ処理システムでの実際の使用のためにデコードされる
コード化されたフォーマットの形をとることができる。
【0070】本発明の説明は、例示と説明のために提示
されたものであり、網羅的であることまたは開示された
形態に本発明を宣言することを意図されてはいない。多
くの修正形態および変形形態が、当業者には明白であろ
う。実施形態は、本発明の原理、実用的な応用例を最も
よく説明するため、および、当業者が、企図された特定
の使用に適するさまざまな修正を加えたさまざまな実施
形態のために本発明を理解できるようにするために、選
択され、説明された。
されたものであり、網羅的であることまたは開示された
形態に本発明を宣言することを意図されてはいない。多
くの修正形態および変形形態が、当業者には明白であろ
う。実施形態は、本発明の原理、実用的な応用例を最も
よく説明するため、および、当業者が、企図された特定
の使用に適するさまざまな修正を加えたさまざまな実施
形態のために本発明を理解できるようにするために、選
択され、説明された。
【0071】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0072】(1)データを転送する、データ処理シス
テムにおける方法であって、要求を送信するステップで
あって、前記要求が、前記データ処理システムで使用可
能な処理スペースの量を含む、ステップと、使用可能な
処理スペースの前記量が空くたびに前記要求に応答して
データ・パケットのサブシーケンスの組からデータ・パ
ケットのサブシーケンスを受信するステップであって、
データ・パケットのサブシーケンスの前記組内の各サブ
シーケンス内のデータが、使用可能な処理スペースの前
記量におさまる、ステップとを含む方法。 (2)前記データ・パケットが、管理データグラムであ
る、上記(1)に記載の方法。 (3)データ・パケットのサブシーケンスの前記組内の
データ・パケットの特定のサブシーケンスが、使用可能
な処理スペースの前記量より少ない量のデータを有す
る、上記(1)に記載の方法。 (4)サブシーケンス内の特定のデータ・パケットが、
前記特定のデータ・パケットがデータ転送動作の最初の
データ・パケットまたは最後のデータ・パケットである
かどうかを示すフラグメント・フラグを含む、上記
(1)に記載の方法。 (5)特定のデータ・パケットが、データ・パケットの
サブシーケンスの前記組内の最後のデータ・パケットで
ある、上記(1)に記載の方法。 (6)データ・パケットのサブシーケンスの前記組内の
各サブシーケンスが、異なる量のデータを有する、上記
(1)に記載の方法。 (7)前記データ・パケットが、セグメント番号を含
む、上記(1)に記載の方法。 (8)前記データ・パケット内のデータを正しい順序に
再組立するステップをさらに含む、上記(1)に記載の
方法。 (9)データ・パケットのサブシーケンスの前記組内の
各データ・パケットが、セグメント番号を含み、前記デ
ータが、前記セグメント番号を使用して再組立される、
上記(8)に記載の方法。 (10)使用可能なスペースの前記量が、前記データ処
理システム内のバッファである、上記(1)に記載の方
法。 (11)使用可能な処理スペースの前記量が、前記デー
タ処理システムのメモリ内で割り振られたバッファであ
る、上記(1)に記載の方法。 (12)データを転送する、データ処理システムにおけ
る方法であって、要求発行者から要求を受信するステッ
プであって、前記要求が、使用可能なスペースの量を含
む、ステップと、前記要求を使用してデータを識別する
ステップと、前記データをデータ・パケットの複数のサ
ブシーケンスに配置するステップであって、サブシーケ
ンスの組内の各サブシーケンスが、使用可能なスペース
の前記量以下の量のデータを保持する、ステップと、前
記要求発行者にデータ・パケットの前記複数のサブシー
ケンスを送信するステップとを含む方法。 (13)データ・パケットの前記複数のサブシーケンス
内の最初のデータ・パケットおよび最後のデータ・パケ
ットが、ペイロード長を含む、上記(12)に記載の方
法。 (14)データ・パケットの前記複数のサブシーケンス
内のデータ・パケットが、前記データ・パケットがデー
タ転送動作について送信される最初のデータ・パケット
または最後のデータ・パケットであるかどうかを示すフ
ラグメント・フラグを含む、上記(12)に記載の方
法。 (15)前記送信するステップが、データ・パケットの
前記複数のサブシーケンス内のデータ・パケットの未送
信のサブシーケンスを前記要求発行者に送信するステッ
プと、使用可能なスペースの前記量が前記要求発行者側
で空きであることを示す応答を監視するステップと、デ
ータ・パケットのもう1つの未送信のサブシーケンスが
データ・パケットの前記複数のサブシーケンス内に存在
することと、前記応答の検出とに応答して、前記送信ス
テップおよび監視ステップを繰り返すステップとを含
む、上記(12)に記載の方法。 (16)データ処理システムであって、バス・システム
と、前記バス・システムに接続された通信ユニットであ
って、データが、前記通信ユニットを使用して送信さ
れ、受信される、通信ユニットと、前記バス・システム
に接続されたメモリであって、命令の組が、前記メモリ
内に配置される、メモリと、前記バス・システムに接続
されたプロセッサ・ユニットであって、前記プロセッサ
・ユニットが、要求を送信するために命令の前記組を実
行し、前記要求が、前記データ処理システムで使用可能
な処理スペースの量を含み、前記プロセッサ・ユニット
が、使用可能な処理スペースの前記量が空きになるたび
に前記要求に応答してデータ・パケットの組からデータ
・パケットのサブシーケンスを受信し、データ・パケッ
トの各サブシーケンス内のデータが、使用可能な処理ス
ペースの前記量におさまる、プロセッサ・ユニットとを
含むデータ処理システム。 (17)前記バス・システムが、主バスおよび副バスを
含む、上記(16)に記載のデータ処理システム。 (18)前記プロセッサ・ユニットが、単一のプロセッ
サを含む、上記(16)に記載のデータ処理システム。 (19)前記プロセッサ・ユニットが、複数のプロセッ
サを含む、上記(16)に記載のデータ処理システム。 (20)前記通信ユニットが、イーサネット(R)アダ
プタである、上記(16)に記載のデータ処理システ
ム。 (21)データ処理システムであって、バス・システム
と、前記バス・システムに接続された通信ユニットであ
って、データが、前記通信ユニットを使用して送信さ
れ、受信される、通信ユニットと、前記バス・システム
に接続されたメモリであって、命令の組が、前記メモリ
内に配置される、メモリと、前記バス・システムに接続
されたプロセッサ・ユニットであって、前記プロセッサ
・ユニットが、要求発行者から要求を受信するために命
令の前記組を実行し、前記要求が、使用可能なスペース
の量を含み、前記プロセッサ・ユニットが、応答を使用
してデータを識別し、前記データをデータ・パケットの
複数のサブシーケンスに配置し、サブシーケンスの前記
組内の各サブシーケンスが、使用可能なスペースの前記
量以下の量のデータを保持し、前記プロセッサ・ユニッ
トが、前記要求発行者にデータ・パケットの前記複数の
サブシーケンスを送信する、プロセッサ・ユニットとを
含むデータ処理システム。 (22)データを転送するデータ処理システムであっ
て、要求を送信する送信手段であって、前記要求が、前
記データ処理システムで使用可能な処理スペースの量を
含む、送信手段と、使用可能な処理スペースの前記量が
空きになるたびに、前記要求に応答して、データ・パケ
ットのサブシーケンスの組からデータ・パケットのサブ
シーケンスを受信する受信手段であって、データ・パケ
ットの各サブシーケンス内のデータが、使用可能な処理
スペースの前記量におさまる、受信手段とを含むデータ
処理システム。 (23)前記データ・パケットが、管理データグラムで
ある、上記(22)に記載のデータ処理システム。 (24)データ・パケットのサブシーケンスの前記組内
の特定のデータ・パケットが、使用可能な処理スペース
の前記量より少ない量のデータを有する、上記(22)
に記載のデータ処理システム。 (25)サブシーケンス内の特定のデータ・パケット
が、前記特定のパケットがデータ転送動作の最初のデー
タ・パケットまたは最後のデータ・パケットであるかど
うかを示すフラグメント・フラグを含む、上記(22)
に記載のデータ処理システム。 (26)前記特定のデータ・パケットが、データ・パケ
ットのサブシーケンスの前記組内の最後のデータ・パケ
ットである、上記(22)に記載のデータ処理システ
ム。 (27)データ・パケットのサブシーケンスの前記組内
の各サブシーケンスが、異なる量のデータを有する、上
記(22)に記載のデータ処理システム。 (28)前記データ・パケットが、セグメント番号を含
む、上記(22)に記載のデータ処理システム。 (29)前記データ・パケット内のデータを正しい順序
に再組立する再組立手段をさらに含む、上記(22)に
記載のデータ処理システム。 (30)データ・パケットのサブシーケンスの前記組内
の各データ・パケットが、セグメント番号を含み、前記
データが、前記セグメント番号を使用して再組立され
る、上記(29)に記載のデータ処理システム。 (31)使用可能なスペースの前記量が、前記データ処
理システム内のバッファである、上記(22)に記載の
データ処理システム。 (32)使用可能な処理スペースの前記量が、前記デー
タ処理システムのメモリ内で割り振られたバッファであ
る、上記(22)に記載のデータ処理システム。 (33)データを転送するデータ処理システムであっ
て、要求発行者から要求を受信する受信手段であって、
前記要求が、使用可能なスペースの量を含む、受信手段
と、応答を使用してデータを識別する識別手段と、前記
データをデータ・パケットの複数のサブシーケンスに配
置する配置手段であって、データ・パケットの前記複数
のサブシーケンス内の各サブシーケンスが、使用可能な
スペースの前記量以下の量のデータを保持する、配置手
段と、前記要求発行者にデータ・パケットの前記複数の
サブシーケンスを送信する送信手段とを含むデータ処理
システム。 (34)データ・パケットの前記複数のサブシーケンス
内の最初のデータ・パケットおよび最後のデータ・パケ
ットが、ペイロード長を含む、上記(33)に記載のデ
ータ処理システム。 (35)データ・パケットの前記複数のサブシーケンス
内のデータ・パケットが、前記データ・パケットがデー
タ転送動作について送信される最初のデータ・パケット
または最後のデータ・パケットであるかどうかを示すフ
ラグメント・フラグを含む、上記(33)に記載のデー
タ処理システム。 (36)前記送信手段が、データ・パケットの前記複数
のサブシーケンス内の未送信のデータ・パケットを前記
要求発行者に送信する送信手段と、前記使用可能なスペ
ースの量が前記要求発行者側で空きであることを示す応
答を監視する監視手段と、もう1つの未送信のデータ・
パケットがデータ・パケットの前記複数のサブシーケン
ス内に存在することと、前記応答の検出とに応答して、
前記送信手段および監視手段の開始を繰り返す繰返し手
段とを含む、上記(33)に記載のデータ処理システ
ム。 (37)データ処理システム内でデータを転送するのに
使用される、コンピュータ可読媒体内のコンピュータ・
プログラム製品であって、要求を送信する第1命令であ
って、前記要求が、前記データ処理システムで使用可能
な処理スペースの量を含む、第1命令と、使用可能な処
理スペースの前記量が空くたびに前記要求に応答してデ
ータ・パケットのサブシーケンスの組からデータ・パケ
ットのサブシーケンスを受信する第2命令であって、デ
ータ・パケットの各サブシーケンス内のデータが、使用
可能な処理スペースの前記量におさまる、第2命令とを
含むコンピュータ・プログラム製品。 (38)データ処理システム内でデータを転送する、コ
ンピュータ可読媒体内のコンピュータ・プログラム製品
であって、要求発行者から要求を受信する第1命令であ
って、前記要求が、使用可能なスペースの量を含む、第
1命令と、応答を使用してデータを識別する第2命令
と、前記データをデータ・パケットの複数のサブシーケ
ンスに配置する第3命令であって、サブシーケンスの組
内の各サブシーケンスが、使用可能なスペースの前記量
以下の量のデータを保持する、第3命令と、前記要求発
行者にデータ・パケットの前記複数のサブシーケンスを
送信する第4命令とを含むコンピュータ・プログラム製
品。
テムにおける方法であって、要求を送信するステップで
あって、前記要求が、前記データ処理システムで使用可
能な処理スペースの量を含む、ステップと、使用可能な
処理スペースの前記量が空くたびに前記要求に応答して
データ・パケットのサブシーケンスの組からデータ・パ
ケットのサブシーケンスを受信するステップであって、
データ・パケットのサブシーケンスの前記組内の各サブ
シーケンス内のデータが、使用可能な処理スペースの前
記量におさまる、ステップとを含む方法。 (2)前記データ・パケットが、管理データグラムであ
る、上記(1)に記載の方法。 (3)データ・パケットのサブシーケンスの前記組内の
データ・パケットの特定のサブシーケンスが、使用可能
な処理スペースの前記量より少ない量のデータを有す
る、上記(1)に記載の方法。 (4)サブシーケンス内の特定のデータ・パケットが、
前記特定のデータ・パケットがデータ転送動作の最初の
データ・パケットまたは最後のデータ・パケットである
かどうかを示すフラグメント・フラグを含む、上記
(1)に記載の方法。 (5)特定のデータ・パケットが、データ・パケットの
サブシーケンスの前記組内の最後のデータ・パケットで
ある、上記(1)に記載の方法。 (6)データ・パケットのサブシーケンスの前記組内の
各サブシーケンスが、異なる量のデータを有する、上記
(1)に記載の方法。 (7)前記データ・パケットが、セグメント番号を含
む、上記(1)に記載の方法。 (8)前記データ・パケット内のデータを正しい順序に
再組立するステップをさらに含む、上記(1)に記載の
方法。 (9)データ・パケットのサブシーケンスの前記組内の
各データ・パケットが、セグメント番号を含み、前記デ
ータが、前記セグメント番号を使用して再組立される、
上記(8)に記載の方法。 (10)使用可能なスペースの前記量が、前記データ処
理システム内のバッファである、上記(1)に記載の方
法。 (11)使用可能な処理スペースの前記量が、前記デー
タ処理システムのメモリ内で割り振られたバッファであ
る、上記(1)に記載の方法。 (12)データを転送する、データ処理システムにおけ
る方法であって、要求発行者から要求を受信するステッ
プであって、前記要求が、使用可能なスペースの量を含
む、ステップと、前記要求を使用してデータを識別する
ステップと、前記データをデータ・パケットの複数のサ
ブシーケンスに配置するステップであって、サブシーケ
ンスの組内の各サブシーケンスが、使用可能なスペース
の前記量以下の量のデータを保持する、ステップと、前
記要求発行者にデータ・パケットの前記複数のサブシー
ケンスを送信するステップとを含む方法。 (13)データ・パケットの前記複数のサブシーケンス
内の最初のデータ・パケットおよび最後のデータ・パケ
ットが、ペイロード長を含む、上記(12)に記載の方
法。 (14)データ・パケットの前記複数のサブシーケンス
内のデータ・パケットが、前記データ・パケットがデー
タ転送動作について送信される最初のデータ・パケット
または最後のデータ・パケットであるかどうかを示すフ
ラグメント・フラグを含む、上記(12)に記載の方
法。 (15)前記送信するステップが、データ・パケットの
前記複数のサブシーケンス内のデータ・パケットの未送
信のサブシーケンスを前記要求発行者に送信するステッ
プと、使用可能なスペースの前記量が前記要求発行者側
で空きであることを示す応答を監視するステップと、デ
ータ・パケットのもう1つの未送信のサブシーケンスが
データ・パケットの前記複数のサブシーケンス内に存在
することと、前記応答の検出とに応答して、前記送信ス
テップおよび監視ステップを繰り返すステップとを含
む、上記(12)に記載の方法。 (16)データ処理システムであって、バス・システム
と、前記バス・システムに接続された通信ユニットであ
って、データが、前記通信ユニットを使用して送信さ
れ、受信される、通信ユニットと、前記バス・システム
に接続されたメモリであって、命令の組が、前記メモリ
内に配置される、メモリと、前記バス・システムに接続
されたプロセッサ・ユニットであって、前記プロセッサ
・ユニットが、要求を送信するために命令の前記組を実
行し、前記要求が、前記データ処理システムで使用可能
な処理スペースの量を含み、前記プロセッサ・ユニット
が、使用可能な処理スペースの前記量が空きになるたび
に前記要求に応答してデータ・パケットの組からデータ
・パケットのサブシーケンスを受信し、データ・パケッ
トの各サブシーケンス内のデータが、使用可能な処理ス
ペースの前記量におさまる、プロセッサ・ユニットとを
含むデータ処理システム。 (17)前記バス・システムが、主バスおよび副バスを
含む、上記(16)に記載のデータ処理システム。 (18)前記プロセッサ・ユニットが、単一のプロセッ
サを含む、上記(16)に記載のデータ処理システム。 (19)前記プロセッサ・ユニットが、複数のプロセッ
サを含む、上記(16)に記載のデータ処理システム。 (20)前記通信ユニットが、イーサネット(R)アダ
プタである、上記(16)に記載のデータ処理システ
ム。 (21)データ処理システムであって、バス・システム
と、前記バス・システムに接続された通信ユニットであ
って、データが、前記通信ユニットを使用して送信さ
れ、受信される、通信ユニットと、前記バス・システム
に接続されたメモリであって、命令の組が、前記メモリ
内に配置される、メモリと、前記バス・システムに接続
されたプロセッサ・ユニットであって、前記プロセッサ
・ユニットが、要求発行者から要求を受信するために命
令の前記組を実行し、前記要求が、使用可能なスペース
の量を含み、前記プロセッサ・ユニットが、応答を使用
してデータを識別し、前記データをデータ・パケットの
複数のサブシーケンスに配置し、サブシーケンスの前記
組内の各サブシーケンスが、使用可能なスペースの前記
量以下の量のデータを保持し、前記プロセッサ・ユニッ
トが、前記要求発行者にデータ・パケットの前記複数の
サブシーケンスを送信する、プロセッサ・ユニットとを
含むデータ処理システム。 (22)データを転送するデータ処理システムであっ
て、要求を送信する送信手段であって、前記要求が、前
記データ処理システムで使用可能な処理スペースの量を
含む、送信手段と、使用可能な処理スペースの前記量が
空きになるたびに、前記要求に応答して、データ・パケ
ットのサブシーケンスの組からデータ・パケットのサブ
シーケンスを受信する受信手段であって、データ・パケ
ットの各サブシーケンス内のデータが、使用可能な処理
スペースの前記量におさまる、受信手段とを含むデータ
処理システム。 (23)前記データ・パケットが、管理データグラムで
ある、上記(22)に記載のデータ処理システム。 (24)データ・パケットのサブシーケンスの前記組内
の特定のデータ・パケットが、使用可能な処理スペース
の前記量より少ない量のデータを有する、上記(22)
に記載のデータ処理システム。 (25)サブシーケンス内の特定のデータ・パケット
が、前記特定のパケットがデータ転送動作の最初のデー
タ・パケットまたは最後のデータ・パケットであるかど
うかを示すフラグメント・フラグを含む、上記(22)
に記載のデータ処理システム。 (26)前記特定のデータ・パケットが、データ・パケ
ットのサブシーケンスの前記組内の最後のデータ・パケ
ットである、上記(22)に記載のデータ処理システ
ム。 (27)データ・パケットのサブシーケンスの前記組内
の各サブシーケンスが、異なる量のデータを有する、上
記(22)に記載のデータ処理システム。 (28)前記データ・パケットが、セグメント番号を含
む、上記(22)に記載のデータ処理システム。 (29)前記データ・パケット内のデータを正しい順序
に再組立する再組立手段をさらに含む、上記(22)に
記載のデータ処理システム。 (30)データ・パケットのサブシーケンスの前記組内
の各データ・パケットが、セグメント番号を含み、前記
データが、前記セグメント番号を使用して再組立され
る、上記(29)に記載のデータ処理システム。 (31)使用可能なスペースの前記量が、前記データ処
理システム内のバッファである、上記(22)に記載の
データ処理システム。 (32)使用可能な処理スペースの前記量が、前記デー
タ処理システムのメモリ内で割り振られたバッファであ
る、上記(22)に記載のデータ処理システム。 (33)データを転送するデータ処理システムであっ
て、要求発行者から要求を受信する受信手段であって、
前記要求が、使用可能なスペースの量を含む、受信手段
と、応答を使用してデータを識別する識別手段と、前記
データをデータ・パケットの複数のサブシーケンスに配
置する配置手段であって、データ・パケットの前記複数
のサブシーケンス内の各サブシーケンスが、使用可能な
スペースの前記量以下の量のデータを保持する、配置手
段と、前記要求発行者にデータ・パケットの前記複数の
サブシーケンスを送信する送信手段とを含むデータ処理
システム。 (34)データ・パケットの前記複数のサブシーケンス
内の最初のデータ・パケットおよび最後のデータ・パケ
ットが、ペイロード長を含む、上記(33)に記載のデ
ータ処理システム。 (35)データ・パケットの前記複数のサブシーケンス
内のデータ・パケットが、前記データ・パケットがデー
タ転送動作について送信される最初のデータ・パケット
または最後のデータ・パケットであるかどうかを示すフ
ラグメント・フラグを含む、上記(33)に記載のデー
タ処理システム。 (36)前記送信手段が、データ・パケットの前記複数
のサブシーケンス内の未送信のデータ・パケットを前記
要求発行者に送信する送信手段と、前記使用可能なスペ
ースの量が前記要求発行者側で空きであることを示す応
答を監視する監視手段と、もう1つの未送信のデータ・
パケットがデータ・パケットの前記複数のサブシーケン
ス内に存在することと、前記応答の検出とに応答して、
前記送信手段および監視手段の開始を繰り返す繰返し手
段とを含む、上記(33)に記載のデータ処理システ
ム。 (37)データ処理システム内でデータを転送するのに
使用される、コンピュータ可読媒体内のコンピュータ・
プログラム製品であって、要求を送信する第1命令であ
って、前記要求が、前記データ処理システムで使用可能
な処理スペースの量を含む、第1命令と、使用可能な処
理スペースの前記量が空くたびに前記要求に応答してデ
ータ・パケットのサブシーケンスの組からデータ・パケ
ットのサブシーケンスを受信する第2命令であって、デ
ータ・パケットの各サブシーケンス内のデータが、使用
可能な処理スペースの前記量におさまる、第2命令とを
含むコンピュータ・プログラム製品。 (38)データ処理システム内でデータを転送する、コ
ンピュータ可読媒体内のコンピュータ・プログラム製品
であって、要求発行者から要求を受信する第1命令であ
って、前記要求が、使用可能なスペースの量を含む、第
1命令と、応答を使用してデータを識別する第2命令
と、前記データをデータ・パケットの複数のサブシーケ
ンスに配置する第3命令であって、サブシーケンスの組
内の各サブシーケンスが、使用可能なスペースの前記量
以下の量のデータを保持する、第3命令と、前記要求発
行者にデータ・パケットの前記複数のサブシーケンスを
送信する第4命令とを含むコンピュータ・プログラム製
品。
【図1】本発明の好ましい実施形態による、ネットワー
ク・グローバル変更コンピューティング・システムを示
す図である。
ク・グローバル変更コンピューティング・システムを示
す図である。
【図2】本発明の好ましい実施形態による、ホスト・プ
ロセッサ・ノードの機能ブロック図である。
ロセッサ・ノードの機能ブロック図である。
【図3】本発明の好ましい実施形態による、ホスト・チ
ャネル・アダプタを示す図である。
ャネル・アダプタを示す図である。
【図4】本発明の好ましい実施形態による、作業要求の
処理を示す図である。
処理を示す図である。
【図5】本発明の好ましい実施形態による、データ・パ
ケットを示す図である。
ケットを示す図である。
【図6】本発明の好ましい実施形態による、管理データ
グラム・データ・パケットを示す図である。
グラム・データ・パケットを示す図である。
【図7】本発明の好ましい実施形態による、データの要
求および受信に使用されるプロセスの流れ図である。
求および受信に使用されるプロセスの流れ図である。
【図8】本発明の好ましい実施形態による、データの要
求を処理するのに使用されるプロセスの流れ図である。
求を処理するのに使用されるプロセスの流れ図である。
【図9】本発明の好ましい実施形態による、データに関
する前の要求を送信せずに、送信側からデータを受信す
るのに使用されるプロセスの流れ図である。
する前の要求を送信せずに、送信側からデータを受信す
るのに使用されるプロセスの流れ図である。
【図10】本発明の好ましい実施形態による、データに
関する前の要求を受信せずにデータを送信するのに使用
されるプロセスの流れ図である。
関する前の要求を受信せずにデータを送信するのに使用
されるプロセスの流れ図である。
500 メッセージ・データ 502 データ・セグメント1 504 データ・セグメント2 506 データ・セグメント3 508 パケット 510 パケット・ペイロード 512 データ・パケット 514 CRC 516 経路指定ヘッダ 518 トランスポート・ヘッダ 600 MAD 602 セグメント番号フィールド 604 ペイロード長フィールド 606 フラグメント・フラグ・フィールド 608 ウィンドウ・パラメータ・フィールド
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ギレス・ロジャー・フレイツァー アメリカ合衆国78703 テキサス州オース チン ノーサンバーランド・ロード 1604 (72)発明者 グレゴリー・フランシス・フィスター アメリカ合衆国78746 テキサス州オース チン サー・アイバー・コーブ 5905 (72)発明者 レナト・ジョン・レシオ アメリカ合衆国78759 テキサス州オース チン ウィンペグ・コーブ 6707 Fターム(参考) 5B089 GA02 GB01 JA11 JB14 KD09 5K030 HA08 HB28 JA05 KA03 LA01 LC01 MB15 5K033 BA04 CB01 CB06 CC01 DB12 5K034 AA05 HH50 MM24
Claims (38)
- 【請求項1】データを転送する、データ処理システムに
おける方法であって、 要求を送信するステップであって、前記要求が、前記デ
ータ処理システムで使用可能な処理スペースの量を含
む、ステップと、 使用可能な処理スペースの前記量が空くたびに前記要求
に応答してデータ・パケットのサブシーケンスの組から
データ・パケットのサブシーケンスを受信するステップ
であって、データ・パケットのサブシーケンスの前記組
内の各サブシーケンス内のデータが、使用可能な処理ス
ペースの前記量におさまる、ステップとを含む方法。 - 【請求項2】前記データ・パケットが、管理データグラ
ムである、請求項1に記載の方法。 - 【請求項3】データ・パケットのサブシーケンスの前記
組内のデータ・パケットの特定のサブシーケンスが、使
用可能な処理スペースの前記量より少ない量のデータを
有する、請求項1に記載の方法。 - 【請求項4】サブシーケンス内の特定のデータ・パケッ
トが、前記特定のデータ・パケットがデータ転送動作の
最初のデータ・パケットまたは最後のデータ・パケット
であるかどうかを示すフラグメント・フラグを含む、請
求項1に記載の方法。 - 【請求項5】特定のデータ・パケットが、データ・パケ
ットのサブシーケンスの前記組内の最後のデータ・パケ
ットである、請求項1に記載の方法。 - 【請求項6】データ・パケットのサブシーケンスの前記
組内の各サブシーケンスが、異なる量のデータを有す
る、請求項1に記載の方法。 - 【請求項7】前記データ・パケットが、セグメント番号
を含む、請求項1に記載の方法。 - 【請求項8】前記データ・パケット内のデータを正しい
順序に再組立するステップをさらに含む、請求項1に記
載の方法。 - 【請求項9】データ・パケットのサブシーケンスの前記
組内の各データ・パケットが、セグメント番号を含み、
前記データが、前記セグメント番号を使用して再組立さ
れる、請求項8に記載の方法。 - 【請求項10】使用可能なスペースの前記量が、前記デ
ータ処理システム内のバッファである、請求項1に記載
の方法。 - 【請求項11】使用可能な処理スペースの前記量が、前
記データ処理システムのメモリ内で割り振られたバッフ
ァである、請求項1に記載の方法。 - 【請求項12】データを転送する、データ処理システム
における方法であって、 要求発行者から要求を受信するステップであって、前記
要求が、使用可能なスペースの量を含む、ステップと、 前記要求を使用してデータを識別するステップと、 前記データをデータ・パケットの複数のサブシーケンス
に配置するステップであって、サブシーケンスの組内の
各サブシーケンスが、使用可能なスペースの前記量以下
の量のデータを保持する、ステップと、 前記要求発行者にデータ・パケットの前記複数のサブシ
ーケンスを送信するステップとを含む方法。 - 【請求項13】データ・パケットの前記複数のサブシー
ケンス内の最初のデータ・パケットおよび最後のデータ
・パケットが、ペイロード長を含む、請求項12に記載
の方法。 - 【請求項14】データ・パケットの前記複数のサブシー
ケンス内のデータ・パケットが、前記データ・パケット
がデータ転送動作について送信される最初のデータ・パ
ケットまたは最後のデータ・パケットであるかどうかを
示すフラグメント・フラグを含む、請求項12に記載の
方法。 - 【請求項15】前記送信するステップが、 データ・パケットの前記複数のサブシーケンス内のデー
タ・パケットの未送信のサブシーケンスを前記要求発行
者に送信するステップと、 使用可能なスペースの前記量が前記要求発行者側で空き
であることを示す応答を監視するステップと、 データ・パケットのもう1つの未送信のサブシーケンス
がデータ・パケットの前記複数のサブシーケンス内に存
在することと、前記応答の検出とに応答して、前記送信
ステップおよび監視ステップを繰り返すステップとを含
む、請求項12に記載の方法。 - 【請求項16】データ処理システムであって、 バス・システムと、 前記バス・システムに接続された通信ユニットであっ
て、データが、前記通信ユニットを使用して送信され、
受信される、通信ユニットと、 前記バス・システムに接続されたメモリであって、命令
の組が、前記メモリ内に配置される、メモリと、 前記バス・システムに接続されたプロセッサ・ユニット
であって、前記プロセッサ・ユニットが、要求を送信す
るために命令の前記組を実行し、前記要求が、前記デー
タ処理システムで使用可能な処理スペースの量を含み、
前記プロセッサ・ユニットが、使用可能な処理スペース
の前記量が空きになるたびに前記要求に応答してデータ
・パケットの組からデータ・パケットのサブシーケンス
を受信し、データ・パケットの各サブシーケンス内のデ
ータが、使用可能な処理スペースの前記量におさまる、
プロセッサ・ユニットとを含むデータ処理システム。 - 【請求項17】前記バス・システムが、主バスおよび副
バスを含む、請求項16に記載のデータ処理システム。 - 【請求項18】前記プロセッサ・ユニットが、単一のプ
ロセッサを含む、請求項16に記載のデータ処理システ
ム。 - 【請求項19】前記プロセッサ・ユニットが、複数のプ
ロセッサを含む、請求項16に記載のデータ処理システ
ム。 - 【請求項20】前記通信ユニットが、イーサネット
(R)アダプタである、請求項16に記載のデータ処理
システム。 - 【請求項21】データ処理システムであって、 バス・システムと、 前記バス・システムに接続された通信ユニットであっ
て、データが、前記通信ユニットを使用して送信され、
受信される、通信ユニットと、 前記バス・システムに接続されたメモリであって、命令
の組が、前記メモリ内に配置される、メモリと、 前記バス・システムに接続されたプロセッサ・ユニット
であって、前記プロセッサ・ユニットが、要求発行者か
ら要求を受信するために命令の前記組を実行し、前記要
求が、使用可能なスペースの量を含み、前記プロセッサ
・ユニットが、応答を使用してデータを識別し、前記デ
ータをデータ・パケットの複数のサブシーケンスに配置
し、サブシーケンスの前記組内の各サブシーケンスが、
使用可能なスペースの前記量以下の量のデータを保持
し、前記プロセッサ・ユニットが、前記要求発行者にデ
ータ・パケットの前記複数のサブシーケンスを送信す
る、プロセッサ・ユニットとを含むデータ処理システ
ム。 - 【請求項22】データを転送するデータ処理システムで
あって、 要求を送信する送信手段であって、前記要求が、前記デ
ータ処理システムで使用可能な処理スペースの量を含
む、送信手段と、 使用可能な処理スペースの前記量が空きになるたびに、
前記要求に応答して、データ・パケットのサブシーケン
スの組からデータ・パケットのサブシーケンスを受信す
る受信手段であって、データ・パケットの各サブシーケ
ンス内のデータが、使用可能な処理スペースの前記量に
おさまる、受信手段とを含むデータ処理システム。 - 【請求項23】前記データ・パケットが、管理データグ
ラムである、請求項22に記載のデータ処理システム。 - 【請求項24】データ・パケットのサブシーケンスの前
記組内の特定のデータ・パケットが、使用可能な処理ス
ペースの前記量より少ない量のデータを有する、請求項
22に記載のデータ処理システム。 - 【請求項25】サブシーケンス内の特定のデータ・パケ
ットが、前記特定のパケットがデータ転送動作の最初の
データ・パケットまたは最後のデータ・パケットである
かどうかを示すフラグメント・フラグを含む、請求項2
2に記載のデータ処理システム。 - 【請求項26】前記特定のデータ・パケットが、データ
・パケットのサブシーケンスの前記組内の最後のデータ
・パケットである、請求項22に記載のデータ処理シス
テム。 - 【請求項27】データ・パケットのサブシーケンスの前
記組内の各サブシーケンスが、異なる量のデータを有す
る、請求項22に記載のデータ処理システム。 - 【請求項28】前記データ・パケットが、セグメント番
号を含む、請求項22に記載のデータ処理システム。 - 【請求項29】前記データ・パケット内のデータを正し
い順序に再組立する再組立手段をさらに含む、請求項2
2に記載のデータ処理システム。 - 【請求項30】データ・パケットのサブシーケンスの前
記組内の各データ・パケットが、セグメント番号を含
み、前記データが、前記セグメント番号を使用して再組
立される、請求項29に記載のデータ処理システム。 - 【請求項31】使用可能なスペースの前記量が、前記デ
ータ処理システム内のバッファである、請求項22に記
載のデータ処理システム。 - 【請求項32】使用可能な処理スペースの前記量が、前
記データ処理システムのメモリ内で割り振られたバッフ
ァである、請求項22に記載のデータ処理システム。 - 【請求項33】データを転送するデータ処理システムで
あって、 要求発行者から要求を受信する受信手段であって、前記
要求が、使用可能なスペースの量を含む、受信手段と、 応答を使用してデータを識別する識別手段と、 前記データをデータ・パケットの複数のサブシーケンス
に配置する配置手段であって、データ・パケットの前記
複数のサブシーケンス内の各サブシーケンスが 、使用可能なスペースの前記量以下の量のデータを保持
する、配置手段と、前記要求発行者にデータ・パケット
の前記複数のサブシーケンスを送信する送信手段とを含
むデータ処理システム。 - 【請求項34】データ・パケットの前記複数のサブシー
ケンス内の最初のデータ・パケットおよび最後のデータ
・パケットが、ペイロード長を含む、請求項33に記載
のデータ処理システム。 - 【請求項35】データ・パケットの前記複数のサブシー
ケンス内のデータ・パケットが、前記データ・パケット
がデータ転送動作について送信される最初のデータ・パ
ケットまたは最後のデータ・パケットであるかどうかを
示すフラグメント・フラグを含む、請求項33に記載の
データ処理システム。 - 【請求項36】前記送信手段が、 データ・パケットの前記複数のサブシーケンス内の未送
信のデータ・パケットを前記要求発行者に送信する送信
手段と、 前記使用可能なスペースの量が前記要求発行者側で空き
であることを示す応答を監視する監視手段と、 もう1つの未送信のデータ・パケットがデータ・パケッ
トの前記複数のサブシーケンス内に存在することと、前
記応答の検出とに応答して、前記送信手段および監視手
段の開始を繰り返す繰返し手段とを含む、請求項33に
記載のデータ処理システム。 - 【請求項37】データ処理システム内でデータを転送す
るのに使用される、コンピュータ可読媒体内のコンピュ
ータ・プログラム製品であって、 要求を送信する第1命令であって、前記要求が、前記デ
ータ処理システムで使用可能な処理スペースの量を含
む、第1命令と、 使用可能な処理スペースの前記量が空くたびに前記要求
に応答してデータ・パケットのサブシーケンスの組から
データ・パケットのサブシーケンスを受信する第2命令
であって、データ・パケットの各サブシーケンス内のデ
ータが、使用可能な処理スペースの前記量におさまる、
第2命令とを含むコンピュータ・プログラム製品。 - 【請求項38】データ処理システム内でデータを転送す
る、コンピュータ可読媒体内のコンピュータ・プログラ
ム製品であって、 要求発行者から要求を受信する第1命令であって、前記
要求が、使用可能なスペースの量を含む、第1命令と、 応答を使用してデータを識別する第2命令と、 前記データをデータ・パケットの複数のサブシーケンス
に配置する第3命令であって、サブシーケンスの組内の
各サブシーケンスが、使用可能なスペースの前記量以下
の量のデータを保持する、第3命令と、 前記要求発行者にデータ・パケットの前記複数のサブシ
ーケンスを送信する第4命令とを含むコンピュータ・プ
ログラム製品。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/758737 | 2001-01-11 | ||
| US09/758,737 US6898638B2 (en) | 2001-01-11 | 2001-01-11 | Method and apparatus for grouping data for transfer according to recipient buffer size |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2002305535A true JP2002305535A (ja) | 2002-10-18 |
Family
ID=25052893
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001386626A Pending JP2002305535A (ja) | 2001-01-11 | 2001-12-19 | データを転送する信頼できるプロトコルを提供する方法および装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US6898638B2 (ja) |
| JP (1) | JP2002305535A (ja) |
| KR (1) | KR100464195B1 (ja) |
Cited By (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005064982A (ja) * | 2003-08-15 | 2005-03-10 | Nippon Telegr & Teleph Corp <Ntt> | 端末装置 |
| JP2007534073A (ja) * | 2004-04-21 | 2007-11-22 | レベル、ファイブ、ネットワークス、インコーポレーテッド | ユーザーレベルスタック |
| JP2012514386A (ja) * | 2008-12-30 | 2012-06-21 | インテル・コーポレーション | メッセージ通信方法 |
| US8645596B2 (en) | 2008-12-30 | 2014-02-04 | Intel Corporation | Interrupt techniques |
| JP2017157020A (ja) * | 2016-03-02 | 2017-09-07 | 富士通株式会社 | 制御回路、情報処理装置、および情報処理装置の制御方法 |
| JP2019504557A (ja) * | 2015-12-29 | 2019-02-14 | アマゾン テクノロジーズ インコーポレイテッド | ネットワーキング技術 |
| US10645019B2 (en) | 2015-12-29 | 2020-05-05 | Amazon Technologies, Inc. | Relaxed reliable datagram |
| US10673772B2 (en) | 2015-12-29 | 2020-06-02 | Amazon Technologies, Inc. | Connectionless transport service |
| US10917344B2 (en) | 2015-12-29 | 2021-02-09 | Amazon Technologies, Inc. | Connectionless reliable transport |
| US11451476B2 (en) | 2015-12-28 | 2022-09-20 | Amazon Technologies, Inc. | Multi-path transport design |
| US12218841B1 (en) | 2019-12-12 | 2025-02-04 | Amazon Technologies, Inc. | Ethernet traffic over scalable reliable datagram protocol |
| US12301460B1 (en) | 2022-09-30 | 2025-05-13 | Amazon Technologies, Inc. | Multi-port load balancing using transport protocol |
| US12531808B2 (en) | 2022-06-29 | 2026-01-20 | Amazon Technologies, Inc. | Transport protocol selection based on connection state |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| ATE323360T1 (de) * | 2002-04-03 | 2006-04-15 | Cit Alcatel | Verfahren und vorrichtungen zur umordnung von paketen in einem netzwerkprozessor |
| US20040240388A1 (en) * | 2003-05-28 | 2004-12-02 | Lee Albion | System and method for dynamic assignment of timers in a network transport engine |
| US7698361B2 (en) * | 2003-12-31 | 2010-04-13 | Microsoft Corporation | Lightweight input/output protocol |
| US7347794B2 (en) | 2004-03-17 | 2008-03-25 | Karsten Manufacturing Corporation | Method of manufacturing a face plate for a golf club head |
| US7895329B2 (en) * | 2006-01-12 | 2011-02-22 | Hewlett-Packard Development Company, L.P. | Protocol flow control |
| US8832216B2 (en) * | 2011-08-31 | 2014-09-09 | Oracle International Corporation | Method and system for conditional remote direct memory access write |
| US10425371B2 (en) * | 2013-03-15 | 2019-09-24 | Trane International Inc. | Method for fragmented messaging between network devices |
| JP7032631B2 (ja) * | 2017-07-04 | 2022-03-09 | 富士通株式会社 | 送受信システム、送受信システムの制御方法、及び送信装置 |
| CN114443206B (zh) * | 2020-10-31 | 2025-09-12 | 华为技术有限公司 | 通信方法及装置 |
| JP2022076620A (ja) * | 2020-11-10 | 2022-05-20 | キオクシア株式会社 | メモリシステムおよび制御方法 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61292767A (ja) * | 1985-06-20 | 1986-12-23 | Nec Corp | オンラインシステムにおける出力制御方式 |
| DE3889550T2 (de) * | 1987-01-12 | 1994-09-01 | Fujitsu Ltd | Datenübertragungspufferschaltungen für Datenaustausch. |
| DE68924755D1 (de) * | 1988-10-31 | 1995-12-14 | Ibm | Mehrfachverarbeitungssystem und Verfahren für gemeinsame Speichernutzung. |
| US5287500A (en) * | 1991-06-03 | 1994-02-15 | Digital Equipment Corporation | System for allocating storage spaces based upon required and optional service attributes having assigned piorities |
| KR19990079650A (ko) * | 1998-04-08 | 1999-11-05 | 김영환 | 두 프로세서 간 데이터 통신시 패킷을 사용한 가변길이 데이터처리방법 |
| US6738821B1 (en) * | 1999-01-26 | 2004-05-18 | Adaptec, Inc. | Ethernet storage protocol networks |
| KR100411131B1 (ko) * | 2000-04-21 | 2003-12-18 | 주식회사 정소프트 | 멀티유저 컴퓨터 시스템 및 그 제어방법 |
-
2001
- 2001-01-11 US US09/758,737 patent/US6898638B2/en not_active Expired - Fee Related
- 2001-12-19 JP JP2001386626A patent/JP2002305535A/ja active Pending
-
2002
- 2002-01-11 KR KR10-2002-0001745A patent/KR100464195B1/ko not_active Expired - Fee Related
Cited By (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005064982A (ja) * | 2003-08-15 | 2005-03-10 | Nippon Telegr & Teleph Corp <Ntt> | 端末装置 |
| JP2007534073A (ja) * | 2004-04-21 | 2007-11-22 | レベル、ファイブ、ネットワークス、インコーポレーテッド | ユーザーレベルスタック |
| JP4825794B2 (ja) * | 2004-04-21 | 2011-11-30 | ソーラーフレア コミュニケーションズ インコーポレーテッド | ユーザーレベルスタック |
| JP2012514386A (ja) * | 2008-12-30 | 2012-06-21 | インテル・コーポレーション | メッセージ通信方法 |
| US8645596B2 (en) | 2008-12-30 | 2014-02-04 | Intel Corporation | Interrupt techniques |
| US8751676B2 (en) | 2008-12-30 | 2014-06-10 | Intel Corporation | Message communication techniques |
| US12368790B2 (en) | 2015-12-28 | 2025-07-22 | Amazon Technologies, Inc. | Multi-path transport design |
| US11451476B2 (en) | 2015-12-28 | 2022-09-20 | Amazon Technologies, Inc. | Multi-path transport design |
| US10645019B2 (en) | 2015-12-29 | 2020-05-05 | Amazon Technologies, Inc. | Relaxed reliable datagram |
| JP2019092218A (ja) * | 2015-12-29 | 2019-06-13 | アマゾン テクノロジーズ インコーポレイテッド | ネットワーキング技術 |
| JP2019092217A (ja) * | 2015-12-29 | 2019-06-13 | アマゾン テクノロジーズ インコーポレイテッド | ネットワーキング技術 |
| US10673772B2 (en) | 2015-12-29 | 2020-06-02 | Amazon Technologies, Inc. | Connectionless transport service |
| US10917344B2 (en) | 2015-12-29 | 2021-02-09 | Amazon Technologies, Inc. | Connectionless reliable transport |
| US11343198B2 (en) | 2015-12-29 | 2022-05-24 | Amazon Technologies, Inc. | Reliable, out-of-order transmission of packets |
| JP2019504557A (ja) * | 2015-12-29 | 2019-02-14 | アマゾン テクノロジーズ インコーポレイテッド | ネットワーキング技術 |
| US11770344B2 (en) | 2015-12-29 | 2023-09-26 | Amazon Technologies, Inc. | Reliable, out-of-order transmission of packets |
| US12549480B2 (en) | 2015-12-29 | 2026-02-10 | Amazon Technologies, Inc. | Reliable, out-of-order transmission of packets |
| JP2017157020A (ja) * | 2016-03-02 | 2017-09-07 | 富士通株式会社 | 制御回路、情報処理装置、および情報処理装置の制御方法 |
| US12218841B1 (en) | 2019-12-12 | 2025-02-04 | Amazon Technologies, Inc. | Ethernet traffic over scalable reliable datagram protocol |
| US12531808B2 (en) | 2022-06-29 | 2026-01-20 | Amazon Technologies, Inc. | Transport protocol selection based on connection state |
| US12301460B1 (en) | 2022-09-30 | 2025-05-13 | Amazon Technologies, Inc. | Multi-port load balancing using transport protocol |
Also Published As
| Publication number | Publication date |
|---|---|
| US6898638B2 (en) | 2005-05-24 |
| US20020091852A1 (en) | 2002-07-11 |
| KR100464195B1 (ko) | 2005-01-03 |
| KR20020060623A (ko) | 2002-07-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6748559B1 (en) | Method and system for reliably defining and determining timeout values in unreliable datagrams | |
| US6766467B1 (en) | Method and apparatus for pausing a send queue without causing sympathy errors | |
| US7519650B2 (en) | Split socket send queue apparatus and method with efficient queue flow control, retransmission and sack support mechanisms | |
| US7668984B2 (en) | Low latency send queues in I/O adapter hardware | |
| JP2002305535A (ja) | データを転送する信頼できるプロトコルを提供する方法および装置 | |
| US7095750B2 (en) | Apparatus and method for virtualizing a queue pair space to minimize time-wait impacts | |
| US7895601B2 (en) | Collective send operations on a system area network | |
| US8265092B2 (en) | Adaptive low latency receive queues | |
| US7133405B2 (en) | IP datagram over multiple queue pairs | |
| JP4012545B2 (ja) | リモート・ダイレクト・メモリ・アクセス対応ネットワーク・インタフェース・コントローラのスイッチオーバーとスイッチバックのサポート | |
| US6789143B2 (en) | Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries | |
| US8370447B2 (en) | Providing a memory region or memory window access notification on a system area network | |
| US20020073257A1 (en) | Transferring foreign protocols across a system area network | |
| EP1499984B1 (en) | System, method, and product for managing data transfers in a network | |
| US7165110B2 (en) | System and method for simultaneously establishing multiple connections | |
| JP5735883B2 (ja) | ローカル・アダプタの読み取り操作により操作の完了が確認されるまで操作の肯定応答を遅延させる方法 | |
| US20030061296A1 (en) | Memory semantic storage I/O | |
| US8341237B2 (en) | Systems, methods and computer program products for automatically triggering operations on a queue pair | |
| US7113995B1 (en) | Method and apparatus for reporting unauthorized attempts to access nodes in a network computing system | |
| US20030005039A1 (en) | End node partitioning using local identifiers | |
| US6990528B1 (en) | System area network of end-to-end context via reliable datagram domains | |
| US20020198927A1 (en) | Apparatus and method for routing internet protocol frames over a system area network | |
| US20030058875A1 (en) | Infiniband work and completion queue management via head only circular buffers | |
| US7099955B1 (en) | End node partitioning using LMC for a system area network | |
| US20020078265A1 (en) | Method and apparatus for transferring data in a network data processing system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041126 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041130 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050125 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050322 |