(57)【要約】【課題】複数のＳＡＴＡ記憶デバイスに結合されるＳＡＴＡホストの役割を果たすＳＡＳイニシエータを利用することに関し、ＳＡＴＡ記憶システムの性能を改善すること。【解決手段】ＳＡＳ／ＳＴＰイニシエータ・デバイスと、強化されたスイッチング・デバイスを介してそのイニシエータに結合される複数のＳＡＴＡ記憶デバイスとの間の改善された通信性能を得るための方法および機器。このスイッチング・デバイスは、ＳＡＴＡ記憶デバイスからＤＭＡセットアップＦＩＳを受信し、複数の修正されたＤＭＡセットアップＦＩＳをイニシエータに伝送するよう、本明細書の諸特徴および諸態様に従って強化され、それぞれの修正されたＤＭＡセットアップＦＩＳは、受信されるＤＭＡセットアップＦＩＳ内の最大カウントよりも少ないサブカウントを含む。【選択図】図１
2012048704.tif 000002
【特許請求の範囲】
【請求項１】
イニシエータ・デバイスに結合するようになされ、複数のシリアル・アドバンスト・テクノロジ・アタッチメント（ＳＡＴＡ）記憶デバイスに結合するようになされるスイッチング・デバイス内で実施可能な方法であって、
ＳＡＴＡ記憶デバイスからＤＭＡセットアップ・フレーム情報構造（ＦＩＳ）を受信することであって、前記ＤＭＡセットアップＦＩＳは、別のＤＭＡセットアップＦＩＳが要求されるよりも前に前記イニシエータ・デバイスから転送されるべきデータの最大サイズを含む、ＤＭＡセットアップ・フレーム情報構造（ＦＩＳ）を受信することと、
複数の修正されたＤＭＡセットアップＦＩＳを前記イニシエータ・デバイスに伝送することであって、それぞれの修正されたＤＭＡセットアップＦＩＳは、前記最大サイズよりも少ないサブカウント・サイズを含み、それぞれの修正されたＤＭＡセットアップＦＩＳの前記サブカウント・サイズの合計は、前記最大サイズよりも大きくない、前記イニシエータ・デバイスに伝送することと
を含むことを特徴とする、方法。
【請求項２】
前記修正されたＤＭＡセットアップＦＩＳのそれぞれの前記サブカウント・サイズを、所定の固定値として決定すること
をさらに含む、請求項１に記載の方法。
【請求項３】
前記修正されたＤＭＡセットアップＦＩＳのそれぞれの前記サブカウント・サイズを、前記スイッチング・デバイス内のバッファのサイズに等しいものとして決定すること
をさらに含む、請求項１に記載の方法。
【請求項４】
前記スイッチング・デバイスが、対応するＳＡＴＡ記憶デバイスにそれぞれが関連する複数のバッファを含み、前記方法が
前記修正されたＤＭＡセットアップＦＩＳのそれぞれの前記サブカウント・サイズを、前記ＳＡＴＡ記憶デバイスに関連するバッファのサイズに等しいものとして決定すること
をさらに含む、請求項１に記載の方法。
【請求項５】
前記修正されたＤＭＡセットアップＦＩＳのそれぞれの前記サブカウント・サイズを、前記ＳＡＴＡ記憶デバイス内のバッファのサイズに等しいものとして決定すること
をさらに含む、請求項１に記載の方法。
【請求項６】
前記ＳＡＴＡ記憶デバイスのバッファのサイズを求めるために、前記ＳＡＴＡ記憶デバイスに問い合わせること
をさらに含む、請求項５に記載の方法。
【請求項７】
スイッチング・デバイス（１０４）を、シリアル・アタッチドＳＣＳＩ、シリアル・アドバンスト・テクノロジ・アタッチメント・トンネリング・プロトコル・イニシエータ（ＳＡＳ／ＳＴＰイニシエータ（１０２））に結合するようになされるフロントエンド・ポート（１１２）と、
前記スイッチング・デバイス（１０４）を対応するＳＡＴＡ記憶デバイス（１０６．１〜１０６．ｎ）に結合するようにそれぞれがなされる複数のバックエンド・ポート（１１４．１〜１１４．ｎ）と、
前記フロントエンド・ポート（１１２）に結合され、前記複数のバックエンド・ポート（１１４．１〜１１４．ｎ）に結合されるブリッジ・ロジック（１１０）と
を備え、
前記ブリッジ・ロジック（１１０）は、自らの対応するバックエンド・ポート（１１４．１〜１１４．ｎ）を介し、ＳＡＴＡ記憶デバイス（１０６．１〜１０６．ｎ）からＤＭＡセットアップ・フレーム情報構造（ＦＩＳ）を受信するようになされ、前記ＤＭＡセットアップＦＩＳは、別のＤＭＡセットアップＦＩＳが要求されるよりも前に前記ＳＡＳ／ＳＴＰイニシエータ（１０２）から転送されるべきデータの最大サイズを含み、
前記ブリッジ・ロジック（１１０）は、複数の修正されたＤＭＡセットアップＦＩＳを前記ＳＡＳ／ＳＴＰイニシエータ（１０２）に伝送するようにさらになされ、それぞれの修正されたＤＭＡセットアップＦＩＳは、前記最大サイズよりも少ないサブカウント・サイズを含み、それぞれの修正されたＤＭＡセットアップＦＩＳの前記サブカウント・サイズの合計は、前記最大サイズよりも大きくない
ことを特徴とする、スイッチング・デバイス（１０４）。
【請求項８】
前記ブリッジ・ロジック（１１０）が、前記修正されたＤＭＡセットアップＦＩＳのそれぞれの前記サブカウント・サイズを、所定の固定値として決定するようにさらになされる、
請求項７に記載のスイッチング・デバイス（１０４）。
【請求項９】
前記ブリッジ・ロジック（１１０）が、前記修正されたＤＭＡセットアップＦＩＳのそれぞれの前記サブカウント・サイズを、前記スイッチング・デバイス（１０４）内のバッファ（２００．１〜２００．ｎ）のサイズに等しいものとして決定するようにさらになされる、
請求項７に記載のスイッチング・デバイス（１０４）。
【請求項１０】
前記ブリッジ・ロジック（１１０）が
対応するバックエンド・ポート（１１４．１〜１１４．ｎ）にそれぞれが関連する複数のバッファ（２００．１〜２００．ｎ）
をさらに含み、
前記ブリッジ・ロジック（１１０）が、前記修正されたＤＭＡセットアップＦＩＳのそれぞれの前記サブカウント・サイズを、前記ＤＭＡセットアップＦＩＳを受信した前記バックエンド・ポート（１１４．１〜１１４．ｎ）に関連する前記バッファ（２００．１〜２００．ｎ）のサイズに等しいものとして決定するようにさらになされる、
請求項７に記載のスイッチング・デバイス（１０４）。
【請求項１１】
前記ブリッジ・ロジック（１１０）が、前記修正されたＤＭＡセットアップＦＩＳのそれぞれの前記サブカウント・サイズを、前記ＳＡＴＡ記憶デバイス（１０６．１〜１０６．ｎ）内のバッファ（３００．１〜３００．ｎ）のサイズに等しいものとして決定するようにさらになされる、
請求項７に記載のスイッチング・デバイス（１０４）。
【請求項１２】
前記ブリッジ・ロジック（１１０）が、前記ＳＡＴＡ記憶デバイス（１０６．１〜１０６．ｎ）のバッファ（３００．１〜３００．ｎ）のサイズを求めるために、前記ＳＡＴＡ記憶デバイスに問い合わせるようにさらになされる、
請求項１１に記載のスイッチング・デバイス（１０４）。
【請求項１３】
前記スイッチング・デバイス（１０４）が、シリアル・アタッチドＳＣＳＩ（ＳＡＳ）エキスパンダである、
請求項７に記載のスイッチング・デバイス（１０４）。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、参照により本明細書に組み込まれる、２０１０年８月２５日に出願され、Ｍｅｔｈｏｄｓ  Ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｉｍｐｒｏｖｅｄ  Ｈｏｓｔ／Ｉｎｉｔｉａｔｏｒ  Ｕｔｉｌｉｚａｔｉｏｎ  ｉｎ  Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ  Ｃｏｍｍｕｎｉｃａｔｉｏｎと題された、米国特許出願第１２／８６８，２７９号の一部継続である。
【０００２】
本発明は、一般に記憶システムの性能に関し、より詳細には、シリアル・アタッチドＳＣＳＩ、シリアル・アドバンスト・テクノロジ・アタッチメント・トンネリング・プロトコル（ＳＡＳ／ＳＴＰ）イニシエータ・デバイスと、複数のＳＡＴＡターゲット・デバイスとの間の、シリアル・アタッチドＳＣＳＩ（ＳＡＳ）エキスパンダを介した通信において、イニシエータの性能を改善するための方法および機器に関する。
【背景技術】
【０００３】
記憶システムでは、ホスト・システムが１つまたは複数の記憶デバイスと通信する。ＳＡＳドメイン内に構成されるＳＡＴＡ記憶システムでは、ＳＡＳ／ＳＴＰイニシエータ・デバイス（例えばホスト・システム）が、ＳＡＴＡターゲット・デバイス（例えばディスク・ドライブなどのＳＡＴＡ記憶デバイス）と通信する。ネイティブＳＡＴＡ構成では、ホスト・システム（ネイティブＳＡＴＡホスト・コントローラ）が、単一のＳＡＴＡ記憶デバイスとデータを交換するために、その単一のＳＡＴＡ記憶デバイスに結合する。ＳＡＴＡネイティブ・コマンド・キューイング（ＮＣＱ）プロトコルでは、ＳＡＴＡデバイスが、現在、ホストからデバイスへのデータを受信する準備ができていることを知らせるために、ＳＡＴＡホストに対してＤＭＡセットアップ・フレーム情報構造（ＦＩＳ）を送信する。このＳＡＴＡプロトコルは、大量の（例えば５００メガバイトの）入出力を完了するためにデバイスが複数のＤＭＡセットアップＦＩＳを使用するための機構を提供するが、実際には、ＳＡＴＡ記憶デバイスは、全入出力サイズ（例えば、前の例にあるように５００メガバイト）について単一のＤＭＡセットアップＦＩＳを送信することを選択する。この機能は、ＳＡＴＡ仕様において非ゼロ・バッファ・オフセット（Ｎｏｎ−Ｚｅｒｏ  Ｂｕｆｆｅｒ  Ｏｆｆｓｅｔ）と呼ばれる。典型的なＳＡＴＡディスク・ドライブは、そのような大量のデータにわたる持続的なデータ転送は行わないので、このＳＡＴＡ標準技法はＳＡＴＡインターフェイス上のフロー制御信号／フロー制御フレームに起因する長い停止時間を招く。
【０００４】
典型的なデスクトップ・パーソナルコンピュータ／ワークステーション環境では、ＳＡＴＡインターフェイスは、ホストと単一のデバイスとの間のポイントツーポイント・インターフェイスであるので、この問題は概して取るに足りないことである。この停止動作は、他の任意のデバイスに影響を与えない。
【０００５】
しかし、ＳＡＴＡトンネリング・プロトコル（ＳＴＰ）を使用するシリアル・アタッチドＳＣＳＩ（ＳＡＳ）トポロジでＳＡＴＡ記憶デバイスを使用するとき、これらの停止時間は、他のＳＡＳリソース（とりわけ、大量のＤＭＡ転送を停止した１つのＳＡＴＡデバイスとの停止している接続を別にすれば、他の接続に使用することができるＳＡＳ接続経路）を消費するという点で無駄な場合がある。しかし、ＳＡＳイニシエータまたはＳＡＴＡホストは、ＳＡＴＡ記憶デバイスの内部バッファ状態についての本当の知識を有さず、そのため、そのドライブが実際にどの程度のデータに耐えることができるのかを知的に判断することはできない。複数のＳＡＴＡ記憶デバイスを（例えばＳＡＳエキスパンダを介して）ＳＡＳコントローラに結合するＳＡＳトポロジでは、このＳＡＴＡの特徴により、全体的なシステム性能が低下する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願第１２／８６８，２７９号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
したがって、複数のＳＡＴＡ記憶デバイスに結合されるＳＡＴＡホストの役割を果たすＳＡＳイニシエータを利用することに関し、ＳＡＴＡ記憶システムの性能を改善することが進行中の問題である。
【課題を解決するための手段】
【０００８】
本発明は、強化されたＳＡＳエキスパンダにより、ＳＡＳ／ＳＴＰイニシエータと複数のＳＡＴＡターゲット・デバイスとの間の強化された通信性能を得るための方法および機器を提供することにより、上記のおよび他の問題を解決し、それにより有用な最新技術を進歩させる。このエキスパンダは、記憶デバイスからＤＭＡセットアップＦＩＳを受信し、複数の修正されたＤＭＡセットアップＦＩＳをＳＡＳ／ＳＴＰイニシエータに伝送するよう、本明細書の諸特徴および諸態様に従って強化され、それぞれの修正されたＤＭＡセットアップＦＩＳは、受信されるＤＭＡセットアップＦＩＳ内の最大カウントよりも少ないサブカウントを含む。
【０００９】
本明細書の一態様では、イニシエータに結合するようになされ、複数のＳＡＴＡ記憶デバイスに結合するようになされるスイッチング・デバイス内で実施可能な方法が提供される。この方法は、ＳＡＴＡ記憶デバイスからＤＭＡセットアップＦＩＳを受信することを含む。そのＤＭＡセットアップＦＩＳは、別のＤＭＡセットアップＦＩＳが要求されるよりも前にイニシエータから転送されるべきデータの最大サイズを含む。次いでこの方法は、複数の修正されたＤＭＡセットアップＦＩＳをイニシエータに伝送する。それぞれの修正されたＤＭＡセットアップＦＩＳは、その最大サイズよりも少ないサブカウント・サイズを含む。それぞれの修正されたＤＭＡセットアップＦＩＳのサブカウント・サイズの合計は、その最大サイズよりも大きくない。
【００１０】
本明細書の別の態様は、エキスパンダに結合されるＳＡＳ／ＳＴＰイニシエータから、そのエキスパンダに結合される複数のＳＡＴＡ記憶デバイスのうちの１つのＳＡＴＡ記憶デバイスにデータを転送するための、ＳＡＳエキスパンダ内で実施可能な方法を提供する。この方法は、ＳＡＳ／ＳＴＰイニシエータから、コマンドを含む登録ＦＩＳ（Ｒｅｇｉｓｔｅｒ  ＦＩＳ）（本明細書では以下「コマンドＦＩＳ」とも呼ぶ）を受信することを含み、このコマンドＦＩＳは、ＳＡＴＡ記憶デバイスと交換しようとするデータのサイズを指示する入出力要求サイズを含む。次いでこの方法は、そのコマンドＦＩＳをＳＡＴＡ記憶デバイスに伝送する。この方法は、ａ）ＳＡＴＡ記憶デバイスからＤＭＡセットアップＦＩＳを受信することも含む。このＤＭＡセットアップＦＩＳは、このＤＭＡセットアップＦＩＳに応答してＳＡＴＡ記憶デバイスに転送することができるデータの最大サイズを含む。この方法はさらに、ｂ）その最大サイズよりも少ないサブカウント・サイズを決定することと、ｃ）修正されたＤＭＡセットアップＦＩＳをＳＡＳ／ＳＴＰイニシエータに伝送することとを含み、その修正されたＤＭＡセットアップＦＩＳはサブカウント・サイズを含む。次いでこの方法は、ｄ）ＳＡＳ／ＳＴＰイニシエータとＳＡＴＡ記憶デバイスとの間でデータを転送することを含み、転送されるデータ量はサブカウント・サイズよりも大きくない。次いでこの方法は、ｅ）交換されるデータ量が最大サイズに等しいか、または入出力要求サイズに等しくなるまでステップｂ）、ｃ）、およびｄ）を繰り返すことを含む。最後に、この方法は、交換されるデータ量が入出力要求サイズに等しくなるまでａ）、ｂ）、ｃ）、ｄ）、およびｅ）のステップを繰り返すことも含む。
【００１１】
本明細書のさらに別の態様は、スイッチング・デバイスをイニシエータに結合するようになされるフロントエンド・ポートと、スイッチング・デバイスを対応するＳＡＴＡ記憶デバイスに結合するようにそれぞれがなされる複数のバックエンド・ポートとを含む、スイッチング・デバイスを提供する。このスイッチング・デバイスは、フロントエンド・ポートに結合され、かつ複数のバックエンド・ポートに結合されるブリッジ・ロジックも含む。このブリッジ・ロジックは、自らの対応するバックエンド・ポートを介し、ＳＡＴＡ記憶デバイスからＤＭＡセットアップＦＩＳを受信するようになされる。そのＤＭＡセットアップＦＩＳは、別のＤＭＡセットアップＦＩＳが要求されるよりも前にイニシエータから転送されるべきデータの最大サイズを含む。ブリッジ・ロジックは、複数の修正されたＤＭＡセットアップＦＩＳをイニシエータに伝送するようにさらになされ、それぞれの修正されたＤＭＡセットアップＦＩＳは、その最大サイズよりも少ないサブカウント・サイズを含み、それぞれの修正されたＤＭＡセットアップＦＩＳのサブカウント・サイズの合計は、その最大サイズよりも大きくない。
【図面の簡単な説明】
【００１２】
【図１】本明細書の諸特徴および諸態様による、イニシエータ・デバイスと複数のＳＡＴＡ記憶デバイスとの間の通信性能を改善するようになされる強化されたスイッチング・デバイスを含む、例示的システムのブロック図である。
【図２】本明細書の諸特徴および諸態様による、図１のブリッジ・ロジックについての例示的な追加詳細を提供するブロック図である。
【図３】本明細書の諸特徴および諸態様による、図１のブリッジ・ロジックについての例示的な追加詳細を提供するブロック図である。
【図４】本明細書の諸特徴および諸態様による、強化されたＳＡＳエキスパンダにより、ＳＡＳ／ＳＴＰイニシエータと複数のＳＡＴＡ記憶デバイスとの間の強化された通信性能をもたらす例示的方法を示す流れ図である。
【図５】本明細書の諸特徴および諸態様による、強化されたＳＡＳエキスパンダにより、ＳＡＳ／ＳＴＰイニシエータと複数のＳＡＴＡ記憶デバイスとの間の強化された通信性能をもたらす例示的方法を示す流れ図である。
【図６】本明細書の諸特徴および諸態様による、強化されたＳＡＳエキスパンダにより、ＳＡＳ／ＳＴＰイニシエータと複数のＳＡＴＡ記憶デバイスとの間の強化された通信性能をもたらす例示的方法を示す流れ図である。
【図７】本明細書の諸特徴および諸態様による、強化されたＳＡＳエキスパンダにより、ＳＡＳ／ＳＴＰイニシエータと複数のＳＡＴＡ記憶デバイスとの間の強化された通信性能をもたらす例示的方法を示す流れ図である。
【発明を実施するための形態】
【００１３】
図１は、強化されたスイッチング・デバイス１０４（例えば、ＳＡＳドメイン・トポロジ内の強化されたＳＡＳエキスパンダ１０４）により、イニシエータ・デバイス（例えばＳＡＴＡホスト／イニシエータ）と複数のＳＡＴＡターゲット・デバイスとの間の通信においてシステムの性能を改善するよう、本明細書の諸特徴および諸態様により強化されたシステム１００のブロック図である。スイッチング・デバイス１０４は、イニシエータ１０２を複数のＳＡＴＡターゲット・デバイス１０６．１〜１０６．ｎに結合する。イニシエータ１０２は、媒介スイッチング・デバイスを介して、１つまたは複数のＳＡＴＡ記憶デバイスと通信するようになされる任意のデバイスとすることができる。ある例示的実施形態では、イニシエータ１０２は、ＳＡＳプロトコルを利用して通信するようになされ、より詳細には、ＳＡＳアーキテクチャのＳＡＴＡトンネリング・プロトコル（ＳＴＰ）を利用して通信するようになされる任意のデバイスとすることができる。そのような実施形態では、イニシエータ１０２は、ＳＡＳ／ＳＴＰイニシエータとすることができる。ＳＡＴＡターゲット・デバイス１０６．１〜１０６．ｎは、ＳＡＴＡプロトコルに従い、入出力要求を受信し、処理するようになされる任意のデバイスとすることができる。具体的には、それぞれのＳＡＴＡターゲット・デバイス１０６．１〜１０６．ｎは、回転磁気ディスク・ドライブや光ディスク・ドライブなどのＳＡＴＡ記憶デバイス、またはＲＡＭディスクやフラッシュ・メモリ記憶デバイスなどの半導体記憶デバイスとすることができる。
【００１４】
スイッチング・デバイス１０４は、イニシエータ１０２を複数のＳＡＴＡ記憶デバイス１０６．１〜１０６．ｎのいずれかに結合するようになされる任意のデバイスとすることができる。ある例示的実施形態では、スイッチング・デバイス１０４は、任意のＳＡＳエキスパンダに典型的な数多くの標準コンポーネントを備える、ＳＡＳエキスパンダ１０４とすることができる。そうした標準コンポーネントには、例えばフロントエンド・ポート・ロジック１１２およびバックエンド・ポート・ロジック１１４．１〜１１４．ｎが含まれてよい。フロントエンド・ポート・ロジック１１２は、ＳＡＳプロトコルの物理層／リンク層（ならびにこのプロトコルの他の層）の側面を処理するようになされる、ＳＡＳエキスパンダ１０４内の任意の回路とすることができる。同様に、バックエンド・ポート・ロジック１１４．１〜１１４．ｎは、エキスパンダ１０４を複数のＳＡＴＡ記憶デバイス１０６．１〜１０６．ｎに結合するために、ＳＡＳプロトコルおよび／またはＳＡＴＡプロトコルの物理層／リンク層の側面を処理するようになされる、ＳＡＳエキスパンダ１０４内の任意の回路をそれぞれ含む。なおさらに、ＳＡＳエキスパンダ１０４内のクロスバー・スイッチング・ロジック１０８は、（フロントエンド・ポート・ロジック１１２を介して結合される）ＳＡＳ／ＳＴＰイニシエータ１０２を、ＳＡＴＡ記憶デバイス１０６．１〜１０６．ｎのいずれかに（その対応するバックエンド・ポート・ロジック回路１１４．１〜１１４．ｎを介して）制御可能に切り替えるための任意の適切な回路を含む。
【００１５】
ＳＡＳエキスパンダ１０４は、ＳＡＳ／ＳＴＰイニシエータ１０２と複数のＳＡＴＡ記憶デバイス１０６．１〜１０６．ｎとの間の通信性能を改善するようになされる、ブリッジ・ロジック１１０を含むよう強化される。上記に述べたように、従来のＳＡＳエキスパンダでは、ＳＡＳ／ＳＴＰイニシエータ１０２が、ＳＡＴＡ記憶デバイスから受信するＤＭＡセットアップＦＩＳによって指示される最大長を有する、転送の全持続時間にわたり、その単一のＳＡＴＡ記憶デバイスに論理的に接続され得る。ＤＭＡセットアップＦＩＳによって指示される最大転送長は、ＳＡＳ／ＳＴＰイニシエータ１０２からの許可された最大のＤＭＡ転送を指示するが、ＳＡＴＡ記憶デバイス１０６．１内の機械的待ち時間および他のオーバーヘッド処理問題が、（ＳＡＳプロトコルのフロー制御機能を使用する）ＤＭＡ転送を一時的に停止させる可能性がある。従来のＳＡＳエキスパンダは、そうした停止の間、他のＳＡＴＡ記憶デバイスを対象とする入出力処理をＳＡＳ／ＳＴＰイニシエータ１０２が実行できるようにする機構を提供しなかった。それとは対照的に、強化されたＳＡＳエキスパンダ１０４のブリッジ・ロジック１１０は、ＳＡＳ／ＳＴＰイニシエータ１０２からのデータ転送を第１のＳＡＴＡ記憶デバイスが停止している可能性がある間、ＳＡＳ／ＳＴＰイニシエータが他のＳＡＴＡ記憶デバイスを対象とする入出力要求を処理することを認める。
【００１６】
より詳細には、ブリッジ・ロジック１１０は、対応するＳＡＴＡ記憶デバイス１０６．１〜１０６．ｎにエキスパンダを結合するそれぞれのバックエンド・ポート・ロジック１１４．１〜１１４．ｎにそれぞれが関連する、ブリッジ・ロジック・コンポーネント１１０．１〜１１０．ｎを含む。動作の面では、ブリッジ・ロジック１１０は、ＳＡＳ／ＳＴＰイニシエータ１０２によりＳＡＴＡ記憶デバイスに送信されるコマンドＦＩＳに応答し、その記憶デバイスからＤＭＡセットアップＦＩＳを受信する。次いで、その受信したＤＭＡセットアップＦＩＳに関連する最大のオリジナル転送サイズを、オリジナル最大転送サイズよりも少ないサブカウントをそれぞれが示す、複数の修正されたＤＭＡセットアップＦＩＳへと分ける。次いで、これらの複数の修正されたＤＭＡセットアップＦＩＳをＳＡＳ／ＳＴＰイニシエータ１０２に転送して、その複数の修正されたＤＭＡセットアップＦＩＳ間で、他のＳＡＴＡ記憶デバイスを対象とする入出力要求のためのＤＭＡ転送をイニシエータが処理できるようにする。
【００１７】
ある例示的実施形態では、ブリッジ・ロジック１１０は、サブカウントを、所定の固定バッファ・サイズとして決定することができる。この所定の固定バッファ・サイズは、エキスパンダ１０４の初期化時にまたは導入時に、静的にもしくは動的に構成することができる。このシステムおよび／または個々の記憶デバイスのヒューリスティック／実測性能に基づいて所定の固定バッファ・サイズを構成する際、システム管理者による手動プロセスを利用することができる。ＳＡＳ／ＳＴＰイニシエータ１０２に伝送される、複数の修正されたＤＭＡセットアップＦＩＳのそれぞれのサブカウントに使用する所定の固定バッファ・サイズを決定する際、任意の数の要素を考慮に入れることができる。
【００１８】
別の例示的実施形態では、それぞれの修正されたＤＭＡセットアップＦＩＳで使用するサブカウントを、ブリッジ・ロジック１１０内のバッファ・メモリのサイズに基づいて決定するよう、ブリッジ・ロジック１１０は１つまたは複数のバッファ・メモリを含むことができる。例えば図２に示すように、それぞれのコンポーネント、ブリッジ・ロジック１１０．１〜１１０．ｎは、関連するバッファ２００．１〜２００．ｎをそれぞれ含むことができる。したがって、そのような実施形態で使用するサブカウントは、ブリッジ・ロジック１１０．１〜１１０．ｎのそれぞれに関連する、バッファ２００．１〜２００．ｎのサイズに基づいて決定される。
【００１９】
さらに別の例示的実施形態では、ブリッジ・ロジック１１０は、そうしたバッファを欠いてよく、それぞれの修正されたＤＭＡセットアップＦＩＳで使用するサブカウントを、それぞれのＳＡＴＡ記憶デバイス１０６．１〜１０６．ｎ内のバッファのサイズに基づいて決定する。図３に示すように、それぞれのブリッジ・ロジック・コンポーネント１１０．１〜１１０．ｎは、ＳＡＴＡ記憶デバイスのそれぞれのバッファ３００．１〜３００．ｎのサイズを求めるために、ＳＡＴＡ記憶デバイス１０６．１〜１０６．ｎに問い合わせることができる。
【００２０】
図１を、ＳＡＳトポロジ環境（例えばＳＡＳエキスパンダ１０４を介して結合されるＳＡＳイニシエータ１０２）に関して主に論じたが、スイッチング・デバイス１０４は、任意のイニシエータ・デバイスを複数のＳＡＴＡ記憶デバイスのいずれかに結合する任意の適切なデバイスとし得ることが容易に理解されよう。例えば、スイッチング・デバイス１０４は、イニシエータ・デバイスを複数のＳＡＴＡ記憶デバイスのいずれかに結合するようになされるファイバ・チャネルまたはイーサネット（登録商標）・スイッチとすることができる。なおさらに、イニシエータ１０２は、ＳＡＳ／ＳＴＰイニシエータ・デバイスである必要はなく、それどころかターゲット・デバイスとの連絡を開始するためのどんなデバイスでもよい。したがって、スイッチング・デバイス１０４は、スイッチング・デバイス１０４とイニシエータ１０２との間で使用するプロトコルと、スイッチング・デバイス１０４とＳＡＴＡ記憶デバイス１０６．１〜１０６．ｎとの間で使用するプロトコルとの間で変換を行うためのプロトコル変換機能を備えることもできる。
【００２１】
完全に機能的なスイッチング・デバイス１０４の中にあり得る、数多くの追加のコンポーネントおよび等価のコンポーネントを当業者なら容易に理解されよう。本明細書では、この議論を簡単かつ簡潔にするためにそうした追加のコンポーネントおよび等価のコンポーネントは省略する。したがって、図１から図３に示した特徴は、単に本明細書の強化された特徴および態様を実施するための例示的実施形態を提案することを目的とするに過ぎない。具体的には、ブリッジ・ロジック１１０は、単一の回路コンポーネントとして、複数のブリッジ・ロジック回路（バックエンド・ポートごとに１つ）として実装することができ、またはスイッチング・デバイス１０４の他の回路コンポーネントに統合することができる。そのような設計上の選択は当業者によく知られている。さらに、特定の環境に適合するように、完全に機能的なスイッチング・デバイス１０４の中には任意の数のポート・ロジック要素があってよいことを当業者なら容易に理解されよう。なおさらに、企業の特定の需要に沿うように、スイッチング・デバイス１０４を任意の所望の数のイニシエータ・デバイスおよびＳＡＴＡ記憶デバイスに結合することができる。
【００２２】
図４は、本明細書の諸特徴および諸態様による、強化されたスイッチング・デバイス（例えばＳＡＳエキスパンダ）により、イニシエータ・デバイスと複数のＳＡＴＡ記憶デバイスとの間の通信を改善するための例示的方法を示す流れ図である。図４の方法は、図１の強化されたＳＡＳエキスパンダ１０４内で広く実施可能であり、より詳細には、強化されたＳＡＳエキスパンダ１０４のブリッジ・ロジック１１０に関連して実施可能であり得る。ステップ４００で、ＳＡＳ／ＳＴＰイニシエータから入出力要求を受信する。受信した要求は、指示される入出力要求に対して記憶デバイスが準備することを要求する適切なコマンドＦＩＳ（例えば書き込みコマンドと、ＳＡＴＡ記憶デバイスがデータを受信する準備ができたときにその後に続く、ＳＡＳ／ＳＴＰイニシエータからＳＡＴＡ記憶デバイスへのいくつかのデータＦＩＳ）として、識別したＳＡＴＡ記憶デバイスに転送する。ステップ４０２で、エキスパンダが、その識別したＳＡＴＡ記憶デバイスから第１のＤＭＡセットアップＦＩＳを受信する。そのＤＭＡセットアップＦＩＳは、単一のＤＭＡ操作で転送することができるデータ量の最大カウント（例えば「オリジナル」カウント）を含む。このオリジナル・カウントは、ＳＡＴＡ記憶デバイスであって、そこからＤＭＡセットアップＦＩＳを受信した、ＳＡＴＡ記憶デバイスに対応するブリッジ・ロジックに関連するメモリまたはレジスタに保存することができる。ステップ４０４で、ＳＡＳ／ＳＴＰイニシエータに送信しようとする、複数の修正されたＤＭＡセットアップＦＩＳのそれぞれに使用すべきサブカウントを決定する。上記に述べたように、このサブカウントは、所定の固定バッファ・サイズとして決定することができ、またはブリッジ・ロジックに関連するおよび／もしくは識別したＳＡＴＡ記憶デバイスに関連するバッファのサイズに基づいて決定することができる。
【００２３】
ステップ４０６で、修正されたＤＭＡセットアップＦＩＳをＳＡＳ／ＳＴＰイニシエータに送信する。この修正されたＤＭＡセットアップＦＩＳは、決定したサブカウント（または入出力要求に関する、より少ない残りの転送カウント）を含む。この修正されたＤＭＡセットアップＦＩＳは、ＳＡＴＡ記憶デバイス内のオーバーヘッド処理または他の待ち時間が原因でＳＡＴＡ記憶デバイスがデータ転送を停止させるべき長時間にわたり、ＳＡＳ／ＳＴＰイニシエータのＤＭＡ回路（ならびにＳＡＳエキスパンダに関連する任意のＤＭＡ回路）が縛り付けられないよう、ＳＡＳ／ＳＴＰイニシエータがより小さいＤＭＡ転送に備えることを可能にする。ステップ４０８で、修正されたＤＭＡセットアップＦＩＳ内で提供されるサブカウントに等しい最大カウントまで、ＳＡＳエキスパンダが、ＳＡＳ／ＳＴＰイニシエータからその識別したＳＡＴＡ記憶デバイスにデータを転送する。ステップ４１０は、サブカウント・データ量が転送されているかどうか（または入出力要求の転送全体が完了しているかどうか）判定する。転送されていない場合、ステップ４０８にループ・バックし、サブカウントを使い尽くす（または入出力要求全体を転送する）まで、ＳＡＳ／ＳＴＰイニシエータからＳＡＴＡ記憶デバイスにデータを転送し続けて処理は続行する。ステップ４１２で、受信したＤＭＡセットアップＦＩＳのオリジナル・カウントに等しいデータ量が、ＳＡＳ／ＳＴＰイニシエータからＳＡＴＡ記憶デバイスに転送されているかどうか、ＳＡＳエキスパンダのブリッジ・ロジックが判定する。転送されていない場合、ステップ４０６にループ・バックし、ＳＡＳ／ＳＴＰイニシエータから別のサブカウント・データ量を転送することを可能にする、次の修正されたＤＭＡセットアップＦＩＳを伝送して処理は続行する。オリジナル・カウントのデータ量が転送されている場合、ステップ４１４は次に、受信した入出力要求の全体を完了するためにさらに多くのデータを転送する必要があるかどうか判定する。さらに多くのデータを転送する必要がある場合、ステップ４０２にループ・バックし、ＳＡＴＡ記憶デバイスから次のＤＭＡセットアップＦＩＳを受信するのを待って処理は続行する。入出力要求のすべてのデータが完全に転送される場合、次いでステップ４１６は、ＳＡＳ／ＳＴＰイニシエータに返してそれによりその入出力要求を完了するための完了ステータスを、ＳＡＴＡ記憶デバイスから受信する。
【００２４】
したがって図４の方法は、ＳＡＴＡ記憶デバイスから受信するそれぞれのＤＭＡセットアップＦＩＳ内のオリジナル・カウントを、ＳＡＳ／ＳＴＰイニシエータに送信される複数の修正されたＤＭＡセットアップＦＩＳへと分割しまたは細分する。それぞれの修正されたＤＭＡセットアップＦＩＳは、受信されるＤＭＡセットアップＦＩＳの最大オリジナル・カウントの部分集合であるサブカウントを含む。この方法により、ＳＡＳ／ＳＴＰイニシエータ（具体的にはＳＡＳ／ＳＴＰイニシエータのＤＭＡ回路）は、単一のＳＡＴＡ記憶デバイスが、自らの中のオーバーヘッド処理に起因する遅延または待ち時間を引き起こす可能性がある間、その単一のＳＡＴＡ記憶デバイスに縛り付けられ、その単一のＳＡＴＡ記憶デバイス専用になる必要がない。むしろ、ＳＡＳ／ＳＴＰイニシエータ（より詳細にはイニシエータのＤＭＡ回路）は、ＳＡＳエキスパンダに結合される他のＳＡＴＡ記憶デバイスへの同様の転送を開始するよう再構成することができる。このように、複数の記憶デバイスのうちのいずれか１つの待ち時間およびオーバーヘッド処理が原因で引き起こされる遅延を減らすことにより、ＳＡＳ／ＳＴＰイニシエータと複数のＳＡＴＡ記憶デバイスとの間の通信におけるシステムの全体的性能を改善することができる。
【００２５】
図４の方法は、複数の記憶デバイスのそれぞれについて実質的に同時に実施可能であることを当業者なら容易に理解されよう。つまり、強化されたＳＡＳエキスパンダのブリッジ・ロジックは、ＳＡＳ／ＳＴＰイニシエータと複数の記憶デバイスとの間の複数のＤＭＡ転送のそれぞれについて図４の方法を実行する。
【００２６】
図５から図７は、ＳＡＴＡ記憶デバイスから受信するＤＭＡセットアップＦＩＳ内のオリジナル・カウントより少ないサブカウント値を決定するための、図４のステップ４０４についての例示的な追加詳細を提供する流れ図である。図５に示すある例示的実施形態では、ステップ５００が、サブカウントを所定の固定バッファ・サイズとして決定する。所定の固定バッファ・サイズは、ＳＡＳエキスパンダを導入しもしくは構成する際に管理者が設定することができ、かつ／またはＳＡＳエキスパンダの、静的に構成されるパラメータとして決定することができる。所定の固定サイズを管理者が手動で決定する場合、適切なサイズを選択する際、例えば過去の性能測定と比較した所望の性能目標、記憶デバイスのいずれかまたはすべての中の知られているバッファ・サイズ、等を含む任意の数のヒューリスティックおよび要素を考慮に入れることができる。図６に示す別の例示的実施形態では、ステップ６００が、ＳＡＴＡ記憶デバイスに関連するブリッジ・ロジック内のバッファのサイズに基づいてサブカウントを決定する。強化されたＳＡＳエキスパンダのブリッジ・ロジックは、１つのメモリ・バッファを含むことができ、そのメモリ・バッファは、複数の記憶デバイスのうちの対応する１つで使用するためにバッファの一部分を提供するよう、論理的に細分される。あるいは、このブリッジ・ロジックは、ＳＡＴＡ記憶デバイスのうちの対応する１つにそれぞれが関連する別個のバッファ・メモリを含むことができる。図７に示すさらに別の例示的実施形態では、ＳＡＴＡ記憶デバイスのそれぞれの中にあるバッファのバッファ・サイズに基づいてサブカウントを決定することができる。そのような実施形態では、ステップ７００は、ＳＡＴＡ記憶デバイスのバッファ・サイズを求めるために、ＳＡＴＡ記憶デバイスに問い合わせることができ、ステップ７０２は、対応するＳＡＴＡ記憶デバイスのバッファ・サイズに等しくサブカウント値を設定することができる。あるいは、ステップ７０２は、ＳＡＴＡ記憶デバイスのバッファ・サイズとの関連から導き出される値（例えばそのＳＡＴＡ記憶デバイスに関連する総バッファ・サイズの所定のパーセンテージ分）にサブカウント値を設定することができる。
【００２７】
図４から図７の方法の処理において行うことができる、数多くの追加のステップおよび等価のステップを当業者なら容易に理解されよう。例えば、修正されたＤＭＡ転送の途中で生じる異常状態から回復するために、当業者によく知られているエラー回復技法および再試行技法を使用することができる。本明細書では、この議論を簡単かつ簡潔にするためにそうした追加のステップおよび等価のステップは省略する。
【００２８】
本発明を、諸図面および前述の記載において例証し説明してきたが、そうした例証および説明は、特徴の点で限定的でなく例示的とみなすべきである。本発明の１つの実施形態およびその軽微な改変形態を図示し、説明してきた。具体的には、例示的なソフトウェアまたはファームウェアの実施形態として図示し説明した特徴は、カスタマイズされたロジック回路として同等に実施することができ、その逆の場合も同様である。本発明の趣旨の範囲に含まれるすべての変更および修正に対して保護が望まれる。本発明の範囲に含まれる、上記に記載した実施形態の改変形態を当業者なら理解されよう。その結果、本発明は上記で論じた特定の例および例証に限定されず、特許請求の範囲およびその等価物によってのみ限定される。
【図１】
2012048704.tif 000003
【図２】
2012048704.tif 000004
【図３】
2012048704.tif 000005
【図４】
2012048704.tif 000006
【図５】
2012048704.tif 000007
【図６】
2012048704.tif 000008
【図７】
2012048704.tif 000009