(57)【要約】  実施形態によれば、ストレージコントローラのマッピング管理部は、第１のチャンクへのアクセスの状況が高速アクセスを必要とする第１の状況で、且つ前記第１のチャンクが、前記第１のチャンクの第１の論理アドレスが第１のストレージ装置と比較して低速で且つ大容量の第２のストレージ装置側の第１の物理アドレスにマッピングされる第２の状態にあるならば、前記第１のチャンクを前記第２の状態から第３の状態に変更する。これにより前記第１の論理アドレスは、前記第１のストレージ装置側の第２の物理アドレス及び前記第２のストレージ装置側の前記第１の物理アドレスの両方にマッピングされる。
2014155666.tif 000002
【特許請求の範囲】
【請求項１】
第１のストレージ装置と、
前記第１のストレージ装置と比較して低速で且つ大容量の第２のストレージ装置と、
前記第１のストレージ装置へのアクセス及び前記第２のストレージ装置へのアクセスを制御するストレージコントローラとを具備し、
前記ストレージコントローラは、
論理ユニット内の第１のサイズの各チャンクが、前記チャンクの論理アドレスが前記第１のストレージ装置内の物理記憶領域の物理アドレスに第１のタイプのマッピング情報によってマッピングされる第１の状態、前記論理アドレスが前記第２のストレージ装置内の物理記憶領域の物理アドレスに前記第１のタイプのマッピング情報によってマッピングされる第２の状態、または前記論理アドレスが前記第１のストレージ装置内の物理記憶領域の物理アドレスに前記第１のタイプのマッピング情報によってマッピングされ且つ前記第２のストレージ装置内の物理記憶領域の物理アドレスに第２のタイプのマッピング情報によってマッピングされる第３の状態のいずれにあるかを管理するマッピング管理部と、
ホスト装置からの読み出し要求または書き込み要求の指定する論理アドレスを、前記第１のタイプのマッピング情報によってマッピングされた前記第１のストレージ装置または前記第２のストレージ装置内の物理記憶領域の物理アドレスに変換するアドレス変換部と、
前記変換された物理アドレスに基づいて前記第１のストレージ装置または前記第２のストレージ装置にアクセスするアクセスコントローラとを具備し、
前記マッピング管理部は、
前記論理ユニット内のチャンク毎に当該チャンクへのアクセスの状況を監視し、
第１のチャンクへのアクセスの状況が高速アクセスを必要とする第１の状況で、且つ前記第１のチャンクが前記第２の状態にあるならば、前記第１のチャンクを前記第２の状態から前記第３の状態に変更し、
前記第２の状態から前記第３の状態への変更の後も前記第１の状況が継続しているならば、前記第１のチャンクを前記第３の状態から前記第１の状態に変更し、
前記第２の状態から前記第３の状態への変更の後、前記第１のチャンクへのアクセスの状況が前記高速アクセスを不要とする第２の状況に変化したならば、前記第１のチャンクを前記第３の状態から前記第２の状態に変更する
ストレージシステム。
【請求項２】
前記マッピング管理部は、前記第１のチャンクを前記第２の状態から前記第３の状態に変更するために、前記第１のチャンクに対応する前記第１のタイプの第１のマッピング情報によって前記第１のチャンクの第１の論理アドレスにマッピングされた第１の物理アドレスの指定する前記第２のストレージ装置内の第１の物理記憶領域のデータを、新たに取得される前記第１のストレージ装置内の第２の物理記憶領域にコピーし、且つ前記第１のマッピング情報に設定されている前記第１の物理アドレスを前記第２の物理記憶領域の第２の物理アドレスで置き換え、且つ前記第１の物理アドレスを前記第１のチャンクに対応する前記第２のタイプの第２のマッピング情報に設定する
請求項１記載のストレージシステム。
【請求項３】
前記アクセスコントローラは、前記第１のチャンクが前記第３の状態にあり、且つ前記第１のチャンクへのデータ書き込みが第１の書き込み要求によって指定された場合、前記第１の物理記憶領域及び前記第２の物理記憶領域のうちの前記第２の物理記憶領域に実データを書き込む請求項２記載のストレージシステム。
【請求項４】
前記マッピング管理部は、
前記第３の状態にあるチャンク毎に、書き込みアクセスによってデータが変更された書き込み位置を書き込み位置情報に基づいて管理し、
前記第１のチャンクが前記第３の状態にあり、且つ前記第１のチャンクへの前記データ書き込みの指定に応じて前記第２の物理記憶領域に前記実データが書き込まれた場合、データが変更された書き込み位置を示す情報を前記第１のチャンクに対応付けられた第１の書き込み位置情報に追加し、
前記第１のチャンクを前記第３の状態から前記第２の状態に変更するために、前記第１の書き込み位置情報によって示される前記第２の物理記憶領域内の変更されたデータを前記第１の物理記憶領域に反映し、且つ前記第１のマッピング情報に設定されている前記第２の物理アドレスを前記第２のマッピング情報に設定されている前記第１の物理アドレスで置き換え、且つ前記第２のマッピング情報を無効化し、且つ前記第１の書き込み位置情報のための第１の記憶領域、及び前記第２の物理記憶領域を解放する
請求項３記載のストレージシステム。
【請求項５】
前記マッピング管理部は、前記第１のチャンクを前記第３の状態から前記第１の状態に変更するために、前記第２のマッピング情報を無効化し、且つ前記第１の記憶領域及び前記第１の物理記憶領域を解放する
請求項４記載のストレージシステム。
【請求項６】
前記ストレージコントローラは、前記書き込み位置情報が格納される記憶領域を有する、前記第１のストレージ装置よりも高速のメモリを更に具備する請求項４記載のストレージシステム。
【請求項７】
前記マッピング管理部は、
前記第１のチャンクへのアクセスの状況が前記第２の状況で、且つ前記第１のチャンクが前記第１の状態にあるならば、前記第１のチャンクを前記第１の状態から前記第３の状態に変更し、
前記第１の状態から前記第３の状態への変更の後も前記第２の状況が継続しているならば、前記第１のチャンクを前記第３の状態から前記第２の状態に変更し、
前記第１の状態から前記第３の状態への変更の後、前記第１のチャンクへのアクセスの状況が前記第１の状況に変化したならば、前記第１のチャンクを前記第３の状態から前記第１の状態に変更する
請求項１記載のストレージシステム。
【請求項８】
前記マッピング管理部は、前記第１のチャンクを前記第１の状態から前記第３の状態に変更するために、前記第１のチャンクに対応する前記第１のタイプの第１のマッピング情報によって前記第１のチャンクの第１の論理アドレスにマッピングされた第２の物理アドレスの指定する前記第１のストレージ装置内の第２の物理記憶領域のデータを、新たに取得される前記第２のストレージ装置内の第１の物理記憶領域にコピーし、且つ前記第１の物理記憶領域の第１の物理アドレスを前記第１のチャンクに対応する前記第２のタイプの第２のマッピング情報に設定する
請求項７記載のストレージシステム。
【請求項９】
前記チャンク毎に、監視期間内に発生する当該チャンクへのアクセスの回数またはデータ量の総和をカウントするアクセスカウンタを更に具備し、
前記マッピング管理部は、前記監視期間を単位に、前記チャンク毎の前記アクセスカウンタの値に基づいて当該チャンクへのアクセスの状況を判断する
請求項７記載のストレージシステム。
【請求項１０】
前記マッピング管理部は、
前記第１のチャンクに対応する第１のアクセスカウンタの値が閾値よりも大きいならば、前記第１のチャンクへのアクセスの状況が前記第１の状況にあると判断し、
前記第１のアクセスカウンタの値が前記閾値よりも小さいならば、前記第１のチャンクが前記第２の状況にあると判断する
請求項９記載のストレージシステム。
【請求項１１】
前記マッピング管理部は、
前記第１のチャンクに対応する第１のアクセスカウンタの値が第１の閾値よりも大きいならば、前記第１のチャンクへのアクセスの状況が前記第１の状況にあると判断し、
前記第１のアクセスカウンタの値が、前記第１の閾値よりも小さな第２の閾値よりも小さいならば、前記第１のチャンクへのアクセスの状況が前記第２の状況にあると判断する
請求項９記載のストレージシステム。
【請求項１２】
前記マッピング管理部は、
前記第１のアクセスカウンタの値が、前記第１の閾値と前記第２の閾値との間にあるならば、前記第１のチャンクへのアクセスの状況が第３の状況にあると判断し、
前記第１のチャンクへのアクセスの状況が前記第３の状況で、且つ前記第１のチャンクが前記第３の状態にあるならば、前記第１のチャンクを前記第３の状態に維持する
請求項１１記載のストレージシステム。
【請求項１３】
前記マッピング管理部は、
前記第１のチャンクに対応する第１のアクセスカウンタの値が第１の閾値よりも大きいならば、前記第１のチャンクへのアクセスの状況が前記第１の状況にあると判断し、
前記第１のアクセスカウンタの値が前記第１の閾値よりも小さな第２の閾値よりも小さいならば、前記第１のチャンクへのアクセスの状況が前記第２の状況にあると判断し、
第１の監視期間における前記第１のアクセスカウンタの第１の値に基づいて前記第１のチャンクを前記第３の状態に変更した後、前記第１の監視期間の次の第２の監視期間における前記第１のアクセスカウンタの第２の値が前記第１の閾値よりも大きな第３の閾値よりも大きいならば、前記第１の状況が継続していると判断し、
第３の監視期間における前記第１のアクセスカウンタの第３の値に基づいて前記第１のチャンクを前記第３の状態に変更した後、前記第３の監視期間の次の第４の監視期間における前記第１のアクセスカウンタの第４の値が前記第２の閾値よりも小さな第４の閾値よりも小さいならば、前記第２の状況が継続していると判断する、
請求項９記載のストレージシステム。
【請求項１４】
前記マッピング管理部は、
前記第１のアクセスカウンタの値が、前記第３の閾値と前記第４の閾値との間にあるならば、前記第１のチャンクへのアクセスの状況が第３の状況にあると判断し、
前記第１のチャンクへのアクセスの状況が前記第３の状況で、且つ前記第１のチャンクが前記第３の状態にあるならば、前記第１のチャンクを前記第３の状態に維持する
請求項１３記載のストレージシステム。
【請求項１５】
第１のストレージ装置へのアクセス、及び前記第１のストレージ装置と比較して低速で且つ大容量の第２のストレージ装置へのアクセスを制御するストレージコントローラにおいて、
論理ユニット内の第１のサイズの各チャンクが、前記チャンクの論理アドレスが前記第１のストレージ装置内の物理記憶領域の物理アドレスに第１のタイプのマッピング情報によってマッピングされる第１の状態、前記論理アドレスが前記第２のストレージ装置内の物理記憶領域の物理アドレスに前記第１のタイプのマッピング情報によってマッピングされる第２の状態、または前記論理アドレスが前記第１のストレージ装置内の物理記憶領域の物理アドレスに前記第１のタイプのマッピング情報によってマッピングされ且つ前記第２のストレージ装置内の物理記憶領域の物理アドレスに第２のタイプのマッピング情報によってマッピングされる第３の状態のいずれにあるかを管理するマッピング管理部と、
ホスト装置からの読み出し要求または書き込み要求の指定する論理アドレスを、前記第１のタイプのマッピング情報によってマッピングされた前記第１のストレージ装置または前記第２のストレージ装置内の物理記憶領域の物理アドレスに変換するアドレス変換部と、
前記変換された物理アドレスに基づいて前記第１のストレージ装置または前記第２のストレージ装置にアクセスするアクセスコントローラとを具備し、
前記マッピング管理部は、
前記論理ユニット内のチャンク毎に当該チャンクへのアクセスの状況を監視し、
第１のチャンクへのアクセスの状況が高速アクセスを必要とする第１の状況で、且つ前記第１のチャンクが前記第２の状態にあるならば、前記第１のチャンクを前記第２の状態から前記第３の状態に変更し、
前記第２の状態から前記第３の状態への変更の後も前記第１の状況が継続しているならば、前記第１のチャンクを前記第３の状態から前記第１の状態に変更し、
前記第２の状態から前記第３の状態への変更の後、前記第１のチャンクへのアクセスの状況が前記高速アクセスを不要とする第２の状況に変化したならば、前記第１のチャンクを前記第３の状態から前記第２の状態に変更する
ストレージコントローラ。
【請求項１６】
第１のストレージ装置へのアクセス、及び前記第１のストレージ装置と比較して低速で且つ大容量の第２のストレージ装置へのアクセスを制御するストレージコントローラにおいて論理アドレスと物理アドレスとの間のマッピングを管理する方法であって、
論理ユニット内の第１のサイズの各チャンク毎に当該チャンクへのアクセスの状況を監視し、
第１のチャンクへのアクセスの状況が高速アクセスを必要とする第１の状況で、且つ前記第１のチャンクが、前記第１のチャンクの第１の論理アドレスが前記第１のストレージ装置内の第２の物理記憶領域の第２の物理アドレスに第１のタイプの第１のマッピング情報によってマッピングされる第１の状態、前記第１の論理アドレスが前記第２のストレージ装置内の第１の物理記憶領域の第１の物理アドレスに前記第１のマッピング情報によってマッピングされる第２の状態、または前記第１の論理アドレスが前記第２の物理アドレスに前記第１のマッピング情報によってマッピングされ且つ前記第１の物理アドレスに第２のタイプの第２のマッピング情報によってマッピングされる第３の状態のうちの前記第２の状態にあるならば、前記第１のチャンクを前記第２の状態から前記第３の状態に変更し、
前記第２の状態から前記第３の状態への変更の後も前記第１の状況が継続しているならば、前記第１のチャンクを前記第３の状態から前記第１の状態に変更し、
前記第２の状態から前記第３の状態への変更の後、前記第１のチャンクへのアクセスの状況が前記高速アクセスを不要とする第２の状況に変化したならば、前記第１のチャンクを前記第３の状態から前記第２の状態に変更し、
ホスト装置からの読み出し要求または書き込み要求の指定する論理アドレスを、前記第１のタイプのマッピング情報によってマッピングされた前記第１のストレージ装置または前記第２のストレージ装置内の物理記憶領域の物理アドレスに変換し、
前記変換された物理アドレスに基づいて前記第１のストレージ装置または前記第２のストレージ装置にアクセスする
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、論理アドレスと物理アドレスとの間のマッピングを管理するストレージシステム、ストレージコントローラ及び方法に関する。
【背景技術】
【０００２】
近年、アクセス速度の異なる第１及び第２のストレージ装置を備えたストレージシステムが開発されている。ここで、第１のストレージ装置は高速且つ小容量であり、第２のストレージ装置は、第１のストレージ装置と比較して低速且つ大容量であるものとする。ストレージシステムは、第１のストレージ装置（以下、高速ストレージ装置と称する）及び第２のストレージ装置（以下、低速ストレージ装置と称する）を階層的に組み合わせることにより実現される。そこで、ストレージシステムは、階層化ストレージシステムとも呼ばれる。【０００３】
ストレージシステムは、ストレージコントローラを更に備えている。ストレージコントローラは、ホストコンピュータ（以下、ホストと称する）からの読み出し要求または書き込み要求に応じて、高速ストレージ装置または低速ストレージ装置にアクセスする。一般に論理ユニット（つまり論理ボリューム）は、一定サイズを有する複数のデータの塊に分割して管理される。このようなデータの塊はチャンクと呼ばれる。論理ユニットとは、ホストによって論理的なストレージドライブとして認識される記憶領域を指す。論理ユニット内のチャンクの集合のうち、少なくともホストによって利用されるチャンクの論理アドレスは、高速ストレージ装置または低速ストレージ装置いずれかの物理記憶領域の物理アドレスにマッピングされる。つまりホストによって利用されるチャンクは、高速ストレージ装置または低速ストレージ装置いずれかにマッピングされる。【０００４】
ストレージコントローラは、チャンク毎に、当該チャンクへのアクセスの状況を監視する。このアクセスの状況を表す指標として、一定期間（監視期間）におけるチャンク毎のアクセス頻度（使用頻度）またはアクセスデータ量の総和に代表されるアクセス統計情報が用いられるのが一般的である。【０００５】
ストレージコントローラは、低速ストレージ装置側の物理記憶領域が割り当てられているチャンク毎のアクセスの状況（アクセス統計情報）に基づき、高速アクセスが必要なチャンクを選択する。つまりストレージコントローラは、アクセス頻度が高いまたはアクセスデータ量が多いチャンクを、高速アクセスが必要なチャンクとして選択する。このような高速アクセスが必要なチャンクのアクセス状況を第１の状況と称する。【０００６】
ここで、第１の監視期間におけるチャンク毎のアクセスの状況に基づき、第１のチャンクが選択されたものとする。また、第１のチャンクの第１の論理アドレスが、低速ストレージ装置の第１の物理記憶領域の第１の物理アドレスにマッピングされているものとする。【０００７】
この場合、ストレージコントローラは第１のチャンクへの高速アクセスを実現するために、第１のチャンクのマッピング状態を次のように変更する。即ちストレージコントローラは、第１のチャンクの第１の論理アドレスを高速ストレージ装置の第２の物理記憶領域の第２の物理アドレスに再マッピングする。つまりストレージコントローラは、第１のチャンクのマッピング先を低速ストレージ装置側から高速ストレージ装置側に変更する。同時にストレージコントローラは、第１の物理記憶領域のデータを第２の物理記憶領域に移動し、しかる後に第１の物理記憶領域を解放する。以後、ホストから第１のチャンクへのアクセスが要求された場合、ストレージコントローラは、第２の物理記憶領域にアクセスする。これにより、第１のチャンクへのアクセス要求（つまり、アクセス頻度が高いまたはアクセスデータ量が多いチャンクへのアクセス要求）を、再マッピング前よりも高速に実行することができる。【０００８】
またストレージコントローラは、高速ストレージ装置側の物理記憶領域が割り当てられているチャンク毎のアクセスの状況（アクセス統計情報）に基づき、高速アクセスが不要なチャンクを選択する。つまりストレージコントローラは、アクセス頻度が低いまたはアクセスデータ量が少ないチャンクを、高速アクセスが不要なチャンクとして選択する。このような高速アクセスが不要なチャンクのアクセス状況を第２の状況と称する。【０００９】
ここで、第１のチャンクが高速ストレージ装置側に再マッピングされた後、第１の監視期間の次の第２の監視期間における第１のチャンクのアクセス状況が第２の状況から第１の状況に変化したものとする。この場合、ストレージコントローラは、低速ストレージ装置の第３の物理記憶領域を取得して、第１のチャンクのマッピング先を再び低速ストレージ装置側に変更する。同時にストレージコントローラは、第２の物理記憶領域のデータを第３の物理記憶領域に移動し、しかる後に第２の物理記憶領域を解放する。以後、ホストから第１のチャンクへのアクセスが要求された場合、ストレージコントローラは、第３の物理記憶領域にアクセスする。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００７−４７１０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述のように、再マッピングされるべきチャンクは、監視期間が経過する毎に選択される。ところが、第１の監視期間における第２のチャンクへのアクセスの状況が次の第２の監視期間においても同様であるとは必ずしも限らない。例えば、第２のチャンクへのアクセスの状況が、第１の状況と第２の状況との境界近傍にあるものとする。このような第２のチャンクでは、再マッピングが頻繁に実行される可能性が高い。つまり、第２のチャンクのマッピング状態が頻繁に変更されて、低速ストレージ装置から高速ストレージ装置へのデータ移動と、高速ストレージ装置から低速ストレージ装置へのデータ移動とが頻繁に発生する可能性が高い。このような現象を、状態遷移の振動と称する。【００１２】
また、通常は第２の状況にある第３のチャンクのアクセスの状況が、例えば、単一の監視期間だけ第１の状況に変化した場合、次のようなマッピング状態の遷移も発生する。つまり、第３のチャンクが一時的に高速ストレージ装置（より詳細には、高速ストレージ装置の物理記憶領域）にマッピングされ、その後、再び低速ストレージ装置にマッピングされるケースも発生する。その逆に、通常は第１の状況にある第４のチャンクのアクセスの状況が、単一の監視期間だけ第２の状況に変化した場合、次のようなマッピング状態の遷移も発生する。つまり、第４のチャンクが一時的に低速ストレージ装置にマッピングされ、その後、再び高速ストレージ装置にマッピングされるケースも発生する。ストレージコントローラが、これらのケースを予測することは難しい。【００１３】
マッピング状態の遷移時には、上述のようにデータの移動が発生する。つまり、マッピング状態の遷移の対象となるチャンク全体について、低速ストレージ装置から高速ストレージ装置へのデータの移動、または高速ストレージ装置から低速ストレージ装置へのデータの移動が発生する。高速ストレージ装置へのデータの移動は、低速ストレージ装置からのデータの読み出しを伴い、低速ストレージ装置へのデータの移動は、低速ストレージ装置へのデータの書き込みを伴う。このため、監視期間毎に実行されるマッピング状態変更処理において、対象となるチャンクの数が多くなると、低速ストレージ装置へのアクセスに多大な時間を要し、全体の処理時間が長くなる。【００１４】
本発明が解決しようとする課題は、論理アドレスと物理アドレスとの間のマッピング状態の変更に要する処理時間を短縮することができる、ストレージシステム、ストレージコントローラ及び方法を提供することにある。
【課題を解決するための手段】
【００１５】
実施形態によれば、ストレージシステムは、第１のストレージ装置と、第２のストレージ装置と、ストレージコントローラとを具備する。前記第２のストレージ装置は、前記第１のストレージ装置と比較して低速で且つ大容量である。前記ストレージコントローラは、前記第１のストレージ装置へのアクセス及び前記第２のストレージ装置へのアクセスを制御する。前記ストレージコントローラは、マッピング管理部と、アドレス変換部と、アクセスコントローラとを具備する。前記マッピング管理部は、論理ユニット内の第１のサイズの各チャンクが、前記チャンクの論理アドレスが前記第１のストレージ装置内の物理記憶領域の物理アドレスに第１のタイプのマッピング情報によってマッピングされる第１の状態、前記論理アドレスが前記第２のストレージ装置内の物理記憶領域の物理アドレスに前記第１のタイプのマッピング情報によってマッピングされる第２の状態、または前記論理アドレスが前記第１のストレージ装置内の物理記憶領域の物理アドレスに前記第１のタイプのマッピング情報によってマッピングされ且つ前記第２のストレージ装置内の物理記憶領域の物理アドレスに第２のタイプのマッピング情報によってマッピングされる第３の状態のいずれにあるかを管理する。前記アドレス変換部は、ホスト装置からの読み出し要求または書き込み要求の指定する論理アドレスを、前記第１のタイプのマッピング情報によってマッピングされた前記第１のストレージ装置または前記第２のストレージ装置内の物理記憶領域の物理アドレスに変換する。前記アクセスコントローラは、前記変換された物理アドレスに基づいて前記第１のストレージ装置または前記第２のストレージ装置にアクセスする。前記マッピング管理部は、前記論理ユニット内のチャンク毎に当該チャンクへのアクセスの状況を監視する。前記マッピング管理部は、第１のチャンクへのアクセスの状況が高速アクセスを必要とする第１の状況で、且つ前記第１のチャンクが前記第２の状態にあるならば、前記第１のチャンクを前記第２の状態から前記第３の状態に変更する。前記マッピング管理部は、前記第２の状態から前記第３の状態への変更の後も前記第１の状況が継続しているならば、前記第１のチャンクを前記第３の状態から前記第１の状態に変更する。前記マッピング管理部は、前記第２の状態から前記第３の状態への変更の後、前記第１のチャンクへのアクセスの状況が前記高速アクセスを不要とする第２の状況に変化したならば、前記第１のチャンクを前記第３の状態から前記第２の状態に変更する。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施形態に係るコンピュータシステムの典型的なハードウェア構成を示すブロック図である。
【図２】図２は、図１に示されるストレージコントローラの典型的な機能構成を主として示すブロック図である。
【図３】図３は、論理ユニットがチャンクの集合を備えている例を示す図である。
【図４】図４は、同実施形態で適用される３種のマッピング状態の例を説明するための図である。
【図５】図５は、同実施形態で適用される３種のマッピング状態の例を説明するための図である。
【図６】図６は、アドレス変換情報及びビットマップのデータ構造例を示す図である。
【図７】図７は、アドレス変換情報に含まれる逆変換テーブルのデータ構造例を示す図である。
【図８】図８は、遷移候補リストのデータ構造例を示す図である。
【図９】図９は、同実施形態における読み出し処理の典型的な手順を説明するためのフローチャートである。
【図１０】図１０は、同実施形態における書き込み処理の典型的な手順を説明するためのフローチャートである。
【図１１】図１１は、同実施形態におけるマッピング状態変更処理の典型的な手順を説明するためのフローチャートの一部を示す図である。
【図１２】図１２は、同マッピング状態変更処理の典型的な手順を説明するためのフローチャートの残りを示す図である。
【図１３】図１３は、同実施形態における第１の状態変更処理の典型的な手順を説明するためのフローチャートである。
【図１４】図１４は、同実施形態における第２の状態変更処理の典型的な手順を説明するためのフローチャートである。
【図１５】図１５は、同実施形態における第３の状態変更処理の典型的な手順を説明するためのフローチャートである。
【図１６】図１６は、同実施形態における第４の状態変更処理の典型的な手順を説明するためのフローチャートである。
【発明を実施するための形態】
【００１７】
以下、各種実施形態につき図面を参照して説明する。  
図１は、実施形態に係るコンピュータシステムの典型的なハードウェア構成を示すブロック図である。図１に示されるコンピュータシステムは、ストレージシステム１０及びホストコンピュータ（以下、ホストと称する）２０から構成される。ストレージシステム１０は、ホストインタフェースバス３０を介してホスト２０と接続されている。本実施形態においてホストインタフェースバス３０は、ファイバチャネル（ＦＣ）である。しかしホストインタフェースバス３０が、スモールコンピュータシステムインタフェース（ＳＣＳＩ）、シリアルアタッチドＳＣＳＩ（ＳＡＳ）、インターネットＳＣＳＩ（ｉＳＣＳＩ）、イーサネット（登録商標）、或いはシリアルＡＴアタッチメント（ＳＡＴＡ）のような、ＦＣ以外のインタフェースバスであっても構わない。
【００１８】
ホスト２０は、サーバ、或いはクライアントパーソナルコンピュータ（クライアントＰＣ）のような物理計算機である。ホスト２０内では、ストレージシステム１０内のデータにアクセスするためのアプリケーションプログラムが動作する。このアプリケーションプログラムに従い、ホスト２０はホストインタフェースバス３０を介してストレージシステム１０を利用する。
【００１９】
ストレージシステム１０は、高速ストレージ装置（第１のストレージ装置）１１、低速ストレージ装置（第２のストレージ装置）１２及びストレージコントローラ１３を備えている。高速ストレージ装置１１は、例えば、高速で且つ低容量のフラッシュストレージ装置から構成される。低速ストレージ装置１２は、例えば、高速ストレージ装置１１と比較して低速で且つ大容量のハードディスクドライブ（ＨＤＤ）アレイ装置から構成される。このＨＤＤアレイ装置（つまり、低速ストレージ装置１２として用いられるＨＤＤアレイ装置）は、例えば、複数のＨＤＤを備えたＲＡＩＤ（Redundant Arrays of Inexpensive DisksまたはRedundant Arrays of Independent Disks）構成のストレージ装置である。
【００２０】
一方、フラッシュストレージ装置（つまり、高速ストレージ装置１１として用いられるフラッシュストレージ装置）は、例えば、複数のフラッシュメモリが搭載されたメモリボードの群を備えたＲＡＩＤ構成のストレージ装置である。本実施形態では、メモリボードの群の各々はＨＤＤとの互換性を有していないものとする。しかし、メモリボードの群の各々に代えて、ＨＤＤとの互換性を有するソリッドステートドライブ（ＳＳＤ）が用いられても構わない。
【００２１】
高速ストレージ装置１１及び低速ストレージ装置１２は、ストレージインタフェースバス１４を介してストレージコントローラ１３と接続されている。本実施形態においてストレージインタフェースバス１４はＦＣ（ファイバチャネル）である。しかしストレージインタフェースバス１４が、ホストインタフェースバス３０と同様に、ＦＣ以外のインタフェースバスであっても構わない。
【００２２】
ストレージコントローラ１３は、ホスト２０から論理アドレスの指定による読み出し要求または書き込み要求を受け付ける。ストレージコントローラ１３は、指定された論理アドレスを、アドレス変換機能により、当該論理アドレスがマッピングされたストレージ装置内の物理記憶領域を示す物理アドレス（より詳細には、ストレージ装置の装置番号及び物理アドレス）に変換する。ストレージコントローラ１３は、この物理アドレスに基づいて、高速ストレージ装置１１または低速ストレージ装置１２にアクセスする。
【００２３】
ストレージコントローラ１３は、ＣＰＵ１３１、メモリ１３２及びＨＤＤ１３３を備えている。ＣＰＵ１３１は、後述する制御プログラム領域１３２ａに格納されている制御プログラムのプログラムコードに従い、ストレージコントローラ１３に要求される処理を実行する。
【００２４】
メモリ１３２は、例えば、複数のＤＲＡＭを用いて構成される揮発性メモリである。メモリ１３２は、高速ストレージ装置１１よりも更に高速である。ＨＤＤ１２３は、ローカルなストレージ装置であり、後述する制御プログラム及びアドレス変換情報を格納するのに用いられる。なお、ＨＤＤ１２３に代えて、複数のフラッシュメモリが搭載されたストレージ装置を用いることも可能である。
【００２５】
メモリ１３２は、制御プログラム領域１３２ａ、ワーク領域１３２ｂ、キャッシュメモリ領域１３２ｃ、アドレス変換情報領域１３２ｄ及びライト位置情報領域１３２ｅを含む。制御プログラム領域１３２ａは、ＣＰＵ１３１によって実行される制御プログラムを格納するのに用いられる。この制御プログラムは、ＨＤＤ１３３に予め格納されており、ストレージコントローラ１３の起動時に当該ＨＤＤ１３３から制御プログラム領域１３２ａにロードされる。
【００２６】
ワーク領域１３２ｂは、ＣＰＵ１３１が制御プログラムを実行する際に利用される一時的なデータを格納するのに用いられる。キャッシュメモリ領域１３２ｃは、高速ストレージ装置１１または低速ストレージ装置１２から読み出されたデータを一時格納するためのキャッシュメモリとして用いられる。
【００２７】
アドレス変換情報領域１３２ｄは、アドレス変換情報を格納するのに用いられる。ライト位置情報領域１３２ｅは、ライト位置情報を格納するのに用いられる。アドレス変換情報及びライト位置情報については後述する。
【００２８】
本実施形態においてストレージコントローラ１３は、図１に示されているように、ホスト２０から独立して備えられている。しかし、ストレージコントローラ１３が、ホスト２０に内蔵されていても構わない。この場合、ストレージコントローラ１３（より詳細には、ストレージコントローラ１３の機能）が、ホスト２０の有するオペレーティングシステム（ＯＳ）の機能の一部を用いて実現されても構わない。
【００２９】
また、ストレージコントローラ１３が、ホスト２０のカードスロットに装着して用いられるカードに備えられていても構わない。また、ストレージコントローラ１３の一部がホスト２０に内蔵され、当該ストレージコントローラ１３の残りがカードに備えられていても構わない。また、ホスト２０と、ストレージコントローラ１３と、高速ストレージ装置１１及び低速ストレージ装置１２の一部または全部とが、１つの筐体に収められていても構わない。
【００３０】
図２は、図１に示されるストレージコントローラ１３の典型的な機能構成を主として示すブロック図である。ストレージコントローラ１３は、論理ユニット管理部１３４、アドレス変換部１３５、アクセス統計収集部１３６及びアクセスコントローラ１３７を備えている。本実施形態において上述の機能要素１３４乃至１３７は、図１に示されるストレージコントローラ１３のＣＰＵ１３１が制御プログラムを実行することにより実現されるソフトウェアモジュールである。しかし、機能要素１３４乃至１３７の一部または全部がハードウェアモジュールによって実現されても構わない。
【００３１】
論理ユニット管理部１３４は、１つ以上の論理ユニットを管理する。論理ユニットとは、ホスト２０によって論理的なストレージドライブとして認識される記憶領域を指す。本実施形態では、説明の簡略化のために、１つの論理ユニットＬＵ（図３参照）が論理ユニット管理部１３４によって管理されるものとする。論理ユニット管理部１３４は、論理ユニットＬＵの記憶領域（より詳細には、論理記憶領域）全体を第１のサイズ（例えば、４メガバイト）のチャンク（より詳細には、論理チャンク）ＣＨＫに分割して管理する。つまり、論理ユニットＬＵはチャンクＣＨＫの集合を備えている。この場合、高速ストレージ装置１１及び低速ストレージ装置１２の記憶領域全体も、チャンクＣＨＫと同一サイズの物理記憶領域ＰＳＡに分割して管理される。
【００３２】
図３は、論理ユニットＬＵがチャンクＣＨＫ１乃至ＣＨＫ１０を含むチャンクＣＨＫの集合を備えている例を示す。本実施形態では、ストレージシステム１０が、ブロック単位でアクセスされるブロックデバイスとして機能する場合を想定している。このため、各チャンクＣＨＫは、第２のサイズのブロックに分割して管理される。この第２のサイズは、第１のサイズ（４メガバイト）のｎ分の１（ｎは１より大きい整数）である。本実施形態において、第２のサイズは５１２バイトであり、したがってｎは８，１９２（４メガバイト／５１２バイト）である。つまり、各チャンクＣＨＫは、８，１９２ブロックを備えている。
【００３３】
再び図２を参照する。論理ユニット管理部１３４は、高速ストレージ装置１１及び低速ストレージ装置１２の記憶領域を仮想化することにより、論理ユニットＬＵを定義（構築）する。本実施形態において、論理ユニットＬＵは、高速ストレージ装置１１及び低速ストレージ装置１２の容量の総和よりも大容量である。論理ユニットＬＵは、論理ボリュームとも呼ばれる。ストレージシステム１０を利用するホスト２０のような装置からの読み出し／書き込みは、この論理ユニットＬＵを対象に実行される。
【００３４】
論理ユニット管理部１３４はマッピング管理部１３４ａを含む。マッピング管理部１３４ａは、アドレス変換情報領域１３２ｄ及びライト位置情報領域１３２ｅ、更にはワーク領域１３２ｂを用いて、論理ユニットＬＵ内のチャンクＣＨＫ毎のマッピング状態を管理する。チャンクＣＨＫは、第１の状態、第２の状態及び第３の状態のいずれか１つの状態に設定される。
【００３５】
第１の状態は、チャンクＣＨＫの論理アドレスが、高速ストレージ装置１１内の物理記憶領域の物理アドレスに第１のタイプのマッピング情報ＭＩａによってマッピングされる状態を指す。以降の説明では、第１の状態を、通常の高速状態（または高速状態）と称する。
【００３６】
第２の状態は、論理アドレスが、低速ストレージ装置１２内の物理記憶領域の物理アドレスに第１のタイプのマッピング情報ＭＩａによってマッピングされる状態を指す。以降の説明では、第２の状態を、低速状態と称する。
【００３７】
第３の状態は、論理アドレスが、高速ストレージ装置１１内の物理記憶領域の物理アドレスに第１のタイプのマッピング情報ＭＩａによってマッピングされ且つ低速ストレージ装置１２内の物理記憶領域の物理アドレスに第２のタイプのマッピング情報ＭＩｂによってマッピングされる状態を指す。以降の説明では、第３の状態を、仮の高速状態と称する。
【００３８】
マッピング管理部１３４ａは、論理ユニットＬＵ内のチャンクＣＨＫ毎に、当該チャンクＣＨＫへのアクセスの状況を監視する。より詳細に述べるならば、マッピング管理部１３４ａは、アクセス統計情報を参照することにより、各チャンクＣＨＫへのアクセスの状況を監視する。本実施形態においてアクセス統計情報は、各チャンクＣＨＫの第１のタイプのマッピング情報ＭＩａに含まれるアクセスカウンタＣＮＴの値である。マッピング管理部１３４ａは、各チャンクＣＨＫへのアクセスの状況に基づいて、当該チャンクＣＨＫのマッピング状態を変更する。
【００３９】
アドレス変換部１３５は、ホスト２０からの読み出し要求または書き込み要求の指定する論理アドレスＬＡａを、アドレス変換情報に基づいて、高速ストレージ装置１１または低速ストレージ装置１２の物理アドレスＰＡａ（より詳細には、装置番号ＤＮ及び物理アドレスＰＡａ）に変換する。
【００４０】
アクセス統計収集部１３６は、各チャンクＣＨＫへのアクセスの状況を表すアクセス統計情報を収集する。前述したように、アクセス統計情報は、各チャンクＣＨＫの第１のタイプのマッピング情報ＭＩａに含まれるアクセスカウンタＣＮＴ（つまり、チャンクＣＨＫに対応するアクセスカウンタＣＮＴ）の値である。ここで、チャンクＣＨＫｔに対応するアクセスカウンタをＣＮＴ＿ｔと表記する。
【００４１】
本実施形態においてアクセスカウンタＣＮＴ＿ｔは、チャンクＣＨＫｔへのアクセスの回数をカウントするのに用いられる。より詳細に述べるならば、アクセスカウンタＣＮＴ＿ｔは、チャンクＣＨＫｔへの読み出しアクセス及び書き込みアクセスの両方の回数を、アクセスの回数としてカウントするのに用いられる。アクセスカウンタＣＮＴ＿ｔは、予め定められたアクセス状況の監視期間が開始される都度、初期値０にクリアされる。本実施形態では、監視期間は一定である。しかし、監視期間は必ずしも一定である必要はない。この場合、アクセスカウンタＣＮＴ＿ｔの値が、監視期間の長さに応じて正規化されれば良い。
【００４２】
また、アクセスカウンタＣＮＴ＿ｔが、チャンクＣＨＫｔへのアクセスのデータ量の総和、例えば読み出しアクセス及び書き込みアクセスの両アクセスのデータ量の総和をカウントするのに用いられても構わない。
【００４３】
アクセスコントローラ１３７は、論理アドレスＬＡａから変換された物理アドレスＰＡａ（装置番号ＤＮ及び物理アドレスＰＡａ）に基づいて、高速ストレージ装置１１または低速ストレージ装置１２にアクセスする。
【００４４】
メモリ１３２は、図１及び図２に示されているように、ワーク領域１３２ｂ、アドレス変換情報領域１３２ｄ及びライト位置情報領域１３２ｅを有する。ワーク領域１３２ｂの一部の領域は、図２に示されているように遷移候補リストＣＬを格納するのに用いられる。アドレス変換情報領域１３２ｄは、アドレス変換情報ＡＴＩを格納するのに用いられる。アドレス変換情報ＡＴＩは、図２に示されているように、ハッシュテーブルＨＴ、アドレス変換ハッシュリストＨＬ＿０乃至ＨＬ＿ｎ−１、第２のタイプのマッピング情報ＭＩｂ及び逆変換テーブルＩＴＴを含む。ライト位置情報領域１３２ｅは、データが書き込まれた位置を各チャンクに対応付けてブロックを単位に示すライト位置情報を格納するのに用いられる。本実施形態では、ライト位置情報としてビットマップＢＭが用いられる。これらの情報は、ＨＤＤ１３３に保存されており、例えばストレージシステム１０の起動時にＨＤＤ１３３からメモリ１３２にロードされる。また、メモリ１３２にロードされた情報は、適宜、またはストレージシステム１０の電源の遮断時に、ＨＤＤ１３３にセーブされる。
【００４５】
図４及び図５は、本実施形態で適用される３種のマッピング状態の例を説明するための図である。図４において、論理ユニットＬＵ内のチャンクＣＨＫ１及びＣＨＫ２は、通常の高速状態にある。つまり、チャンクＣＨＫ１及びＣＨＫ２の論理アドレスは、高速ストレージ装置１１内の物理記憶領域ＰＳＡａ１及びＰＳＡａ２の物理アドレスにマッピングされている。このマッピング状態（つまり通常の高速状態）は、第１のタイプのマッピング情報ＭＩａを用いて管理される。ホスト２０からチャンクＣＨＫ１またはＣＨＫ２へのアクセスが要求された場合、アクセスコントローラ１３７は物理記憶領域ＰＳＡａ１またはＰＳＡａ２にアクセスする。
【００４６】
また図４において、論理ユニットＬＵ内のチャンクＣＨＫ３乃至ＣＨＫ８は、低速状態にある。つまり、チャンクＣＨＫ３乃至ＣＨＫ８の論理アドレスは、低速ストレージ装置１２内の物理記憶領域ＰＳＡｂ３乃至ＰＳＡｂ８の物理アドレスにマッピングされている。このマッピング状態（つまり低速状態）は、第１のタイプのマッピング情報ＭＩａを用いて管理される。ホスト２０からチャンクＣＨＫ３乃至ＣＨＫ８のいずれかのチャンクへのアクセスが要求された場合、アクセスコントローラ１３７は物理記憶領域ＰＳＡｂ３乃至ＰＳＡｂ８のうちの対応する物理記憶領域にアクセスする。
【００４７】
従来技術では、各チャンクが取り得るマッピング状態は、上述した高速状態（第１の状態）及び低速状態（第２の状態）の２種である。しかし本実施形態では、各チャンクが取り得るマッピング状態として、高速状態及び低速状態に加えて、前述したように、第３の状態である仮の高速状態が存在する。
【００４８】
図４において、論理ユニットＬＵ内のチャンクＣＨＫ９及びＣＨＫ１０は、仮の高速状態にある。つまり、チャンクＣＨＫ９及びＣＨＫ１０の論理アドレスは、高速ストレージ装置１１内の物理記憶領域ＰＳＡａ９及びＰＳＡａ１０にマッピングされ、且つ低速ストレージ装置１２内の物理記憶領域ＰＳＡｂ９及びＰＳＡｂ１０にもマッピングされている。前者のマッピング状態は第１のタイプのマッピング情報ＭＩａを用いて管理され、後者のマッピング状態は第２のタイプのマッピング情報ＭＩｂを用いて管理される。
【００４９】
このように、チャンクＣＨＫ９及びＣＨＫ１０のマッピング状態（仮の高速状態）は、第１のタイプのマッピング情報ＭＩａ及び第２のタイプのマッピング情報ＭＩｂを用いて管理される。このようなマッピングから明らかなように、仮の高速状態にあるチャンクＣＨＫ９及びＣＨＫ１０のデータ（実データ）は、高速ストレージ装置１１及び低速ストレージ装置１２の両方に存在する。
【００５０】
ホスト２０から仮の高速状態にあるチャンクＣＨＫ９またはＣＨＫ１０へのアクセス（読み出しアクセスまたは書き込みアクセス）が要求された場合、アクセスコントローラ１３７は物理記憶領域ＰＳＡａ９またはＰＳＡａ１０にアクセスする。これによりアクセスコントローラ１３７は、チャンクＣＨＫ９またはＣＨＫ１０が、アクセス頻度が高い（またはアクセスデータ量が多い）チャンクであったとしても、当該チャンクＣＨＫ９またはＣＨＫ１０へのアクセス要求を高速に実行することができる。
【００５１】
ここで、例えばチャンクＣＨＫ１０への書き込みが要求されたものとする。この書き込み要求が、チャンクＣＨＫ１０全体への書き込みを要求しているとは限らない。そこで本実施形態では、書き込み要求が、チャンクＣＨＫ１０内の一部の領域へのブロック単位の書き込みを要求していることも考慮されている。具体的にはマッピング管理部１３４ａは、チャンクに含まれていて且つデータが書き込まれた（更新された）ブロックの位置を、当該チャンクに対応付けられたビットマップＢＭ（図６参照）を用いて管理する。
【００５２】
さて、仮の高速状態にあるチャンクＣＨＫ９及びＣＨＫ１０のいずれか一方のアクセス頻度が高い状態は一時的であるものとする。ここでは、チャンクＣＨＫ１０のアクセス頻度が高い状態は一時的であり、当該チャンクＣＨＫ１０が、例えばアクセス頻度が低い状態に戻ったものとする。一方、チャンクＣＨＫ９のアクセス頻度が高い状態は継続しているものとする。
【００５３】
この場合、マッピング管理部１３４ａは、チャンクＣＨＫ９を仮の高速状態から通常の高速状態に変更する。またマッピング管理部１３４ａは、チャンクＣＨＫ１０を仮の高速状態から低速状態に変更する。図５は、このときのチャンクＣＨＫ９及びＣＨＫ１０のマッピング状態を含む、チャンクＣＨＫ１乃至ＣＨＫ１０のマッピング状態の例を示す。
【００５４】
図５から明らかなように、チャンクＣＨＫ９（より詳細には、チャンクＣＨＫ９の論理アドレス）は、高速ストレージ装置１１内の物理記憶領域ＰＳＡａ９（より詳細には、物理記憶領域ＰＳＡａ９の物理アドレス）のみにマッピングされる。このマッピング状態は第１のタイプのマッピング情報ＭＩａを用いて管理される。チャンクＣＨＫ９が低速ストレージ装置１２内の物理記憶領域ＰＳＡｂ９にマッピングされていた状態は解除される。つまり、チャンクＣＨＫ９に関する第２のタイプのマッピング情報ＭＩｂは無効化される。ここで、チャンクＣＨＫ９のマッピング状態を仮の高速状態から通常の高速状態に変更するのに、高速ストレージ装置１１及び低速ストレージ装置１２の間のデータの移動が発生しないことに注意されるべきである。
【００５５】
一方、チャンクＣＨＫ１０は、低速ストレージ装置１２内の物理記憶領域ＰＳＡｂ１０のみにマッピングされる。このマッピング状態は第１のタイプのマッピング情報ＭＩａを用いて管理される。つまり、第１のタイプのマッピング情報ＭＩａは、チャンクＣＨＫ１０を高速ストレージ装置１１内の物理記憶領域ＰＳＡａ１０にマッピングする状態から、チャンクＣＨＫ１０を低速ストレージ装置１２内の物理記憶領域ＰＳＡｂ１０にマッピングする状態に更新される。この場合、チャンクＣＨＫ１０に関する第２のタイプのマッピング情報ＭＩｂは無効化される。ここで、チャンクＣＨＫ１０のマッピング状態を仮の高速状態から低速状態に変更するのに、高速ストレージ装置１１及び低速ストレージ装置１２の間のデータの移動が発生しないことに注意されるべきである。
【００５６】
図６は、アドレス変換情報ＡＴＩ及びビットマップＢＭ（ライト位置情報）のデータ構造例を示す。アドレス変換情報ＡＴＩは、ハッシュテーブルＨＴ及びｎ個のアドレス変換ハッシュリストＨＬ＿０乃至ＨＬ＿ｎ−１を含む。またアドレス変換情報ＡＴＩは、第２のタイプのマッピング情報ＭＩｂを含む。アドレス変換情報ＡＴＩは更に逆変換テーブルＩＴＴを含む。但し、逆変換テーブルＩＴＴは図６に示されていない。
【００５７】
ハッシュテーブルＨＴは、それぞれ異なるハッシュ値ＨＶ０乃至ＨＶｎ−１に対応するエントリＥＮＴ＿０乃至ＥＮＴ＿ｎ−１を有する。本実施形態において、論理ユニットＬＵ内の全チャンクＣＨＫの論理アドレスは、当該論理アドレスのハッシュ値別にｎ個のグループＧ０乃至Ｇｎ−１に分類される。グループＧｉ（ｉ＝０，１，…，ｎ−１）は、ハッシュ値がＨＶｉ（ＨＶｉ＝ｉ）の論理アドレスの集合である。ハッシュテーブルＨＴのエントリＥＮＴ＿ｉ（つまり、ハッシュ値ＨＶｉに対応するエントリＥＮＴ＿ｉ）は、アドレス変換ハッシュリストＨＬ＿ｉの先頭の要素ＨＬＥを指し示すリストポインタＬＰｉを格納する。
【００５８】
アドレス変換ハッシュリストＨＬ＿ｉの各要素（以下、ハッシュリスト要素と称する）ＨＬＥは、フィールドＦ１及びＦ２を有する。ハッシュリスト要素ＨＬＥのフィールドＦ１には、第１のタイプのマッピング情報ＭＩａが設定される。ハッシュリスト要素ＨＬＥのフィールドＦ２には、次ポインタＮＰａが設定される。次ポインタＮＰａはアドレス変換ハッシュリストＨＬ＿ｉ内の次のハッシュリスト要素ＨＬＥを指し示す。但し、アドレス変換ハッシュリストＨＬ＿ｉ内の最後のハッシュリスト要素ＨＬＥのフィールドＦ２には、後続のハッシュリスト要素ＨＬＥが存在しないことを示すＮＵＬＬ（つまりＮＰａ＝ＮＵＬＬ）が設定される。
【００５９】
第１のタイプのマッピング情報ＭＩａは、フィールドＦ１１乃至Ｆ１５を有する。第１のタイプのマッピング情報ＭＩａのフィールドＦ１１には、論理アドレスＬＡａが設定される。論理アドレスＬＡａは、第１のタイプのマッピング情報ＭＩａによってマッピング状態が管理されるチャンクＣＨＫの論理アドレスであり、グループＧｉに属する。
【００６０】
第１のタイプのマッピング情報ＭＩａのフィールドＦ１２には、物理アドレスＰＡａが設定される。物理アドレスＰＡａは、チャンクＣＨＫの論理アドレスＬＡａがマッピングされたストレージ装置（高速ストレージ装置１１または低速ストレージ装置１２）内の物理記憶領域ＰＳＡを示す。第１のタイプのマッピング情報ＭＩａのフィールドＦ１３には、装置番号ＤＮが設定される。装置番号ＤＮは、フィールドＦ１３に設定される物理アドレスＰＡａの示す物理記憶領域ＰＳＡが属するストレージ装置を識別するための識別子であり、当該ストレージ装置に固有の番号である。つまり装置番号ＤＮは、フィールドＦ１１に設定された論理アドレスＬＡａがマッピングされたストレージ装置を示す。
【００６１】
第１のタイプのマッピング情報ＭＩａのフィールドＦ１４には、マッピング情報ポインタＭＰｂが設定される。マッピング情報ポインタＭＰｂが有効（非ＮＵＬＬ）である場合、当該有効なマッピング情報ポインタＭＰｂは第２のタイプのマッピング情報ＭＩｂを指し示す。この場合、第１のタイプのマッピング情報ＭＩａに含まれている物理アドレスＰＡａは、高速ストレージ装置１１内の物理記憶領域ＰＳＡ（＝ＰＳＡａ）を示す。このような有効なマッピング情報ポインタＭＰｂは、第１のタイプのマッピング情報ＭＩａに含まれている論理アドレスＬＡａが、高速ストレージ装置１１内の物理記憶領域ＰＳＡａの物理アドレスＰＡａだけでなく、低速ストレージ装置１２内の物理記憶領域ＰＳＡｂの物理アドレスＰＡｂにもマッピングされる場合に、当該第１のタイプのマッピング情報ＭＩａのフィールドＦ１４に設定される。
【００６２】
第１のタイプのマッピング情報ＭＩａのフィールドＦ１５には、アクセスカウンタＣＮＴが設定される。アクセスカウンタＣＮＴは、前述したように、第１のタイプのマッピング情報ＭＩａに基づいて管理されるチャンクＣＨＫ（つまり、論理アドレスＬＡａを有するチャンクＣＨＫ）へのアクセスの回数をカウントするのに用いられる。このように、第１のタイプのマッピング情報ＭＩａは、論理アドレスＬＡａ、物理アドレスＰＡａ、装置番号ＤＮ、マッピング情報ポインタＭＰｂ及びアクセスカウンタＣＮＴから構成される。
【００６３】
一方、第２のタイプのマッピング情報ＭＩｂは、フィールドＦ２１及びＦ２２を有する。上述したように、第２のタイプのマッピング情報ＭＩｂは、第１のタイプのマッピング情報ＭＩａに含まれているマッピング情報ポインタＭＰｂによって指し示される。第２のタイプのマッピング情報ＭＩｂ（より詳細には、第１のタイプのマッピング情報ＭＩａと関連付けられた第２のタイプのマッピング情報ＭＩｂ）のフィールドＦ２１には、物理アドレスＰＡｂが設定される。物理アドレスＰＡｂは、第１のタイプのマッピング情報ＭＩａの示すチャンクＣＨＫがマッピングされた低速ストレージ装置１２内の物理記憶領域ＰＳＡｂを示す。
【００６４】
第２のタイプのマッピング情報ＭＩｂのフィールドＦ２２には、ビットマップポインタＢＰが設定される。ビットマップポインタＢＰは、ビットマップＢＭを指し示す。ビットマップＢＭは、第１のタイプのマッピング情報ＭＩａの示すチャンクＣＨＫに含まれるブロックの数８，１９２（ｎ＝８，１９２）に一致するビットの列から構成される。つまりビットマップＢＭの大きさは、１キロバイト（８，１９２ビット）である。ビットマップＢＭの各ビットは、チャンクＣＨＫ内の対応するブロックへのデータ書き込みにより当該ブロックのデータが更新されたか否かを記録するのに用いられる。つまり、ビットマップＢＭは、チャンクＣＨＫ内のデータが更新された（書き込まれた）ブロックの位置（ライト位置）を示す。
【００６５】
なお本実施形態とは異なって、第２のタイプのマッピング情報ＭＩｂが、第１のタイプのマッピング情報ＭＩａに含まれても構わない。この場合、アドレス変換情報ＡＴＩは、有効な第２のタイプのマッピング情報ＭＩｂが存在するか否かに無関係に、第１のタイプのマッピング情報ＭＩａ毎に、第２のタイプのマッピング情報ＭＩｂのためのフィールドを持つ必要がある。したがって、アドレス変換情報ＡＴＩを格納するのに必要なメモリ１３２の領域（つまり、アドレス変換情報領域１３２ｄ）のサイズも大きくなる。
【００６６】
そこでアドレス変換情報ＡＴＩのサイズが大きくなるのを防ぐために、第１のタイプのマッピング情報ＭＩａのいずれかのフィールドの未使用の１ビット（例えば最上位ビット）を次のようなフラグビットとして用いても良い。このフラグビットは、第１のタイプのマッピング情報ＭＩａの示すチャンクＣＨＫのマッピング状態が、仮の高速状態にあるか否かを示す。この場合、第２のタイプのマッピング情報ＭＩｂが、第１のタイプのマッピング情報ＭＩａと同様に、ハッシュリストに格納されると良い。
【００６７】
図７は、アドレス変換情報ＡＴＩに含まれる逆変換テーブルＩＴＴのデータ構造例を示す。図７に示す逆変換テーブルＩＴＴはＮ個のエントリを有する。Ｎは、例えば高速ストレージ装置１１に含まれていて、且つチャンクＣＨＫと同一のサイズを有する物理記憶領域ＰＳＡの数を示す。逆変換テーブルＩＴＴは、Ｎ個の物理記憶領域ＰＳＡの物理アドレス０乃至Ｎ−１を、当該物理アドレス０乃至Ｎ−１にマッピングされるチャンクＣＨＫの論理アドレスと対応付けて格納するのに用いられる。逆変換テーブルＩＴＴに含まれていて、且つチャンクＣＨＫがマッピングされていない物理アドレスに対応付けられたエントリには、論理アドレスに代えて特定の値が設定される。本実施形態では、この特定の値は、負の値であり、例えば−１である。
【００６８】
図７に示す逆変換テーブルＩＴＴは、高速ストレージ装置１１の物理記憶領域ＰＳＡの物理アドレスを、アドレス変換部１３５が論理アドレスに高速に変換（つまり逆変換）するのに用いられる。この高速変換により、マッピング状態を変更するための後述するマッピング状態変更処理の処理時間を短縮することができる。
【００６９】
なお、逆変換テーブルＩＴＴは、アドレス変換部１３５が高速ストレージ装置１１の物理アドレスを論理アドレスに変換するのに必ずしも必要でない。つまり、アドレス変換部１３５は、アドレス変換ハッシュリストＨＬ＿ｉを探索することによっても、高速ストレージ装置１１の物理アドレスを論理アドレスに変換することができる。但し、逆変換テーブルＩＴＴを用いる場合に比べて、変換速度は低下する。また、アドレス変換情報ＡＴＩが、逆変換テーブルＩＴＴに加えて、低速ストレージ装置１２の物理アドレスを論理アドレスに変換するのに用いられる逆変換テーブルを含んでいても構わない。
【００７０】
図８は、遷移候補リストＣＬのデータ構造例を示す。遷移候補リストＣＬは、低速状態から仮の高速状態に変更されるべきチャンクＣＨＫを遷移候補として格納するのに用いられる。遷移候補リストＣＬは、リストポインタＬＰ、及び当該遷移候補リストＣＬの要素（以下、遷移候補リスト要素と称する）ＣＬＥの配列を含む。リストポインタＬＰは、遷移候補リスト要素ＣＬＥの配列における先頭の遷移候補リスト要素ＣＬＥを指し示す。
【００７１】
各遷移候補リスト要素ＣＬＥは、フィールドＦ３１及びＦ３２を有する。遷移候補リスト要素ＣＬＥのフィールドＦ３１には、次ポインタＮＰｃが設定される。次ポインタＮＰｃは、当該次ポインタＮＰｃを含む遷移候補リスト要素ＣＬＥの次に遷移候補リストＣＬに追加された遷移候補リスト要素ＣＬＥを指し示す。但し、最後に追加された遷移候補リスト要素ＣＬＥのフィールドＦ３１には、後続の遷移候補リスト要素ＣＬＥが存在しないことを示すＮＵＬＬ（つまりＮＰｃ＝ＮＵＬＬ）が設定される。
【００７２】
遷移候補リスト要素ＣＬＥのフィールドＦ３２には、マッピング情報ポインタＭＩＰｃが設定される。マッピング情報ポインタＭＩＰｃは、対応するチャンクの現在のマッピング状態を示す第１のマッピング情報ＭＩａを含むハッシュリスト要素ＨＬＥ（図６参照）を指し示す。
【００７３】
本実施形態においてマッピング管理部１３４ａは、現在低速状態にあるチャンクＣＨＫへのアクセスの回数が、アクセス処理（読み出し処理または書き込み処理）において閾値（第１の閾値）ＴＨ１に達した場合、当該チャンクＣＨＫを遷移候補として遷移候補リストＣＬに追加する。つまりマッピング管理部１３４ａは、遷移候補に対応する第１のタイプのマッピング情報ＭＩａを指し示す遷移候補リスト要素ＣＬＥを、遷移候補リストＣＬに追加する。
【００７４】
マッピング管理部１３４ａは、マッピング状態変更処理（第１の状態変更処理）において遷移候補リストＣＬを参照するだけで、低速状態から仮の高速状態に変更されるべきチャンク（遷移候補）を簡単に特定できる。しかし、遷移候補リストＣＬは必ずしも必要でない。つまり、マッピング管理部１３４ａは、アドレス変換ハッシュリストＨＬ＿ｉのハッシュリスト要素ＨＬＥを探索することによっても、低速状態から仮の高速状態に変更されるべきチャンクを特定することができる。つまりマッピング管理部１３４ａは、アクセスカウンタＣＮＴが閾値ＴＨ１以上で、且つマッピング情報ポインタＭＰｂがＮＵＬＬである第１のタイプのマッピング情報ＭＩａを、アドレス変換ハッシュリストＨＬ＿０乃至ＨＬ＿ｎ−１から探索すれば良い。但し、低速ストレージ装置１２の記憶容量は高速ストレージ装置１１のそれと比較して大きいことから、低速状態にあるチャンクの数は一般に非常に多い。このため、遷移候補リストＣＬを用いる場合に比べて、遷移候補を探索するのに要する時間は長くなる。
【００７５】
次に、本実施形態における読み出し処理について、図９を参照して説明する。図９は、読み出し処理の典型的な手順を説明するためのフローチャートである。今、ホスト２０からホストインタフェースバス３０を介してストレージシステム１０に、データの読み出しを指定する読み出し要求が送られたものとする。そして、ストレージシステム１０のストレージコントローラ１３が、ホスト２０からの読み出し要求を受信したものとする。ここでは説明の簡略化のために、論理アドレスＬＡａ＿ｔで指定されるチャンクＣＨＫｔ（つまり対象チャンクＣＨＫｔ）の先頭のブロック（つまり対象ブロック）のデータの読み出しが、ホスト２０からの読み出し要求によって要求されたものとする。この場合、対象ブロックの対象チャンクＣＨＫｔ内の相対位置を示すオフセットアドレスは０である。
【００７６】
以下の説明では、対象チャンクＣＨＫｔに関する第１のタイプのマッピング情報をＭＩａ＿ｔと表記する。また、第１のタイプのマッピング情報ＭＩ＿ｔに含まれている物理アドレス及び装置番号を、それぞれＰＡａ＿ｔ及びＤＮ＿ｔと表記する。また第１のタイプのマッピング情報ＭＩ＿ｔに含まれているマッピング情報ポインタ及びアクセスカウンタを、それぞれＭＰｂ＿ｔ及びＣＮＴ＿ｔと表記する。また、マッピング情報ポインタＭＰｂ＿ｔが非ＮＵＬＬの場合に、当該マッピング情報ポインタＭＰｂ＿ｔが指し示す第２のタイプのマッピング情報をＭＩｂ＿ｔと表記する。また、第２のタイプのマッピング情報ＭＩｂ＿ｔに含まれている物理アドレス及びビットマップポインタを、それぞれＰＡｂ＿ｔ及びＢＰ＿ｔと表記する。また、ビットマップポインタＢＰ＿ｔが指し示すビットマップをＢＭ＿ｔと表記する。更に、対象チャンクＣＨＫｔを遷移候補として示す遷移候補リストＣＬ内の遷移候補リスト要素をＣＬＥ＿ｔと表記する。
【００７７】
ストレージコントローラ１３のアドレス変換部１３５は、ホスト２０からの読み出し要求で指定される対象ブロックを含む対象チャンクＣＨＫｔの論理アドレスＬＡａ＿ｔに基づいて、当該論理アドレスＬＡａ＿ｔのハッシュ値ＨＶｘを計算する（ステップＳ１）。ハッシュ値ＨＶｘ（ＨＶｘ＝ｘ）は、０乃至ｎ−１のいずれか１つである。
【００７８】
次にアドレス変換部１３５は、ハッシュ値ＨＶｘに対応するハッシュテーブルＨＴのエントリＥＮＴ＿ｘに設定されているリストポインタＬＰｘを取得する（ステップＳ２）。ステップＳ２においてアドレス変換部１３５は、リストポインタＬＰｘの指し示すアドレス変換ハッシュリストＨＬ＿ｘから、論理アドレスＬＡａ＿ｔを含む第１のタイプのマッピング情報ＭＩａ＿ｔを検索する。これによりアドレス変換部１３５は、第１のタイプのマッピング情報ＭＩａ＿ｔに含まれている物理アドレスＰＡａ＿ｔ（より詳細には、物理アドレスＰＡａ＿ｔ及び装置番号ＤＮ）を取得する。つまりアドレス変換部１３５は、論理アドレスＬＡａ＿ｔを物理アドレスＰＡａ＿ｔに変換する。なお、マッピング情報（アドレス変換情報）の検索に、アドレス変換ハッシュリストＨＬ＿ｉに代えて、例えば平衡木（バランスドツリー）のような他のデータ構造を用いても良い。
【００７９】
アクセスコントローラ１３７は、物理アドレスＰＡａ＿ｔの示す、高速ストレージ装置１１または低速ストレージ装置１２の物理記憶領域からデータ（実データ）を読み出す（ステップＳ３）。但し、対象ブロックが対象チャンクＣＨＫｔ内の先頭でない場合、アドレス変換部１３５は、データが読み出される物理記憶領域の物理アドレス（対象物理アドレス）を次のように算出する必要がある。アドレス変換部１３５は、対象ブロックの対象チャンクＣＨＫｔ内の相対位置を示すオフセットアドレスを、物理アドレスＰＡａ＿ｔに加算する。これにより、対象物理アドレスが算出される。また、高速ストレージ装置１１または低速ストレージ装置１２のいずれからデータが読み出されるべきかは、第１のタイプのマッピング情報ＭＩａ＿ｔに含まれている装置番号ＤＮ＿ｔによって示される。
【００８０】
ステップＳ３が実行されると、アクセス統計収集部１３６は、第１のタイプのマッピング情報ＭＩａ＿ｔに含まれているアクセスカウンタＣＮＴ＿ｔを１増加する（ステップＳ４）。アクセスカウンタＣＮＴ＿ｔが１増加されると、マッピング管理部１３４ａは、当該アクセスカウンタＣＮＴ＿ｔを閾値ＴＨ１と比較することにより、当該アクセスカウンタＣＮＴ＿ｔの値ＣＮＴ＿ｔが閾値ＴＨ１に等しいかを判定する（ステップＳ５）。アクセスカウンタＣＮＴ＿ｔは、第１のタイプのマッピング情報ＭＩａ＿ｔを用いてマッピング状態が管理される対象チャンクＣＨＫｔへのアクセスの状況（アクセス頻度）を示すアクセス統計情報である。したがって、マッピング管理部１３４ａがカウンタ値ＣＮＴ＿ｔを閾値ＴＨ１と比較することは、対象チャンクＣＨＫｔへのアクセスの状況を監視することと等価である。
【００８１】
もし、カウンタ値ＣＮＴ＿ｔが閾値ＴＨ１に等しいならば（ステップＳ５のＹｅｓ）、マッピング管理部１３４ａは、対象チャンクＣＨＫｔへのアクセスの状況が、高速ストレージ装置１１を用いた高速アクセスを必要とする第１の状況であると判定する。この場合、マッピング管理部１３４ａは、ステップＳ３でデータが読み出されたストレージ装置が低速ストレージ装置１２であるかを判定する（ステップＳ６）。つまり。マッピング管理部１３４ａは、第１のタイプのマッピング情報ＭＩａ＿ｔに含まれている装置番号ＤＮ＿ｔが低速ストレージ装置１２を示しているかを判定する。更に述べるならば、マッピング管理部１３４ａは、対象チャンクＣＨＫｔのマッピング状態が低速状態にあるかを判定する。
【００８２】
もし、データが読み出されたストレージ装置が低速ストレージ装置１２であるならば（ステップＳ６のＹｅｓ）、マッピング管理部１３４ａは、第１の状況にある対象チャンクＣＨＫｔを、低速状態から仮の高速状態に変更する必要があると判定する。この場合、マッピング管理部１３４ａは、対象チャンクＣＨＫｔを遷移候補リストＣＬに追加する（ステップＳ７）。即ちマッピング管理部１３４ａは、第１のタイプのマッピング情報ＭＩａ＿ｔを指し示すマッピング情報ポインタＭＩＰｃ＿ｔが設定された遷移候補リスト要素ＣＬＥ＿ｔを、遷移候補リストＣＬに追加する。これにより読み出し処理は終了する。
【００８３】
一方、カウンタ値ＣＮＴ＿ｔが閾値ＴＨ１に等しくないならば（ステップＳ５のＮｏ）、マッピング管理部１３４ａは、対象チャンクＣＨＫｔが既に遷移候補リストＣＬに追加されているか、当該対象チャンクＣＨＫｔへのアクセスの状況が、高速アクセスを不要とする第２の状況であると判定する。前者の場合、カウンタ値ＣＮＴ＿ｔは閾値ＴＨ１以上であり、後者の場合、カウンタ値ＣＮＴ＿ｔは閾値ＴＨ１未満である。この場合、読み出し処理は終了する。また、データが読み出されたストレージ装置が低速ストレージ装置１２でない場合（ステップＳ６のＮｏ）にも、読み出し処理は終了する。
【００８４】
次に、本実施形態における書き込み処理について、図１０を参照して説明する。図１０は、書き込み処理の典型的な手順を説明するためのフローチャートである。今、ホスト２０からホストインタフェースバス３０を介してストレージシステム１０に、データの書き込みを指定する書き込み要求が送られたものとする。そして、ストレージシステム１０のストレージコントローラ１３が、ホスト２０からの書き込み要求を受信したものとする。ここでは、説明の簡略化のために、論理アドレスＬＡａ＿ｔで指定されるチャンクＣＨＫｔ（つまり対象チャンクＣＨＫｔ）の先頭のブロック（つまり対象ブロック）へのデータの書き込みが、ホスト２０からの書き込み要求によって要求されたものとする。
【００８５】
まず、ストレージコントローラ１３のアドレス変換部１３５は、前述の読み出し処理におけるステップＳ１及びＳ２に相当するステップＳ１１及びＳ１２を実行することにより、論理アドレスＬＡａ＿ｔを含む第１のタイプのマッピング情報ＭＩａ＿ｔを検索する。
【００８６】
アドレス変換部１３５は、この第１のタイプのマッピング情報ＭＩａ＿ｔに基づいて論理アドレスＬＡａ＿ｔを物理アドレスＰＡａ＿ｔに変換する。
【００８７】
アクセスコントローラ１３７は、物理アドレスＰＡａ＿ｔの示す、高速ストレージ装置１１または低速ストレージ装置１２の物理記憶領域にデータ（実データ）を書き込む（ステップＳ１３）。但し、対象ブロックが対象チャンクＣＨＫｔ内の先頭でない場合、データが書き込まれる物理記憶領域の物理アドレスは、前述したように、対象ブロックの対象チャンクＣＨＫｔ内の相対位置を示すオフセットアドレスを用いて算出される必要がある。ステップＳ１３が実行されると、アクセス統計収集部１３６は、第１のタイプのマッピング情報ＭＩａ＿ｔに含まれているアクセスカウンタＣＮＴ＿ｔを１増加する（ステップＳ１４）。
【００８８】
一方、マッピング管理部１３４ａは、第１のタイプのマッピング情報ＭＩａ＿ｔに含まれているマッピング情報ポインタＭＰｂ＿ｔが非ＮＵＬＬ（つまり有効）であるかを判定する（ステップＳ１５）。もし、マッピング情報ポインタＭＰｂ＿ｔが非ＮＵＬＬであるならば（ステップＳ１５のＹｅｓ）、マッピング管理部１３４ａはステップＳ１６に進む。
【００８９】
ステップＳ１６において、マッピング管理部１３４ａはまず、マッピング情報ポインタＭＰｂ＿ｔの指し示す第２のタイプのマッピング情報ＭＩｂ＿ｔを参照し、当該第２のタイプのマッピング情報ＭＩｂ＿ｔに含まれているビットマップポインタＢＰ＿ｔの指し示すビットマップＢＭ＿ｔを特定する。ステップＳ１６において、マッピング管理部１３４ａは更に、ビットマップＢＭ＿ｔに含まれていて、且つデータが書き込まれたブロックの位置に対応するビットに、１をセットする。
【００９０】
マッピング管理部１３４ａはステップＳ１６を実行すると、ステップＳ１７に進む。また、マッピング情報ポインタＭＰｂ＿ｔがＮＵＬＬである場合（ステップＳ１５のＮｏ）、マッピング管理部１３４ａはステップＳ１６をスキップしてステップＳ１７に進む。ステップＳ１７においてマッピング管理部１３４ａは、アクセスカウンタＣＮＴ＿ｔの値ＣＮＴ＿ｔが閾値ＴＨ１に等しいかを判定する（ステップＳ１７）。もし、カウンタ値ＣＮＴ＿ｔが閾値ＴＨ１に等しいならば（ステップＳ１７のＹｅｓ）、マッピング管理部１３４ａは、対象チャンクＣＨＫｔへのアクセスの状況が、高速ストレージ装置１１を用いた高速アクセスを必要とする第１の状況であると判定する。この場合、マッピング管理部１３４ａは、ステップＳ１３でデータが書き込まれたストレージ装置が低速ストレージ装置１２であるかを判定する（ステップＳ１８）。
【００９１】
もし、データが書き込まれたストレージ装置が低速ストレージ装置１２であるならば（ステップＳ１８のＹｅｓ）、マッピング管理部１３４ａは、第１の状況にある対象チャンクＣＨＫｔを、低速状態から仮の高速状態に変更する必要があると判定する。この場合、マッピング管理部１３４ａは、対象チャンクＣＨＫｔを遷移候補リストＣＬに追加する（ステップＳ１９）。これにより書き込み処理は終了する。
【００９２】
一方、カウンタ値ＣＮＴ＿ｔが閾値ＴＨ１に等しくないならば（ステップＳ１７のＮｏ）、マッピング管理部１３４ａは、対象チャンクＣＨＫｔが既に遷移候補リストＣＬに追加されているか、当該対象チャンクＣＨＫｔへのアクセスの状況が、高速アクセスを不要とする第２の状況であると判定する。この場合、書き込み処理は終了する。また、データが書き込まれたストレージ装置が低速ストレージ装置１２でない場合（ステップＳ１８のＮｏ）にも、書き込み処理は終了する。
【００９３】
本実施形態では、第１のタイプのマッピング情報ＭＩａ＿ｔに含まれているアクセスカウンタＣＮＴ＿ｔは、読み出しアクセス及び書き込みアクセスに共通に用いられる。つまり、アクセスカウンタＣＮＴ＿ｔは、チャンクＣＨＫｔへのアクセスの回数（アクセス頻度）を、読み出しアクセスまたは書き込みアクセスのいずれであるかに無関係にカウントする。しかし、第１のタイプのマッピング情報ＭＩａ＿ｔが、例えば、チャンクＣＨＫｔへの読み出しアクセスの回数をカウントする第１のアクセスカウンタ及び当該対応するチャンクＣＨＫへの書き込みアクセスの回数をカウントする第２のアクセスカウンタを含んでいても良い。この場合、アクセス統計収集部１３６は、第１及び第２のアクセスカウンタの値にそれぞれ読み出しアクセス及び書き込みアクセスに固有の重みを付けて、チャンクＣＨＫｔへのアクセスの状況を表す統計情報を取得すれば良い。また、アクセスカウンタＣＮＴ＿ｔが、チャンクＣＨＫｔへの読み出しアクセスまたは書き込みアクセスのいずれか一方の回数を、アクセスの回数としてカウントするのに用いられても構わない。これらは、アクセスカウンタＣＮＴ＿ｔ（または、第１及び第２のアクセスカウンタ）がチャンクＣＨＫｔへのアクセスのデータ量の総和をカウントするのに用いられる場合にも当てはまる。
【００９４】
次に本実施形態において、チャンクのマッピング状態を変更するためのマッピング状態変更処理について、図１１及び図１２を参照して説明する。図１１は、マッピング状態変更処理の典型的な手順を説明するためのフローチャートの一部を示す図、図１２は同マッピング状態変更処理の典型的な手順を説明するためのフローチャートの残りを示す図である。
【００９５】
マッピング管理部１３４ａは、予め定められた監視期間が経過する毎に、図１１及び図１２のフローチャートで示されるマッピング状態変更処理を次のように実行する。まずマッピング管理部１３４ａは、変数ｊを初期値０に設定する（ステップＳ２１）。変数ｊは、逆変換テーブルＩＴＴのｊ番目のエントリを指し示す。逆変換テーブルＩＴＴのｊ番目のエントリは、高速ストレージ装置１１の物理アドレスｊ（つまり物理アドレスｊで指定される物理記憶領域ｊ）に対応付けられている。
【００９６】
次にマッピング管理部１３４ａは、逆変換テーブルＩＴＴのｊ番目のエントリを参照することにより、高速ストレージ装置１１の物理記憶領域ｊに対応するチャンクＣＨＫｘが存在するかを判定する（ステップＳ２２）。マッピング管理部１３４ａは、この判定を、逆変換テーブルＩＴＴのｊ番目のエントリに、物理アドレスｊに対応付けて有効な論理アドレスＬＡａ＿ｘ（つまり、−１以外の値）が設定されているかに基づいて実行する。
【００９７】
もし、高速ストレージ装置１１の物理記憶領域ｊに対応するチャンクＣＨＫｘが存在するならば（ステップＳ２２のＹｅｓ）、マッピング管理部１３４ａはステップＳ２３に進む。ここで、物理記憶領域ｊに対応するチャンクＣＨＫｘが存在するとは、当該チャンクＣＨＫｘの論理アドレスＬＡａ＿ｘが当該物理記憶領域ｊの物理アドレスｊにマッピングされていることを示す。この場合、チャンクＣＨＫｘは、通常の高速状態または仮の高速状態のいずれか一方の状態にある。
【００９８】
そこでステップＳ２３においてマッピング管理部１３４ａは、チャンクＣＨＫｘが仮の高速状態にあるかを判定する（ステップＳ２３）。この判定のためにマッピング管理部１３４ａは、読み出し処理におけるステップＳ１及びＳ２、または書き込み処理におけるステップＳ１１及びＳ１２に相当する処理により、チャンクＣＨＫｘの論理アドレスＬＡａ＿ｘを含む第１のタイプのマッピング情報ＭＩａ＿ｘを検索する。そしてマッピング管理部１３４ａは、第１のタイプのマッピング情報ＭＩａ＿ｘに含まれているマッピング情報ポインタＭＰｂ＿ｘが非ＮＵＬＬである場合に、チャンクＣＨＫｘが仮の高速状態にあると判定する。
【００９９】
このように、チャンクＣＨＫｘが仮の高速状態にあるならば（ステップＳ２３のＹｅｓ）、マッピング管理部１３４ａはステップＳ２４に進む。ステップＳ２４において、マッピング管理部１３４ａは、第１のタイプのマッピング情報ＭＩａ＿ｘに含まれるアクセスカウンタＣＮＴ＿ｘの値ＣＮＴ＿ｘが閾値（第２の閾値）ＴＨ２よりも小さいかを判定する。閾値ＴＨ２は閾値ＴＨ１よりも小さい。
【０１００】
もし、カウンタ値ＣＮＴ＿ｘが閾値ＴＨ２よりも小さいならば（ステップＳ２４のＹｅｓ）、マッピング管理部１３４ａは、現在チャンクＣＨＫｘは仮の高速状態にあるものの、当該チャンクＣＨＫｘへのアクセスの状況は高速アクセスが不要な第２の状況にあると判定する。そこでマッピング管理部１３４ａは、チャンクＣＨＫｘを仮の高速状態から低速状態に変更するための第４の状態変更処理を実行する（ステップＳ２５）。この第４の状態変更処理の手順については後述する。マッピング管理部１３４ａは、ステップＳ２５を実行すると、ステップＳ３０に進む。
【０１０１】
これに対し、カウンタ値ＣＮＴ＿ｘが閾値ＴＨ２よりも小さくないならば（ステップＳ２４のＮｏ）、マッピング管理部１３４ａはステップＳ２８に進む。ステップＳ２８においてマッピング管理部１３４ａは、カウンタ値ＣＮＴ＿ｘが閾値ＴＨ１以上であるかを判定する（ステップＳ２８）。
【０１０２】
もし、カウンタ値ＣＮＴ＿ｘが閾値ＴＨ１以上であるならば（ステップＳ２８のＹｅｓ）、マッピング管理部１３４ａは、仮の高速状態にあるチャンクＣＨＫｘへのアクセスの状況は第２の状況を継続していると判定する。この場合、マッピング管理部１３４ａは、チャンクＣＨＫｘを仮の高速状態から通常の高速状態に変更するための第３の状態変更処理を実行する（ステップＳ２９）。この第３の状態変更処理の手順については後述する。マッピング管理部１３４ａは、ステップＳ２９を実行すると、ステップＳ３０に進む。
【０１０３】
これに対し、カウンタ値ＣＮＴ＿ｘが閾値ＴＨ１未満であるものとする（ステップＳ２８のＮｏ）。ここで、カウンタ値ＣＮＴ＿ｘは閾値ＴＨ２以上である（ステップＳ２４のＮｏ）。このように、カウンタ値ＣＮＴ＿ｘが閾値ＴＨ２以上で（ステップＳ２４のＮｏ）、且つ閾値ＴＨ１未満であるならば（ステップＳ２８のＮｏ）、マッピング管理部１３４ａは、仮の高速状態にあるチャンクＣＨＫｘへのアクセスの状況は第３の状況にあると判定する。第３の状況とは、チャンクＣＨＫｘへのアクセスの状況が、高速アクセスを必要とするか、高速アクセスを不要とするかの判定を保留すべき状況にあることを示す。そこでマッピング管理部１３４ａは、チャンクＣＨＫｘを仮の高速状態に維持するために、ステップＳ２９をスキップしてステップＳ３０に進む。
【０１０４】
一方、チャンクＣＨＫｘが仮の高速状態にないならば（ステップＳ２３のＮｏ）、マッピング管理部１３４ａは、当該チャンクＣＨＫｘは通常の高速状態にあると判定する。この場合、マッピング管理部１３４ａはステップＳ２４と同様に、第１のタイプのマッピング情報ＭＩａ＿ｘに含まれるアクセスカウンタＣＮＴ＿ｘの値ＣＮＴ＿ｘが閾値ＴＨ２よりも小さいかを判定する（ステップＳ２６）。
【０１０５】
もし、カウンタ値ＣＮＴ＿ｘが閾値ＴＨ２よりも小さいならば（ステップＳ２６のＹｅｓ）、マッピング管理部１３４ａは、チャンクＣＨＫｘは通常の高速状態にありながら、当該チャンクＣＨＫｘへのアクセスの状況は高速アクセスが不要な第２の状況にあると判定する。そこでマッピング管理部１３４ａは、チャンクＣＨＫｘを通常の高速状態から仮の高速状態に変更するための第２の状態変更処理を実行する（ステップＳ２７）。この第２の状態変更処理の手順については後述する。マッピング管理部１３４ａは、ステップＳ２７を実行すると、ステップＳ３０に進む。
【０１０６】
これに対し、カウンタ値ＣＮＴ＿ｘが閾値ＴＨ２よりも小さくないならば（ステップＳ２６のＮｏ）、マッピング管理部１３４ａは、通常の高速状態にあるチャンクＣＨＫｘへのアクセスの状況は第１の状況を継続していると判定する。この場合、マッピング管理部１３４ａは、チャンクＣＨＫｘを通常の高速状態に維持するために、ステップＳ２７をスキップしてステップＳ３０に進む。
【０１０７】
ステップＳ３０において、マッピング管理部１３４ａは変数ｊを１増加する（ステップＳ３０）。次にマッピング管理部１３４ａは、増加された変数ｊが高速ストレージ装置１１の物理アドレスの最大値（Ｎ−１）＋１、つまりＮに等しいかを判定する（ステップＳ３１）。
【０１０８】
もし、増加された変数ｊがＮに等しくないならば（ステップＳ３１のＮｏ）、マッピング管理部１３４ａは、高速ストレージ装置１１の次の物理アドレス（物理記憶領域）について処理するために、ステップＳ２２に戻る。これに対し、増加された変数ｊがＮに等しいならば（ステップＳ３１のＹｅｓ）、マッピング管理部１３４ａは、高速ストレージ装置１１の全ての物理アドレス（物理記憶領域）について処理をしたと判定する。この場合、マッピング管理部１３４ａは、遷移候補リストＣＬに登録されたチャンクＣＨＫ＿ｔを、低速状態から仮の高速状態に変更するために、ステップＳ３２に進む。
【０１０９】
ステップＳ３２においてマッピング管理部１３４ａは、遷移候補リストＣＬにおける先頭の遷移候補リスト要素ＣＬＥを参照するために、対象の遷移候補リスト要素ＣＬＥを指し示す変数ｐに、リストポインタＬＰ（図８参照）を設定する。マッピング管理部１３４ａは、変数ｐ（ここでは、ｐ＝ＬＰ）がＮＵＬＬであるかを判定する（ステップＳ３３）。つまり、変数ｐの指し示す有効な遷移候補リスト要素ＣＬＥが存在するかを判定する。
【０１１０】
ここでは、図８に示されるように、変数ｐ（ｐ＝ＬＰ）がＮＵＬＬでないものとする（ステップＳ３３のＮｏ）。この場合、変数ｐの指し示す遷移候補リスト要素ＣＬＥが存在し、当該遷移候補リスト要素ＣＬＥに対応付けられている第１のタイプのマッピング情報が存在する。この第１のタイプのマッピング情報が、チャンクＣＨＫ＿ｔに対応付けられた第１のタイプのマッピング情報ＭＩａ＿ｔであるものとする。つまり、変数ｐの指し示す遷移候補リスト要素ＣＬＥに登録された遷移候補がチャンクＣＨＫ＿ｔであるものとする。
【０１１１】
この場合、マッピング管理部１３４ａは、第１のタイプのマッピング情報ＭＩａ＿ｔに基づいて、対応する遷移候補（チャンクＣＨＫ＿ｔ）を低速状態から仮の高速状態に変更するための第１の状態変更処理を実行する（ステップＳ３４）。この第１の状態変更処理の手順については後述する。
【０１１２】
マッピング管理部１３４ａは、ステップＳ３４を実行すると、ステップＳ３５に進む。このとき変数ｐは、直前に実行された第１の状態変更処理（ステップＳ３４）で用いられた遷移候補リスト要素ＣＬＥを指している。マッピング管理部１３４ａは、変数ｐを、当該変数ｐが現在指し示している遷移候補リスト要素ＣＬＥに含まれている次ポインタＮＰｃに更新する（ステップＳ３５）。この次ポインタＮＰｃをＮＰｃ（ｐ）と表記する。つまりマッピング管理部１３４ａは、変数ｐをＮＰｃ（ｐ）に更新する。マッピング管理部１３４ａはステップＳ３５を実行すると、ステップＳ３３に戻る。
【０１１３】
このようにしてマッピング管理部１３４ａは、遷移候補リストＣＬにおける全ての遷移候補リスト要素ＣＬＥの各々に対応付けられている第１のタイプのマッピング情報ＭＩａ＿ｔに基づいて、対応する遷移候補（チャンクＣＨＫ＿ｔ）を低速状態から仮の高速状態に変更するための第１の状態変更処理を実行する。つまりマッピング管理部１３４ａは、遷移候補リストＣＬに登録された全ての遷移候補を対象に第１の状態変更処理を実行する。
【０１１４】
ここで、最後の遷移候補を対象に第１の状態変更処理が実行されたものとする（ステップＳ３４）。このとき変数ｐは、遷移候補リストＣＬの最後の遷移候補リスト要素ＣＬＥを指し示している。マッピング管理部１３４ａは、この変数ｐを、最後の遷移候補リスト要素ＣＬＥに含まれている次ポインタＮＰｃ（つまりＮＰｃ（ｐ））に更新する（ステップＳ３５）。
【０１１５】
最後の遷移候補リスト要素ＣＬＥに含まれている次ポインタＮＰｃ（ｐ＝ＮＰｃ（ｐ））はＮＵＬＬである（ステップＳ３３のＹｅｓ）。この場合、マッピング管理部１３４ａは、遷移候補リストＣＬに登録された全ての遷移候補を対象に第１の状態変更処理を実行したと判定する。そこでマッピング管理部１３４ａは、遷移候補リストＣＬをワーク領域１３２ｂから削除して、マッピング状態変更処理を終了する。
【０１１６】
次に第１の状態変更処理の詳細について図１３を参照して説明する。図１３は、第１の状態変更処理の典型的な手順を説明するためのフローチャートである。ここでは、低速状態から仮の高速状態に変更されるべき遷移候補がチャンクＣＨＫ＿ｔであるものとする。チャンクＣＨＫ＿ｔは、変数ｐの指し示す遷移候補リスト要素ＣＬＥに対応付けられている第１のタイプのマッピング情報ＭＩａ＿ｔに基づいて特定される。
【０１１７】
第１のタイプのマッピング情報ＭＩａ＿ｔは、論理アドレスＬＡａ＿ｔ、物理アドレスＰＡａ＿ｔ、装置番号ＤＶ＿ｔ及びマッピング情報ポインタＭＰｂ＿ｔを含む。この例では、装置番号ＤＶ＿ｔは低速ストレージ装置１２を示す。また、マッピング情報ポインタＭＰｂ＿ｔは無効マッピング情報ポインタ（ＭＰｂ＿ｔ＝ＮＵＬＬ）である。つまり、チャンクＣＨＫ＿ｔは低速状態にあり、当該チャンクＣＨＫ＿ｔのデータは、低速ストレージ装置１２のみに格納されている。また、物理アドレスＰＡａ＿ｔが第１の物理アドレスであるものとする。
【０１１８】
マッピング管理部１３４ａは、高速ストレージ装置１１に含まれていて且つチャンクＣＨＫ＿ｔと同一サイズを有する空き物理記憶領域の集合から、１つの空き物理記憶領域を選択する（ステップＳ４１）。つまりマッピング管理部１３４ａは、高速ストレージ装置１１から１つの空き物理記憶領域を取得する。取得された物理記憶領域の物理アドレスが第２の物理アドレスであるものとする。
【０１１９】
次にマッピング管理部１３４ａは、第１の物理アドレスで指定される低速ストレージ装置１２の物理記憶領域に格納されているデータ（つまりチャンクＣＨＫ＿ｔのデータ）を、第２の物理アドレスで指定される高速ストレージ装置１１の物理記憶領域（つまり、ステップＳ４１で取得された物理記憶領域）にコピーする（ステップＳ４２）。これによりチャンクＣＨＫ＿ｔのデータは、高速ストレージ装置１１及び低速ストレージ装置１２の両方に存在する。
【０１２０】
次にマッピング管理部１３４ａは、チャンクＣＨＫ＿ｔ内のデータが書き込まれた（更新された）ブロックの位置を記録するのに用いられるビットマップＢＭ＿ｔのための領域を、メモリ１３２のライト位置情報領域１３２ｅから取得する（ステップＳ４３）。マッピング管理部１３４ａは、取得された領域の全ビット、つまりビットマップＢＭ＿ｔの全ビットを、“０”にクリアする（ステップＳ４４）。
【０１２１】
次にマッピング管理部１３４ａは、第２のタイプのマッピング情報ＭＩｂ＿ｔのための領域を、メモリ１３２のアドレス変換情報領域１３２ｄから取得する（ステップＳ４５）。そしてマッピング管理部１３４ａは、クリアされたビットマップＢＭ＿ｔを指し示すビットマップポインタＢＰ＿ｔを、第２のタイプのマッピング情報ＭＩｂ＿ｔのフィールドＦ２２に設定する（ステップＳ４６）。またマッピング管理部１３４ａは、現在チャンクＣＨＫ＿ｔの論理アドレスＬＡａ＿ｔに対応付けて第１のタイプのマッピング情報ＭＩａ＿ｔに設定されている物理アドレスＰＡａ＿ｔ（つまり、第１の物理アドレス）を、第２のタイプのマッピング情報ＭＩｂ＿ｔにＰＡｂ＿ｔとして設定する（ステップＳ４７）。つまり、第１の物理アドレスが、第２のタイプのマッピング情報ＭＩｂ＿ｔのフィールドＦ２１に設定される。
【０１２２】
次にマッピング管理部１３４ａは、第２のタイプのマッピング情報ＭＩｂ＿ｔを指し示すマッピング情報ポインタＭＰｂを、第１のタイプのマッピング情報ＭＩａ＿ｔのフィールドＦ１４に設定する（ステップＳ４８）。つまりマッピング管理部１３４ａは、第１のタイプのマッピング情報ＭＩａ＿ｔに含まれている無効マッピング情報ポインタＭＰｂ＿ｔ（ＭＰｂ＿ｔ＝ＮＵＬＬ）を、第２のタイプのマッピング情報ＭＩｂ＿ｔを指し示す有効なマッピング情報ポインタＭＰｂ＿ｔに更新する。
【０１２３】
次にマッピング管理部１３４ａは、チャンクＣＨＫ＿ｔのデータがコピーされた高速ストレージ装置１１の物理記憶領域を指定する第２の物理アドレスを、第１のタイプのマッピング情報ＭＩａ＿ｔにＰＡａ＿ｔとして設定する（ステップＳ４９）。つまり、第２の物理アドレスが、第２のタイプのマッピング情報ＭＩｂ＿ｔのフィールドＦ２１に設定される。これにより、チャンクＣＨＫ＿ｔは、当該チャンクＣＨＫ＿ｔの論理アドレスＬＡａ＿ｔが低速ストレージ装置１２側の第１の物理アドレスのみにマッピングされる低速状態から、当該論理アドレスＬＡａ＿ｔが高速ストレージ装置１１側の第２の物理アドレス及び低速ストレージ装置１２側の第１の物理アドレスの両方にマッピングされる仮の高速状態に遷移する。
【０１２４】
マッピング管理部１３４ａは更に、第２の物理アドレス（つまり、チャンクＣＨＫ＿ｔのデータがコピーされた第２の物理アドレス）に対応付けられた逆変換テーブルＩＴＴのエントリに、チャンクＣＨＫ＿ｔの論理アドレスＬＡａ＿ｔを設定する（ステップＳ５０）。これにより、１つの遷移候補（チャンクＣＨＫ＿ｔ）についての第１の状態変更処理が終了する。
【０１２５】
ここで、チャンクＣＨＫ＿ｔ（つまり、仮の高速状態に遷移したチャンクＣＨＫ＿ｔ）からのデータの読み出しまたはチャンクＣＨＫ＿ｔへのデータの書き込みが、ホスト２０からストレージコントローラ１３に要求されたものとする。この場合、前述の読み出し処理及び書き込み処理から明らかなように、チャンクＣＨＫ＿ｔからのデータの読み出しまたはチャンクＣＨＫ＿ｔへのデータの書き込みは、当該チャンクＣＨＫ＿ｔに対応付けられた第１のタイプのマッピング情報ＭＩａに基づいて実行される。つまり、チャンクＣＨＫ＿ｔの論理アドレスＬＡａ＿ｔがマッピングされた高速ストレージ装置１１の第２の物理アドレスの指定する物理記憶領域がアクセスされる。これにより、仮の高速状態にあるチャンクＣＨＫ＿ｔへのアクセスが、通常の高速状態にあるチャンクへのアクセスのように高速化される。
【０１２６】
次に第２の状態変更処理の詳細について図１４を参照して説明する。図１４は、第２の状態変更処理の典型的な手順を説明するためのフローチャートである。ここでは、通常の高速状態から仮の高速状態に変更されるべき遷移候補がチャンクＣＨＫｘであるものとする。また、チャンクＣＨＫｘに対応付けられた第１のタイプのマッピング情報がＭＩａ＿ｘであり、当該第１のタイプのマッピング情報ＭＩａ＿ｘは、論理アドレスＬＡａ＿ｘ、物理アドレスＰＡａ＿ｘ、装置番号ＤＶ＿ｘ及びマッピング情報ポインタＭＰｂ＿ｘを含むものとする。この例では、装置番号ＤＶ＿ｘは高速ストレージ装置１１を示す。また、マッピング情報ポインタＭＰｂ＿ｘは無効マッピング情報ポインタ（ＭＰｂ＿ｘ＝ＮＵＬＬ）である。
【０１２７】
マッピング管理部１３４ａは、低速ストレージ装置１２に含まれていて且つチャンクＣＨＫｘと同一サイズを有する空き物理記憶領域の集合から、１つの空き物理記憶領域を選択する（ステップＳ６１）。つまりマッピング管理部１３４ａは、低速ストレージ装置１２から１つの空き物理記憶領域を取得する。取得された物理記憶領域の物理アドレスが物理アドレスＰＡｂ＿ｘであるものとする。
【０１２８】
次にマッピング管理部１３４ａは、物理アドレスＰＡａ＿ｘで指定される高速ストレージ装置１１の物理記憶領域に格納されているデータ（つまりチャンクＣＨＫｘのデータ）を、物理アドレスＰＡｂ＿ｘで指定される低速ストレージ装置１２の物理記憶領域（つまり、ステップＳ６１で取得された物理記憶領域）にコピーする（ステップＳ６２）。これによりチャンクＣＨＫｘのデータは、高速ストレージ装置１１及び低速ストレージ装置１２の両方に存在することになる。
【０１２９】
次にマッピング管理部１３４ａは、チャンクＣＨＫｘ内のデータが書き込まれた位置を記録するのに用いられるビットマップＢＭ＿ｘのための領域を、メモリ１３２のライト位置情報領域１３２ｅから取得する（ステップＳ６３）。マッピング管理部１３４ａは、ビットマップＢＭ＿ｘの全ビットを“０”にクリアする（ステップＳ６４）。
【０１３０】
次にマッピング管理部１３４ａは、第２のタイプのマッピング情報ＭＩｂ＿ｘのための領域を、メモリ１３２のアドレス変換情報領域１３２ｄから取得する（ステップＳ６５）。そしてマッピング管理部１３４ａは、クリアされたビットマップＢＭ＿ｘを指し示すビットマップポインタＢＰ＿ｘを、第２のタイプのマッピング情報ＭＩｂ＿ｘのフィールドＦ２２に設定する（ステップＳ６６）。またマッピング管理部１３４ａは、チャンクＣＨＫｘのデータがコピーされた低速ストレージ装置１２の物理記憶領域を指定する物理アドレスＰＡｂ＿ｘを、第２のタイプのマッピング情報ＭＩｂ＿ｘのフィールドＦ２１に設定する（ステップＳ６７）。
【０１３１】
次にマッピング管理部１３４ａは、第２のタイプのマッピング情報ＭＩｂ＿ｘを指し示すマッピング情報ポインタＭＰｂ＿ｘを、第１のタイプのマッピング情報ＭＩａ＿ｘのフィールドＦ１４に設定する（ステップＳ６８）。つまりマッピング管理部１３４ａは、第１のタイプのマッピング情報ＭＩａ＿ｘに含まれている無効マッピング情報ポインタＭＰｂ＿ｘ（ＭＰｂ＿ｘ＝ＮＵＬＬ）を、第２のタイプのマッピング情報ＭＩｂ＿ｘを指し示す有効なマッピング情報ポインタＭＰｂ＿ｘに更新する。これにより、チャンクＣＨＫｘについての第２の状態変更処理が終了する。
【０１３２】
次に第３の状態変更処理の詳細について図１５を参照して説明する。図１５は、第３の状態変更処理の典型的な手順を説明するためのフローチャートである。ここでは、仮の高速状態から通常の高速状態に変更されるべき遷移候補がチャンクＣＨＫｘであるものとする。また、チャンクＣＨＫｘに対応付けられた第１のタイプのマッピング情報がＭＩａ＿ｘであり、当該第１のタイプのマッピング情報ＭＩａ＿ｘは、論理アドレスＬＡａ＿ｘ、物理アドレスＰＡａ＿ｘ、装置番号ＤＶ＿ｘ及びマッピング情報ポインタＭＰｂ＿ｘを含むものとする。この例では、装置番号ＤＶ＿ｘは高速ストレージ装置１１を示す。また、マッピング情報ポインタＭＰｂ＿ｘは非ＮＵＬＬ（有効）であり、第２のタイプのマッピング情報ＭＩｂ＿ｘを指し示す。
【０１３３】
まずマッピング管理部１３４ａは、第２のタイプのマッピング情報ＭＩｂ＿ｘに設定されている物理アドレスＰＡｂ＿ｘの指定する低速ストレージ装置１２側の物理記憶領域を解放する（ステップＳ７１）。次にマッピング管理部１３４ａは、第２のタイプのマッピング情報ＭＩｂ＿ｘに設定されているビットマップポインタＢＰ＿ｘの指し示すビットマップＢＭ＿ｘの領域を解放する（ステップＳ７２）。
【０１３４】
またマッピング管理部１３４ａは、第２のタイプのマッピング情報ＭＩｂ＿ｘの領域を解放する（ステップＳ７３）。次にマッピング管理部１３４ａは、第１のタイプのマッピング情報ＭＩａ＿ｘに含まれている有効なマッピング情報ポインタＭＰｂ＿ｘを、ＮＵＬＬ（無効マッピング情報ポインタＭＰｂ＿ｘ）に更新する（ステップＳ７４）。つまりマッピング管理部１３４ａは、第１のタイプのマッピング情報ＭＩａ＿ｘのフィールドＦ１４にＮＵＬＬを設定する。これにより、チャンクＣＨＫｘについての第３の状態変更処理が終了する。
【０１３５】
次に第４の状態変更処理の詳細について図１６を参照して説明する。図１６は、第４の状態変更処理の典型的な手順を説明するためのフローチャートである。ここでは、仮の高速状態から低速状態に変更されるべき遷移候補がチャンクＣＨＫｘであるものとする。また、チャンクＣＨＫｘに対応付けられた第１のタイプのマッピング情報がＭＩａ＿ｘであり、当該第１のタイプのマッピング情報ＭＩａ＿ｘは、論理アドレスＬＡａ＿ｘ、物理アドレスＰＡａ＿ｘ、装置番号ＤＶ＿ｘ及びマッピング情報ポインタＭＰｂ＿ｘを含むものとする。この例では、装置番号ＤＶ＿ｘは高速ストレージ装置１１を示す。また、マッピング情報ポインタＭＰｂ＿ｘは非ＮＵＬＬ（有効）であり、第２のタイプのマッピング情報ＭＩｂ＿ｘを指し示す。第２のタイプのマッピング情報ＭＩｂ＿ｘは、物理アドレスＰＡｂ＿ｘ及びビットマップポインタＢＰ＿ｘを含む。ビットマップポインタＢＰ＿ｘは、ビットマップＢＭ＿ｘを指し示す。
【０１３６】
まずマッピング管理部１３４ａは、ビットマップポインタＢＰ＿ｘの指し示すビットマップＢＭ＿ｘを参照して、“１”がセットされているビットを全て検索する（ステップＳ８１）。ステップＳ８１においてマッピング管理部１３４ａは、物理アドレスＰＡａ＿ｘの指定する高速ストレージ装置１１の物理記憶領域に含まれていて、且つ検索されたビットに対応する全てのブロックを特定する。ステップＳ８１においてマッピング管理部１３４ａは、特定された全てのブロック（第１のブロック）のデータを、物理アドレスＰＡｂ＿ｘの指定する低速ストレージ装置１２の物理記憶領域内の対応するブロック（第２のブロック）にコピー（反映）する。これにより、物理アドレスＰＡｂ＿ｘの指定する低速ストレージ装置１２の物理記憶領域のデータは、物理アドレスＰＡａ＿ｘの指定する高速ストレージ装置１１の物理記憶領域のデータに一致する。
【０１３７】
次にマッピング管理部１３４ａは、現在の物理アドレスＰＡｂ＿ｘ（つまり、現在第２のタイプのマッピング情報ＭＩｂ＿ｘに設定されている物理アドレスＰＡｂ＿ｘ）を、第１のタイプのマッピング情報ＭＩａ＿ｘのフィールドＦ１２にＰＡａ＿ｘとして設定する（ステップＳ８２）。次にマッピング管理部１３４ａは、ビットマップＢＭ＿ｘの領域を解放し（ステップＳ８３）、且つ第２のタイプのマッピング情報ＭＩｂ＿ｘの領域を解放する（ステップＳ８４）。
【０１３８】
次にマッピング管理部１３４ａは、第１のタイプのマッピング情報ＭＩａ＿ｘに含まれている有効なマッピング情報ポインタＭＰｂ＿ｘを、ＮＵＬＬ（無効マッピング情報ポインタＭＰｂ＿ｘ）に更新する（ステップＳ８５）。つまりマッピング管理部１３４ａは、第１のタイプのマッピング情報ＭＩａ＿ｘのフィールドＦ１４にＮＵＬＬを設定する。そしてマッピング管理部１３４ａは、物理アドレスＰＡａ＿ｘに対応付けられた逆変換テーブルＩＴＴのエントリに無効値（−１）を設定する（ステップＳ８６）。これにより、チャンクＣＨＫｘについての第４の状態変更処理が終了する。
【０１３９】
本実施形態における上述の動作と効果とを以下に整理して示す。例えば、第１のチャンクに対応する第１のアクセスカウンタの値が、第１の監視期間内に閾値ＴＨ１に達したものとする（ステップＳ５またはＳ１７のＹｅｓ）。つまり、第１の監視期間における第１のチャンクへのアクセスの回数（頻度）が閾値ＴＨ１以上であり、高速アクセスを必要とする第１の状況にあるものとする。しかも、第１のチャンクは、第１の監視期間の開始時に低速状態（第２の状態）にあるものとする（ステップＳ６またはＳ１８のＹｅ）。
【０１４０】
この場合、従来技術であれば、第１のチャンクは、第１の監視期間の次の第２の監視期間が開始される前に、低速状態から高速状態（本実施形態における通常の高速状態に相当）に変更される。ここでは、第１のチャンクのデータは、低速ストレージ装置１２から高速ストレージ装置１１にコピーされる。このとき、低速ストレージ装置１２側のデータは破棄（無効化）される。つまり、第１のチャンクのデータは、低速ストレージ装置１２から高速ストレージ装置１１に移動される。
【０１４１】
ここで、第１のチャンクへのアクセスの状況が、通常は高速アクセスを必要としない第２の状況にあり、第１の監視期間だけ高速アクセスを必要とする第１の状況に変化したものとする。この場合、従来技術では、通常は低速状態にある第１のチャンクが、第１の監視期間の後だけ低速状態から高速状態に変更され、次の第２の監視期間の後に再び低速状態に変更される。
【０１４２】
第１のチャンクの状態がこのように遷移する場合、この状態遷移に伴うデータの移動に必要な低速ストレージ装置１２へのアクセスが、低速状態から高速状態への遷移時と、高速状態から低速状態への遷移時とにそれぞれ発生する。このように、一時的なマッピング状態の変更に伴うデータ移動のために低速ストレージ装置１２へのアクセスが増加することは、監視時間が経過する毎に行われるマッピング状態変更処理の効率の低下を招く。このようなマッピング状態変更処理の効率の低下は、第１のチャンクへのアクセスの回数が閾値ＴＨ１の近傍と閾値ＴＨ２の近傍との範囲内で変動する場合にも発生する。つまり、マッピング状態変更処理の効率の低下は、マッピング状態の遷移の振動が発生する場合にも発生する。この振動を防止するために、本実施形態でも適用されているように、２つの閾値ＴＨ１及びＴＨ２（ＴＨ２＜ＴＨ１）を用いることが考えられる。閾値ＴＨ１は、マッピング状態を高速側へ変更するか否かを判定するのに用いられる第１の判定条件である。閾値ＴＨ２は、マッピング状態を低速側へ変更するか否かを判定するための第２の判定条件である。しかし、単に２つの閾値ＴＨ１及びＴＨ２を適用するだけでは、例えば閾値ＴＨ１及びＴＨ２の差が小さいならば、状態遷移の振動を十分に防ぐことは難しい。逆に閾値ＴＨ１及びＴＨ２の差が大きいならば、本来マッピング状態が変更されるべきチャンクのマッピング状態が変更されない可能性が高くなる。
【０１４３】
これに対して本実施形態では、第１の監視期間におけるアクセスの回数から、第１のチャンクのマッピング状態が例えば高速側へ変更されるべきであるものとすると、当該第１のチャンクは、第１の監視期間の後に低速状態から仮の高速状態に変更される（ステップＳ３４）。ここでは、第１のチャンクのデータは、低速ストレージ装置１２から高速ストレージ装置１１にコピーされる。このとき、第１のチャンクが低速ストレージ装置１２の第１の物理記憶領域にマッピングされた状態を維持するために、第１のタイプのマッピング情報（旧マッピング情報）に基づいて、第２のタイプのマッピング情報が設定される。また、第１のチャンクを高速ストレージ装置１１側にもマッピングするために、高速ストレージ装置１１から空きの第２の物理記憶領域が取得される。そして、第１のタイプのマッピング情報が、第１のチャンクを第１の物理記憶領域にマッピングする状態から、当該第１のチャンクを第２の物理記憶領域にマッピングする状態に更新される。これにより、第１のチャンクのデータは、高速ストレージ装置１１及び低速ストレージ装置１２の両方に存在する。
【０１４４】
このため本実施形態では、第１のチャンクが仮の高速状態にある第２の監視期間に当該第１のチャンクへの書き込みが要求されないならば、たとえ当該第２の監視期間の後に仮の高速状態から低速状態に変更されるとしても、当該状態遷移に伴う低速ストレージ装置１２へのアクセスは発生しない。よって本実施形態によれば、第１のチャンクが“低速状態→仮の高速状態→低速状態”のように遷移する場合に、従来技術において第１のチャンクが“低速状態→高速状態→低速状態の”ように遷移する場合と比較して、低速ストレージ装置１２へのアクセスを1回減少することができる。つまり本実施形態によれば、監視期間が経過する毎に実行されるマッピング状態変更処理の効率の低下を防止して、当該状態変更処理がストレージシステム１０の運用に及ぼす影響を低減できる。
【０１４５】
マッピング状態変更処理は、一般には、ストレージシステム１０の本来の運用（通常の業務）に影響が少ない時間帯（例えば、ストレージシステム１０へのアクセスが少ない時間帯）に行われる。このためストレージシステム１０のストレージコントローラ１３には、マッピング状態変更処理を短時間で実行することが要求される。本実施形態の上述の効果は、このような要求を満たすことができる。この効果は、マッピング状態変更処理が頻繁に行われる場合に特に顕著となる。
【０１４６】
本実施形態では前述したように、第１のチャンクへのアクセスが要求された場合、当該第１のチャンクが仮の高速状態にあるならば、実際のアクセスは高速ストレージ装置１１の第２の物理記憶領域を対象に行われる。このため、第１のチャンクが仮の高速状態にある期間に当該第１のチャンクへの書き込みが要求されたならば、実データは高速ストレージ装置１１の第２の物理記憶領域のみに書き込まれる。これにより、低速ストレージ装置１２の第１の物理記憶領域のデータと高速ストレージ装置１１の第２の物理記憶領域のデータとは一致しなくなる。
【０１４７】
このため本実施形態においても、第１のチャンクが仮の高速状態にある監視期間に当該第１のチャンクへの書き込みが実行され、且つ当該監視期間の経過後に当該第１のチャンクが仮の高速状態から低速状態に変更される場合には（ステップＳ２５）、低速ストレージ装置１２へのアクセスが発生する。但し、このアクセスでは、高速ストレージ装置１１の第２の物理記憶領域において書き込み（更新）が発生したブロックのデータ（更新データ）が、低速ストレージ装置１２の第１の物理記憶領域の対応するブロックに反映される（書き込まれる）だけである。この更新データの反映の後、第１のタイプのマッピング情報が、第１のチャンクを第２の物理記憶領域にマッピングする状態から、当該第１のチャンクを第１の物理記憶領域にマッピングする状態に更新され、第２の物理記憶領域のデータは破棄（無効化）される。
【０１４８】
監視期間の経過後に第１のチャンクが仮の高速状態から低速状態に変更される状況では、当該監視期間における第１のチャンクのアクセス回数は少なく、閾値ＴＨ２未満である。この場合、監視期間において第２の物理記憶領域に書き込まれるべきブロックの数も少ないことが期待される。このため、一旦仮の高速状態に遷移した第１のチャンクを低速状態に戻すために、第１の物理記憶領域へのデータの書き込みが発生したとしても、当該データの量は大きく削減される。よって、仮の高速状態から低速状態への変更に伴う第１の物理記憶領域へのデータの書き込みに要する時間は、第２の物理記憶領域の全ブロック（ここでは、８，１９２ブロック）のデータを第１の物理記憶領域に反映する（書き込む）場合と比較して短くて済む。このように本実施形態によれば、一旦低速状態から仮の高速状態に変更された第１のチャンクへのアクセス回数が次の監視期間に少なくなった場合に、当該第１のチャンクを短時間で低速状態に戻すことができる。これにより、仮の高速状態にありながらアクセス回数が少くなった第１のチャンクの存在が、ストレージシステム１０全体の効率に悪影響を及ぼすのを防ぐことができる。
【０１４９】
また本実施形態では、データが書き込まれた第２の物理記憶領域のブロック位置が、ビットマップＢＭを用いて管理される。このビットマップＢＭは、高速ストレージ装置１１よりも高速なメモリ１３２のライト位置情報領域１３２ｅに格納される。本実施形態では、第１のチャンクへの書き込みが要求された場合、当該第１のチャンクが仮の高速状態にあるならば、実データは第２の物理記憶領域に高速で書き込まれる。このとき、実データが書き込まれた第２の物理記憶領域内のブロックの位置を記録するために、ビットマップＢＭの対応するビットに１がセットされる。しかし、このビット操作は、メモリ１３２上で行われる。このため、仮の高速状態にある第１のチャンクにデータを書き込む際の性能は、通常の高速状態にあるチャンクにデータを書き込む際の性能と殆ど変わらない。
【０１５０】
ビットマップＢＭがメモリ１３２に格納される場合、例えばストレージシステム１０の電源の突然の遮断により、当該ビットマップＢＭの示すライト位置情報が失われる可能性がある。しかし、実データ自体は高速ストレージ装置１１（第２の物理記憶領域）に残っている。したがって、ライト位置情報が失われた場合には、第２の物理記憶領域全体のデータが低速ストレージ装置１２（第１の物理記憶領域）にコピーされれば良い。
【０１５１】
なお、本実施形態で適用されるストレージシステム１０は、ブロック単位でアクセスされるブロックデバイスとして機能する場合を想定している。しかし、ストレージシステム１０が、ファイル単位でアクセスされても構わない。この場合、実データが書き込まれた高速ストレージ装置１１の物理記憶領域内の位置をストレージコントローラ１３（アクセスコントローラ１３７）が記録するのに、必ずしもビットマップを使う必要はない。例えば、物理記憶領域内のデータが書かれた位置を示すオフセットアドレス及び当該データの組が順次記録されるライト位置情報を、ストレージコントローラ１３が用いても良い。
【０１５２】
さて本実施形態では、上述のように低速状態から仮の高速状態に変更された第１のチャンクへのアクセスの回数が、第２の監視期間においても閾値ＴＨ１以上の場合（ステップＳ２８４のＹｅｓ）、当該第１のチャンクは仮の高速状態から通常の高速状態に変更される（ステップＳ２９）。この変更のためには、第１のチャンクが第１の物理記憶領域にマッピングされている状態が解除（無効化）されれば良く、データのコピー（移動）を必要としない。このため本実施形態によれば、仮の高速状態から通常の高速状態へ短時間で変更することができる。ここでは、低速ストレージ装置１２（第１の物理記憶領域）に残っているデータとライト位置情報とは無効化される。
【０１５３】
次に、第３の監視期間において第１のチャンクが通常の高速状態にあり（ステップＳ２３のＮｏ）、この第３の監視期間における当該第１のチャンクへのアクセスの回数が閾値ＴＨ２未満であるものとする（ステップＳ２６のＹｅｓ）。この場合、従来技術であれば、第１のチャンクは、第３の監視期間の後に、高速状態から低速状態に変更される。ここでは、第１のチャンクのデータは、高速ストレージ装置１１から低速ストレージ装置１２にコピーされる。このとき、高速ストレージ装置１１側のデータは破棄される。つまり、第１のチャンクのデータは、高速ストレージ装置１１から低速ストレージ装置１２に移動される。
【０１５４】
ここで、第３の監視期間の次の第４の監視期間における第１のチャンクへのアクセスの回数が閾値ＴＨ１以上となったものとする。この場合、従来技術であれば、第１のチャンクは、第４の監視期間の後に、低速状態から再び高速状態に変更される。このとき、低速ストレージ装置１２のデータは高速ストレージ装置１１に移動される。
【０１５５】
これに対して本実施形態では、第１のチャンクは、第３の監視期間の後に高速状態（通常の高速状態）から仮の高速状態に変更される（ステップＳ２７）。ここでは、低速ストレージ装置１２から空きの第１の物理記憶領域が取得される。そして第１のチャンクのデータが、高速ストレージ装置１１（第２の物理記憶領域）から低速ストレージ装置１２（第１の物理記憶領域）にコピーされる。このとき、第１のチャンクが、低速ストレージ装置１２の第１の物理記憶領域にもマッピングされるように、第２のタイプのマッピング情報が設定される。しかも本実施形態では、第１のチャンクが高速ストレージ装置１１の第２の物理記憶領域にマッピングされた状態は維持される。つまり、第１のチャンクのデータは、高速ストレージ装置１１及び低速ストレージ装置１２の両方に存在する。
【０１５６】
このため本実施形態によれば、第４の監視期間における第１のチャンクへのアクセスの回数が閾値ＴＨ１以上となった場合（ステップＳ２８のＹｅｓ）、低速ストレージ装置１２からのデータの読み出しを必要とすることなく、当該第１のチャンクを仮の高速状態から通常の高速状態に短時間で戻すことができる。
【０１５７】
このように本実施形態によれば、各チャンクの状態として、低速状態と高速状態との中間に位置する仮の高速状態を用いることで、予想外のアクセス数の変化またはマッピング状態の変更の振動が発生するチャンクのマッピングに関する処理時間を、従来より低減することができる。また本実施形態によれば、低速状態にありながら、アクセス数が多いことが予測されるチャンクは、一旦仮の高速状態に短時間で変更され、当該仮の高速状態においても依然としてアクセス数が多いことが予測されるならば、高速状態（通常の高速状態）に短時間で変更される。仮の高速状態にあるチャンクへのアクセスは、通常の高速状態にあるチャンクへのアクセスと同様に高速アクセスが可能である。また、たとえ仮の高速状態にあるチャンクへのアクセスの状況が変化して、当該チャンクを低速状態に変更すべき場合にも、当該チャンクを短時間で低速状態に変更できる。このため本実施形態で適用される状態遷移の方法は、状態遷移の振動を防止するために、単に低速状態から高速状態への移動を先送りする方法よりも優れている。
【０１５８】
同様に、本実施形態によれば、高速状態（通常の高速状態）にありながら、アクセス数が少ないことが予測されるチャンクは、一旦仮の高速状態に短時間で変更され、当該仮の高速状態においても依然としてアクセス数が少ないことが予測されるならば、低速状態に短時間で変更される。また、たとえ仮の高速状態にあるチャンクへのアクセスの状況が変化して、当該チャンクを通常の高速状態に変更すべき場合にも、当該チャンクを短時間で通常の高速状態に変更できる。このため本実施形態で適用される状態遷移の方法は、状態遷移の振動を防止するために、単に高速状態から低速状態への移動を先送りする方法よりも優れている。
【０１５９】
なお、前記実施形態では、遷移候補リストＣＬに登録されたチャンクは、高速ストレージ装置１１に空きの物理記憶領域が存在する限り、全て低速状態から仮の高速状態に変更される。しかし、遷移候補リストＣＬに登録された全てのチャンクが、以下に述べるように必ずしも仮の高速状態に変更される必要はない。ここで、遷移候補リストＣＬに登録されたチャンク群（つまり、低速状態から仮の高速状態に変更されるべき候補群）を、第１の候補群と呼ぶ。また、通常の高速状態にあって、且つアクセス数が閾値ＴＨ２を下回ったチャンク群（つまり、通常の高速状態から仮の高速状態に変更されるべき候補群）を、第２の候補群と呼ぶ。また、仮の高速状態にある群を第３の候補群と呼ぶ。
【０１６０】
マッピング管理部１３４ａは、第１の候補群を、当該第２の候補群へのアクセスの回数（またはデータ量の総和）の降順に順位付けする。またマッピング管理部１３４ａは、第２の候補群を、当該第２の候補群へのアクセスの回数（またはデータ量の総和）の昇順に順位付けする。マッピング管理部１３４ａは更に、第３の候補群を、当該第３の候補群へのアクセスの回数（またはデータ量の総和）の降順及び昇順に順位付けする。この場合、アクセスの回数（またはデータ量の総和）の降順に順位付けられた候補群は、仮の高速状態から通常の高速状態に変更されるべき候補の順位を示す。これに対し、アクセスの回数（またはデータ量の総和）の昇順に順位付けられた候補群は、仮の高速状態から低速状態に変更されるべき候補の順位を示す。
【０１６１】
マッピング管理部１３４ａは上述の順位付けの結果に基づき、通常の高速状態にあるチャンクの数と仮の高速状態にあるチャンクの数の総和が、所定数または所定の範囲に入る数となるように、それぞれの候補群の上位の候補から順に、マッピング状態の遷移先を決定する。つまりマッピング管理部１３４ａは、それぞれの候補群の上位の候補から順に、通常の高速状態、仮の高速状態または低速状態のいずれに遷移するか、それとも現在の状態を維持するかを決定する。これにより、低速ストレージ装置１２よりも小容量の高速ストレージ装置１１の物理記憶領域にマッピングされるチャンクの数を、所定数または所定の範囲に収めることができる。
【０１６２】
また、前記実施形態では、閾値ＴＨ１及びＴＨ２は予め定められた値に固定されている。しかし、マッピング状態変更処理において、より高速側に変更されるべき候補（チャンク）の数ＣＮ１と、より低速側に変更されるべき候補（チャンク）の数ＣＮ２とに偏りがある場合、次回のマッピング状態変更処理から、閾値ＴＨ１及びＴＨ２が変更されても良い。例えば、ＣＮ１及びＣＮ２の差の絶対値が所定数αを超えている場合、閾値ＴＨ１及びＴＨ２が変更されても良い。例えば、第１の監視期間の後に仮の高速状態にある全てのチャンクのアクセス数の最大値と最小値を、それぞれ、次の第２の監視期間における新たな閾値ＴＨ１及びＴＨ２としても良い。
【０１６３】
また前記実施形態では、マッピング状態の変更の判定に２つの閾値ＴＨ１及びＴＨ２が用いられる。しかし、マッピング状態の変更の判定に１つの閾値ＴＨだけを用いても構わない。この場合、マッピング管理部１３４ａは、低速状態にあるチャンクへのアクセスの回数（またはデータ量の総和）が閾値ＴＨを超えたならば、当該チャンクを仮の高速状態に変更し、仮の高速状態にあるチャンクへのアクセスの回数（またはデータ量の総和）が閾値ＴＨを超えたならば、当該チャンクを通常の高速状態に変更する。また、マッピング管理部１３４ａは、通常の高速状態にあるチャンクへのアクセスの回数（またはデータ量の総和）が閾値ＴＨを下回ったならば、当該チャンクを仮の高速状態に変更し、仮の高速状態にあるチャンクへのアクセスの回数（またはデータ量の総和）が閾値ＴＨを下回ったならば、当該チャンクを低速状態に変更する。
【０１６４】
また、マッピング状態の変更の判定に閾値ＴＨ１及びＴＨ２に加えて、閾値ＴＨ３及びＴＨ４を用いても構わない。ここで、閾値ＴＨ３は閾値ＴＨ１よりも大きく、閾値ＴＨ４は閾値ＴＨ２よりも小さい。つまり、閾値ＴＨ１，ＴＨ２，ＴＨ３及びＴＨ４の間には、
ＴＨ４＜ＴＨ２＜ＴＨ１＜ＴＨ３
のような関係がある。
【０１６５】
この場合、マッピング管理部１３４ａは、低速状態にあるチャンクへのアクセスの回数（またはデータ量の総和）が閾値ＴＨ１を超えたならば、当該チャンクへのアクセスの状況は高速アクセスを必要とする第１の状況にあると判定する。そしてマッピング管理部１３４ａは、このチャンクを仮の高速状態に変更する。またマッピング管理部１３４ａは、仮の高速状態にあるチャンクへのアクセスの回数（またはデータ量の総和）が閾値ＴＨ３を超えたならば、仮の高速状態への変更の後も第１の状況が継続していると判定する。そしてマッピング管理部１３４ａは、このチャンクを通常の高速状態に変更する。
【０１６６】
またマッピング管理部１３４ａは、通常の高速状態にあるチャンクへのアクセスの回数（またはデータ量の総和）が閾値ＴＨ２を下回ったならば、当該チャンクへのアクセスの状況は高速アクセスを不要とする第２の状況にあると判定する。そしてマッピング管理部１３４ａは、このチャンクを仮の高速状態に変更する。またマッピング管理部１３４ａは、仮の高速状態にあるチャンクへのアクセスの回数（またはデータ量の総和）が閾値ＴＨ４を下回ったならば、仮の高速状態への変更の後も第２の状況が継続していると判定する。そしてマッピング管理部１３４ａは、このチャンクを低速状態に変更する。
【０１６７】
以上説明した少なくとも１つの実施形態によれば、論理アドレスと物理アドレスとの間のマッピング状態の変更に要する処理時間を短縮することができる、ストレージシステム、ストレージコントローラ及び方法を提供できる。
【０１６８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【図１】
2014155666.tif 000003
【図２】
2014155666.tif 000004
【図３】
2014155666.tif 000005
【図４】
2014155666.tif 000006
【図５】
2014155666.tif 000007
【図６】
2014155666.tif 000008
【図７】
2014155666.tif 000009
【図８】
2014155666.tif 000010
【図９】
2014155666.tif 000011
【図１０】
2014155666.tif 000012
【図１１】
2014155666.tif 000013
【図１２】
2014155666.tif 000014
【図１３】
2014155666.tif 000015
【図１４】
2014155666.tif 000016
【図１５】
2014155666.tif 000017
【図１６】
2014155666.tif 000018
【国際調査報告】
2014155666.tif 000019
2014155666.tif 000020
2014155666.tif 000021
2014155666.tif 000022