CN105009091B - 一种数据存储系统及用于数据存储系统的动态预留空间方法 - Google Patents
一种数据存储系统及用于数据存储系统的动态预留空间方法 Download PDFInfo
- Publication number
- CN105009091B CN105009091B CN201380068657.5A CN201380068657A CN105009091B CN 105009091 B CN105009091 B CN 105009091B CN 201380068657 A CN201380068657 A CN 201380068657A CN 105009091 B CN105009091 B CN 105009091B
- Authority
- CN
- China
- Prior art keywords
- data
- memory array
- nonvolatile memory
- headspace
- capacity
- 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
- 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
- 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/0608—Saving storage space on storage systems
-
- 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
-
- 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/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7211—Wear leveling
Abstract
公开的实施例针对用于数据存储系统的动态预留空间的系统和方法。在一个实施例中,数据存储系统可以为预留空间保留诸如非易失性固态存储器的存储器的部分。取决于各种预留空间因素,由于压缩用户数据而恢复的存储空间可以被分配用于存储用户数据和/或预留空间。利用公开的动态预留空间系统或方法可以导致更有效地使用缓存存储器,减小写入放大,增大缓存命中率等,从而可以获得改进的数据存储系统性能和增大的耐久性和寿命。
Description
技术领域
本公开涉及用于计算机系统的数据存储系统。具体而言,本公开涉及用于数据存储系统的动态预留空间(overprovisioning)。
背景技术
数据存储系统执行许多系统任务和管理操作,例如其正常操作过程中的垃圾收集、损耗均衡、坏块管理等。执行系统任务和管理操作涉及实质性的开销,例如在将非易失性固态存储器用于存储数据的情况中增大的写入放大。因此,希望提供更有效的机制以便执行管理操作。
附图说明
将参考以下附图来说明体现本发明的各种特征的系统和方法,在附图中:
图1示出了根据本发明一个实施例的实施动态预留空间的主机系统和数据存储系统的组合。
图2示出了根据本发明一个实施例的预留空间参数。
图3示出了根据本发明一个实施例的动态预留空间。
图4示出了根据本发明一个实施例的动态预留空间过程的流程图。
具体实施方式
尽管说明了特定实施例,但仅是示例性地呈现这些实施例,并非旨在限定保护的范围。实际上,本文所述的创新的方法和系统可以以各种其他形式来体现。而且,在不脱离保护范围的情况下,可以在本文所述的方法和系统的形式上做出各种省略、替换、以及变化。
概述
数据存储系统执行许多管理操作,例如其正常操作过程中的垃圾收集、损耗均衡、坏块管理等。执行管理操作涉及实质性的开销,例如在将非易失性固态存储器(NVSM)用于存储数据的情况中增大的写入放大。在某些情况下,为了改进数据存储系统的效率、寿命、以及性能,分配额外的存储器以执行系统任务和/或管理操作可能是有利的。但为系统和/或管理任务分配额外的存储器典型地以减少用于用户数据的存储容量为代价来进行。而数据存储系统典型地向主机系统报告给定存储容量,这个报告的存储容量通常不能在数据存储系统的操作期间被修改。
本发明的实施例针对用于动态预留空间的系统和方法。数据存储系统可以为预留空间保留诸如NVSM缓存存储器的存储器的部分。预留空间部分可以用于有效地执行系统任务和/或管理操作。例如,预留空间部分可以用于减小例如与向NVSM缓存写入数据相关联的写入放大。数据存储系统可以通过压缩存储在NVSM缓存中的数据来恢复存储容量。取决于各种预留空间因素,恢复的存储容量的部分或全部量可以被分配用于预留空间或用于存储用户数据。例如,当由于主机系统活动,应缓存在NVSM中的用户数据量增大时,部分或全部恢复的存储容量可以被用于存储用户数据。作为另一个示例,当NVSM的磨损级别超过阈值时,整个恢复的存储容量的部分可以被用于预留空间。恢复的存储容量的这种动态分配可以改进效率和性能。
在一个实施例中,数据存储系统可以包括非易失性存储器阵列,其具有被配置为存储用户数据的用户数据部分。另外,可以保留预留空间部分。在压缩了用户数据后,可以确定恢复的存储容量的量。基于一个或多个预留空间参数,数据存储系统可以分配恢复的存储容量,用于存储用户数据和/或预留空间部分。
系统概述
图1示出了根据本发明一个实施例的实施基于优先级的垃圾收集的主机系统和数据存储系统的组合100。如所示的,数据存储系统120(例如混合盘驱动器)包括控制器130和非易失性存储器阵列150及磁存储设备160,其包括磁性介质164(例如传统的或叠瓦式(shingled))。非易失性存储器阵列150可以包括非易失性固态存储器(NVSM),例如闪存集成电路、硫属化合物RAM(C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元RAM(PMC-RAM或PMCm)、Ovonic Unified Memory(OUM)、电阻RAM(RRAM)、NAND存储器(例如单级单元(SLC)存储器、多级单元(MLC)存储器、或其任意组合)、NOR存储器、EEPROM、铁电存储器(FeRAM)、磁阻RAM(MRAM)、其他分立NVM(非易失性存储器)芯片,或其任意组合。非易失性存储器阵列150可以包括一个或多个存储器区,例如块、页等。存储器区可以包括存储器单元。在一个实施例中,非易失性存储器阵列150可以充当用于磁存储设备160的缓存。数据存储系统120可以进一步包括其他类型的存储设备。在一个实施例中,磁存储设备160可以被配置为叠瓦式磁存储设备,非易失性存储器阵列150 被配置为用作叠瓦式磁存储设备的介质缓存。
控制器130可以被配置为从主机系统110的存储接口模块112(例如设备驱动器)接收数据和/或存储访问命令。由存储接口112传送的存储访问命令可以包括由主机系统110发出的写数据和读数据命令。读和写命令可以指定逻辑地址(例如逻辑块地址或LBA),其用于访问数据存储系统120。控制器130可以在非易失性存储器阵列150中执行接收的命令。
数据存储系统120可以存储由主机系统110传送的数据。换句话说,数据存储系统120可以充当用于主机系统110的存储器存储设备。为了便于该功能,控制器130可以实施逻辑接口。逻辑接口可以将数据存储系统的存储器作为可以存储用户数据的逻辑地址集合(例如相连的地址)而呈现给主机系统110。在内部,控制器130可以将逻辑地址映射到非易失性存储器阵列150、磁存储设备160、和/或其他存储模块中的各种物理单元或地址。物理单元可以被配置为存储数据。控制器130包括动态预留空间模块132,其被配置为执行动态预留空间,以及数据压缩模块134,其被配置为压缩数据以便存储于非易失性存储器阵列150和/或磁存储设备160中。
在其他实施例中,代替磁存储设备160,数据存储系统120可以包括另一类数据存储设备,例如第二非易失性存储器阵列。例如,非易失性存储器阵列150可以包括一类存储器,其提供比用于第二非易失性存储器阵列中的存储器类型更快的写/读性能。在一些实施例中,非易失性存储器阵列 150可以充当到远端地点的数据存储设备的缓存,数据的同步可以通过一个或多个网络连接发生。
动态预留空间
图2示出了根据本发明一个实施例的预留空间参数200。如所示的,预留空间参数是:用户数据压缩率202、不工作的非易失性存储器阵列150单元的数量204、从非易失性存储器阵列150读取的数据量与写入非易失性存储器阵列150的数据量的比率206、写入非易失性存储器阵列150的连续数据量与写入非易失性存储器阵列150的非连续数据量的比率208、当前预留空间级别210、存储在非易失性存储器阵列150中的非冗余数据的百分比212、及非易失性存储器阵列150的磨损级别214。非冗余数据包括存储在非易失性存储器阵列150中、但没有与其他存储介质(非易失性存储器阵列150充当其缓存,例如磁存储设备160)同步的数据。可以使用额外的预留空间参数。预留空间参数可以由控制器130和/或动态预留空间模块132 和/或数据压缩模块134产生、跟踪、和/或更新。
图3示出了根据本发明一个实施例的动态预留空间300。动态预留空间 300可以由控制器130和/或动态预留空间模块132和/或数据压缩模块134 执行。如所示的,非易失性存储器阵列150可以被分为用户数据部分154 和系统数据部分158。另外,存储器阵列150可以包括预留空间部分156。可以基于诸如图2的参数200的一个或多个预留空间参数,调整预留空间部分156的大小。在一个实施例中,可以基于诸如加权平均值的预留空间参数的组合,调整预留空间部分的大小。
如图3所示的,在一个实施例中,未压缩的用户数据存储在用户数据部分154中。例如当由数据压缩模块134压缩数据时,数据存储系统120 恢复存储容量170的量。恢复的存储容量可以被分配用于存储用户数据和/ 或用于预留空间。
图4是示出根据本发明一个实施例的动态预留空间的过程400的流程图。过程400可以由控制器130和/或动态预留空间模块132和/或数据压缩模块134执行。过程400在块402开始,在此它执行从主机系统110接收的一个或多个存储命令。例如,过程400可以执行包括用户数据的写入或程序命令。过程400转移到块404,在此,它压缩与存储命令相关联的用户数据。压缩度可以取决于用户数据的类型,较高压缩度可以表示将用户数据压缩到较大程度。例如,可以以高压缩度压缩未压缩的音频和/或视频数据。在一个实施例中,过程400使用无损压缩,例如Lempel-Ziv(LZ)。
过程400转移到块406,在此它确定由于用户数据压缩而恢复的存储容量的量。在块408,过程400确定和/或更新预留空间参数,例如图2的参数200。过程400转移到块408,在此它确定如何将恢复的存储设备分配用于用户数据存储和/或预留空间。
在一个实施例中,响应于相比于磨损级别阈值的非易失性存储器阵列 150的磨损级别的增大,过程400分配至少部分或全部恢复的存储容量用于预留空间。在此情况下,例如,磨损级别的增大指示非易失性存储器阵列 150受到磨损,分配存储容量用于预留空间可以通过减小写入放大而减少磨损率。另一方面,响应于相比于磨损级别阈值的非易失性存储器阵列150 的磨损级别的减小,过程400分配至少部分或全部恢复的存储容量用于存储用户数据。在此情况下,例如,由于非易失性存储器阵列150未受到磨损,因此希望给用户数据分配更多的存储空间以增强非易失性存储器缓存命中率。
在一个实施例中,响应于相比于不工作单元阈值的不工作(或有故障) 非易失性存储器150单元数量的增大,过程400分配至少部分或全部恢复的存储容量用于存储用户数据。在此情况下,例如,分配可用存储器来存储用户数据可能是有利的。响应于非易失性存储器阵列150中存储的非冗余数据相对于非冗余数据阈值的百分比的增大,过程400也分配至少部分或全部恢复的存储容量用于存储用户数据。在此情况下,例如,由于磁存储设备160不接受用于存储的数据(例如因为磁盘未旋转),主机系统110 可以将非易失性存储器150用作数据缓存。稍后可以将至少部分缓存的用户数据转储清除(flush)(或同步)到例如磁存储设备160。响应于从非易失性存储器阵列150读取的数据量与写入非易失性存储器阵列的数据量的比率相对于读/写阈值的增大,过程400也分配至少部分或全部恢复的存储容量用于存储用户数据。在此情况下,例如,主机系统110可以执行更多的数据取回操作,执行这些操作导致小的或没有写入放大。另一方面,响应于从非易失性存储器阵列150读取的数据量与写入非易失性存储器阵列的数据量的比率相对于读/写阈值的减小,过程400分配至少部分或全部恢复的存储容量用于预留空间。在此情况下,例如,主机系统110可以执行与增大的写入放大相关联的更多数据程序操作。分配更多存储容量用于预留空间可以减小非易失性存储器阵列150的磨损。
在一个实施例中,响应于相比于数据压缩阈值的数据压缩率的减小,过程400分配至少部分或全部恢复的存储容量用于存储用户数据。在此情况下,例如,用户数据可以被较少压缩,从而占用更多空间。可以分配更多空间用于存储用户数据。响应于相比于预留空间阈值的预留空间部分的大小的增大,过程400也分配至少部分或全部恢复的存储容量用于存储用户数据。在此情况下,例如,预留空间部分大小可能已经增长过大。响应于相比于连续数据写阈值的写入非易失性存储器阵列150的连续数据量与写入非易失性存储器阵列150的非连续数据量的比率的增大,过程400也分配至少部分或全部恢复的存储容量用于存储用户数据。在此情况下,例如,相比于写入非顺序数据,将连续或顺序数据写入非易失性存储器阵列 150与较低的写入放大相关联。因而,需要较少的预留空间来实现希望的总写入放大。另一方面,响应于写入非易失性存储器阵列150的连续数据量与写入非易失性存储器阵列150的非连续数据量的比率相对于连续数据写阈值的减小,过程400分配至少部分或全部恢复的存储容量用于预留空间。在此情况下,例如,写入更多的非连续或随机数据,其与增大的写入放大相关联。因此,可以分配更多的存储容量用于预留空间。
结论
利用公开的动态预留空间系统和方法可以导致更有效地使用非易失性存储器,减小写入放大,增大缓存命中率等。可以获得改进的数据存储系统性能和增大的耐久性。
其他变化
本领域技术人员会意识到在一些实施例中可以使用另外的预留空间参数。另外,使用任意适合的线性和/或非线性方法可以组合预留空间参数。此外,公开的系统和方法可以由任何数据存储系统使用,其例如由于存储介质的限制而不能写随机存储器单元。这种数据存储系统也可以包括缓存存储器。此外,用户数据可以包括任何类型数据和/或数据类型的组合,例如由主机提供的数据、由数据存储系统产生的数据等。在公开的过程中实际进行的步骤,例如图4中所示的过程,可以与图中所示的不同。可以使用额外的系统部件,可以组合或省略公开的系统部件。取决于实施例,可以去除上述的某些步骤,可以添加其他步骤。因此,本公开的范围旨在仅参照所附权利要求书来限定。
尽管说明了某些实施例,但这些实施例仅被示例性地呈现,并非旨在限定保护的范围。实际上,本文所述的创新的方法和系统可以以各种其他形式来体现。而且,在不脱离保护的精神的情况下,可以在本文所述的方法和系统的形式上做出各种省略、替换和变化。所附权利要求书及其等效替代旨在覆盖这样的形式或修改,视其为落在保护的范围和精神内。例如,本文公开的系统和方法可以应用于硬盘驱动器、固态驱动器等。另外,可以额外地或可替换地使用其他形式的存储设备(例如DRAM或SRAM、配有电池的易失性DRAM或SRAM设备、EPROM、EEPROM存储器等)。作为另一个示例,图中所示的各种部件可以被实施为处理器上的软件和/或固件、ASIC/FPGA、或专用硬件。此外,以上公开的特定实施例的特征和属性可以以不同方式组合,以构成另外的实施例,其全都落在本公开的范围内。尽管本公开提供了某些优选实施例和应用,但对于本领域普通技术人员来说是显而易见的是其他实施例也在本公开的范围内,包括没有提供本文阐述的全部特征和优点的实施例。因此,本公开的范围旨在仅参照所附权利要求书来限定。
Claims (20)
1.一种数据存储系统,包括:
非易失性存储器阵列,其包括用户数据部分和预留空间部分,所述用户数据部分被配置为存储用户数据;
控制器,其被配置为借助以下步骤动态调整所述非易失性存储器阵列的所述预留空间部分的容量:
压缩被存储在所述用户数据部分中的至少一些用户数据;
确定由于所述压缩而恢复的存储容量的量;
计算一个或更多个预留空间参数,所述预留空间参数包括在所述非易失性存储器阵列中存储的非冗余数据的量的测量值,所述非冗余数据包括不是永久地存储在除所述非易失性存储器阵列之外的所述数据存储系统的任何存储器中的数据;以及
至少部分基于所述一个或更多个预留空间参数,将所述恢复的存储容量分配给以下项中的至少一个:所述用户数据部分的容量和所述预留空间部分的所述容量。
2.根据权利要求1所述的数据存储系统,其中,所述控制器被进一步配置为至少部分基于所述一个或更多个预留空间参数中的两个或更多个的组合,分配所述恢复的存储容量。
3.根据权利要求2所述的数据存储系统,其中,所述控制器被进一步配置为确定所述两个或更多个预留空间参数的加权平均值。
4.根据权利要求1所述的数据存储系统,其中,所述一个或更多个预留空间参数包括以下项中的至少一个:
用户数据压缩率;
所述预留空间部分的所述容量;
所述非易失性存储器阵列的磨损级别;
不工作的非易失性存储器阵列单元的数量;
从所述非易失性存储器阵列读取的数据量与写入所述非易失性存储器阵列的数据量的比率;以及
写入所述非易失性存储器阵列的连续数据量与写入所述非易失性存储器阵列的非连续数据量的比率。
5.根据权利要求4所述的数据存储系统,其中,所述控制器被进一步配置为响应于以下项中的至少一个,分配至少一些所述恢复的存储容量给所述预留空间部分的所述容量:
相比于磨损级别阈值的所述非易失性存储器阵列的所述磨损级别的增大;
相比于读/写阈值的从所述非易失性存储器阵列读取的所述数据量与写入所述非易失性存储器阵列的所述数据量的所述比率的增大;以及
相比于连续数据写阈值的写入所述非易失性存储器阵列的所述连续数据量与写入所述非易失性存储器阵列的所述非连续数据量的所述比率的减小。
6.根据权利要求4所述的数据存储系统,其中,所述控制器被进一步配置为响应于以下项中的至少一个,分配至少一些所述恢复的存储容量给所述用户数据部分的所述容量:
相比于不工作单元阈值的不工作的非易失性存储器单元的所述数量的增大;
相比于数据压缩阈值的所述用户数据压缩率的减小;
相比于预留空间阈值的所述预留空间部分的所述容量的增大;以及
相比于连续数据写阈值的写入所述非易失性存储器阵列的所述连续数据量与写入所述非易失性存储器阵列的所述非连续数据量的所述比率的增大。
7.根据权利要求1所述的数据存储系统,其中,所述控制器被进一步配置为使用无损压缩来压缩存储在所述用户数据部分中的所述至少一些用户数据。
8.根据权利要求1所述的数据存储系统,其中,所述数据存储系统进一步包括磁存储设备,并且其中,所述非易失性存储器阵列被配置为用于所述磁存储设备的缓存存储器。
9.根据权利要求1所述的数据存储系统,其中,所述控制器被进一步配置为响应于相比于非冗余数据阈值的所述测量值的增大,分配至少一些所述恢复的存储容量给所述用户数据部分的所述容量,所述测量值包括在所述非易失性存储器阵列中存储的非冗余数据的百分比。
10.根据权利要求1所述的数据存储系统,其中,所述非易失性存储器阵列被配置为针对远程数据存储设备的缓存存储器。
11.一种在包括非易失性存储器阵列的数据存储系统中动态调整预留空间部分的容量的方法,所述非易失性存储器阵列包括用户数据部分和所述预留空间部分,所述用户数据部分被配置为存储用户数据,所述方法包括:
压缩被存储在所述用户数据部分中的至少一些用户数据;
确定由于所述压缩而恢复的存储容量的量;
计算一个或更多个预留空间参数,所述一个或更多个预留空间参数包括在所述非易失性存储器阵列中存储的非冗余数据的量的测量值,所述非冗余数据包括不是永久地存储在除所述非易失性存储器阵列之外的所述数据存储系统的任何存储器中的数据;以及
至少部分基于所述一个或更多个预留空间参数,将所述恢复的存储容量分配给以下项中的至少一个:所述用户数据部分的容量和所述预留空间部分的所述容量,
其中,在控制器的控制下执行所述方法。
12.根据权利要求11所述的方法,其中所述分配包括至少部分基于所述一个或更多个预留空间部分中的每个的组合分配所述恢复的存储容量。
13.根据权利要求12所述的方法,其中,所述组合包括所述一个或更多个预留空间参数中的每个的加权平均值。
14.根据权利要求11所述的方法,其中,所述一个或更多个预留空间参数包括以下项中的至少一个:
用户数据压缩率;
所述预留空间部分的所述容量;
所述非易失性存储器阵列的磨损级别;
不工作的非易失性存储器阵列单元的数量;以及
从所述非易失性存储器阵列读取的数据量与写入所述非易失性存储器阵列的数据量的比率,写入所述非易失性存储器阵列的连续数据量与写入所述非易失性存储器阵列的非连续数据量的比率。
15.根据权利要求14所述的方法,其中所述分配包括响应于以下项中的至少两个,分配至少一些所述恢复的存储容量给所述预留空间部分的所述容量:
相比于磨损级别阈值的所述非易失性存储器阵列的所述磨损级别的增大;
相比于读/写阈值的从所述非易失性存储器阵列读取的所述数据量与写入所述非易失性存储器阵列的所述数据量的所述比率的增大;以及
相比于连续数据写阈值的写入所述非易失性存储器阵列的所述连续数据量与写入所述非易失性存储器阵列的所述非连续数据量的所述比率的减小。
16.根据权利要求14所述的方法,进一步包括响应于以下项中的至少两个,分配至少一些所述恢复的存储容量给所述用户数据部分的所述容量:
相比于不工作单元阈值的不工作的非易失性存储器单元的所述数量的增大;
相比于数据压缩阈值的所述用户数据压缩率的减小;
相比于预留空间阈值的所述预留空间部分的所述容量的增大;以及
相比于连续数据写阈值的写入所述非易失性存储器阵列的所述连续数据量与写入所述非易失性存储器阵列的所述非连续数据量的所述比率的增大。
17.根据权利要求11所述的方法,其中,所述压缩存储在所述用户数据部分中的所述至少一些用户数据包括使用无损压缩进行压缩。
18.根据权利要求11所述的方法,进一步包括磁存储设备,并且其中,所述非易失性存储器阵列被配置为用于所述磁存储设备的缓存存储器。
19.根据权利要求11所述的方法,其中,进一步包括响应于相比于非冗余数据阈值的测量值的增大,分配至少一些所述恢复的存储容量给所述用户数据部分的所述容量,所述测量值包括在所述非易失性存储器阵列中存储的非冗余数据的百分比。
20.根据权利要求11所述的方法,其中,所述非易失性存储器阵列被配置为针对远程数据存储设备的缓存存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/727,150 US9141532B2 (en) | 2012-12-26 | 2012-12-26 | Dynamic overprovisioning for data storage systems |
US13/727,150 | 2012-12-26 | ||
PCT/US2013/061242 WO2014105228A1 (en) | 2012-12-26 | 2013-09-23 | Dynamic overprovisioning for data storage systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105009091A CN105009091A (zh) | 2015-10-28 |
CN105009091B true CN105009091B (zh) | 2018-01-02 |
Family
ID=50976032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380068657.5A Active CN105009091B (zh) | 2012-12-26 | 2013-09-23 | 一种数据存储系统及用于数据存储系统的动态预留空间方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9141532B2 (zh) |
EP (1) | EP2939119B1 (zh) |
JP (1) | JP6298475B2 (zh) |
KR (1) | KR101937521B1 (zh) |
CN (1) | CN105009091B (zh) |
HK (1) | HK1216046A1 (zh) |
WO (1) | WO2014105228A1 (zh) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9612956B2 (en) | 2013-03-15 | 2017-04-04 | Seagate Technology Llc | Multi-tiered caching for data storage management in a device |
CN105094685B (zh) | 2014-04-29 | 2018-02-06 | 国际商业机器公司 | 进行存储控制的方法和设备 |
US8891303B1 (en) | 2014-05-30 | 2014-11-18 | Sandisk Technologies Inc. | Method and system for dynamic word line based configuration of a three-dimensional memory device |
US10235056B2 (en) * | 2014-09-26 | 2019-03-19 | Western Digital Technologies, Inc. | Storage device health diagnosis |
US11086775B2 (en) * | 2014-12-11 | 2021-08-10 | Toshiba Memory Corporation | Information processing device, non-transitory computer readable recording medium, and information processing system |
US9785575B2 (en) | 2014-12-30 | 2017-10-10 | International Business Machines Corporation | Optimizing thin provisioning in a data storage system through selective use of multiple grain sizes |
US9606737B2 (en) | 2015-05-20 | 2017-03-28 | Sandisk Technologies Llc | Variable bit encoding per NAND flash cell to extend life of flash-based storage devices and preserve over-provisioning |
US9639282B2 (en) | 2015-05-20 | 2017-05-02 | Sandisk Technologies Llc | Variable bit encoding per NAND flash cell to improve device endurance and extend life of flash-based storage devices |
US10048876B2 (en) | 2015-09-10 | 2018-08-14 | Western Digital Technologies, Inc. | Method for providing nonvolatile storage write bandwidth using a caching namespace |
US10108350B2 (en) | 2015-09-10 | 2018-10-23 | Western Digital Technologies, Inc. | Method for providing nonvolatile storage write bandwidth using a caching namespace |
CN109358804B (zh) * | 2015-09-29 | 2022-03-29 | 华为技术有限公司 | 一种数据处理方法、装置及闪存设备 |
US10002073B2 (en) * | 2015-11-06 | 2018-06-19 | SK Hynix Inc. | Selective data recycling in non-volatile memory |
US9990304B2 (en) * | 2015-11-13 | 2018-06-05 | Samsung Electronics Co., Ltd | Multimode storage management system |
AU2015383834B2 (en) * | 2015-11-27 | 2018-07-19 | Huawei Technologies Co., Ltd. | Method for storing data by storage device and storage device |
US9946483B2 (en) | 2015-12-03 | 2018-04-17 | Sandisk Technologies Llc | Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning |
US9946473B2 (en) | 2015-12-03 | 2018-04-17 | Sandisk Technologies Llc | Efficiently managing unmapped blocks to extend life of solid state drive |
US10019372B2 (en) * | 2015-12-16 | 2018-07-10 | Western Digital Technologies, Inc. | Caching sensing device data in data storage device |
US10592110B2 (en) * | 2016-02-19 | 2020-03-17 | International Business Machines Corporation | Techniques for dynamically adjusting over-provisioning space of a flash controller based on workload characteristics |
CN105867851A (zh) * | 2016-03-30 | 2016-08-17 | 联想(北京)有限公司 | 一种存储设备调整方法及装置 |
CN109690681B (zh) * | 2016-06-24 | 2021-08-31 | 华为技术有限公司 | 处理数据的方法、存储装置、固态硬盘和存储系统 |
US10534716B2 (en) | 2016-07-13 | 2020-01-14 | Seagate Technology Llc | Limiting access operations in a data storage device |
US9842060B1 (en) * | 2016-07-13 | 2017-12-12 | Seagate Technology Llc | Cache over-provisioning in a data storage device |
US10838855B2 (en) * | 2017-02-20 | 2020-11-17 | Hitachi, Ltd. | Storage system and storage control method |
JP6697410B2 (ja) * | 2017-03-21 | 2020-05-20 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11936645B2 (en) | 2017-03-30 | 2024-03-19 | Kingston Digital, Inc. | Smart security storage system |
US10880296B2 (en) * | 2017-03-30 | 2020-12-29 | Kingston Digital Inc. | Smart security storage |
KR102435890B1 (ko) * | 2017-08-17 | 2022-08-25 | 삼성전자주식회사 | 스토리지 장치의 어드레스 맵핑 방법 및 동작 방법 |
CN107526547A (zh) * | 2017-08-30 | 2017-12-29 | 四川长虹电器股份有限公司 | 基于android系统的EMMC兼容设计方法 |
US10983911B2 (en) * | 2017-09-01 | 2021-04-20 | Seagate Technology Llc | Capacity swapping based on compression |
CN110019083B (zh) * | 2017-09-20 | 2023-01-24 | 阿里巴巴集团控股有限公司 | 分布式文件系统的存储方法、装置、电子设备及存储介质 |
US11132133B2 (en) | 2018-03-08 | 2021-09-28 | Toshiba Memory Corporation | Workload-adaptive overprovisioning in solid state storage drive arrays |
TWI673958B (zh) * | 2018-08-30 | 2019-10-01 | 英屬開曼群島商捷鼎創新股份有限公司 | 基於抽樣猜測之資料壓縮方法 |
US11163482B2 (en) | 2019-06-26 | 2021-11-02 | International Business Machines Corporation | Dynamic performance-class adjustment for storage drives |
US11049570B2 (en) | 2019-06-26 | 2021-06-29 | International Business Machines Corporation | Dynamic writes-per-day adjustment for storage drives |
US11137915B2 (en) | 2019-06-27 | 2021-10-05 | International Business Machines Corporation | Dynamic logical storage capacity adjustment for storage drives |
US11726679B2 (en) * | 2019-11-05 | 2023-08-15 | Western Digital Technologies, Inc. | Applying endurance groups to zoned namespaces |
US11392436B2 (en) * | 2020-04-01 | 2022-07-19 | Western Digital Technologies, Inc. | Advanced file recovery method for flash memory |
US11709598B2 (en) * | 2020-09-21 | 2023-07-25 | EMC IP Holding Company LLC | Dynamic overprovisioning of storage device |
CN113093993B (zh) * | 2021-03-25 | 2023-08-22 | 深圳大普微电子科技有限公司 | 一种闪存空间动态分配方法及固态硬盘 |
US11487450B1 (en) * | 2021-05-14 | 2022-11-01 | Western Digital Technologies, Inc. | Storage system and method for dynamic allocation of control blocks for improving host write and read |
US11561695B1 (en) * | 2021-07-06 | 2023-01-24 | EMC IP Holding Company LLC | Using drive compression in uncompressed tier |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6681305B1 (en) * | 2000-05-30 | 2004-01-20 | International Business Machines Corporation | Method for operating system support for memory compression |
US7093089B2 (en) | 2003-08-18 | 2006-08-15 | Hewlett-Packard Development Company, Lp. | Systems and methods for storing data on computer systems |
US7899917B2 (en) * | 2007-02-01 | 2011-03-01 | Microsoft Corporation | Synchronization framework for occasionally connected applications |
US8230300B2 (en) * | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
CN102203773B (zh) * | 2008-09-19 | 2014-03-19 | 甲骨文国际公司 | 在具有卸载的布隆过滤器的智能存储器中利用协同并行过滤的哈希联接 |
US20100161909A1 (en) | 2008-12-18 | 2010-06-24 | Lsi Corporation | Systems and Methods for Quota Management in a Memory Appliance |
US20100161929A1 (en) | 2008-12-18 | 2010-06-24 | Lsi Corporation | Flexible Memory Appliance and Methods for Using Such |
US20100162065A1 (en) | 2008-12-19 | 2010-06-24 | Unity Semiconductor Corporation | Protecting integrity of data in multi-layered memory with data redundancy |
US8725946B2 (en) | 2009-03-23 | 2014-05-13 | Ocz Storage Solutions, Inc. | Mass storage system and method of using hard disk, solid-state media, PCIe edge connector, and raid controller |
US8832354B2 (en) * | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8479080B1 (en) * | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8214580B2 (en) * | 2009-10-23 | 2012-07-03 | International Business Machines Corporation | Solid state drive with adjustable drive life and capacity |
US9183134B2 (en) * | 2010-04-22 | 2015-11-10 | Seagate Technology Llc | Data segregation in a storage device |
US8489855B2 (en) * | 2010-05-07 | 2013-07-16 | Ocz Technology Group Inc. | NAND flash-based solid state drive and method of operation |
US8745278B2 (en) * | 2010-10-13 | 2014-06-03 | Rosemount Inc. | Field device with self description |
CN102135942B (zh) * | 2010-12-31 | 2013-04-24 | 北京握奇数据系统有限公司 | 一种存储设备中实现损耗均衡的方法及存储设备 |
US8886990B2 (en) * | 2011-01-27 | 2014-11-11 | Apple Inc. | Block management schemes in hybrid SLC/MLC memory |
WO2012148828A2 (en) | 2011-04-26 | 2012-11-01 | Lsi Corporation | Variable over-provisioning for non-volatile storage |
US8913335B2 (en) | 2011-05-23 | 2014-12-16 | HGST Netherlands B.V. | Storage device with shingled data and unshingled cache regions |
US9678676B2 (en) * | 2011-05-24 | 2017-06-13 | Marvell World Trade Ltd. | Method for storage devices to achieve low write amplification with low over provision |
CN102521306A (zh) * | 2011-12-01 | 2012-06-27 | 苏州迈科网络安全技术股份有限公司 | 一种数据存储系统应用方法 |
-
2012
- 2012-12-26 US US13/727,150 patent/US9141532B2/en active Active
-
2013
- 2013-09-23 KR KR1020157019904A patent/KR101937521B1/ko active IP Right Grant
- 2013-09-23 JP JP2015550377A patent/JP6298475B2/ja active Active
- 2013-09-23 CN CN201380068657.5A patent/CN105009091B/zh active Active
- 2013-09-23 WO PCT/US2013/061242 patent/WO2014105228A1/en active Application Filing
- 2013-09-23 EP EP13866866.0A patent/EP2939119B1/en active Active
-
2016
- 2016-04-07 HK HK16103998.8A patent/HK1216046A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
JP2016507816A (ja) | 2016-03-10 |
KR101937521B1 (ko) | 2019-01-10 |
KR20150099834A (ko) | 2015-09-01 |
EP2939119B1 (en) | 2018-11-28 |
US20140181369A1 (en) | 2014-06-26 |
HK1216046A1 (zh) | 2016-10-07 |
WO2014105228A1 (en) | 2014-07-03 |
EP2939119A4 (en) | 2016-10-05 |
CN105009091A (zh) | 2015-10-28 |
EP2939119A1 (en) | 2015-11-04 |
US9141532B2 (en) | 2015-09-22 |
JP6298475B2 (ja) | 2018-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105009091B (zh) | 一种数据存储系统及用于数据存储系统的动态预留空间方法 | |
US10430084B2 (en) | Multi-tiered memory with different metadata levels | |
CN103608782B (zh) | Lsb页面和msb页面中的选择性数据存储 | |
US8046526B2 (en) | Wear leveling method and controller using the same | |
US9292440B2 (en) | Adaptive over-provisioning in memory systems | |
US8819336B2 (en) | Nonvolatile memory system and related method of preserving stored data during power interruption | |
US8819334B2 (en) | Solid state drive data storage system and method | |
CN105573681B (zh) | 一种ssd盘片内部raid组建方法及系统 | |
CN109992530A (zh) | 一种固态驱动器设备及基于该固态驱动器的数据读写方法 | |
CN107003942A (zh) | 对用于增强存储设备的性能和持久性的解除映射命令的处理 | |
US20160179403A1 (en) | Storage controller, storage device, storage system, and semiconductor storage device | |
CN109901794A (zh) | 使用主机空闲来操作垃圾收集的设备和方法 | |
CN102043721B (zh) | 闪存存储管理方法 | |
CN106371761A (zh) | 内存系统以及非易失性内存的控制方法 | |
CN106569748A (zh) | Flash文件系统的数据处理方法和装置 | |
CN103688247A (zh) | 混合slc/mlc存储器中的块管理方案 | |
CN105074676A (zh) | 数据存储系统的数据的多个流压缩和格式化 | |
CN109240937A (zh) | 数据存储装置及其操作方法 | |
DE102021115500A1 (de) | Hostverwaltete hardwarekomprimierung mit gezonten namensräumen | |
Bu et al. | The optimization of the hierarchical storage system based on the hybrid ssd technology | |
US9348741B1 (en) | Systems and methods for handling write data access requests in data storage devices | |
CN111338975A (zh) | 面向多流的垃圾回收方法及其存储设备 | |
CN114911631B (zh) | 基于持久内存技术的全局资源管理方法及系统 | |
Drossel | Methodologies for calculating ssd useable life | |
CN112527692A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1216046 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1216046 Country of ref document: HK |