CN106293517A - 用于固态驱动器优化的删除时移除技术 - Google Patents

用于固态驱动器优化的删除时移除技术 Download PDF

Info

Publication number
CN106293517A
CN106293517A CN201610605653.1A CN201610605653A CN106293517A CN 106293517 A CN106293517 A CN 106293517A CN 201610605653 A CN201610605653 A CN 201610605653A CN 106293517 A CN106293517 A CN 106293517A
Authority
CN
China
Prior art keywords
ssd
invalid
file system
data
remove
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
CN201610605653.1A
Other languages
English (en)
Other versions
CN106293517B (zh
Inventor
F·J·舒
N·S·奥布
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 Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106293517A publication Critical patent/CN106293517A/zh
Application granted granted Critical
Publication of CN106293517B publication Critical patent/CN106293517B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0604Improving or facilitating administration, e.g. storage management
    • 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/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
    • 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

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)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

揭示了用于固态驱动器优化的删除时移除技术。用于标识对应于与删除事件相关联的数据的、存储在固态驱动器(“SSD”)上的数据以及用于将存储在该SSD上的已删除数据标记为无效以使该SSD可以避免对该无效数据的不必要的操作的技术。所包括的有可用于传递无效数据信息并提供删除时移除命令的接口,该删除时移除命令提供足以标识要被标记为无效的SSD数据的无效数据信息。

Description

用于固态驱动器优化的删除时移除技术
本发明专利申请是国际申请号为PCT/US2008/059048,国际申请日为2008年4月1日,进入中国国家阶段的申请号为200880012571.X,名称为“用于固态驱动器优化的删除时移除技术”的发明专利申请的分案申请。
背景
固态驱动器(“SSD”)在用作可引导大容量存储设备方面正变得经济。SSD一般被制造成包括闪存设备,如包括与非(“NAND”)型设备的非易失性闪存设备。因此,SSD写操作具有与典型的硬盘驱动器(“HDD”)所不同的考虑,其中HDD可在盘上的同一物理位置处用有效(新)数据盖写无效(已删除)数据。SSD写操作通常包括面向页的合并操作,以便将新数据与同一存储块的现有数据合并到新存储块中。如果现有数据是无效的,则这样的合并操作可能不必要地影响SSD性能。另外,出于可靠性的目的,SSD通常执行“磨损均匀化”操作以减少存储单元寿命降级。这样的操作通常将数据从一个块或页移动到另一个块或页。如果一个页上的数据是无效的,则对于该页的磨损均匀化操作可能不必要地影响SSD性能,并可能降低SSD可靠性。此外,典型的文件系统通常维护指示哪些数据被认为是已删除(无效)以及哪些数据不被认为是已删除的状态信息。但该数据通常不以对应于所有数据并且数据例如作为一个或多个逻辑块地址来物理地存储在设备上的方式迁移到对应的存储设备,如HDD或SSD。因此,与文件系统不同,存储设备通常不知道什么数据是有效的以及什么数据是无效的,并且因此通常不能够识别无效数据以避免对这些数据的不必要的操作。
概述
下面提供本发明的简要概述以便向读者提供基本的理解。本概述不是本发明的详尽概观,并且既不标识本发明的关键/决定性要素也不描绘本发明的范围。其唯一目的是以简化形式提供在此公开一些概念作为稍后提供的更详细描述的序言。
本发明的各示例提供用于标识对应于与删除事件相关联的数据的、存储在固态驱动器(“SSD”)上的数据以及用于将存储在该SSD上的已删除数据标记为无效以使该SSD可以避免对该无效数据的不必要的操作的技术。所包括的有可用于传递无效数据信息并提供删除时移除(remove-on-delete)命令的接口,该命令提供足以标识要被标记为无效的对应的SSD数据的无效数据信息。
许多附带特征将随着参考下面的详细描述并结合附图进行理解而得到更好的认识。
附图描述
结合附图考虑以下详细描述,将更好地理解本说明书,在附图中:
图1是示出常规操作系统和到固态驱动器的接口以及新操作系统和到该固态存储器的接口的框图。
图2是示出示例删除时移除方法的框图。
图3是示出在其中可以实现此处所描述的技术的示例计算环境的框图。
附图中使用相同的附图标记来指代相同的部分。
详细描述
下面结合附图所提供的详细描述旨在作为对本发明各示例的描述,而非表示用于构造或利用本发明各示例的唯一形式。本说明书阐明各示例的功能和/或用于构造和操作各示例的步骤序列的至少某一些。然而,相同或等价的功能与序列可由不同的示例来实现。
虽然在本文中将本发明的示例描述并示出为在计算环境中实现,但是所描述的系统只是作为示例而非限制来提供。本领域的技术人员将理解,本发明的各示例适于在各种不同类型的计算环境中应用。
图1是示出常规操作系统110a和到固态驱动器130的接口120a以及新操作系统110b和到该固态存储器(“SSD”)130的接口120b的框图。常规操作系统110a包括经由常规接口113a耦合到示例常规SSD驱动程序114a的示例常规文件系统112a。接口113a的一个示例是输入/输出控制(“IOCTL”)接口。文件系统112a通常管理诸如文件、文件夹、属性等数据的抽象。数据可以是任何类型的数字信息、可执行指令等。这些抽象通常被SSD驱动程序114a转换成物理数据访问和存储构造,SSD驱动程序114a经由接口120a与SSD 130进行接口以在SSD 130上存储数据并从中访问数据。接口120a的示例包括高级技术附件(“ATA”)接口和小型计算机系统接口(“SCSI”)等。
与诸如常规HDD、软盘、紧致盘等磁性或光学存储介质不同,示例SSD130是使用固态存储器设备等作为存储介质来制造的固态存储设备。这样的固态存储器设备可以是闪存、或任何其它类型或组合的固态存储器、随机存取存储器(“RAM”)等。这样的SSD设备可以是引导设备,并可被认为是主存储设备或大容量存储设备,如结合图3所描述的那些设备。这样的SSD设备可以是合成SSD设备,即SSD设备包括多个存储器类型或类别,其中每一类别具有不同的性能特征或访问速度。此处对SDD设备的功能或动作的描述一般指的是该SSD设备和/或对应的SSD驱动程序,如示例驱动程序114a和114b。
在另一示例中,SSD 130可以是常规HDD、光盘驱动器、存储区域网络(“SAN”)、磁带存储设备、和/或可包括可被认为无效的数据的任何其它形式的存储设备,包括结合图3所描述的大容量存储设备。本发明可适用于任何这样的存储设备、系统、机制等。
考虑描述通常如何在SSD上表示无效数据的以下示例。诸如人或系统等用户可以经由任何合适的接口来指示某些数据(如文件)应被删除。文件系统通常修改指示文件已被删除的持久数据结构,如通过从目录等中移除对已删除文件的引用。此外,文件系统可以将SSD上表示该文件的数据标记为是无效的。在一个示例中,这包括经由逻辑块编址(“LBA”)来向SSD发送指示该文件的开头的文件位置信息,其后通常伴随文件长度。描述要被删除的数据的LBA或数据位置信息通常通过命令经由接口来发送到SSD设备。在接收到该命令和相关联的数据位置信息后,SSD和/或其驱动程序可以将存储在SSD上的对应于已删除文件的数据标识为无效数据。在常规计算系统中,文件系统可知道已被删除的文件,但SSD不知道。典型的SSD只知道向其写入和从中读出的数据,但有效和无效数据之间没有区分。某些SSD及其相关联的驱动程序可以执行将从知道其上存储的数据是无效的之中受益的操作。例如,典型的SSD写操作具有与典型的硬盘驱动器(“HDD”)所不同的考虑,其中HDD可在盘上的同一物理位置处用有效(新)数据盖写无效(已删除)数据。与典型的HDD不同,SSD写操作通常包括面向页的合并操作,该操作旨在将新数据与存储块上的现有数据合并到新存储块。如果现有数据是无效的,则这样的合并操作可能不必要地影响SSD性能。另外,出于可靠性的目的,SSD通常执行“磨损均匀化”操作以减少存储单元寿命降级。这些操作通常将数据从一个存储块移动到另一个块,等等。如果页和/或块数据是无效的,则对于该页/块的磨损均匀化操作可能不必要地影响SSD性能,并可能降低SSD可靠性。
如此处所使用的,无效数据可以是存储在诸如SSD存储位置等存储位置中的、已由更高级别系统(诸如文件系统、驱动程序、应用程序等)删除的、或未使用的等等的数据。例如,在删除文件时,与该文件相关联的数据可被认为是无效的。注意,这种已删除或无效数据通常不被移除或擦除,而是可以简单地被分类为无效。在一个示例中,这种无效数据保持存储在存储设备上。在另一示例中,无效数据可被“无用信息收集(garbagecollect)”或以其它方式移除、盖写等。未被分类为无效的数据通常被认为是有效的。一般而言,与SSD不同,文件系统等知道数据分类是有效的还是无效的。
示例新操作系统110b包括经由常规接口113b和新接口140耦合到示例新SSD驱动程序114b的示例新文件系统112b。一般而言,元素110b、112b、和114b的功能对应于其类似地标号的“1xxa”常规对应物的功能,但对本发明添加了新功能。另选地,示例文件系统112b可以是包含文件系统功能的应用程序等。
文件系统112b利用新接口140来向SSD驱动程序114b传递无效数据信息。这种无效数据信息可包括文件位置和大小信息。接口140使文件系统112b能够经由无效数据信息向SSD驱动程序114b精确地指示存储在SSD 130上的哪些数据是无效的。在一个示例中,接口140是新IOCTL命令。在另一示例中,接口140是现有IOCTL命令的扩展。接口140可以符合适用于耦合文件系统和SSD驱动程序的、足以传递无效数据信息的任何格式和/或结构。此外,接口140还可以使文件系统112b能够向SSD驱动程序114b指示被写入SSD 130的有效数据是有效的,从而使得存储在SSD130上的有效数据不被标记为无效。
在一个示例中,接口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”,则存储在SSD上的包括文件foo.bar的所有数据都被标记为无效。术语信息还可以指数据。一旦已删除数据被标记为无效,则方法200通常完成。
图3是示出在其中可以实现此处所描述的技术的示例计算环境300的框图。合适的计算环境可用多种通用或专用系统来实现。公知系统的示例可包括但不限于蜂窝电话、个人数字助理(“PDA”)、个人计算机(“PC”)、手持式或膝上型设备、基于微处理器的系统、多处理器系统、服务器、工作站、消费电子设备、机顶盒等。
计算环境300通常包括耦合到诸如外围设备302、303、304等各种组件的计算设备301形式的通用计算系统。系统300可以经由一个或多个输入/输出(“I/O”)接口312耦合到各种其它组件,如输入设备303,包括语音识别、触摸垫、按钮、键盘、和/或诸如鼠标或跟踪球等定点设备。计算设备301的组件可包括一个或多个处理器(包括中央处理单元(“CPU”)、图形处理单元(“GPU”)、微处理器(“μP”)等)307、系统存储器309、以及通常耦合各组件的系统总线308。处理器307通常处理或执行各种计算机可执行指令以控制计算设备301的操作,并且经由诸如网络连接314等各种通信连接与其它电子和/或计算设备、系统或环境(未示出)进行通信。系统总线308表示任何数量的若干类型的总线结构,包括存储器总线或存储器控制器、外围总线、串行总线、加速图形端口、使用各种总线体系结构中的任一种的处理器或局部总线等等。
系统存储器309可包括诸如随机存取存储器(“RAM”)等易失性存储器形式的和/或诸如只读存储器(“ROM”)或闪存(“FLASH”)等非易失性存储器形式的计算机可读介质。基本输入/输出系统(“BIOS”)可以存储在非易失性等中。系统存储器309通常存储数据、计算机可执行指令和/或包括计算机可执行指令的程序模块,包括可由一个或多个处理器307立即访问或目前正在其上操作的计算机可执行指令。
大容量存储设备304和310可经由耦合到系统总线和/或存储总线等来耦合到计算设备301或被合并到计算设备301中。这些大容量存储设备304和310可包括非易失性RAM;对可移动、非易失性磁盘(例如“软盘”)305进行读和/或写的磁盘驱动器;和/或对诸如CDROM、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可以经由通过一个或多个蜂窝网络、无线网络、局域网(“LAN”)、广域网(“WAN”)、存储区域网络(“SAN”)、因特网、无线电链路、光学链路等到一个或多个远程计算设备的通信连接来在网络化环境中操作。计算设备301可经由网络适配器313等,或作为替换,经由调制解调器、数字用户线(“DSL”)链路、综合业务数字网(“ISDN”)链路、因特网链路、无线链路等来耦合到网络。
诸如网络连接等通信连接314通常提供到诸如网络等通信介质的耦合。通信介质通常使用诸如载波或其它传输机制等已调制数据信号来提供计算机可读以及计算机可执行指令、数据结构、文件、程序模块和其它数据。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质可包括诸如有线网络或直接连线连接等有线介质,以及诸如声学、射频、红外线或其它无线通信机制等无线介质。
诸如电池或电源等电源390通常向计算环境300的部分和全部提供电力。在计算环境300是移动设备或便携式设备等的情况下,电源390可以是电池。另选地,在计算环境300是台式计算机或服务器等的情况下,电源390可以是被设计成诸如经由墙上插座连接到交流(“AC”)源的电源。
某些移动设备可能不包括结合图3所描述的组合中的多个。例如,电子证件可包括线圈连同简单处理单元307等,该线圈被配置成在其靠近读卡器设备等时用作电源390。这种线圈还可被配置成用作耦合到处理单元307等的天线,该线圈天线能够在电子证件和读卡器设备之间提供某种形式的通信。这种通信可以不涉及连网,但可以替换地是经由遥测、点对点、RF、IR、音频、或其它手段的通用或专用通信。电子卡可以不包括显示器302、I/O设备303、或结合图3描述的其它组件中的多个。可能不包括结合图3所描述的组件中的多个的其它移动设备包括电子腕带、电子标签、可移植设备等。
本领域的技术人员将认识到用于提供计算机可读以及计算机可执行指令和数据的存储设备可分布在网络上。例如,远程计算机或存储设备可以存储软件应用程序和数据形式的计算机可读以及计算机可执行指令。本地计算机可以经由该网络访问远程计算机或存储设备,并下载软件应用程序或数据的部分或全部并且可执行任何计算机可执行指令。另选地,本地计算机可按需下载软件或数据的片断,或者通过在本地机器执行一些指令并且在远程计算机和/或设备执行一些指令来分布式地处理该软件。
本领域的技术人员还将认识到,通过利用常规技术,软件的计算机可执行指令的全部或部分可由诸如数字信号处理器(“DSP”)、可编程逻辑阵列(“PLA”)、分立电路等专用电子电路来执行。术语“电子装置”可包括含有任何软件、固件等的计算设备或消费电子设备,或不含有软件、固件等的电子设备或电路。
术语“固件”通常指的是在诸如ROM等电子设备中维护的可执行指令、代码、数据、应用程序、软件、程序等。术语“软件”通常指的是在任何形式的计算机可读介质之中或之上维护的可执行指令、代码、数据、驱动程序、应用程序、程序等。术语“计算机可读介质”通常指的是系统存储器、存储设备、及其相关联的介质等。
鉴于可应用所公开的本发明的原理和上述示例的许多可能的实施例,应当认识到,此处所描述的各示例仅旨在是说明性的,并且不应被认为是限制本发明的范围。因此,此处所描述的本发明构想了可落入所附权利要求书和其任何等效方案的范围内的所有这样的实施例。

Claims (20)

1.一种在固态驱动器(“SSD”)上执行的方法,所述SSD经由SSD驱动程序耦合到计算设备,所述方法包括:
响应于来自所述计算设备的文件系统的指示所述文件系统中一文件的至少一部分的删除的删除时移除命令,经由所述SSD驱动程序由所述SSD接收来自所述文件系统的指示存储在所述SSD上的特定数据被所述文件系统认为是无效的无效数据信息,其中所述特定数据对应于所述文件的所述至少一部分;以及
由所述SSD基于接收到的无效数据信息将存储在所述SSD上的所述特定数据标记为无效,其中所述文件系统与所述SSD驱动程序和所述SSD分开。
2.如权利要求1所述的方法,其特征在于,所述删除时移除命令指令所述SSD或SSD驱动程序将所述特定数据标记为无效。
3.如权利要求1所述的方法,其特征在于,所述删除时移除命令响应于所述删除被发出。
4.如权利要求1所述的方法,其特征在于,所述标记包括将所述SSD上的页或块标记为无效。
5.如权利要求1所述的方法,其特征在于,响应于所述标记,所述SSD免于执行对被标记为无效的所述特定数进行保存或维护的任何操作。
6.如权利要求1所述的方法,其特征在于,还包括基于接收到的无效数据信息来标识对应于所述文件系统中的文件的所述至少一部分的存储在所述SSD上的所述特定数据被删除。
7.如权利要求1所述的方法,其特征在于,还包括由所述SSD执行合并或磨损均匀化操作,而不包括被标记为无效的所述特定数据。
8.一种固定驱动器(“SSD”),包括:
存储器;以及
接口,响应于来自文件系统的指示所述文件系统中一文件的至少一部分的删除的删除时移除命令,经由所述SSD驱动程序由所述SSD经由所述接口接收来自所述文件系统的指示存储在所述SSD的所述存储器中的特定数据被所述文件系统认为是无效的无效数据信息,其中所述特定数据对应于所述文件的所述至少一部分,其中所述SSD被配置成基于接收到的无效数据信息将存储在所述SSD的所述存储器中的所述特定数据标记为无效,其中所述文件系统与所述SSD驱动程序和所述SSD分开。
9.如权利要求8所述的SSD,其特征在于,所述删除时移除命令指令所述SSD或SSD驱动程序将所述特定数据标记为无效。
10.如权利要求8所述的SSD,其特征在于,所述删除时移除命令响应于所述删除被发出。
11.如权利要求8所述的SSD,其特征在于,所述标记包括将所述SSD上的所述存储器的页或块标记为无效。
12.如权利要求8所述的SSD,其特征在于,响应于所述标记,所述SSD免于执行对被标记为无效的所述特定数进行保存或维护的任何操作。
13.如权利要求8所述的SSD,其特征在于,还被配置成基于接收到的无效数据信息来标识对应于所述文件系统中的文件的所述至少一部分的存储在所述SSD上的所述特定数据被删除。
14.如权利要求8所述的SSD,其特征在于,还被配置成由所述SSD执行合并或磨损均匀化操作,而不包括被标记为无效的所述特定数据。
15.一种系统,包括:
包括计算机可读指令的存储器,基于由固态驱动器(“SSD”)的执行,所述计算机可读指令配置所述SSD来执行动作,包括:
响应于来自所述计算设备的文件系统的指示所述文件系统中一文件的至少一部分的删除的删除时移除命令,经由所述SSD驱动程序由所述SSD接收来自所述文件系统的指示存储在所述SSD上的特定数据被所述文件系统认为是无效的无效数据信息,其中所述特定数据对应于所述文件的所述至少一部分;以及
由所述SSD基于接收到的无效数据信息将存储在所述SSD上的所述特定数据标记为无效,其中所述文件系统与所述SSD驱动程序和所述SSD分开。
16.如权利要求15所述的系统,其特征在于,所述删除时移除命令指令所述SSD或SSD驱动程序将所述特定数据标记为无效。
17.如权利要求15所述的系统,其特征在于,所述删除时移除命令响应于所述删除被发出,或所述标记包括将所述SSD上的页或块标记为无效。
18.如权利要求15所述的系统,其特征在于,响应于所述标记,所述SSD免于执行对被标记为无效的所述特定数进行保存或维护的任何操作。
19.如权利要求15所述的系统,其特征在于,还包括基于接收到的无效数据信息来标识对应于所述文件系统中的文件的所述至少一部分的存储在所述SSD上的所述特定数据被删除。
20.如权利要求15所述的系统,其特征在于,还包括由所述SSD执行合并或磨损均匀化操作,而不包括被标记为无效的所述特定数据。
CN201610605653.1A 2007-04-19 2008-04-01 用于固态驱动器优化的删除时移除技术 Active CN106293517B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US91272807P 2007-04-19 2007-04-19
US60/912,728 2007-04-19
US12/030,193 2008-02-12
US12/030,193 US9207876B2 (en) 2007-04-19 2008-02-12 Remove-on-delete technologies for solid state drive optimization
CN200880012571A CN101663652A (zh) 2007-04-19 2008-04-01 用于固态驱动器优化的删除时移除技术

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN200880012571A Division CN101663652A (zh) 2007-04-19 2008-04-01 用于固态驱动器优化的删除时移除技术

Publications (2)

Publication Number Publication Date
CN106293517A true CN106293517A (zh) 2017-01-04
CN106293517B CN106293517B (zh) 2019-09-20

Family

ID=39873400

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201610605653.1A Active CN106293517B (zh) 2007-04-19 2008-04-01 用于固态驱动器优化的删除时移除技术
CN200880012571A Pending CN101663652A (zh) 2007-04-19 2008-04-01 用于固态驱动器优化的删除时移除技术

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN200880012571A Pending CN101663652A (zh) 2007-04-19 2008-04-01 用于固态驱动器优化的删除时移除技术

Country Status (9)

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

Families Citing this family (232)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
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
CN101681282A (zh) 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
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
US8261030B2 (en) * 2008-11-18 2012-09-04 Microsoft Corporation Using delete notifications to free related storage resources
US8255641B2 (en) * 2008-11-18 2012-08-28 Microsoft Corporation Modifying delete notifications in a storage stack
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
JP5607725B2 (ja) * 2009-04-21 2014-10-15 インターナショナル・ビジネス・マシーンズ・コーポレーション 固体ディスクを制御するための装置、方法、およびコンピュータ・プログラム
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
EP2476055B1 (en) 2009-09-08 2020-01-22 SanDisk Technologies LLC Apparatus, system, and method for caching data on a solid-state storage device
CN102598019B (zh) 2009-09-09 2015-08-19 才智知识产权控股公司(2) 用于分配存储的设备、系统和方法
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
WO2011031900A2 (en) 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for power reduction management in a storage device
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
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
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
WO2012016089A2 (en) 2010-07-28 2012-02-02 Fusion-Io, Inc. Apparatus, system, and method for conditional and 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 삼성전자주식회사 메모리 시스템 및 사용자 장치 그리고 그것의 데이터 관리 방법
TWI579692B (zh) 2010-10-29 2017-04-21 三星電子股份有限公司 記憶體系統、資料儲存系統、使用者裝置及其資料管理方法
JP2012118739A (ja) 2010-11-30 2012-06-21 Toshiba Corp 記憶装置、及び制御方法
EP2652623B1 (en) 2010-12-13 2018-08-01 SanDisk Technologies LLC Apparatus, system, and method for auto-commit memory
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
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
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
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
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for 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 株式会社東芝 メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム
US9189392B1 (en) 2011-06-30 2015-11-17 Western Digital Technologies, Inc. Opportunistic defragmentation during garbage collection
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
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
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
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
US9449006B2 (en) * 2012-06-04 2016-09-20 Google Inc. Method and system for deleting obsolete files from a file system
US9747310B2 (en) 2012-06-04 2017-08-29 Google Inc. Systems and methods of increasing database access concurrency using granular timestamps
US9659038B2 (en) 2012-06-04 2017-05-23 Google Inc. Efficient snapshot read of a database in a distributed storage system
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
US8788778B1 (en) 2012-06-04 2014-07-22 Western Digital Technologies, Inc. Garbage collection based on the inactivity level of stored data
US9230000B1 (en) 2012-06-04 2016-01-05 Google Inc. Pipelining Paxos state machines
JP5586718B2 (ja) 2012-06-19 2014-09-10 株式会社東芝 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
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
MY184342A (en) 2014-04-23 2021-04-01 Ensconce Data Tech Llc Method for completing a secure erase operation
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
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
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in 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
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues 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
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
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
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring 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
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
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
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
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
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
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
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11734169B2 (en) 2016-07-26 2023-08-22 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
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
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
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity 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
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
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
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
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
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
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
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
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
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
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
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
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
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
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
EP4085335A1 (en) 2019-12-31 2022-11-09 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
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN1238846A (zh) * 1996-09-30 1999-12-15 英特尔公司 对非易失性存储器中的文件进行连续重写的方法
CN1400531A (zh) * 2001-08-03 2003-03-05 华为技术有限公司 快速存储器文件的处理方法
CN101147133A (zh) * 2005-02-16 2008-03-19 桑迪士克股份有限公司 闪速存储器中的直接文件数据编程及删除

Family Cites Families (27)

* 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
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
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
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 한국전자통신연구원 플래시 메모리를 이용한 파일 시스템에서 등급별 지움정책 및 오류 복구 방법
JP4149167B2 (ja) 2002-01-11 2008-09-10 パイオニア株式会社 情報記録装置及び方法、情報再生装置及び方法、情報記録用プログラム及び情報再生用プログラム、記録媒体並びに情報記録媒体
US7082512B2 (en) 2002-11-21 2006-07-25 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 Открытое акционерное общество "Научно-производственное объединение "Прибор" Способ структурирования и записи цифровой информации и устройство для его осуществления
TWI386795B (zh) 2004-03-12 2013-02-21 Nvidia Corp 具有改進之拆解及冗餘操作及介面之磁碟控制器方法及裝置
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
KR100684887B1 (ko) 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
US7246195B2 (en) 2004-12-30 2007-07-17 Intel Corporation Data storage management for flash memory devices
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN1238846A (zh) * 1996-09-30 1999-12-15 英特尔公司 对非易失性存储器中的文件进行连续重写的方法
CN1400531A (zh) * 2001-08-03 2003-03-05 华为技术有限公司 快速存储器文件的处理方法
CN101147133A (zh) * 2005-02-16 2008-03-19 桑迪士克股份有限公司 闪速存储器中的直接文件数据编程及删除

Also Published As

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

Similar Documents

Publication Publication Date Title
CN106293517A (zh) 用于固态驱动器优化的删除时移除技术
CN101663655B (zh) 用于合成固态驱动器的访问、标识和优化的方法及系统
CN102612685B (zh) 经由存储器高速缓存操纵的无阻碍数据传送
CN102591592B (zh) 虚拟化环境中的数据去重复
US7721059B2 (en) Performance optimization in solid-state media
EP2115595B1 (en) Memory device performance enhancement through pre-erase mechanism
CN1658171B (zh) 通过控制频繁受访问扇区对非易失性存储器的更快写操作
CN106708423B (zh) 多模存储管理系统
CN109901794A (zh) 使用主机空闲来操作垃圾收集的设备和方法
WO2017048407A1 (en) Exposing and managing disparate read, write, and erase sizes in data storage devices
CN102375781B (zh) 数据保护方法、存储器控制器及可携式存储器储存装置
CN105718977A (zh) Rfid手持电缆读写器
CN107122308A (zh) 平均磨损方法、内存控制电路单元及内存储存装置
US20180299969A1 (en) Electronic signal transmission and control system
CN108369555A (zh) 存储器装置中的逻辑地址历史管理
US8949553B2 (en) System and method for retention of historical data in storage resources
CN114442911B (zh) 用于固态驱动器的异步输入/输出扫描和聚合的系统和方法
CN2535858Y (zh) 带信息纽扣的周转卡箱

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant