CN107678695B - 基于可用存储器空间选择冗余存储配置 - Google Patents

基于可用存储器空间选择冗余存储配置 Download PDF

Info

Publication number
CN107678695B
CN107678695B CN201710977297.0A CN201710977297A CN107678695B CN 107678695 B CN107678695 B CN 107678695B CN 201710977297 A CN201710977297 A CN 201710977297A CN 107678695 B CN107678695 B CN 107678695B
Authority
CN
China
Prior art keywords
chunk
memory
data
blocks
redundancy
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
Application number
CN201710977297.0A
Other languages
English (en)
Other versions
CN107678695A (zh
Inventor
A·P·梅尔
O·戈罗维
S·帕莱伊
O·M·斯泰恩
E·扎尔斯曼
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of CN107678695A publication Critical patent/CN107678695A/zh
Application granted granted Critical
Publication of CN107678695B publication Critical patent/CN107678695B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及基于可用存储器空间选择冗余存储配置。公开了一种设备,包括耦接到存储器的接口和处理器。该存储器包括至少一个独立磁盘冗余阵列RAID条带,所述条带包括第一组块和第二组块。该处理器被配置为:确定存储器中对于存储新数据可用的空间的量;响应于确定存储器中对于存储新数据可用的空间的量小于预定义的阈值,增加第一组块的块数;计算要使用第一冗余方案存储在所述至少一个RAID条带中的数据的第一冗余信息;把数据存储在第一组块中并且把冗余信息存储在第二组块中。为了增加第一组块的块数,计算要使用第二冗余方案存储在第一组块中的至少一个块中的数据的第二冗余信息。与第二冗余方案关联的存储开销低于与第一冗余方案关联的开销。

Description

基于可用存储器空间选择冗余存储配置
本申请是国际申请日为2014年3月5日的、名称为“基于可用存储器空间选择冗余存储配置”的发明专利申请No.201480015235.6(PCT/US2014/020586)的分案申请。
技术领域
本发明整体涉及存储器系统,并且具体涉及冗余存储配置。
背景技术
非易失性存储器系统,诸如固态驱动器(SSD),有时使用冗余存储方案存储数据以确保在存储器出现故障的情况下可成功恢复写入SSD的数据。针对非易失性存储器的各种冗余存储方案在本领域中是已知的。
例如,美国专利申请公布2010/0017650描述了一种非易失性存储器数据存储系统,其包括用于与外部主机通信的主机接口以及包括第一多个闪存存储器设备的主存储装置,该公开以引用方式并入本文。每个存储器设备包括第二多个存储块。第三多个第一级控制器耦接至第一多个闪存存储器设备。第二级控制器通过内部接口耦接至主机接口和第三多个第一级控制器。第二级控制器被配置为根据至少一个奇偶校验执行独立磁盘冗余阵列(RAID)操作以便数据恢复。
又如,美国专利申请公布2009/0204872描述了一种闪存模块,该闪存模块具有由控制器通过物理块地址(PBA)总线访问的未加工NAND闪存存储器芯片,该公开以引用方式并入本文。控制器将逻辑块地址转换为物理块地址。在一些实施例中,数据可被布置成提供类似于RAID系统的冗余存储装置,以便提高系统可靠性。
发明内容
本文所述的本发明的实施例提供了一种方法,该方法包括在控制存储器的存储器控制器中,评估存储器中剩余的可用存储器空间以写入数据。在存储器控制器中,根据可用存储器空间选择冗余存储配置。使用所选择的冗余存储配置对数据计算冗余信息。将数据和冗余信息写入存储器中的可用存储器空间。
在一些实施例中,选择冗余存储配置包括基于可用存储器空间选择对其计算冗余信息的多个存储块。在其他实施例中,选择冗余存储配置包括选择具有编码速率的纠错码(ECC),该编码速率取决于可用存储器空间,并且计算冗余信息包括使用所选择的ECC来计算冗余信息。在其他实施例中,选择冗余存储配置包括将一个或多个存储块从存储冗余信息的一部分重新分配为存储数据的一部分。
在一些实施例中,选择冗余存储配置包括从针对一个或多个整个存储块的故障进行保护的第一存储配置切换至针对存储块的仅部分的故障进行保护的第二存储配置。在其他实施例中,从第一存储配置切换至第二存储配置是在循环利用由该第一存储配置所产生的冗余块时执行的。在其他实施例中,选择冗余存储配置包括在检测到可用存储器空间小于预定义阈值时修改冗余存储配置。
根据本发明的实施例,还提供了一种装置,该装置包括存储器和存储器控制器。存储器控制器被配置为评估存储器中剩余的可用存储器空间以写入数据,根据可用存储器空间选择冗余存储配置,使用所选择的冗余存储配置对数据计算冗余信息,以及将数据和冗余信息写入存储器中的可用存储器空间。
根据本发明的实施例,还提供了一种存储器控制器,该存储器控制器包括接口和处理器。接口被配置为与存储器进行通信。处理器被配置为评估存储器中剩余的可用存储器空间以写入数据,根据可用存储器空间选择冗余存储配置,使用所选择的冗余存储配置对数据计算冗余信息,以及将数据和冗余信息写入存储器中的可用存储器空间。
本发明将结合如下附图通过其实施例的以下详细描述更全面理解。
附图说明
图1为根据本发明的实施例示意性地示出存储器系统的框图;并且
图2为根据本发明的实施例示意性地示出用于选择冗余存储配置的方法的流程图。
具体实施方式
概述
本文所述的本发明的实施例提供了用于针对存储器故障来保护存储系统诸如固态驱动器(SSD)的改进的冗余存储方案。本发明所公开的技术允许存储器控制器基于可用存储器空间自由选择冗余存储配置以便改善存储器系统的整体性能。
例如,在控制器评估出可能没有足够存储器空间来写入新数据的情况下,存储器控制器可从存储冗余信息到存储数据重新分配存储器空间。又如,在可用存储器空间很小的情况下,存储器控制器可选择产生较少冗余信息并进而减少开销的冗余存储方案。
在典型的具体实施中,存储器控制器首先评估当前可用存储器空间。存储器控制器继而可基于当前可用存储器空间灵活选择用于计算新的冗余信息以及存储器空间的方法,其中新的冗余信息和新的数据将同时占据该存储器空间。
使用本文所述的公开技术,可按需以存储装置可靠性来换取存储器空间:在可用存储器空间允许的情况下,以很高的可靠性来存储数据。在存储器变满的情况下,可以对故障的恢复能力上的一些下降为代价来获得附加存储器空间。
系统描述
图1为根据本发明实施例的示意性说明存储器系统20的框图。主机10发送用于存储的数据并相反地接收从存储器系统20的存储装置中恢复的数据。系统20可用于各种主机系统和设备中,诸如用于计算设备、蜂窝电话或其他通信终端、可移除的存储器模块(有时称为“USB闪存驱动器”)、固态驱动器(SSD)、数字相机、音乐播放器和其他媒体播放器和/或数据在其中存储和恢复的任何其他系统或设备。
存储器系统20包括读取并写入数据到非易失性存储器的存储器控制器25,以及在本实例中一个或多个闪存存储器设备30。控制器25包括用于与主机10通信的主机接口35、实施本文所述方法的处理器40、随机存取存储器(RAM)45,以及用于与闪存设备30通信的存储器接口50。
在另选的实施例中,存储器系统20中的非易失性存储器可包括任何其他合适类型的非易失性存储器,诸如例如NOR闪存、电荷撷取闪存(CTF)、相位变化RAM(PRAM)、磁阻RAM(MRAM)或铁电体RAM(FeRAM)。
每个闪存设备包括多个模拟存储器单元。每个模拟存储器单元存储模拟电压,也称为存储值,诸如电荷或电压,其表示存储于单元中的信息。在闪存存储器中,可能模拟值的范围被分成多个区域,每个区域对应于一个或多个数据位值。通过写入对应于一个或多个期望位的标称模拟值来将数据写入模拟存储器单元中。
通常,每个设备30中的存储器单元布置在存储块中。每个存储块包括存储器单元阵列,这些存储器单元阵列的行与字线相关联并且它们的列与位线相关联。每条字线通常存储一页或多页数据。数据通常以页单元进行写入和读取,并且以块单元进行擦除。系统20的性能可能受到各种存储器故障的影响,例如块故障或字线故障。在本文所述的一些实施例中,存储器控制器25应用冗余存储配置,该冗余存储配置保护所存储数据免受此类故障的影响。
控制器25,并且具体地处理器40,可在硬件中实现。另选地,控制器可包括微处理器,所述微处理器运行合适的软件或硬件和软件元件的组合。
图1的配置为示例性系统配置,其纯粹为了概念上的清楚而示出。也可使用任何其他合适的存储器系统配置。为了清楚起见,已从附图中省略了对于理解本发明的原理非必需的元件,诸如各种接口、寻址电路、计时和排序电路及调试电路。
尽管图1的实例示出了三个存储器设备30,但系统20还可包括由存储器控制器25控制的任何期望数量的存储器设备。在图1所示的示例性系统配置下,存储器设备30和存储器控制器25实现为两个单独的集成电路(IC)。然而,在另选的实施例中,存储器设备和存储器控制器可集成于单个多芯片封装(MCP)或片上系统(SoC)的单独的半导体模片上,并且可由内部总线互连。此外作为另外一种选择,存储器控制器电路的一些或全部可位于存储器设备所设置在的同一模片上。此外作为另外一种选择,存储器控制器25的一些功能或全部功能能够在软件中实施并通过处理器或主机系统的其他元件执行。在一些实施例中,主机10和存储器控制器25可在同一模片上制造,或在同一设备封装中的单独模片上制造。
在一些实施例中,存储器控制器25包括通用处理器,其在软件中编程以执行本文所述的功能。软件可例如通过网络以电子形式下载至处理器,或者另选地或除此之外,其可设置和/或存储在非临时性有形介质上,诸如磁存储器、光学存储器或电子存储器。
基于可用存储器空间选择冗余存储配置
如上所述,各种类型的存储器故障可能在设备30中出现。可能的存储器故障包括例如设备30中的一个设备中的存储块或字线的故障。为了保护数据免受此类故障的影响,存储器控制器25使用冗余存储配置存储数据。
在一些实际情况下,大部分块故障在编程期间出现,并因此在此阶段通常需要较高程度的保护。用于保护数据免受编程故障影响的示例性技术在提交于2012年8月23日的美国专利申请13/592,561中有所描述,其转让给本专利申请的受让人并且其公开通过引用的方式并入本文中。
通常,存储器控制器计算针对某些数据的冗余信息,并且将数据和冗余信息存储在设备30中。冗余存储配置被设计成使得在存储器故障的情况下,出现故障的存储器单元中的数据可使用剩余数据和冗余信息进行重建。例如,存储器控制器可使用RAID方案来达成此目的。
然而,在实施过程中,冗余存储装置的故障恢复力以牺牲存储器空间为代价而实现。更多冗余通常提高了对故障的恢复力,但另一方面,降低了可用存储器空间。在一些实施例中,存储器控制器25调整冗余信息的相对大小,即由冗余存储装置所引发的存储器开销量,以匹配设备30中的可用存储器空间。
图2为根据本发明的实施例示意性地示出用于选择冗余存储配置的方法的流程图。在评估步骤100中,存储器控制器25评估存储器设备30中的可用存储器空间以写入数据。在选择步骤110中,存储器控制器25根据可用存储器空间选择冗余存储配置。在计算步骤120中,存储器控制器25使用所选择的冗余存储配置计算冗余信息。在写入步骤130中,存储器控制器25将数据和冗余信息写入存储器中的可用存储器空间。
在一个冗余存储配置下,可在步骤120中通过对多个数据存储块执行逐位逻辑异或操作来计算冗余信息,以产生在步骤130中存储于存储器中的异或奇偶校验块。使用此类RAID异或技术,RAID条带包括N个块:N-1个数据块和通过在N-1个数据块上逐位异或操作来计算的奇偶校验(冗余)块,其中N为整数。在条带中发生单个块故障的情况下,存储器控制器可从奇偶校验块和其余块中重建数据。
对于较小N,针对给定数据量计算更多奇偶校验块,并且减小SSD中可用的存储器空间量。相反地,通过增大N,从较大数量的数据块创建每个奇偶校验块,从而增大可用存储器空间。
在一个实施例中,如果在步骤100中存储器控制器检测到对新数据可用的存储器空间小于预定义阈值,则控制器可在步骤110中增大N以便在步骤120中通过对更多数据块计算异或来创建冗余数据。增大N减小了奇偶校验块的数量,或有效地减小了由所有冗余信息所占据的存储器空间。剩余的可用存储器空间例如可用于存储新的数据或用于提供更多预留空间。
在另选的冗余存储配置下,存储器控制器25可在步骤120中使用纠错码(ECC)方案来计算冗余信息。换句话讲,这些实施例中的冗余信息包括ECC的冗余位。对所存储的ECC编码数据进行解码可用于恢复丢失数据。在非易失性存储器系统中常用的一种特殊类别的代码为低密度奇偶校验(LDPC)码。也可使用其他类别的代码,诸如Bose-Chaudhuri-Hocquenghem(BCH)码。编码方案中所使用的冗余位可与数据块一起或独立于数据块存储在存储块中。
对于这些类别的ECC码中的每种代码,编码数据大小与最初的原始数据大小的比被称为编码速率。一些ECC编码器和解码器可被配置为修改编码速率使得在步骤100中所评估的可用存储器空间小于预定义阈值的情况下,存储器控制器能够在步骤110中减小存储器中编码数据的大小。另选地,存储器控制器可在步骤110中改变编码方案以在编码速率上作出有效变化以便响应于步骤100中的可用存储器空间而在步骤130中改变写入存储器的冗余信息的大小。
在基于前述的异或方案或ECC方案的任一冗余存储配置下,存储器控制器可响应于在步骤100中对存储器中剩余的当前可用存储器空间的初步评估来改变存储于存储器中的冗余信息的大小以写入新数据。如果可用存储器小于预定义阈值,则可在步骤120中使得冗余信息的大小变小。在几乎未剩下内存能够用于新数据的情况下,存储器控制器甚至可在步骤110中决定不创建任何冗余信息。存储器控制器可在步骤110中决定改变整体冗余存储配置,例如从ECC变为XOR,或者变为任何合适的冗余方案。
前述ECC和XOR的冗余方案和图2所示的流程图以举例的方式示出而并非限于本发明的实施例。根据本发明的实施例,可使用任何合适的冗余存储配置,其中存储器控制器具有响应于在步骤100中评估出可用存储器空间已被降至小于预定义阈值而在步骤110和步骤120中有效改变存储于存储器中的冗余信息的大小的灵活性。
在一些实施例中,存储器控制器通过将之前用作奇偶校验块的存储块重新分配为用作数据块来修改冗余存储配置。该重新分配例如可发生在RAID条带被成功写入之后。这种重新分配有效地将奇偶校验块变为数据块。因此,当用于新数据的存储器空间小于预定义阈值时,专用于冗余的存储器空间的比例动态地变化。
在其他实施例中,存储器控制器将冗余信息存储在专用冗余条带中,例如专用块组中。在存储器变满时,存储器控制器可重新分配冗余条带或其部分以供存储新数据。
一般来讲,冗余存储配置可包括将步骤120中所计算的冗余信息存储在奇偶校验块或条带中,在存储器控制器检测到在步骤100中所评估的用于新数据的可用空间过小(例如,小于预定义阈值)时,该奇偶校验块或条带被重复使用。冗余信息可在步骤130中存储在第一单独闪存存储器设备中的可重复使用的奇偶校验块或条带中,并且可将数据写入到不同用于冗余信息的第一闪存设备的一个或多个闪存存储器设备的数据块中,以便增加重复用于冗余信息的数据块的耐力。
在其他实施例中,存储器控制器25可在编程期间针对块故障施加充分保护,并且之后在读出期间回复到仅针对字线故障进行保护。在这些实施例中,存储器控制器最初使用产生针对块故障进行保护的冗余块的冗余存储配置来存储数据。在循环利用冗余块(例如,作为“垃圾收集”过程的压缩的部分)时,存储器控制器可用针对单个字线故障进行保护的单个冗余页来代替整个冗余块。例如,后一种方案引发更少开销,因为其仅保护有效页面而不是整个块。
尽管本文所述的实施例主要解决固态驱动器中的冗余配置,但本文所述的方法也可用于任何其他合适的数据存储系统。
因此,应理解,上述实施例以举例的方式进行引用,并且本发明并不限于上文具体示出并描述的内容。相反,本发明的范围包括本领域的技术人员在阅读前述描述时认识到的并且在现有技术中未公开的上文所述各种特征的组合和子组合及其变型形式和修改形式。在本专利申请中以引用方式并入的文献被认为是本申请不可分割的一部分,但如果任何术语在这些并入的文献中被定义成与本说明书中明确地或隐含地作出的定义相冲突,应仅考虑本说明书中的定义。

Claims (20)

1.一种用于数据存储的设备,包括:
耦接到存储器的接口,其中所述存储器包括至少一个独立磁盘冗余阵列RAID条带,其中所述至少一个RAID条带包括第一组块和第二组块;以及
处理器,被配置为:
确定所述存储器中对于存储新数据可用的空间的量;
响应于确定所述存储器中对于存储新数据可用的空间的量小于预定义的阈值,增加第一组块的块数;
计算要使用第一冗余方案存储在所述至少一个RAID条带中的数据的第一冗余信息;以及
把所述数据存储在第一组块中并且把所述冗余信息存储在第二组块中;
其中为了增加第一组块的块数,所述处理器还被配置为计算要使用第二冗余方案存储在第一组块中的至少一个块中的数据的第二冗余信息,其中与第二冗余方案关联的存储开销低于与第一冗余方案关联的开销。
2.根据权利要求1所述的设备,其中为了增加第一组块的块数,所述处理器还被配置为把第二组块中的块重新分配给第一组块。
3.根据权利要求1所述的设备,其中所述处理器还被配置为取决于对于存储新数据可用的所述空间的量,选择用于纠错码ECC的编码速率。
4.根据权利要求3所述的设备,其中为了计算所述冗余信息,所述处理器还被配置为计算使用所述编码速率的所述ECC。
5.根据权利要求1所述的设备,其中为了计算所述冗余信息,所述处理器还被配置为计算要存储在第一组块中的数据的逐位XOR。
6.根据权利要求1所述的设备,其中所述存储器包括多个非易失性存储器装置。
7.一种用于数据存储的方法,包括:
确定存储器中对于存储新数据可用的空间的量,其中所述存储器包括至少一个独立磁盘冗余阵列RAID条带,其中所述至少一个RAID条带包括第一组块和第二组块;
响应于确定所述存储器中对于存储新数据可用的空间的量小于预定义的阈值,增加第一组块的块数;
计算要使用第一冗余方案存储在所述至少一个RAID条带中的数据的第一冗余信息;以及
把所述数据存储在第一组块中并且把所述冗余信息存储在第二组块中;
其中增加第一组块的块数包括计算要使用第二冗余方案存储在第一组块中的至少一个块中的数据的第二冗余信息,其中与第二冗余方案关联的存储开销低于与第一冗余方案关联的开销。
8.根据权利要求7所述的方法,其中增加第一组块的块数包括把第二组块中的给定块重新分配给第一组块。
9.根据权利要求8所述的方法,其中把第二组块中的给定块重新分配给第一组块包括确定对所述至少一个RAID条带的写操作已完成。
10.根据权利要求7所述的方法,还包括取决于对于存储新数据可用的所述空间的量,选择用于纠错码ECC的编码速率。
11.根据权利要求10所述的方法,其中计算所述冗余信息包括计算要存储在第一组块中的数据的逐位XOR。
12.根据权利要求7所述的方法,其中所述存储器包括多个非易失性存储器装置。
13.根据权利要求12所述的方法,其中第一组块被包括在所述多个非易失性存储器装置的第一子集中,并且其中第二组块被包括在所述多个非易失性存储器装置的与第一子集不同的第二子集中。
14.一种用于数据存储的系统,包括:
存储器,包括至少一个独立磁盘冗余阵列RAID条带,其中所述至少一个RAID条带包括第一组块和第二组块;和
存储器控制器,被配置为:
确定所述存储器中对于存储新数据可用的空间的量;
响应于确定所述存储器中对于存储新数据可用的空间的量小于预定义的阈值,增加第一组块的块数;
计算要使用第一冗余方案存储在所述至少一个RAID条带中的数据的第一冗余信息;以及
把所述数据存储在第一组块中并且把所述冗余信息存储在第二组块中;
其中为了增加第一组块的块数,所述存储器控制器还被配置为计算要使用第二冗余方案存储在第一组块中的至少一个块中的数据的第二冗余信息,其中与第二冗余方案关联的存储开销低于与第一冗余方案关联的开销。
15.根据权利要求14所述的系统,其中为了增加第一组块的块数,所述存储器控制器还被配置为把第二组块中的块重新分配给第一组块。
16.根据权利要求14所述的系统,其中所述存储器控制器还被配置为取决于对于存储新数据可用的所述空间的量,选择用于纠错码ECC的编码速率。
17.根据权利要求16所述的系统,其中为了计算所述冗余信息,所述存储器控制器还被配置为计算使用所述编码速率的所述ECC。
18.根据权利要求14所述的系统,其中为了计算所述冗余信息,所述存储器控制器还被配置为计算要存储在第一组块中的数据的逐位XOR。
19.根据权利要求14所述的系统,其中所述存储器包括多个非易失性存储器装置。
20.根据权利要求19所述的系统,其中第一组块被包括在所述多个非易失性存储器装置的第一子集中,并且其中第二组块被包括在所述多个非易失性存储器装置的与第一子集不同的第二子集中。
CN201710977297.0A 2013-03-14 2014-03-05 基于可用存储器空间选择冗余存储配置 Active CN107678695B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/826,203 2013-03-14
US13/826,203 US9098445B2 (en) 2013-03-14 2013-03-14 Selection of redundant storage configuration based on available memory space
CN201480015235.6A CN105051700B (zh) 2013-03-14 2014-03-05 基于可用存储器空间选择冗余存储配置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201480015235.6A Division CN105051700B (zh) 2013-03-14 2014-03-05 基于可用存储器空间选择冗余存储配置

Publications (2)

Publication Number Publication Date
CN107678695A CN107678695A (zh) 2018-02-09
CN107678695B true CN107678695B (zh) 2020-08-18

Family

ID=50391409

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201480015235.6A Active CN105051700B (zh) 2013-03-14 2014-03-05 基于可用存储器空间选择冗余存储配置
CN201710977297.0A Active CN107678695B (zh) 2013-03-14 2014-03-05 基于可用存储器空间选择冗余存储配置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201480015235.6A Active CN105051700B (zh) 2013-03-14 2014-03-05 基于可用存储器空间选择冗余存储配置

Country Status (7)

Country Link
US (2) US9098445B2 (zh)
JP (1) JP6125087B2 (zh)
KR (1) KR101679530B1 (zh)
CN (2) CN105051700B (zh)
DE (1) DE112014001305B4 (zh)
TW (1) TWI528174B (zh)
WO (1) WO2014158860A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014032516A (ja) * 2012-08-02 2014-02-20 Fujitsu Ltd ストレージ装置、制御装置およびデータ保護方法
US9098445B2 (en) * 2013-03-14 2015-08-04 Apple Inc. Selection of redundant storage configuration based on available memory space
JP6518231B2 (ja) * 2013-03-15 2019-05-22 アボット ダイアベティス ケア インコーポレイテッドAbbott Diabetes Care Inc. 医療デバイスデータ処理方法及びシステム、並びに医療デバイスデータ通信方法及びシステム
US9778986B2 (en) * 2014-03-28 2017-10-03 Hitachi, Ltd. Storage system
CN104794070B (zh) * 2015-04-23 2017-10-31 南京道熵信息技术有限公司 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
SG11201607335XA (en) * 2015-11-27 2017-07-28 Huawei Tech Co Ltd Method for storing data by storage device and storage device
US9940194B2 (en) * 2016-03-04 2018-04-10 Sandisk Technologies Llc ECC decoding using raid-type parity
WO2018165958A1 (en) 2017-03-16 2018-09-20 Microsoft Technology Licensing, Llc. Storage system control
US10901867B2 (en) * 2018-01-24 2021-01-26 Apple Inc. Distributed redundant storage system
JP6960877B2 (ja) 2018-03-22 2021-11-05 キオクシア株式会社 メモリシステム
TWI665550B (zh) * 2018-04-27 2019-07-11 威聯通科技股份有限公司 磁碟陣列的資料分佈方法及其資料儲存系統與記錄媒體
US11042661B2 (en) * 2018-06-08 2021-06-22 Weka.IO Ltd. Encryption for a distributed filesystem
GB2611575A (en) * 2021-10-11 2023-04-12 The Sec Dep For Business Energy And Industrial Strategy Connection of solid-state storage devices
CN114500567A (zh) * 2022-01-13 2022-05-13 骤雨湾(武汉)技术服务有限公司 远程附件多冗余存储方法、装置、设备及存储介质
US11861181B1 (en) 2022-08-10 2024-01-02 Bae Systems Information And Electronic Systems Integration Inc. Triple modular redundancy (TMR) radiation hardened memory system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101493754A (zh) * 2009-03-13 2009-07-29 成都市华为赛门铁克科技有限公司 存储系统及其控制方法
CN101501779A (zh) * 2006-05-12 2009-08-05 爱诺彼得技术有限责任公司 具有自适应容量的存储设备
CN101847447A (zh) * 2009-03-27 2010-09-29 联发科技股份有限公司 存储控制器、存储控制方法及数据存取系统
CN103489486A (zh) * 2012-06-13 2014-01-01 华邦电子股份有限公司 存储器装置以及冗余方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884093A (en) * 1994-09-02 1999-03-16 Rock Solid Systems, Inc. Hard disk cache for CD-ROM and other slow access time devices
GB2366014B (en) 2000-08-19 2004-10-13 Ibm Free space collection in information storage systems
US7130973B1 (en) 2003-08-08 2006-10-31 Sun Microsystems, Inc. Method and apparatus to restore data redundancy and utilize spare storage spaces
US20090204872A1 (en) 2003-12-02 2009-08-13 Super Talent Electronics Inc. Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules
US7424574B1 (en) * 2004-04-21 2008-09-09 Sun Microsystems, Inc. Method and apparatus for dynamic striping
US20070204028A1 (en) * 2006-02-24 2007-08-30 Hyun Lee Method of maximizing the information access rate from/to storage units in wired/wireless networks
JP4700562B2 (ja) * 2006-05-18 2011-06-15 株式会社バッファロー データ記憶装置およびデータ記憶方法
US20090113235A1 (en) 2007-10-30 2009-04-30 Selinger Robert D Raid with redundant parity
US8627169B2 (en) 2008-06-20 2014-01-07 Cadence Design Systems, Inc. Method and apparatus for dynamically configurable multi level error correction
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
US8418021B2 (en) * 2009-03-27 2013-04-09 Mediatek Inc. Storage controller with encoding/decoding circuit programmable to support different ECC requirements and related method thereof
US8499220B2 (en) 2009-09-08 2013-07-30 Lsi Corporation Systems and methods for re-designating memory regions as error code corrected memory regions
US8266501B2 (en) * 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
US8327226B2 (en) 2010-02-03 2012-12-04 Seagate Technology Llc Adjustable error correction code length in an electrical storage device
CN101840377A (zh) * 2010-05-13 2010-09-22 上海交通大学 基于rs纠删码的数据存储方法
JP5388976B2 (ja) 2010-09-22 2014-01-15 株式会社東芝 半導体記憶制御装置
US9348696B2 (en) 2010-10-01 2016-05-24 Pure Storage, Inc. Distributed multi-level protection in a raid array based storage system
WO2012147123A1 (en) * 2011-04-26 2012-11-01 Hitachi, Ltd. Storage apparatus and control method therefor
US8572466B2 (en) 2011-06-06 2013-10-29 Micron Technology, Inc. Apparatuses, systems, devices, and methods of replacing at least partially non-functional portions of memory
JP2013137713A (ja) 2011-12-28 2013-07-11 Toshiba Corp メモリコントローラ、メモリシステムおよびメモリ書込み方法
US9098445B2 (en) * 2013-03-14 2015-08-04 Apple Inc. Selection of redundant storage configuration based on available memory space

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101501779A (zh) * 2006-05-12 2009-08-05 爱诺彼得技术有限责任公司 具有自适应容量的存储设备
CN101493754A (zh) * 2009-03-13 2009-07-29 成都市华为赛门铁克科技有限公司 存储系统及其控制方法
CN101847447A (zh) * 2009-03-27 2010-09-29 联发科技股份有限公司 存储控制器、存储控制方法及数据存取系统
CN103489486A (zh) * 2012-06-13 2014-01-01 华邦电子股份有限公司 存储器装置以及冗余方法

Also Published As

Publication number Publication date
DE112014001305T5 (de) 2015-12-31
TWI528174B (zh) 2016-04-01
DE112014001305B4 (de) 2022-04-28
JP2016510928A (ja) 2016-04-11
US9098445B2 (en) 2015-08-04
TW201447562A (zh) 2014-12-16
CN107678695A (zh) 2018-02-09
JP6125087B2 (ja) 2017-05-10
CN105051700A (zh) 2015-11-11
WO2014158860A1 (en) 2014-10-02
CN105051700B (zh) 2017-10-20
US9465552B2 (en) 2016-10-11
KR101679530B1 (ko) 2016-11-24
US20150339073A1 (en) 2015-11-26
US20140281801A1 (en) 2014-09-18
KR20150119911A (ko) 2015-10-26

Similar Documents

Publication Publication Date Title
CN107678695B (zh) 基于可用存储器空间选择冗余存储配置
EP2825960B1 (en) Physical page, logical page, and codeword correspondence
US9292382B2 (en) Codewords that span pages of memory
CN103902403B (zh) 经由冗余阵列的非易失性存储器编程故障恢复
KR101636785B1 (ko) 독립 실리콘 소자들을 갖는 동적 상위 레벨 리던던시 모드 관리
US9058288B2 (en) Redundant storage in non-volatile memory by storing redundancy information in volatile memory
US10915394B1 (en) Schemes for protecting data in NVM device using small storage footprint
US10283216B2 (en) Data storage device and data maintenance method thereof
US10860422B2 (en) Method for performing data management in memory device, associated memory device and controller thereof
US10339343B2 (en) Storage system and method for improved generation and storage of data protection information
CN109857584B (zh) 于记忆装置进行访问控制的方法、记忆装置和其控制器
US9454429B2 (en) Protection against word line failure in memory devices
JP6491482B2 (ja) 複数のフラッシュ面にわたってコード語をインターリーブするための方法および/または装置
CN104252317A (zh) 数据写入方法、存储器控制器与存储器存储装置
CN111597071A (zh) 数据存储设备中的纠错
US9436547B2 (en) Data storing method, memory control circuit unit and memory storage device
CN113420341B (zh) 一种数据保护方法、数据保护设备及计算机系统

Legal Events

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