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

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

Info

Publication number
CN105051700A
CN105051700A CN201480015235.6A CN201480015235A CN105051700A CN 105051700 A CN105051700 A CN 105051700A CN 201480015235 A CN201480015235 A CN 201480015235A CN 105051700 A CN105051700 A CN 105051700A
Authority
CN
China
Prior art keywords
redundant
memory space
configuration
available memory
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201480015235.6A
Other languages
English (en)
Other versions
CN105051700B (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 Computer 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 Computer Inc filed Critical Apple Computer Inc
Priority to CN201710977297.0A priority Critical patent/CN107678695B/zh
Publication of CN105051700A publication Critical patent/CN105051700A/zh
Application granted granted Critical
Publication of CN105051700B publication Critical patent/CN105051700B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/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
    • 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/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
    • 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/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
    • 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

本发明公开了一种方法,该方法包括在控制存储器的存储器控制器中,评估存储器中剩余的可用存储器空间以写入数据。在存储器控制器中,根据可用存储器空间选择冗余存储配置。使用所选择的冗余存储配置对数据计算冗余信息。将数据和冗余信息写入存储器中的可用存储器空间。

Description

基于可用存储器空间选择冗余存储配置
技术领域
本发明整体涉及存储器系统,并且具体涉及冗余存储配置。
背景技术
非易失性存储器系统,诸如固态驱动器(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 (19)

1.一种方法,包括:
在控制存储器的存储器控制器中,评估所述存储器中剩余用以写入数据的可用存储器空间;
在所述存储器控制器中,根据所述可用存储器空间选择冗余存储配置;
使用所选择的冗余存储配置对所述数据计算冗余信息;以及
将所述数据和所述冗余信息写入所述存储器中的所述可用存储器空间。
2.根据权利要求1所述的方法,其中选择冗余存储配置包括基于所述可用存储器空间选择对其计算了冗余信息的多个存储块。
3.根据权利要求1所述的方法,其中选择冗余存储配置包括选择具有取决于所述可用存储器空间的编码速率的纠错码(ECC),并且其中计算冗余信息包括使用所选择的ECC来计算所述冗余信息。
4.根据权利要求1所述的方法,其中选择冗余存储配置包括将一个或多个存储块从存储所述冗余信息的一部分重新分配为存储所述数据的一部分。
5.根据权利要求1所述的方法,其中选择冗余存储配置包括从针对一个或多个整个存储块的故障进行保护的第一存储配置切换至针对仅所述存储块的部分的故障进行保护的第二存储配置。
6.根据权利要求5所述的方法,其中执行从所述第一存储配置切换至所述第二存储配置,同时循环利用由所述第一存储配置所产生的冗余块。
7.根据权利要求1所述的方法,其中选择冗余存储配置包括在检测到所述可用存储器空间低于预定义阈值时修改所述冗余存储配置。
8.一种装置,包括:
存储器;和
存储器控制器,所述存储器控制器被配置为评估所述存储器中剩余用以写入数据的可用存储器空间,根据所述可用存储器空间选择冗余存储配置,使用所选择的冗余存储配置对所述数据计算冗余信息,以及将所述数据和所述冗余信息写入所述存储器中的所述可用存储器空间。
9.根据权利要求8所述的装置,其中所述存储器控制器被配置为基于所述可用存储器空间选择对其计算了冗余信息的多个存储块。
10.根据权利要求8所述的装置,其中所述存储器控制器被配置为选择具有取决于所述可用存储器空间的编码速率的纠错码(ECC),并且使用所选择的ECC来计算所述冗余信息。
11.根据权利要求8所述的装置,其中所述存储器控制器被配置为将一个或多个存储块从存储所述冗余信息的一部分重新分配为存储所述数据的一部分。
12.根据权利要求8所述的装置,其中所述存储器控制器被配置为从针对一个或多个整个存储块的故障进行保护的第一存储配置切换至针对仅所述存储块的部分的故障进行保护的第二存储配置。
13.根据权利要求12所述的装置,其中所述存储器控制器被配置为从所述第一存储配置切换至所述第二存储配置,同时循环利用由所述第一存储配置所产生的冗余块。
14.根据权利要求8所述的装置,其中所述存储器控制器被配置为在检测到所述可用存储器空间低于预定义阈值时修改所述冗余存储配置。
15.一种存储器控制器,包括:
用于与存储器通信的接口;和
处理器,所述处理器被配置为评估所述存储器中剩余用以写入数据的可用存储器空间,根据所述可用存储器空间选择冗余存储配置,使用所选择的冗余存储配置对所述数据计算冗余信息,以及将所述数据和所述冗余信息写入所述存储器中的所述可用存储器空间。
16.根据权利要求15所述的存储器控制器,其中所述处理器被配置为基于所述可用存储器空间选择对其计算了冗余信息的多个存储块。
17.根据权利要求15所述的存储器控制器,其中所述处理器被配置为将一个或多个存储块从存储所述冗余信息的一部分重新分配为存储所述数据的一部分。
18.根据权利要求15所述的存储器控制器,其中所述处理器被配置为从针对一个或多个整个存储块的故障进行保护的第一存储配置切换至针对仅所述存储块的部分的故障进行保护的第二存储配置。
19.根据权利要求15所述的存储器控制器,其中所述处理器被配置为在检测到所述可用存储器空间低于预定义阈值时修改所述冗余存储配置。
CN201480015235.6A 2013-03-14 2014-03-05 基于可用存储器空间选择冗余存储配置 Active CN105051700B (zh)

Priority Applications (1)

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

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/826,203 US9098445B2 (en) 2013-03-14 2013-03-14 Selection of redundant storage configuration based on available memory space
US13/826,203 2013-03-14
PCT/US2014/020586 WO2014158860A1 (en) 2013-03-14 2014-03-05 Selection of redundant storage configuration based on available memory space

Related Child Applications (1)

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

Publications (2)

Publication Number Publication Date
CN105051700A true CN105051700A (zh) 2015-11-11
CN105051700B CN105051700B (zh) 2017-10-20

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 After (1)

Application Number Title Priority Date Filing Date
CN201710977297.0A Active CN107678695B (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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111615686A (zh) * 2018-01-24 2020-09-01 苹果公司 分布式冗余存储系统
CN114500567A (zh) * 2022-01-13 2022-05-13 骤雨湾(武汉)技术服务有限公司 远程附件多冗余存储方法、装置、设备及存储介质

Families Citing this family (13)

* 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
RU2641369C2 (ru) * 2013-03-15 2018-01-17 Эбботт Дайабитиз Кэр Инк. Способы и системы обработки и передачи данных медицинского устройства
US9778986B2 (en) * 2014-03-28 2017-10-03 Hitachi, Ltd. Storage system
CN104794070B (zh) * 2015-04-23 2017-10-31 南京道熵信息技术有限公司 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
CN109656486B (zh) * 2015-11-27 2022-07-12 华为技术有限公司 固态硬盘的配置方法、数据存储方法、固态硬盘和存储控制器
US9940194B2 (en) * 2016-03-04 2018-04-10 Sandisk Technologies Llc ECC decoding using raid-type parity
US11762568B2 (en) 2017-03-16 2023-09-19 Microsoft Technology Licensing, Llc Storage system control
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
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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN101449234A (zh) * 2006-05-18 2009-06-03 巴比祿股份有限公司 数据存储装置以及数据存储方法
US20090319864A1 (en) * 2008-06-20 2009-12-24 Denali Software, Inc. Method and apparatus for dynamically configurable multi level error correction
CN101840377A (zh) * 2010-05-13 2010-09-22 上海交通大学 基于rs纠删码的数据存储方法
CN101950586A (zh) * 2009-03-27 2011-01-19 联发科技股份有限公司 存储控制器及控制数据读取的方法
US20110060967A1 (en) * 2009-09-08 2011-03-10 Lsi Corporation Systems and Methods for Re-Designating Memory Regions as Error Code Corrected Memory Regions
US20120084506A1 (en) * 2010-10-01 2012-04-05 John Colgrove Distributed multi-level protection in a raid array based storage system

Family Cites Families (18)

* 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
CN101512661B (zh) * 2006-05-12 2013-04-24 苹果公司 用于存储设备的失真估计与纠错编码的组合
US20090113235A1 (en) 2007-10-30 2009-04-30 Selinger Robert D Raid with redundant parity
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
CN101493754B (zh) * 2009-03-13 2011-02-02 成都市华为赛门铁克科技有限公司 存储系统及其控制方法
CN101847447A (zh) * 2009-03-27 2010-09-29 联发科技股份有限公司 存储控制器、存储控制方法及数据存取系统
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
JP5388976B2 (ja) 2010-09-22 2014-01-15 株式会社東芝 半導体記憶制御装置
US8639899B2 (en) * 2011-04-26 2014-01-28 Hitachi, Ltd. Storage apparatus and control method for redundant data management within tiers
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 メモリコントローラ、メモリシステムおよびメモリ書込み方法
JP5378574B1 (ja) * 2012-06-13 2013-12-25 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US9098445B2 (en) * 2013-03-14 2015-08-04 Apple Inc. Selection of redundant storage configuration based on available memory space

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN101449234A (zh) * 2006-05-18 2009-06-03 巴比祿股份有限公司 数据存储装置以及数据存储方法
US20090319864A1 (en) * 2008-06-20 2009-12-24 Denali Software, Inc. Method and apparatus for dynamically configurable multi level error correction
CN101950586A (zh) * 2009-03-27 2011-01-19 联发科技股份有限公司 存储控制器及控制数据读取的方法
US20110060967A1 (en) * 2009-09-08 2011-03-10 Lsi Corporation Systems and Methods for Re-Designating Memory Regions as Error Code Corrected Memory Regions
CN101840377A (zh) * 2010-05-13 2010-09-22 上海交通大学 基于rs纠删码的数据存储方法
US20120084506A1 (en) * 2010-10-01 2012-04-05 John Colgrove Distributed multi-level protection in a raid array based storage system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111615686A (zh) * 2018-01-24 2020-09-01 苹果公司 分布式冗余存储系统
CN111615686B (zh) * 2018-01-24 2023-12-15 苹果公司 分布式冗余存储系统
CN114500567A (zh) * 2022-01-13 2022-05-13 骤雨湾(武汉)技术服务有限公司 远程附件多冗余存储方法、装置、设备及存储介质

Also Published As

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

Similar Documents

Publication Publication Date Title
CN105051700B (zh) 基于可用存储器空间选择冗余存储配置
US10664345B2 (en) Physical page, logical page, and codeword correspondence
CN108733319B (zh) 用于非易失性存储器中的混合推拉数据管理的系统和方法
CN103902403B (zh) 经由冗余阵列的非易失性存储器编程故障恢复
CN102023815B (zh) 在固态存储器中实现raid
US10339000B2 (en) Storage system and method for reducing XOR recovery time by excluding invalid data from XOR parity
US9292382B2 (en) Codewords that span pages of memory
KR101826051B1 (ko) 비휘발성 메모리 장치의 제어 방법 및 비휘발성 메모리 시스템
US8612836B2 (en) Non-volatile memory device with uncorrectable information region and operation method using the same
US8769378B2 (en) Controller, a method of operating the controller and a memory system
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
KR20130111821A (ko) Raid 메모리 시스템
CN105206306A (zh) 在非易失性存储器处理纠错码的方法及非易失性存储装置
KR102193946B1 (ko) 적응성 마모 균등화
US20170228299A1 (en) Data Recovery in Three Dimensional Non-Volatile Memory Array After Word Line Short
US10756764B2 (en) Memory system and control method
US9026893B1 (en) Dynamically assigning inactive pages not used in Reed-Solomon code in non-volatile solid-state storage array
JP2023532237A (ja) プログラミング障害に対する独立ディスクの冗長アレイのストライピングのための方法およびその装置
CN111597071A (zh) 数据存储设备中的纠错
CN114080596A (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