(57)【要約】【課題】ＰＰＲＣ環境においてデータ転送の効率を上げるための方法、システム、およびコンピュータ・プログラムを提供すること。【解決手段】３つの特徴のいずれかまたはすべてをインプリメントすることが可能であり、そのそれぞれがハンドシェーク、データ、および制御情報の交換に必要なラウンド・トリップの数を削減する。第１の特徴は、通常は１次記憶コントローラと２次記憶コントローラとの間に発生する「転送可能」肯定応答を使用不可にすることを含む。第２の特徴は、２次記憶コントローラ内でペイロードおよびデータ・バッファを事前割振りすることを含む。第３の特徴は、拡張されたコマンド記述子ブロック（ＣＤＢ）において書き込みコマンドと共に書き込み制御情報をパッケージングすることを含む。こうしたステップによって、書き込み制御情報を別々に伝送する必要がなくなった。ＣＤＢは、データ・ブロックと共に１次記憶コントローラから２次記憶コントローラへと伝送され、それぞれ事前に割り振られたバッファ内に配置される。データを２次へパイプライン化することも可能である。データ転送の応答時間を短くすることにより、１次と２次の記憶コントローラ間の距離を長くすることができる。【選択図】  図２
2007511844.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１のペイロード・バッファを２次記憶制御機構で事前割り振りすることと、
少なくとも第１のデータ・バッファを前記２次記憶制御機構で事前割り振りすることと、
１次記憶制御機構から前記２次記憶制御機構への第１のデータ・ブロックの転送に関する第１の書き込みコマンドを発行することと、
書き込み制御情報をファイバ・チャネル・プロトコル（ＦＣＰ）コマンドと共に第１の拡張コマンド記述子ブロック（ＣＤＢ）内にパッケージングすることと、
前記第１の拡張ＣＤＢを前記１次記憶制御機構から前記２次記憶制御機構へと伝送することと、
前記第１のデータ・ブロックを前記１次記憶制御機構から前記２次記憶制御機構へと伝送することと、
を含む、ＰＰＲＣ環境でデータを転送するための方法。
【請求項２】
前記第１の書き込みコマンドの発行に先立って、「転送可能」コマンドを使用不可にすることをさらに含む、請求項１に記載の方法。
【請求項３】
第１のペイロード・バッファ内で前記第１の拡張ＣＤＢを受信することと、
第１のデータ・バッファ内で前記第１のデータ・ブロックを受信することと、
第１の書き込みオペレーションを完了することと、
前記第１の書き込みオペレーションの完了を確認する第１のステータス・インジケータを、前記２次記憶制御機構から前記１次記憶制御機構へと伝送することと、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記１次記憶制御機構から前記２次記憶制御機構への第２のデータ・ブロックの転送に関する第２の書き込みコマンドを発行することと、
書き込み制御情報をＦＣＰコマンドと共に第２の拡張ＣＤＢ内にパッケージングすることと、
前記第２の拡張ＣＤＢを前記１次記憶制御機構から前記２次記憶制御機構へと伝送することと、
前記第２のデータ・ブロックを前記１次記憶制御機構から前記２次記憶制御機構へと伝送することと、
をさらに含む、請求項１に記載の方法。
【請求項５】
第２のペイロード・バッファ内で前記第２の拡張ＣＤＢを受信することと、
第２のデータ・バッファ内で前記第２のデータ・ブロックを受信することと、
第２の書き込みオペレーションを完了することと、
前記第２の書き込みオペレーションの完了を確認する第２のステータス・インジケータを、前記２次記憶制御機構から前記１次記憶制御機構へと伝送することと、
をさらに含む、請求項４に記載の方法。
【請求項６】
前記第２のペイロード・バッファおよび前記第２のデータ・バッファが事前割り振りされる、請求項５に記載の方法。
【請求項７】
前記第２のペイロード・バッファおよび前記第２のデータ・バッファが、前記２次記憶制御機構による前記第１の拡張ＣＤＢおよび前記第１のデータ・ブロックの受信後に割り振りされる、請求項５に記載の方法。
【請求項８】
前記第２の拡張ＣＤＢを伝送することと前記第２のデータ・ブロックを伝送することとが、前記１次記憶制御機構による前記第１のステータス・インジケータが受信される前に開始される、請求項４に記載の方法。
【請求項９】
前記第１のデータ・ブロックをストレージ・ドライブに伝送することと、
前記第１のペイロード・バッファおよび前記第１のデータ・バッファを解放することであって、これにより後続の拡張ＣＤＢおよびデータ・ブロックが前記第１のペイロード・バッファおよび第１のデータ・バッファ内でそれぞれ受信可能となる、前記解放することと、
をさらに含む、請求項１に記載の方法。
【請求項１０】
１次記憶制御機構と、
２次記憶制御機構と、
前記２次記憶制御機構内の第１の事前割り振りされたペイロード・バッファと、
前記２次記憶制御機構内の第１の事前割り振りされたデータ・バッファと、
前記１次記憶制御機構から前記２次記憶制御機構への第１のデータ・ブロックの転送に関する第１の書き込みコマンドを発行するための手段と、
書き込み制御情報をファイバ・チャネル・プロトコル（ＦＣＰ）コマンドと共に第１の拡張コマンド記述子ブロック（ＣＤＢ）内にパッケージングするための手段と、
前記第１の拡張ＣＤＢを前記１次記憶制御機構から前記２次記憶制御機構へと伝送するための手段と、
前記第１のデータ・ブロックを前記１次記憶制御機構から前記２次記憶制御機構へと伝送するための手段と、
を含む、ピアツーピア・リモート・コピー記憶システム。
【請求項１１】
前記第１の書き込みコマンドの発行に先立って、「転送可能」コマンドを使用不可にするための手段をさらに含む、請求項１０に記載のシステム。
【請求項１２】
前記第１のペイロード・バッファ内で前記第１の拡張ＣＤＢを受信するための手段と、
前記第１のデータ・バッファ内で前記第１のデータ・ブロックを受信するための手段と、
第１の書き込みオペレーションを完了するための手段と、
前記第１の書き込みオペレーションの完了を確認する第１のステータス・インジケータを、前記２次記憶制御機構から前記１次記憶制御機構へと伝送するための手段と、
をさらに含む、請求項１０に記載のシステム。
【請求項１３】
前記第１の書き込みコマンドを発行するための前記手段が、前記１次記憶制御機構から前記２次記憶制御機構への第２のデータ・ブロックの転送に関する第２の書き込みコマンドを発行するための手段を含み、
書き込み制御情報をパッケージングするための前記手段が、書き込み制御情報をＦＣＰコマンドと共に第２の拡張ＣＤＢ内にパッケージングするための手段を含み、
前記第１の拡張ＣＤＢを伝送するための前記手段が、前記第２の拡張ＣＤＢを前記１次記憶制御機構から前記２次記憶制御機構へと伝送するための手段を含み、
前記第１のデータ・ブロックを伝送するための前記手段が、前記第２のデータ・ブロックを前記１次記憶制御機構から前記２次記憶制御機構へと伝送するための手段を含む、
請求項１０に記載のシステム。
【請求項１４】
前記第２の拡張ＣＤＢを受信するための第２のペイロード・バッファと、
前記第２のデータ・ブロックを受信するための第２のデータ・バッファと、
をさらに含む、請求項１３に記載のシステム。
【請求項１５】
前記第１の書き込みオペレーションを完了するための前記手段が、第２の書き込みオペレーションを完了するための手段を含み、
第１のステータス・インジケータを伝送するための前記手段が、前記第２の書き込みオペレーションの完了を確認する第２のステータス・インジケータを、前記２次記憶制御機構から前記１次記憶制御機構へと伝送するための手段を含む、
請求項１４に記載のシステム。
【請求項１６】
前記第２のペイロード・バッファおよび前記第２のデータ・バッファが事前割り振りされる、請求項１５に記載のシステム。
【請求項１７】
前記第２のペイロード・バッファおよび前記第２のデータ・バッファが、前記２次記憶制御機構による前記第１の拡張ＣＤＢおよび前記第１のデータ・ブロックの受信後に割り振りされる、請求項１５に記載のシステム。
【請求項１８】
前記第２の拡張ＣＤＢの伝送と前記第２のデータ・ブロックの伝送とが、前記１次記憶制御機構によって前記第１のステータス・インジケータが受信される前に開始される、請求項１３に記載のシステム。
【請求項１９】
第１のペイロード・バッファを２次記憶制御機構内で事前割り振りするように指示するための手段と、
第１のデータ・バッファを前記２次記憶制御機構内で事前割り振りするように指示するための手段と、
前記２次記憶制御機構への第１のデータ・ブロックの転送に関する第１の書き込みコマンドを発行するための手段と、
書き込み制御情報をファイバ・チャネル・プロトコル（ＦＣＰ）コマンドと共に第１の拡張コマンド記述子ブロック（ＣＤＢ）内にパッケージングするための手段と、
前記第１の拡張ＣＤＢを前記２次記憶制御機構へと伝送するための手段と、
前記第１のデータ・ブロックを前記第１のデータ・バッファへと伝送するための手段と、
を含む、ピアツーピア・リモート・コピー１次記憶制御機構。
【請求項２０】
前記第１の書き込みコマンドの発行に先立って、「転送可能」コマンドを使用不可にするための手段をさらに含む、請求項１９に記載の１次記憶制御機構。
【請求項２１】
第１の書き込みオペレーションの完了を確認する第１のステータス・インジケータを前記２次記憶制御機構から受信するための手段をさらに含む、請求項１９に記載の１次記憶制御機構。
【請求項２２】
前記第１の書き込みコマンドを発行するための前記手段が、前記２次記憶制御機構への第２のデータ・ブロックの転送に関する第２の書き込みコマンドを発行するための手段を含み、
書き込み制御情報をパッケージングするための前記手段が、書き込み制御情報をＦＣＰコマンドと共に第２の拡張ＣＤＢ内にパッケージングするための手段を含み、
前記第１の拡張ＣＤＢを伝送するための前記手段が、前記第２の拡張ＣＤＢを前記２次記憶制御機構へと伝送するための手段を含み、
前記第１のデータ・ブロックを伝送するための前記手段が、前記第２のデータ・ブロックを前記２次記憶制御機構へと伝送するための手段を含む、
請求項１９に記載の１次記憶制御機構。
【請求項２３】
前記第１の書き込みオペレーションを完了するための前記手段が、第２の書き込みオペレーションを完了するための手段を含み、
第１のステータス・インジケータを伝送するための前記手段が、前記第２の書き込みオペレーションの完了を確認する第２のステータス・インジケータを、前記２次記憶制御機構から前記１次記憶制御機構へと伝送するための手段を含む、
請求項２２に記載の１次記憶制御機構。
【請求項２４】
前記第２のペイロード・バッファおよび前記第２のデータ・バッファが事前割り振りされる、請求項２３に記載の１次記憶制御機構。
【請求項２５】
前記第２のペイロード・バッファおよび前記第２のデータ・バッファが、前記２次記憶制御機構による前記第１の拡張ＣＤＢおよび前記第１のデータ・ブロックの受信後に割り振りされる、請求項２３に記載の１次記憶制御機構。
【請求項２６】
前記第２の拡張ＣＤＢの伝送と前記第２のデータ・ブロックの伝送とが、前記１次記憶制御機構によって前記第１のステータス・インジケータが受信される前に開始される、請求項２２に記載の１次記憶制御機構。
【請求項２７】
プログラム可能コンピュータで使用可能なコンピュータ読み取り可能媒体として記録されたコンピュータ・プログラムであって、前記コンピュータ・プログラムはＰＰＲＣ環境でデータを転送するために具体化されたコンピュータ読み取り可能コードを有し、前記コンピュータ読み取り可能コードは、
少なくとも第１のペイロード・バッファを２次記憶制御機構で事前割り振りするための命令と、
少なくとも第１のデータ・バッファを前記２次記憶制御機構で事前割り振りするための命令と、
１次記憶制御機構から前記２次記憶制御機構への第１のデータ・ブロックの転送に関する第１の書き込みコマンドを発行するための命令と、
書き込み制御情報をファイバ・チャネル・プロトコル（ＦＣＰ）コマンドと共に第１の拡張コマンド記述子ブロック（ＣＤＢ）内にパッケージングするための命令と、
前記第１の拡張ＣＤＢを前記１次記憶制御機構から前記２次記憶制御機構へと伝送するための命令と、
前記第１のデータ・ブロックを前記１次記憶制御機構から前記２次記憶制御機構へと伝送するための命令と、
を含む、コンピュータ・プログラム。
【請求項２８】
前記第１の書き込みコマンドの発行に先立って、「転送可能」コマンドを使用不可にするための命令をさらに含む、請求項２７に記載のコンピュータ・プログラム。
【請求項２９】
第１のペイロード・バッファ内で前記第１の拡張ＣＤＢを受信するための命令と、
第１のデータ・バッファ内で前記第１のデータ・ブロックを受信するための命令と、
第１の書き込みオペレーションを完了するための命令と、
前記第１の書き込みオペレーションの完了を確認する第１のステータス・インジケータを、前記２次記憶制御機構から前記１次記憶制御機構へと伝送するための命令と、
をさらに含む、請求項２７に記載のコンピュータ・プログラム。
【請求項３０】
前記１次記憶制御機構から前記２次記憶制御機構への第２のデータ・ブロックの転送に関する第２の書き込みコマンドを発行するための命令と、
書き込み制御情報をＦＣＰコマンドと共に第２の拡張ＣＤＢ内にパッケージングするための命令と、
前記第２の拡張ＣＤＢを前記１次記憶制御機構から前記２次記憶制御機構へと伝送するための命令と、
前記第２のデータ・ブロックを前記１次記憶制御機構から前記２次記憶制御機構へと伝送するための命令と、
をさらに含む、請求項２７に記載のコンピュータ・プログラム。
【請求項３１】
第２のペイロード・バッファ内で前記第２の拡張ＣＤＢを受信するための命令と、
第２のデータ・バッファ内で前記第２のデータ・ブロックを受信するための命令と、
第２の書き込みオペレーションを完了するための命令と、
前記第２の書き込みオペレーションの完了を確認する第２のステータス・インジケータを、前記２次記憶制御機構から前記１次記憶制御機構へと伝送するための命令と、
をさらに含む、請求項３０に記載のコンピュータ・プログラム。
【請求項３２】
前記第２のペイロード・バッファおよび前記第２のデータ・バッファが事前割り振りされる、請求項３１に記載のコンピュータ・プログラム。
【請求項３３】
前記第２のペイロード・バッファおよび前記第２のデータ・バッファが、前記２次記憶制御機構による前記第１の拡張ＣＤＢおよび前記第１のデータ・ブロックの受信後に割り振りされる、請求項３１に記載のコンピュータ・プログラム。
【請求項３４】
前記第２の拡張ＣＤＢの伝送と前記第２のデータ・ブロックの伝送とが、前記１次記憶制御機構による前記第１のステータス・インジケータが受信される前に開始される、請求項３１に記載のコンピュータ・プログラム。
【請求項３５】
前記第１のデータ・ブロックをストレージ・ドライブに伝送するための命令と、
前記第１のペイロード・バッファおよび前記第１のデータ・バッファを解放するための命令であって、これにより後続の拡張ＣＤＢおよびデータ・ブロックが前記第１のペイロード・バッファおよび第１のデータ・バッファ内でそれぞれ受信可能となる、前記解放するための命令と、
をさらに含む、請求項２７に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にピアツーピア・リモート・コピー（ＰＰＲＣ）記憶システムに関し、とりわけ、１次記憶制御機構と２次記憶制御機構との間の書き込みオペレーションを完了させるために必要なラウンド・トリップの数を削減することに関する。
【背景技術】
【０００２】
データの保全性は、大規模コンピュータ・データ・システムにおける重要な要素である。したがって、様々なタイプの障害時にデータの損失を防ぐための、バックアップ・データ記憶システムが開発されてきた。こうしたバックアップ・システムの１つが「ピアツーピア・リモート・コピー」（ＰＰＲＣ）と呼ばれるものである。図１に示されるように、ＰＰＲＣシステム１００では、ホスト・デバイス１１０によって生成されたデータが１次記憶機構１２０に格納される。データのコピーも、ファイバ・チャネル・ネットワーク１３０などを介して伝送され、２次記憶機構１４０に格納される。ネットワーク相互接続がフレキシブルであるため、１次機構１２０および２次機構１４０はホスト１１０から物理的に遠隔に配置することができる。またデータ・セキュリティのために、１次機構１２０および２次機構１４０は物理的に互いに離して配置されるため、単一の災害が１次機構１２０および２次機構１４０の両方に同時に損害を与える確率が低くなる。
【０００３】
１次機構１２０と２次機構１４０を離すことができる距離は、様々な要素に応じて決まる。重要な要素の１つが、各Ｉ／Ｏオペレーション（書き込みオペレーションなど）の合計応答時間、すなわち、すべてのハンドシェークを含む、１次記憶機構１２０から２次記憶機構１４０へと転送されることになるデータ・ブロックに必要な時間である。典型的には、応答時間が長くなるほど、実際に２つの機構を離すことができる距離は短くなる。さらに、応答時間を決定する重要な要素は、データの転送を完了させるために実行しなければならないコマンドおよびデータのラウンド・トリップ数である。必要なラウンド・トリップが多いほど有効転送速度が遅くなることが、理解されるであろう。
【０００４】
こうしたラウンド・トリップの１つは、書き込みオペレーションに先立って１次機構１２０および２次機構１４０が「転送可能（ｔｒａｎｓｆｅｒ  ｒｅａｄｙ）」信号を交換する際に発生する。１次機構１２０（イニシエータとも呼ばれる）は、データの転送準備が整ったことを示すメッセージを２次機構１４０（ターゲットとも呼ばれる）に伝送する。１次機構１２０が２次機構１４０から適切な肯定応答を受け取るまで、データの転送を開始することはできない。いくつかの項目の中でも特に肯定応答は、２次機構が必要なバッファを作成し、データを受信する準備が整ったことを示す。こうした準備はなんらかの遅延を引き起こす可能性があり、ハンドシェークそれ自体も同様に何らかの遅延を発生させる。したがってこうした転送は、２回のラウンド・トリップ（転送可能交換および後続の受信肯定応答を伴うデータの転送）を必要とし、付随した遅延を発生させる。
【０００５】
他のラウンド・トリップは、データそれ自体が転送される前に、追加の制御情報が１次機構１２０から２次機構１４０に転送される際に発生する。こうした追加の制御情報は、コマンド記述子ブロック（ＣＤＢ）などの従来の書き込みコマンド内に収められない可能性がある。したがって、制御情報を別々に転送するために、他のラウンド・トリップが必要である。
【０００６】
他の要素が、さらに他のラウンド・トリップを必要とする可能性がある。従来のファイバ・チャネル・ネットワークを介したデータの転送は３回から４回のラウンド・トリップを伴う可能性があり、１次記憶機構１２０と２次記憶機構１４０の間の距離は約１００キロメートルに限定される可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、１次機構と２次機構との間の距離を長くするためには、データ転送の応答時間を短くすることが依然として望ましい。
【課題を解決するための手段】
【０００８】
本発明は、ＰＰＲＣ環境においてデータ転送の効率を上げるための方法、システム、およびコンピュータ・プログラムを提供する。３つの特徴のいずれかまたはすべてをインプリメントすることが可能であり、そのそれぞれがハンドシェーク、データ、および制御情報の交換に必要なラウンド・トリップの数を削減する。第１の特徴は、通常は１次記憶コントローラと２次記憶コントローラとの間に発生する「転送可能」肯定応答を使用不可にすることを含む。こうした肯定応答を使用不可にすることが、１回のラウンド・トリップを不要にする。
【０００９】
第２の特徴は、２次記憶コントローラ内でペイロードおよびデータ・バッファを事前割振りすることを含む。バッファの事前割振りによって、ペイロード情報およびデータ・ブロックを受け取ると同時にバッファを使用できるようにすることが可能であり、それによって応答時間が削減される。第３の特徴は、拡張されたコマンド記述子ブロック（ＣＤＢ）において書き込みコマンドと共に書き込み制御情報をパッケージングすることを含む。こうしたステップによって、書き込み制御情報を別々に伝送する必要がなくなった。ＣＤＢは、データ・ブロックと共に１次記憶コントローラから２次記憶コントローラへと伝送され、それぞれ事前に割り振られたバッファ内に配置される。
【００１０】
データを２次へパイプライン化することが可能であり、すなわち、以前のデータ・ブロックが受信された旨の２次からの肯定応答を待たずに、１次からデータ・ブロックを伝送することができる。
【００１１】
データ転送の応答時間を向上させると、１次と２次の記憶コントローラ間の距離も長くすることができる。
【発明を実施するための最良の形態】
【００１２】
図２は、本発明がインプリメント可能なデータ記憶システム２００を示すブロック図である。システム２００は、ホスト・デバイス２１０がストレージ・デバイス（ディスク・ドライブのアレイなど）２２８上に格納するために１次記憶コントローラ２２０にデータを伝送する、ＰＰＲＣシステムとすることができる。加えて１次記憶コントローラ２２０は、ネットワーク２３０を介して、ストレージ・デバイス２４８上に格納するためにリモートの２次記憶コントローラ２４０にデータのコピーを転送する。１次記憶コントローラ２２０は、２次記憶コントローラ２４０へのデータのコピーの転送に関する命令を実行するためのプロセッサ２２２をさらに含む。２次記憶コントローラは、着信コマンドおよび制御情報を保持するためのペイロード・バッファ２４４と、着信データを保持するためのデータ・バッファ２４６とに割り振ることが可能な、メモリも含む。２次記憶コントローラ２４０内のプロセッサ２４２は、バッファへのメモリ・スペースの割り振りとデータの受信および最終格納とに関する命令を実行する。
【００１３】
図３の流れ図を参照すると、オペレーション時、ログオン・プロセス（ステップ３００）中に、１次記憶コントローラ２２０および２次記憶コントローラ２４０内のプロセッサ２２２および２４２が、オプションで「転送可能」肯定応答要件を使用不可にし（ステップ３０２）、その旨の肯定応答を交換する（ステップ３０４）。このステップが実行されると、２つの機構間でハンドシェークのラウンド・トリップが１回不要になる。その後２次コントローラ２４０は、そのメモリの一部をペイロード・バッファ２４４に事前割り振りするように指示される（ステップ３０６）。各ペイロード・バッファは、書き込み制御情報ならびに書き込みコマンドそれ自体を含む、ＰＰＲＣファイバ・チャネル・プロトコル（ＦＣＰ）コマンドを保持するだけの十分なサイズである。以下で説明するように、両方のデータ構造を拡張コマンド記述子ブロック（ＣＤＢ）内に「パッケージング」して、２次記憶コントローラ２４０への実際のデータ転送専用ではない、他のラウンド・トリップを不要にすることができる。２次コントローラ２４０は、メモリの一部をデータ・バッファ２４６に事前に割り振るようにも指示され（ステップ３０８）、それぞれがＰＰＲＣ書き込みデータを保持するだけの十分なサイズである。事前に割り振られる（すなわち、コントローラによってデータ・ブロックが実際に受信される前に取っておく）各タイプのバッファの数は重要ではないが、コストおよび使用可能メモリ（より少ないバッファが事前に割り振られることになる）と性能（より多くのバッファが事前に割り振られることになる）とのバランスを取ることによって、決めることができる。
【００１４】
１次コントローラ２２０および２次コントローラ２４０は、１回の書き込みオペレーションで転送可能なデータのサイズも確立する（ステップ３１０）。本明細書では、転送されることになるデータの単位を「ブロック」と呼ぶものとする。
【００１５】
１次記憶コントローラ２２０が、書き込みオペレーションを開始するためにＰＰＲＣ書き込みコマンドを発行すると（ステップ３１２）、１次記憶コントローラ２２０は、２次記憶コントローラ２４０に伝送されることになる書き込み制御命令５０２ならびに書き込みコマンド５０４を含めるために、拡張ＣＤＢ  ５００（図５）を使用する（ステップ３１４）。従来のＣＤＢ  ４００（図４）は、書き込みコマンド４０４のみを伝送するために使用され、サイズは約１６バイトである。書き込みオペレーションの応答時間を減らし、データ転送の効率を上げるために、約８０から９６バイトの拡張ＣＤＢ  ５００が採用される。拡張ＣＤＢ  ５００は、１次記憶コントローラ２２０によって２次記憶コントローラ２４０へと伝送されるＦＣＰコマンド内部で搬送される（ステップ３１６）。その後、２次記憶コントローラ２４０から何の「可能」信号も受け取ることなく、１次記憶コントローラ２２０はデータ・ブロック５１０（図６）を２次記憶コントローラ２４０に伝送する（ステップ３１８）。
【００１６】
１次記憶コントローラ２２０からＦＣＰコマンドを受信すると（ステップ３２０）、２次記憶コントローラ２４０のプロセッサ２４２は、そのＦＣＰコマンドをペイロード・バッファ２４４のうちの１つに配置するように指示する（ステップ３２２）。データ・ブロック５１０が受信され（ステップ３２４）、データ・バッファ２４６のうちの１つに配置される（ステップ３２６）。その後、ペイロード・バッファ２４４およびデータ・バッファ２４６の両方のコンテンツが、２次記憶コントローラ２４０内部で実行中のＰＰＲＣアプリケーションによって処理される（ステップ３２８）。データ・ブロック５１０は、最終的にストレージ・デバイス２４８に格納され（ステップ３３０）、これによって書き込みオペレーションが完了する。書き込みオペレーションが完了すると、２次記憶コントローラ２４０はステータス信号を１次記憶コントローラ２２０に返送し（ステップ３３２）、交換を閉じる（ステップ３３４）。その後、２次記憶コントローラ２４０は、後続の再使用のためにペイロードおよびデータ・バッファを解放する（ステップ３３６）。１次記憶コントローラ２２０はステータス信号を受信した場合（ステップ３３８）、交換も閉じる（ステップ３４０）。
【００１７】
本発明はデータの「パイプ化」をサポートしているため、１次コントローラ２２０のステータス信号の受信に先立ち、１次コントローラ２２０は、書き込み制御情報および書き込みコマンドが第２の拡張ＣＤＢにパッケージングされた第２のＦＣＰコマンドを作成することが可能である（ステップ３４２）。その後、第２のＦＣＰコマンドおよび関連するデータ・ブロックを２次コントローラ２４０に伝送することができる（ステップ３４４）。２次コントローラ２４０が受信するとすぐに（ステップ３４６）、第２のＦＣＰコマンドはペイロード・バッファ内に配置され（ステップ３４８）、第２のデータ・ブロックはデータ・バッファ内に配置される（ステップ３５０）。第２のＦＣＰコマンドが配置されるバッファは、第２のペイロード・バッファとする（第１のペイロード・バッファとは異なる）か、または第１のペイロード・バッファとする（第１のペイロード・バッファが以前に解放されている場合）ことができる。さらに、第１のペイロード・バッファが以前に解放されておらず、使用可能な他のペイロード・バッファがない（すなわち、事前割振りされなかった）場合、プロセッサ２４２は、追加のメモリ・スペースを第２のＦＣＰコマンドの受信に使用可能な追加のペイロード・バッファとして割り振ることが可能である。同様に第２のデータ・ブロックは、（解放された後の）第１のデータ・バッファ、他の事前割振りされたデータ・バッファ、または新しく割り振られたデータ・バッファとすることが可能な、データ・バッファ内に受信される。
【００１８】
転送可能肯定応答の使用不可化、バッファの事前割り振り、および書き込みコマンドを伴う書き込み制御情報の拡張ＣＤＢへのパッケージングという、３つのステップそれぞれが独自に、データ転送に必要なラウンド・トリップの数を削減する。必要なラウンド・トリップの数は、全体として１回まで削減することが可能であり、これにより、書き込みオペレーションの応答時間の大幅な削減、合計スループットの向上、あるいは１次記憶コントローラ２２０と２次記憶コントローラ２４０とを分離することが可能な距離の増加、またはそれらすべてが可能となる。実際に、分離距離は約４００ｋｍまで増加することができる。
【００１９】
以上、本発明の目的について、本明細書に開示された諸実施形態を介して完全に理解してきた。当業者であれば、本発明に不可欠な機能から逸脱することなく本発明の様々な態様が達成可能であることを理解されよう。特定の諸実施形態は例示的なものであり、添付の特許請求の範囲に記載された本発明の範囲を限定することを意味するものではない。
【図面の簡単な説明】
【００２０】
【図１】例示的なＰＰＲＣデータ記憶システムを示すブロック図である。
【図２】本発明がインプリメント可能なデータ記憶システムを示すブロック図である。
【図３】本発明の方法を示す流れ図である。
【図４】例示的なコマンド記述子ブロックを示す図である。
【図５】例示的な拡張コマンド記述子ブロックを示す図である。
【図６】例示的なデータ・ブロックを示す図である。
【図１】
2007511844.tif 000003
【図２】
2007511844.tif 000004
【図３】
2007511844.tif 000005
【図４】
2007511844.tif 000006
【図５】
2007511844.tif 000007
【図６】
2007511844.tif 000008
【国際調査報告】
2007511844.tif 000009
2007511844.tif 000010
2007511844.tif 000011