JP2010525453A - ソリッドステートドライブ最適化用リムーブオンデリート技術 - Google Patents

ソリッドステートドライブ最適化用リムーブオンデリート技術 Download PDF

Info

Publication number
JP2010525453A
JP2010525453A JP2010504149A JP2010504149A JP2010525453A JP 2010525453 A JP2010525453 A JP 2010525453A JP 2010504149 A JP2010504149 A JP 2010504149A JP 2010504149 A JP2010504149 A JP 2010504149A JP 2010525453 A JP2010525453 A JP 2010525453A
Authority
JP
Japan
Prior art keywords
ssd
invalid
data
interface
deleted
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.)
Pending
Application number
JP2010504149A
Other languages
English (en)
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010525453A publication Critical patent/JP2010525453A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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
    • 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/0643Management of files
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • 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/7209Validity control, e.g. using flags, time stamps or sequence numbers

Abstract

ソリッドステートドライブ(「SSD」)装置にストアされ、削除イベントに関連付けられたデータに対応するデータを識別し、SSDにストアされ、削除されるデータに無効の印を付けるための技術であって、SSDが、無効なデータに対する不必要な動作を回避し得る。無効なデータの情報を通信し、無効の印を付けるSSDのデータを認識するのに十分な無効なデータの情報を与えるリムーブオンデリートコマンドを提供するように作動可能なインターフェースが含まれている。
【選択図】 図1

Description

本発明は、記憶装置に関し、具体的にはソリッドステートドライブタイプの記憶装置の最適化に関する。
ソリッドステートドライブ(「SSD」)が、起動可能な大容量記憶装置としての使用に対し経済的になっている。SSDは、一般的に、否定積(「NAND」)タイプの装置を含む不揮発性フラッシュメモリー装置などのフラッシュメモリー装置を含むように製造される。したがってSSDの書き込み動作は、ディスク上の同一の物理位置にある(削除されている)無効なデータを(新しい)有効なデータで上書き可能な標準的なハードディスクドライブ(「HDD」)と異なる検討事項を有する。SSDの書き込み動作は、通常、新しいデータを同一のメモリーブロックの既存のデータと共に新しいメモリーブロックへマージするページ指向マージ動作を含む。既存のデータが無効な場合、そのようなマージ動作は、SSDの性能に不必要に影響を与え得る。更に、信頼性のためにSSDは、通常、メモリーセルの寿命の劣化を低減するために「摩耗平滑化」動作を実行する。そのような動作は、通常、データをあるブロック又はページから別のブロック又はページへ移動する。あるページ上のデータが、無効な場合、そのページに対する摩耗平滑化動作は、SSD性能に不必要に影響を与え、SSDの信頼性を潜在的に低下させ得る。更に、標準的なファイルシステムは、通常、どのデータが削除されている(無効)と見なされ、どれがそのように考えられないかを示している状態情報を維持する。しかしながら、このデータは、通常、データすべてに対応する方法によって、HDD又はSSDのような対応する記憶装置に移動され、データは、例えば1つ以上の論理ブロックアドレスとして装置上に物理的にストアされる。したがって記憶装置は、ファイルシステムと対照的に、一般に、どのデータが有効であって、どのデータが無効であるかを承知しておらず、それ故、通常、そのようなデータに対する不必要な動作を回避するための無効なデータを認識できない。
本発明の目的は、ソリッドステートドライブが、無効なデータに対する不必要な動作を回避し得るための技術を提供することである。
以下に、基本的な了解事項を読者に提供するために、簡易化した開示されている概要を示す。この概要は、開示の広範囲に及ぶ概要でなく、本発明の主要/重要なエレメントを特定することも本発明の範囲を図で表わすこともしない。唯一の目的は、後に提示される更に詳細な記載に対する前置きとして、本明細書において簡易形式で開示されているいくつかの概念を提示することである。
本例は、SSDが、無効なデータに対する不必要な動作を回避し得るように、削除イベントに関連付けられたデータに対応する、ソリッドステートドライブ(「SSD」)装置にストアされたデータを識別し、SSDにストアされた削除されているデータに無効の印を付けるための技術を提供する。無効なデータの情報を通信し、無効の印が付けられている対応するSSDのデータを識別するのに十分な、無効なデータの情報を提供するリムーブオンデリートコマンドを提供するように作動可能なインターフェースが含まれている。
結果として伴う特徴の多くが、添付の図面に関して考慮された以下の詳細説明を参照することによって、更に理解されるにつれてもっと容易に十分に理解されよう。
本記載が、添付図面に関して考慮された以下の詳細な説明から更に理解されよう。
同一の参照番号を、添付図面中の同様の部品を指定するために使用する。
従来のオペレーティングシステム及びソリッドステートドライブインターフェース並びに新規のオペレーティングシステム及びソリッドステートドライブインターフェースを示すブロック図である。 リムーブオンデリートの方法例を示すブロック図である。 本明細書に記載された技術が実装され得る計算環境の例を示すブロック図である。
添付図面に関して以下に提供されている詳細説明は、本例の説明として意図されており、本例が構成又は利用され得る唯一の形式を表すように意図されていない。本記載は、例を構成し、作動するための機能例及び/又はステップシーケンスのうち少なくともいくつかを詳細に説明する。しかしながら、同一又は同等の機能及びシーケンスが、異なる例によって達成され得る。
本例は、計算環境において実装されるように、本明細書に記載され例示されているが、記載した環境は、制限ではなく例として提供されている。当業者が十分に理解するように、本例は、様々な異なるタイプの計算環境におけるアプリケーションに適している。
図1は、従来のオペレーティングシステム(110a)及びソリッドステートドライブ(130)とのインターフェース(120a)並びに新規のオペレーティングシステム((110b))及びソリッドステートドライブ(「SSD」)(130)とのインターフェース(120b)を示すブロック図である。従来のオペレーティングシステム(110a)は、従来のインターフェース(113a)を介し従来のSSDドライバー(114a)の例に接続された従来のファイルシステム(112a)の例を含む。インターフェース(113a)の一例は、入力/出力コントロール(「IOCTL」)インターフェースである。ファイルシステム(112a)は、通常、ファイル(複数)、フォルダー(複数)、プロパティ(複数)などのようなデータの抽象化(アブストラクション:abstraction)を管理する。データは、任意のタイプのデジタル情報、実行可能命令などであり得る。これらの抽象化は、通常、物理データのアクセスへ変換され、記憶装置は、SSD(130)にデータをストアしアクセスするためのインターフェース(120a)を介し、SSD(130)と相互に作用するSSDドライバー(114a)によって構成される。インターフェース(120a)の例は、アドバンストテクノロジーアタッチメント(「ATA」)インターフェース及びスモールコンピューターシステムインターフェース(「SCSI」)などを含む。
SSD(130)の例は、従来のHDD、フロッピー(登録商標)ディスク、コンパクトディスクなどを用いた磁気又は光記憶媒体と対照的な記憶媒体として、ソリッドステート記憶装置などを使用して製造されたソリッドステート記憶装置である。これらのソリッドステート記憶装置は、フラッシュメモリー又は別の任意のタイプ又はソリッドステートメモリー、ランダムアクセスメモリー(「RAM」)などの組み合わせであり得る。そのようなSSD装置は、図3に関して記載したような起動装置であり得、プライマリー記憶装置又は大容量記憶装置であると考えられ得る。そのようなSSD装置は、複数のメモリータイプ又はクラスを含むSSD装置であり得る複合SSD装置であって、クラスそれぞれが、異なる性能特性又はアクセス速度を有する。SSD装置による機能性又は動作の本明細書における記載は、一般に、SSD装置及び/又はドライバーの例(114a)及び(114b)のような対応するSSDドライバーを参照している。
別の例において、SSD(130)は、無効として見なされ得るデータを含み得る従来のHDD、光ドライブ、ストレージエリアネットワーク(「SAN」)、テープ記憶装置及び/又は図3に関して記載した大容量記憶装置を含む別の任意形式の記憶装置であり得る。本発明は、そのような任意の記憶装置、システム、機構などに適用され得る。
無効なデータが、通常、SSD上でどのように表されるか、以下に説明している例を考えられたい。人間又はシステムなどのユーザーは、削除される必要があるファイルなどのデータのいくつかを、適切な任意のインターフェースを介して示し得る。ファイルシステムは、通常、消去されているファイルへの参照をディレクトリなどから削除することによって、そのファイルが削除されたことを示している永続データ構造を変更する。更に、ファイルシステムは、SSD上のファイルを表しているデータに無効の印を付け得る。一例において、これは、通常、ファイルの長さの後にあるロジカルブロックアドレッシング(「LBA」)を介しファイルの開始を示すファイルの位置情報をSSDに送信することを含む。削除されているデータを記載しているLBA又はデータの位置情報は、通常、SSD装置へのインターフェースを介しコマンドによって送信される。コマンド及び関連したデータの位置情報を受信すると、SSD及び/又はそのドライバーは、削除されているファイルに対応する、SSDにストアされたデータに無効の印を付け得る。従来の計算システムにおいて、ファイルシステムは、削除されているファイルを承知して得るが、SSDは、承知し得ない。通常、SSDは、有効なデータと無効なデータの間の区別をせずに、それに書き込まれ、それから読み込まれることを承知しているに過ぎない。SSD及び関連したそれらのドライバーの中には、それらにストアされたデータが、無効であることを承知することから恩恵を得る動作を実行し得るものもある。例えば、標準的なSSDの書き込み動作は、ディスク上の同一の物理位置に無効な(削除されている)データを有効な(新しい)データで上書きし得る標準的なハードディスクドライブ(「HDD」)が有する検討事項と異なる検討事項を有する。一般的なHDDと異なり、SSDの書き込み動作は、通常、新しいデータをメモリーブロック上の既存のデータと共に新しいメモリーブロックへマージすることが意図されたページ指向マージ動作を含む。既存のデータが無効な場合、そのようなマージ動作は、SSDの性能に不必要に影響を与え得る。更に、信頼性のために、SSDは、通常、メモリーセルの寿命の劣化を低減するために「摩耗平滑化」の動作を実行する。そのような動作は、通常、データをあるメモリーブロックから別のブロックなどに移動する。ページ及び/又はブロックデータが、無効な場合、そのページ/ブロックに対する摩耗平滑化動作は、SSDの性能に不必要に影響を与え、SSDの信頼性を潜在的に低下させ得る。
本明細書において使用されている無効なデータは、ファイルシステム、ドライバー、アプリケーションなどの更に高度なシステムによって削除されたか又は使用されていないデータなどであり得る、SSDの記憶場所などの記憶場所にストアされているデータであり得る。例えば、ファイルが削除されたとき、そのファイルに関連したデータは、無効なものと見なされ得る。そのような削除されているか又は無効なデータは、通常、削除も消去もされておらず、単純に無効なものとして分類され得ることに留意されたい。一例において、そのような無効なデータは、記憶装置にストアされ留まっている。別の例において、無効なデータは、「ガベージコレクション」され得るか又はそうでなければ、削除され上書きなどされ得る。無効として分類されないデータは、通常、有効なものと見なされる。一般に、ファイルシステムなどは、SSDと対照的に有効又は無効としてのデータ分類を承知している。
新規のオペレーティングシステムの例(110b)は、従来のインターフェース(113b)及び新規のインターフェース(140)を介し新規のSSDドライバーの例(114b)に接続された新規のファイルシステムの例(112b)を含む。一般に、エレメント(110b)、(112b)及び(114b)の機能性は、従来、対応しているそれらと同様に付番された「1xxa」に相当しているが、新規の機能性が、本発明のために追加される。ファイルシステムの例(112b)は、代替として、アプリケーション又はファイルシステムの機能性を具現するものと同じであり得る。
ファイルシステム(112b)は、無効なデータの情報をSSDドライバー(114b)と通信するために、新規のインターフェース(140)を利用する。そのような無効なデータの情報は、ファイルの位置及びサイズ情報を含み得る。インターフェース(140)は、SSD(130)にストアされたどのデータが無効であるか、その無効なデータの情報を介しSSDドライバー(114b)にファイルシステム(112b)が正確に指示可能にする。一例において、インターフェース(140)は、新規のIOCTLコマンドである。別の例において、インターフェース(140)は、既存のIOCTLコマンドの拡張である。インターフェース(140)は、無効なデータの情報を通信するのに十分な、ファイルシステムとSSDドライバーを接続するために適切な任意の形式及び/又は構造に従い得る。更に、インターフェース(140)は、また、SSD(130)にストアされた有効なデータが無効の印を付けられないように、SSD(130)に書き込まれている有効なデータが有効であることを、SSDドライバー(114b)にファイルシステム(112b)が指示することも可能にする。
インターフェース(120b)は、一例において、無効なデータの情報を通信するための更なる機能性を有するATAインターフェースに従う。別の例において、インターフェース(120b)は、無効なデータの情報を通信するための更なる機能性を有するSCSIインターフェースに従う。インターフェース(120b)は、無効なデータの情報を通信するのに十分な、SSDドライバーとSSD装置を接続するために適する任意の形式及び/又は構造に従い得る。
無効なデータの情報が与えられると、SSDドライバー(114b)は、通常、無効なデータの情報に従って適切なデータ、ブロック、ページなどに、無効の印を付けるために、インターフェース(120b)を介しSSD(130)と相互に作用する。したがって、書き込みマージ動作、摩耗平滑化動作などが、無効なデータに対する不必要な動作をせずに、実行され得る。更に、無効なデータを含んでいるものとしての印を付けられる最適化動作が、SSDブロック、ページなどにおいて実行され得る。
図2は、リムーブオンデリートの方法例(200)を示すブロック図である。そのような方法は他には「リムーブオンデリート」として知られていて、削除されたSSDのデータに、無効の印を付けるために使用され得る。無効か又は削除されたデータは、かくして、有効なデータとしてはSSD装置による考慮から除外される。これにより、SSD装置は、そのようなデータを保持又は維持するためのいかなる動作も実行しないことになる。
ブロック(210)は、SSD装置にストアされたデータに影響を与える削除イベントを示す。そのような削除イベントの一例が、ファイルシステムによって実行されるファイルの削除動作であって、削除されるファイルは、現在、SSD装置にストアされている。別の例においては、任意のシステム又は機構が、SSD装置にストアされたデータに影響を与える削除動作を実行し得る。通常、SSD装置に対応するSSDドライバーが、削除イベントを受信及び/又は検出する。方法(200)は、通常、ブロック(220)に続く。
ブロック(220)は、SSD装置にストアされたどのデータが、削除されるデータに対応するか識別することを示す。一例において、これは、削除されるファイルデータをSSDにストアされた対応するデータにマッピングすることを含む。そのようなマッピングは、SSDにストアされたどのデータが無効の印が付けられているか識別する、無効データの情報をもたらす。そのようなマッピングは、削除動作を実行するシステムによって実行され得る。無効データの情報は、削除されるファイルに対応し、無効の印が付けられる、SSDにストアされた正確なデータを識別する。そのようなデータは、ページ、ブロックなどとしてSSDにストアされ得る。SSDにストアされた削除動作に対応する無効データが、一旦識別されると、方法(200)は、通常、ブロック(230)に続く。
ブロック(230)は、リムーブオンデリートコマンドを示す。このコマンドは、通常、無効なデータの情報を含んでいて、示されたデータに無効の印を付けるように、SSD装置及び/又はそのドライバーに命令する。一例において、そのようなコマンドは、ファイルシステムなどの削除動作を実行するシステムによって発行される。リムーブオンデリートコマンドが、一旦発行されると、方法(200)は、通常、ブロック(240)に続く。
ブロック(240)は、削除されるデータに無効の印を付けることを示す。そのような印は、SSD装置に対し無効データを識別するのに十分な任意の形式を取り得る。そのような印を付けることは、SSDがそのデータをどのように構造化するかに従って、ページ及び/又はブロックなどに無効の印を付けることを含み得る。あるいはまた、そのような印を付けることは、無効な様々なデータを無効データテーブルなどへ移動することを含み得る。削除されるデータが、一旦無効の印を付けられると、SSD装置は、無効データを保持、維持するなどといったいかなる動作も実行しない。データが、ファイルシステムなどの更に高度なシステムによって削除されていると見なされることと、対応するデータが、SSDが対応するデータを無効として認識し得るような方法によって、今、SSD上で無効の印を付けられることに留意されたい。例えば、ファイルシステムが、ファイル「foo.bar」を削除している場合、ファイルfoo.barを含むSSDにストアされたデータすべてが、無効の印を付けられる。用語である情報は、データも参照し得る。削除されるデータが、一旦、無効の印を付けられると、方法(200)が、通常、完了する。
図3は、本明細書に記載された技術が実施され得る計算環境の例(300)を示すブロック図である。適切な計算環境が、多くの汎用又は専用のシステムを用いて実装され得る。よく知られているシステムの例は、携帯電話、携帯情報端末(「PDA」)、パーソナルコンピューター(「PC」)、携帯用又はラップトップ装置、マイクロプロセッサーベースシステム、マルチプロセッサーシステム、サーバー、ワークステーション、家電装置、セットトップボックスなどを含むが、これらを限定しない。
計算環境(300)は、通常、周辺装置(302)、(303)、(304)などのような様々なコンポーネントに接続された計算装置形式の汎用計算システム(301)を含む。システム(300)は、1つ以上の入力/出力(「I/O」)インターフェース(312)を介し音声認識、タッチパッド、ボタン、キーボード及び/又はマウス又はトラックボールのようなポインティングデバイスを含む入力装置(303)などの他の様々なコンポーネントに接続し得る。計算装置(301)のコンポーネントは、(中央処理装置(「CPU」)、グラフィックス処理装置(「GPU」)、マイクロプロセッサー(「μP」)などを含む)1つ以上のプロセッサー(307)、システムメモリー(309)及び通常、様々なコンポーネントに接続しているシステムバス(308)を含み得る。プロセッサー(307)は、通常、計算装置(301)の動作を制御し、ネットワーク接続(314)などのような様々な通信接続を介し(図示されていない)他の電子及び/又は計算装置、システム又は環境と通信するための様々な計算機実行可能命令を処理又は実行する。システムバス(308)は、メモリーバス又はメモリーコントローラー、周辺バス、シリアルバス、アクセラレイティッドグラフィックスポート、プロセッサー又は様々な任意のバスアーキテクチャを使用するローカルバスなどを含むいくつかのタイプの任意数のバスアーキテクチャを表す。
システムメモリー(309)は、ランダムアクセスメモリー(「RAM」)などの揮発性メモリー及び/又は読み出し専用メモリー(「ROM」)又はフラッシュメモリー(「FLASH」)などの不揮発性メモリー形式の計算機可読媒体を含み得る。基本入力/出力システム(「BIOS」)は、不揮発性メモリーなどにストアされ得る。システムメモリー(309)は、通常、1つ以上のプロセッサー(307)によって直接にアクセス可能か及び/又は現在、その上で操作されるデータ、計算機実行可能命令及び/又は計算機実行可能命令を含むプログラムモジュールをストアする。
大容量記憶装置(304)及び(310)が、システムバス及び/又はストレージバスなどの接続を介し、計算装置(301)に接続され得るか又は計算装置(301)に組み込まれ得る。そのような大容量記憶装置(304)及び(310)は、不揮発性RAM、取り外し可能な不揮発性磁気ディスク(例えば「フロッピー(登録商標)ディスク」)(305)から読み出されるか及び/又はそれに書き込まれる磁気ディスクドライブ及び/又はCD−ROM、DVD ROM(306)などの不揮発性光ディスクから読み出されるか及び/又はそれに書き込まれる光ディスクドライブを含み得る。あるいはまた、ハードディスク(310)などの大容量記憶装置は、取り外し不可能記憶媒体を含み得る。他の大容量記憶装置は、メモリーカード、メモリースティック、テープ記憶装置などを含み得る。
多くの計算機プログラム、ファイル、データ構造などが、オペレーティングシステム、アプリケーションプログラム、データファイル、ディレクトリ構造、計算機実行可能命令などを制限ではなく例として含む大容量記憶装置(310)、他の記憶装置(304)、(305)、(306)及び(通常、有効スペースによって制限されている)システムメモリー(309)にストアされ得る。
表示装置(302)などの出力コンポーネント又は装置は、通常、ディスプレイアダプター(311)などのインターフェースを介し計算装置(301)に接続され得る。出力装置(302)は、液晶ディスプレイ(「LCD」)であり得る。他の出力装置の例は、プリンター、音響出力、音声出力、ブラウン管(「CRT」)ディスプレイ、触覚装置又は他の感覚出力機構などを含み得る。出力装置は、計算装置(301)が、人間オペレーター又は他のマシン、システム、計算環境などと相互に作用可能にする。ユーザーは、タッチパッド、ボタン、キーボード、マウス、ジョイスティック、ゲームパッド、データポートなどのような異なる様々なI/O装置(303)を介し計算環境(300)とインターフェースし得る。これら及び他のI/O装置は、システムバス(308)と接続され得るI/Oインターフェース(312)を介しプロセッサー(307)に接続され得るか及び/又はパラレルポート、ゲームポート、ユニバーサルシリアルバス(「USB」)、ファイヤーワイヤー、赤外線(「IR」)ポートなどのような他のインターフェース及びバス構造によって接続され得る。
計算装置(301)は、1つ以上の通信セルラーネットワーク、無線ネットワーク、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、ストレージエリアネットワーク(「SAN」)、インターネット、無線通信リンク、光リンクなどを介し、1つ以上のリモート計算装置と通信接続を介しネットワーク接続された環境において作動し得る。計算装置(301)は、ネットワークアダプター(313)などを介するか又はあるいはモデム、デジタル加入者回線(「DSL」)リンク、総合デジタル通信網(「ISDN」)リンク、インターネットリンク、無線リンクなどを介しネットワークに接続され得る。
ネットワーク接続などの通信接続(314)は、通常、ネットワークなどの通信媒体への接続を提供する。通信媒体は、通常、計算機可読及び計算機実行可能命令、データ構造、ファイル、プログラムモジュール及び搬送波又は他の搬送機構などの変調データ信号を使用する他のデータを提供する。用語「変調データ信号」は、通常、信号内の情報を符号化するような方法で設定又は変更されたその1つ以上の特性セットを有する信号を意味する。制限ではなく例として、通信媒体は、有線ネットワーク又はダイレクト有線接続などの有線媒体及び音響、無線通信周波数、赤外線又は他の無線通信機構などの無線媒体を含み得る。
バッテリー又は電力供給装置などの電源(390)は、通常、計算環境(300)の一部又はすべてに電力を提供する。モバイル装置又は携帯装置などの計算環境(300)の場合、電源(390)は、バッテリーであり得る。あるいはまた、計算環境(300)がデスクトップコンピューター又はサーバーなどの場合、電源(390)は、壁コンセントなどを介し交流(「AC」)電源に接続するように設計された電力供給装置であり得る。
モバイル装置の中には、図3に関し記載したコンポーネント中の多くを含み得ないものもある。例えば、電子バッジは、単純な処理装置(307)などを伴う電線コイルから成り得、コイルは、カードリーダー装置などに近接したとき、電源(390)として動作するように構成される。そのようなコイルは、また、処理装置(307)などに接続されるアンテナとして機能するように構成され得、コイルアンテナは、電子バッジとカードリーダー装置の間の通信の形式を提供し得る。そのような通信は、ネットワーク接続を含み得ないが、代替として遠隔測定法、ポイントツーポイント、RF、IR、音響又は他の手段を介する汎用又は専用の通信であり得る。電子カードは、図3に関して記載したディスプレイ(302)、I/O装置(303)又は他のコンポーネントの多くを含み得ない。図3に関して制限ではなく例として記載したコンポーネントの多くを含み得ない他のモバイル装置は、電子ブレスレット、電子タグ、埋め込み型の装置などを含む。
当業者は、計算機可読及び計算機実行可能命令及びデータを提供するために利用される記憶装置が、ネットワーク上に分散され得ることに気づくだろう。例えば、リモートコンピューター又は記憶装置は、ソフトウェアアプリケーション及びデータの形式で計算機可読及び計算機実行可能命令をストアし得る。ローカルコンピューターは、ネットワークを介しリモートコンピューター又は記憶装置にアクセスしてソフトウェアアプリケーション又はデータの一部若しくはすべてをダウンロードし得、任意の計算機実行可能命令を実行し得る。あるいはまた、ローカルコンピューターは、必要に応じてソフトウェア又はデータの部品をダウンロードし得るか又はローカルコンピューターにある命令のいくつか及びリモートコンピューター及び/又は装置にある命令のいくつかを実行することによって、ソフトウェアを分散して処理し得る。
当業者は、従来の技法を利用することによって、計算機実行可能なソフトウェアの命令のすべて又は一部が、デジタル信号処理プロセッサー(「DSP」)、プログラマブルロジックアレイ(「PLA」)、離散回路などのような専用電子回路によって実行され得ることにも気づくだろう。用語「電子装置」は、任意のソフトウェア、ファームウェアなどを含む計算装置又は家電装置又はソフトウェア、ファームウェアなどを含まない電子装置又は回路を含み得る。
用語「ファームウェア」は、通常、ROMなどのような電子装置に維持される実行可能命令、コード、データ、アプリケーション、ソフトウェア、プログラム又は同等なものを参照している。用語「ソフトウェア」は、一般に、任意形式の計算機可読媒体の中又はその上に維持される実行可能命令、コード、データ、ドライバー、アプリケーション、プログラム又は同等なものを参照している。用語「計算機可読媒体」は、通常、システムメモリー、記憶装置及びそれらに関連した媒体などを参照している。
本発明の原理及び差し控えている例が適用され得る可能な実施形態の多くを考慮し、本明細書に記載された例が、単に例示的であることを意味していて、本発明の範囲を限定するものとして取らえるべきでないことを認められよう。したがって、本明細書に記載されたような発明は、以下の請求項及びその任意の同等物の範囲内に収まり得るような実施形態すべてを想定している。
110a 従来のオペレーティングシステム
110b 新規のオペレーティングシステム
112a 従来のファイルシステム
112b 新規のファイルシステム
113a 従来のインターフェース
113b 新規のインターフェース
114a 従来のSSDドライバー
114b 新規のSSDドライバー
120a 従来のソリッドステートドライブインターフェース
120b 新規のソリッドステートドライブインターフェース
130 ソリッドステートドライブ
140 新規のインターフェース
300 計算環境
301 計算装置
302 周辺装置
303 入力/出力装置
304 記憶装置
305 記憶装置
306 記憶装置
307 処理ユニット
308 システムバス
309 システムメモリー
310 大容量記憶装置
311 ディスプレイアダプター
312 入出力インターフェース
313 ネットワークアダプター
314 通信接続
390 電源

Claims (20)

  1. ソリッドステートドライブ(「SSD」)にストアされたデータに無効の印を付けるシステムであって、
    第1のインターフェースを介しファイルシステムに接続されたSSDドライバーであって、前記第1のインターフェースが、無効なデータの情報を前記ファイルシステムから前記SSDドライバーに通信するように動作可能なコマンドインターフェースを含むものと、前記無効なデータの情報が、前記ファイルシステムによって削除される情報に対応する、前記SSDにストアされたデータを識別するものと、
    前記SSDドライバーを前記SSDに接続して、前記SSDが、前記ファイルシステムによって削除される前記情報に対応する、前記SSDにストアされた前記データに無効の印を付けさせるように作動可能な、第2インターフェースと、を含むシステム。
  2. 前記コマンドインターフェースが、新規の入出力制御(「IOCTL」)コマンドとして実装されることを特徴とする請求項1記載のシステム。
  3. 前記コマンドインターフェースが、入出力制御(「IOCTL」)コマンドに対する拡張として実装されることを特徴とする請求項1記載のシステム。
  4. 前記無効なデータの情報が、ロジカルブロックアドレッシング(「LBA」)及び長さを含むことを特徴とする請求項1記載のシステム。
  5. 前記SSD上にストアされたデータに前記無効の印を付けることが、無効なデータに対する不必要な動作を、前記SSDが回避可能にすることを特徴とする請求項1記載のシステム。
  6. 無効なデータに対する不必要な動作を前記SSDが回避可能にすることが更に、前記SSDドライバー動作を含むことを特徴とする請求項5記載のシステム。
  7. 前記第2のインターフェースが、アドバンストテクノロジーアタッチメント(「ATA」)インターフェースであることを特徴とする請求項1記載のシステム。
  8. 前記第2のインターフェースが、スモールコンピューターシステムインターフェース(「SCSI」)であることを特徴とする請求項1記載のシステム。
  9. 前記ファイルシステムによって削除される前記情報が、ファイル又はその一部であることを特徴とする請求項1記載のシステム。
  10. 前記ファイルシステムによって削除されていない情報に対応する、前記SSDにストアされた有効なデータが、前記SSDにおいて無効なデータの印が付けられないことを特徴とする請求項1のシステム。
  11. ソリッドステートドライブ(「SSD」)にストアされたデータに無効の印を付ける方法であって、
    削除される情報を示すイベントを受信するステップと、
    前記削除される情報に対応する、前記SSDにストアされたデータを識別するステップと、
    前記識別されたデータに無効の印を付けるように前記SSDに命令するステップと、を含む方法。
  12. 前記イベントが、ファイルシステムから受信されることを特徴とする請求項11記載の方法。
  13. 前記イベントが、入出力制御(「IOCTL」)コマンドを介して受信されることを特徴とする請求項11記載の方法。
  14. 前記命令ステップが、アドバンストテクノロジーアタッチメント(「ATA」)インターフェースを介して実行されることを特徴とする請求項11記載の方法。
  15. 前記命令ステップが、スモールコンピューターシステムインターフェース(「SCSI」)を介して実行されることを特徴とする請求項11記載の方法。
  16. 前記無効の印が付けられている識別されたデータが、無効なデータに対する不必要な動作を、前記SSDが回避可能にすることを特徴とする請求項11記載の方法。
  17. 前記削除される情報が、ファイルであることを特徴とする請求項11記載の方法。
  18. 前記識別が、ロジカルブロックアドレッシング(「LBA」)及び長さを含むことを特徴とする請求項11記載の方法。
  19. ソリッドステートドライブ(「SSD」)にストアされたデータに無効の印を付ける方法を具現する計算機可読命令を含む計算機可読媒体であって、前記方法が、
    削除される情報を示すイベントを受信するステップと、
    削除される前記情報に対応する前記SSDにストアされた前記データを識別するステップと、
    前記識別されたデータに無効の印を付けるように前記SSDに命令するステップと、を含む計算機可読媒体。
  20. 前記削除されている情報が、ファイルであることを特徴とする請求項19記載の計算機可読媒体。
JP2010504149A 2007-04-19 2008-04-01 ソリッドステートドライブ最適化用リムーブオンデリート技術 Pending JP2010525453A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US91272807P 2007-04-19 2007-04-19
US12/030,193 US9207876B2 (en) 2007-04-19 2008-02-12 Remove-on-delete technologies for solid state drive optimization
PCT/US2008/059048 WO2008130799A1 (en) 2007-04-19 2008-04-01 Remove-on-delete technologies for solid state drive optimization

Publications (1)

Publication Number Publication Date
JP2010525453A true JP2010525453A (ja) 2010-07-22

Family

ID=39873400

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010504149A Pending JP2010525453A (ja) 2007-04-19 2008-04-01 ソリッドステートドライブ最適化用リムーブオンデリート技術

Country Status (9)

Country Link
US (4) US9207876B2 (ja)
EP (1) EP2135167B1 (ja)
JP (1) JP2010525453A (ja)
KR (1) KR20100015506A (ja)
CN (2) CN106293517B (ja)
BR (1) BRPI0809287B1 (ja)
RU (1) RU2456664C2 (ja)
TW (1) TWI514134B (ja)
WO (1) WO2008130799A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8626992B2 (en) 2010-11-30 2014-01-07 Kabushiki Kaisha Toshiba Storage device with identification information

Families Citing this family (228)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
WO2008070802A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for an in-server storage area network
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8255641B2 (en) * 2008-11-18 2012-08-28 Microsoft Corporation Modifying delete notifications in a storage stack
US8261030B2 (en) * 2008-11-18 2012-09-04 Microsoft Corporation Using delete notifications to free related storage resources
US8156300B2 (en) * 2008-11-18 2012-04-10 Microsoft Corporation Delete notifications for an entire storage volume
US20100185806A1 (en) * 2009-01-16 2010-07-22 Arvind Pruthi Caching systems and methods using a solid state disk
US20100185843A1 (en) * 2009-01-20 2010-07-22 Microsoft Corporation Hardware encrypting storage device with physically separable key storage device
MX2011010822A (es) 2009-04-21 2011-10-28 Internat Bussines Machines Corp Aparato y metodo para controlar un dispositivo de disco de estado solido (ssd).
US8402069B2 (en) * 2009-05-04 2013-03-19 Microsoft Corporation Use of delete notifications by file systems and applications to release storage space
US9881039B2 (en) * 2009-05-26 2018-01-30 International Business Machines Corporation Rebalancing operation using a solid state memory device
US9330282B2 (en) * 2009-06-10 2016-05-03 Microsoft Technology Licensing, Llc Instruction cards for storage devices
US8321956B2 (en) * 2009-06-17 2012-11-27 Microsoft Corporation Remote access control of storage devices
US8478799B2 (en) 2009-06-26 2013-07-02 Simplivity Corporation Namespace file system accessing an object store
JP5999645B2 (ja) 2009-09-08 2016-10-05 ロンギチュード エンタープライズ フラッシュ エスエイアールエル ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
CN102597910B (zh) 2009-09-09 2015-03-25 弗森-艾奥公司 存储设备中用于功率减小管理的装置、系统及方法
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
WO2011031903A2 (en) 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
JP2011090496A (ja) * 2009-10-22 2011-05-06 Hitachi Ltd 半導体記憶装置および制御方法
US8316176B1 (en) 2010-02-17 2012-11-20 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification
US8638010B2 (en) * 2010-02-17 2014-01-28 Integrated Device Technology, Inc. Systems, devices, and methods for providing backup power to a load
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US8521972B1 (en) 2010-06-30 2013-08-27 Western Digital Technologies, Inc. System and method for optimizing garbage collection in data storage
EP2598996B1 (en) 2010-07-28 2019-07-10 SanDisk Technologies LLC Apparatus, system, and method for conditional and atomic storage operations
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US8661189B2 (en) * 2010-08-31 2014-02-25 Apple Inc. Systems and methods for trimming logical block addresses corresponding to a data structure residing in non-volatile memory
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
KR101893897B1 (ko) * 2010-10-29 2018-08-31 삼성전자주식회사 메모리 시스템 및 사용자 장치 그리고 그것의 데이터 관리 방법
US11232022B2 (en) * 2010-10-29 2022-01-25 Samsung Electronics Co., Ltd. Memory system, data storage device, user device and data management method thereof having a data management information matching determination
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
CN103262054B (zh) 2010-12-13 2015-11-25 桑迪士克科技股份有限公司 用于自动提交存储器的装置、系统和方法
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US20120239860A1 (en) 2010-12-17 2012-09-20 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
GB2489405B (en) * 2011-03-22 2018-03-07 Advanced Risc Mach Ltd Encrypting and storing confidential data
JP5405513B2 (ja) 2011-03-22 2014-02-05 株式会社東芝 メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム
US9158670B1 (en) 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
US9189392B1 (en) 2011-06-30 2015-11-17 Western Digital Technologies, Inc. Opportunistic defragmentation during garbage collection
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8819375B1 (en) 2011-11-30 2014-08-26 Western Digital Technologies, Inc. Method for selective defragmentation in a data storage device
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US8949512B2 (en) 2012-02-17 2015-02-03 Apple Inc. Trim token journaling
JP5659178B2 (ja) 2012-03-16 2015-01-28 株式会社東芝 不揮発性記憶装置及び不揮発性メモリの制御方法
US9774676B2 (en) 2012-05-21 2017-09-26 Google Inc. Storing and moving data in a distributed storage system
US9747310B2 (en) 2012-06-04 2017-08-29 Google Inc. Systems and methods of increasing database access concurrency using granular timestamps
US9230000B1 (en) 2012-06-04 2016-01-05 Google Inc. Pipelining Paxos state machines
US9659038B2 (en) 2012-06-04 2017-05-23 Google Inc. Efficient snapshot read of a database in a distributed storage system
US8788778B1 (en) 2012-06-04 2014-07-22 Western Digital Technologies, Inc. Garbage collection based on the inactivity level of stored data
US9195611B2 (en) 2012-06-04 2015-11-24 Google Inc. Efficiently updating and deleting data in a data storage system
US9298576B2 (en) 2012-06-04 2016-03-29 Google Inc. Collecting processor usage statistics
US9449006B2 (en) * 2012-06-04 2016-09-20 Google Inc. Method and system for deleting obsolete files from a file system
JP5586718B2 (ja) 2012-06-19 2014-09-10 株式会社東芝 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US10346095B2 (en) 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US8984267B2 (en) 2012-09-30 2015-03-17 Apple Inc. Pinning boot data for faster boot
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US9032264B2 (en) 2013-03-21 2015-05-12 Kabushiki Kaisha Toshiba Test method for nonvolatile memory
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US9304685B2 (en) 2013-09-10 2016-04-05 Kabushiki Kaisha Toshiba Storage array system and non-transitory recording medium storing control program
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
KR20170020324A (ko) 2014-04-23 2017-02-22 인스콘스 데이터 테크놀로지, 엘엘씨. 보안 소거 동작을 완료하기 위한 방법
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9747229B1 (en) * 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
CN104731839B (zh) * 2014-10-08 2018-04-27 记忆科技(深圳)有限公司 一种ssd的前端数据管理加速的方法及一种ssd设备
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US9880780B2 (en) * 2015-11-30 2018-01-30 Samsung Electronics Co., Ltd. Enhanced multi-stream operations
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10235079B2 (en) 2016-02-03 2019-03-19 Toshiba Memory Corporation Cooperative physical defragmentation by a file system and a storage device
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US10452532B2 (en) 2017-01-12 2019-10-22 Micron Technology, Inc. Directed sanitization of memory
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
CN108664208B (zh) * 2017-03-27 2022-02-15 珠海极海半导体有限公司 基于flash存储器的文件追加写操作方法及装置
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
KR102271502B1 (ko) 2017-10-25 2021-07-01 삼성전자주식회사 메모리 장치 및 그 제어 방법
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
FR3077892B1 (fr) * 2018-02-15 2023-12-22 Idemia Système et procédé d'enregistrement d'une transaction associée à une mémoire non volatile orientée page
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
CN108920386B (zh) * 2018-07-20 2020-06-26 中兴通讯股份有限公司 面向非易失性内存的磨损均衡及访问方法、设备和存储介质
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
CN110780812B (zh) * 2019-09-27 2021-08-24 苏州浪潮智能科技有限公司 一种硬盘数据置无效方法与装置
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
WO2021134431A1 (en) 2019-12-31 2021-07-08 Micron Technology, Inc. Data removal marking in memory device
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
JP2006216036A (ja) * 2005-02-04 2006-08-17 Samsung Electronics Co Ltd フラッシュメモリを含んだデータ貯蔵装置及びそれのマージ方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193184A (en) * 1990-06-18 1993-03-09 Storage Technology Corporation Deleted data file space release system for a dynamically mapped virtual data storage subsystem
US5740395A (en) * 1992-10-30 1998-04-14 Intel Corporation Method and apparatus for cleaning up a solid state memory disk storing floating sector data
US5337275A (en) * 1992-10-30 1994-08-09 Intel Corporation Method for releasing space in flash EEPROM memory array to allow the storage of compressed data
US5459850A (en) * 1993-02-19 1995-10-17 Conner Peripherals, Inc. Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5682497A (en) * 1993-09-28 1997-10-28 Intel Corporation Managing file structures for a flash memory file system in a computer
US5535399A (en) * 1993-09-30 1996-07-09 Quantum Corporation Solid state disk drive unit having on-board backup non-volatile memory
US5553261A (en) * 1994-04-01 1996-09-03 Intel Corporation Method of performing clean-up of a solid state disk while executing a read command
US5867641A (en) 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup system and method
US5860124A (en) * 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
KR100330164B1 (ko) * 1999-04-27 2002-03-28 윤종용 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법
US7660941B2 (en) * 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
KR100365725B1 (ko) * 2000-12-27 2002-12-26 한국전자통신연구원 플래시 메모리를 이용한 파일 시스템에서 등급별 지움정책 및 오류 복구 방법
CN1162782C (zh) * 2001-08-03 2004-08-18 华为技术有限公司 快速存储器文件的处理方法
JP4149167B2 (ja) 2002-01-11 2008-09-10 パイオニア株式会社 情報記録装置及び方法、情報再生装置及び方法、情報記録用プログラム及び情報再生用プログラム、記録媒体並びに情報記録媒体
US7093101B2 (en) * 2002-11-21 2006-08-15 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
US7526598B2 (en) * 2003-03-03 2009-04-28 Sandisk Il, Ltd. Efficient flash memory device driver
RU2280273C2 (ru) * 2003-07-16 2006-07-20 Открытое акционерное общество "Научно-производственное объединение "Прибор" Способ структурирования и записи цифровой информации и устройство для его осуществления
WO2005089339A2 (en) 2004-03-12 2005-09-29 Netcell Corporation Disk controller methods and apparatus with improved striping redundancy operations and interfaces
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7246195B2 (en) * 2004-12-30 2007-07-17 Intel Corporation Data storage management for flash memory devices
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US9104315B2 (en) * 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US7724693B2 (en) * 2005-07-28 2010-05-25 Qnx Software Systems (Wavemakers), Inc. Network dependent signal processing
KR100739722B1 (ko) * 2005-08-20 2007-07-13 삼성전자주식회사 플래시 메모리 관리 방법 및 플래시 메모리 시스템
US8307148B2 (en) * 2006-06-23 2012-11-06 Microsoft Corporation Flash management techniques
KR100771519B1 (ko) * 2006-10-23 2007-10-30 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
US8572310B2 (en) * 2007-11-06 2013-10-29 Samsung Electronics Co., Ltd. Invalidating storage area of non-volatile storage medium based on metadata

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
JP2006216036A (ja) * 2005-02-04 2006-08-17 Samsung Electronics Co Ltd フラッシュメモリを含んだデータ貯蔵装置及びそれのマージ方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8626992B2 (en) 2010-11-30 2014-01-07 Kabushiki Kaisha Toshiba Storage device with identification information

Also Published As

Publication number Publication date
US20080263305A1 (en) 2008-10-23
BRPI0809287B1 (pt) 2019-11-05
US20190146673A1 (en) 2019-05-16
RU2456664C2 (ru) 2012-07-20
US10156988B2 (en) 2018-12-18
BRPI0809287A2 (pt) 2014-10-14
RU2009138348A (ru) 2011-04-27
TWI514134B (zh) 2015-12-21
EP2135167A4 (en) 2012-06-20
KR20100015506A (ko) 2010-02-12
WO2008130799A1 (en) 2008-10-30
CN106293517A (zh) 2017-01-04
US10976928B2 (en) 2021-04-13
US9207876B2 (en) 2015-12-08
TW200900925A (en) 2009-01-01
CN106293517B (zh) 2019-09-20
EP2135167B1 (en) 2018-08-22
CN101663652A (zh) 2010-03-03
US20170336977A1 (en) 2017-11-23
EP2135167A1 (en) 2009-12-23
US9696907B2 (en) 2017-07-04
US20160162194A1 (en) 2016-06-09

Similar Documents

Publication Publication Date Title
US10976928B2 (en) Remove-on-delete technologies for solid state drive optimization
US10564859B2 (en) Composite solid state drive identification and optimization technologies
JP6253614B2 (ja) 格納デバイスの仮想化
US9928167B2 (en) Information processing system and nonvolatile storage unit
US9417794B2 (en) Including performance-related hints in requests to composite memory
JP5636034B2 (ja) データ利用についてのマウント時間の調停
US8949553B2 (en) System and method for retention of historical data in storage resources
US11899945B2 (en) Method and apparatus for performing communications specification version control of memory device in predetermined communications architecture with aid of compatibility management, and associated computer-readable medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121031

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130130

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130307

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130329

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130426

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130625