(57)【特許請求の範囲】
【請求項１】
ファイバチャネルを介して入力される受信フレームデータを受信フレームバッファに蓄え、この蓄えられた受信フレームデータを蓄えられた順にフレーム処理部に転送し、この受信フレームデータの転送を完了する毎に確認信号を前記ファイバチャネルを介して相手ノードへ返送するファイバチャネルのフロー制御方法において、
前記フレーム処理部への受信フレームデータの転送中に前記フレーム処理部からの送信フレームデータの送信要求があった場合、
その時の送信フレームデータの送信フレーム長と前記フレーム処理部へ転送中の受信フレームデータの残余長との差に基づき、
この差が予め定められている所定値よりも大きい場合には、前記フレーム処理部への受信フレームデータの転送完了を示す確認信号の返送を優先し、この確認信号の返送完了よりも後に前記送信フレームデータの送信を開始するようにし、
この差が前記所定値よりも小さい場合には、前記送信フレームデータの送信を開始し、この送信フレームデータの送信完了よりも後に、前記フレーム処理部への受信フレームデータの転送完了を示す確認信号を返送するようにした
ことを特徴とするファイバチャネルのフロー制御方法。
【請求項２】
ファイバチャネルを介して入力される受信フレームデータを受信フレームバッファに蓄え、この蓄えられた受信フレームデータを蓄えられた順にフレーム処理部に転送し、この受信フレームデータの転送を完了する毎に確認信号を前記ファイバチャネルを介して相手ノードへ返送するファイバチャネルのフロー制御装置において、
前記フレーム処理部への受信フレームデータの転送中に前記フレーム処理部からの送信フレームデータの送信要求があった場合、その時の送信フレームデータの送信フレーム長と前記フレーム処理部へ転送中の受信フレームデータの残余長との差に基づき、この差が予め定められている所定値よりも大きい場合には、前記フレーム処理部への受信フレームデータの転送完了を示す確認信号の返送を優先し、この確認信号の返送完了よりも後に前記送信フレームデータの送信を開始させ、この差が前記所定値よりも小さい場合には、前記送信フレームデータの送信を開始し、この送信フレームデータの送信完了よりも後に、前記フレーム処理部への受信フレームデータの転送完了を示す確認信号を返送させる送信データ調停手段
を備えたことを特徴とするファイバチャネルのフロー制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、多ノードクラスタ通信などの大容量ファイルシステムで用いられるファイバチャネルのフロー制御方法および装置に関するものである。
【０００２】
【従来の技術】
図３にファイバチャネルインターフェイスを持つ装置（ファイバチャネル装置）の入出力部に組み込まれるフロー制御回路の要部を示す。このフロー制御回路１００は、受信フレームバッファ１、ＤＭＡ制御部２、プリミティブ送信制御部３、送信データ調停部４およびフレーム送信制御部５、フレーム処理部６を備え、ファイバチャネル７を介して入力される受信データＲＸを受信する一方、送信データＴＸをファイバチャネル７を介して送信する。
【０００３】
ファイバチャネル７からの受信データＲＸは光信号として与えられ、図示せぬファイバチャネル受信器で電気信号に変換され、受信フレームバッファ１へ送られる。送信データＴＸは、図示せぬファイバチャネル送信器で光信号に変換され、ファイバチャネル７へ送られる。受信フレームバッファ１は４フレーム分のデータ格納領域を有している。
【０００４】
今、受信フレームバッファ１に受信フレームデータ＃Ａ，＃Ｂ，＃Ｃの３つが格納されていて、受信フレームデータ＃Ｄの受信が開始されたとする。この場合、受信フレームバッファ１の最後のデータ格納領域に、受信フレームデータ＃Ｄが格納され始める（図４（ｂ）に示すｔ１点）。ＤＭＡ制御部２は、この受信フレームデータ＃Ｄの格納が始まると、受信フレームデータ転送要求信号を受信フレームバッファ１へ送り、受信フレームバッファ１から受信フレームデータ＃Ａのフレーム処理部６への転送を開始させる（図４（ａ）に示すｔ２点）。
【０００５】
受信フレームデータ＃Ａのフレーム処理部６への転送が完了すると（図４（ａ）に示すｔ３点）、すなわち受信フレームバッファ１が解放されて受信フレームデータの格納領域が１つ空くと、ＤＭＡ制御部２はＲ＿ＲＤＹ送信要求信号（確認信号）をプリミティブ送信制御部３へ送る。Ｒ＿ＲＤＹ送信要求信号を受け取ったプリミティブ送信制御部３は、他のプリミティブ送信要求と優先順位の判定を行った後、Ｒ＿ＲＤＹ送信要求信号の送出が最優先と判断された場合、Ｒ＿ＲＤＹ送信要求を送信データ調停部４へ送る。送信データ調停部４は、プリミティブ送信制御部３からのＲ＿ＲＤＹ送信要求を受けて（図４に示すｔ３点）、プリミティブ送信制御部３へプリミティブ送信許可を送る（図４（ｃ）に示すｔ４点）。
【０００６】
このプリミティブ送信許可を受けて、プリミティブ送信制御部３は、ＤＭＡ制御部２からのＲ＿ＲＤＹ送信要求信号をファイバチャネル７を介して相手ノードへ送る（図４（ｃ）に示すｔ５点）。相手ノードは、このフロー制御回路１００からのＲ＿ＲＤＹ送信要求信号を受けて、次のフレームデータ＃Ｅを送信する。
【０００７】
【発明が解決しようとする課題】
受信フレームバッファ１からの受信フレームデータ＃Ａのフレーム処理部６への転送中、フレーム処理部６からフレーム送信制御部５へフレームデータ（送信フレームデータ）＃Ｎが与えられると、フレーム送信制御部５から送信データ調停部４へフレーム送信要求が送られる（図５（ｄ）に示すｔ３点）。このフレーム送信要求を受けて、送信データ調停部４は、フレーム送信許可をフレーム送信制御部５へ送る（図５（ｃ）に示すｔ４点）。このフレーム送信許可を受けて、フレーム送信制御部５は、フレーム処理部６からの送信フレームデータ＃Ｎをファイバチャネル７を介して相手ノードへ送る（図５（ｃ）に示すｔ５点）。
【０００８】
この送信フレームデータ＃Ｎの送信中、受信フレームバッファ１からのフレーム処理部６への受信フレームデータ＃Ａの転送は続けられており、フレーム処理部６への受信フレームデータ＃Ａの転送が完了すると（図５（ａ）に示すｔ６点）、ＤＭＡ制御部２はＲ＿ＲＤＹ送信要求信号をプリミティブ送信制御部３へ送る。プリミティブ送信制御部３は、ＤＭＡ制御部２からのＲ＿ＲＤＹ送信要求信号を受けて、Ｒ＿ＲＤＹ送信要求を送信データ調停部４へ送る（図５（ａ）に示すｔ６点）。
【０００９】
ここで、送信データ調停部４は、プリミティブ送信制御部３からのＲ＿ＲＤＹ送信要求を受けて、プリミティブ送信制御部３へプリミティブ送信許可を送ろうとするが、送信フレームデータ＃Ｎの送信中であるため、この送信フレームデータ＃Ｎの送信が完了するまでプリミティブ送信許可の送出を待ち合わせる。これにより、送信フレームデータ＃Ｎの送信が完了した後、送信データ調停部４からプリミティブ送信制御部３へプリミティブ送信許可が送られ（図５（ｃ）に示すｔ７点）、この時点でやっとプリミティブ送信制御部３からＲ＿ＲＤＹ送信要求信号が相手ノードへ送られるものとなる（図５（ｃ）に示すｔ８点）。
【００１０】
このように、従来のフロー制御回路１００では、受信フレームバッファ１からのフレーム処理部６への受信フレームデータ＃Ａの転送中に送信フレームデータ＃Ｎの送信要求があった場合、送信フレームデータ＃Ｎの送信が完了した後、受信フレームデータ＃Ａの転送完了を示すＲ＿ＲＤＹ送信要求信号が送信されるので、相手ノードからの次のフレームデータ＃Ｅの受け取りが遅れ、大容量データの高速転送が阻害され、スループットが低下するという問題があった。
【００１１】
本発明はこのような課題を解決するためになされたもので、その目的とするところは、ファイバチャネルを効率よく使用し、スループットを向上させることのできるファイバチャネルのフロー制御方法および装置を提供することにある。
【００１２】
【課題を解決するための手段】
このような目的を達成するために本発明は、フレーム処理部への受信フレームデータの転送中にフレーム処理部からの送信フレームデータの送信要求があった場合、この時の送信フレームデータの送信フレーム長とフレーム処理部への転送中の受信フレームデータの残余長との差に基づき、この差が予め定められている所定値よりも大きい場合には、フレーム処理部への受信フレームデータの転送完了を示す確認信号の返送を優先し、この確認信号の返送完了よりも後に送信フレームデータの送信を開始するようにし、この差が所定値よりも小さい場合には、送信フレームデータの送信を開始し、この送信フレームデータの送信完了よりも後に、フレーム処理部への受信フレームデータの転送完了を示す確認信号を返送するようにしたものである。
【００１４】
この発明によれば、受信フレームデータ（＃Ａ）の転送中に送信フレームデータ（＃Ｎ）の送信要求があると、この時の送信フレームデータ（＃Ｎ）の送信フレーム長と転送中の受信フレームデータ（＃Ａ）の残余長との差に基づき、受信フレームデータ（＃Ａ）の転送完了を示す確認信号を先に送信するのか、送信フレームデータ（＃Ｎ）を先に送信するのかの調停が行われる。
送信フレームデータ（＃Ｎ）の送信フレーム長と転送中の受信フレームデータ（＃Ａ）の残余長との差が所定値よりも大きい場合には、送信フレームデータ（＃Ｎ）のフレーム長が長く時間がかかると判断し、少なくとも受信フレームデータ（＃Ａ）の転送完了を示す確認信号の返送が完了するまで、送信フレームデータ（＃Ｎ）の送信を待ち合わせる。すなわち、受信フレームデータ（＃Ａ）の転送完了を示す確認信号を先に送信し、その後に送信フレームデータ（＃Ｎ）を送信する。
送信フレームデータ（＃Ｎ）の送信フレーム長と転送中の受信フレームデータ（＃Ａ）の残余長との差が所定値よりも小さい場合には、送信フレームデータ（＃Ｎ）のフレーム長が短くさほど時間はかからないと判断し、送信フレームデータ（＃Ｎ）の送信を開始し、この送信フレームデータ（＃Ｎ）の送信が完了するまで、受信フレームデータ（＃Ａ）の転送完了を示す確認信号の返送を待ち合わせる。すなわち、送信フレームデータ（＃Ｎ）を先に送信し、その後に受信フレームデータ（＃Ａ）の転送完了を示す確認信号を返送する。
【００１５】
【発明の実施の形態】
以下、本発明を図面に基づいて詳細に説明する。図１はこの発明の実施に用いるフロー制御回路の要部を示すブロック図である。同図において、図３と同一符号は、同一或いは同等構成要素を示す。
【００１６】
この実施の形態では、ＤＭＡ制御部２にＤＭＡ残余カウンタ２−１を設け、受信フレームバッファ１からのフレーム処理部６への受信フレームデータの残りの転送数（残余長）をカウントし、これを送信データ調停部４へ与えるようにしている。なお、フレーム処理部６への転送が起動されていない時、ＤＭＡ残余カウンタ２−１には受信フレームデータの最大フレーム長よりも大きな値を保持させるようにしている。
【００１７】
また、受信フレームバッファ１における受信フレームデータの格納領域が全て使用されている場合、受信フレームバッファ１から送信データ調停部４へ受信バッファ・フル信号を送るようにしている。
また、フレーム送信制御部５から送信データ調停部４へ、フレーム送信要求とともに送信フレームデータの送信フレーム長を送るようにしている。
【００１８】
また、セレクタ８を設け、このセレクタ８の一方のポートへプリミティブ送信制御部３からのＲ＿ＲＤＹ送信要求信号やその他のプリミティブ送信要求信号を送るようにし、他方のポートへフレーム送信制御部５を介するフレーム処理部６からの送信フレームデータを送るようにしている。
また、送信データ調停部４からのセレクタ制御信号によって、セレクタ８におけるモードを切り替えるようにしている。また、送信データ調停部４に、後述するフロー制御パラメータ４−１として所定値Ｘを設定している。
【００１９】
以下、各部の機能を交えながら、このフロー制御回路２００における特徴的な動作について説明する。
今、受信フレームバッファ１に受信フレームデータ＃Ａ，＃Ｂ，＃Ｃの３つが格納されていて、受信フレームデータ＃Ｄの受信が開始されたとする。この場合、受信フレームバッファ１の最後のデータ格納領域に、受信フレームデータ＃Ｄが格納さ始める（図２（ｂ）に示すｔ１点）。ＤＭＡ制御部２は、この受信フレームデータ＃Ｄの格納が始まると、受信フレームデータ転送要求信号を受信フレームバッファ１へ送り、受信フレームバッファ１から受信フレームデータ＃Ａのフレーム処理部６への転送を開始させる（図２（ａ）に示すｔ２点）。
【００２０】
この受信フレームデータ＃Ａのフレーム処理部６への転送中、フレーム処理部６からフレーム送信制御部５へ送信フレームデータ＃Ｎが与えられると、フレーム送信制御部５はフレーム送信要求と送信フレームデータ＃Ｎの送信フレーム長を送信データ調停部４へ送る（図２（ｄ）に示すｔ３点）。この時、送信データ調停部４には、受信フレームバッファ１からの受信バッファ・フル信号やＤＭＡ残余カウンタ２−１から受信フレームデータ＃Ａの残余長が与えられている。
【００２１】
送信データ調停部４は、フレーム送信制御部５からフレーム送信要求が与えられると、その時の送信フレームデータ＃Ｎの送信フレーム長とＤＭＡ残余カウンタ２−１からの受信フレームデータ＃Ａの残余長との差を求め、この差とフロー制御パラメータ４−１として設定されている所定値Ｘとを比較する。
【００２２】
そして、この差が所定値Ｘよりも大きい場合、送信データ調停部４は、フレーム処理部６からの送信フレームデータ＃Ｎのフレーム長が長く時間がかかると判断し、セレクタ８へのセレクタ制御信号をプリミティブ送信制御部３側へセットする。すなわち、セレクタ８のモードを、プリミティブ送信制御部３からの信号を送信データＴＸとして出力するモードに切り替える。
【００２３】
また、上記差が所定値Ｘよりも大きい場合、送信データ調停部４は、受信フレームバッファ１からの受信バッファ・フル信号が消失し、プリミティブ送信制御部３からのＲ＿ＲＤＹ送信要求およびその他のプリミティブ送信要求が非セット状態となるまで（Ｒ＿ＲＤＹ送信要求信号および他のプリミティブ送信要求の送信が完了するまで）、フレーム送信制御部５へのフレーム送信許可の送出およびセレクタ８へのセレクタ制御信号のフレーム送信制御部５側への切り替えを待ち合わせる。従って、この場合、フレーム処理部６からの送信フレームデータ＃Ｎはフレーム送信制御部５で止められ、送信データＴＸとして送出されることはない。
【００２４】
受信フレームバッファ１からのフレーム処理部６への受信フレームデータ＃Ａの転送が完了すると（図２（ａ）に示すｔ４点）、すなわち受信フレームバッファ１が解放されて受信フレームデータの格納領域が１つ空くと、ＤＭＡ制御部２はＲ＿ＲＤＹ送信要求信号をプリミティブ送信制御部３へ送る。プリミティブ送信制御部３は、ＤＭＡ制御部２からのＲ＿ＲＤＹ送信要求信号を受けて、Ｒ＿ＲＤＹ送信要求を送信データ調停部４へ送る（図２（ａ）に示すｔ４点）。送信データ調停部４は、プリミティブ送信制御部３からのＲ＿ＲＤＹ送信要求を受けて、プリミティブ送信許可をプリミティブ送信制御部３へ送る（図２（ｃ）に示すｔ５点）。
【００２５】
このプリミティブ送信許可を受けて、プリミティブ送信制御部３は、ＤＭＡ制御部２からのＲ＿ＲＤＹ送信要求信号をセレクタ８へ送る。この時、セレクタ８は送信データ調停部４からのセレクタ制御信号によりそのモードがプリミティブ送信制御部３側に切り替えられているので、プリミティブ送信制御部３からのＲ＿ＲＤＹ送信要求信号はファイバチャネル７を介して相手ノードへ送られる（図２（ｃ）に示すｔ６点）。相手ノードは、このフロー制御回路２００からのＲ＿ＲＤＹ送信要求信号を受けて、次のフレームデータ＃Ｅを送信する。
【００２６】
送信データ調停部４は、受信フレームバッファ１からの受信バッファ・フル信号が消失し、プリミティブ送信制御部３からのＲ＿ＲＤＹ送信要求およびその他のプリミティブ送信要求が非セット状態となると、フレーム送信制御部５へフレーム送信許可を送出するとともに、セレクタ８へのセレクタ制御信号をフレーム送信制御部５側へ切り替える（図２（ｃ）に示すｔ７点）。すなわち、セレクタ８のモードを、フレーム送信制御部５からの信号を送信データＴＸとして送出するモードに切り替える。これにより、プリミティブ送信制御部３からのＲ＿ＲＤＹ送信要求信号の送信完了後、フレーム送信制御部５を介するフレーム処理部６からの送信フレームデータ＃Ｎの送信が開始される（図２（ｃ）に示すｔ８点）。
【００２７】
このように、本実施の形態のフロー制御回路２００によると、受信フレームバッファ１からのフレーム処理部６への受信フレームデータ＃Ａの転送中に送信フレームデータ＃Ｎの送信要求があった場合、受信フレームデータ＃Ａの転送完了を示すＲ＿ＲＤＹ送信要求信号が先に返送され、その後に送信フレームデータ＃Ｎが送信されるので、相手ノードから次のフレームデータ＃Ｅを早く受け取ることができる。これにより、ファイバチャネル７が効率よく使用され、スループットが向上する。
【００２８】
なお、送信データ調停部４は、フレーム送信制御部５からフレーム送信要求が与えられた時、その時の送信フレームデータ＃Ｎの送信フレーム長とＤＭＡ残余カウンタ２−１からの受信フレームデータ＃Ａの残余長との差が所定値Ｘよりも小さかった場合、送信フレームデータ＃Ｎのフレーム長が短くそれほど時間はかからないと判断し、セレクタ８へのセレクタ制御信号をフレーム送信制御部５側へセットするとともに、フレーム送信制御部５へ直ちにフレーム送信許可を与える。
【００２９】
この場合、従来と同様に、送信フレームデータ＃Ｎが先に送信され、その後に受信フレームデータ＃Ａの転送完了を示すＲ＿ＲＤＹ送信要求信号が送信されるものとなる。しかし、この場合の送信フレームデータ＃Ｎは短く、Ｒ＿ＲＤＹ送信要求信号の返送が大きく遅れることはない。フレーム送信要求があった時、直ちに送信フレームデータ＃Ｎの送信を行うか後で行うかは、すなわち送信フレームデータ＃Ｎの送信フレーム長が長いか短いかは、送信データ調停部４におけるフロー制御パラメータ４−１の値Ｘを変えることによって、その判断基準を自由に調整することができる。
【００３０】
【発明の効果】
以上説明したことから明らかなように本発明によれば、フレーム処理部への受信フレームデータの転送中にフレーム処理部から送信フレームデータの送信要求があると、この時の送信フレームデータの送信フレーム長と転送中の受信フレームデータの残余長との差に基づき、受信フレームデータの転送完了を示す確認信号を先に送信するのか、送信フレームデータを先に送信するのかの調停が行われ、送信フレームデータの送信フレーム長と転送中の受信フレームデータの残余長との差が所定値よりも大きい場合（送信フレームデータのフレーム長が長い場合）には、少なくとも受信フレームデータの転送完了を示す確認信号の返送が完了するまで送信フレームデータの送信が待ち合わせられるものとなり、所定値よりも小さい場合（送信フレームデータのフレーム長が短い場合）には、送信フレームデータの送信が開始され、この送信フレームデータの送信が完了するまで受信フレームデータの転送完了を示す確認信号の返送が待ち合わせられるものとなり、ファイバチャネルを効率よく使用し、スループットを向上させることができるようになる。
【００３２】
特に、本発明は、ファブリックのようなスイッチ装置やクラス２でフレーム長の大きいデータフレームに対し、フレーム長の小さいＡＣＫフレーム（確認信号）を返すような場合に効果が大きい。
【図面の簡単な説明】
【図１】本発明の実施に用いるフロー制御回路の要部を示すブロック図である。
【図２】このフロー制御回路における特徴的な動作を説明するタイムチャートである。
【図３】従来のフロー制御回路の要部を示すブロック図である。
【図４】このフロー制御回路におけるＲ＿ＲＤＹ送信要求信号の返送動作を説明するタイムチャートである。
【図５】このフロー制御回路におけるフレーム送信要求が出された場合の動作を説明するタイムチャートである。
【符号の説明】
１…受信フレームバッファ、２…ＤＭ制御部、２−１…ＤＭＡ残余カウンタ、３…プリミティブ送信制御部、４…送信データ調停部、４−１…フロー制御パラメータ、５…フレーム送信制御部、６…フレーム処理部、７…ファイバチャネル、８…セレクタ、２００…フロー制御回路。
【図１】
0003584886.tif 000002
【図２】
0003584886.tif 000003
【図３】
0003584886.tif 000004
【図４】
0003584886.tif 000005
【図５】
0003584886.tif 000006