(57)【要約】  ストレージデバイスへのアクセスを管理するための方法、システムおよびコンピュータ可読記憶媒体が提供される。論理−物理マッピングは、論理アドレスのためのデータの前バージョンが存在するかどうかを示す論理アドレスおよびバージョン情報のために現データを有するストレージデバイスの物理アドレスを論理アドレスごとに示す。書き込みのターゲット論理アドレスのためのデータの前バージョンが存在しないことを示す論理−物理マッピングに応答して、ターゲット物理アドレスと、チェックポイント情報の論理−物理マッピングに示される物理アドレスとに関する情報を含む。ターゲット論理アドレスのためのバージョン情報は、データの前バージョンが存在することを示すべく更新される。書き込みのためのデータは、ターゲット物理アドレスに書き込まれる。ターゲット論理アドレスのための論理−物理マッピングは、ターゲット物理アドレスを示すべく更新される。
2018511853.tif 000002
【特許請求の範囲】
【請求項１】
実行される場合、ストレージデバイスに対して動作を実行されるコンピュータプログラム命令を有するコンピュータ可読記憶媒体であって、前記動作は、
前記ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、前記論理−物理マッピングに提供される物理アドレスとは異なる前記ストレージデバイスの物理アドレスにて、前記論理アドレスのためのデータの前バージョンが存在するかどうかを示す前記論理アドレスおよびバージョン情報のための現データを有する前記ストレージデバイスにおける前記物理アドレスを提供することと、
ターゲット論理アドレスに向けられる書き込みを受信することと、
前記ターゲット論理アドレスのための前記データの前バージョンが存在しないことを示す前記論理−物理マッピングに応答して、
・ターゲット物理アドレスと、チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含め、
・データの前バージョンが存在することを示す前記ターゲット論理アドレスのための前記バージョン情報を更新し、
・前記ターゲット論理アドレスのための前記現データを有する前記物理アドレスとは異なる前記ストレージデバイスの位置のターゲット物理アドレスに前記書き込みのためのデータを書き込み、
・前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新する
を実行させると
を備えるコンピュータ可読記憶媒体。
【請求項２】
前記動作はさらに、
前記ターゲット論理アドレスのための前記データの前バージョンが存在することを示す前記論理−物理マッピングに応答して、
・前記書き込みのためのデータを前記ストレージデバイスのターゲット物理アドレスに書き込、
・前記チェックポイント情報を更新しないで前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新すること
を実行する手順
を備える、請求項１に記載のコンピュータ可読記憶媒体。
【請求項３】
前記コンピュータ可読記憶媒体は、前記ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記動作はさらに、
前記ホストシステムからのチェックポイントコマンドを処理することに応答して、
・前記チェックポイント情報を消去し、
・前記論理アドレスのためのデータの前バージョンがないことを示す前記論理−物理マッピングの前記論理アドレスの各々のためにバージョン情報を設定することを
実行すること
を備える、請求項１または２に記載のコンピュータ可読記憶媒体。
【請求項４】
前記コンピュータ可読記憶媒体は、前記ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記動作はさらに、さらにチェックポイントコマンドに応答して、
前記チェックポイントコマンドによって確立されるチェックポイントのためのセキュリティキーを維持することを備え、
前記ストレージデバイスは前記チェックポイントに関連する受信コマンドを認証すべく前記セキュリティキーを使用する、
請求項１から３のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項５】
前記コンピュータ可読記憶媒体は、前記ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記動作はさらに、
前記ホストシステムからの復元要求を処理することに応答して、前記論理−物理マッピングの論理アドレスごとに、
前記データの前バージョンが存在することを示す前記論理アドレスのための前記バージョン情報に応答して、
・前記論理アドレスのための前記チェックポイント情報に示される前記物理アドレスに対する前記論理−物理マッピングの前記論理アドレスのために前記物理アドレスを設定し、
・前記データの前バージョンが存在しないことを示す前記バージョン情報を設定する
ことを
備え、前記実行させること
を備える、請求項１から４のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項６】
前記コンピュータ可読記憶媒体は、前記ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記動作はさらに、
前記ホストシステムからの差分要求を処理することに応答して、そのバージョン情報が前記論理アドレスのための前記データが最後のチェックポイント以後に変わったことを示す各論理アドレスに関する情報を戻すこと
をさらに備える、請求項１から５のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項７】
前記動作はさらに、
前記ストレージデバイスへのチェックポイントを示すトークンを保存することと、
前記論理−物理マッピングおよび前記チェックポイント情報を前記ストレージデバイスに保存することと、
前記ストレージデバイスの初期化の間に、前記チェックポイントが存在することを決定すべく前記トークンを処理することと、
前記トークンを処理することに応答して、前記初期化に続いて使用する前記論理−物理マッピングと、前記チェックポイント情報とを初期化することと
を備える、請求項１から６のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項８】
前記動作はさらに、
デフラグメンテーション動作を開始することに応答して、デフラグメンテーションのための候補である前記論理−物理マッピングの物理アドレスのために、前記論理−物理マッピングおよび前記チェックポイント情報のマッピングに含まれない選択物理アドレスを再利用すること
を備える、請求項１から７のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項９】
前記書き込みは、複数のチェックポイントの現チェックポイントの間に受信され、前記動作はさらに、
前記現チェックポイントを示さない前記ターゲット論理アドレスのための前記バージョン情報に応答して、前記ターゲット論理アドレスと、前記ターゲット論理アドレスのための前記バージョン情報に示される前記現チェックポイントのための前記チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含めることを備え、前記バージョン情報を前記更新することは、前記ターゲット論理アドレスのための前記バージョン情報の前記現チェックポイントを示すことを有する、
請求項１から８のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項１０】
前記コンピュータ可読記憶媒体は、前記ストレージデバイスに実装され、ホストシステムは、ストレージデバイスのデータにアクセスし、前記動作はさらに、
チェックポイント情報が維持される複数のチェックポイントの１つを有する選択チェックポイントの現データを復元する復元コマンドを受信することと、
前記論理−物理マッピングの論理アドレスｉごとに
前記論理アドレスｉのための前記バージョン情報が前記選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
・前記物理アドレスが前記選択チェックポイントと前記現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、前記論理アドレスｉのための前記論理−物理マッピングに示される前記物理アドレスを解放し、
・前記論理アドレスｉのための前記論理−物理マッピングの前記物理アドレスを前記論理アドレスｉのための前記選択チェックポイントのための前記チェックポイント情報に示される前記物理アドレスに更新するを実行することと
を
備える、
請求項１から９のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項１１】
前記動作はさらに、
現チェックポイントより前の要求チェックポイントでのターゲット論理アドレスのための現チェックポイントの間にデータを読み取る要求を受信することと、
前記要求チェックポイントのための前記チェックポイント情報が前記ターゲット論理アドレスのための物理アドレスを提供する場合、前記要求チェックポイントのための前記チェックポイント情報の前記ターゲット論理アドレスのために提供される前記物理アドレスからのデータを戻すことと、
前記要求チェックポイントのための前記チェックポイント情報が前記ターゲット論理アドレスのための物理アドレスを提供しない場合、物理アドレスマッピングからのデータを前記論理−物理マッピングの前記ターゲット論理アドレスに戻すことと
を備える、請求項１から１０のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項１２】
実行される場合、ストレージデバイスに対して動作を実行させるコンピュータプログラム命令を有するコンピュータ可読記憶媒体を備えるストレージデバイスであって、
前記動作は、
前記ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、前記論理−物理マッピングに提供される物理アドレスとは異なる前記ストレージデバイスの物理アドレスにて、前記論理アドレスのためのデータの前バージョンが存在するかどうかを示す前記論理アドレスおよびバージョン情報のための現データを有する前記ストレージデバイスにおける前記物理アドレスを提供することと、
ターゲット論理アドレスに向けられる書き込みを受信することと、
前記ターゲット論理アドレスのための前記データの前バージョンが存在しないことを示す前記論理−物理マッピングに応答して、
・ターゲット物理アドレスと、チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含め、
・データの前バージョンが存在することを示す前記ターゲット論理アドレスのための前記バージョン情報を更新し、
・前記ターゲット論理アドレスのための前記現データを有する前記物理アドレスとは異なる前記ストレージデバイスの位置のターゲット物理アドレスに前記書き込みのためのデータを書き込み、
・前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新すること
を実行することと
を備えるストレージデバイス。
【請求項１３】
前記動作はさらに、
前記ターゲット論理アドレスのための前記データの前バージョンが存在することを示す前記論理−物理マッピングに応答して、
・前記ストレージデバイスのターゲット物理アドレスへの前記書き込みのためのデータを書き込み、
・前記チェックポイント情報を更新しないで前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新することと
を実行すること
を備える、請求項１２に記載のストレージデバイス。
【請求項１４】
ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記動作はさらに、
前記ホストシステムからのチェックポイントコマンドを処理することに応答して、
・前記チェックポイント情報を消去し、
・前記論理アドレスのためのデータの前バージョンがないことを示す前記論理−物理マッピングの前記論理アドレスの各々のためにバージョン情報を設定すること
を実行すること
を備える、請求項１２または１３に記載のストレージデバイス。
【請求項１５】
ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記動作はさらに、
前記ホストシステムからの復元要求を処理することに応答して、前記論理−物理マッピングの論理アドレスごとに、
前記データの前バージョンが存在することを示す前記論理アドレスのための前記バージョン情報に応答して、
・前記論理アドレスのための前記チェックポイント情報に示される前記物理アドレスに対する前記論理−物理マッピングの前記論理アドレスのために前記物理アドレスを設定し、
・前記データの前バージョンが存在しないことを示す前記バージョン情報を設定すること
を実行させることを
実行すること
を備える、請求項１２から１４のいずれか一項に記載のストレージデバイス。
【請求項１６】
前記書き込みが、複数のチェックポイントの現チェックポイントの間に受信され、前記動作はさらに、
前記現チェックポイントを示さない前記ターゲット論理アドレスのための前記バージョン情報に応答して、前記ターゲット論理アドレスと、前記ターゲット論理アドレスのための前記バージョン情報に示される前記現チェックポイントのための前記チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含めることを備え、前記バージョン情報を更新することは、前記ターゲット論理アドレスのための前記バージョン情報の前記現チェックポイントを示すことを有する、
請求項１２から１５のいずれか一項に記載のストレージデバイス。
【請求項１７】
ホストシステムは、前記ストレージデバイスのデータにアクセスし、前記動作はさらに、
チェックポイント情報が維持される複数のチェックポイントの１つを有する選択チェックポイントの現データを復元する復元コマンドを受信することと、
前記論理−物理マッピングの論理アドレスｉごとに
前記論理アドレスｉのための前記バージョン情報が前記選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
・前記物理アドレスが前記選択チェックポイントと前記現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、前記論理アドレスｉのための前記論理−物理マッピングに示される前記物理アドレスを解放することを実行すること
を実行することと、
前記論理アドレスｉのための前記論理−物理マッピングの前記物理アドレスを前記論理アドレスｉのための前記選択チェックポイントのための前記チェックポイント情報に示される前記物理アドレスに更新することと
を備える、請求項１２から１６のいずれか一項に記載のストレージデバイス。
【請求項１８】
ストレージデバイスへのアクセスを管理するための方法であって、
前記ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、前記論理−物理マッピングに提供される物理アドレスとは異なる前記ストレージデバイスの物理アドレスにて、前記論理アドレスのためのデータの前バージョンが存在するかどうかを示す前記論理アドレスおよびバージョン情報のための現データを有する前記ストレージデバイスにおける前記物理アドレスを提供する段階と、
ターゲット論理アドレスに向けられる書き込みを受信する段階と、
前記ターゲット論理アドレスのための前記データの前バージョンが存在しないことを示す前記論理−物理マッピングに応答して、
・ターゲット物理アドレスと、チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含め、
・データの前バージョンが存在することを示す前記ターゲット論理アドレスのための前記バージョン情報を更新し、
・前記ターゲット論理アドレスのための前記現データを有する前記物理アドレスとは異なる前記ストレージデバイスの位置のターゲット物理アドレスに前記書き込みのためのデータを書き込み、
・前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新すること
を実行する段階と
を備える方法。
【請求項１９】
前記ターゲット論理アドレスのための前記データの前バージョンが存在することを示す前記論理−物理マッピングに応答して、
・前記書き込みのためのデータを前記ストレージデバイスのターゲット物理アドレスに書き込み、
・チェックポイント情報を更新しないで前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新すること
を実行する段階
をさらに備える、請求項１８に記載の方法。
【請求項２０】
ホストシステムからのチェックポイントコマンドを処理することに応答して、
前記チェックポイント情報を消去し、
前記論理アドレスのためのデータの前バージョンがないことを示す前記論理−物理マッピングの前記論理アドレスの各々のために前記バージョン情報を設定すること
を実行する段階
をさらに備える、請求項１８または１９に記載の方法。
【請求項２１】
ホストシステムからの復元要求を処理することに応答して、前記論理−物理マッピングの論理アドレスごとに、
前記データの前バージョンが存在することを示す前記論理アドレスのための前記バージョン情報に応答して、
・前記論理アドレスのための前記チェックポイント情報に示される前記物理アドレスに対する前記論理−物理マッピングの前記論理アドレスのために前記物理アドレスを設定し、
・前記データの前バージョンが存在しないことを示す前記バージョン情報を設定すること
を実行すること
を実行する段階をさらに備える、請求項１８から２０のいずれか一項に記載の方法。
【請求項２２】
前記書き込みは、複数のチェックポイントの現チェックポイントの間に受信され、
前記現チェックポイントを示さない前記ターゲット論理アドレスのための前記バージョン情報に応答して、前記ターゲット論理アドレスと、前記ターゲット論理アドレスのための前記バージョン情報に示されるチェックポイントのための前記チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含める段階をさらに備え、前記バージョン情報を更新する段階は、前記ターゲット論理アドレスのための前記バージョン情報の前記現チェックポイントを示すことを有する、
請求項１８から２１のいずれか一項に記載の方法。
【請求項２３】
チェックポイント情報が維持される複数のチェックポイントの１つを有する選択チェックポイントの現データを復元する復元コマンドを受信する段階と、
前記論理−物理マッピングの論理アドレスｉごとに
前記論理アドレスｉのための前記バージョン情報が前記選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
・前記物理アドレスが前記選択チェックポイントと前記現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、前記論理アドレスｉのための前記論理−物理マッピングに示される前記物理アドレスを解放することを実行すること
を実行する段階と、
前記論理アドレスｉのための前記論理−物理マッピングの前記物理アドレスを前記論理アドレスｉのための前記選択チェックポイントのための前記チェックポイント情報に示される前記物理アドレスに更新する段階と
をさらに備える、請求項１８から２２のいずれか一項に記載の方法。
【請求項２４】
ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、前記論理−物理マッピングに提供される物理アドレスとは異なる前記ストレージデバイスの物理アドレスにて、前記論理アドレスのためのデータの前バージョンが存在するかどうかを示す前記論理アドレスおよびバージョン情報のための現データを有する前記ストレージデバイスにおける前記物理アドレスを提供する手段と、
ターゲット論理アドレスに向けられるホストからの書き込みを受信する手段と、
前記ターゲット論理アドレスのための前記データの前バージョンが存在しないことを示す前記論理−物理マッピングに応答して、ターゲット物理アドレスと、チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含める手段と、
前記ターゲット論理アドレスのための前記データの前バージョンが存在しないことを示す前記論理−物理マッピングに応答して、データの前バージョンが存在することを示す前記ターゲット論理アドレスのための前記バージョン情報を更新する手段と、
前記ターゲット論理アドレスのための前記現データを有する前記物理アドレスとは異なる前記ストレージデバイスの位置のターゲット物理アドレスに前記書き込みのためのデータを書き込む手段と、
前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新する手段と
を備える装置。
【請求項２５】
チェックポイント情報が維持される複数のチェックポイントの１つを有する選択チェックポイントの現データを復元する復元コマンドを受信する手段と、
前記論理−物理マッピングの論理アドレスｉごとに
前記論理アドレスｉのための前記バージョン情報が前記選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
・前記物理アドレスが前記選択チェックポイントと前記現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、前記論理アドレスｉのための前記論理−物理マッピングに示される前記物理アドレスを解放し、
・前記論理アドレスｉのための前記論理−物理マッピングの前記物理アドレスを前記論理アドレスｉのための前記選択チェックポイントのための前記チェックポイント情報に示される前記物理アドレスに更新すること
を実行すること
を実行する手段と
をさらに備える、請求項２４に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に説明される実施形態は概して、ストレージデバイスの論理アドレスのためのデータの前バージョンを管理することに関する。
【背景技術】
【０００２】
ストレージデバイスのデータは、異なる時点にてバックアップされ得、チェックポインティングと呼ばれる処理の一部として保存時点へのデータ復元を可能にする。オペレーティングシステムチェックポインティングは、ユーザがデータの状態を当該チェックポイントに戻すことを可能にする復元ポイントまたはチェックポイントを作り出すために更新されたデータの前バージョンを格納するオペレーティングシステムを含む。しかしながら、オペレーティングシステムチェックポインティングは、マルウェアがインストールされた前のポイントにユーザがデータを復元するのを妨げるべく、チェックポイントデータを破損するようにオペレーティングシステムおよびアプリケーションファイルを攻撃する場合があるマルウェアの攻撃を受けやすい。さらに、オペレーティングシステムベースのチェックポインティングは、他のソフトウェアの干渉を受けやすく、アンチウィルスプログラムは、チェックポインティングが適切に作動できなくさせるにちがいない。
【０００３】
仮想マシンチェックポインティングは、仮想マシンの状態をチェックポイント時に復元することを可能にすべく、仮想マシンが更新されたデータの変化を監視し、更新されたデータの前バージョンを格納することを含む。仮想マシンチェックポインティングはまた、マルウェアの攻撃を受けやすい。
【０００４】
システムバックアップは、ストレージデバイスまたは別のストレージデバイス上の別のパーティションに対するチェックポイント時現在のドライブの全てのデータのバックアップを含む。システムバックアップは、ホストシステム上で実行され、かなりのホストリソースを消費し、それによりホストシステムでの性能劣化という結果になり得る。さらに、ホストベースのシステムバックアップは多くの場合に遅く、バックアップおよび復元するためにかなりの時間を必要とする。
【０００５】
ストレージデバイスに書き込まれるデータのチェックポイントを取得するための改善された解決策を提供することが当技術分野にて必要である。
【図面の簡単な説明】
【０００６】
添付の図面を参照して、複数の実施形態が例として説明される。図面は縮尺通りではなく、同様の参照番号は同様の要素を指す。
【０００７】
【図１】ホストシステムが、ストレージデバイスに対して入出力（Ｉ／Ｏ）動作を実行するストレージシステムの実施形態を示す。
【０００８】
【図２】論理−物理マッピングの実施形態を示す。
【０００９】
【図３】チェックポイント情報の情報の実施形態を示す。
【００１０】
【図４】１つのチェックポイントだけが維持される場合にチェックポイントコマンドを処理する動作の実施形態を示す。
【００１１】
【図５】複数のチェックポイントが維持され得る場合にチェックポイントコマンドを処理する動作の実施形態を示す。
【００１２】
【図６】ストレージデバイスへの書き込み要求を処理する動作の実施形態を示す。
【００１３】
【図７】復元要求情報を処理する動作の実施形態を示す。
【００１４】
【図８】複数のチェックポイントが維持され得る場合に復元要求を処理する動作の実施形態を示す。
【００１５】
【図９】１つのチェックポイントだけが維持され得る場合に復元要求を処理する動作の実施形態を示す。
【００１６】
【図１０】デフラグメンテーション動作を処理する動作の実施形態を示す。
【００１７】
【図１１】論理アドレス用のデータの前バージョンに関する情報の差分要求を処理する動作の実施形態を示す。
【００１８】
【図１２】ストレージデバイスの初期化を行う動作の実施形態を示す。
【００１９】
【図１３】図１のホストシステムが実装され得るシステムを示す。
【発明を実施するための形態】
【００２０】
先行技術のチェックポインティングおよびバックアップ解決策は、マルウェアからの攻撃を受けやすい場合があり、相当なホスト計算上のリソースを消費する場合がある。
【００２１】
説明される実施形態は、新しいデータまたは更新をストレージの新しい位置に書き込むストレージデバイスのデータの前バージョンを維持する。論理−物理マッピングは、論理アドレスに対するデータの前バージョンが存在するかどうかを示す論理アドレスごとのバージョン情報を含む。複数のチェックポイントを有する実装に対して、バージョン情報は、データの前バージョンが確立されたチェックポイントを識別する。書き込みを受信すると、更新すべき論理アドレス用の論理および物理アドレスに関する情報が現チェックポイントのためにチェックポイント情報に書き込まれる。書き込みデータが現バージョンを有する物理アドレスとは異なるストレージデバイスの新しい位置に書き込まれ、そこで、データの前バージョンを有する物理アドレスに関する情報がチェックポイント情報に維持される。復元動作、デフラグメンテーション動作および異なる動作の間、データの前バージョンを有する論理アドレスの物理アドレスは、データを以前のバージョンに復元し、その物理アドレスが再利用され得るかどうかを決定するために使用され得、論理アドレスに対するデータの前バージョンに関する情報を提供するために使用され得る。
【００２２】
説明される実施形態について、ストレージデバイスコントローラのストレージデバイスおよび制御ロジックのチェックポインティングを実装することにより、復元手順をアプリケーションおよびオペレーティングシステムレベルにて通常動作するマルウェアを受けにくくする。さらに、暗号化技術は、ホストシステムからのチェックポインティング関連通信を認証するストレージデバイス制御ロジックによって使用され得、ストレージデバイスのチェックポイントデータを破損すべく、マルウェアがストレージデバイスチェックポインティングコマンドを発行するのを阻止する。管理アクセス制御はまた、ホストシステムからドライブまでのチェックポインティング関連の通信を認証するために使用され得る。
【００２３】
以下の詳細な説明には、本発明のより完全な理解を提供すべく、多数の具体的な詳細が記載されている。それらは例えば、ロジック実装、演算コード、オペランドを指定する手段、リソースパーティショニング／共有／重複の実装、システムコンポーネントのタイプおよび相互関係、およびロジックパーティショニング／統合の選択肢である。しかしながら、当業者ならば、そのような具体的な詳細なく本発明は実施され得ることを理解されよう。他の例において、制御構造、ゲートレベルの回路、および完全なソフトウェア命令シーケンスは、本発明を不明瞭にさせないように、詳細には示されていない。当業者がここに含まれる詳細な説明に接すれば、過度の実験をすることなく、適切な機能を実装可能だろう。
【００２４】
明細書における「１つの実施形態」、「一実施形態」、「例示的な実施形態」などへの言及は、説明される実施形態は特定の特徴、構造、または特性を含んでよいが、全ての実施形態が必ずしも、その特定の特徴、構造、または特性を含まなくてもよいことを示す。さらに、そのような表現は、必ずしも同一の実施形態を指すわけではない。特定の実施形態は、ストレージデバイスの電子アセンブリに関する。実施形態は、電子アセンブリを形成するためのデバイスおよび方法の両方を含む。
【００２５】
図１は、他の付属のコンピュータシステムおよびデバイスからストレージデバイス１０２に通信され得る、ユーザデータなどのデータを格納するホストシステム１００を有するストレージ環境の実施形態を示す。ホストシステム１００は、ストレージデバイス１０２のデータストレージを管理するストレージデバイスドライバ１０６を含むオペレーティングシステム１０４を含む。接続１０８は、ホスト１００からストレージデバイス１０２への接続を提供する。
【００２６】
ストレージデバイス１０２は、ストレージデバイス動作を実行し、ストレージデバイス１０２のストレージ媒体１１２のデータにアクセスするようにホスト１００からの要求に応答するコントローラ１１０を含む。コントローラ１１０は、ストレージデバイス１０２の動作を実行すべく、コードおよび処理要素を有する制御ロジック１１４を含む。制御ロジック１１４は、ホストシステム１００によって使用される論理アドレスをストレージ媒体１１２の物理アドレスにマッピングする論理−物理マッピング２００を含むメモリ１１６を有し得る。制御ロジック１１４はさらに、チェックポイントが作り出されて以後、論理アドレスのためのデータの前バージョンに関する情報を有するチェックポイント情報３００を維持し、それは更新中のデータが復元動作で使用されるため保存される時点を含む。１つの実施形態において、１つのチェックポイントだけがストレージデバイス１０２にて維持される場合、チェックポイント情報３００の１つの例だけが存在し得る。制御ロジック１１４が複数のチェックポイントを実装する場合、チェックポイント情報３００の例は、チェックポイント以後に変わったデータの前バージョンを有する物理アドレスを提供することをチェックポイントごとに維持される。
【００２７】
１つの実施形態において、論理アドレスに対する更新は、論理アドレスに対するデータの以前のバージョンを有する物理アドレスを上書きすることなく、ストレージ媒体１０２の新たに利用可能な物理アドレスに書き込まれる。このようにして、論理アドレス用のデータの以前のバージョンは、以前のバージョンが書き込まれた前の物理アドレスにて維持される。１つの実施形態において、ログ構造化アレイは、論理アドレスのための更新のために使用される新しい 物理アドレスを決定するために使用され得る。
【００２８】
制御ロジック１１４はさらに、チェックポイントコマンドを処理する前にホストシステム１００を認証するために使用されるセキュリティキー１１８を維持し得る。キー１１８は、ホスト認証メカニズムなどの任意のセキュリティ技術の一部であり得、例えば、ホスト１０２などからのメッセージを復号するために使用される共有キー、パスフレーズまたはクッキー、公開キーであり得る。１つの実施形態において、ホストシステム１００はトラステッド・プラットフォーム・モジュール（ＴＰＭ）モジュールを含み得、公開／秘密キーペアを生成し、公開キーをストレージデバイスに送信し、ホストを認証する秘密キーで暗号化されたホストシステム１００からの通信を復号するために使用する。
【００２９】
ストレージ媒体１１２は、１または複数のチェックポイントトークン１２０を格納し得、そこで、チェックポイントトークン１２０は、作り出されたチェックポイント、コントローラ１１０メモリに維持される論理−物理マッピング２００ａのコピー、チェックポイント情報３００ａのコピーを識別するために使用される。コントローラ１１２の論理−物理マッピング２００およびチェックポイント情報３００は、コピー２００ａ、３００ａとしてストレージ媒体１１２に周期的に格納され得る。
【００３０】
ストレージデバイス１０２は、ハードディスクドライブ、ソリッドステートドライブ（ＳＳＤ）、フラッシュドライブなどを含み得る。ＳＳＤの実装については、ストレージ媒体１１２は、フラッシュメモリセルのＮＡＮＤダイ、強誘電体ランダムアクセスメモリ（ＦｅＴＲＡＭ）、ナノワイヤベースの不揮発性メモリ、相変化メモリ（ＰＣＭ）などの３次元（３Ｄ）クロスポイントメモリ、メモリスタ技術を組み入れるメモリ、磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）、スピントランスファトルク（ＳＴＴ）ＭＲＡＭ、単一レベルセル（ＳＬＣ）フラッシュメモリ、エネルギー源支援（バッテリ／超キャパシタ）ＤＲＡＭ、他の電気的消去可能プログラム可能リードオンリメモリ（ＥＥＰＲＯＭ）タイプのデバイスを含み得る。ハードディスクドライブの実装に関して、ストレージ媒体１１２は、磁気ディスクドライブを含み得る。
【００３１】
ホスト１００は、バスインターフェースなどのインターフェース１０８を通じてストレージデバイス１０２と通信し得る。ホスト１００およびストレージデバイス１０２は、同じ筐体または別個の筐体に配置され得る。あるいは、ホストシステム１００は、ネットワークを通じてストレージデバイス１０２と通信し得る。
【００３２】
ホスト１００およびストレージデバイス１０２は、その間の通信を可能にする、シリアル・アドバンスト・テクノロジー・アタッチメント（ＳＡＴＡ）インターフェースなどの入出力（Ｉ／Ｏ）インターフェースを含み得、ホスト１００およびストレージデバイス１０２に結合するＳＡＴＡ対応バスを含む。他の実施形態において、例えば、シリアル・アタッチト・スモール・コンピュータ・システム・インターフェース（ＳＣＳＩ）（または、単にＳＡＳ）、ペリフェラル・コンポーネント・インターコネクト・エクスプレス（ＰＣＩｅ）などの他のタイプのＩ／Ｏインターフェースおよびバス相互接続が使用され得る。
【００３３】
図２は、１つの論理アドレス２０２用の論理−物理マッピング２００ｉの例の実施形態を示し、それは論理アドレス２０２用の現在／アクティブデータが格納されるブロックアドレスなどのストレージ媒体１１２の物理アドレス２０４と、最後のチェックポイント以後にデータが変わった場合のチェックポイントを識別するバージョン情報２０６とを識別する。ストレージデバイス１０２が１つのチェックポイントを有するに過ぎない場合、バージョン情報２０６は、データの前バージョンが存在するかどうかを示し得る。複数のチェックポイントがある場合、バージョン情報２０６は、チェックポイントの時刻におけるデータの前バージョンに対する時点またはチェックポイントを示す。例えば、マルチチェックポイント実装において、論理アドレス２０２のためのデータがチェックポイントｉおよびｊ間で変更された場合、当該論理アドレスのためのバージョン情報２０６はチェックポイントｉを示すだろう。チェックポイントｉ用のチェックポイント情報３００ｉのデータの以前のバージョンは、チェックポイントｉの時点現在の論理アドレス２０２のためのデータのバージョンを有するものだからである。
【００３４】
１つの実施形態において、チェックポイント情報３００は、現チェックポイント以後に変わったそれらの論理アドレスのためのマッピング情報２００ｉを含むに過ぎない場合がある。代替的な実施形態において、チェックポイント情報３００は、チェックポイント時において作られた全体の論理−物理マッピング２００のコピーを含み得る。この代替的な実施形態に対して、チェックポイント情報３００は既にチェックポイント時現在の全ての論理−物理マッピングを有するので、チェックポイント情報は、書き込み動作の間に保存される必要がない。
【００３５】
図３は、チェックポイントｉに対するチェックポイント情報３００ｉのエントリ３０２の実施形態を示し、チェックポイントｉ現在のデータの前バージョンを有する論理アドレス３０４および物理アドレス３０６を含む。チェックポイント時以後に更新された論理アドレスごとのエントリ３０２があるであろう。
【００３６】
チェックポイント情報３００ｉの複数の例があり得、１つはチェックポイント現在の論理アドレス３０２のための物理アドレスを有するチェックポイントの各々に対してである。すでに述べたように、論理アドレス３０２に対する更新がストレージ媒体１１２の新しい位置へ書き込まれるので、論理アドレスの異なるバージョンは、以前のバージョンのために使用される物理アドレス３０６にて維持される。
【００３７】
図４は、１つのチェックポイントだけが維持される実装においてホスト１００のドライバ１０６から受信されたチェックポイントコマンドを処理する制御ロジック１１４によって実行される動作の実施形態を示す。チェックポイントコマンドの（ブロック４００にて）受信時に、制御ロジック１１４は、新しいチェックポイントのためのチェックポイント情報３００を（ブロック４０２にて）除去し、チェックポイントに関する情報を提供するチェックポイントトークン１２０を（ブロック４０４にて）保存する。論理−物理マッピング２００の全ての論理アドレスのためのバージョン情報２０６は、チェックポイント時現データの以前のバージョンが存在しないことを示すべく（ブロック４０６にて）除去される。
【００３８】
図５は、複数のチェックポイントが維持され得る実装において、ホスト１００のドライバ１０６から受信されるチェックポイントコマンドを処理する制御ロジック１１４によって実行される動作の実施形態を示す。チェックポイントコマンドを（ブロック５００にて）受信時に、制御ロジック１１４は、新しいチェックポイント情報３００ｉの例を作り出す。新しいチェックポイントを識別するトークン１２０が（ブロック５０４にて）保存され、現チェックポイントの番号は、新しいチェックポイント番号のために（ブロック５０６にて）インクリメントされる。
【００３９】
図６は、複数のチェックポイントが存在する場合の実装においてチェックポインティングが確立された後に、書き込みデータを用いてターゲット論理アドレスに対する書き込み要求を処理する制御ロジック１１４によって実行される動作の実施形態を示す。ターゲット論理アドレスのための書き込み要求を（ブロック６００にて）受信時に、ターゲット論理アドレス２０２のための論理−物理マッピングエントリ２００ｉのバージョン情報２０６が現チェックポイント、または最後に作り出されたチェックポイントを示すかどうかについて決定が（ブロック６０２にて）行われる。そうでない場合、制御ロジック１１４は、マッピングエントリ２００ｉのバージョン情報２０６に識別されるチェックポイントのためのチェックポイント情報３００において、論理−物理マッピング２００ｉに示されるターゲット論理アドレスおよびその物理アドレスを（ブロック６０４にて）示す。このようにして、論理アドレスのための最後のエポック時またはチェックポイント現在の論理−物理マッピングは、バージョン情報２０６において識別されるチェックポイントのためのチェックポイント情報に保存される。ターゲット論理アドレスのための論理−物理マッピング２００ｉのバージョン情報２０６は、現チェックポイントバージョンを示すべく（ブロック６０６にて）更新される。単一のチェックポイントだけが実装される実装において、バージョン情報は単に、チェックポインティングが存在するかどうかを示す指標またはフラグであり得る。
【００４０】
（ブロック６０２のＹＥＳ分岐から）、バージョン情報２０６が、現チェックポイントを示す場合、そのことはチェックポイントの時刻現在のデータの前バージョンを有する物理アドレスがチェックポイント情報３００に既に格納されていることを示す現チェックポイントを示すか、またはブロック６０６から、制御ロジック１１４は、更新中の論理アドレスのための現データを有する物理アドレスとは異なるストレージデバイスの位置にあるターゲット物理アドレスに（ブロック６０８にて）書き込む。例えば、ログ構造化アレイは、データがどのように書き込まれるかを表すために使用される場合、更新は、ログの直近に使用された（ＭＲＵ）端によって表される物理アドレスに書き込まれ得る。ターゲット論理アドレスのための論理−物理マッピング２００ｉは、データが書き込まれる新しいターゲット物理アドレスを示すべく（ブロック６１０にて）更新される。
【００４１】
図６の動作に対して、論理アドレスのために以前のチェックポイントまたはエポックのためのデータの前バージョンを有する物理アドレスが、異なるチェックポイント時現在のデータの復元を可能にすべくそのチェックポイントのためのチェックポイント情報３００に示される。このようにして、現在のエポックを受け取る書き込みが新しい物理アドレスに格納されることとなり、より古いエポックからのデータを有する物理アドレスが、そのエポック／チェックポイント用のチェックポイント情報に格納されるだろう。
【００４２】
図７は、複数のチェックポイントが維持される場合に、復元要求情報を処理する制御ロジック１１４により実行される動作の実施形態を示す。ホストストレージデバイスドライバ１０６からの復元要求情報の（ブロック７００にて）受信時に、制御ロジック１１４は、チェックポイント情報３００ｉが維持される１または複数のチェックポイントを（ブロック７０２にて）決定し、チェックポイントに関する情報を（ブロック７０４にて）戻す。
【００４３】
図８は、制御ロジック１１４により実行される動作の実施形態を示し、図７の動作によるホストストレージデバイスドライバ１０６に戻される復元情報に示される複数のチェックポイントの選択チェックポイントｊの時点にデータを復元する要求を処理する。ホスト１００からのチェックポイントｊの１つの選択を（ブロック８００にて）受信時に、制御ロジック１１４は、アクティブ論理−物理マッピング２００の第１の論理アドレスｉから開始する。制御ロジック１１４は、論理アドレスｉのためのバージョン情報２０６に示される現バージョンのチェックポイントｋを（ブロック８０４にて）決定する。（ブロック８０６にて）論理アドレスｉの決定された現チェックポイントｋが復元すべき選択チェックポイントｊより大きい場合、論理アドレスｉのための現データは、復元すべき選択チェックポイントｊより後のチェックポイントまたは時間にある。
【００４４】
（ブロック８０６にて）復元すべき選択チェックポイントｊが論理アドレスｉのためのバージョン情報２０６の現チェックポイントｋよりも時間が前の場合、制御ロジック１１４は、論理アドレスｉのためのアクティブ論理−物理マッピング２００ｉの物理アドレスｐを（ブロック８０８にて）決定する。制御ロジック１１４は、物理アドレスｐがｊおよびｋ間のチェックポイントバージョンのためのチェックポイント情報３００に参照されたかを（ブロック８１０にて）決定する。物理アドレスｐがバージョンｊおよびｋ間の任意のチェックポイント情報３００に参照されない場合、その物理アドレスｐは、ガーベジコレクションのために（ブロック８１２にて）解放される。物理アドレスｐは、（ブロック８１０のＹＥＳ分岐からの）バージョンｊおよびｋ間の他のチェックポイント情報３００に参照されるか、または物理アドレスｐの（ブロック８１２からの）解放後に、アクティブ論理−物理マッピング２００ｉの物理アドレス２０４が、選択チェックポイントバージョンｊのためのチェックポイント情報３００ｊの物理アドレス３０６に対して（ブロック８１４にて）更新される。
【００４５】
（ブロック８１４にて）物理アドレス２０４の更新後、または選択バージョンｊが論理アドレスiの現バージョンｋと同じか、またはそれより大きい場合、（ブロック８１６にて）考慮すべき論理−物理マッピング２００により多くのアドレスが存在する場合、その上論理−物理マッピング２００の次の論理アドレスｉがアクセスされ、例えば、ｉがインクリメントされ、制御はブロック８０４に戻って進行し、その次の論理アドレスを処理する。そうでなければ、論理−物理マッピング２００にもはや処理すべき論理アドレスが存在しない場合、制御は終了する。
【００４６】
説明される実施形態に対して、データの前バージョンは、新しい書き込みまたは更新が新しい位置に書き込まれるので、ストレージ媒体１１２の物理アドレスにとどまり、チェックポイント情報３００は異なるチェックポイントのためのデータの前バージョンの物理アドレスを維持し、それにより前バージョンが異なるチェックポイントのためにチェックポイント情報３００において識別される物理アドレスからアクセスされ得る。
【００４７】
ホストストレージデバイスドライバ１０６は、チェックポイント現在のデータを読み取るように要求すべく、異なるチェックポイントの受信バージョン情報を使用し得る。読み取り要求に応答して、制御ロジック１１４は、アクティブ論理−物理マッピング２００の要求論理アドレスのためのエントリにおけるバージョン情報２０６の現チェックポイントを決定するであろう。要求チェックポイントが現チェックポイントよりも前である場合、制御ロジック１１４は、要求チェックポイントのためのチェックポイント情報３００にアクセスし、要求チェックポイント現在の要求論理アドレス３０４のための物理アドレス３０６を決定し、要求チェックポイントのためのチェックポイント情報３００に示されるその物理アドレスからのデータを読み取り戻すであろう。要求チェックポイントが、論理アドレスのためのバージョン情報３００に示される現チェックポイントよりも前ではない場合、制御ロジック１１４は、要求論理アドレスのためのアクティブ論理−物理マッピング２００に示される物理アドレスにデータを戻す。
【００４８】
図９は、単一のチェックポイントだけが維持される場合のチェックポイントにストレージ媒体１１２の論理アドレスに対するデータを復元する制御ロジック１１４によって実行される動作の実施形態を示す。ホストストレージデバイスドライバ１０６からの復元要求の受信（ブロック９００にて）時に、制御ロジック１１４は、復元が適用されるストレージ媒体１１２の論理アドレスの各々に対してブロック９０２からブロック９０８での動作ループを実行する。論理アドレスｉについては、（ブロック９０４にて）論理アドレスｉのためのバージョン情報２０６がチェックポイントのために格納されるデータの前バージョンが存在することを示す場合、制御ロジック１１４は、論理−物理マッピング２００の論理アドレスｉのための物理アドレス２０４を論理アドレスｉのためのチェックポイント情報３００に示される物理アドレス３０６に（ブロック９０６にて）設定する。そうでなければ、（ブロック９０４のＮＯ分岐から）バージョン情報２０６は、データの前バージョンが存在しないことを示す場合か、またはブロック９０６にて物理アドレスの設定後に、制御はブロック９０８に進行し、全ての論理アドレスが考慮されるまでストレージ媒体１１２のために使用される次の論理アドレスを考慮する。
【００４９】
図１０は、ホストストレージデバイスドライバ１０６からのデフラグメンテーションコマンドを処理する制御ロジック１１４によって実行される、またはホスト１００から独立したデフラグメンテーション動作を自動的に実行するときの動作の実施形態を示す。デフラグメンテーション動作の（ブロック１００２にて）開始時に、制御ロジック１１４は、デフラグメンテーションを受ける、すなわちユーザデータを保持するストレージ媒体１１２の物理アドレスの各々に対してブロック１００２から１０１２の動作ループを実行する。物理アドレスｉについては、制御ロジック１１４は、物理アドレスｚと関連する論理アドレスを（ブロック１００４にて）決定し、そのことはストレージ媒体１１２のための物理アドレスｉを有するページデータ、ジャーナルまたは他のメタデータから決定され得る。制御ロジック１１４は、論理−物理マッピング２００または任意のチェックポイント情報３００が決定された論理アドレスを物理アドレスｉにマッピングするかどうかを（ブロック１００６にて）判断する。そうであれば、その物理アドレスは、論理−物理マッピング２００にて現データ、またはチェックポイント情報３００に維持されるデータの前バージョンを有する位置をアドレス指定し、ガーベジコレクションまたは再利用を受けるべきではない。（ブロック１００６にて）物理アドレスｉは、論理−物理マッピング２００または任意のチェックポイント情報３００に識別されない場合、その物理アドレスｉはガーベジコレクション／再利用に利用可能と示される。そうでなければ、（ブロック１００６にて）物理アドレスｉは、論理−物理マッピング２００またはチェックポイント情報３００に識別される場合、その物理アドレスｉは保持され、ガーベジコレクション／再利用を受けない。ブロック１００８または１０１０から、制御はガーベジコレクションを受け得る任意のさらなる物理アドレスを考慮すべく（ブロック１０１２にて）ブロック１００２に戻って進行し、そこでガーベジコレクションは物理アドレスがさらなる書き込みを利用可能にすることができる。
【００５０】
図１０についての説明される実施形態は、維持するように意図されるデータの消去を回避すべく、ストレージ媒体１１２の当該物理アドレスをガーベジコレクションに受けさせる前に、物理アドレスが現データまたはチェックポイントのために保存されているデータの任意の前バージョンを有するかどうかを決定する。
【００５１】
図１１は、１または複数のチェックポイントのためのデータの前バージョンに関する情報にアクセスすべくホストストレージデバイスドライバ１０６からの差分要求を処理する制御ロジック１１４によって実行される動作の実施形態を示す。差分要求の受信（ブロック１１００にて）時に、制御ロジック１１４は、論理−物理マッピング２００の論理アドレスｉごとにブロック１１０２からブロック１１０８の動作ループを実行する。（ブロック１１０４にて）論理アドレスｉのためのバージョン情報２０６が、１または複数のチェックポイントのために保存されているデータの前バージョンが存在することを（ブロック１１０４にて）示す場合、制御ロジック１１４は、チェックポイント情報３００に識別される論理アドレスｉのためのデータの１または複数の前バージョンに関する情報を応答に（ブロック１１０６にて）含む。応答に含まれる情報は、データの前バージョンが論理アドレスに提供されるチェックポイントを示し得、データの前バージョンを任意に含み得る。ブロック１１０４のＮＯ分岐から、またはブロック１１０６から、制御は、ストレージ媒体１１２のための次の論理アドレスのためにブロック１１０２に戻って（ブロック１１０８にて）進行する。全ての論理アドレスのための応答にて情報を収集した後、応答情報は処理すべく（ブロック１１１０にて）ホスト１００に戻され、ユーザに提示される。
【００５２】
差分要求がデフラグメンテーション動作の一部として使用され得、ストレージ媒体１１２の論理アドレスのためのデータの異なるバージョンに関する情報を取得し得る。
【００５３】
図１２は、パワーオンまたは初期化ルーチンの一部としてなどのストレージデバイス１０２を初期化する制御ロジック１１４によって実行される動作の実施形態を示す。初期化の一部として（ブロック１２００にて）、制御ロジック１１４は、ストレージ媒体１１２の論理−物理マッピング２００ａをメモリ１１６へとロードすることにより論理−物理マッピング２００を（ブロック１２０２にて）初期化する。（ブロック１２０４にて）チェックポイントトークン１２０が存在する場合、制御ロジックは、チェックポイントトークンから直近のチェックポイントを（ブロック１２０６にて）決定し、直近のチェックポイントがさらなるチェックポイント動作に利用可能となるようにチェックポイント情報３００を（ブロック１２０８にて）初期化する。複数のチェックポイントのためのチェックポイント情報３００の複数の例が存在する場合、そのような複数の例は初期化中にメモリ１１６へとロードされ得るか、または復元動作が必要とされる場合に後にロードされ得る。
【００５４】
ストレージ媒体１１２のスペースが臨界レベルに到達した場合、制御ロジック１１４は、１または複数のチェックポイントのためのチェックポイント情報の削除などのスペース管理動作を実行し得、それによりチェックポイント情報に識別される物理アドレスは再利用され得るか、またはチェックポイント情報の論理アドレスのためのデータの前バージョンの物理アドレスをもはや示さないことでデータの前バージョンの保存を中止することによってスペース管理動作を実行し得る。あるいは、ストレージデバイス１０２は、例えば、チェックポイント情報の削除、さらなるチェックポイント動作の中止などの進め方の選択を要求するホストストレージデバイスドライバ１０６にメッセージを送信し得る。
【００５５】
同様に、本発明の実施形態の上記の説明において、様々な発明の態様の１または複数の理解を助ける本開示を簡素化する目的で、様々な特徴は、場合によっては単一の実施形態、図、またはそれらの説明に一緒にグループ化されることが理解されるべきである。しかしながら、この開示方法は、特許請求された主題が、各請求項に明示的に記載されたものより、多くの特徴を必要とするという意図を反映するものと解釈されるべきではない。そうではなく、以下の特許請求の範囲が反映するように、発明の態様は、上記で開示されている単一の実施形態の全ての特徴より少ないところにある。したがって、詳細な説明に続く特許請求の範囲は、ここでこの詳細な説明に明示的に組み込まれる。
【００５６】
ストレージデバイスドライバ１０６および制御ロジック１１４の説明される動作は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを作り出すための標準的なプログラミングおよび／またはエンジニアリング技術を用いる方法、装置、コンピュータ可読記憶媒体として実装され得る。説明される動作は、「コンピュータ可読記憶媒体」に維持されるコードまたはロジックとして実装され得る。コンピュータ可読記憶媒体は機能を直接的に実行するか、またはコンピュータ可読記憶媒体からのコードをプロセッサが読み取り実行し得る。コンピュータ可読記憶媒体は、電子回路部、記憶材料、無機材料、有機材料、生物材料、ケーシング、筐体、被覆物、およびハードウェアのうちの少なくとも１つを含む。コンピュータ可読記憶媒体は、限定はされないが、磁気ストレージ媒体（例えば、ハードディスクドライブ、フロッピー（登録商標）ディスク、テープなど）、光ストレージデバイス（ＣＤ−ＲＯＭ、ＤＶＤ、光ディスクなど）、揮発性及び不揮発性メモリデバイス（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、フラッシュメモリ、ファームウェア、プログラマブルロジックなど）、ソリッドステートデバイス（ＳＳＤ）などを備え得る。コンピュータ可読記憶媒体は、ハードウェアデバイス（例えば、集積回路チップ、プログラマブルロジックデバイス、プログラマブルゲートアレイ（ＰＧＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）など）に実装されるデジタルロジックをさらに備え得る。さらに、説明される動作を実装するコードは、「送信信号」中にも実装され得、このような送信信号は空間を介して、または例えば、光ファイバ、銅電線などの、送信媒体を通じて伝搬し得る。コードまたはロジックが符号化された送信信号は、無線信号、衛星送信、電波、赤外線信号、ブルートゥース（登録商標）などをさらに含み得る。コンピュータ可読記憶媒体に埋め込まれたプログラムコードは、送信局またはコンピュータから受信局またはコンピュータに送信信号として送信され得る。コンピュータ可読記憶媒体は送信信号のみからなるものではなく、有形成分を含む。当業者ならば、本発明の範囲から逸脱することなく本構成に対して多数の変更が行われ得て、製造物品は、当技術分野において既知の好適な情報担持媒体を備え得ることを認識するだろう。
【００５７】
図１３は、コンポーネントが実装され得るシステム１３００の実施形態を示す。システム１３００は、ホストシステム１００などにおいて、揮発性メモリデバイス１３０８および不揮発性ストレージデバイス１３１０を用いてバス１３０６を通じて通信するプロセッサ１３０４を含み、揮発性メモリデバイス１３０８で、実行中のオペレーティングシステム１０４およびストレージデバイスドライバ１０６を含むプログラム、オペランドおよびパラメータがキャッシュされ、ストレージデバイス１０２などの不揮発性ストレージデバイス１３１０で、データおよびプログラムが格納され得る。プロセッサ１５０４はまた、入力デバイス、ディスプレイデバイス、グラフィクスカード、ポート、ネットワークインターフェースなどを含み得る入出力（Ｉ／Ｏ）デバイス１３１２ａ、１３１２ｂと通信し得る。不揮発性記憶デバイス１３１０は、ストレージドライブベイなどのシステム筐体１３００に搭載され得、ポートインターフェースを介して、またはネットワークを通じてシステム１３００に接続され得る。  ［例] 
【００５８】
以下の例は、さらなる実施形態に関連する。
【００５９】
例１は、実行される場合、ストレージデバイスに対して動作を実行させるコンピュータプログラム命令を有するコンピュータ可読記憶媒体であって、動作は、
ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、論理−物理マッピングに提供される物理アドレスとは異なるストレージデバイスの物理アドレスにて、論理アドレスのためのデータの前バージョンが存在するかどうかを示す論理アドレスおよびバージョン情報のための現データを有するストレージデバイスにおける物理アドレスを提供することと、
ターゲット論理アドレスに向けられる書き込みを受信することと、
ターゲット論理アドレスのためのデータの前バージョンが存在しないことを示す論理−物理マッピングに応答して、
・ターゲット物理アドレスと、チェックポイント情報の論理−物理マッピングに示される物理アドレスとに関する情報を含め、
・データの前バージョンが存在することを示すターゲット論理アドレスのためのバージョン情報を更新し、
・ターゲット論理アドレスのための現データを有する物理アドレスとは異なるストレージデバイスの位置のターゲット物理アドレスに書き込みのためのデータを書き込み、
・ターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新すること
を実行すること
とを備える。
【００６０】
例２において、例１および例３−１２の主題は任意に、動作はさらに、
ターゲット論理アドレスのためのデータの前バージョンが存在することを示す論理−物理マッピングに応答して、
・書き込みのためのデータをストレージデバイスのターゲット物理アドレスに書き込むことと、
・チェックポイント情報を更新しないでターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新すること
を実行することを備えること
を含むことができる。
【００６１】
例３において、例１−２および例４−１２の主題は任意に、コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はさらに、
ホストシステムからのチェックポイントコマンドを処理することに応答して、
・チェックポイント情報を消去し、
・論理アドレスのためのデータの前バージョンがないことを示す論理−物理マッピングの論理アドレスの各々のためにバージョン情報を設定すること
を実行することを備えること
を含むことができる。
【００６２】
例４において、例１−３および例５−１２の主題は任意に、コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はチェックポイントコマンドに応答してさらに、
・チェックポイントコマンドによって確立されるチェックポイントのためのセキュリティキーを維持することを含み、
ストレージデバイスはチェックポイントに関連する受信コマンドを認証すべくキーを使用することを含むことができる。
【００６３】
例５において、例１−４および例６−１２の主題は任意に、コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はさらに、ホストシステムからの復元要求を処理することに応答して、論理−物理マッピングの論理アドレスごとに、
データの前バージョンが存在することを示す論理アドレスのためのバージョン情報に応答して、
・論理アドレスのためのチェックポイント情報に示される物理アドレスに対する論理−物理マッピングの論理アドレスのために物理アドレスを設定し、
・データの前バージョンが存在しないことを示すバージョン情報を設定すること
を実行させることを
実行すること
を備えることを含むことができる。 
【００６４】
例６において、例１−５および例７−１２の主題は任意に、コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はさらに、
ホストシステムからの差分要求を処理することに応答して、そのバージョン情報が論理アドレスのためのデータが最後のチェックポイント以後に変わったことを示す各論理アドレスに関する情報を戻すこと
を備えることを含むことができる。 
【００６５】
例7において、例１−６および例８−１２の主題は任意に、
ストレージデバイスへのチェックポイントを示すトークンを保存することと、
論理−物理マッピングおよびチェックポイント情報をストレージデバイスに保存することと、
ストレージデバイスの初期化の間に、チェックポイントが存在することを決定すべくトークンを処理することと、
トークンを処理することに応答して、初期化に続いて使用する論理−物理マッピングと、チェックポイント情報とを初期化することと
を含むことができる。
【００６６】
例８において、例１−７および例９−１２の主題は任意に、デフラグメンテーション動作を開始することに応答して、デフラグメンテーションのための候補である論理−物理マッピングの物理アドレスのために、論理−物理マッピングおよびチェックポイント情報のマッピングに含まれない選択物理アドレスを再利用すること
を含むことができる。
【００６７】
例９において、例１−８および例１０−１２の主題は任意に、書き込みは、複数のチェックポイントの現チェックポイントの間に受信され、動作はさらに、
現チェックポイントを示さないターゲット論理アドレスのためのバージョン情報に応答して、ターゲット論理アドレスと、ターゲット論理アドレスのためのバージョン情報に示されるチェックポイントのためのチェックポイント情報の論理−物理マッピングに示される物理アドレスとの情報を含むことを備え、バージョン情報を更新することは、ターゲット論理アドレスのためのバージョン情報の現チェックポイントを示すことを有することを含むことができる。 
【００６８】
例１０において、例１−９および例１１−１２の主題は任意に、コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、ストレージデバイスのデータにアクセスし、動作はさらに、
チェックポイント情報が維持される複数のチェックポイントの１つを有する選択チェックポイントの現データを復元する復元コマンドを受信することと、
論理−物理マッピングの論理アドレスｉごとに
論理アドレスｉのためのバージョン情報が選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
物理アドレスが選択チェックポイントと現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、論理アドレスｉのための論理−物理マッピングに示される物理アドレスを解放し、
論理アドレスｉのための論理−物理マッピングの物理アドレスを論理アドレスｉのための選択チェックポイントのためのチェックポイント情報に示される物理アドレスに更新することと
を実行することを
実行すること
を備えることを含むことができる。 
【００６９】
例１１において、例１−１０および例１２の主題は任意に、動作はさらに、
現チェックポイントより前の要求チェックポイントでのターゲット論理アドレスのための現チェックポイントの間にデータを読み取る要求を受信することと、
要求チェックポイントのためのチェックポイント情報がターゲット論理アドレスのための物理アドレスを提供する場合、要求チェックポイントのためのチェックポイント情報のターゲット論理アドレスのために提供される物理アドレスからのデータを戻すことと、
要求チェックポイントのためのチェックポイント情報がターゲット論理アドレスのための物理アドレスを提供しない場合、物理アドレスマッピングからのデータを論理−物理マッピングのターゲット論理アドレスに戻すことと
を備えることを含むことができる。 
【００７０】
例１２において、例１−１１の主題は任意に、コンピュータ可読記憶媒体は、ストレージデバイスへのアクセスを管理するコントローラを含むことを有することができる。
【００７１】
例１３は、実行される場合、ストレージデバイスに対して動作を実行させる制御ロジックを有するコントローラを含むストレージデバイスであって、
動作は、
ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、論理−物理マッピングに提供される物理アドレスとは異なるストレージデバイスの物理アドレスにて、論理アドレスのためのデータの前バージョンが存在するかどうかを示す論理アドレスおよびバージョン情報のための現データを有するストレージデバイスにおける物理アドレスを提供することと、
ターゲット論理アドレスに向けられる書き込みを受信することと、
ターゲット論理アドレスのためのデータの前バージョンが存在しないことを示す論理−物理マッピングに応答して、
・ターゲット物理アドレスと、チェックポイント情報の論理−物理マッピングに示される物理アドレスとに関する情報を含め、
・データの前バージョンが存在することを示すターゲット論理アドレスのためのバージョン情報を更新し、
・ターゲット論理アドレスのための現データを有する物理アドレスとは異なるストレージデバイスの位置のターゲット物理アドレスに書き込みのためのデータを書き込み、および
ターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新すること
を実行することと
を含む。
【００７２】
例１４において、例１３および例１５−１８の主題は任意に、動作はさらに、
ターゲット論理アドレスのためのデータの前バージョンが存在することを示す論理−物理マッピングに応答して、
・ストレージデバイスのターゲット物理アドレスへの書き込みのためのデータを書き込み、
・チェックポイント情報を更新しないでターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新すること
を実行させることを備えること
を含むことができる。
【００７３】
例１５において、例１３−１４および例１６−１８の主題は任意に、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はさらに、
ホストシステムからのチェックポイントコマンドを処理することに応答して、
・チェックポイント情報を消去し、
・論理アドレスのためのデータの前バージョンがないことを示す論理−物理マッピングの論理アドレスの各々のためにバージョン情報を設定すること
を実行させることを備えること
を含むことができる。
【００７４】
例１６において、例１３−１５、１７、１８の主題は任意に、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はさらに、
ホストシステムからの復元要求を処理することに応答して、論理−物理マッピングの論理アドレスごとに、
データの前バージョンが存在することを示す論理アドレスのためのバージョン情報に応答して、
・論理アドレスのためのチェックポイント情報に示される物理アドレスに対する論理−物理マッピングの論理アドレスのために物理アドレスを設定し、
・データの前バージョンが存在しないことを示すバージョン情報を設定すること
を実行させることを
実行することを備えること
を含むことができる。
【００７５】
例１７において、例１３−１６および１８の主題は任意に、書き込みが、複数のチェックポイントの現チェックポイントの間に受信され、動作はさらに、
現チェックポイントを示さないターゲット論理アドレスのためのバージョン情報に応答して、ターゲット論理アドレスと、ターゲット論理アドレスのためのバージョン情報に示されるチェックポイントのためのチェックポイント情報の論理−物理マッピングに示される物理アドレスとに関する情報を含めることを備え、バージョン情報を更新することは、ターゲット論理アドレスのためのバージョン情報の現チェックポイントを示すことを有する、ことを備える
ことを含むことができる。
【００７６】
例１８において、例１３−１７の主題は任意に、ホストシステムは、ストレージデバイスのデータにアクセスし、動作はさらに、
チェックポイント情報が維持される複数のチェックポイントの１つを有する選択チェックポイントの現データを復元する復元コマンドを受信することと、
論理−物理マッピングの論理アドレスｉごとに
論理アドレスｉのためのバージョン情報が選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
物理アドレスが選択チェックポイントと現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、論理アドレスｉのための論理−物理マッピングに示される物理アドレスを解放することを実行することと、
論理アドレスｉのための論理−物理マッピングの物理アドレスを論理アドレスｉのための選択チェックポイントのためのチェックポイント情報に示される物理アドレスに更新することと
実行することと
を備えることを含むことができる。
【００７７】
例１９は、ストレージデバイスへのアクセスを管理するための方法であって、
ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、論理−物理マッピングに提供される物理アドレスとは異なるストレージデバイスの物理アドレスにて、論理アドレスのためのデータの前バージョンが存在するかどうかを示す論理アドレスおよびバージョン情報のための現データを有するストレージデバイスにおける物理アドレスを提供する工程と、
ターゲット論理アドレスに向けられる書き込みを受信する工程と、
ターゲット論理アドレスのためのデータの前バージョンが存在しないことを示す論理−物理マッピングに応答して、
・ターゲット物理アドレスと、チェックポイント情報の論理−物理マッピングに示される物理アドレスとに関する情報を含め、
データの前バージョンが存在することを示すターゲット論理アドレスのためのバージョン情報を更新し、
ターゲット論理アドレスのための現データを有する物理アドレスとは異なるストレージデバイスの位置のターゲット物理アドレスに書き込みのためのデータを書き込み、
ターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新すること
を実行させる工程と
を含む。
【００７８】
例２０において、例１９および２１−２４の主題は任意に、ターゲット論理アドレスのためのデータの前バージョンが存在することを示す論理−物理マッピングに応答して、
書き込みのためのデータをストレージデバイスのターゲット物理アドレスに書き込み、
チェックポイント情報を更新しないでターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新すること
を実行させる工程を含むことができる。
【００７９】
例２１において、例１９、２０および２２−２４の主題は任意に、ホストシステムからのチェックポイントコマンドを処理することに応答して、
チェックポイント情報を消去し、
論理アドレスのためのデータの前バージョンがないことを示す論理−物理マッピングの論理アドレスの各々のためにバージョン情報を設定すること
を実行させる工程を含むことができる。 
【００８０】
例２２において、例１９−２１および２３−２４の主題は任意に、ホストシステムからの復元要求を処理することに応答して、論理−物理マッピングの論理アドレスごとに、
データの前バージョンが存在することを示す論理アドレスのためのバージョン情報に応答して、
論理アドレスのためのチェックポイント情報に示される物理アドレスに対する論理−物理マッピングの論理アドレスのために物理アドレスを設定し、
データの前バージョンが存在しないことを示すバージョン情報を設定すること
を実行させることを
実行する工程を含むことができる。
【００８１】
例２３において、例１９−２２および２４の主題は任意に、書き込みは、複数のチェックポイントの現チェックポイントの間に受信され、
現チェックポイントを示さないターゲット論理アドレスのためのバージョン情報に応答して、ターゲット論理アドレス情報と、ターゲット論理アドレスのためのバージョン情報に示されるチェックポイントのためのチェックポイント情報の論理−物理マッピングに示される物理アドレスに関する情報を含める工程をさらに含み、バージョン情報を更新する工程は、ターゲット論理アドレスのためのバージョン情報の現チェックポイントを示すことを有することを含むことができる。
【００８２】
例２４において、例１９−２３の主題は任意に、チェックポイント情報が維持される複数のチェックポイントの１つを有する選択チェックポイントの現データを復元する復元コマンドを受信する工程と、
論理−物理マッピングの論理アドレスｉごとに
論理アドレスｉのためのバージョン情報が選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
・物理アドレスが選択チェックポイントと現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、論理アドレスｉのための論理−物理マッピングに示される物理アドレスを解放し、
論理アドレスｉのための論理−物理マッピングの物理アドレスを論理アドレスｉのための選択チェックポイントのためのチェックポイント情報に示される物理アドレスに更新すること
を実行させる工程
を実行することと
を含むことができる。
【００８３】
例２５において、例の主題は、以下の少なくとも１つの追加工程を任意に含むことができる。
【００８４】
（１）ターゲット論理アドレスのためのデータの前バージョンが存在することを示す論理−物理マッピングに応答して、
書き込みのためのデータをストレージデバイスのターゲット物理アドレスに書き込むこと、および
チェックポイント情報を更新しないでターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新すること
を実行させること；および／または
【００８５】
（２）コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はさらに、
ホストシステムからのチェックポイントコマンドを処理することに応答して、
チェックポイント情報を消去すること、および
論理アドレスのためのデータの前バージョンがないことを示す論理−物理マッピングの論理アドレスの各々のためにバージョン情報を設定すること
を実行させることを含むことができる；および／または
【００８６】
（３）コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はチェックポイントコマンドに応答してさらに、
チェックポイントコマンドによって確立されるチェックポイントのためのセキュリティキーを維持することを含み、ストレージデバイスはチェックポイントに関連する受信コマンドを認証すべくキーを使用する；および／または
【００８７】
（４）コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はさらに、
ホストシステムからの復元要求を処理することに応答して、論理−物理マッピングの論理アドレスごとに、
データの前バージョンが存在することを示す論理アドレスのためのバージョン情報に応答して、
論理アドレスのためのチェックポイント情報に示される物理アドレスに対する論理−物理マッピングの論理アドレスのために物理アドレスを設定すること、および
データの前バージョンが存在しないことを示すバージョン情報を設定すること
を実行させることを
実行することを含む；および／または
【００８８】
（５）コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はさらに、
ホストシステムからの差分要求を処理することに応答して、そのバージョン情報が論理アドレスのためのデータが最後のチェックポイント以後に変わったことを示す各論理アドレスに関する情報を戻すこと
をさらに含む；および／または
【００８９】
（６）動作はさらに、ストレージデバイスへのチェックポイントを示すトークンを保存することと、
論理−物理マッピングおよびチェックポイント情報をストレージデバイスに保存することと、
ストレージデバイスの初期化の間に、チェックポイントが存在することを決定すべくトークンを処理することと、
トークンを処理することに応答して、初期化に続いて使用する論理−物理マッピングと、チェックポイント情報とを初期化することとを含む；および／または
【００９０】
（７）デフラグメンテーション動作を開始することに応答して、デフラグメンテーションのための候補である論理−物理マッピングの物理アドレスのために、論理−物理マッピングおよびチェックポイント情報のマッピングに含まれない選択物理アドレスを再利用することを含む；および／または
【００９１】
（８）書き込みは、複数のチェックポイントの現チェックポイントの間に受信され、動作はさらに、
現チェックポイントを示さないターゲット論理アドレスのためのバージョン情報に応答して、ターゲット論理アドレスと、ターゲット論理アドレスのためのバージョン情報に示されるチェックポイントのためのチェックポイント情報の論理−物理マッピングに示される物理アドレスとに関する情報を含むことを備え、バージョン情報を更新することは、ターゲット論理アドレスのためのバージョン情報の現チェックポイントを示すことを有する；および／または
【００９２】
（９）コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、ストレージデバイスのデータにアクセスし、動作はさらに、
チェックポイント情報が維持される複数のチェックポイントの１つを有する選択チェックポイントの現データを復元する復元コマンドを受信することと、
論理−物理マッピングの論理アドレスｉごとに
論理アドレスｉのためのバージョン情報が選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
物理アドレスが選択チェックポイントと現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、論理アドレスｉのための論理−物理マッピングに示される物理アドレスを解放すること、および
論理アドレスｉのための論理−物理マッピングの物理アドレスを論理アドレスｉのための選択チェックポイントのためのチェックポイント情報に示される物理アドレスに更新すること
を実行させること
を実行することとを含む；および／または
【００９３】
（１０）動作はさらに、
現チェックポイントよりも前の要求チェックポイントでのターゲット論理アドレスのための現チェックポイントの間にデータを読み取る要求を受信することと、
要求チェックポイントのためのチェックポイント情報がターゲット論理アドレスのための物理アドレスを提供する場合、要求チェックポイントのためのチェックポイント情報のターゲット論理アドレスのために提供される物理アドレスからのデータを戻すことと、
要求チェックポイントのためのチェックポイント情報がターゲット論理アドレスのための物理アドレスを提供しない場合、物理アドレスマッピングからのデータを論理−物理マッピングのターゲット論理アドレスに戻すことと
を含むことを有する；および／または
【００９４】
（１１）コンピュータ可読記憶媒体は、ストレージデバイスへのアクセスを管理するコントローラを含む。
【００９５】
例２６は、実行される場合、例１９−２４のいずれか１つの方法を機械に実行させるコードを含む機械可読媒体である。
【００９６】
例２７は、ホストと、ホストと通信するストレージデバイスとを含むシステムであり、
実行される場合、ストレージデバイスに対して動作を実行させるコンピュータプログラム命令を有するコンピュータ可読記憶媒体であって、動作は、
ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、論理−物理マッピングに提供される物理アドレスとは異なるストレージデバイスの物理アドレスにて、論理アドレスのためのデータの前バージョンが存在するかどうかを示す論理アドレスおよびバージョン情報のための現データを有するストレージデバイスにおける物理アドレスを提供することと、
ターゲット論理アドレスに向けられるホストからの書き込みを受信することと、
ターゲット論理アドレスのためのデータの前バージョンが存在しないことを示す論理−物理マッピングに応答して、
ターゲット物理アドレスと、チェックポイント情報の論理−物理マッピングに示される物理アドレスとに関する情報を含むこと、
データの前バージョンが存在することを示すターゲット論理アドレスのためのバージョン情報を更新すること、
ターゲット論理アドレスのための現データを有する物理アドレスとは異なるストレージデバイスの位置のターゲット物理アドレスに書き込みのためのデータを書き込むこと、および
ターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新すること
を実行させること
とを含む。
【００９７】
例２８において、例２７の主題は任意に、動作はさらに、
チェックポイント情報が維持される複数のチェックポイントの１つを有する選択チェックポイントの現データを復元する復元コマンドを受信することと、
論理−物理マッピングの論理アドレスｉごとに
論理アドレスｉのためのバージョン情報が選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
物理アドレスが選択チェックポイントと現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、論理アドレスｉのための論理−物理マッピングに示される物理アドレスを解放すること、および
論理アドレスｉのための論理−物理マッピングの物理アドレスを論理アドレスｉのための選択チェックポイントのためのチェックポイント情報に示される物理アドレスに更新すること
を実行させること
を実行することを含むことを有することができる。
【００９８】
例２９は装置であり、ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、論理−物理マッピングに提供される物理アドレスとは異なるストレージデバイスの物理アドレスにて、論理アドレスのためのデータの前バージョンが存在するかどうかを示す論理アドレスおよびバージョン情報のための現データを有するストレージデバイスにおける物理アドレスを提供する手段と、
ターゲット論理アドレスに向けられるホストからの書き込みを受信する手段と、
ターゲット論理アドレスのためのデータの前バージョンが存在しないことを示す論理−物理マッピングに応答して、ターゲット物理アドレスと、チェックポイント情報の論理−物理マッピングに示される物理アドレスとに関する情報を含む手段と、
ターゲット論理アドレスのためのデータの前バージョンが存在しないことを示す論理−物理マッピングに応答して、データの前バージョンが存在することを示すターゲット論理アドレスのためのバージョン情報を更新する手段と、
ターゲット論理アドレスのための現データを有する物理アドレスとは異なるストレージデバイスの位置のターゲット物理アドレスに書き込みのためのデータを書き込む手段と、
ターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新する手段と
を備える。
【００９９】
例３０において、 例２９の主題は任意に、チェックポイント情報が維持される複数のチェックポイントの１つを有する選択チェックポイントの現データを復元する復元コマンドを受信する手段と、
論理−物理マッピングの論理アドレスｉごとに
論理アドレスｉのためのバージョン情報が選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
物理アドレスが選択チェックポイントと現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、論理アドレスｉのための論理−物理マッピングに示される物理アドレスを解放すること、および
論理アドレスｉのための論理−物理マッピングの物理アドレスを論理アドレスｉのための選択チェックポイントのためのチェックポイント情報に示される物理アドレスに更新すること
を実行させる手段
を実行する手段と
を含むことができる。
【図１】
2018511853.tif 000003
【図２】
2018511853.tif 000004
【図３】
2018511853.tif 000005
【図４】
2018511853.tif 000006
【図５】
2018511853.tif 000007
【図６】
2018511853.tif 000008
【図７】
2018511853.tif 000009
【図８】
2018511853.tif 000010
【図９】
2018511853.tif 000011
【図１０】
2018511853.tif 000012
【図１１】
2018511853.tif 000013
【図１２】
2018511853.tif 000014
【図１３】
2018511853.tif 000015
【手続補正書】
【提出日】平成29年10月13日(2017.10.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラムであって、コンピュータに
ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、前記論理−物理マッピングに提供される物理アドレスとは異なる前記ストレージデバイスの物理アドレスにて、前記論理アドレスのためのデータの前バージョンが存在するかどうかを示す前記論理アドレスおよびバージョン情報のための現データを有する前記ストレージデバイスにおける前記物理アドレスを提供する手順と、
ターゲット論理アドレスに向けられる書き込みを受信する手順と、
前記ターゲット論理アドレスのための前記データの前バージョンが存在しないことを示す前記論理−物理マッピングに応答して、
・ターゲット物理アドレスと、チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含め、
・データの前バージョンが存在することを示す前記ターゲット論理アドレスのための前記バージョン情報を更新し、
・前記ターゲット論理アドレスのための前記現データを有する前記物理アドレスとは異なる前記ストレージデバイスの位置のターゲット物理アドレスに前記書き込みのためのデータを書き込み、
・前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新する
手順と
を実行させるプログラム。
【請求項２】
前記ターゲット論理アドレスのための前記データの前バージョンが存在することを示す前記論理−物理マッピングに応答して、
・前記書き込みのためのデータを前記ストレージデバイスのターゲット物理アドレスに書き込み、
・前記チェックポイント情報を更新しないで前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新すること
を実行する手順
を前記コンピュータにさらに実行させる、請求項１に記載のプログラム。
【請求項３】
ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記プログラムはさらに、
前記ホストシステムからのチェックポイントコマンドを処理することに応答して、
・前記チェックポイント情報を消去し、
・前記論理アドレスのためのデータの前バージョンがないことを示す前記論理−物理マッピングの前記論理アドレスの各々のためにバージョン情報を設定することを
実行する手順
を前記コンピュータにさらに実行させる、請求項１または２に記載のプログラム。
【請求項４】
ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記プログラムはさらに、チェックポイントコマンドに応答して、
前記チェックポイントコマンドによって確立されるチェックポイントのためのセキュリティキーを維持する手順を前記コンピュータにさらに実行させ、
前記ストレージデバイスは前記チェックポイントに関連する受信コマンドを認証すべく前記セキュリティキーを使用する、
請求項１から３のいずれか一項に記載のプログラム。
【請求項５】
ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記プログラムはさらに、
前記ホストシステムからの復元要求を処理することに応答して、前記論理−物理マッピングの論理アドレスごとに、
前記データの前バージョンが存在することを示す前記論理アドレスのための前記バージョン情報に応答して、
・前記論理アドレスのための前記チェックポイント情報に示される前記物理アドレスに対する前記論理−物理マッピングの前記論理アドレスのために前記物理アドレスを設定し、
・前記データの前バージョンが存在しないことを示す前記バージョン情報を設定する
手順
を前記コンピュータにさらに実行させる、
請求項１から４のいずれか一項に記載のプログラム。
【請求項６】
ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記プログラムはさらに、
前記ホストシステムからの差分要求を処理することに応答して、そのバージョン情報が前記論理アドレスのための前記データが最後のチェックポイント以後に変わったことを示す各論理アドレスに関する情報を戻す手順
を前記コンピュータにさらに実行させる、請求項１から５のいずれか一項に記載のプログラム。
【請求項７】
前記ストレージデバイスへのチェックポイントを示すトークンを保存する手順と、
前記論理−物理マッピングおよび前記チェックポイント情報を前記ストレージデバイスに保存する手順と、
前記ストレージデバイスの初期化の間に、前記チェックポイントが存在することを決定すべく前記トークンを処理する手順と、
前記トークンを処理することに応答して、前記初期化に続いて使用する前記論理−物理マッピングと、前記チェックポイント情報とを初期化する手順と
を前記コンピュータにさらに実行させる、請求項１から６のいずれか一項に記載のプログラム。
【請求項８】
デフラグメンテーション動作を開始することに応答して、デフラグメンテーションのための候補である前記論理−物理マッピングの物理アドレスのために、前記論理−物理マッピングおよび前記チェックポイント情報のマッピングに含まれない選択物理アドレスを再利用する手順
を前記コンピュータにさらに実行させる、請求項１から７のいずれか一項に記載のプログラム。
【請求項９】
前記書き込みは、複数のチェックポイントの現チェックポイントの間に受信され、前記プログラムはさらに、
前記現チェックポイントを示さない前記ターゲット論理アドレスのための前記バージョン情報に応答して、前記ターゲット論理アドレスと、前記ターゲット論理アドレスのための前記バージョン情報に示される前記現チェックポイントのための前記チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含める手順を前記コンピュータにさらに実行させ、前記バージョン情報を前記更新する手順は、前記ターゲット論理アドレスのための前記バージョン情報の前記現チェックポイントを示す手順を有する、  請求項１から８のいずれか一項に記載のプログラム。
【請求項１０】
ホストシステムは、ストレージデバイスのデータにアクセスし、前記プログラムはさらに、
チェックポイント情報が維持される複数のチェックポイントの１つを有する選択チェックポイントの現データを復元する復元コマンドを受信する手順と、
前記論理−物理マッピングの論理アドレスｉごとに
前記論理アドレスｉのための前記バージョン情報が前記選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
・前記物理アドレスが前記選択チェックポイントと前記現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、前記論理アドレスｉのための前記論理−物理マッピングに示される前記物理アドレスを解放し、
・前記論理アドレスｉのための前記論理−物理マッピングの前記物理アドレスを前記論理アドレスｉのための前記選択チェックポイントのための前記チェックポイント情報に示される前記物理アドレスに更新することを
実行することを実行する手順と
を前記コンピュータにさらに実行させる、
請求項１から９のいずれか一項に記載のプログラム。
【請求項１１】
現チェックポイントより前の要求チェックポイントでのターゲット論理アドレスのための現チェックポイントの間にデータを読み取る要求を受信する手順と、
前記要求チェックポイントのための前記チェックポイント情報が前記ターゲット論理アドレスのための物理アドレスを提供する場合、前記要求チェックポイントのための前記チェックポイント情報の前記ターゲット論理アドレスのために提供される前記物理アドレスからのデータを戻す手順と、
前記要求チェックポイントのための前記チェックポイント情報が前記ターゲット論理アドレスのための物理アドレスを提供しない場合、物理アドレスマッピングからのデータを前記論理−物理マッピングの前記ターゲット論理アドレスに戻す手順と
を前記コンピュータにさらに実行させる、請求項１から１０のいずれか一項に記載のプログラム。
【請求項１２】
実行される場合、ストレージデバイスに対して動作を実行させるコンピュータプログラム命令を有するコンピュータ可読記憶媒体を備えるストレージデバイスであって、
前記動作は、
前記ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、前記論理−物理マッピングに提供される物理アドレスとは異なる前記ストレージデバイスの物理アドレスにて、前記論理アドレスのためのデータの前バージョンが存在するかどうかを示す前記論理アドレスおよびバージョン情報のための現データを有する前記ストレージデバイスにおける前記物理アドレスを提供することと、
ターゲット論理アドレスに向けられる書き込みを受信することと、
前記ターゲット論理アドレスのための前記データの前バージョンが存在しないことを示す前記論理−物理マッピングに応答して、
・ターゲット物理アドレスと、チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含め、
・データの前バージョンが存在することを示す前記ターゲット論理アドレスのための前記バージョン情報を更新し、
・前記ターゲット論理アドレスのための前記現データを有する前記物理アドレスとは異なる前記ストレージデバイスの位置のターゲット物理アドレスに前記書き込みのためのデータを書き込み、
・前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新すること
を実行することと
を備えるストレージデバイス。
【請求項１３】
前記動作はさらに、
前記ターゲット論理アドレスのための前記データの前バージョンが存在することを示す前記論理−物理マッピングに応答して、
・前記ストレージデバイスのターゲット物理アドレスへの前記書き込みのためのデータを書き込み、
・前記チェックポイント情報を更新しないで前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新すること
を実行すること
を備える、請求項１２に記載のストレージデバイス。
【請求項１４】
ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記動作はさらに、
前記ホストシステムからのチェックポイントコマンドを処理することに応答して、
・前記チェックポイント情報を消去し、
・前記論理アドレスのためのデータの前バージョンがないことを示す前記論理−物理マッピングの前記論理アドレスの各々のためにバージョン情報を設定すること
を実行すること
を備える、請求項１２または１３に記載のストレージデバイス。
【請求項１５】
ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記動作はさらに、
前記ホストシステムからの復元要求を処理することに応答して、前記論理−物理マッピングの論理アドレスごとに、
前記データの前バージョンが存在することを示す前記論理アドレスのための前記バージョン情報に応答して、
・前記論理アドレスのための前記チェックポイント情報に示される前記物理アドレスに対する前記論理−物理マッピングの前記論理アドレスのために前記物理アドレスを設定し、
・前記データの前バージョンが存在しないことを示す前記バージョン情報を設定すること
を実行させることを
実行すること
を備える、請求項１２から１４のいずれか一項に記載のストレージデバイス。
【請求項１６】
前記書き込みが、複数のチェックポイントの現チェックポイントの間に受信され、前記動作はさらに、
前記現チェックポイントを示さない前記ターゲット論理アドレスのための前記バージョン情報に応答して、前記ターゲット論理アドレスと、前記ターゲット論理アドレスのための前記バージョン情報に示される前記現チェックポイントのための前記チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含めることを備え、前記バージョン情報を更新することは、前記ターゲット論理アドレスのための前記バージョン情報の前記現チェックポイントを示すことを有する、
請求項１２から１５のいずれか一項に記載のストレージデバイス。
【請求項１７】
ホストシステムは、前記ストレージデバイスのデータにアクセスし、前記動作はさらに、
チェックポイント情報が維持される複数のチェックポイントの１つを有する選択チェックポイントの現データを復元する復元コマンドを受信することと、
前記論理−物理マッピングの論理アドレスｉごとに
前記論理アドレスｉのための前記バージョン情報が前記選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
・前記物理アドレスが前記選択チェックポイントと前記現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、前記論理アドレスｉのための前記論理−物理マッピングに示される前記物理アドレスを解放することを実行すること
を実行することと、
前記論理アドレスｉのための前記論理−物理マッピングの前記物理アドレスを前記論理アドレスｉのための前記選択チェックポイントのための前記チェックポイント情報に示される前記物理アドレスに更新することと
を備える、請求項１２から１６のいずれか一項に記載のストレージデバイス。
【請求項１８】
ストレージデバイスへのアクセスを管理するための方法であって、
前記ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、前記論理−物理マッピングに提供される物理アドレスとは異なる前記ストレージデバイスの物理アドレスにて、前記論理アドレスのためのデータの前バージョンが存在するかどうかを示す前記論理アドレスおよびバージョン情報のための現データを有する前記ストレージデバイスにおける前記物理アドレスを提供する段階と、
ターゲット論理アドレスに向けられる書き込みを受信する段階と、
前記ターゲット論理アドレスのための前記データの前バージョンが存在しないことを示す前記論理−物理マッピングに応答して、
・ターゲット物理アドレスと、チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含め、
・データの前バージョンが存在することを示す前記ターゲット論理アドレスのための前記バージョン情報を更新し、
・前記ターゲット論理アドレスのための前記現データを有する前記物理アドレスとは異なる前記ストレージデバイスの位置のターゲット物理アドレスに前記書き込みのためのデータを書き込み、
・前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新すること
を実行する段階と
を備える方法。
【請求項１９】
前記ターゲット論理アドレスのための前記データの前バージョンが存在することを示す前記論理−物理マッピングに応答して、
・前記書き込みのためのデータを前記ストレージデバイスのターゲット物理アドレスに書き込み、
・チェックポイント情報を更新しないで前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新すること
を実行する段階
をさらに備える、請求項１８に記載の方法。
【請求項２０】
ホストシステムからのチェックポイントコマンドを処理することに応答して、
前記チェックポイント情報を消去し、
前記論理アドレスのためのデータの前バージョンがないことを示す前記論理−物理マッピングの前記論理アドレスの各々のために前記バージョン情報を設定すること
を実行する段階
をさらに備える、請求項１８または１９に記載の方法。
【請求項２１】
ホストシステムからの復元要求を処理することに応答して、前記論理−物理マッピングの論理アドレスごとに、
前記データの前バージョンが存在することを示す前記論理アドレスのための前記バージョン情報に応答して、
・前記論理アドレスのための前記チェックポイント情報に示される前記物理アドレスに対する前記論理−物理マッピングの前記論理アドレスのために前記物理アドレスを設定し、
・前記データの前バージョンが存在しないことを示す前記バージョン情報を設定すること
を実行すること
を実行する段階をさらに備える、請求項１８から２０のいずれか一項に記載の方法。
【請求項２２】
前記書き込みは、複数のチェックポイントの現チェックポイントの間に受信され、
前記現チェックポイントを示さない前記ターゲット論理アドレスのための前記バージョン情報に応答して、前記ターゲット論理アドレスと、前記ターゲット論理アドレスのための前記バージョン情報に示されるチェックポイントのための前記チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含める段階をさらに備え、前記バージョン情報を更新する段階は、前記ターゲット論理アドレスのための前記バージョン情報の前記現チェックポイントを示すことを有する、
請求項１８から２１のいずれか一項に記載の方法。
【請求項２３】
チェックポイント情報が維持される複数のチェックポイントの１つを有する選択チェックポイントの現データを復元する復元コマンドを受信する段階と、
前記論理−物理マッピングの論理アドレスｉごとに
前記論理アドレスｉのための前記バージョン情報が前記選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
・前記物理アドレスが前記選択チェックポイントと前記現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、前記論理アドレスｉのための前記論理−物理マッピングに示される前記物理アドレスを解放することを実行すること
を実行する段階と、
前記論理アドレスｉのための前記論理−物理マッピングの前記物理アドレスを前記論理アドレスｉのための前記選択チェックポイントのための前記チェックポイント情報に示される前記物理アドレスに更新する段階と
をさらに備える、請求項１８から２２のいずれか一項に記載の方法。
【請求項２４】
ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、前記論理−物理マッピングに提供される物理アドレスとは異なる前記ストレージデバイスの物理アドレスにて、前記論理アドレスのためのデータの前バージョンが存在するかどうかを示す前記論理アドレスおよびバージョン情報のための現データを有する前記ストレージデバイスにおける前記物理アドレスを提供する手段と、
ターゲット論理アドレスに向けられるホストからの書き込みを受信する手段と、
前記ターゲット論理アドレスのための前記データの前バージョンが存在しないことを示す前記論理−物理マッピングに応答して、ターゲット物理アドレスと、チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含める手段と、
前記ターゲット論理アドレスのための前記データの前バージョンが存在しないことを示す前記論理−物理マッピングに応答して、データの前バージョンが存在することを示す前記ターゲット論理アドレスのための前記バージョン情報を更新する手段と、
前記ターゲット論理アドレスのための前記現データを有する前記物理アドレスとは異なる前記ストレージデバイスの位置のターゲット物理アドレスに前記書き込みのためのデータを書き込む手段と、
前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新する手段と
を備える装置。
【請求項２５】
チェックポイント情報が維持される複数のチェックポイントの１つを有する選択チェックポイントの現データを復元する復元コマンドを受信する手段と、
前記論理−物理マッピングの論理アドレスｉごとに
前記論理アドレスｉのための前記バージョン情報が前記選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
・前記物理アドレスが前記選択チェックポイントと前記現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、前記論理アドレスｉのための前記論理−物理マッピングに示される前記物理アドレスを解放し、
・前記論理アドレスｉのための前記論理−物理マッピングの前記物理アドレスを前記論理アドレスｉのための前記選択チェックポイントのための前記チェックポイント情報に示される前記物理アドレスに更新すること
を実行すること
を実行する手段と
をさらに備える、請求項２４に記載の装置。
【請求項２６】
請求項１から１１のいずれか一項に記載のプログラムを格納するためのコンピュータ可読記憶媒体。
【国際調査報告】
2018511853.tif 000016
2018511853.tif 000017