(57)【特許請求の範囲】
【請求項１】
シリアルアタッチド小型コンピュータシステムインターフェース（ＳＡＳ）エクスパンダを含むストレージシステムにおけるデータ読み出しを実行するための方法であって、
イニシエータとターゲットとの間の接続に関連付けられた情報と前記ＳＡＳエクスパンダの蓄積交換プロセスにより収集された情報とを含んでいるデータアクセス情報を収集するステップと、
前記イニシエータと前記ターゲットとの間の前記接続が利用閾値を超えているか否かを、前記イニシエータと前記ターゲットとの間の前記接続に関連付けられた情報と前記ＳＡＳエクスパンダの前記蓄積交換プロセスにより収集された情報とを含んでいる前記データアクセス情報に基づいて判断する判断ステップと、
前記イニシエータから前記ターゲットの少なくとも１つのデータブロックのデータ要求を受信するステップと、
前記イニシエータと前記ターゲットとの間の前記接続が前記利用閾値を超えていると判断したとき、前記データ要求に基づいて、前記イニシエータからの今後のデータ要求内に含まれる、前記ターゲットの少なくとも１つの見込みデータブロックを特定する見込みデータブロック特定ステップと、
前記ターゲットが他のタスクの処理でビジーでない場合に、前記ＳＡＳエクスパンダにより、前記ターゲットに対し、前記少なくとも１つのデータブロック及び前記少なくとも１つの見込みデータブロックを要求するデータ要求を発行するデータ要求発行ステップと、
前記少なくとも１つのデータブロックを受信するステップと、
前記少なくとも１つのデータブロックを受信したとき、前記ターゲットから前記少なくとも１つの見込みデータブロックを受信する見込みデータブロック受信ステップと、
前記ターゲットから前記少なくとも１つの見込みデータブロックを受信したとき、前記ＳＡＳエクスパンダ内に前記ターゲットからの前記少なくとも１つの見込みデータブロックを格納するステップと
を含むことを特徴とする方法。
【請求項２】
請求項１記載の方法において、該方法はさらに、
前記イニシエータから、前記ターゲットの前記少なくとも１つの見込みデータブロックを要求する追加のデータ要求を受信するステップと、
前記ＳＡＳエクスパンダ内に格納されている前記少なくとも１つの見込みデータブロックの少なくとも１つが有効であるか否かを判断するステップと、
前記ＳＡＳエクスパンダに格納されている前記少なくとも１つの見込みデータブロックの前記少なくとも１つが有効であると判断すると、前記イニシエータに対して、前記ＳＡＳエクスパンダに格納されている前記少なくとも１つの見込みデータブロックの前記少なくとも１つを送信するステップと
を含むことを特徴とする方法。
【請求項３】
請求項１記載の方法において、前記イニシエータと前記ターゲットとの間の前記接続に関連付けられた前記情報は、前記イニシエータと前記ターゲットとの間の前記接続の利用頻度、又は前記イニシエータと前記ターゲットとの間の前記接続を介して転送されるデータ量の少なくとも一方に関連付けられた情報を含んでいることを特徴とする方法。
【請求項４】
請求項３記載の方法において、前記エクスパンダの前記蓄積交換プロセスにより収集される前記情報は、前記イニシエータと前記ターゲットとの間の前記接続を介して送信される、ペイロードサイズ情報、タグ情報、論理ブロックアドレス情報、及びコマンドの識別情報を含むことを特徴とする方法。
【請求項５】
請求項１記載の方法において、前記利用閾値は、ユーザーにより設定可能な利用閾値及びプログラム可能な利用閾値の少なくとも一方を含むことを特徴とする方法。
【請求項６】
請求項１記載の方法において、前記見込みデータブロック特定ステップは、
先行する一連の要求されたデータブロックに基づいて、前記ターゲットの少なくとも１つの見込みデータブロックを特定するステップ
を含むことを特徴とする方法。
【請求項７】
請求項１記載の方法において、前記見込みデータブロック特定ステップは、
前記少なくとも１つのデータブロックに対する論理ブロックアドレス近接度に基づいて、前記少なくとも１つの見込みデータブロックを特定するステップ
を含むことを特徴とする方法。
【請求項８】
請求項１記載の方法において、前記見込みデータブロック特定ステップは、
前記少なくとも１つのデータブロックのコンテンツ関連性に基づいて、前記少なくとも１つの見込みデータブロックを特定するステップ
を含むことを特徴とする方法。
【請求項９】
請求項１記載の方法において、前記データ要求発行ステップは、
前記ＳＡＳエクスパンダにより前記ターゲットに対して、前記少なくとも１つのデータブロックを要求する少なくとも１つの第１のデータ要求を発行するステップと、
前記ＳＡＳエクスパンダにより前記ターゲットに対して、前記少なくとも１つの見込みデータブロックを要求する少なくとも１つの第２のデータ要求を発行するステップと
を含むことを特徴とする方法。
【請求項１０】
請求項１記載の方法において、該方法はさらに、
前記ＳＡＳエクスパンダに格納されている前記少なくとも１つの見込みデータブロックの少なくとも１つが無効であると判断すると、前記ＳＡＳエクスパンダに格納されている前記少なくとも１つの見込みデータブロックの前記少なくとも１つを更新するステップ
を含むことを特徴とする方法。
【請求項１１】
システムであって、
イニシエータとターゲットとの間の接続に関連付けられたデータアクセス情報を収集するデータアクセス情報収集手段と、
前記イニシエータと前記ターゲットとの間の前記接続が利用閾値を超えているか否かを、前記接続に関連付けられた前記データアクセス情報に基づいて判断する判断手段と、
前記イニシエータから、前記ターゲットの少なくとも１つのデータブロックを要求するデータ要求を受信する手段と、
前記イニシエータと前記ターゲットとの間の前記接続が前記利用閾値を超えていると判断したとき、前記データ要求に基づいて、前記イニシエータからの後続のデータ要求に含まれる、前記ターゲットの少なくとも１つの見込みデータブロックを特定する見込みデータブロック特定手段と、
前記ターゲットが他のタスクの処理でビジーでない場合に、ＳＡＳエクスパンダにより、前記ターゲットに対し、前記少なくとも１つのデータブロック及び前記少なくとも１つの見込みデータブロックを要求する少なくとも１つのデータ要求を発行する手段と、
前記少なくとも１つのデータブロックを受信する手段と、
前記少なくとも１つのデータブロックを受信したとき、前記ターゲットから前記少なくとも１つの見込みデータブロックを受信する手段と、
前記ターゲットからの前記少なくとも１つの見込みデータブロックを受信したとき、該少なくとも１つの見込みデータブロックを前記ＳＡＳエクスパンダ内に格納する手段と、
前記イニシエータから、前記少なくとも１つの見込みデータブロックの少なくとも１つを要求する追加のデータ要求を受信する手段と、
前記ＳＡＳエクスパンダに格納されている前記少なくとも１つの見込みデータブロックの少なくとも１つが有効であるかどうかを判断する手段と、
前記少なくとも１つの見込みデータブロックの前記少なくとも１つが有効であると判断したとき、前記イニシエータに前記少なくとも１つの見込みデータブロックの前記少なくとも１つを送信する手段と、
前記少なくとも１つの見込みデータブロックの前記少なくとも１つが有効ではないと判断したとき、前記ＳＡＳエクスパンダに格納された少なくとも１つの見込みデータブロックの前記少なくとも１つを更新する手段と
を備えることを特徴とするシステム。
【請求項１２】
請求項１１記載のシステムにおいて、前記データアクセス情報収集手段は、
前記イニシエータと前記ターゲットとの間の前記接続の利用頻度、及び前記イニシエータと前記ターゲットとの間の前記接続を介して転送されるデータ量の少なくとも一方に関連付けられたデータアクセス情報を収集する手段
を含むことを特徴とするシステム。
【請求項１３】
請求項１１記載のシステムにおいて、前記イニシエータと前記ターゲットとの間の前記接続に関連付けられる前記データアクセス情報は、
前記イニシエータと前記ターゲットとの間の前記接続を介して送信される、ペイロードサイズ情報、タグ情報、論理ブロックアドレス情報、又はコマンドの識別情報
を含むことを特徴とするシステム。
【請求項１４】
請求項１１記載のシステムにおいて、該システムはさらに、
前記ＳＡＳエクスパンダに格納されている少なくとも１つの見込みデータブロックの前記少なくとも１つが有効ではないと判断したとき、前記ＳＡＳエクスパンダに格納されている前記少なくとも１つの見込みデータブロックの前記少なくとも１つを更新する手段
を備えることを特徴とするシステム。
【請求項１５】
シリアルアタッチド小型コンピュータシステムインターフェース（ＳＡＳ）エクスパンダデバイスであって、
イニシエータとデータ通信可能に結合するための第１のポートと、
ターゲットとデータ通信可能に結合するための第２のポートと、
データを格納するためのキャッシュメモリと、
前記第１のポート、前記第２のポート、及び前記キャッシュメモリに通信可能に結合されたプロセッサであって、
前記イニシエータと前記ターゲットとの間の接続に関連付けられるデータアクセス情報であって、前記イニシエータと前記ターゲットとの間の前記接続の利用頻度、前記イニシエータと前記ターゲットとの間の前記接続を介して転送されるデータ量、並びに前記イニシエータと前記ターゲットとの間の前記接続を介して送信される、ペイロードサイズ情報、タグ情報、論理ブロックアドレス情報、及びコマンドの識別情報のうちの少なくとも１つを含む、データアクセス情報を収集するデータアクセス情報収集ステップと、
前記イニシエータと前記ターゲットとの間の前記接続が利用閾値を超えているか否かを、前記イニシエータと前記ターゲットとの間の前記接続に関連付けられた前記データアクセス情報に基づいて判断する判断ステップと、
前記イニシエータから、前記ターゲットの少なくとも１つのデータブロックを要求するデータ要求を受信するステップと、
前記イニシエータと前記ターゲットとの間の前記接続が前記利用閾値を超えていると判断したとき、前記データ要求に基づいて、前記イニシエータからの後続のデータ要求内に含まれる、前記ターゲットの少なくとも１つの見込みデータブロックを特定する見込みデータブロック特定ステップと、
前記ターゲットが他のタスクの処理でビジーではないときに、ＳＡＳエクスパンダにより、前記ターゲットに対して前記少なくとも１つのデータブロック及び前記少なくとも１つの見込みデータブロックを要求する少なくとも１つのデータ要求を発行するステップと、
前記少なくとも１つのデータブロックを受信するステップと、
前記少なくとも１つのデータブロックを受信したとき、前記ターゲットから前記少なくとも１つの見込みデータブロックを受信するステップと、
前記ターゲットから前記少なくとも１つの見込みデータブロックを受信したときに、前記ＳＡＳエクスパンダの前記キャッシュメモリに前記ターゲットからの前記少なくとも１つの見込みデータブロックを格納するステップと、
前記イニシエータから、前記少なくとも１つの見込みデータブロックの少なくとも１つを要求する追加のデータ要求を受信するステップと、
前記ＳＡＳエクスパンダに格納されている前記少なくとも１つの見込みデータブロックの前記少なくとも１つが有効であるか否かを判断するステップと、
前記ＳＡＳエクスパンダに格納されている前記少なくとも１つの見込みデータブロックの前記少なくとも１つが有効であると判断したときに、前記イニシエータに対して、前記キャッシュメモリから前記少なくとも１つの見込みデータブロックの前記少なくとも１つを送信するステップと、
前記ＳＡＳエクスパンダ内に格納されている前記少なくとも１つの見込みデータブロックの前記少なくとも１つが無効であると判断したとき、該少なくとも１つを更新するステップと
を行うためのインストラクションを実行するプロセッサと
を備えていることを特徴とするＳＡＳエクスパンダデバイス。
【請求項１６】
請求項１５記載のＳＡＳエクスパンダデバイスにおいて、前記見込みデータブロック特定ステップは、
先行する一連の要求されたデータブロックに基づいて、前記ターゲットの前記少なくとも１つの見込みデータブロックを特定するステップ
を含むことを特徴とするＳＡＳエクスパンダデバイス。
【請求項１７】
請求項１５記載のＳＡＳエクスパンダデバイスにおいて、前記見込みデータブロック特定ステップは、
前記少なくとも１つのデータブロックに対する論理ブロックアドレス近接度に基づいて、前記少なくとも１つの見込みデータブロックを特定するステップ
を含むことを特徴とするＳＡＳエクスパンダデバイス。
【請求項１８】
請求項１１記載のシステムにおいて、
前記データアクセス情報収集手段は、前記イニシエータと前記ターゲットとの間の前記接続に関連する情報と前記ＳＡＳエクスパンダの蓄積交換プロセスにより収集された情報とを含むデータアクセス情報を収集する手段を含んでおり、
前記判断手段は、前記イニシエータと前記ターゲットとの間の前記接続に関連する情報と前記ＳＡＳエクスパンダの蓄積交換プロセスにより収集された情報とを含むデータアクセス情報に基づいて、前記イニシエータと前記ターゲットとの間の前記接続が、前記利用閾値を超えているかどうかを判断する手段を含んでいる
ことを特徴とするシステム。
【請求項１９】
請求項１５記載のＳＡＳエクスパンダデバイスにおいて、
前記データアクセス情報収集ステップは、前記イニシエータと前記ターゲットとの間の接続に関連付けられた情報と前記ＳＡＳエクスパンダの蓄積交換プロセスによって収集された情報とを含むデータアクセス情報であって、前記イニシエータと前記ターゲットとの間の前記接続の利用頻度、前記イニシエータと前記ターゲットとの間の前記接続を介して転送されるデータ量、並びに、前記イニシエータと前記ターゲットとの間の前記接続を介して送信される、ペイロードサイズ情報、タグ情報、論理ブロックアドレス情報、及びコマンドの識別情報のうちの少なくとも１つを含む、データアクセス情報を収集するステップを含み、
前記判断ステップは、前記イニシエータと前記ターゲットとの間の前記接続が前記利用閾値を超えているか否かを、前記イニシエータと前記ターゲットとの間の前記接続に関連付けられた情報と前記ＳＡＳエクスパンダの前記蓄積交換プロセスにより収集された前記情報とを含む前記データアクセス情報に基づいて判断するステップを含んでいる
ことを特徴とするＳＡＳエクスパンダ。
【請求項２０】
請求項1記載の方法において、前記見込みデータブロック受信ステップは、前記少なくとも１つのデータブロックを受信したときに前記ターゲットがアイドル状態の場合に、前記ターゲットから前記少なくとも１つの見込みデータブロックを受信するステップを含んでいることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、包括的にはシリアルアタッチド小型コンピュータシステムインターフェース（ＳＡＳ）デバイスの分野に関し、より詳細には、ＳＡＳエクスパンダを利用してデータプリフェッチを実行するためのデバイス、システム、及び方法に関する。
【背景技術】
【０００２】
シリアルアタッチドＳＣＳＩにおいて、デバイスは、ＳＡＳイニシエータ、ＳＡＳターゲット、又はＳＡＳエクスパンダである。ＳＡＳイニシエータは、デバイスサービス要求及びタスク管理要求を発信するデバイスである。ＳＡＳターゲットは、ＳＡＳターゲットからの要求を受信及び処理するデバイスである。ＳＡＳエクスパンダは、単一のポートに対する複数のＳＡＳイニシエータ又はＳＡＳターゲット間の通信を容易にするのに利用されるデバイスである。ＳＡＳトポロジにおいて、複数のＳＡＳエクスパンダがカスケード形式で互いに接続される場合がある。ＳＡＳイニシエータ又はＳＡＳターゲットは、ＳＡＳトポロジ内で該ＳＡＳイニシエータ又はＳＡＳターゲットに対し複数の要求が発生する場合、他のタスクを実行するのにビジーである場合がある。
【発明の概要】
【０００３】
ストレージシステムにおけるデータ読み出しを容易にするための方法を提供する。該方法は、限定ではないが、イニシエータとターゲットとの間の接続に関連付けられるデータアクセス情報を収集するステップと、前記イニシエータと前記ターゲットとの間の前記接続が利用率閾値を超えているか否かを判断するステップであって、該判断は、前記イニシエータと前記ターゲットとの間の前記接続に関連付けられる前記データアクセス情報に基づいている、判断するステップと、前記イニシエータから前記ターゲットの少なくとも１つの第１のデータブロックの第１のデータ要求を受信するステップと、前記イニシエータと前記ターゲットとの間の前記接続が前記利用率閾値を超えていると判断すると、前記第１のデータ要求に基づいて、前記イニシエータからの今後のデータ要求内に含まれる、前記ターゲットの少なくとも１つの第２の見込みデータブロックを特定するステップと、前記ターゲットに対し、前記少なくとも１つの第２の見込みデータブロックの第２のデータ要求を発行するステップと、前記ターゲットから、前記少なくとも１つの第２の見込みデータブロックを受信するステップと、ＳＡＳエクスパンダ内に前記ターゲットからの前記少なくとも１つの第２の見込みデータブロックを格納するステップとを含む。
【０００４】
本発明にかかるシステムは、限定ではないが、イニシエータとターゲットとの間の接続に関連付けられるデータアクセス情報を収集する手段と、前記イニシエータと前記ターゲットとの間の前記接続が利用率閾値を超えているか否かを判断する手段であって、該判断は、前記イニシエータと前記ターゲットとの間の前記接続に関連付けられる前記データアクセス情報に基づく、判断する手段と、前記イニシエータから前記ターゲットの少なくとも１つの第１のデータブロックの第１のデータ要求を受信する手段と、前記イニシエータと前記ターゲットとの間の前記接続が前記利用率閾値を超えていると判断すると、前記データ要求に基づいて、前記イニシエータからの今後のデータ要求内に含まれる、前記ターゲットの少なくとも１つの第２の見込みデータブロックを特定する手段と、前記ターゲットに対し、前記少なくとも１つの第２の見込みデータブロックの第２のデータ要求を発行する手段と、前記ターゲットから、前記少なくとも１つの第２の見込みデータブロックを受信する手段と、前記ターゲットからの前記少なくとも１つの第２の見込みデータブロックを格納する手段と、を備えている。
【０００５】
本発明にかかるＳＡＳエクスパンダデバイスは、限定ではないが、データ通信のイニシエータと通信可能に結合するための第１のポートと、データ通信のターゲットと通信可能に結合するための第２のポートと、データを格納するためのキャッシュメモリと、前記第１のポート、前記第２のポート、及び前記キャッシュメモリに通信可能に結合されたプロセッサであって、データ読み出しを容易にするための方法を実行するように構成される、プロセッサと、を備え、前記方法は、前記イニシエータと前記ターゲットとの間の接続に関連付けられるデータアクセス情報を収集するステップと、前記イニシエータと前記ターゲットとの間の前記接続が利用率閾値を超えているか否かを判断するステップであって、該判断は、前記イニシエータと前記ターゲットとの間の前記接続に関連付けられる前記データアクセス情報に基づく、判断するステップと、前記イニシエータから前記ターゲットの少なくとも１つの第１のデータブロックの第１のデータ要求を受信するステップと、前記イニシエータと前記ターゲットとの間の前記接続が前記利用率閾値を超えていると判断すると、前記第１のデータ要求に基づいて、前記イニシエータからの今後のデータ要求内に含まれる、前記ターゲットの少なくとも１つの第２の見込みデータブロックを特定するステップと、前記ターゲットに対し、前記少なくとも１つの第２の見込みデータブロックの第２のデータ要求を発行するステップと、前記ターゲットから、前記少なくとも１つの第２の見込みデータブロックを受信するステップと、前記キャッシュメモリ内に前記ターゲットからの前記少なくとも１つの第２の見込みデータブロックを格納するステップと、を含む。
【０００６】
上記の概説及び以下の詳細な説明は共に、例示的で説明的なものでしかなく、必ずしも本開示を限定するものではないことを理解されたい。本明細書に組み込まれ、その一部を成す添付の図面は、本開示の主題を説明する。詳細な説明及び図面は共に、本開示の原理を説明するのに役立つ。
添付の図面を参照することにより、当業者は本開示の多数の利点をより良く理解することができるであろう。
【図面の簡単な説明】
【０００７】
【図１】ＳＡＳエクスパンダを利用するネットワークトポロジーを示すブロック図である。
【図２】データプリフェッチのためのコマンドシーケンスプロシージャを示すフロー図である。
【図３】ストレージシステムにおけるデータ読み出しを容易にするための方法を示すフロー図である。
【発明を実施するための形態】
【０００８】
これより、添付の図面を参照して、本発明主題を詳細に説明する。
【０００９】
本開示の例示的な実施形態による、シリアルアタッチド小型コンピュータシステムインターフェース（ＳＡＳ）エクスパンダ(expander)を特徴とするＳＡＳネットワークが図１に示されている。ネットワーク１００はＳＡＳエクスパンダ１１０を含むことができる。ネットワーク１００は、データ通信のためにエクスパンダ１１０に接続された１又は複数のソースデバイス１２０を含むことができる。例えば、ソースデバイス１２０には、イニシエータ（例えばホストシステム、サーバーシステム）又は別のＳＡＳエクスパンダが含まれる場合がある。１又は複数のソースデバイス１２０は、エクスパンダ１１０のソースデバイスポート１３０を介してエクスパンダ１１０に接続することができる。ネットワーク１００は、データ通信のためにエクスパンダ１１０に接続された１又は複数の宛先デバイス１４０を含むことができる。例えば、宛先デバイス１４０には、ターゲット（例えばＳＡＳディスク、ＳＡＳ互換性ディスク、ＳＡＳディスクアレイ、又はＳＡＴＡディスクアレイ）又は別のＳＡＳエクスパンダが含まれる場合がある。１又は複数の宛先デバイス１４０は、エクスパンダ１１０の宛先デバイスポート１５０を介してエクスパンダ１１０に接続することができる。
【００１０】
エクスパンダ１１０は、エクスパンダ１１０の制御及び操作のためのプロセッサ１６０をさらに備えることができる。エクスパンダ１１０は、エクスパンダ１１０内のデータの格納のためにプロセッサ１６０に通信可能に結合されたメモリ１７０をさらに備えることができる。エクスパンダ１１０は、ソースデバイスポート１３０を介してエクスパンダ１１０に接続されたイニシエータと、宛先デバイスポート１５０を介してエクスパンダ１１０に接続されたターゲットとの間の接続を確立するように構成される。エクスパンダ１１０は、ソースデバイスポート１３０を介してエクスパンダ１１０に直接接続されたイニシエータ（例えばソースデバイス１２０）のための接続を確立することもできるし、ソースデバイスポート１３０を介してエクスパンダ１１０に接続された１又は複数のエクスパンダのネットワークを介してエクスパンダ１１０に接続されたイニシエータのための接続を確立することもできる。エクスパンダ１１０は、ソースデバイスポート１３０を介してエクスパンダ１１０に直接接続されたターゲット（例えば宛先デバイス１４０）との接続を確立することもできるし、宛先デバイスポート１５０を介してエクスパンダ１１０に接続された１又は複数のエクスパンダのネットワークを介してエクスパンダ１１０に接続されたターゲットとの接続を確立することもできる。ネットワーク１００の特定のイニシエータ及びネットワーク１００の特定のターゲットを含んで確立された接続は、ネクサス（nexus）と呼ばれる。図１に示すように、プロセッサ１６０及びメモリ１７０は、エクスパンダ１１０内で動作することができる。別の実施形態では、プロセッサ１６０及びメモリ１７０のうちの１又は複数が、ストレージシステムの一部としてエクスパンダ１１０の外部で動作することができる。
【００１１】
エクスパンダ１１０のプロセッサ１６０は、ネットワーク１００の特定のネクサスに関連付けられるデータアクセス情報を収集することができる。リンク利用率情報は、単一のポート（例えば、ソースデバイスポート１３０又は宛先デバイスポート１５０のうちの一方）に関連付けられる情報を含むことができる。例えば、リンク利用率情報は、利用比率（例えば、リンクが確立されている時間に対する該リンクが利用されている時間の比率）、又は帯域幅要件（例えば、リンクを介するデータ転送率）の１又は複数を含むことができる。プロセッサ１６０は、特定のイニシエータ及び特定のターゲットについて確立された接続に関するリンク利用率情報の複数のセットを収集し、該リンク利用率情報を、ネクサス利用情報を提供するように適合することができる。ネクサス利用情報は、ネクサス利用比率（例えば、ネクサスが確立されている時間に対する該ネクサスが利用されている時間の比率）又はネクサス帯域幅要件（例えば、ネクサスを介するデータ転送率）のうちの１又は複数を含むことができる。プロセッサ１６０は、ネクサス利用情報を介して、ネットワーク１００の特定のネクサスに関連付けられるデータアクセス情報を収集することができる。
【００１２】
ネットワーク１００の特定のネクサスに関連付けられるデータアクセス情報は、エクスパンダ１１０によって実行される蓄積交換プロセスに関連付けられる情報をさらに含むことができる。蓄積交換(Store and Forward)プロセスにおいて、エクスパンダは、イニシエータからの接続を受容することができる。エクスパンダは、接続の所望のターゲットとの接続を確立する前に、イニシエータから送出されるフレームをバッファ記憶することができる。蓄積交換プロセスは、エクスパンダに、接続のペイロードサイズ（例えば、単一のフレーム内で転送されているデータ量）、接続のデータに関連付けられる１又は複数のタグ（例えば、単一の入力／出力の割り当てられた識別子）、接続に関連付けられる論理ブロックアドレス（ＬＢＡ）、又は接続に関連付けられるコマンドの１又は複数を含むデータアクセス情報に対するアクセスを提供することができる。一実施例では、ホストがエクスパンダを介してドライブへの接続を開始することができる。別の実施例では、ドライブがエクスパンダを介してホストへの接続を開始することができる。蓄積交換データアクセス情報は、プロセッサ１６０によって収集され、ネットワーク１００の特定のネクサスに関連付けられるデータアクセス情報を提供するように適合されることができる。プロセッサ１６０は、蓄積交換データアクセス情報を介して、ネットワーク１００の特定のネクサスに関連付けられるデータアクセス情報を収集することができる。
【００１３】
プロセッサ１６０は、蓄積交換データアクセス情報又はリンク利用率情報のうちの１又は複数を、ネットワーク１００の特定のネクサスの利用頻度に関連付けられる情報を提供するように適合することができる。さらに、プロセッサ１６０は、蓄積交換データアクセス情報又はリンク利用率情報のうちの１又は複数を、ネットワーク１００の特定のネクサスを介して転送されるデータ量に関連付けられる情報を提供するように適合することができる。
【００１４】
プロセッサ１６０は、特定のネクサスに関連付けられる情報を利用して、データプリフェッチ動作がネットワーク１００の特定のネクサスに適しているか否か（例えば、ネットワーク１００の特定のネクサスが高い利用率を有するか否か）を判断することができる。利用率閾値は、特定のネクサスに関連付けられる１又は複数のタイプの情報を含むことができる。例えば、プロセッサ１６０は、ネットワーク１００の特定のネクサスに関連付けられるデータアクセス情報が、利用率閾値を満たすか又は該利用閾値を超えるかを判断することができる。１つの実施例では、プロセッサ１６０は行列を利用して、特定のネクサスに関連付けられる情報が、利用率閾値を満たすか又は該利用閾値を超えるかを判断することができる。利用率閾値はプログラム可能とすることができる。さらに、利用閾値はユーザーにより設定可能とすることができる。
【００１５】
プロセッサ１６０は、データプリフェッチ動作のためのデータブロックを特定することができる。さらに、プロセッサ１６０は、データプリフェッチ動作がネットワーク１００の特定のネクサスに適しているか否かを判断すると、データプリフェッチ動作のためのデータブロックを特定することができる。例えば、プロセッサ１６０は、ネクサスのデータ読み出し要求を受信することができる（例えば、データ読み出し要求はネクサスのイニシエータによって発行され、該データ読み出し要求はネクサスのターゲットに向けられる）。データ読み出し要求は、オリジナルデータセットのデータ読み出し要求である場合がある。プロセッサ１６０は、データ読み出し要求を受信する前に、データプリフェッチ動作が該データ読み出し要求に関連付けられるネクサスに適していることを判断することができる。別の実施形態では、プロセッサ１６０は、データ読み出し要求を受信した後に、データプリフェッチ動作が該データ読み出し要求に関連付けられるネクサスに適しているか否かを判断することができる。
【００１６】
プロセッサ１６０は、オリジナルデータセットに基づいてデータプリフェッチ動作のための見込みデータセットを特定することができる。例えば、プロセッサ１６０は、オリジナルデータセットに対する近接度に基づいて見込みデータセットを特定することができる（例えば、見込みデータセットはオリジナルデータセットのＬＢＡに近接するＬＢＡ内に位置する）。別の実施例では、プロセッサ１６０は、オリジナルデータセットとのコンテンツ関連性に基づいて見込みデータセットを特定することができる（例えば、見込みデータセット及びオリジナルデータセットは共により大きなデータセットの一部である）。別の実施例では、プロセッサ１６０は、オリジナルデータセットとの時間的関連性に基づいて見込みデータセットを特定することができる（例えば、見込みデータセットの前回のデータ読み出し要求は、オリジナルデータセットの前回のデータセット要求の後に発行されている）。別の実施例では、プロセッサ１６０は上記の要因又は関連性（例えば、近接度関連性、コンテンツ関連性、及び時間的関連性）のうちの１又は複数に基づいて見込みデータセットを特定することができる。
【００１７】
見込みデータセットを特定すると、プロセッサ１６０は、ネクサスのイニシエータから見込みデータセットのデータ読み出し要求を受信する前に、ネクサスのターゲットに対し見込みデータセットのデータ読み出し要求を発行することができる。例えば、プロセッサ１６０は、見込みデータセットをオリジナルデータセットと組み合わせて１又は複数のデータ読み出し要求を発行することができる。別の実施例（図示せず）では、プロセッサ１６０は見込みデータセット及びオリジナルデータセットについて別個のデータ読み出し要求を発行することができる。プロセッサ１６０が見込みデータセット及びオリジナルデータセットについて別個のデータ読み出し要求を発行することができる実施例では、プロセッサ１６０は、オリジナルデータセットのデータ読み出し要求を発行した後に見込みデータセットのデータ読み出し要求を発行することができる。さらに、プロセッサ１６０は、データ読み出し要求のターゲット（例えばネクサスのターゲット）のアクティビティが低下した（例えばターゲットがアイドリング状態である）ときに、見込みデータセットのデータ読み出し要求を発行することができる。プロセッサ１６０は、ネクサスのターゲットから見込みデータセットを受信すると、エクスパンダ１１０のメモリ１７０内に見込みデータセットを格納することができる。本明細書において、見込みデータセットをプリフェッチするとは、ネクサスのイニシエータから見込みデータセットのデータ読み出し要求を受信する前に、ネクサスのターゲットに対し見込みデータセットのデータ読み出し要求を発行することを指している。本明細書において、見込みデータセットのプリフェッチキャッシングとは、ネクサスのイニシエータから見込みデータセットのデータ読み出し要求を受信する前に、メモリ１７０内に見込みデータセットを格納することを指している。
【００１８】
プロセッサ１６０は、ネクサスのイニシエータから見込みデータセットのデータ読み出し要求を受信すると、該ネクサスのイニシエータに対し見込みデータセットを発行することができる。別の実施例では、メモリ１７０内に格納されている見込みデータセットを利用して、ネクサスのイニシエータ以外のイニシエータに対し、データ読み出し要求に応じることができる。さらに、プロセッサ１６０は、メモリ１７０内に格納されている見込みデータセットが有効であると判断すると、エクスパンダ１１０のメモリ１７０から、イニシエータに対し見込みデータセットを発行することができる。例えば、エクスパンダ１１０はネクサスのターゲットに直接取り付けることができるため、プロセッサ１６０は、ネクサスのターゲットに対するデータ通信をモニタリングし、該ネクサスのターゲット内の見込みデータセットのＬＢＡ内に格納されているデータが、メモリ１７０内に格納されている見込みデータセットと同一であるか否かを判断することができる。プロセッサ１６０は、メモリ１７０内に格納されている見込みデータセットが無効であると判断すると、メモリ１７０内に格納されている見込みデータセットを更新することができる。例えば、プロセッサ１６０は、ネクサスのターゲットに対するデータ読み出し要求の発行を介して、メモリ１７０内に格納されている見込みデータセットを更新することができる。別の実施例では、プロセッサ１６０は、エクスパンダ１１０を介してネクサスのターゲットに書き込まれているデータを利用して、メモリ１７０内に格納されている見込みデータセットを更新することができる。別の実施形態では、プロセッサ１６０は、メモリ１７０から無効な見込みデータセットを取り除き、見込みデータセットのデータ読み出し要求が、データプリフェッチングの利益を伴わずに動作することを許可する。
【００１９】
プロセッサ１６０は、ネクサスのターゲットがビジーであると判断すると、メモリ１７０から、イニシエータに対し見込みデータセットを発行することができる。別の実施形態では、プロセッサ１６０は、ネクサスのターゲットがビジーであるか否かに関わらず、メモリ１７０から、イニシエータに対する見込みデータセットを発行することができる。エクスパンダ１１０は、メモリ１７０から、イニシエータに対する見込みデータセットを発行するために、ネクサスのターゲットの代わりにデータ読み出し要求を受け取ることができる。
【００２０】
図２を参照すると、データプリフェッチのためのコマンドシーケンスプロシージャ２００を示すフロー図が示されている。プロシージャ２００は、図１において説明されるようなシステム（例えばホスト２０２（例えばネクサスのイニシエータ）、エクスパンダ２０４、及びドライブ２０６（例えばネクサスのターゲット）を含むシステム）において実行することができる。プロシージャ２００は、ドライブ２０６のＬＢＡのセット（例えば、図２に示すＬＢＡ１、２、及び３）内のデータのデータ読み出し要求を示しているステップ２１０を含むことができる。エクスパンダ２０４のプロセッサ（例えばプロセッサ１６０）は、ホスト２０２とドライブ２０６の間のネクサスがデータプリフェッチの対象であることを確定することができる。さらに、プロセッサ（例えばプロセッサ１６０）は、ステップ２１０のデータ読み出し要求を受信する前に、ホスト２０２とドライブ２０６との間のネクサスがデータプリフェッチの対象であることを確定することができる。別の実施例では、プロセッサ（例えばプロセッサ１６０）は、ステップ２１０のデータ読み出し要求を受信した後に、ホスト２０２とドライブ２０６との間のネクサスがデータプリフェッチの対象であることを確定することができる。
【００２１】
図２に示すように、エクスパンダ２０４は、（例えばプロセッサ１６０を介して）オリジナルデータセットに基づいて見込みデータセットを特定する（例えばＬＢＡ４及び５内のデータは、ＬＢＡ１、２、及び３内のデータに基づいて特定される）。その結果、ステップ２２０に示すように、エクスパンダ２０４は、ドライブ２０６（例えばネクサスのターゲット）に対し、オリジナルデータセット及び見込みデータセット双方の単一のデータ読み出し要求（例えばＬＢＡ１、２、３、４、及び５内のデータ）を発行する。ドライブは、データ読み出し要求に応答して、ＬＢＡ１〜５内に格納されているデータを読み出すことができる。例えば、ステップ２２０に示すように、ドライブ２０６はＬＢＡ１のシーク命令及びＬＢＡ５までの順次読み出しを実行することができる。オリジナルデータセット及び見込みデータセットの双方を読み出すための他の方法が本開示によって検討される。
【００２２】
別の実施形態では、エクスパンダ２０４は、ドライブ２０６に対し、オリジナルデータセット及び見込みデータセットについての別個のデータ読み出し要求（図示せず）を発行することができる。特定の実施形態において、エクスパンダ２０４はドライブ２０６のアクティビティが低下したとき（例えばドライブ２０６がアイドルであるとき）に、ドライブ２０６に対しデータ読み出し要求を発行することができる。
【００２３】
プロシージャ２００は、ドライブ２０６がＬＢＡ１〜５内のデータをエクスパンダ２０４に返すことを表すステップ２３０をさらに含むことができる。エクスパンダ２０４は、ドライブ２０６からデータを受信すると、プリフェッチキャッシュ内に見込みデータセットを格納することができる。例えば、プロセッサ１６０は、ドライブ２０６のＬＢＡ４及び５からのデータをメモリ１７０内に格納することができる。
【００２４】
プロシージャ２００は、エクスパンダ２０４がオリジナルデータ読み出し要求のオリジナルデータセットをホスト（例えばネクサスのイニシエータ）に返すことを表すステップ２４０をさらに含むことができる。例えば、プロセッサ１６０は、要求データをＬＢＡ１〜３から発行元ホストに返すことができる。ホスト２０２は該要求データを利用することができる。
【００２５】
プロシージャ２００は、ホスト２０２がドライブ２０６から見込みデータブロックのうちの１又は複数を要求することを表すステップ２５０をさらに含むことができる。例えば、図２に示すように、ホスト２０２は、エクスパンダ２０４に対し、ドライブ２０６のＬＢＡ４内のデータのデータ読み出し要求を発行することができる。エクスパンダ２０４は、メモリ１７０内に格納されているデータが有効である（例えばメモリ１７０内のデータがドライブ２０６内の対応するデータと同一である）と判断すると、ドライブ２０６の代わりにデータ読み出し要求を受け取ることができる。
【００２６】
プロシージャ２００は、エクスパンダ２０４がホスト２０２に対し、メモリ１７０から１又は複数の見込みデータブロックを返すことを示しているステップ２６０を含むことができる。エクスパンダ２０４は、メモリ１７０内に格納されている１又は複数の見込みデータブロックが有効であることを検証すると、ホスト２０２に対し、メモリ１７０から１又は複数の見込みデータブロックを返すことができる。エクスパンダ２０４は、見込みデータブロックの１又は複数のデータ読み出し要求を受信した後に、メモリ１７０内に格納されているデータが有効であることを検証することができる。別の実施例では、エクスパンダ２０４は、見込みデータブロックをメモリ１７０内に格納した後に、ドライブ２０６に書き込まれたデータのモニタリングを介して、メモリ１７０内に格納されているデータが有効であることを検証することができる。ホスト２０２は、エクスパンダ２０４から１又は複数の見込みデータブロックを受信すると、該１又は複数の見込みデータブロックを利用することができる。
【００２７】
図３を参照すると、ストレージシステムにおけるデータ読み出しを容易にするための方法が示されている。該方法３００は、イニシエータ（例えばホスト２０２）とターゲット（例えばドライブ２０６）との間の接続に関連付けられるデータアクセス情報を収集するステップ３０５を含む。例えば、エクスパンダ１１０のプロセッサ１６０は、ネットワーク１００の特定のネクサスに関連付けられるデータアクセス情報を収集することができる。方法３００は、イニシエータ（例えばホスト２０２）とターゲット（例えばドライブ２０６）との間の接続が利用率閾値を超えているか否かを判断するステップ３１０をさらに含む。例えば、プロセッサ１６０は、特定のネクサスに関連付けられる情報を利用して、データプリフェッチ動作がネットワーク１００の特定のネクサスに適しているか否かを判断することができる。
【００２８】
方法３００は、イニシエータから、ターゲットの少なくとも１つの第１のデータブロックの第１のデータ要求を受信するステップ３１５をさらに含む。例えば、プロセッサ１６０は、ネクサスのデータ読み出し要求を受信することができる（例えばデータ読み出し要求は、ネクサスのイニシエータ（例えばホスト２０２）によって発行され、該データ読み出し要求はネクサスのターゲット（例えばドライブ２０６）に向けられる）。データ読み出し要求はオリジナルデータセットのデータ読み出し要求とすることができる。方法３００は、イニシエータとターゲットとの間の接続が利用率閾値を超えていると判断すると、第１のデータ要求に基づいて、イニシエータからの今後のデータ要求内に含まれる、ターゲットの少なくとも１つの第２の見込みデータブロックを特定するステップ３２０をさらに含む。例えば、プロセッサ１６０は、データプリフェッチ動作がネットワーク１００の特定のネクサスに適していると判断すると、データプリフェッチ動作のためのデータブロックを特定することができる。
【００２９】
方法３００は、ターゲットに対し、少なくとも１つの第２の見込みデータブロックの第２のデータ要求を発行するステップ３２５をさらに含む。例えば、プロセッサ１６０は、ネクサスのイニシエータから、見込みデータセットのデータ読み出し要求を受信する前に、ネクサスのターゲットに対し、該見込みデータセットのデータ読み出し要求を発行することができる。方法３００は、ターゲットから、少なくとも１つの第２の見込みデータブロックを受信するステップ３３０をさらに含む。例えば、プロセッサ１６０はネクサスのターゲットから見込みデータセットを受信することができる。
【００３０】
方法３００は、ＳＡＳエクスパンダ内に、ターゲットからの、少なくとも１つの第２の見込みデータブロックを格納するステップ３３５をさらに含む。例えば、プロセッサ１６０は、ネクサスのターゲットから見込みデータセットを受信すると、エクスパンダ１１０のメモリ１７０内に該見込みデータセットを格納することができる。方法３００は、イニシエータから、ターゲットからの少なくとも１つの第２の見込みデータブロックのうちの少なくとも１つの第３のデータ要求を受信するステップ３４０をさらに含む。例えば、プロセッサ１６０は、ネクサスのイニシエータから、見込みデータセットのデータ読み出し要求を受信することができる。
【００３１】
方法３００は、ＳＡＳエクスパンダ内に格納されている少なくとも１つの第２の見込みデータブロックの少なくとも１つが有効であるか否かを判断するステップ３４５をさらに含む。例えば、プロセッサ１６０は、ネクサスのターゲットに対するデータ通信をモニタリングし、ネクサスのターゲット内の見込みデータセットのＬＢＡに格納されているデータが、メモリ１７０に格納されている見込みデータセットと同一であるか否かを判断することができる。方法３００は、少なくとも１つの第２の見込みデータブロックのうちの少なくとも１つが有効であると判断すると、イニシエータに対し該少なくとも１つの第２の見込みデータブロックのうちの少なくとも１つを送信するステップ３５０をさらに含む。例えば、プロセッサ１６０は、メモリ１７０内に格納されている見込みデータセットが有効であると判断すると、イニシエータに対し、エクスパンダ１１０のメモリ１７０から該見込みデータセットを発行することができる。
【００３２】
方法３００は、ＳＡＳエクスパンダ内の少なくとも１つの第２の見込みデータブロックが無効であると判断すると、ＳＡＳエクスパンダ内に格納されている該少なくとも１つの第２の見込みデータブロックを更新するステップ３５５をさらに含むことができる。例えば、プロセッサ１６０は、メモリ１７０内に格納されている見込みデータセットが無効であると判断すると、メモリ１７０内に格納されている該見込みデータセットを更新することができる。
【００３３】
本明細書では、開示されている方法を、デバイスによって読み出し可能は命令セット又はソフトウェア又はファームウェアとして実装することができる。そのようなソフトウェアは、本発明の開示されている機能及びプロセスを実行するプロセッサをプログラムするのに使用される格納されているコンピュータコードを含む、コンピュータ可読記憶媒体を用いるプログラム製品を含むことができる。コンピュータ可読媒体は、限定ではないが、フロッピーディスク、光ディスク、ＣＤ−ＲＯＭ、磁気ディスク、ハードディスクドライブ、光磁気ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カード若しくは光カード、又は電子命令を格納するための任意の他の適切な媒体を含むことができる。さらに、開示されている方法におけるステップの特定の順序又は階層は、例示的な手法の例であることが理解される。設計嗜好に基づいて、本方法におけるステップの特定の順序又は階層を、開示されている主題の範囲内にとどまりながら再構成することができることが理解される。添付の方法クレームは、サンプル順序で様々なステップの要素を提示するが、提示される特定の順序又は階層に限定することは必ずしも意図するものではない。
【００３４】
本開示及びその付随する利点は、上記の説明によって理解されると考えられ、開示されている主題から逸脱することも、その物質的な利点の全てを犠牲にすることもなく、構成要素の形式、構造、及び配置において様々な変更を行うことができることは明らかであろう。説明された形式は例示的なものに過ぎず、以下の特許請求の範囲は、そのような変更を包含し含むことが意図される。
【図１】
0005480834.tif 000002
【図２】
0005480834.tif 000003
【図３】
0005480834.tif 000004