JP2018511853A - ストレージデバイスにおける論理アドレスのためのデータの前バージョンの管理 - Google Patents

ストレージデバイスにおける論理アドレスのためのデータの前バージョンの管理 Download PDF

Info

Publication number
JP2018511853A
JP2018511853A JP2017541978A JP2017541978A JP2018511853A JP 2018511853 A JP2018511853 A JP 2018511853A JP 2017541978 A JP2017541978 A JP 2017541978A JP 2017541978 A JP2017541978 A JP 2017541978A JP 2018511853 A JP2018511853 A JP 2018511853A
Authority
JP
Japan
Prior art keywords
logical
checkpoint
address
physical
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017541978A
Other languages
English (en)
Other versions
JP6848146B2 (ja
Inventor
エヌ. トライカ、サンジーブ
エヌ. トライカ、サンジーブ
ダブリュー. ボイヤー、ベンジャミン
ダブリュー. ボイヤー、ベンジャミン
エル. サヒタ、ラビ
エル. サヒタ、ラビ
リー、シオニング
エー. シディキ、ファラース
エー. シディキ、ファラース
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2018511853A publication Critical patent/JP2018511853A/ja
Application granted granted Critical
Publication of JP6848146B2 publication Critical patent/JP6848146B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Retry When Errors Occur (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

ストレージデバイスへのアクセスを管理するための方法、システムおよびコンピュータ可読記憶媒体が提供される。論理−物理マッピングは、論理アドレスのためのデータの前バージョンが存在するかどうかを示す論理アドレスおよびバージョン情報のために現データを有するストレージデバイスの物理アドレスを論理アドレスごとに示す。書き込みのターゲット論理アドレスのためのデータの前バージョンが存在しないことを示す論理−物理マッピングに応答して、ターゲット物理アドレスと、チェックポイント情報の論理−物理マッピングに示される物理アドレスとに関する情報を含む。ターゲット論理アドレスのためのバージョン情報は、データの前バージョンが存在することを示すべく更新される。書き込みのためのデータは、ターゲット物理アドレスに書き込まれる。ターゲット論理アドレスのための論理−物理マッピングは、ターゲット物理アドレスを示すべく更新される。

Description

本明細書に説明される実施形態は概して、ストレージデバイスの論理アドレスのためのデータの前バージョンを管理することに関する。
ストレージデバイスのデータは、異なる時点にてバックアップされ得、チェックポインティングと呼ばれる処理の一部として保存時点へのデータ復元を可能にする。オペレーティングシステムチェックポインティングは、ユーザがデータの状態を当該チェックポイントに戻すことを可能にする復元ポイントまたはチェックポイントを作り出すために更新されたデータの前バージョンを格納するオペレーティングシステムを含む。しかしながら、オペレーティングシステムチェックポインティングは、マルウェアがインストールされた前のポイントにユーザがデータを復元するのを妨げるべく、チェックポイントデータを破損するようにオペレーティングシステムおよびアプリケーションファイルを攻撃する場合があるマルウェアの攻撃を受けやすい。さらに、オペレーティングシステムベースのチェックポインティングは、他のソフトウェアの干渉を受けやすく、アンチウィルスプログラムは、チェックポインティングが適切に作動できなくさせるにちがいない。
仮想マシンチェックポインティングは、仮想マシンの状態をチェックポイント時に復元することを可能にすべく、仮想マシンが更新されたデータの変化を監視し、更新されたデータの前バージョンを格納することを含む。仮想マシンチェックポインティングはまた、マルウェアの攻撃を受けやすい。
システムバックアップは、ストレージデバイスまたは別のストレージデバイス上の別のパーティションに対するチェックポイント時現在のドライブの全てのデータのバックアップを含む。システムバックアップは、ホストシステム上で実行され、かなりのホストリソースを消費し、それによりホストシステムでの性能劣化という結果になり得る。さらに、ホストベースのシステムバックアップは多くの場合に遅く、バックアップおよび復元するためにかなりの時間を必要とする。
ストレージデバイスに書き込まれるデータのチェックポイントを取得するための改善された解決策を提供することが当技術分野にて必要である。
添付の図面を参照して、複数の実施形態が例として説明される。図面は縮尺通りではなく、同様の参照番号は同様の要素を指す。
ホストシステムが、ストレージデバイスに対して入出力(I/O)動作を実行するストレージシステムの実施形態を示す。
論理−物理マッピングの実施形態を示す。
チェックポイント情報の情報の実施形態を示す。
1つのチェックポイントだけが維持される場合にチェックポイントコマンドを処理する動作の実施形態を示す。
複数のチェックポイントが維持され得る場合にチェックポイントコマンドを処理する動作の実施形態を示す。
ストレージデバイスへの書き込み要求を処理する動作の実施形態を示す。
復元要求情報を処理する動作の実施形態を示す。
複数のチェックポイントが維持され得る場合に復元要求を処理する動作の実施形態を示す。
1つのチェックポイントだけが維持され得る場合に復元要求を処理する動作の実施形態を示す。
デフラグメンテーション動作を処理する動作の実施形態を示す。
論理アドレス用のデータの前バージョンに関する情報の差分要求を処理する動作の実施形態を示す。
ストレージデバイスの初期化を行う動作の実施形態を示す。
図1のホストシステムが実装され得るシステムを示す。
先行技術のチェックポインティングおよびバックアップ解決策は、マルウェアからの攻撃を受けやすい場合があり、相当なホスト計算上のリソースを消費する場合がある。
説明される実施形態は、新しいデータまたは更新をストレージの新しい位置に書き込むストレージデバイスのデータの前バージョンを維持する。論理−物理マッピングは、論理アドレスに対するデータの前バージョンが存在するかどうかを示す論理アドレスごとのバージョン情報を含む。複数のチェックポイントを有する実装に対して、バージョン情報は、データの前バージョンが確立されたチェックポイントを識別する。書き込みを受信すると、更新すべき論理アドレス用の論理および物理アドレスに関する情報が現チェックポイントのためにチェックポイント情報に書き込まれる。書き込みデータが現バージョンを有する物理アドレスとは異なるストレージデバイスの新しい位置に書き込まれ、そこで、データの前バージョンを有する物理アドレスに関する情報がチェックポイント情報に維持される。復元動作、デフラグメンテーション動作および異なる動作の間、データの前バージョンを有する論理アドレスの物理アドレスは、データを以前のバージョンに復元し、その物理アドレスが再利用され得るかどうかを決定するために使用され得、論理アドレスに対するデータの前バージョンに関する情報を提供するために使用され得る。
説明される実施形態について、ストレージデバイスコントローラのストレージデバイスおよび制御ロジックのチェックポインティングを実装することにより、復元手順をアプリケーションおよびオペレーティングシステムレベルにて通常動作するマルウェアを受けにくくする。さらに、暗号化技術は、ホストシステムからのチェックポインティング関連通信を認証するストレージデバイス制御ロジックによって使用され得、ストレージデバイスのチェックポイントデータを破損すべく、マルウェアがストレージデバイスチェックポインティングコマンドを発行するのを阻止する。管理アクセス制御はまた、ホストシステムからドライブまでのチェックポインティング関連の通信を認証するために使用され得る。
以下の詳細な説明には、本発明のより完全な理解を提供すべく、多数の具体的な詳細が記載されている。それらは例えば、ロジック実装、演算コード、オペランドを指定する手段、リソースパーティショニング/共有/重複の実装、システムコンポーネントのタイプおよび相互関係、およびロジックパーティショニング/統合の選択肢である。しかしながら、当業者ならば、そのような具体的な詳細なく本発明は実施され得ることを理解されよう。他の例において、制御構造、ゲートレベルの回路、および完全なソフトウェア命令シーケンスは、本発明を不明瞭にさせないように、詳細には示されていない。当業者がここに含まれる詳細な説明に接すれば、過度の実験をすることなく、適切な機能を実装可能だろう。
明細書における「1つの実施形態」、「一実施形態」、「例示的な実施形態」などへの言及は、説明される実施形態は特定の特徴、構造、または特性を含んでよいが、全ての実施形態が必ずしも、その特定の特徴、構造、または特性を含まなくてもよいことを示す。さらに、そのような表現は、必ずしも同一の実施形態を指すわけではない。特定の実施形態は、ストレージデバイスの電子アセンブリに関する。実施形態は、電子アセンブリを形成するためのデバイスおよび方法の両方を含む。
図1は、他の付属のコンピュータシステムおよびデバイスからストレージデバイス102に通信され得る、ユーザデータなどのデータを格納するホストシステム100を有するストレージ環境の実施形態を示す。ホストシステム100は、ストレージデバイス102のデータストレージを管理するストレージデバイスドライバ106を含むオペレーティングシステム104を含む。接続108は、ホスト100からストレージデバイス102への接続を提供する。
ストレージデバイス102は、ストレージデバイス動作を実行し、ストレージデバイス102のストレージ媒体112のデータにアクセスするようにホスト100からの要求に応答するコントローラ110を含む。コントローラ110は、ストレージデバイス102の動作を実行すべく、コードおよび処理要素を有する制御ロジック114を含む。制御ロジック114は、ホストシステム100によって使用される論理アドレスをストレージ媒体112の物理アドレスにマッピングする論理−物理マッピング200を含むメモリ116を有し得る。制御ロジック114はさらに、チェックポイントが作り出されて以後、論理アドレスのためのデータの前バージョンに関する情報を有するチェックポイント情報300を維持し、それは更新中のデータが復元動作で使用されるため保存される時点を含む。1つの実施形態において、1つのチェックポイントだけがストレージデバイス102にて維持される場合、チェックポイント情報300の1つの例だけが存在し得る。制御ロジック114が複数のチェックポイントを実装する場合、チェックポイント情報300の例は、チェックポイント以後に変わったデータの前バージョンを有する物理アドレスを提供することをチェックポイントごとに維持される。
1つの実施形態において、論理アドレスに対する更新は、論理アドレスに対するデータの以前のバージョンを有する物理アドレスを上書きすることなく、ストレージ媒体102の新たに利用可能な物理アドレスに書き込まれる。このようにして、論理アドレス用のデータの以前のバージョンは、以前のバージョンが書き込まれた前の物理アドレスにて維持される。1つの実施形態において、ログ構造化アレイは、論理アドレスのための更新のために使用される新しい 物理アドレスを決定するために使用され得る。
制御ロジック114はさらに、チェックポイントコマンドを処理する前にホストシステム100を認証するために使用されるセキュリティキー118を維持し得る。キー118は、ホスト認証メカニズムなどの任意のセキュリティ技術の一部であり得、例えば、ホスト102などからのメッセージを復号するために使用される共有キー、パスフレーズまたはクッキー、公開キーであり得る。1つの実施形態において、ホストシステム100はトラステッド・プラットフォーム・モジュール(TPM)モジュールを含み得、公開/秘密キーペアを生成し、公開キーをストレージデバイスに送信し、ホストを認証する秘密キーで暗号化されたホストシステム100からの通信を復号するために使用する。
ストレージ媒体112は、1または複数のチェックポイントトークン120を格納し得、そこで、チェックポイントトークン120は、作り出されたチェックポイント、コントローラ110メモリに維持される論理−物理マッピング200aのコピー、チェックポイント情報300aのコピーを識別するために使用される。コントローラ112の論理−物理マッピング200およびチェックポイント情報300は、コピー200a、300aとしてストレージ媒体112に周期的に格納され得る。
ストレージデバイス102は、ハードディスクドライブ、ソリッドステートドライブ(SSD)、フラッシュドライブなどを含み得る。SSDの実装については、ストレージ媒体112は、フラッシュメモリセルのNANDダイ、強誘電体ランダムアクセスメモリ(FeTRAM)、ナノワイヤベースの不揮発性メモリ、相変化メモリ(PCM)などの3次元(3D)クロスポイントメモリ、メモリスタ技術を組み入れるメモリ、磁気抵抗ランダムアクセスメモリ(MRAM)、スピントランスファトルク(STT)MRAM、単一レベルセル(SLC)フラッシュメモリ、エネルギー源支援(バッテリ/超キャパシタ)DRAM、他の電気的消去可能プログラム可能リードオンリメモリ(EEPROM)タイプのデバイスを含み得る。ハードディスクドライブの実装に関して、ストレージ媒体112は、磁気ディスクドライブを含み得る。
ホスト100は、バスインターフェースなどのインターフェース108を通じてストレージデバイス102と通信し得る。ホスト100およびストレージデバイス102は、同じ筐体または別個の筐体に配置され得る。あるいは、ホストシステム100は、ネットワークを通じてストレージデバイス102と通信し得る。
ホスト100およびストレージデバイス102は、その間の通信を可能にする、シリアル・アドバンスト・テクノロジー・アタッチメント(SATA)インターフェースなどの入出力(I/O)インターフェースを含み得、ホスト100およびストレージデバイス102に結合するSATA対応バスを含む。他の実施形態において、例えば、シリアル・アタッチト・スモール・コンピュータ・システム・インターフェース(SCSI)(または、単にSAS)、ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)などの他のタイプのI/Oインターフェースおよびバス相互接続が使用され得る。
図2は、1つの論理アドレス202用の論理−物理マッピング200の例の実施形態を示し、それは論理アドレス202用の現在/アクティブデータが格納されるブロックアドレスなどのストレージ媒体112の物理アドレス204と、最後のチェックポイント以後にデータが変わった場合のチェックポイントを識別するバージョン情報206とを識別する。ストレージデバイス102が1つのチェックポイントを有するに過ぎない場合、バージョン情報206は、データの前バージョンが存在するかどうかを示し得る。複数のチェックポイントがある場合、バージョン情報206は、チェックポイントの時刻におけるデータの前バージョンに対する時点またはチェックポイントを示す。例えば、マルチチェックポイント実装において、論理アドレス202のためのデータがチェックポイントiおよびj間で変更された場合、当該論理アドレスのためのバージョン情報206はチェックポイントiを示すだろう。チェックポイントi用のチェックポイント情報300のデータの以前のバージョンは、チェックポイントiの時点現在の論理アドレス202のためのデータのバージョンを有するものだからである。
1つの実施形態において、チェックポイント情報300は、現チェックポイント以後に変わったそれらの論理アドレスのためのマッピング情報200を含むに過ぎない場合がある。代替的な実施形態において、チェックポイント情報300は、チェックポイント時において作られた全体の論理−物理マッピング200のコピーを含み得る。この代替的な実施形態に対して、チェックポイント情報300は既にチェックポイント時現在の全ての論理−物理マッピングを有するので、チェックポイント情報は、書き込み動作の間に保存される必要がない。
図3は、チェックポイントiに対するチェックポイント情報300のエントリ302の実施形態を示し、チェックポイントi現在のデータの前バージョンを有する論理アドレス304および物理アドレス306を含む。チェックポイント時以後に更新された論理アドレスごとのエントリ302があるであろう。
チェックポイント情報300の複数の例があり得、1つはチェックポイント現在の論理アドレス302のための物理アドレスを有するチェックポイントの各々に対してである。すでに述べたように、論理アドレス302に対する更新がストレージ媒体112の新しい位置へ書き込まれるので、論理アドレスの異なるバージョンは、以前のバージョンのために使用される物理アドレス306にて維持される。
図4は、1つのチェックポイントだけが維持される実装においてホスト100のドライバ106から受信されたチェックポイントコマンドを処理する制御ロジック114によって実行される動作の実施形態を示す。チェックポイントコマンドの(ブロック400にて)受信時に、制御ロジック114は、新しいチェックポイントのためのチェックポイント情報300を(ブロック402にて)除去し、チェックポイントに関する情報を提供するチェックポイントトークン120を(ブロック404にて)保存する。論理−物理マッピング200の全ての論理アドレスのためのバージョン情報206は、チェックポイント時現データの以前のバージョンが存在しないことを示すべく(ブロック406にて)除去される。
図5は、複数のチェックポイントが維持され得る実装において、ホスト100のドライバ106から受信されるチェックポイントコマンドを処理する制御ロジック114によって実行される動作の実施形態を示す。チェックポイントコマンドを(ブロック500にて)受信時に、制御ロジック114は、新しいチェックポイント情報300の例を作り出す。新しいチェックポイントを識別するトークン120が(ブロック504にて)保存され、現チェックポイントの番号は、新しいチェックポイント番号のために(ブロック506にて)インクリメントされる。
図6は、複数のチェックポイントが存在する場合の実装においてチェックポインティングが確立された後に、書き込みデータを用いてターゲット論理アドレスに対する書き込み要求を処理する制御ロジック114によって実行される動作の実施形態を示す。ターゲット論理アドレスのための書き込み要求を(ブロック600にて)受信時に、ターゲット論理アドレス202のための論理−物理マッピングエントリ200のバージョン情報206が現チェックポイント、または最後に作り出されたチェックポイントを示すかどうかについて決定が(ブロック602にて)行われる。そうでない場合、制御ロジック114は、マッピングエントリ200のバージョン情報206に識別されるチェックポイントのためのチェックポイント情報300において、論理−物理マッピング200に示されるターゲット論理アドレスおよびその物理アドレスを(ブロック604にて)示す。このようにして、論理アドレスのための最後のエポック時またはチェックポイント現在の論理−物理マッピングは、バージョン情報206において識別されるチェックポイントのためのチェックポイント情報に保存される。ターゲット論理アドレスのための論理−物理マッピング200のバージョン情報206は、現チェックポイントバージョンを示すべく(ブロック606にて)更新される。単一のチェックポイントだけが実装される実装において、バージョン情報は単に、チェックポインティングが存在するかどうかを示す指標またはフラグであり得る。
(ブロック602のYES分岐から)、バージョン情報206が、現チェックポイントを示す場合、そのことはチェックポイントの時刻現在のデータの前バージョンを有する物理アドレスがチェックポイント情報300に既に格納されていることを示す現チェックポイントを示すか、またはブロック606から、制御ロジック114は、更新中の論理アドレスのための現データを有する物理アドレスとは異なるストレージデバイスの位置にあるターゲット物理アドレスに(ブロック608にて)書き込む。例えば、ログ構造化アレイは、データがどのように書き込まれるかを表すために使用される場合、更新は、ログの直近に使用された(MRU)端によって表される物理アドレスに書き込まれ得る。ターゲット論理アドレスのための論理−物理マッピング200は、データが書き込まれる新しいターゲット物理アドレスを示すべく(ブロック610にて)更新される。
図6の動作に対して、論理アドレスのために以前のチェックポイントまたはエポックのためのデータの前バージョンを有する物理アドレスが、異なるチェックポイント時現在のデータの復元を可能にすべくそのチェックポイントのためのチェックポイント情報300に示される。このようにして、現在のエポックを受け取る書き込みが新しい物理アドレスに格納されることとなり、より古いエポックからのデータを有する物理アドレスが、そのエポック/チェックポイント用のチェックポイント情報に格納されるだろう。
図7は、複数のチェックポイントが維持される場合に、復元要求情報を処理する制御ロジック114により実行される動作の実施形態を示す。ホストストレージデバイスドライバ106からの復元要求情報の(ブロック700にて)受信時に、制御ロジック114は、チェックポイント情報300が維持される1または複数のチェックポイントを(ブロック702にて)決定し、チェックポイントに関する情報を(ブロック704にて)戻す。
図8は、制御ロジック114により実行される動作の実施形態を示し、図7の動作によるホストストレージデバイスドライバ106に戻される復元情報に示される複数のチェックポイントの選択チェックポイントjの時点にデータを復元する要求を処理する。ホスト100からのチェックポイントjの1つの選択を(ブロック800にて)受信時に、制御ロジック114は、アクティブ論理−物理マッピング200の第1の論理アドレスiから開始する。制御ロジック114は、論理アドレスiのためのバージョン情報206に示される現バージョンのチェックポイントkを(ブロック804にて)決定する。(ブロック806にて)論理アドレスiの決定された現チェックポイントkが復元すべき選択チェックポイントjより大きい場合、論理アドレスiのための現データは、復元すべき選択チェックポイントjより後のチェックポイントまたは時間にある。
(ブロック806にて)復元すべき選択チェックポイントjが論理アドレスiのためのバージョン情報206の現チェックポイントkよりも時間が前の場合、制御ロジック114は、論理アドレスiのためのアクティブ論理−物理マッピング200の物理アドレスpを(ブロック808にて)決定する。制御ロジック114は、物理アドレスpがjおよびk間のチェックポイントバージョンのためのチェックポイント情報300に参照されたかを(ブロック810にて)決定する。物理アドレスpがバージョンjおよびk間の任意のチェックポイント情報300に参照されない場合、その物理アドレスpは、ガーベジコレクションのために(ブロック812にて)解放される。物理アドレスpは、(ブロック810のYES分岐からの)バージョンjおよびk間の他のチェックポイント情報300に参照されるか、または物理アドレスpの(ブロック812からの)解放後に、アクティブ論理−物理マッピング200の物理アドレス204が、選択チェックポイントバージョンjのためのチェックポイント情報300の物理アドレス306に対して(ブロック814にて)更新される。
(ブロック814にて)物理アドレス204の更新後、または選択バージョンjが論理アドレスiの現バージョンkと同じか、またはそれより大きい場合、(ブロック816にて)考慮すべき論理−物理マッピング200により多くのアドレスが存在する場合、その上論理−物理マッピング200の次の論理アドレスiがアクセスされ、例えば、iがインクリメントされ、制御はブロック804に戻って進行し、その次の論理アドレスを処理する。そうでなければ、論理−物理マッピング200にもはや処理すべき論理アドレスが存在しない場合、制御は終了する。
説明される実施形態に対して、データの前バージョンは、新しい書き込みまたは更新が新しい位置に書き込まれるので、ストレージ媒体112の物理アドレスにとどまり、チェックポイント情報300は異なるチェックポイントのためのデータの前バージョンの物理アドレスを維持し、それにより前バージョンが異なるチェックポイントのためにチェックポイント情報300において識別される物理アドレスからアクセスされ得る。
ホストストレージデバイスドライバ106は、チェックポイント現在のデータを読み取るように要求すべく、異なるチェックポイントの受信バージョン情報を使用し得る。読み取り要求に応答して、制御ロジック114は、アクティブ論理−物理マッピング200の要求論理アドレスのためのエントリにおけるバージョン情報206の現チェックポイントを決定するであろう。要求チェックポイントが現チェックポイントよりも前である場合、制御ロジック114は、要求チェックポイントのためのチェックポイント情報300にアクセスし、要求チェックポイント現在の要求論理アドレス304のための物理アドレス306を決定し、要求チェックポイントのためのチェックポイント情報300に示されるその物理アドレスからのデータを読み取り戻すであろう。要求チェックポイントが、論理アドレスのためのバージョン情報300に示される現チェックポイントよりも前ではない場合、制御ロジック114は、要求論理アドレスのためのアクティブ論理−物理マッピング200に示される物理アドレスにデータを戻す。
図9は、単一のチェックポイントだけが維持される場合のチェックポイントにストレージ媒体112の論理アドレスに対するデータを復元する制御ロジック114によって実行される動作の実施形態を示す。ホストストレージデバイスドライバ106からの復元要求の受信(ブロック900にて)時に、制御ロジック114は、復元が適用されるストレージ媒体112の論理アドレスの各々に対してブロック902からブロック908での動作ループを実行する。論理アドレスiについては、(ブロック904にて)論理アドレスiのためのバージョン情報206がチェックポイントのために格納されるデータの前バージョンが存在することを示す場合、制御ロジック114は、論理−物理マッピング200の論理アドレスiのための物理アドレス204を論理アドレスiのためのチェックポイント情報300に示される物理アドレス306に(ブロック906にて)設定する。そうでなければ、(ブロック904のNO分岐から)バージョン情報206は、データの前バージョンが存在しないことを示す場合か、またはブロック906にて物理アドレスの設定後に、制御はブロック908に進行し、全ての論理アドレスが考慮されるまでストレージ媒体112のために使用される次の論理アドレスを考慮する。
図10は、ホストストレージデバイスドライバ106からのデフラグメンテーションコマンドを処理する制御ロジック114によって実行される、またはホスト100から独立したデフラグメンテーション動作を自動的に実行するときの動作の実施形態を示す。デフラグメンテーション動作の(ブロック1002にて)開始時に、制御ロジック114は、デフラグメンテーションを受ける、すなわちユーザデータを保持するストレージ媒体112の物理アドレスの各々に対してブロック1002から1012の動作ループを実行する。物理アドレスiについては、制御ロジック114は、物理アドレスzと関連する論理アドレスを(ブロック1004にて)決定し、そのことはストレージ媒体112のための物理アドレスiを有するページデータ、ジャーナルまたは他のメタデータから決定され得る。制御ロジック114は、論理−物理マッピング200または任意のチェックポイント情報300が決定された論理アドレスを物理アドレスiにマッピングするかどうかを(ブロック1006にて)判断する。そうであれば、その物理アドレスは、論理−物理マッピング200にて現データ、またはチェックポイント情報300に維持されるデータの前バージョンを有する位置をアドレス指定し、ガーベジコレクションまたは再利用を受けるべきではない。(ブロック1006にて)物理アドレスiは、論理−物理マッピング200または任意のチェックポイント情報300に識別されない場合、その物理アドレスiはガーベジコレクション/再利用に利用可能と示される。そうでなければ、(ブロック1006にて)物理アドレスiは、論理−物理マッピング200またはチェックポイント情報300に識別される場合、その物理アドレスiは保持され、ガーベジコレクション/再利用を受けない。ブロック1008または1010から、制御はガーベジコレクションを受け得る任意のさらなる物理アドレスを考慮すべく(ブロック1012にて)ブロック1002に戻って進行し、そこでガーベジコレクションは物理アドレスがさらなる書き込みを利用可能にすることができる。
図10についての説明される実施形態は、維持するように意図されるデータの消去を回避すべく、ストレージ媒体112の当該物理アドレスをガーベジコレクションに受けさせる前に、物理アドレスが現データまたはチェックポイントのために保存されているデータの任意の前バージョンを有するかどうかを決定する。
図11は、1または複数のチェックポイントのためのデータの前バージョンに関する情報にアクセスすべくホストストレージデバイスドライバ106からの差分要求を処理する制御ロジック114によって実行される動作の実施形態を示す。差分要求の受信(ブロック1100にて)時に、制御ロジック114は、論理−物理マッピング200の論理アドレスiごとにブロック1102からブロック1108の動作ループを実行する。(ブロック1104にて)論理アドレスiのためのバージョン情報206が、1または複数のチェックポイントのために保存されているデータの前バージョンが存在することを(ブロック1104にて)示す場合、制御ロジック114は、チェックポイント情報300に識別される論理アドレスiのためのデータの1または複数の前バージョンに関する情報を応答に(ブロック1106にて)含む。応答に含まれる情報は、データの前バージョンが論理アドレスに提供されるチェックポイントを示し得、データの前バージョンを任意に含み得る。ブロック1104のNO分岐から、またはブロック1106から、制御は、ストレージ媒体112のための次の論理アドレスのためにブロック1102に戻って(ブロック1108にて)進行する。全ての論理アドレスのための応答にて情報を収集した後、応答情報は処理すべく(ブロック1110にて)ホスト100に戻され、ユーザに提示される。
差分要求がデフラグメンテーション動作の一部として使用され得、ストレージ媒体112の論理アドレスのためのデータの異なるバージョンに関する情報を取得し得る。
図12は、パワーオンまたは初期化ルーチンの一部としてなどのストレージデバイス102を初期化する制御ロジック114によって実行される動作の実施形態を示す。初期化の一部として(ブロック1200にて)、制御ロジック114は、ストレージ媒体112の論理−物理マッピング200aをメモリ116へとロードすることにより論理−物理マッピング200を(ブロック1202にて)初期化する。(ブロック1204にて)チェックポイントトークン120が存在する場合、制御ロジックは、チェックポイントトークンから直近のチェックポイントを(ブロック1206にて)決定し、直近のチェックポイントがさらなるチェックポイント動作に利用可能となるようにチェックポイント情報300を(ブロック1208にて)初期化する。複数のチェックポイントのためのチェックポイント情報300の複数の例が存在する場合、そのような複数の例は初期化中にメモリ116へとロードされ得るか、または復元動作が必要とされる場合に後にロードされ得る。
ストレージ媒体112のスペースが臨界レベルに到達した場合、制御ロジック114は、1または複数のチェックポイントのためのチェックポイント情報の削除などのスペース管理動作を実行し得、それによりチェックポイント情報に識別される物理アドレスは再利用され得るか、またはチェックポイント情報の論理アドレスのためのデータの前バージョンの物理アドレスをもはや示さないことでデータの前バージョンの保存を中止することによってスペース管理動作を実行し得る。あるいは、ストレージデバイス102は、例えば、チェックポイント情報の削除、さらなるチェックポイント動作の中止などの進め方の選択を要求するホストストレージデバイスドライバ106にメッセージを送信し得る。
同様に、本発明の実施形態の上記の説明において、様々な発明の態様の1または複数の理解を助ける本開示を簡素化する目的で、様々な特徴は、場合によっては単一の実施形態、図、またはそれらの説明に一緒にグループ化されることが理解されるべきである。しかしながら、この開示方法は、特許請求された主題が、各請求項に明示的に記載されたものより、多くの特徴を必要とするという意図を反映するものと解釈されるべきではない。そうではなく、以下の特許請求の範囲が反映するように、発明の態様は、上記で開示されている単一の実施形態の全ての特徴より少ないところにある。したがって、詳細な説明に続く特許請求の範囲は、ここでこの詳細な説明に明示的に組み込まれる。
ストレージデバイスドライバ106および制御ロジック114の説明される動作は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを作り出すための標準的なプログラミングおよび/またはエンジニアリング技術を用いる方法、装置、コンピュータ可読記憶媒体として実装され得る。説明される動作は、「コンピュータ可読記憶媒体」に維持されるコードまたはロジックとして実装され得る。コンピュータ可読記憶媒体は機能を直接的に実行するか、またはコンピュータ可読記憶媒体からのコードをプロセッサが読み取り実行し得る。コンピュータ可読記憶媒体は、電子回路部、記憶材料、無機材料、有機材料、生物材料、ケーシング、筐体、被覆物、およびハードウェアのうちの少なくとも1つを含む。コンピュータ可読記憶媒体は、限定はされないが、磁気ストレージ媒体(例えば、ハードディスクドライブ、フロッピー(登録商標)ディスク、テープなど)、光ストレージデバイス(CD−ROM、DVD、光ディスクなど)、揮発性及び不揮発性メモリデバイス(例えば、EEPROM、ROM、PROM、RAM、DRAM、SRAM、フラッシュメモリ、ファームウェア、プログラマブルロジックなど)、ソリッドステートデバイス(SSD)などを備え得る。コンピュータ可読記憶媒体は、ハードウェアデバイス(例えば、集積回路チップ、プログラマブルロジックデバイス、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)など)に実装されるデジタルロジックをさらに備え得る。さらに、説明される動作を実装するコードは、「送信信号」中にも実装され得、このような送信信号は空間を介して、または例えば、光ファイバ、銅電線などの、送信媒体を通じて伝搬し得る。コードまたはロジックが符号化された送信信号は、無線信号、衛星送信、電波、赤外線信号、ブルートゥース(登録商標)などをさらに含み得る。コンピュータ可読記憶媒体に埋め込まれたプログラムコードは、送信局またはコンピュータから受信局またはコンピュータに送信信号として送信され得る。コンピュータ可読記憶媒体は送信信号のみからなるものではなく、有形成分を含む。当業者ならば、本発明の範囲から逸脱することなく本構成に対して多数の変更が行われ得て、製造物品は、当技術分野において既知の好適な情報担持媒体を備え得ることを認識するだろう。
図13は、コンポーネントが実装され得るシステム1300の実施形態を示す。システム1300は、ホストシステム100などにおいて、揮発性メモリデバイス1308および不揮発性ストレージデバイス1310を用いてバス1306を通じて通信するプロセッサ1304を含み、揮発性メモリデバイス1308で、実行中のオペレーティングシステム104およびストレージデバイスドライバ106を含むプログラム、オペランドおよびパラメータがキャッシュされ、ストレージデバイス102などの不揮発性ストレージデバイス1310で、データおよびプログラムが格納され得る。プロセッサ1504はまた、入力デバイス、ディスプレイデバイス、グラフィクスカード、ポート、ネットワークインターフェースなどを含み得る入出力(I/O)デバイス1312a、1312bと通信し得る。不揮発性記憶デバイス1310は、ストレージドライブベイなどのシステム筐体1300に搭載され得、ポートインターフェースを介して、またはネットワークを通じてシステム1300に接続され得る。 [例]
以下の例は、さらなる実施形態に関連する。
例1は、実行される場合、ストレージデバイスに対して動作を実行させるコンピュータプログラム命令を有するコンピュータ可読記憶媒体であって、動作は、
ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、論理−物理マッピングに提供される物理アドレスとは異なるストレージデバイスの物理アドレスにて、論理アドレスのためのデータの前バージョンが存在するかどうかを示す論理アドレスおよびバージョン情報のための現データを有するストレージデバイスにおける物理アドレスを提供することと、
ターゲット論理アドレスに向けられる書き込みを受信することと、
ターゲット論理アドレスのためのデータの前バージョンが存在しないことを示す論理−物理マッピングに応答して、
・ターゲット物理アドレスと、チェックポイント情報の論理−物理マッピングに示される物理アドレスとに関する情報を含め、
・データの前バージョンが存在することを示すターゲット論理アドレスのためのバージョン情報を更新し、
・ターゲット論理アドレスのための現データを有する物理アドレスとは異なるストレージデバイスの位置のターゲット物理アドレスに書き込みのためのデータを書き込み、
・ターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新すること
を実行すること
とを備える。
例2において、例1および例3−12の主題は任意に、動作はさらに、
ターゲット論理アドレスのためのデータの前バージョンが存在することを示す論理−物理マッピングに応答して、
・書き込みのためのデータをストレージデバイスのターゲット物理アドレスに書き込むことと、
・チェックポイント情報を更新しないでターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新すること
を実行することを備えること
を含むことができる。
例3において、例1−2および例4−12の主題は任意に、コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はさらに、
ホストシステムからのチェックポイントコマンドを処理することに応答して、
・チェックポイント情報を消去し、
・論理アドレスのためのデータの前バージョンがないことを示す論理−物理マッピングの論理アドレスの各々のためにバージョン情報を設定すること
を実行することを備えること
を含むことができる。
例4において、例1−3および例5−12の主題は任意に、コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はチェックポイントコマンドに応答してさらに、
・チェックポイントコマンドによって確立されるチェックポイントのためのセキュリティキーを維持することを含み、
ストレージデバイスはチェックポイントに関連する受信コマンドを認証すべくキーを使用することを含むことができる。
例5において、例1−4および例6−12の主題は任意に、コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はさらに、ホストシステムからの復元要求を処理することに応答して、論理−物理マッピングの論理アドレスごとに、
データの前バージョンが存在することを示す論理アドレスのためのバージョン情報に応答して、
・論理アドレスのためのチェックポイント情報に示される物理アドレスに対する論理−物理マッピングの論理アドレスのために物理アドレスを設定し、
・データの前バージョンが存在しないことを示すバージョン情報を設定すること
を実行させることを
実行すること
を備えることを含むことができる。
例6において、例1−5および例7−12の主題は任意に、コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はさらに、
ホストシステムからの差分要求を処理することに応答して、そのバージョン情報が論理アドレスのためのデータが最後のチェックポイント以後に変わったことを示す各論理アドレスに関する情報を戻すこと
を備えることを含むことができる。
例7において、例1−6および例8−12の主題は任意に、
ストレージデバイスへのチェックポイントを示すトークンを保存することと、
論理−物理マッピングおよびチェックポイント情報をストレージデバイスに保存することと、
ストレージデバイスの初期化の間に、チェックポイントが存在することを決定すべくトークンを処理することと、
トークンを処理することに応答して、初期化に続いて使用する論理−物理マッピングと、チェックポイント情報とを初期化することと
を含むことができる。
例8において、例1−7および例9−12の主題は任意に、デフラグメンテーション動作を開始することに応答して、デフラグメンテーションのための候補である論理−物理マッピングの物理アドレスのために、論理−物理マッピングおよびチェックポイント情報のマッピングに含まれない選択物理アドレスを再利用すること
を含むことができる。
例9において、例1−8および例10−12の主題は任意に、書き込みは、複数のチェックポイントの現チェックポイントの間に受信され、動作はさらに、
現チェックポイントを示さないターゲット論理アドレスのためのバージョン情報に応答して、ターゲット論理アドレスと、ターゲット論理アドレスのためのバージョン情報に示されるチェックポイントのためのチェックポイント情報の論理−物理マッピングに示される物理アドレスとの情報を含むことを備え、バージョン情報を更新することは、ターゲット論理アドレスのためのバージョン情報の現チェックポイントを示すことを有することを含むことができる。
例10において、例1−9および例11−12の主題は任意に、コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、ストレージデバイスのデータにアクセスし、動作はさらに、
チェックポイント情報が維持される複数のチェックポイントの1つを有する選択チェックポイントの現データを復元する復元コマンドを受信することと、
論理−物理マッピングの論理アドレスiごとに
論理アドレスiのためのバージョン情報が選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
物理アドレスが選択チェックポイントと現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、論理アドレスiのための論理−物理マッピングに示される物理アドレスを解放し、
論理アドレスiのための論理−物理マッピングの物理アドレスを論理アドレスiのための選択チェックポイントのためのチェックポイント情報に示される物理アドレスに更新することと
を実行することを
実行すること
を備えることを含むことができる。
例11において、例1−10および例12の主題は任意に、動作はさらに、
現チェックポイントより前の要求チェックポイントでのターゲット論理アドレスのための現チェックポイントの間にデータを読み取る要求を受信することと、
要求チェックポイントのためのチェックポイント情報がターゲット論理アドレスのための物理アドレスを提供する場合、要求チェックポイントのためのチェックポイント情報のターゲット論理アドレスのために提供される物理アドレスからのデータを戻すことと、
要求チェックポイントのためのチェックポイント情報がターゲット論理アドレスのための物理アドレスを提供しない場合、物理アドレスマッピングからのデータを論理−物理マッピングのターゲット論理アドレスに戻すことと
を備えることを含むことができる。
例12において、例1−11の主題は任意に、コンピュータ可読記憶媒体は、ストレージデバイスへのアクセスを管理するコントローラを含むことを有することができる。
例13は、実行される場合、ストレージデバイスに対して動作を実行させる制御ロジックを有するコントローラを含むストレージデバイスであって、
動作は、
ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、論理−物理マッピングに提供される物理アドレスとは異なるストレージデバイスの物理アドレスにて、論理アドレスのためのデータの前バージョンが存在するかどうかを示す論理アドレスおよびバージョン情報のための現データを有するストレージデバイスにおける物理アドレスを提供することと、
ターゲット論理アドレスに向けられる書き込みを受信することと、
ターゲット論理アドレスのためのデータの前バージョンが存在しないことを示す論理−物理マッピングに応答して、
・ターゲット物理アドレスと、チェックポイント情報の論理−物理マッピングに示される物理アドレスとに関する情報を含め、
・データの前バージョンが存在することを示すターゲット論理アドレスのためのバージョン情報を更新し、
・ターゲット論理アドレスのための現データを有する物理アドレスとは異なるストレージデバイスの位置のターゲット物理アドレスに書き込みのためのデータを書き込み、および
ターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新すること
を実行することと
を含む。
例14において、例13および例15−18の主題は任意に、動作はさらに、
ターゲット論理アドレスのためのデータの前バージョンが存在することを示す論理−物理マッピングに応答して、
・ストレージデバイスのターゲット物理アドレスへの書き込みのためのデータを書き込み、
・チェックポイント情報を更新しないでターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新すること
を実行させることを備えること
を含むことができる。
例15において、例13−14および例16−18の主題は任意に、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はさらに、
ホストシステムからのチェックポイントコマンドを処理することに応答して、
・チェックポイント情報を消去し、
・論理アドレスのためのデータの前バージョンがないことを示す論理−物理マッピングの論理アドレスの各々のためにバージョン情報を設定すること
を実行させることを備えること
を含むことができる。
例16において、例13−15、17、18の主題は任意に、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はさらに、
ホストシステムからの復元要求を処理することに応答して、論理−物理マッピングの論理アドレスごとに、
データの前バージョンが存在することを示す論理アドレスのためのバージョン情報に応答して、
・論理アドレスのためのチェックポイント情報に示される物理アドレスに対する論理−物理マッピングの論理アドレスのために物理アドレスを設定し、
・データの前バージョンが存在しないことを示すバージョン情報を設定すること
を実行させることを
実行することを備えること
を含むことができる。
例17において、例13−16および18の主題は任意に、書き込みが、複数のチェックポイントの現チェックポイントの間に受信され、動作はさらに、
現チェックポイントを示さないターゲット論理アドレスのためのバージョン情報に応答して、ターゲット論理アドレスと、ターゲット論理アドレスのためのバージョン情報に示されるチェックポイントのためのチェックポイント情報の論理−物理マッピングに示される物理アドレスとに関する情報を含めることを備え、バージョン情報を更新することは、ターゲット論理アドレスのためのバージョン情報の現チェックポイントを示すことを有する、ことを備える
ことを含むことができる。
例18において、例13−17の主題は任意に、ホストシステムは、ストレージデバイスのデータにアクセスし、動作はさらに、
チェックポイント情報が維持される複数のチェックポイントの1つを有する選択チェックポイントの現データを復元する復元コマンドを受信することと、
論理−物理マッピングの論理アドレスiごとに
論理アドレスiのためのバージョン情報が選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
物理アドレスが選択チェックポイントと現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、論理アドレスiのための論理−物理マッピングに示される物理アドレスを解放することを実行することと、
論理アドレスiのための論理−物理マッピングの物理アドレスを論理アドレスiのための選択チェックポイントのためのチェックポイント情報に示される物理アドレスに更新することと
実行することと
を備えることを含むことができる。
例19は、ストレージデバイスへのアクセスを管理するための方法であって、
ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、論理−物理マッピングに提供される物理アドレスとは異なるストレージデバイスの物理アドレスにて、論理アドレスのためのデータの前バージョンが存在するかどうかを示す論理アドレスおよびバージョン情報のための現データを有するストレージデバイスにおける物理アドレスを提供する工程と、
ターゲット論理アドレスに向けられる書き込みを受信する工程と、
ターゲット論理アドレスのためのデータの前バージョンが存在しないことを示す論理−物理マッピングに応答して、
・ターゲット物理アドレスと、チェックポイント情報の論理−物理マッピングに示される物理アドレスとに関する情報を含め、
データの前バージョンが存在することを示すターゲット論理アドレスのためのバージョン情報を更新し、
ターゲット論理アドレスのための現データを有する物理アドレスとは異なるストレージデバイスの位置のターゲット物理アドレスに書き込みのためのデータを書き込み、
ターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新すること
を実行させる工程と
を含む。
例20において、例19および21−24の主題は任意に、ターゲット論理アドレスのためのデータの前バージョンが存在することを示す論理−物理マッピングに応答して、
書き込みのためのデータをストレージデバイスのターゲット物理アドレスに書き込み、
チェックポイント情報を更新しないでターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新すること
を実行させる工程を含むことができる。
例21において、例19、20および22−24の主題は任意に、ホストシステムからのチェックポイントコマンドを処理することに応答して、
チェックポイント情報を消去し、
論理アドレスのためのデータの前バージョンがないことを示す論理−物理マッピングの論理アドレスの各々のためにバージョン情報を設定すること
を実行させる工程を含むことができる。
例22において、例19−21および23−24の主題は任意に、ホストシステムからの復元要求を処理することに応答して、論理−物理マッピングの論理アドレスごとに、
データの前バージョンが存在することを示す論理アドレスのためのバージョン情報に応答して、
論理アドレスのためのチェックポイント情報に示される物理アドレスに対する論理−物理マッピングの論理アドレスのために物理アドレスを設定し、
データの前バージョンが存在しないことを示すバージョン情報を設定すること
を実行させることを
実行する工程を含むことができる。
例23において、例19−22および24の主題は任意に、書き込みは、複数のチェックポイントの現チェックポイントの間に受信され、
現チェックポイントを示さないターゲット論理アドレスのためのバージョン情報に応答して、ターゲット論理アドレス情報と、ターゲット論理アドレスのためのバージョン情報に示されるチェックポイントのためのチェックポイント情報の論理−物理マッピングに示される物理アドレスに関する情報を含める工程をさらに含み、バージョン情報を更新する工程は、ターゲット論理アドレスのためのバージョン情報の現チェックポイントを示すことを有することを含むことができる。
例24において、例19−23の主題は任意に、チェックポイント情報が維持される複数のチェックポイントの1つを有する選択チェックポイントの現データを復元する復元コマンドを受信する工程と、
論理−物理マッピングの論理アドレスiごとに
論理アドレスiのためのバージョン情報が選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
・物理アドレスが選択チェックポイントと現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、論理アドレスiのための論理−物理マッピングに示される物理アドレスを解放し、
論理アドレスiのための論理−物理マッピングの物理アドレスを論理アドレスiのための選択チェックポイントのためのチェックポイント情報に示される物理アドレスに更新すること
を実行させる工程
を実行することと
を含むことができる。
例25において、例の主題は、以下の少なくとも1つの追加工程を任意に含むことができる。
(1)ターゲット論理アドレスのためのデータの前バージョンが存在することを示す論理−物理マッピングに応答して、
書き込みのためのデータをストレージデバイスのターゲット物理アドレスに書き込むこと、および
チェックポイント情報を更新しないでターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新すること
を実行させること;および/または
(2)コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はさらに、
ホストシステムからのチェックポイントコマンドを処理することに応答して、
チェックポイント情報を消去すること、および
論理アドレスのためのデータの前バージョンがないことを示す論理−物理マッピングの論理アドレスの各々のためにバージョン情報を設定すること
を実行させることを含むことができる;および/または
(3)コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はチェックポイントコマンドに応答してさらに、
チェックポイントコマンドによって確立されるチェックポイントのためのセキュリティキーを維持することを含み、ストレージデバイスはチェックポイントに関連する受信コマンドを認証すべくキーを使用する;および/または
(4)コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はさらに、
ホストシステムからの復元要求を処理することに応答して、論理−物理マッピングの論理アドレスごとに、
データの前バージョンが存在することを示す論理アドレスのためのバージョン情報に応答して、
論理アドレスのためのチェックポイント情報に示される物理アドレスに対する論理−物理マッピングの論理アドレスのために物理アドレスを設定すること、および
データの前バージョンが存在しないことを示すバージョン情報を設定すること
を実行させることを
実行することを含む;および/または
(5)コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じてストレージデバイスのデータにアクセスし、動作はさらに、
ホストシステムからの差分要求を処理することに応答して、そのバージョン情報が論理アドレスのためのデータが最後のチェックポイント以後に変わったことを示す各論理アドレスに関する情報を戻すこと
をさらに含む;および/または
(6)動作はさらに、ストレージデバイスへのチェックポイントを示すトークンを保存することと、
論理−物理マッピングおよびチェックポイント情報をストレージデバイスに保存することと、
ストレージデバイスの初期化の間に、チェックポイントが存在することを決定すべくトークンを処理することと、
トークンを処理することに応答して、初期化に続いて使用する論理−物理マッピングと、チェックポイント情報とを初期化することとを含む;および/または
(7)デフラグメンテーション動作を開始することに応答して、デフラグメンテーションのための候補である論理−物理マッピングの物理アドレスのために、論理−物理マッピングおよびチェックポイント情報のマッピングに含まれない選択物理アドレスを再利用することを含む;および/または
(8)書き込みは、複数のチェックポイントの現チェックポイントの間に受信され、動作はさらに、
現チェックポイントを示さないターゲット論理アドレスのためのバージョン情報に応答して、ターゲット論理アドレスと、ターゲット論理アドレスのためのバージョン情報に示されるチェックポイントのためのチェックポイント情報の論理−物理マッピングに示される物理アドレスとに関する情報を含むことを備え、バージョン情報を更新することは、ターゲット論理アドレスのためのバージョン情報の現チェックポイントを示すことを有する;および/または
(9)コンピュータ可読記憶媒体は、ストレージデバイスに実装され、ホストシステムは、ストレージデバイスのデータにアクセスし、動作はさらに、
チェックポイント情報が維持される複数のチェックポイントの1つを有する選択チェックポイントの現データを復元する復元コマンドを受信することと、
論理−物理マッピングの論理アドレスiごとに
論理アドレスiのためのバージョン情報が選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
物理アドレスが選択チェックポイントと現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、論理アドレスiのための論理−物理マッピングに示される物理アドレスを解放すること、および
論理アドレスiのための論理−物理マッピングの物理アドレスを論理アドレスiのための選択チェックポイントのためのチェックポイント情報に示される物理アドレスに更新すること
を実行させること
を実行することとを含む;および/または
(10)動作はさらに、
現チェックポイントよりも前の要求チェックポイントでのターゲット論理アドレスのための現チェックポイントの間にデータを読み取る要求を受信することと、
要求チェックポイントのためのチェックポイント情報がターゲット論理アドレスのための物理アドレスを提供する場合、要求チェックポイントのためのチェックポイント情報のターゲット論理アドレスのために提供される物理アドレスからのデータを戻すことと、
要求チェックポイントのためのチェックポイント情報がターゲット論理アドレスのための物理アドレスを提供しない場合、物理アドレスマッピングからのデータを論理−物理マッピングのターゲット論理アドレスに戻すことと
を含むことを有する;および/または
(11)コンピュータ可読記憶媒体は、ストレージデバイスへのアクセスを管理するコントローラを含む。
例26は、実行される場合、例19−24のいずれか1つの方法を機械に実行させるコードを含む機械可読媒体である。
例27は、ホストと、ホストと通信するストレージデバイスとを含むシステムであり、
実行される場合、ストレージデバイスに対して動作を実行させるコンピュータプログラム命令を有するコンピュータ可読記憶媒体であって、動作は、
ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、論理−物理マッピングに提供される物理アドレスとは異なるストレージデバイスの物理アドレスにて、論理アドレスのためのデータの前バージョンが存在するかどうかを示す論理アドレスおよびバージョン情報のための現データを有するストレージデバイスにおける物理アドレスを提供することと、
ターゲット論理アドレスに向けられるホストからの書き込みを受信することと、
ターゲット論理アドレスのためのデータの前バージョンが存在しないことを示す論理−物理マッピングに応答して、
ターゲット物理アドレスと、チェックポイント情報の論理−物理マッピングに示される物理アドレスとに関する情報を含むこと、
データの前バージョンが存在することを示すターゲット論理アドレスのためのバージョン情報を更新すること、
ターゲット論理アドレスのための現データを有する物理アドレスとは異なるストレージデバイスの位置のターゲット物理アドレスに書き込みのためのデータを書き込むこと、および
ターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新すること
を実行させること
とを含む。
例28において、例27の主題は任意に、動作はさらに、
チェックポイント情報が維持される複数のチェックポイントの1つを有する選択チェックポイントの現データを復元する復元コマンドを受信することと、
論理−物理マッピングの論理アドレスiごとに
論理アドレスiのためのバージョン情報が選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
物理アドレスが選択チェックポイントと現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、論理アドレスiのための論理−物理マッピングに示される物理アドレスを解放すること、および
論理アドレスiのための論理−物理マッピングの物理アドレスを論理アドレスiのための選択チェックポイントのためのチェックポイント情報に示される物理アドレスに更新すること
を実行させること
を実行することを含むことを有することができる。
例29は装置であり、ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、論理−物理マッピングに提供される物理アドレスとは異なるストレージデバイスの物理アドレスにて、論理アドレスのためのデータの前バージョンが存在するかどうかを示す論理アドレスおよびバージョン情報のための現データを有するストレージデバイスにおける物理アドレスを提供する手段と、
ターゲット論理アドレスに向けられるホストからの書き込みを受信する手段と、
ターゲット論理アドレスのためのデータの前バージョンが存在しないことを示す論理−物理マッピングに応答して、ターゲット物理アドレスと、チェックポイント情報の論理−物理マッピングに示される物理アドレスとに関する情報を含む手段と、
ターゲット論理アドレスのためのデータの前バージョンが存在しないことを示す論理−物理マッピングに応答して、データの前バージョンが存在することを示すターゲット論理アドレスのためのバージョン情報を更新する手段と、
ターゲット論理アドレスのための現データを有する物理アドレスとは異なるストレージデバイスの位置のターゲット物理アドレスに書き込みのためのデータを書き込む手段と、
ターゲット物理アドレスを示すターゲット論理アドレスのための論理−物理マッピングを更新する手段と
を備える。
例30において、 例29の主題は任意に、チェックポイント情報が維持される複数のチェックポイントの1つを有する選択チェックポイントの現データを復元する復元コマンドを受信する手段と、
論理−物理マッピングの論理アドレスiごとに
論理アドレスiのためのバージョン情報が選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
物理アドレスが選択チェックポイントと現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、論理アドレスiのための論理−物理マッピングに示される物理アドレスを解放すること、および
論理アドレスiのための論理−物理マッピングの物理アドレスを論理アドレスiのための選択チェックポイントのためのチェックポイント情報に示される物理アドレスに更新すること
を実行させる手段
を実行する手段と
を含むことができる。

Claims (25)

  1. 実行される場合、ストレージデバイスに対して動作を実行されるコンピュータプログラム命令を有するコンピュータ可読記憶媒体であって、前記動作は、
    前記ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、前記論理−物理マッピングに提供される物理アドレスとは異なる前記ストレージデバイスの物理アドレスにて、前記論理アドレスのためのデータの前バージョンが存在するかどうかを示す前記論理アドレスおよびバージョン情報のための現データを有する前記ストレージデバイスにおける前記物理アドレスを提供することと、
    ターゲット論理アドレスに向けられる書き込みを受信することと、
    前記ターゲット論理アドレスのための前記データの前バージョンが存在しないことを示す前記論理−物理マッピングに応答して、
    ・ターゲット物理アドレスと、チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含め、
    ・データの前バージョンが存在することを示す前記ターゲット論理アドレスのための前記バージョン情報を更新し、
    ・前記ターゲット論理アドレスのための前記現データを有する前記物理アドレスとは異なる前記ストレージデバイスの位置のターゲット物理アドレスに前記書き込みのためのデータを書き込み、
    ・前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新する
    を実行させると
    を備えるコンピュータ可読記憶媒体。
  2. 前記動作はさらに、
    前記ターゲット論理アドレスのための前記データの前バージョンが存在することを示す前記論理−物理マッピングに応答して、
    ・前記書き込みのためのデータを前記ストレージデバイスのターゲット物理アドレスに書き込、
    ・前記チェックポイント情報を更新しないで前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新すること
    を実行する手順
    を備える、請求項1に記載のコンピュータ可読記憶媒体。
  3. 前記コンピュータ可読記憶媒体は、前記ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記動作はさらに、
    前記ホストシステムからのチェックポイントコマンドを処理することに応答して、
    ・前記チェックポイント情報を消去し、
    ・前記論理アドレスのためのデータの前バージョンがないことを示す前記論理−物理マッピングの前記論理アドレスの各々のためにバージョン情報を設定することを
    実行すること
    を備える、請求項1または2に記載のコンピュータ可読記憶媒体。
  4. 前記コンピュータ可読記憶媒体は、前記ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記動作はさらに、さらにチェックポイントコマンドに応答して、
    前記チェックポイントコマンドによって確立されるチェックポイントのためのセキュリティキーを維持することを備え、
    前記ストレージデバイスは前記チェックポイントに関連する受信コマンドを認証すべく前記セキュリティキーを使用する、
    請求項1から3のいずれか一項に記載のコンピュータ可読記憶媒体。
  5. 前記コンピュータ可読記憶媒体は、前記ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記動作はさらに、
    前記ホストシステムからの復元要求を処理することに応答して、前記論理−物理マッピングの論理アドレスごとに、
    前記データの前バージョンが存在することを示す前記論理アドレスのための前記バージョン情報に応答して、
    ・前記論理アドレスのための前記チェックポイント情報に示される前記物理アドレスに対する前記論理−物理マッピングの前記論理アドレスのために前記物理アドレスを設定し、
    ・前記データの前バージョンが存在しないことを示す前記バージョン情報を設定する
    ことを
    備え、前記実行させること
    を備える、請求項1から4のいずれか一項に記載のコンピュータ可読記憶媒体。
  6. 前記コンピュータ可読記憶媒体は、前記ストレージデバイスに実装され、ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記動作はさらに、
    前記ホストシステムからの差分要求を処理することに応答して、そのバージョン情報が前記論理アドレスのための前記データが最後のチェックポイント以後に変わったことを示す各論理アドレスに関する情報を戻すこと
    をさらに備える、請求項1から5のいずれか一項に記載のコンピュータ可読記憶媒体。
  7. 前記動作はさらに、
    前記ストレージデバイスへのチェックポイントを示すトークンを保存することと、
    前記論理−物理マッピングおよび前記チェックポイント情報を前記ストレージデバイスに保存することと、
    前記ストレージデバイスの初期化の間に、前記チェックポイントが存在することを決定すべく前記トークンを処理することと、
    前記トークンを処理することに応答して、前記初期化に続いて使用する前記論理−物理マッピングと、前記チェックポイント情報とを初期化することと
    を備える、請求項1から6のいずれか一項に記載のコンピュータ可読記憶媒体。
  8. 前記動作はさらに、
    デフラグメンテーション動作を開始することに応答して、デフラグメンテーションのための候補である前記論理−物理マッピングの物理アドレスのために、前記論理−物理マッピングおよび前記チェックポイント情報のマッピングに含まれない選択物理アドレスを再利用すること
    を備える、請求項1から7のいずれか一項に記載のコンピュータ可読記憶媒体。
  9. 前記書き込みは、複数のチェックポイントの現チェックポイントの間に受信され、前記動作はさらに、
    前記現チェックポイントを示さない前記ターゲット論理アドレスのための前記バージョン情報に応答して、前記ターゲット論理アドレスと、前記ターゲット論理アドレスのための前記バージョン情報に示される前記現チェックポイントのための前記チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含めることを備え、前記バージョン情報を前記更新することは、前記ターゲット論理アドレスのための前記バージョン情報の前記現チェックポイントを示すことを有する、
    請求項1から8のいずれか一項に記載のコンピュータ可読記憶媒体。
  10. 前記コンピュータ可読記憶媒体は、前記ストレージデバイスに実装され、ホストシステムは、ストレージデバイスのデータにアクセスし、前記動作はさらに、
    チェックポイント情報が維持される複数のチェックポイントの1つを有する選択チェックポイントの現データを復元する復元コマンドを受信することと、
    前記論理−物理マッピングの論理アドレスiごとに
    前記論理アドレスiのための前記バージョン情報が前記選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
    ・前記物理アドレスが前記選択チェックポイントと前記現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、前記論理アドレスiのための前記論理−物理マッピングに示される前記物理アドレスを解放し、
    ・前記論理アドレスiのための前記論理−物理マッピングの前記物理アドレスを前記論理アドレスiのための前記選択チェックポイントのための前記チェックポイント情報に示される前記物理アドレスに更新するを実行することと

    備える、
    請求項1から9のいずれか一項に記載のコンピュータ可読記憶媒体。
  11. 前記動作はさらに、
    現チェックポイントより前の要求チェックポイントでのターゲット論理アドレスのための現チェックポイントの間にデータを読み取る要求を受信することと、
    前記要求チェックポイントのための前記チェックポイント情報が前記ターゲット論理アドレスのための物理アドレスを提供する場合、前記要求チェックポイントのための前記チェックポイント情報の前記ターゲット論理アドレスのために提供される前記物理アドレスからのデータを戻すことと、
    前記要求チェックポイントのための前記チェックポイント情報が前記ターゲット論理アドレスのための物理アドレスを提供しない場合、物理アドレスマッピングからのデータを前記論理−物理マッピングの前記ターゲット論理アドレスに戻すことと
    を備える、請求項1から10のいずれか一項に記載のコンピュータ可読記憶媒体。
  12. 実行される場合、ストレージデバイスに対して動作を実行させるコンピュータプログラム命令を有するコンピュータ可読記憶媒体を備えるストレージデバイスであって、
    前記動作は、
    前記ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、前記論理−物理マッピングに提供される物理アドレスとは異なる前記ストレージデバイスの物理アドレスにて、前記論理アドレスのためのデータの前バージョンが存在するかどうかを示す前記論理アドレスおよびバージョン情報のための現データを有する前記ストレージデバイスにおける前記物理アドレスを提供することと、
    ターゲット論理アドレスに向けられる書き込みを受信することと、
    前記ターゲット論理アドレスのための前記データの前バージョンが存在しないことを示す前記論理−物理マッピングに応答して、
    ・ターゲット物理アドレスと、チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含め、
    ・データの前バージョンが存在することを示す前記ターゲット論理アドレスのための前記バージョン情報を更新し、
    ・前記ターゲット論理アドレスのための前記現データを有する前記物理アドレスとは異なる前記ストレージデバイスの位置のターゲット物理アドレスに前記書き込みのためのデータを書き込み、
    ・前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新すること
    を実行することと
    を備えるストレージデバイス。
  13. 前記動作はさらに、
    前記ターゲット論理アドレスのための前記データの前バージョンが存在することを示す前記論理−物理マッピングに応答して、
    ・前記ストレージデバイスのターゲット物理アドレスへの前記書き込みのためのデータを書き込み、
    ・前記チェックポイント情報を更新しないで前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新することと
    を実行すること
    を備える、請求項12に記載のストレージデバイス。
  14. ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記動作はさらに、
    前記ホストシステムからのチェックポイントコマンドを処理することに応答して、
    ・前記チェックポイント情報を消去し、
    ・前記論理アドレスのためのデータの前バージョンがないことを示す前記論理−物理マッピングの前記論理アドレスの各々のためにバージョン情報を設定すること
    を実行すること
    を備える、請求項12または13に記載のストレージデバイス。
  15. ホストシステムは、データインターフェースを通じて前記ストレージデバイスのデータにアクセスし、前記動作はさらに、
    前記ホストシステムからの復元要求を処理することに応答して、前記論理−物理マッピングの論理アドレスごとに、
    前記データの前バージョンが存在することを示す前記論理アドレスのための前記バージョン情報に応答して、
    ・前記論理アドレスのための前記チェックポイント情報に示される前記物理アドレスに対する前記論理−物理マッピングの前記論理アドレスのために前記物理アドレスを設定し、
    ・前記データの前バージョンが存在しないことを示す前記バージョン情報を設定すること
    を実行させることを
    実行すること
    を備える、請求項12から14のいずれか一項に記載のストレージデバイス。
  16. 前記書き込みが、複数のチェックポイントの現チェックポイントの間に受信され、前記動作はさらに、
    前記現チェックポイントを示さない前記ターゲット論理アドレスのための前記バージョン情報に応答して、前記ターゲット論理アドレスと、前記ターゲット論理アドレスのための前記バージョン情報に示される前記現チェックポイントのための前記チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含めることを備え、前記バージョン情報を更新することは、前記ターゲット論理アドレスのための前記バージョン情報の前記現チェックポイントを示すことを有する、
    請求項12から15のいずれか一項に記載のストレージデバイス。
  17. ホストシステムは、前記ストレージデバイスのデータにアクセスし、前記動作はさらに、
    チェックポイント情報が維持される複数のチェックポイントの1つを有する選択チェックポイントの現データを復元する復元コマンドを受信することと、
    前記論理−物理マッピングの論理アドレスiごとに
    前記論理アドレスiのための前記バージョン情報が前記選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
    ・前記物理アドレスが前記選択チェックポイントと前記現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、前記論理アドレスiのための前記論理−物理マッピングに示される前記物理アドレスを解放することを実行すること
    を実行することと、
    前記論理アドレスiのための前記論理−物理マッピングの前記物理アドレスを前記論理アドレスiのための前記選択チェックポイントのための前記チェックポイント情報に示される前記物理アドレスに更新することと
    を備える、請求項12から16のいずれか一項に記載のストレージデバイス。
  18. ストレージデバイスへのアクセスを管理するための方法であって、
    前記ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、前記論理−物理マッピングに提供される物理アドレスとは異なる前記ストレージデバイスの物理アドレスにて、前記論理アドレスのためのデータの前バージョンが存在するかどうかを示す前記論理アドレスおよびバージョン情報のための現データを有する前記ストレージデバイスにおける前記物理アドレスを提供する段階と、
    ターゲット論理アドレスに向けられる書き込みを受信する段階と、
    前記ターゲット論理アドレスのための前記データの前バージョンが存在しないことを示す前記論理−物理マッピングに応答して、
    ・ターゲット物理アドレスと、チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含め、
    ・データの前バージョンが存在することを示す前記ターゲット論理アドレスのための前記バージョン情報を更新し、
    ・前記ターゲット論理アドレスのための前記現データを有する前記物理アドレスとは異なる前記ストレージデバイスの位置のターゲット物理アドレスに前記書き込みのためのデータを書き込み、
    ・前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新すること
    を実行する段階と
    を備える方法。
  19. 前記ターゲット論理アドレスのための前記データの前バージョンが存在することを示す前記論理−物理マッピングに応答して、
    ・前記書き込みのためのデータを前記ストレージデバイスのターゲット物理アドレスに書き込み、
    ・チェックポイント情報を更新しないで前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新すること
    を実行する段階
    をさらに備える、請求項18に記載の方法。
  20. ホストシステムからのチェックポイントコマンドを処理することに応答して、
    前記チェックポイント情報を消去し、
    前記論理アドレスのためのデータの前バージョンがないことを示す前記論理−物理マッピングの前記論理アドレスの各々のために前記バージョン情報を設定すること
    を実行する段階
    をさらに備える、請求項18または19に記載の方法。
  21. ホストシステムからの復元要求を処理することに応答して、前記論理−物理マッピングの論理アドレスごとに、
    前記データの前バージョンが存在することを示す前記論理アドレスのための前記バージョン情報に応答して、
    ・前記論理アドレスのための前記チェックポイント情報に示される前記物理アドレスに対する前記論理−物理マッピングの前記論理アドレスのために前記物理アドレスを設定し、
    ・前記データの前バージョンが存在しないことを示す前記バージョン情報を設定すること
    を実行すること
    を実行する段階をさらに備える、請求項18から20のいずれか一項に記載の方法。
  22. 前記書き込みは、複数のチェックポイントの現チェックポイントの間に受信され、
    前記現チェックポイントを示さない前記ターゲット論理アドレスのための前記バージョン情報に応答して、前記ターゲット論理アドレスと、前記ターゲット論理アドレスのための前記バージョン情報に示されるチェックポイントのための前記チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含める段階をさらに備え、前記バージョン情報を更新する段階は、前記ターゲット論理アドレスのための前記バージョン情報の前記現チェックポイントを示すことを有する、
    請求項18から21のいずれか一項に記載の方法。
  23. チェックポイント情報が維持される複数のチェックポイントの1つを有する選択チェックポイントの現データを復元する復元コマンドを受信する段階と、
    前記論理−物理マッピングの論理アドレスiごとに
    前記論理アドレスiのための前記バージョン情報が前記選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
    ・前記物理アドレスが前記選択チェックポイントと前記現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、前記論理アドレスiのための前記論理−物理マッピングに示される前記物理アドレスを解放することを実行すること
    を実行する段階と、
    前記論理アドレスiのための前記論理−物理マッピングの前記物理アドレスを前記論理アドレスiのための前記選択チェックポイントのための前記チェックポイント情報に示される前記物理アドレスに更新する段階と
    をさらに備える、請求項18から22のいずれか一項に記載の方法。
  24. ストレージデバイスにアクセスするために使用される論理アドレスごとに示す論理−物理マッピングを、前記論理−物理マッピングに提供される物理アドレスとは異なる前記ストレージデバイスの物理アドレスにて、前記論理アドレスのためのデータの前バージョンが存在するかどうかを示す前記論理アドレスおよびバージョン情報のための現データを有する前記ストレージデバイスにおける前記物理アドレスを提供する手段と、
    ターゲット論理アドレスに向けられるホストからの書き込みを受信する手段と、
    前記ターゲット論理アドレスのための前記データの前バージョンが存在しないことを示す前記論理−物理マッピングに応答して、ターゲット物理アドレスと、チェックポイント情報の前記論理−物理マッピングに示される前記物理アドレスとに関する情報を含める手段と、
    前記ターゲット論理アドレスのための前記データの前バージョンが存在しないことを示す前記論理−物理マッピングに応答して、データの前バージョンが存在することを示す前記ターゲット論理アドレスのための前記バージョン情報を更新する手段と、
    前記ターゲット論理アドレスのための前記現データを有する前記物理アドレスとは異なる前記ストレージデバイスの位置のターゲット物理アドレスに前記書き込みのためのデータを書き込む手段と、
    前記ターゲット物理アドレスを示す前記ターゲット論理アドレスのための前記論理−物理マッピングを更新する手段と
    を備える装置。
  25. チェックポイント情報が維持される複数のチェックポイントの1つを有する選択チェックポイントの現データを復元する復元コマンドを受信する手段と、
    前記論理−物理マッピングの論理アドレスiごとに
    前記論理アドレスiのための前記バージョン情報が前記選択チェックポイントより大きいときの現バージョンチェックポイントに応答して、
    ・前記物理アドレスが前記選択チェックポイントと前記現バージョンチェックポイントとの間のチェックポイントのためのチェックポイント情報に参照されない場合に、前記論理アドレスiのための前記論理−物理マッピングに示される前記物理アドレスを解放し、
    ・前記論理アドレスiのための前記論理−物理マッピングの前記物理アドレスを前記論理アドレスiのための前記選択チェックポイントのための前記チェックポイント情報に示される前記物理アドレスに更新すること
    を実行すること
    を実行する手段と
    をさらに備える、請求項24に記載の装置。
JP2017541978A 2015-03-27 2016-02-26 ストレージデバイスにおける論理アドレスのためのデータの前バージョンの管理 Active JP6848146B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/672,020 US9671971B2 (en) 2015-03-27 2015-03-27 Managing prior versions of data for logical addresses in a storage device
US14/672,020 2015-03-27
PCT/US2016/019961 WO2016160217A1 (en) 2015-03-27 2016-02-26 Managing prior versions of data for logical addresses in a storage device

Publications (2)

Publication Number Publication Date
JP2018511853A true JP2018511853A (ja) 2018-04-26
JP6848146B2 JP6848146B2 (ja) 2021-03-24

Family

ID=56975417

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017541978A Active JP6848146B2 (ja) 2015-03-27 2016-02-26 ストレージデバイスにおける論理アドレスのためのデータの前バージョンの管理

Country Status (6)

Country Link
US (1) US9671971B2 (ja)
EP (1) EP3274833A4 (ja)
JP (1) JP6848146B2 (ja)
KR (1) KR102590470B1 (ja)
CN (1) CN107408022B (ja)
WO (1) WO2016160217A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022040156A (ja) * 2021-01-06 2022-03-10 バイドゥ ユーエスエイ エルエルシー 仮想化環境でのチェックポイント認証による仮想マシン移行の方法

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2533342A (en) * 2014-12-17 2016-06-22 Ibm Checkpointing module and method for storing checkpoints
US10162526B2 (en) 2015-10-20 2018-12-25 Micron Technology, Inc. Logical address history management in memory device
US10325108B2 (en) * 2016-12-30 2019-06-18 Intel Corporation Method and apparatus for range based checkpoints in a storage device
US20190102262A1 (en) * 2017-09-29 2019-04-04 Intel Corporation Automated continuous checkpointing
US10685097B2 (en) * 2017-12-29 2020-06-16 Intel Corporation Application based checkpointing control for storage device
KR102527132B1 (ko) * 2018-01-19 2023-05-02 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10621084B2 (en) * 2018-03-05 2020-04-14 International Business Machines Corporation Efficient garbage collection in the presence of block dependencies
US11099980B2 (en) 2018-05-09 2021-08-24 International Business Machines Corporation Host aware update write
US11379155B2 (en) 2018-05-24 2022-07-05 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US11200300B2 (en) * 2018-06-20 2021-12-14 Microsoft Technology Licensing, Llc Secure sharing of license data in computing systems
CN111902804B (zh) 2018-06-25 2024-03-01 阿里巴巴集团控股有限公司 用于管理存储设备的资源并量化i/o请求成本的系统和方法
US10754785B2 (en) 2018-06-28 2020-08-25 Intel Corporation Checkpointing for DRAM-less SSD
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
WO2020132849A1 (zh) 2018-12-25 2020-07-02 华为技术有限公司 分布式存储系统中数据存储方法、装置及计算机程序产品
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
US11126561B2 (en) * 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11568077B2 (en) * 2019-12-26 2023-01-31 Micron Technology, Inc. Memory device data security based on content-addressable memory architecture
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US11379447B2 (en) 2020-02-06 2022-07-05 Alibaba Group Holding Limited Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller
US11449386B2 (en) 2020-03-20 2022-09-20 Alibaba Group Holding Limited Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory
US11392436B2 (en) * 2020-04-01 2022-07-19 Western Digital Technologies, Inc. Advanced file recovery method for flash memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11301173B2 (en) 2020-04-20 2022-04-12 Alibaba Group Holding Limited Method and system for facilitating evaluation of data access frequency and allocation of storage device resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
KR20220037184A (ko) * 2020-09-17 2022-03-24 삼성전자주식회사 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11520695B2 (en) * 2021-03-02 2022-12-06 Western Digital Technologies, Inc. Storage system and method for automatic defragmentation of memory
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
WO2022232969A1 (en) * 2021-05-05 2022-11-10 Micron Technology, Inc. Data organization for logical to physical table compression
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
US11809736B2 (en) * 2021-12-21 2023-11-07 Western Digital Technologies, Inc. Storage system and method for quantifying storage fragmentation and predicting performance drop
US11809747B2 (en) 2021-12-21 2023-11-07 Western Digital Technologies, Inc. Storage system and method for optimizing write-amplification factor, endurance, and latency during a defragmentation operation
US11847343B2 (en) 2021-12-22 2023-12-19 Western Digital Technologies, Inc. Storage system and method for non-blocking coherent re-writes

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204460A (ja) * 2007-02-16 2008-09-04 Seagate Technology Llc ディスク・パーティションのほぼ瞬時のバックアップおよび復元
JP2013541743A (ja) * 2011-02-02 2013-11-14 株式会社日立製作所 ストレージシステムおよびそのデータ制御方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6766428B2 (en) * 2001-04-06 2004-07-20 Sun Microsystems, Inc. Method and apparatus for storing prior versions of modified values to facilitate reliable execution
US7363444B2 (en) 2005-01-10 2008-04-22 Hewlett-Packard Development Company, L.P. Method for taking snapshots of data
US8452929B2 (en) * 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US7516267B2 (en) * 2005-11-03 2009-04-07 Intel Corporation Recovering from a non-volatile memory failure
CN100546250C (zh) * 2006-08-07 2009-09-30 华为技术有限公司 一种集群内检查点的管理方法
US8195912B2 (en) * 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US7925925B2 (en) 2008-12-30 2011-04-12 Intel Corporation Delta checkpoints for a non-volatile memory indirection table
US8473700B2 (en) 2010-03-29 2013-06-25 International Business Machines Corporation Providing versioning in a storage device
US8935458B2 (en) 2011-01-05 2015-01-13 Intel Corporation Drive assisted system checkpointing via system restore points
US9678863B2 (en) 2012-06-12 2017-06-13 Sandisk Technologies, Llc Hybrid checkpointed memory
US10318495B2 (en) * 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
CN103049349B (zh) 2012-11-29 2016-02-24 记忆科技(深圳)有限公司 基于分层存储的快照方法及系统
CN104035729B (zh) * 2014-05-22 2017-02-15 中国科学院计算技术研究所 一种日志映射的块设备精简配置方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204460A (ja) * 2007-02-16 2008-09-04 Seagate Technology Llc ディスク・パーティションのほぼ瞬時のバックアップおよび復元
JP2013541743A (ja) * 2011-02-02 2013-11-14 株式会社日立製作所 ストレージシステムおよびそのデータ制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022040156A (ja) * 2021-01-06 2022-03-10 バイドゥ ユーエスエイ エルエルシー 仮想化環境でのチェックポイント認証による仮想マシン移行の方法
JP7331080B2 (ja) 2021-01-06 2023-08-22 バイドゥ ユーエスエイ エルエルシー 仮想化環境でのチェックポイント認証による仮想マシン移行の方法

Also Published As

Publication number Publication date
EP3274833A4 (en) 2018-11-07
KR20170129702A (ko) 2017-11-27
WO2016160217A1 (en) 2016-10-06
CN107408022B (zh) 2021-10-26
EP3274833A1 (en) 2018-01-31
CN107408022A (zh) 2017-11-28
US9671971B2 (en) 2017-06-06
US20160283160A1 (en) 2016-09-29
JP6848146B2 (ja) 2021-03-24
KR102590470B1 (ko) 2023-10-18

Similar Documents

Publication Publication Date Title
JP6848146B2 (ja) ストレージデバイスにおける論理アドレスのためのデータの前バージョンの管理
US10325108B2 (en) Method and apparatus for range based checkpoints in a storage device
EP2992439B1 (en) Selective backup of program data to non-volatile memory
US11657022B2 (en) Host and storage system for securely deleting files and operating method of the host
TWI512492B (zh) 用於橫跨平台代理者之非依電性隨機存取記憶體的存取控制之方法、裝置及系統
KR102276738B1 (ko) 저장 디바이스에서 데이터를 보호하기 위한 카운터들 및 테이블의 이용
US10331457B2 (en) Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region
US8751782B2 (en) Secure local boot using third party data store (3PDS) based ISO image
US20130275479A1 (en) Systems and methods for providing dynamic file system awareness on storage devices
US11301338B2 (en) Recovery on virtual machines with existing snapshots
US11314453B2 (en) Memory system managing map data based on risk of malware—infection of host, and operating method thereof
US10108339B2 (en) Reduction of intermingling of input and output operations in solid state drives
KR102213665B1 (ko) 인증 프로그램을 갖는 메모리 카드, 그것을 포함하는 스토리지 시스템, 및 그것의 동작 방법
US10761834B2 (en) SSD firmware download dual boot
US20240037233A1 (en) Ransomware and malicious software protection in ssd/ufs by nvme instructions log analysis based on machine-learning
US20230152987A1 (en) Storage device and operation method thereof
EP4155893A1 (en) Storage controller and storage system comprising the same
Garcés-Erice et al. Secure lazy provisioning of virtual desktops to a portable storage device
EP3314390B1 (en) Returning coherent data in response to a failure of a storage device when a single input/output request spans two storage devices
KR20230071695A (ko) 스토리지 장치 및 그것의 동작 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171013

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200129

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200811

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201207

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20201207

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20201215

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20201222

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210205

R150 Certificate of patent or registration of utility model

Ref document number: 6848146

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250