CN106293517B - 用于固态驱动器优化的删除时移除技术 - Google Patents
用于固态驱动器优化的删除时移除技术 Download PDFInfo
- Publication number
- CN106293517B CN106293517B CN201610605653.1A CN201610605653A CN106293517B CN 106293517 B CN106293517 B CN 106293517B CN 201610605653 A CN201610605653 A CN 201610605653A CN 106293517 B CN106293517 B CN 106293517B
- Authority
- CN
- China
- Prior art keywords
- ssd
- invalid
- specific data
- data
- file system
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity 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执行合并或磨损均匀化操作,而不包括被标记为无效的所述特定数据。
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 CN106293517A (zh) | 2017-01-04 |
CN106293517B true 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)
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)
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)
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 |
-
2008
- 2008-02-12 US US12/030,193 patent/US9207876B2/en active Active
- 2008-04-01 RU RU2009138348/08A patent/RU2456664C2/ru active
- 2008-04-01 KR KR1020097021257A patent/KR20100015506A/ko not_active Application Discontinuation
- 2008-04-01 CN CN201610605653.1A patent/CN106293517B/zh active Active
- 2008-04-01 EP EP08744884.1A patent/EP2135167B1/en active Active
- 2008-04-01 JP JP2010504149A patent/JP2010525453A/ja active Pending
- 2008-04-01 CN CN200880012571A patent/CN101663652A/zh active Pending
- 2008-04-01 BR BRPI0809287-7A patent/BRPI0809287B1/pt active IP Right Grant
- 2008-04-01 WO PCT/US2008/059048 patent/WO2008130799A1/en active Application Filing
- 2008-04-15 TW TW097113635A patent/TWI514134B/zh active
-
2015
- 2015-12-07 US US14/961,809 patent/US9696907B2/en active Active
-
2017
- 2017-06-02 US US15/612,128 patent/US10156988B2/en active Active
-
2018
- 2018-11-12 US US16/186,652 patent/US10976928B2/en active Active
Patent Citations (4)
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 |
CN106293517A (zh) | 2017-01-04 |
US9207876B2 (en) | 2015-12-08 |
RU2009138348A (ru) | 2011-04-27 |
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 |
---|---|---|
CN106293517B (zh) | 用于固态驱动器优化的删除时移除技术 | |
US10564859B2 (en) | Composite solid state drive identification and optimization technologies | |
CN102612685B (zh) | 经由存储器高速缓存操纵的无阻碍数据传送 | |
US9164895B2 (en) | Virtualization of solid state drive and mass storage drive devices with hot and cold application monitoring | |
US7721059B2 (en) | Performance optimization in solid-state media | |
CN109901794A (zh) | 使用主机空闲来操作垃圾收集的设备和方法 | |
CN108733321B (zh) | 无用数据收集-自动数据放置 | |
KR20140010999A (ko) | 호스트가 볼 때 디바이스 펌웨어 업데이트 효과들의 관리 | |
CN114442911B (zh) | 用于固态驱动器的异步输入/输出扫描和聚合的系统和方法 | |
CN115509950A (zh) | 存储器系统、包括存储器系统的数据处理系统及操作方法 | |
US20090014521A1 (en) | Card reader | |
CN115543686A (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 |