(57)【特許請求の範囲】
【請求項１】
シリアル接続ＳＣＳＩ（ＳＡＳ）イニシエータとシリアル・アドバンスド・テクノロジー・アタッチメント（ＳＡＴＡ）ターゲットデバイスの間でＳＡＳエキスパンダを介してデータを転送する方法であって、
ＤＭＡ転送を開始するために、前記ＳＡＳイニシエータにおいて前記ＳＡＴＡターゲットデバイスからＤＭＡ  ＳＥＴＵＰフレーム情報構造（ＦＩＳ）を受け取るステップと、
前記ＤＭＡ  ＳＥＴＵＰ  ＦＩＳの受領に応答して前記ＳＡＳイニシエータから前記ＳＡＴＡターゲットデバイスにデータを送出するステップとを含み、前記送出ステップが、前記送出ステップ中に、またはこれに続いて、前記転送に関連するＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの前記ＳＡＳイニシエータにおける受領を待機しないことを特徴とする方法。
【請求項２】
前記ＳＡＳイニシエータがＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを受け取らないように、前記ＳＡＳエキスパンダ内で前記ＳＡＴＡターゲットデバイスから受け取った前記ＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを破棄するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記ＳＡＳエキスパンダが前記ＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを破棄するように強化されているかどうかを判定するために、前記ＳＡＳイニシエータから前記ＳＡＳエキスパンダに問い合わせるステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記ＤＭＡ  ＳＥＴＵＰ  ＦＩＳの受領に続いて、前記ＳＡＳイニシエータにおいて、前記ＳＡＴＡターゲットデバイスから前記ＳＡＳエキスパンダを介して受け取った第１のＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領を待機するステップと、
Ｉ／Ｏ要求に関連するすべてのデータの送出が完了するまで、データを送る前記ステップを繰り返すステップと、
前記ＳＡＳイニシエータが後続のＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを受け取らないように、前記第１のＤＭＡ  ＡＣＴＩＶＡＴＥの受領に続いて前記ＳＡＴＡターゲットデバイスから受け取った前記後続のＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを前記ＳＡＳエキスパンダ内で破棄するステップとをさらに含む、請求項１に記載の方法。
【請求項５】
前記ＤＭＡ  ＳＥＴＵＰ  ＦＩＳがＡＵＴＯ−ＡＣＴＩＶＡＴＥ標識を含み、
前記ＡＵＴＯ−ＡＣＴＩＶＡＴＥ標識がＡＵＴＯ−ＡＣＴＩＶＡＴＥが有効でないことを示しているかどうかを判定するステップと、
ＡＵＴＯ−ＡＣＴＩＶＡＴＥが有効でないという判定に応答して、前記送出ステップの前に前記ＳＡＴＡターゲットデバイスからの第１のＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領を待機するステップとをさらに含む、請求項１に記載の方法。
【請求項６】
前記破棄ステップが、
前記ＳＡＳエキスパンダが強化されているという判定に応答して、前記ＳＡＳイニシエータが前記後続のＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを受け取らないように、前記ＳＡＳエキスパンダ内で前記後続のＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを破棄するステップと、
前記ＳＡＳエキスパンダが強化されていないという判定に応答して前記ＳＡＳイニシエータ内で前記後続のＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを破棄するステップとをさらに含む、請求項３に記載の方法。
【請求項７】
シリアル接続ＳＣＳＩ（ＳＡＳ）エキスパンダ（１０４）であって、
前記エキスパンダ（１０４）をシリアル接続ＳＣＳＩ／シリアル・アドバンスド・テクノロジー・アタッチメント・トンネリング・プロトコル（ＳＡＳ／ＳＴＰ）イニシエータ（１０２）に連結するように適合された第１のインタフェースと、
前記エキスパンダ（１０４）をＳＡＴＡターゲットデバイス（１０６）と結合するように適合された第２のインタフェースと、
前記ＳＡＳ／ＳＴＰイニシエータ（１０２）から前記第１のインタフェースを介して受け取ったデータを前記第２のインタフェースを介して前記ＳＡＴＡターゲットデバイス（１０６）に転送するように適合されたブリッジロジック（１１０）とを備え、前記データは、コマンド（ＣＯＭＭＡＮＤ  ＦＩＳ）を含むＲｅｇｉｓｔｅｒフレーム情報構造に関連し、そして、前記ＳＡＳ／ＳＴＰイニシエータは、前記データを送出する前の前記データ転送に関連するＤＭＡ  ＡＣＴＩＶＥ  ＦＩＳの受領を待機しないものであり、さらに、
前記ブリッジロジック（１１０）がさらに、前記ＣＯＭＭＡＮＤ  ＦＩＳに関連する前記データの転送が完了するまで、前記第２のインタフェースを介して前記ＳＡＴＡターゲットデバイス（１０６）から受け取ったＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを破棄するように適合されることを特徴とするＳＡＳエキスパンダ（１０４）。
【請求項８】
前記ブリッジロジック（１１０）がさらに、前記ＳＡＴＡターゲットデバイス（１０６）から受け取ったＤＭＡ  ＳＥＴＵＰ  ＦＩＳを前記ＳＡＳ／ＳＴＰイニシエータ（１０２）に転送するように適合され、さらに、前記ＤＭＡ  ＳＥＴＵＰ  ＦＩＳがＡＵＴＯ−ＡＣＴＩＶＡＴＥ標識を含むかどうかを判定するように適合され、
前記ブリッジロジック（１１０）がさらに、前記ＤＭＡ  ＳＥＴＵＰ  ＦＩＳの受領に続いて受け取った第１のＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを前記ＳＡＳ／ＳＴＰ  イニシエータ（１０２）に回送するように適合された、請求項７に記載の前記エキスパンダ（１０４）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にストレージシステムの性能に関し、より詳細には、イニシエータ／ホストデバイスとシリアル・アドバンスド・テクノロジー・アタッチメント（ＳＡＴＡ）ターゲットデバイスの間の通信のスループットを改善するための方法および装置に関する。
【背景技術】
【０００２】
ストレージシステムでは、ホストシステムは、１つまたは複数のストレージデバイスと通信する。ＳＡＴＡストレージシステムでは、イニシエータ／ホストデバイス（たとえば、ホストシステム）は、ＳＡＴＡターゲットデバイス（たとえば、ディスクドライブなどのＳＡＴＡストレージデバイス）と通信する。ＳＡＴＡプロトコルは、イニシエータとターゲットの間に連結するパラレル・アドバンスド・テクノロジー・アタッチメント（ＰＡＴＡ）の高速で低価格の代替物として発展した。ＰＡＴＡでは、ホスト（イニシエータ）が、ターゲット（ディスク）のデータ受け取り能力をオーバーランさせないように、ホストからディスクへのダイレクト・メモリ・アクセス（ＤＭＡ）による高速転送の動作を調整する必要があった。ＰＡＴＡディスクドライブでは典型的には、ＤＭＡ制御下でホストから高速でデータを受け取るためのバッファメモリが限られていた。これらの転送を調整するために、ＰＡＴＡ規格は、ディスクドライブがホストに、データのＤＭＡ転送をバッファの最大サイズまで受け取ることが可能であるという信号を送るハンドシェイク・プロトコルを含んでいた（「ＤＭＡ  ＳＥＴＵＰ」メッセージがＰＡＴＡディスクドライブからホストに送信される）。次に、ディスクは、ＤＭＡ  ＳＥＴＵＰ信号で指定されたバッファの最大サイズまでのＤＭＡ転送の準備ができたことを示す「ＤＭＡ  ＡＣＴＩＶＡＴＥ」信号をホストに送信する。次いで、ホストは、そのＤＭＡ転送を実施してから、ディスクドライブからの、別のＤＭＡ転送の準備ができたことを示す次の信号（次のＤＭＡ  ＡＣＴＩＶＡＴＥ）を待機する。このハンドシェイクは、ホストからディスクへの転送全体が完了するまで継続された。
【０００３】
ＳＡＴＡが発表されたとき、ＳＡＴＡ規格は、ＳＡＴＡターゲットデバイス（たとえば、ディスクドライブ）からイニシエータデバイス（たとえば、ホストシステム）に送られた同じＤＭＡ  ＳＥＴＵＰメッセージおよびＤＭＡ  ＡＣＴＩＶＡＴＥメッセージを含むものであった。これらのメッセージは、ＳＡＴＡプロトコルではフレーム情報構造（ＦＩＳ）として送られ、ＳＡＴＡ規格のネイティブ・コマンド・キューイング（ＮＣＱ）の面で扱われる。ＳＡＴＡ規格は当業者によく知られており、一般にｗｗｗ．ｓｅｒｉａｌａｔａ．ｏｒｇで入手可能である。ＳＡＴＡプロトコルはまた、ＳＡＳイニシエータ（すなわち、ＳＡＳ／ＳＴＰイニシエータ）でＳＡＴＡトンネリング・プロトコル（ＳＴＰ）を使用することによってシリアル接続ＳＣＳＩ（ＳＡＳ）ドメインで使用することができる。ＳＡＳおよびＳＴＰの仕様は当業者によく知られており、一般にｗｗｗ．ｔ１０．ｏｒｇで入手可能である。
【０００４】
ＳＡＴＡプロトコルでは、各ＤＭＡ  ＡＣＴＩＶＡＴＥメッセージに関連する最大のＤＭＡ転送は８キロバイトと規格化されている。このＤＭＡ関連ハンドシェイク機構は、８ＫＢの各ＤＭＡ転送は次のＤＭＡ  ＡＣＴＩＶＡＴＥの受領を待機するように遅延されるので、イニシエータ／ホストの性能を悪化させる。さらに、イニシエータデバイスは、各ＤＭＡ  ＡＣＴＩＶＡＴＥメッセージの受領に応答してイニシエータデバイスによる次の８ＫＢの転送のためにＤＭＡ回路を起動および終了するようにＤＭＡ転送の管理上のセットアップおよび構成を複数回実施するために必要とされることがある。イニシエータ／ホストにおけるこの追加オーバーヘッド処理によって、ＳＡＴＡストレージシステムの全体的な性能が低下する。
【０００５】
回転ディスクドライブを含む、現在の多くのＳＡＴＡターゲットデバイスは、ＳＡＴＡ通信リンクの定格最高速度（たとえば、３ＧＢ／秒または約３００ＭＢ／秒）で８ＫＢよりはるかに多くを受け取ることが可能である。またさらに、ＳＡＴＡ半導体記憶装置（たとえば、ＲＡＭディスクまたはフラッシュドライブ）は、ＳＡＴＡ通信リンクの定格速度で連続的にデータを受け取ることができる。したがって、イニシエータのＤＭＡ  ＡＣＴＩＶＡＴＥの受領待機およびＤＭＡ回路のあらゆる関連する再構成のオーバーヘッド処理により、ＳＡＴＡストレージシステムの性能が重大な不利益を被ることがある。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】ＳＡＴＡ規格（ｗｗｗ．ｓｅｒｉａｌａｔａ．ｏｒｇ）
【非特許文献２】ＳＡＳおよびＳＴＰの仕様（ｗｗｗ．ｔ１０．ｏｒｇ）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
したがって、ＳＡＴＡストレージシステムの性能を改善することは、現在も続いている課題である。
【課題を解決するための手段】
【０００８】
本発明は、ＳＡＴＡターゲットデバイスとの通信の性能を強化するための方法および装置を提供することによって、上記および他の問題を解決し、それにより有用な技術の状態を前進させる。本発明の特徴および態様は、ＳＡＴＡコントローラがＳＡＴＡターゲットにデータを連続的に転送できるように、ＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを無視（たとえば、破棄）するようにコントローラを変えることを可能にする。例示的な一実施形態では、コントローラは、拡張（ｅｎｈａｎｃｅｄ）ＳＡＳエキスパンダがＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを破棄するようにエキスパンダと連結された修正（ｍｏｄｉｆｉｅｄ）ＳＡＳ／ＳＴＰイニシエータを備え、このイニシエータは、エキスパンダを介してのＳＡＴＡターゲットデバイスへのデータ転送を継続するためにＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを必要としない。別の例示的な実施形態では、ネイティブＳＡＴＡホストはＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領を必要としないように強化され、ＳＡＴＡターゲットデバイスはＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを送信しないように強化される。このような例示的な諸実施形態では、イニシエータは、データ転送を継続するためにＤＭＡ  ＡＣＴＩＶＡＴＥの受領を待機する必要はなく、むしろＳＡＴＡターゲットデバイスの受信バッファがオーバーフローしないことを確実にするために他の標準的なＳＡＴＡプロトコルのフロー制御方法を用いる。
【０００９】
本発明の一態様では、ＳＡＳイニシエータとＳＡＴＡターゲットデバイスの間でＳＡＳエキスパンダを介してデータを転送するための方法が提供される。この方法は、ＳＡＳイニシエータにおいてＳＡＴＡターゲットデバイスからＤＭＡ  ＳＥＴＵＰ  ＦＩＳを受け取ること、およびこのＤＭＡ  ＳＥＴＵＰ  ＦＩＳの受領に応答してＳＡＳイニシエータからＳＡＴＡターゲットデバイスにデータを送ることを含む。送出ステップでは、この送出ステップ中の、またはこれに続いて、ＳＡＳイニシエータにおけるＳＡＴＡターゲットデバイスからのＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領を待機しない。
【００１０】
本発明の別の態様は、ＳＡＴＡターゲットデバイスと連結されたネイティブＳＡＴＡホストを備えるシステムで動作可能な方法を提供する。ＳＡＴＡホストとＳＡＴＡターゲットデバイスの間でデータを転送するための方法である。この方法は、ＳＡＴＡホストにおいてＳＡＴＡターゲットデバイスからＤＭＡ  ＳＥＴＵＰフレーム情報構造（ＦＩＳ）を受け取ること、およびこのＤＭＡ  ＳＥＴＵＰ  ＦＩＳの受領に応答してＳＡＴＡターゲットデバイスにデータを送ることを含む。ＳＡＴＡホストは、送出ステップを完了するためのＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領を待機しない。ＳＡＴＡターゲットデバイスは、送出ステップを完了するためのＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを送らない。
【００１１】
本発明のさらに別の態様は、ＳＡＴＡストレージシステムで動作可能な方法を提供する。このストレージシステムは、ストレージコントローラと、ＳＡＴＡターゲットデバイスとを備える。この方法は、コマンド（ＣＯＭＭＡＮＤ  ＦＩＳ）を含むＲｅｇｉｓｔｅｒ  ＦＩＳをストレージコントローラからＳＡＴＡターゲットデバイスに送ることを含む。ＣＯＭＭＡＮＤ  ＦＩＳは、ＳＡＴＡターゲットデバイスに送られるべきデータに関連する。方法はまた、ＣＯＭＭＡＮＤ  ＦＩＳの送出に応答してＳＡＴＡターゲットデバイスからＤＭＡ  ＳＥＴＵＰ  ＦＩＳをストレージコントローラにおいて受け取ること、およびＤＭＡ  ＳＥＴＵＰ  ＦＩＳがＡＵＴＯ−ＡＣＴＩＶＡＴＥを要求する標識を含むかどうかを判定することを含む。ＤＭＡ  ＳＥＴＵＰ  ＦＩＳがＡＵＴＯ−ＡＣＴＩＶＡＴＥ標識を含まないという判定を受けて、方法は、ＳＡＴＡターゲットデバイスからの第１のＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領を待機することも含む。第１のＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領に応答して、および／またはＤＭＡ  ＳＥＴＵＰ  ＦＩＳがＡＵＴＯ−ＡＣＴＩＶＡＴＥ標識を含むという判定を受けて、方法は、ストレージコントローラのＤＭＡ回路を使用してストレージコントローラからＳＡＴＡターゲットデバイスにＤＡＴＡ  ＦＩＳを送ることをさらに含み、このＤＡＴＡ  ＦＩＳはＣＯＭＭＡＮＤ  ＦＩＳに関連するデータの一部分を含む。ＤＡＴＡ  ＦＩＳを送るステップは、ＳＡＴＡターゲットデバイスからのＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領を検出すること、およびこのＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領の検出に応答してＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを破棄することをさらに含む。ＤＡＴＡ  ＦＩＳを送るステップは、ＣＯＭＭＡＮＤ  ＦＩＳに関連するデータがすべてＳＡＴＡターゲットデバイスに送られるまで繰り返される。
【００１２】
本発明の別の態様は、エキスパンダをＳＡＳ／ＳＴＰイニシエータと連結するように適合された第１のインタフェースと、エキスパンダをＳＡＴＡターゲットデバイスと連結するように適合された第２のインタフェースとを備えるＳＡＳエキスパンダを提供する。このエキスパンダはまた、ＳＡＳ／ＳＴＰイニシエータから第１のインタフェースを介して受け取ったデータを第２のインタフェースを介してＳＡＴＡターゲットデバイスに転送するように適合されたブリッジロジックを備える。データは、ＣＯＭＭＡＮＤ  ＦＩＳに関連する。ブリッジロジックはさらに、ＣＯＭＭＡＮＤ  ＦＩＳに関連するデータの転送が完了するまで、第２のインタフェースを介してＳＡＴＡターゲットデバイスから受け取ったＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを破棄するように適合される。
【００１３】
本発明のさらに別の態様は、シリアル・アドバンスド・テクノロジー・アタッチメント（ＳＡＴＡ）ホストと、このＳＡＴＡホストと連結されたＳＡＴＡストレージデバイスとを備えるストレージシステムを提供する。ＳＡＴＡホストは、複数のＤＡＴＡ  ＦＩＳのそれぞれの送出後に、ＤＭＡ  ＡＣＴＩＶＡＴＥフレーム情報構造（ＦＩＳ）を必要とすることなく、データをストレージデバイスに転送するように適合される。
【図面の簡単な説明】
【００１４】
【図１】本発明の特徴および態様によりＳＡＴＡターゲットデバイスとの通信の性能強化をもたらす例示的なシステムのブロック図である。
【図２】本発明の特徴および態様によりＳＡＴＡターゲットデバイスとの通信の性能強化をもたらす別の例示的なシステムのブロック図である。
【図３】本発明の特徴および態様によりＳＡＴＡターゲットデバイスとの通信の性能強化をもたらす例示的な方法を説明するフローチャートである。
【図４】本発明の特徴および態様によりＳＡＴＡターゲットデバイスとの通信の性能強化をもたらす例示的な方法を説明するフローチャートである。
【図５】本発明の特徴および態様によりＳＡＴＡターゲットデバイスとの通信の性能強化をもたらす例示的な方法を説明するフローチャートである。
【発明を実施するための形態】
【００１５】
図１は、ＳＡＴＡターゲットデバイスとの通信に関してシステムの性能を改善するための、本発明の特徴および態様により強化されたシステム１００のブロック図である。システム１００は、ＳＡＴＡターゲットデバイス１０６とデータを交換するためにストレージコントローラと連結されたＳＡＴＡターゲットデバイス１０６を含む。ＳＡＴＡターゲットデバイス１０６は、ＳＡＴＡディスクドライブ（たとえば、回転磁気ディスクドライブまたは光ディスクドライブ、ならびにＲＡＭディスクおよびフラッシュドライブなどの半導体記憶装置）などの任意の適切なストレージデバイスであってよい。図１の例示的な実施形態では、ストレージコントローラは、拡張ＳＡＳエキスパンダ１０４に連結されたホストデバイスとして機能する拡張ＳＡＳ／ＳＴＰイニシエータ１０２を備える。ＳＡＳエキスパンダ１０４は、ポートロジック１１２．１を介して通信経路１５０によりイニシエータ１０２に連結することができる。通信経路１５０は、任意の適切なＳＡＳ通信媒体を備えることができる。ポートロジック１１２．１は、１つの論理ポート（すなわち、ナローＳＡＳポートまたはワイドＳＡＳポート）を実装するために、ＳＡＳエキスパンダ１０４内でＰＨＹ層、リンク層、および／または他の論理層を実装するための、ＳＡＴＡプロトコルによる標準ロジックを備える。同様に、ＳＡＳエキスパンダ１０４は、通信経路１５２およびポートロジック１１２．２を介してＳＡＴＡターゲットデバイス１０６に連結することができる。通信経路１５２は、任意の適切なＳＡＳ通信媒体を備えることができる。ポートロジック１１２．２は、ＳＡＴＡターゲットデバイス１０６と交換するために、ＳＡＳエキスパンダ１０４内でＰＨＹ層、リンク層、および／または他の論理層を実装するための、ＳＡＴＡプロトコルによる任意の標準ロジックを備えることができる。イニシエータ１０２は、たとえばホスト・バス・アダプタ（ＨＢＡ）またはストレージ・サブシステム内で一体化されたストレージコントローラを含むＳＡＳ準拠デバイス内でＳＡＳ／ＳＴＰプロトコルを実装するための任意の適切な制御ロジックとすることができる。
【００１６】
ＳＡＳエキスパンダ１０４は、クロスバー交換ロジックおよび十分に機能する標準的なＳＡＳエキスパンダでよく見られる他の適切なロジックなどの、よく知られている標準的な構成要素（図示せず）をさらに備える。さらに、ＳＡＳエキスパンダ１０４は、経路１５４および１５６を介してそれぞれポートロジック１１２．１および１１２．２と連結されたブリッジロジック１１０を備える。ブリッジロジック１１０は、システム１００の性能を改善するために本発明の特徴および態様による拡張ロジックを提供する。具体的には、ブリッジロジック１１０は、ＳＡＴＡターゲットデバイス１０６から受け取ったＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを破棄する役割を果たす。ブリッジロジック１１０に関連して、イニシエータ１０２は、ＳＡＴＡ規格によって規定されたＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領を必要としないように強化される。複数のＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領を待機する必要性をなくすことによって、イニシエータ１０２は、通信経路１５０を介して、ＳＡＳエキスパンダ１０４を通って経路１５２によりＳＡＴＡターゲットデバイス１０６宛にデータをより効率良く連続的に転送することができる。ＳＡＳ／ＳＡＴＡプロトコルの他の標準的なフロー制御機構は、ＳＡＴＡターゲットデバイス１０６内の受信バッファのオーバーフローを防ぐ目的でイニシエータ１０２とＳＡＴＡターゲットデバイス１０６の間の適切なフロー制御を確実なものにするために利用される。
【００１７】
図２は、修正ネイティブＳＡＴＡホスト２０２がＳＡＴＡ通信経路２５０を介して修正ＳＡＴＡターゲットデバイス２０４に直接的に連結されるシステム２００としての代替実施形態のブロック図である。修正ネイティブＳＡＴＡホスト２０２は、ＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳが修正ＳＡＴＡターゲットデバイス２０４から受け取られることを任意で必要としないように強化され、修正ＳＡＴＡターゲットデバイスは、ＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを任意で送らないように強化される。したがって、システム２００は、各ＤＡＴＡ  ＦＩＳの送出後にＳＡＴＡターゲットデバイス２０４からのＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領をＳＡＴＡホスト内で待機するように現在のＳＡＴＡ仕様に完全に準拠した標準的なＳＡＴＡシステムと比較して性能強化をもたらす。記載のとおり、修正ターゲットデバイス２０４のように、拡張ＳＡＴＡホスト２０２は自分に結合されたＳＡＴＡターゲットが強化されているかどうかを判定できるので、機能強化は任意選択とすることができる。同様に、拡張ターゲットデバイス２０４は、拡張ＳＡＴＡホスト２０２が拡張ターゲットデバイス２０４を強化された動作を行うように構成するまでＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを送るように現在のＳＡＴＡ規格に従って動作可能とすることができる。
【００１８】
図１および図２の十分に機能するシステム１００および２００それぞれに含まれる多数の追加のおよび同等の要素およびモジュールは当業者には容易に理解されよう。このような追加のおよび同等の要素は、この記述を簡単かつ簡潔にするため本明細書では省略されている。
【００１９】
図３は、本発明の特徴および態様によるストレージシステムの性能を改善するための例示的な方法を説明するフローチャートである。図３の方法は、図１のシステム１００で説明されたような拡張ＳＡＳエキスパンダで動作可能とすることができる。図３の方法は、中間の（拡張）ＳＡＳエキスパンダを介してＳＡＳ／ＳＴＰイニシエータからＳＡＴＡターゲットデバイスにデータを送信する必要に応じて動作可能である。
【００２０】
ＳＡＴＡターゲットへのデータの送出を指示するためのコマンド（ＣＯＭＭＡＮＤ  ＦＩＳ）を含む適切なＳＡＴＡ  Ｒｅｇｉｓｔｅｒ  ＦＩＳの最初の送出に続いて、ステップ３００では、ＳＡＴＡターゲットデバイスからＤＭＡ  ＳＥＴＵＰ  ＦＩＳを受け取る。受け取ったＤＭＡ  ＳＥＴＵＰ  ＦＩＳはエキスパンダからイニシエータに回送（ｆｏｒｗａｒｄ）される。ステップ３０４で、第１の／次のＤＡＴＡ  ＦＩＳの送出が開始される。イニシエータから受け取ったＤＡＴＡ  ＦＩＳは、拡張ＳＡＳエキスパンダによってＳＡＴＡターゲットデバイスに回送される。データ送出が続行するとき、ステップ３０８においてＤＡＴＡ  ＦＩＳの送出が完了したと判定されるまで、ステップ３０６でＳＡＴＡ規格による通常のフロー制御動作が実施される。現在のＤＡＴＡ  ＦＩＳが（イニシエータからＳＡＳエキスパンダを介して）ＳＡＴＡターゲットに完全に回送されると、ステップ３１０で、ＳＡＴＡターゲットからのＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領を待機し、受け取ったＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを破棄する。本発明の特徴および態様によれば、ＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳはすべて破棄されてもよい。次にステップ３１２で、最初のＣＯＭＭＡＮＤ  ＦＩＳに関連するさらなるデータがまだ送られていないかどうかを判定する。データがまだ送られていない場合、処理はループを継続してステップ３０４に戻り、基本となる（ｕｎｄｅｒｌｙｉｎｇ）ＣＯＭＭＡＮＤ  ＦＩＳに関連する追加のデータを送る次のＤＡＴＡ  ＦＩＳの送出のために構成して開始する。ステップ３１２で、ＣＯＭＭＡＮＤ  ＦＩＳに関連するさらなるデータを送る必要がないと決定される場合、ステップ３１４において、ターゲットデバイスからステータス指示（ｓｔａｔｕｓ  ｉｎｄｉｃｉａ）を受け取り、そのステータスをイニシエータに回送して、それによりＳＡＴＡターゲットデバイスへのＣＯＭＭＡＮＤ  ＦＩＳおよびそれに関連するデータの送出を完了する。
【００２１】
したがって、図３の方法では、ＳＡＴＡ規格で規定された各８キロバイトのデータ送出の後にイニシエータ内でＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領を待機する必要性をなくすことによって、ＳＡＴＡターゲットデバイスとの通信の性能が改善される。ＳＡＳプロトコルおよびＳＡＴＡプロトコルの（ステップ３０６で述べたような）よく知られている他のフロー制御機構は、ＳＡＴＡターゲットデバイス内の受信バッファのオーバーフローを回避するように適切なフロー制御を確実なものにするために利用される。イニシエータからＳＡＴＡターゲットデバイスにデータを送るための十分に機能する方法における多数の追加のおよび同等のステップは当業者には容易に理解されよう。このような追加のおよび同等のステップは、たとえば誤り回復および再試行ならびに他の機能を含むことができる。このような追加のおよび同等のステップは、この記述を簡単かつ簡潔にするため本明細書では省略されている。
【００２２】
図４は、拡張ＳＡＳエキスパンダを介してのＳＡＳ／ＳＴＰイニシエータとＳＡＴＡターゲットデバイスの間の通信の性能を改善するための、本発明の特徴および態様による別の例示的な方法を説明するフローチャートである。図４の方法は、たとえば図１のシステム１００で動作可能とすることができる。より具体的には、図４の方法は、図１の拡張ＳＡＳ／ＳＴＰイニシエータで動作可能とすることができる。さらに、図４の方法は、図２に示された拡張ＳＡＴＡストレージデバイスなどの拡張ＳＡＴＡストレージデバイスに結合された拡張ネイティブＳＡＴＡホストで動作可能とすることができる。
【００２３】
ステップ４００では、最初に、ＳＡＳエキスパンダがＳＡＴＡターゲットデバイスの通信性能を改善するための本発明の強化された特徴および態様を含むかどうかを（たとえば、ＳＡＳ／ＳＴＰイニシエータ内で）判定する。ステップ４００のテストは、ベンダ固有の情報または他の構成情報からＳＡＳエキスパンダが拡張動作をサポートするかどうかを判定するためにＳＡＳエキスパンダに問い合わせることによって達成することができる。ＳＡＳエキスパンダが拡張動作をサポートしない場合、ステップ４９９は、ＳＡＴＡ仕様によるイニシエータおよびエキスパンダの通常の動作（たとえば、ＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの待機に関連するすべての標準的な遅延）を表す。ステップ４００で実施される問い合わせまたはテストはイニシエータの初期化中に１回実施することができ、ＳＡＴＡターゲットデバイスへの求められる各送出に伴って実施する必要がないことが当業者には容易に理解されよう。さらに、後述のように、ステップ４００の処理はまた、直接結合されたＳＡＴＡターゲットデバイスがＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの送出を不要にするように強化されているかどうかをテストするために、拡張ネイティブＳＡＴＡホスト内で利用することができる。
【００２４】
ＳＡＳエキスパンダ（またはＳＡＴＡターゲット）が適切に強化されている場合、ＳＡＳ／ＳＴＰイニシエータは、ステップ４０２においてＳＡＴＡターゲットデバイスに、イニシエータからＳＡＴＡターゲットデバイスにデータを転送する必要があることを示すＣＯＭＭＡＮＤ  ＦＩＳを（拡張ＳＡＳエキスパンダを介して、または直接に）送信し続ける。このＣＯＭＭＡＮＤ  ＦＩＳの転送に続いて、ステップ４０４では、ＳＡＴＡターゲットデバイスからのＤＭＡ  ＳＥＴＵＰ  ＦＩＳの受領を待機する。ＳＡＴＡ仕様によれば、ＤＭＡ  ＳＥＴＵＰ  ＦＩＳは、データをＳＡＴＡターゲットデバイスに転送するようにイニシエータのＤＭＡ回路を構成するためにイニシエータによって使用されるいくつかのパラメータを提供する。ステップ４０６で、イニシエータは、ＤＭＡ  ＳＥＴＵＰのパラメータがＡＵＴＯ−ＡＣＴＩＶＡＴＥ機能が利用可能であることを示すかどうかを判定する。ＡＵＴＯ−ＡＣＴＩＶＡＴＥ機能は、ＳＡＴＡ規格によれば、イニシエータが第１のＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領を待機する必要はないが、第１のＤＡＴＡ  ＦＩＳの転送をすぐに開始してもよいことを示す。ステップ４０６でＡＵＴＯ−ＡＣＴＩＶＡＴＥ機能がＤＭＡ  ＳＥＴＵＰ  ＦＩＳによって指示されていないと判定された場合、ステップ４０８で、ターゲットデバイスからの第１のＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領を待機する。ステップ４０８で第１のＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳを受領すると、またはステップ４０６でのＡＵＴＯ−ＡＣＴＩＶＡＴＥ機能がＤＭＡ  ＳＥＴＵＰで設定されているとの判定を受けて、ステップ４１０では、ＳＡＳ／ＳＴＰイニシエータのＤＭＡ回路または他のデータ転送機能を利用してＳＡＴＡターゲットデバイスに次の（たとえば、第１の）ＤＡＴＡ  ＦＩＳを送る。ステップ４１０の動作のさらなる例示的な詳細について、本明細書において図５を参照して以下に記載する。
【００２５】
次にステップ４１２で、送られたＣＯＭＭＡＮＤ  ＦＩＳに関連する追加のデータがＳＡＴＡターゲットデバイスにまだ転送されるべきかどうかを判定する。追加のデータが転送されるべきである場合、処理はループを継続してステップ４１０に戻り、次のＤＡＴＡ  ＦＩＳを構成してターゲットデバイスに送る。そうでない場合、ステップ４１４において、ＳＡＴＡターゲットデバイスからステータス情報を受け取って処理し、それによって、基本となるコマンドおよびそれに関連するデータの転送を完了する。
【００２６】
本明細書において以下でさらに詳述するように、ステップ４１０で、任意のＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳがＤＡＴＡ  ＦＩＳの送出を開始および終了するのを待つ必要はない。むしろ、拡張イニシエータはＤＡＴＡ  ＦＩＳを連続的に送信してそのＤＭＡ回路の動作を継続することができる。ＳＡＳプロトコルおよびＳＡＴＡプロトコルの標準的なフロー制御機構は、ＳＡＴＡターゲットデバイス内の受信バッファのオーバーフローを回避するように適切なフロー制御を確実なものにするために利用される。
【００２７】
図５は、基本となるＣＯＭＭＡＮＤ  ＦＩＳに関連するデータの一部分を表す単一のＤＡＴＡ  ＦＩＳを送るための図４のステップ４１０の処理の例示的な追加の詳細を示すフローチャートである。ステップ５００で、イニシエータのＤＭＡ回路を、拡張ＳＡＳエキスパンダを介してＳＡＴＡターゲットデバイスに（または拡張ＳＡＴＡホストから拡張ＳＡＴＡターゲットデバイスに直接的に）次のＤＡＴＡ  ＦＩＳを転送するように構成する。ＳＡＴＡ規格に従って、次にステップ５０２で、イニシエータがデータを送る準備ができていることを示すためにＸ＿ＲＤＹプリミティブをＳＡＴＡターゲットデバイスに送る。次いでステップ５０４で、ＳＡＴＡターゲットデバイスからの、それがイニシエータからＤＡＴＡ  ＦＩＳの送出を受け取る準備ができていることを示すＲ＿ＲＤＹプリミティブの受領を待機する。次にステップ５０６で、イニシエータからＳＡＴＡターゲットデバイスへの（直接的に、または拡張ＳＡＳエキスパンダを介して）ＤＡＴＡ  ＦＩＳのＤＭＡ転送（または他の転送機構）を始める。
【００２８】
次いで、標準的なＳＡＴＡプロトコルに従って適切なフロー制御を確実なものにするようにＤＭＡ回路がＤＡＴＡ  ＦＩＳをターゲットデバイスに転送するとき、ステップ５０８〜５１６が動作可能である。具体的には、ステップ５０８では、ＨＯＬＤプリミティブがＳＡＴＡターゲットデバイスから受け取られたかどうかをテストする。ＨＯＬＤプリミティブが受け取られた場合、ステップ５１０において、ＤＡＴＡ  ＦＩＳの転送を中止するためにＤＭＡ回路を一時的に停止し、それによってＳＡＴＡターゲットデバイスの受信バッファが確実にオーバーフローしないことを確実なものにする。ＨＯＬＤプリミティブが受け取られていない場合、またはＤＭＡ転送が一時停止された場合、ステップ５１２において、ＳＡＴＡターゲットデバイスでＤＡＴＡ  ＦＩＳの受領を再開する準備ができたことを示すＲ＿ＩＰプリミティブがＳＡＴＡターゲットデバイスから受け取られたかどうかを検出する。Ｒ＿ＩＰプリミティブが受け取られたことが検出された場合、ステップ５１４で、現在のＤＡＴＡ  ＦＩＳの転送を継続するための、ＤＭＡ回路による処理を再開する。Ｒ＿ＩＰプリミティブが受け取られていない場合、またはＤＭＡ転送が再開された場合、次にステップ５１６において、このＤＡＴＡ  ＦＩＳのＤＭＡ転送が完了したかどうかを判定する。ＤＡＴＡ  ＦＩＳのＤＭＡ転送が完了していない場合、処理はループを継続してステップ５０８に戻り、このＤＡＴＡ  ＦＩＳの送出中に適切なフロー制御を行う処理を継続する。このＤＡＴＡ  ＦＩＳのＤＭＡ転送が完了すると、ステップ４１０の処理が完了する。
【００２９】
したがって、図４および図５の方法によって、拡張ＳＡＳエキスパンダを介してのイニシエータとＳＡＴＡターゲットデバイスの間の（または拡張ＳＡＴＡホストと拡張ＳＡＴＡターゲットデバイスとの間で直接的に）通信の性能が改善される。イニシエータからＳＡＴＡターゲットデバイスにデータを送るための十分に機能する方法における多数の追加のおよび同等のステップは当業者には容易に理解されよう。このような追加のおよび同等のステップは、たとえば誤り回復および再試行ならびに他の機能を含むことができる。このような追加のおよび同等のステップは、記述を簡単かつ簡潔にするため本明細書では省略されている。
【００３０】
さらに、上記のように、図４および図５の方法はまた、拡張ＳＡＴＡターゲットデバイスに直接的に連結された拡張ＳＡＴＡホストで動作可能な方法を表すことが当業者には容易に理解されよう。図４のステップ４００では、直接接続されたＳＡＴＡターゲットデバイスが本発明の特徴および態様をサポートするように強化されているかどうか、または直接接続されたＳＡＴＡターゲットデバイスが現在のＳＡＴＡ規格のみに従う「旧式の」ターゲットデバイスであるかどうかを判定することができる。直接連結されたターゲットデバイスが強化されている場合、図４の方法と図５の方法は、イニシエータ／ホストが拡張ＳＡＴＡターゲットデバイスに直接連結されている（たとえば、ＳＡＴＡホストと連結されている）かまたは拡張ＳＡＳエキスパンダを介してターゲットデバイスに連結される（たとえば、ＳＡＳ／ＳＴＰイニシエータと連結されている）かに関係なく、本質的に同一である。言い換えれば、拡張イニシエータ／ホストは、拡張ＳＡＴＡターゲットに直接連結されているかまたは拡張ＳＡＳエキスパンダを介してターゲットに連結されているかに関係なく、各ＤＡＴＡ  ＦＩＳの送出後のＤＭＡ  ＡＣＴＩＶＡＴＥ  ＦＩＳの受領を必要としない。
【００３１】
本発明を図面に示しおよび前述の説明で説明してきたが、このような図示および説明は例示的なものであり、その特性を制限するものではないと見なすべきである。本発明の一実施形態およびその軽微な変形形態を図示し説明してきた。具体的には、例示的なソフトウェアまたはファームウェアの実施形態として図示し説明された特徴はカスタマイズされた論理回路として同等に実施することができ、その逆も可能である。本発明の精神に含まれるすべての変更および修正に関する保護が望ましい。本発明の範囲に含まれる上述の実施形態の変形形態が当業者には理解されよう。その結果、本発明は、上述の具体的な例および図示に限定されず、添付の特許請求の範囲およびその等価物によってのみ限定される。
【図１】
0005225427.tif 000002
【図２】
0005225427.tif 000003
【図３】
0005225427.tif 000004
【図４】
0005225427.tif 000005
【図５】
0005225427.tif 000006