CN104871249B - 数据存储系统的自适应错误纠正码 - Google Patents

数据存储系统的自适应错误纠正码 Download PDF

Info

Publication number
CN104871249B
CN104871249B CN201380067610.7A CN201380067610A CN104871249B CN 104871249 B CN104871249 B CN 104871249B CN 201380067610 A CN201380067610 A CN 201380067610A CN 104871249 B CN104871249 B CN 104871249B
Authority
CN
China
Prior art keywords
data
code word
word length
memory array
page
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
CN201380067610.7A
Other languages
English (en)
Other versions
CN104871249A (zh
Inventor
G·陆
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies 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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN104871249A publication Critical patent/CN104871249A/zh
Application granted granted Critical
Publication of CN104871249B publication Critical patent/CN104871249B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/353Adaptation to the channel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6356Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields

Abstract

本发明公开了一种被配置为自适应地编码数据的数据存储系统,在一个实施例中,数据存储系统控制器确定非易失性存储器阵列的共同的存储器页大小,例如,E页大小。基于所述共同的存储器页大小,所述控制器从多个预定义的低密度奇偶校验(LDPC)码字长中选择LDPC码字长。所述控制器基于所选择的LDPC码字长来确定用于对写入到所述存储器阵列的数据或从所述存储器阵列读取的数据进行编码的LDPC编码参数。通过使用所述多个预定义的LDPC码字长,所述数据存储系统能够支持多个非易失性存储器页格式,包括这样的存储器页格式:其中所述共同的存储器页大小不等于所述多个预定义的LDPC码字长中的任何LDPC码字长。从而能够获得数据编码的灵活性和高效性。

Description

数据存储系统的自适应错误纠正码
技术领域
本公开涉及计算机系统的诸如固态硬盘等的数据存储系统。更具体地,本公开涉及数据存储系统的自适应错误纠正码。
背景技术
非易失性存储器阵列常常具有有限的耐久性。存储器阵列的耐久性通常视使用模式和磨损而定。另外,耐久性取决于非易失性存储器阵列的特定类型。例如,与具有单层单元(SLC)NAND介质的存储器阵列相比,具有多层单元(MLC)NAND介质的存储器阵列通常具有较低的耐久性。为了保护存储到存储器阵列的用户数据免于可能由减少的耐久性而导致的讹误,能够确定奇偶校验数据并且将奇偶校验数据与用户数据一起存储以便于错误检测和/或错误纠正。
附图说明
现在参考下面的附图对实施本发明的各种特征的系统和方法进行描述,其中:
图1示出了根据本发明的一个实施例的自适应地编码数据的存储系统。
图2是示出了根据本发明的一个实施例的确定用于编码数据的编码参数的过程的流程图。
图3是示出了根据本发明的一个实施例的低密度奇偶校验(LDPC)编码参数与LDPC码字长之间关系的表。
图4A-4C是示出了根据本发明的一个实施例的已填充用户数据和奇偶校验数据的图。
图5是示出了根据本发明的一个实施例的自适应码缩短的过程的流程图。
图6是示出了根据本发明的一个实施例的调整码率的过程的流程图。
具体实施方式
尽管描述了某些实施例,但是这些实施例仅以示例的方式给出,而不是要限制保护范围。实际上,本文所描述的新颖方法和系统可以以多种其他形式来实施。而且,可以进行本文所描述的方法和系统的形式上的各种省略、替换和改变,而不会脱离保护范围。
在一些实施例中,本公开中所使用的“编码”数据指的是编码数据的过程和/或解码数据的过程。
概述
诸如固态硬盘等的存储系统通常包括与非易失性存储器阵列耦合的一个或多个控制器。通常,这些控制器由一方设计/制造而非易失性存储器阵列由另一方设计/制造。另外,来自不同制造商的存储器阵列往往具有不同的内部格式,包括不同的存储器页格式,其中每个存储器页格式对应于多个存储器页大小中的一个。而且,由于成本和多种其他竞争原因,存储系统制造商通常使用来自不同的制造商的存储器阵列。例如,存储系统制造商可能在当前生产周期中使用一种品牌的存储器阵列,而在下一个生产周期中使用另一种品牌的存储器阵列。此外,对于标价在不同的水平的不同的存储系统型号可以使用不同的存储器阵列。
因此,常见的设计方法是:令存储系统包括一个或多个控制器,所述一个或多个控制器具有多个专用的硬件、固件和/或软件以用于对从来自不同制造商的存储器阵列读取的数据或写入到来自不同制造商的存储器阵列的数据进行编码/解码,而实际使用的这些硬件、固件和/或软件的子集取决于在装配时或在最终设计阶段与(多个)控制器配对的实际存储器阵列。结果是,存储系统可能包括多个控制器或额外的、不使用的硬件、固件和/或软件以支持未包括在最终装配的存储系统中的一个或多个存储器阵列的多个存储器页格式。
替代地,为减少包括在存储系统中的硬件、固件和/或软件的数量,能够将存储系统和控制器构建为仅支持一个特定的、已知的、具有已知的存储器页大小的存储器页格式,而不支持其他存储器页格式。然而,这样的方法限制了存储系统和控制器对其他类型的存储器阵列的可用性,并且可能需要构建多个不同的存储系统和控制器以支持多个存储器阵列类型。另外,在一些实例中,在设计/构建存储系统和控制器时,可能不知道存储器阵列的存储器页格式。因此,期望有针对多个已知或未知的存储器存储格式自适应地编码数据的改善的系统和方法。
在本发明的一些实施例中,存储系统包括控制器和非易失性存储器阵列,非易失性存储器阵列具有多个存储器页,多个存储器页具有共同的存储器页大小。控制器确定非易失性存储器阵列的共同的存储器页大小,并且基于该共同的存储器页大小从多个预定义的码字长中选择码字长,例如低密度奇偶校验(LDPC)码字长。通过选择性地使用适当的码字长(从多个预定义的码字长中选择)和对应的编码参数,控制器使用至少一些共同的硬件、固件和/或软件来支持多个已知的或未知的存储器页格式。因而,控制器能够选择性地调节其操作,所以控制器能够与不同制造商所制造的不同格式的存储器阵列配对。
在一些实施例中,随着部分地由于存储器阵列的使用而引起存储器页、块或非易失性存储器阵列的管芯老化和/或逐渐耗尽,存储设备的控制器调整用于编码用户数据的编码参数。调整编码参数的机制使控制器能够支持随着时间推移每单元数据的附加奇偶校验,从而随着存储器阵列的质量(例如,数据保持能力)降低而改善错误纠正或错误检测能力。此外,调整编码参数的机制便于平衡由每单元数据的附加奇偶校验所引起的解码时间与由附加奇偶校验数据所引起的错误纠正或错误检测益处。另外,控制器能够存储针对存储器页、块或存储器阵列的管芯所调整的编码参数,以准许不同的码率或奇偶校验率适于不同的存储器页、块或管芯。
系统概述
图1示出了根据本发明的一个实施例的自适应地编码数据的存储系统120。如所示出的,存储系统120(例如,混合硬盘、固态硬盘等)包括控制器130和非易失性存储器阵列140,非易失性存储器阵列140包括一个或多个存储块,标识为块“A”142一直到块“N”。每个块包括多个闪存页(F页)。例如,图1中的块A 142包括多个F页,标识为F页A 153、F页B一直到F页N。在一些实施例中,每个“F页”是在非易失性存储器阵列140中能够在单个操作中或作为单元来编程的存储单元的最小组。此外,每个F页包括多个错误纠正码页(E页)。在所示出的实施例中,每个F页包括被示出为四个方框的四个E页,包括E页144。其他实施例可以采用以不同方式定义的F页或E页,或者每个F页可以包括多于或少于四个E页。
控制器130可以从主机系统110中的存储接口模块112(例如,设备驱动)接收数据和/或存储访问命令。由存储接口112所传送的存储访问命令能够包括由主机系统110所发布的写入命令和读取命令。命令能够指定存储系统120中的逻辑块地址,并且控制器130能够在非易失性存储器阵列140中执行所接收的命令。在混合硬盘中,除了非易失性存储器阵列140外,数据还可以存储在磁介质存储部件(图1中未示出)中。
存储系统120能够存储从主机系统110接收的数据,以使得存储系统120能够充当主机系统110的存储装置。为了便于该功能,控制器130能够实施逻辑接口。逻辑接口能够以其中能够存储数据的一组逻辑地址(例如,连续地址)的形式向主机系统110呈现存储系统存储器。在内部,控制器130能够将逻辑地址映射到非易失性存储器阵列140和/或其他(多个)存储器模块中的多种物理存储器地址。
控制器130包括编码器模块132。在一个实施例中,编码器模块132确定编码参数以用于对从非易失性存储器阵列140中的存储器页(例如,E页)读取的数据(例如,用户数据)或写入到存储器页的数据进行解码/编码。编码参数能够用于:对从非易失性存储器阵列140读取的用户数据进行解码,对存储到非易失性存储器阵列140的用户数据进行编码,以及诸如错误检测或错误纠正等的其他用途。编码参数能够包括LDPC编码参数,例如,G或H编码矩阵的列权值、G或H编码矩阵的行权值、P矩阵大小(例如,其中P矩阵是G或H编码矩阵的子矩阵)等。此外,编码器模块132能够确定针对未填充或已填充的用户数据的奇偶校验数据,也能够对具有对应的奇偶校验数据和填充数据的用户数据进行解码。另外,编码器模块132能够通过调整编码参数来对用于编码数据的码率或奇偶校验率进行调节。控制器130和/或编码器模块132还能够包括内部存储器(未示出),其可以属于一个或多个适当的存储器类型。
非易失性存储器阵列140能够使用NAND闪速存储器设备来实施。能够替代地使用其他类型的固态存储器设备,例如,闪速集成电路的阵列、硫系RAM(C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元RAM(PMC-RAM或PMCm)、双向统一存储器(OUM)、阻变RAM(RRAM)、NOR存储器、EEPROM、铁电存储器(FeRAM)、磁阻RAM(MRAM)、其他分立的NVM(非易失性存储器)芯片或其任意组合。在一个实施例中,尽管可以使用单层单元(SLC)存储器设备或SLC设备和多层单元(MLC)设备的组合,但非易失性存储器阵列140优选地包括具有能够存储多于单个位信息的多层单元的MLC设备。在一个实施例中,存储系统120能够包括诸如一个或多个磁存储器模块等其他存储器模块。存储系统120还能够包括诸如磁存储等其他类型的存储介质。
自适应数据编码
图2是示出了根据本发明的一个实施例的确定用于编码数据的编码参数的流程图。过程200能够由控制器130和/或编码器模块132来执行。有利地,过程200能够使控制器130和/或编码器模块132能够使用多个码字长来支持多个非易失性存储器页格式。
在方框205,过程200确定诸如非易失性存储器阵列140等非易失性存储器阵列的存储器页大小。例如,存储器页大小能够由存储器阵列厂商来提供或基于其他已知存储器大小来计算。例如,存储器页大小可以与非易失性存储器阵列的E页大小相对应,而过程200能够通过查询厂商提供的存储器阵列的F页大小并将F页的大小除以诸如4或8等对于非易失性存储器阵列适当的常数,来计算E页大小。在其他实施例中,存储器页大小能够与F页大小相对应。
在方框210,过程200从多种码字长中选择等于或超过存储器页大小的码字长。例如,存储器页大小能够是2164字节或八位位组,多个预定义的码字长能够包括2176字节和2304字节的长度。在一个实施例中,过程200从多个预定义的LDPC码字长中选择等于或大于存储器页大小的具有最小大小或数据字节数的LDPC码字长。例如,过程200能够选择2176字节的码字长,该码字长超过2164字节的存储器页大小并且具有多个预定义LDPC码字长中的最小大小。
在框215,过程200至少部分地基于所选择的码字长来确定编码参数。在对从非易失性存储器阵列读取的数据或写入到非易失性存储器阵列的数据进行编码时能够使用编码参数,并且编码参数使过程200能够管理数据的码率(例如,每数据单元的总数据的用户数据量,其中总数据包括用户数据和奇偶校验数据)。在一个实施例中,针对LDPC码字长的编码参数包括列权值、P矩阵大小和行权值,并且进一步包括码率、用户数据量和奇偶校验数据量中的至少一个。
在方框220,过程200存储编码参数。例如,过程200能够在非易失性存储器阵列140中和/或在存储系统120的一个或多个其他存储介质中存储编码参数。过程200能够在控制器130和/或编码器模块132的内部存储器中存储编码参数。所存储的编码参数能够便于使用不同的编码参数来编码非易失性存储器140中不同的页、块或其他划分和/或细分,以及便于随着非易失性存储器阵列的部分老化和/或逐渐耗尽来随着时间推移跟踪和调整编码参数。
图3是示出了根据本发明的一个实施例的LDPC编码参数和LDPC码字长之间关系的表300。表300能够标明由诸如控制器130和/或编码器模块132等控制器所支持的LDPC码子长和LDPC编码参数。表300能够存储在非易失性存储器阵列140、存储系统120中的一个或多个其他存储介质和/或控制器130和/或编码器模块132的内部存储器中。表300包括两个码长列,指示两种支持的LDPC码字长。一种LDPC码字长等于2176字节(2048+128·1字节),而另一种LDPC码字长等于2304字节(2048+128·2字节)。已经发现,约2K字节的多种码率能够提供复杂性和性能之间的最佳折衷。
对于每个码长,包括列权值、P矩阵大小和行权值的LDPC编码参数可以是多样的,以使得能够对采用不同设计的码率(例如,不同的每数据单元的总数据的用户数据量,其中总数据包括用户数据和奇偶校验数据)的数据进行编码,如表300中所列出的那样。例如,如果LDPC码字长等于2176字节,则适用的LDPC编码参数可以是在圈C1、C2、C3或C4处的LDPC编码参数集合的其中之一。在一个实例中,能够选择圈C3处的LDPC编码参数,其对应列权值为4、P矩阵大小为512和行权值为34,并且还对应码率为0.882(对于2176字节的总码长,有1920字节的用户数据)。此外,在一个实施例中,可以被定义为2048+128xΔ的码长,能够被基于选择Δ为1或2等来进行调整。如所示出的那样,对Δ的值的选择也影响码率。例如,在圈C1,选择Δ为1使得码率为0.941,并且如果列权值、P矩阵大小和行权值保持不变,选择Δ为2使得码率为0.944。如将进一步解释的那样,能够使用多种预定义码率来适应不同页大小的存储器阵列。例如,如所示出的,两种码长2176字节和2304字节能够适应2176字节和2304字节的页大小。应当注意的是,在实践中预定义的码长的数量可以大大高于二,以适应多种页大小。
支持表300中的LDPC编码参数的控制器能够有利地为非易失性存储器阵列选择一个码长,并且调整LDPC编码参数来以不同码率对数据进行编码。例如,当E页大小为2176字节的存储器阵列相对较新(例如,轻度使用)和/或经历或展现了很少的编码错误时,可以选择在圈C1处的LDPC编码参数来编码数据。在圈C1处的LDPC编码参数对应列权值为4、P矩阵大小为256和行权值为68,以及还对应码率为0.941。在圈C1处,能够使用总共128字节的奇偶校验来编码2048字节的数据。随着存储器页、块或存储器阵列的管芯老化和/或逐渐耗尽,能够选择在圈C2、C3和C4处的LDPC编码参数作为代替来编码数据。因此,响应于非易失性存储器阵列质量的改变(例如,质量的损失),控制器能够逐渐增加每单元数据的奇偶校验量,从0.941的码率分别到在圈C2、C3和C4处的0.926、0.882和0.853的码率。
自适应码缩短
整个自适应码缩短中,本发明的一些实施例能够适应具有与预定义码长不完全匹配的页大小的存储器阵列。图4A-4C是示出了根据本发明的一个实施例的在自适应码缩短中所使用的已填充用户数据和奇偶校验数据的图。特别地,图4A-4C示出了可以怎样使用缩短来调整码字长以匹配非易失性存储器阵列的存储器页大小。有利地,缩短使控制器130和/或编码器模块132能够支持其中存储器页大小不等于多个预定义的码字长中的任何码字长的存储器页格式。例如,如果控制器130和/或编码器模块132支持等于2176和2304字节的预定义的LDPC码字长,则能够使用缩短以使得控制器130和/或编码器模块132还支持2164字节的存储器页大小。此外,缩短能够准许控制器130和/或编码器模块132自适应地编码数据以使其匹配非易失性存储器阵列格式,而不牺牲大的位错误率性能。
在一个实施例中,缩短包括三个操作。第一,将填充数据加到将要被编码的用户数据上。在一个实施例中的填充数据的大小是预定义码长与存储器页大小之差。第二,基于填充数据和用户数据产生奇偶校验数据。第三,将合计达存储器页大小的用户数据和奇偶校验数据存储在存储器页中。填充数据不被存储,但是在解码时(例如,稍后当用户数据和奇偶校验数据被从存储器页读出时)将被附加到用户数据上。
图4A示出了数据单元400a中的填充数据410和用户数据420。用户数据420对应于数据单元400a的用户数据量,而填充数据410对应于便于码缩短的填充数据。填充数据410能够包括全零、全一等的数据组或任何已知的或预定义的数据模式。继续先前段中的示例,如果非易失性存储器阵列的存储器页大小为2164字节,那么控制器130和/或编码器模块132能够从诸如表300中所示出的那些多种预定义码长中选择大小等于或大于2164字节的最短的LDPC码字长。在该示例中,选择2176字节的码长。控制器130和/或编码器模块132能够确定:填充数据410应该包括长度等于码字长(2176)与非易失性存储器阵列的存储器页大小(2164)之差的数据组,即2176–2164=12字节的填充数据。取决于数据单元400a的LDPC编码参数,控制器130和/或编码器模块132还能够确定:为用户数据420保留的字节量和用于确定和/或生成奇偶校验数据的适当的G编码矩阵。
图4B示出了根据一个实施例的一个示例性编码过程。实际上,用户数据420被“填充”,以使得组合在一起的用户数据和填充数据满足所选择的预定义字长中为用户数据保留的字节量。然后为数据单元400b中组合在一起的填充数据410和用户数据420生成奇偶校验430。继续先前段的示例,能够使用适当的G编码矩阵来确定LDPC奇偶校验数据以用于奇偶校验430。注意,如上文所描述的,2176字节在填充数据410、用户数据420和奇偶校验数据430中的实际分配可以变化。下表示出了一些可能的配置(所有大小单位为字节):
存储器页大小2164字节
存储器页大小2164字节
图4C示出了数据单元400c,其具有数据单元400b的用户数据420和奇偶校验430,移除了填充数据410。能够将用户数据420和奇偶校验430写入到非易失性存储器阵列140的存储器页,并随后从非易失性存储器阵列140的存储器页读取用户数据420和奇偶校验430。如上表所示,用户数据420和奇偶校验数据430的量可以等于非易失性存储器阵列的存储器页大小,并且填充数据不被写入到页中。当该页稍后被读出时,作为解码的一部分,填充数据被附加回从该页读取的用户数据。照这样,能够以在编码效率上很小的损失为代价使用多个预定义码字长中的一个来执行针对任意页大小的编码。
图5是示出了根据本发明的一个实施例的自适应码缩短的过程500的流程图。过程500可以由控制器130和/或编码器模块132来执行。有利地,过程500可以使控制器130和/或编码器模块132能够支持这样的存储器页大小:其不等于控制器130和/或编码器模块132所支持的多个预定义码字长中的任意码字长。过程500能够用于构建和管理图4A-4C中所描述的数据单元400a、400b和400c。
在方框505,过程500接收用户数据。用户数据能够连同将用户数据写入到非易失性存储器阵列(例如,非易失性存储器阵列140)的写入命令一起,从存储接口模块112接收。
在方框510,过程500用填充数据来对用户数据进行填充。填充数据能够包括全零、全一的数据组或者已知的或预定义的数据模式。另外,在方框510,过程500还能够将用户数据分成大小等于每数据单元的用户数据量的单元,这取决于对应的编码参数。例如,如果非易失性存储器阵列具有等于2164字节的存储器页大小并且LDPC编码参数对应图3中圈C3处的参数,那么能够将用户数据分成大小等于1908字节的单元。
在方框515,过程500使用编码参数确定用于已填充用户数据的奇偶校验数据。继续先前段的示例,如果LDPC编码参数对应圈C3处的参数,那么能够选择并使用适当的G编码矩阵来确定用于已填充用户数据的LDPC奇偶校验数据。
在方框520,过程500输出用户数据和奇偶校验数据。例如,过程500能够输出用户数据和奇偶校验数据以使其存储到非易失性存储器阵列140中的F页143中的E页144。能够注意到的是,参照方框510和方框515所描述的填充可以被表征为“虚拟填充”,这是因为填充数据自身可以不被写入到存储器页。
码率调整
图6是示出了根据本发明的一个实施例的调整码率的过程600的流程图。过程600能够由控制器130和/或编码器模块132来执行。有利地,过程600可以使控制器130和/或编码器模块132能够随着存储器页、块或非易失性存储器阵列的其他划分逐渐耗尽和/或经历质量降低,来调整存储器页、块或其他划分的码率(例如,每单元数据的奇偶校验的量)。
在方框605,过程600读取存储在存储器页中的用户数据和奇偶校验数据。例如,过程600能够响应于来自主机系统110的读取命令而执行对F页143的读取。
在方框610,当使用奇偶校验数据和编码参数来解码用户数据时,过程600检测到若干位错误。例如,当使用所存储的奇偶校验数据和对应于存储器页的LDPC编码参数来解码用户数据时,过程600能够确定若干检测到的位错误。
在方框615,过程600对位错误的数量是否超过位错误阈值进行确定。位错误阈值能够取决于用于将数据编码到存储器页的编码参数或者基于编码参数而变化。例如,针对图3中圈C1处的LDPC编码参数的位错误阈值可以低于针对圈C2处的LDPC编码参数的位错误阈值。如果过程600确定位错误的数量不超过位错误阈值,那么过程600终止。另一方面,如果过程600确定位错误的数量超过位错误阈值,那么过程600进行到方框620。
在方框620,过程600检查是否能够调整编码参数以减少码率。换言之,过程600能够确定是否可以使用更多奇偶校验数据来进行编码。在一个实施例中,过程600能够确定是否可以调整LDPC编码参数同时保持LDPC码字长不变。例如,如果当前使用图3中圈C3处的LDPC编码参数来编码E页144,那么能够将LDPC编码参数调整为圈C4处的参数。替代地,如果当前使用圈C4处的LDPC编码参数来编码E页144并且表300包含唯一可用的LDPC编码参数,那么参数不可以被进一步调整为更低码率。如果过程600确定不可以调整编码参数以减小码率,那么过程600终止。另一方面,如果过程600确定能够调整编码参数以减小码率,那么过程600进行到方框625。在一个实施例中,可以在块一级上管理码率的改变,其中块中的页被同时转换到新码率。在使用MLC存储器的一个实施例中,在确定了不能使用进一步减少的码率时,页(或页构成的块)可以被配置为在仅较低页模式下操作,而不是终止过程600。
在方框625,过程600调整编码参数并存储所调整的编码参数以减少下一次写入操作的码率。过程600能够将所调整的编码参数存储在非易失性存储器阵列140中、存储系统120的其他存储器模块中和/或控制器130和/或编码器模块132的内部存储器中。过程600能够存储关于用于编码数据的码率或LDPC编码参数的指示,以便于管理存储器页、块或非易失性存储器阵列的其他级别的划分上的LDPC编码参数。此外,所调整的编码参数能够用于对与随后从主机系统110接收到的写入命令相关联的用户数据进行编码。
其他变化
本领域技术人员将会意识到,在一些实施例中能够使用其他方法和途径。例如,本文所披露的编码技术能够应用到除LDPC码之外的码,诸如像Turbo码等其他迭代码。另外,尽管图3中表300所披露的编码参数和其他值示出了一组编码参数和码字长之间关系的示例,但其他的或附加的编码关系也能够被使用。表300能够包括值小于4和大于5(例如,3或6)的列权值、值小于256位或大于512位(例如,128或1024)的P矩阵大小、小于1或大于2(例如,-1、0、3或4)的Δ值、对应的粒度不同于128字节(例如,64字节)的Δ值以及具有小于或大于2048(例如,2176)的值的基码长。此外,在每个数据单元中奇偶校验数据量能够被设置为不同的值,或者取决于存储介质的质量而变化。另外,能够采用除位错误之外的或不同于位错误的质量测度来确定是否调整用于编码数据的编码参数。而且,可以取决于实施例而移除上文所描述的特定步骤以及可以加入其它步骤。因此,旨在仅参照所附权利要求来定义本公开的范围。
尽管已经描述了某些实施例,但这些实施例只是以示例的方式给出,而并不是要限制保护范围。实际上,可以以多种其他形式实施本文所描述的新颖方法和系统。另外,可以进行本文所描述的方法和系统的形式上的各种省略、替换和改变,而不脱离本保护的精神。所附权利要求及其等价物旨在涵盖这样的将落入本保护的范围和精神的形式或变型。例如,能够将本文所披露的系统和方法应用到硬盘驱动器、混合硬盘等。另外,可以额外地或可替代地使用其他形式的存储(例如,DRAM或SRAM、电池备用易失性DRAM或SRAM设备、EPROM、EEPROM存储器等等)。作为另一个示例,可以将在附图中示出的各种部件实施为处理器上的软件和/或固件、ASIC/FPGA或专用硬件。同样,上文所披露的特定实施例的特征和属性可以以不同的方式组合以形成另外的实施例,其全部落入本公开的范围内。尽管本公开提供了某些优选的实施例和应用,但对本领域技术人员显而易见的是,其他实施例,包括没有提供本文所阐述的全部特征和优点的实施例,也在本公开的范围内。因此,旨在仅参考所附权利要求来定义本公开的范围。

Claims (13)

1.一种固态存储系统,包括:
非易失性存储器阵列,所述非易失性存储器阵列包括多个存储器页,每个存储器页具有共同的存储器页大小;以及
控制器,所述控制器被配置为:
确定所述非易失性存储器阵列的所述共同的存储器页大小;
从多个预定义的低密度奇偶校验码字长即LDPC码字长中选择LDPC码字长,所述LDPC码字长的大小等于或大于所述非易失性存储器阵列的所述共同的存储器页大小;以及
至少部分地基于所述LDPC码字长来确定LDPC编码参数以用于对写入到所述非易失性存储器阵列的一个或多个存储器页的数据或从所述一个或多个存储器页中读取的数据进行编码,
其中,所述控制器被配置为使用所述多个预定义的LDPC码字长来支持多个非易失性存储器页大小,并且被配置为支持这样的存储器页大小:其中所述共同的存储器页大小不等于所述多个预定义的LDPC码字长中的任何LDPC码字长。
2.根据权利要求1所述的固态存储系统,其中,所述LDPC编码参数包括P矩阵大小、列权值和行权值,并且进一步包括码率、用户数据量和奇偶校验数据量的至少其中之一。
3.根据权利要求1所述的固态存储系统,其中,所述控制器被配置为选择具有等于或大于所述非易失性存储器阵列的所述共同的存储器页大小的最小大小的LDPC码字长。
4.根据权利要求1所述的固态存储系统,其中,所述存储器页包括错误纠正码页即E页。
5.根据权利要求1所述的固态存储系统,其中所述控制器进一步被配置为:
采用所述LDPC编码参数来确定针对已填充用户数据的奇偶校验数据,所述已填充用户数据包括用户数据和填充数据;以及
将所述用户数据和所述奇偶校验数据存储在所述非易失性存储器阵列的存储器页中。
6.根据权利要求5所述的固态存储系统,其中,所述已填充用户数据的所述填充数据的量至少部分地取决于所述LDPC码字长与所述非易失性存储器阵列的所述共同的存储器页大小之差。
7.一种在包括控制器的数据存储系统中编码数据的方法,所述方法包括:
确定非易失性存储器阵列的共同的存储器页大小,所述非易失性存储器阵列包括多个存储器页,每个存储器页具有所述共同的存储器页大小;
从多个预定义的低密度奇偶校验码字长即多个预定义的LDPC码字长中选择LDPC码字长,所述LDPC码字长的大小等于或大于所述非易失性存储器阵列的所述共同的存储器页大小;以及
至少部分地基于所述LDPC码字长来确定LDPC编码参数以用于对写入到所述非易失性存储器阵列的一个或多个存储器页的数据或从所述一个或多个存储器页中读取的数据进行编码,由此所述方法使得能够支持使用多个预定义的码字长来针对多个非易失性存储器页大小进行编码以及支持针对这样的存储器页大小进行编码:其中所述共同的存储器页大小不等于所述多个预定义的LDPC码字长中的任何LDPC码字长。
8.根据权利要求7所述的方法,其中,所述LDPC编码参数包括P矩阵大小、列权值和行权值,并且进一步包括码率、用户数据量和奇偶校验数据量的至少其中之一。
9.根据权利要求7所述的方法,其中,所述选择LDPC码字长包括选择具有等于或大于所述非易失性存储器阵列的所述共同的存储器页大小的最小大小的所述LDPC码字长。
10.根据权利要求7所述的方法,其中,所述存储器页包括错误纠正码页即E页。
11.根据权利要求7所述的方法,进一步包括:
采用所述LDPC编码参数来确定针对已填充用户数据的奇偶校验数据,所述已填充用户数据包括用户数据和填充数据;以及
将所述用户数据和所述奇偶校验数据存储在所述非易失性存储器阵列的存储器页中。
12.根据权利要求11所述的方法,其中,所述已填充用户数据的所述填充数据的量至少部分地取决于所述LDPC码字长与所述非易失性存储器阵列的所述共同的存储器页大小之差。
13.一种固态存储系统,包括:
非易失性存储器阵列,所述非易失性存储器阵列包括多个存储器页,每个存储器页具有共同的存储器页大小;以及
控制器,所述控制器被配置为:
确定所述非易失性存储器阵列的所述共同的存储器页大小;
从多个预定义的码字长中选择码字长,所述码字长的大小等于或
大于所述非易失性存储器阵列的所述共同的存储器页大小;以及
至少部分地基于所述码字长来确定编码参数以用于对写入到所述非易失性存储器阵列的一个或多个存储器页的数据或从所述一个或多个存储器页中读取的数据进行编码,
其中,所述控制器被配置为使用所述多个预定义的码字长来支持多个非易失性存储器页大小,并且被配置为支持这样的存储器页大小:
其中所述共同的存储器页大小不等于所述多个预定义的码字长中的任何码字长。
CN201380067610.7A 2012-10-24 2013-09-23 数据存储系统的自适应错误纠正码 Active CN104871249B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/659,099 US8972826B2 (en) 2012-10-24 2012-10-24 Adaptive error correction codes for data storage systems
US13/659,099 2012-10-24
PCT/US2013/061249 WO2014065967A1 (en) 2012-10-24 2013-09-23 Adaptive error correction codes for data storage systems

Publications (2)

Publication Number Publication Date
CN104871249A CN104871249A (zh) 2015-08-26
CN104871249B true CN104871249B (zh) 2018-09-07

Family

ID=50486506

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380067610.7A Active CN104871249B (zh) 2012-10-24 2013-09-23 数据存储系统的自适应错误纠正码

Country Status (7)

Country Link
US (2) US8972826B2 (zh)
EP (1) EP2912667A4 (zh)
JP (1) JP6129328B2 (zh)
KR (1) KR101927575B1 (zh)
CN (1) CN104871249B (zh)
HK (1) HK1214401A1 (zh)
WO (1) WO2014065967A1 (zh)

Families Citing this family (138)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9176859B2 (en) 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
US10079048B2 (en) 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
US9317717B2 (en) 2012-12-28 2016-04-19 Open Invention Network, Llc Separate cryptographic keys for protecting different operations on data
US9753847B2 (en) 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
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
US8959284B1 (en) 2010-06-28 2015-02-17 Western Digital Technologies, Inc. Disk drive steering write data to write cache based on workload
US9058280B1 (en) 2010-08-13 2015-06-16 Western Digital Technologies, Inc. Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time
US8769190B1 (en) 2010-09-15 2014-07-01 Western Digital Technologies, Inc. System and method for reducing contentions in solid-state memory access
US8788779B1 (en) 2010-09-17 2014-07-22 Western Digital Technologies, Inc. Non-volatile storage subsystem with energy-based performance throttling
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9069475B1 (en) 2010-10-26 2015-06-30 Western Digital Technologies, Inc. Hybrid drive selectively spinning up disk when powered on
US8700950B1 (en) 2011-02-11 2014-04-15 Western Digital Technologies, Inc. System and method for data error recovery in a solid state subsystem
US8700951B1 (en) 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
US9361044B2 (en) 2011-03-28 2016-06-07 Western Digital Technologies, Inc. Power-safe data management system
US8898373B1 (en) 2011-06-29 2014-11-25 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
US9195530B1 (en) 2011-09-06 2015-11-24 Western Digital Technologies, Inc. Systems and methods for improved data management in data storage systems
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US8700834B2 (en) 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting in data storage systems
US9268701B1 (en) 2011-11-21 2016-02-23 Western Digital Technologies, Inc. Caching of data in data storage systems by managing the size of read and write cache based on a measurement of cache reliability
US8977804B1 (en) 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Varying data redundancy in storage systems
US8959416B1 (en) 2011-12-16 2015-02-17 Western Digital Technologies, Inc. Memory defect management using signature identification
US9348741B1 (en) 2011-12-19 2016-05-24 Western Digital Technologies, Inc. Systems and methods for handling write data access requests in data storage devices
US9053008B1 (en) 2012-03-26 2015-06-09 Western Digital Technologies, Inc. Systems and methods for providing inline parameter service in data storage devices
US8984247B1 (en) 2012-05-10 2015-03-17 Western Digital Technologies, Inc. Storing and reconstructing mapping table data in a data storage system
US8966205B1 (en) 2012-05-10 2015-02-24 Western Digital Technologies, Inc. System data management using garbage collection and hybrid self mapping
US9977612B1 (en) 2012-05-11 2018-05-22 Western Digital Technologies, Inc. System data management using garbage collection and logs
US9170932B1 (en) 2012-05-22 2015-10-27 Western Digital Technologies, Inc. System data storage mechanism providing coherency and segmented data loading
US8954653B1 (en) 2012-06-26 2015-02-10 Western Digital Technologies, Inc. Mechanisms for efficient management of system data in data storage systems
US8924832B1 (en) 2012-06-26 2014-12-30 Western Digital Technologies, Inc. Efficient error handling mechanisms in data storage systems
US8966343B2 (en) 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
US9507523B1 (en) 2012-10-12 2016-11-29 Western Digital Technologies, Inc. Methods, devices and systems for variable size logical page management in a solid state drive
US9489296B1 (en) 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
US8972826B2 (en) 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
US9177638B2 (en) 2012-11-13 2015-11-03 Western Digital Technologies, Inc. Methods and devices for avoiding lower page corruption in data storage devices
US8954694B2 (en) 2012-11-15 2015-02-10 Western Digital Technologies, Inc. Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9059736B2 (en) 2012-12-03 2015-06-16 Western Digital Technologies, Inc. Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme
US9032271B2 (en) 2012-12-07 2015-05-12 Western Digital Technologies, Inc. System and method for lower page data recovery in a solid state drive
US9619317B1 (en) 2012-12-18 2017-04-11 Western Digital Technologies, Inc. Decoder having early decoding termination detection
US8966339B1 (en) 2012-12-18 2015-02-24 Western Digital Technologies, Inc. Decoder supporting multiple code rates and code lengths for data storage systems
US9122625B1 (en) 2012-12-18 2015-09-01 Western Digital Technologies, Inc. Error correcting code encoder supporting multiple code rates and throughput speeds for data storage systems
US9214963B1 (en) 2012-12-21 2015-12-15 Western Digital Technologies, Inc. Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system
US8954655B2 (en) 2013-01-14 2015-02-10 Western Digital Technologies, Inc. Systems and methods of configuring a mode of operation in a solid-state memory
US8972655B2 (en) 2013-01-21 2015-03-03 Western Digital Technolgies, Inc. Initialization of a storage device
US9274966B1 (en) 2013-02-20 2016-03-01 Western Digital Technologies, Inc. Dynamically throttling host commands to disk drives
US9454474B2 (en) 2013-03-05 2016-09-27 Western Digital Technologies, Inc. Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive
US9641378B1 (en) 2013-03-12 2017-05-02 Western Digital Technologies, Inc. Adjustment of compression ratios for data storage
US8924824B1 (en) 2013-03-12 2014-12-30 Western Digital Technologies, Inc. Soft-decision input generation for data storage systems
US9280472B1 (en) 2013-03-13 2016-03-08 Western Digital Technologies, Inc. Caching data in a high performance zone of a data storage system
US8990668B2 (en) 2013-03-14 2015-03-24 Western Digital Technologies, Inc. Decoding data stored in solid-state memory
US9059742B1 (en) 2013-03-15 2015-06-16 Western Digital Technologies, Inc. System and method for dynamic scaling of LDPC decoder in a solid state drive
US9218279B2 (en) 2013-03-15 2015-12-22 Western Digital Technologies, Inc. Atomic write command support in a solid state drive
US9335950B2 (en) 2013-03-15 2016-05-10 Western Digital Technologies, Inc. Multiple stream compression and formatting of data for data storage systems
US9448738B2 (en) 2013-03-15 2016-09-20 Western Digital Technologies, Inc. Compression and formatting of data for data storage systems
US9013920B2 (en) 2013-04-03 2015-04-21 Western Digital Technologies, Inc. Systems and methods of write precompensation to extend life of a solid-state memory
US9123686B2 (en) 2013-04-12 2015-09-01 Western Digital Technologies, Inc. Thermal management for solid-state drive
US9338927B2 (en) 2013-05-02 2016-05-10 Western Digital Technologies, Inc. Thermal interface material pad and method of forming the same
US9195293B1 (en) 2013-05-03 2015-11-24 Western Digital Technologies, Inc. User controlled data storage device power and performance settings
US9081700B2 (en) 2013-05-16 2015-07-14 Western Digital Technologies, Inc. High performance read-modify-write system providing line-rate merging of dataframe segments in hardware
US9632926B1 (en) 2013-05-16 2017-04-25 Western Digital Technologies, Inc. Memory unit assignment and selection for internal memory operations in data storage systems
US9170938B1 (en) 2013-05-17 2015-10-27 Western Digital Technologies, Inc. Method and system for atomically writing scattered information in a solid state storage device
US9280200B1 (en) 2013-05-20 2016-03-08 Western Digital Technologies, Inc. Automatic peak current throttle of tiered storage elements
US9740248B2 (en) 2013-06-07 2017-08-22 Western Digital Technologies, Inc. Component placement within a solid state drive
US9274978B2 (en) 2013-06-10 2016-03-01 Western Digital Technologies, Inc. Migration of encrypted data for data storage systems
US9436630B2 (en) 2013-06-11 2016-09-06 Western Digital Technologies, Inc. Using dual phys to support multiple PCIe link widths
US9830257B1 (en) 2013-06-12 2017-11-28 Western Digital Technologies, Inc. Fast saving of data during power interruption in data storage systems
US9665501B1 (en) 2013-06-18 2017-05-30 Western Digital Technologies, Inc. Self-encrypting data storage device supporting object-level encryption
US9304560B2 (en) 2013-06-19 2016-04-05 Western Digital Technologies, Inc. Backup power for reducing host current transients
US9208101B2 (en) 2013-06-26 2015-12-08 Western Digital Technologies, Inc. Virtual NAND capacity extension in a hybrid drive
US9583153B1 (en) 2013-06-28 2017-02-28 Western Digital Technologies, Inc. Memory card placement within a solid state drive
US9042197B2 (en) 2013-07-23 2015-05-26 Western Digital Technologies, Inc. Power fail protection and recovery using low power states in a data storage device/system
US9070379B2 (en) 2013-08-28 2015-06-30 Western Digital Technologies, Inc. Data migration for data storage device
US9442668B1 (en) 2013-08-29 2016-09-13 Western Digital Technologies, Inc. Adaptive power management control with performance feedback
US9263136B1 (en) 2013-09-04 2016-02-16 Western Digital Technologies, Inc. Data retention flags in solid-state drives
US9304709B2 (en) 2013-09-06 2016-04-05 Western Digital Technologies, Inc. High performance system providing selective merging of dataframe segments in hardware
US10444998B1 (en) 2013-10-24 2019-10-15 Western Digital Technologies, Inc. Data storage device providing data maintenance services
US9330143B2 (en) 2013-10-24 2016-05-03 Western Digital Technologies, Inc. Data storage device supporting accelerated database operations
US9007841B1 (en) 2013-10-24 2015-04-14 Western Digital Technologies, Inc. Programming scheme for improved voltage distribution in solid-state memory
US9323467B2 (en) 2013-10-29 2016-04-26 Western Digital Technologies, Inc. Data storage device startup
US9286176B1 (en) 2013-11-08 2016-03-15 Western Digital Technologies, Inc. Selective skipping of blocks in an SSD
US9270296B1 (en) 2013-11-13 2016-02-23 Western Digital Technologies, Inc. Method and system for soft decoding through single read
US9529710B1 (en) 2013-12-06 2016-12-27 Western Digital Technologies, Inc. Interleaved channels in a solid-state drive
US9007854B1 (en) 2013-12-09 2015-04-14 Western Digital Technologies, Inc. Method and system for optimized soft decoding in a data storage device
US10140067B1 (en) 2013-12-19 2018-11-27 Western Digital Technologies, Inc. Data management for data storage device with multiple types of non-volatile memory media
US9036283B1 (en) 2014-01-22 2015-05-19 Western Digital Technologies, Inc. Data storage device with selective write to a first storage media or a second storage media
US9337864B1 (en) 2014-01-29 2016-05-10 Western Digital Technologies, Inc. Non-binary LDPC decoder using binary subgroup processing
US9250994B1 (en) 2014-02-05 2016-02-02 Western Digital Technologies, Inc. Non-binary low-density parity check (LDPC) decoding using trellis maximization
US9384088B1 (en) 2014-02-24 2016-07-05 Western Digital Technologies, Inc. Double writing map table entries in a data storage system to guard against silent corruption
US9354955B1 (en) 2014-03-19 2016-05-31 Western Digital Technologies, Inc. Partial garbage collection for fast error handling and optimized garbage collection for the invisible band
US9268487B2 (en) 2014-03-24 2016-02-23 Western Digital Technologies, Inc. Method and apparatus for restricting writes to solid state memory when an end-of life condition is reached
US9348520B2 (en) 2014-03-24 2016-05-24 Western Digital Technologies, Inc. Lifetime extension of non-volatile semiconductor memory for data storage device
US9448742B2 (en) 2014-03-27 2016-09-20 Western Digital Technologies, Inc. Communication between a host and a secondary storage device
US9564212B2 (en) 2014-05-06 2017-02-07 Western Digital Technologies, Inc. Solid-state memory corruption mitigation
US9690696B1 (en) 2014-05-14 2017-06-27 Western Digital Technologies, Inc. Lifetime extension of memory for data storage system
US9472222B2 (en) 2014-05-16 2016-10-18 Western Digital Technologies, Inc. Vibration mitigation for a data storage device
TWI550615B (zh) * 2014-08-28 2016-09-21 群聯電子股份有限公司 資料存取方法、記憶體儲存裝置及記憶體控制電路單元
US9275741B1 (en) 2014-09-10 2016-03-01 Western Digital Technologies, Inc. Temperature compensation management in solid-state memory
US9418699B1 (en) 2014-10-09 2016-08-16 Western Digital Technologies, Inc. Management of sequentially written data
US9405356B1 (en) 2014-10-21 2016-08-02 Western Digital Technologies, Inc. Temperature compensation in data storage device
US9823859B2 (en) 2014-11-06 2017-11-21 Western Digital Technologies, Inc. Mechanical shock mitigation for data storage
CN105811996B (zh) 2014-12-30 2019-12-06 华为技术有限公司 一种基于准循环ldpc的数据处理方法及系统
US9857995B1 (en) 2015-03-09 2018-01-02 Western Digital Technologies, Inc. Data storage device and method providing non-volatile memory buffer for real-time primary non-volatile memory protection
DE102015111729B4 (de) * 2015-07-20 2017-03-30 Infineon Technologies Ag Verfahren und decoder zum bestimmen eines fehlervektors für ein datenwort gemäss einem reed-muller-code
US9785563B1 (en) 2015-08-13 2017-10-10 Western Digital Technologies, Inc. Read command processing for data storage system based on previous writes
JP6542076B2 (ja) * 2015-08-28 2019-07-10 東芝メモリ株式会社 メモリシステム
US9668337B2 (en) 2015-09-08 2017-05-30 Western Digital Technologies, Inc. Temperature management in data storage devices
US9727261B2 (en) 2015-09-24 2017-08-08 Western Digital Technologies, Inc. Weighted programming patterns in solid-state data storage systems
US9836232B1 (en) 2015-09-30 2017-12-05 Western Digital Technologies, Inc. Data storage device and method for using secondary non-volatile memory for temporary metadata storage
US10013174B2 (en) 2015-09-30 2018-07-03 Western Digital Technologies, Inc. Mapping system selection for data storage device
US9620226B1 (en) 2015-10-30 2017-04-11 Western Digital Technologies, Inc. Data retention charge loss and read disturb compensation in solid-state data storage systems
US10063257B1 (en) 2015-11-03 2018-08-28 Western Digital Technologies, Inc. Data storage device encoding and interleaving codewords to improve trellis sequence detection
US10056920B1 (en) 2015-11-03 2018-08-21 Western Digital Technologies, Inc. Data storage device encoding and interleaving codewords to improve trellis sequence detection
US9761273B1 (en) 2015-11-03 2017-09-12 Western Digital Technologies, Inc. Data storage device encoding and interleaving codewords to improve trellis sequence detection
KR102435181B1 (ko) 2015-11-16 2022-08-23 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
US10126981B1 (en) 2015-12-14 2018-11-13 Western Digital Technologies, Inc. Tiered storage using storage class memory
US10223198B2 (en) * 2016-02-18 2019-03-05 Micron Technology, Inc. Error rate reduction
CN107168816B (zh) * 2016-03-07 2021-03-23 北京忆恒创源科技有限公司 Ecc帧长调整方法及其装置
US9904594B2 (en) 2016-04-15 2018-02-27 Micron Technology, Inc. Monitoring error correction operations performed in memory
US10387303B2 (en) 2016-08-16 2019-08-20 Western Digital Technologies, Inc. Non-volatile storage system with compute engine to accelerate big data applications
US10061691B2 (en) * 2016-09-08 2018-08-28 Toshiba Memory Corporation Write data optimization methods for non-volatile semiconductor memory devices
JP6725375B2 (ja) 2016-09-14 2020-07-15 キオクシア株式会社 メモリシステムおよび方法
US10459644B2 (en) 2016-10-28 2019-10-29 Western Digital Techologies, Inc. Non-volatile storage system with integrated compute engine and optimized use of local fast memory
US10574270B1 (en) * 2016-11-09 2020-02-25 Seagate Technology Llc Sector management in drives having multiple modulation coding
US10565123B2 (en) 2017-04-10 2020-02-18 Western Digital Technologies, Inc. Hybrid logical to physical address translation for non-volatile storage devices with integrated compute module
RU2659025C1 (ru) * 2017-06-14 2018-06-26 Общество с ограниченной ответственностью "ЛЭНДИГРАД" Способы кодирования и декодирования информации
TWI659359B (zh) 2018-04-27 2019-05-11 慧榮科技股份有限公司 控制儲存裝置之方法
US10897273B2 (en) 2018-06-27 2021-01-19 Western Digital Technologies, Inc. System-level error correction coding allocation based on device population data integrity sharing
US10802908B2 (en) 2018-07-31 2020-10-13 Western Digital Technologies, Inc. Data dependent allocation of error correction resources
US10956071B2 (en) 2018-10-01 2021-03-23 Western Digital Technologies, Inc. Container key value store for data storage devices
US10769062B2 (en) 2018-10-01 2020-09-08 Western Digital Technologies, Inc. Fine granularity translation layer for data storage devices
US10740231B2 (en) 2018-11-20 2020-08-11 Western Digital Technologies, Inc. Data access in data storage device including storage class memory
US11016905B1 (en) 2019-11-13 2021-05-25 Western Digital Technologies, Inc. Storage class memory access
US11249921B2 (en) 2020-05-06 2022-02-15 Western Digital Technologies, Inc. Page modification encoding and caching
CN112256473A (zh) * 2020-10-30 2021-01-22 浪潮云信息技术股份公司 一种分布式存储系统自适应纠错方法
CN116662063B (zh) * 2023-05-10 2024-02-23 珠海妙存科技有限公司 一种闪存的纠错配置方法、纠错方法、系统、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101950586A (zh) * 2009-03-27 2011-01-19 联发科技股份有限公司 存储控制器及控制数据读取的方法
CN102005250A (zh) * 2010-10-27 2011-04-06 记忆科技(深圳)有限公司 准循环低密度奇偶校验码译码器及译码方法

Family Cites Families (174)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499337A (en) 1991-09-27 1996-03-12 Emc Corporation Storage device array architecture with solid-state redundancy unit
US5621660A (en) 1995-04-18 1997-04-15 Sun Microsystems, Inc. Software-based encoder for a software-implemented end-to-end scalable video delivery system
US6011868A (en) 1997-04-04 2000-01-04 Hewlett-Packard Company Bitstream quality analyzer
US6418549B1 (en) * 1998-10-30 2002-07-09 Merunetworks, Inc. Data transmission using arithmetic coding based continuous error detection
US20080282128A1 (en) 1999-08-04 2008-11-13 Super Talent Electronics, Inc. Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
US20050160218A1 (en) * 2004-01-20 2005-07-21 Sun-Teck See Highly integrated mass storage device with an intelligent flash controller
US8266367B2 (en) 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US7072417B1 (en) 2000-06-28 2006-07-04 Marvell International Ltd. LDPC encoder and method thereof
US6934904B2 (en) 2001-04-30 2005-08-23 Sun Microsystems, Inc. Data integrity error handling in a redundant storage array
US6895547B2 (en) 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
US7149846B2 (en) 2002-04-17 2006-12-12 Lsi Logic Corporation RAID protected external secondary memory
US7702986B2 (en) 2002-11-18 2010-04-20 Qualcomm Incorporated Rate-compatible LDPC codes
US6856556B1 (en) 2003-04-03 2005-02-15 Siliconsystems, Inc. Storage subsystem with embedded circuit for protecting against anomalies in power signal from host
JP4256198B2 (ja) * 2003-04-22 2009-04-22 株式会社東芝 データ記憶システム
US20090193184A1 (en) 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
US7395495B2 (en) 2004-01-12 2008-07-01 Intel Corporation Method and apparatus for decoding forward error correction codes
US7260763B2 (en) 2004-03-11 2007-08-21 Nortel Networks Limited Algebraic low-density parity check code design for variable block sizes and code rates
JP3875693B2 (ja) 2004-03-24 2007-01-31 株式会社東芝 Lpc符号を用いた符号化ビットのマッピング方法及び送信装置
RU2341894C2 (ru) 2004-04-28 2008-12-20 Самсунг Электроникс Ко., Лтд. Устройство и способ для кодирования/декодирования кода разреженного контроля четности с переменной длиной блока
US7346832B2 (en) 2004-07-21 2008-03-18 Qualcomm Incorporated LDPC encoding methods and apparatus
US7395490B2 (en) 2004-07-21 2008-07-01 Qualcomm Incorporated LDPC decoding methods and apparatus
US7203897B2 (en) 2004-08-12 2007-04-10 Motorola, Inc. Method and apparatus for encoding and decoding data
JP4519902B2 (ja) 2004-08-16 2010-08-04 サムスン エレクトロニクス カンパニー リミテッド 可変ブロック長を有するブロック低密度パリティ検査符号の符号化/復号化装置及び方法
US8131926B2 (en) 2004-10-20 2012-03-06 Seagate Technology, Llc Generic storage container for allocating multiple data formats
US7502256B2 (en) 2004-11-30 2009-03-10 Siliconsystems, Inc. Systems and methods for reducing unauthorized data recovery from solid-state storage devices
KR100641052B1 (ko) 2004-12-08 2006-11-02 한국전자통신연구원 Ldpc 부호기 및 복호기, 및 ldpc 부호화 방법 및복호화 방법
US7500172B2 (en) 2005-02-26 2009-03-03 Broadcom Corporation AMP (accelerated message passing) decoder adapted for LDPC (low density parity check) codes
US7657816B2 (en) 2005-07-13 2010-02-02 Leanics Corporation Low-complexity hybrid LDPC code encoder
KR100732628B1 (ko) 2005-07-28 2007-06-27 삼성전자주식회사 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치
US7129862B1 (en) 2005-07-29 2006-10-31 Texas Instruments Incorporated Decoding bit streams encoded according to variable length codes
KR100809616B1 (ko) 2005-10-19 2008-03-05 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
US20070124648A1 (en) 2005-10-31 2007-05-31 Ajay Dholakia Data protection method
US7797611B2 (en) 2005-11-14 2010-09-14 International Business Machines Corporation Creating an error correction coding scheme and reducing data loss
US7631246B2 (en) 2006-01-09 2009-12-08 Broadcom Corporation LDPC (low density parity check) code size adjustment by shortening and puncturing
US7774689B2 (en) * 2006-03-17 2010-08-10 Industrial Technology Research Institute Encoding and decoding methods and systems
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US8239735B2 (en) * 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
US7809994B2 (en) 2006-05-17 2010-10-05 Sandisk Corporation Error correction coding for multiple-sector pages in flash memory devices
US8108692B1 (en) 2006-06-27 2012-01-31 Siliconsystems, Inc. Solid-state storage subsystem security solution
US7765373B1 (en) 2006-06-27 2010-07-27 Siliconsystems, Inc. System for controlling use of a solid-state storage subsystem
US7509441B1 (en) 2006-06-30 2009-03-24 Siliconsystems, Inc. Systems and methods for segmenting and protecting a storage subsystem
US7447807B1 (en) 2006-06-30 2008-11-04 Siliconsystems, Inc. Systems and methods for storing data in segments of a storage subsystem
US7739576B2 (en) 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
JP4932427B2 (ja) 2006-10-20 2012-05-16 株式会社日立製作所 記憶装置及び記憶方法
US8161227B1 (en) 2006-10-30 2012-04-17 Siliconsystems, Inc. Storage subsystem capable of programming field-programmable devices of a target computer system
US8019940B2 (en) 2006-12-06 2011-09-13 Fusion-Io, Inc. Apparatus, system, and method for a front-end, distributed raid
US8090980B2 (en) 2006-12-08 2012-01-03 Sandforce, Inc. System, method, and computer program product for providing data redundancy in a plurality of storage devices
US8549236B2 (en) 2006-12-15 2013-10-01 Siliconsystems, Inc. Storage subsystem with multiple non-volatile memory arrays to protect against data losses
US7660911B2 (en) 2006-12-20 2010-02-09 Smart Modular Technologies, Inc. Block-based data striping to flash memory
US7913149B2 (en) 2006-12-20 2011-03-22 Lsi Corporation Low complexity LDPC encoding algorithm
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
US7900118B2 (en) 2007-02-12 2011-03-01 Phison Electronics Corp. Flash memory system and method for controlling the same
US8359522B2 (en) 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes
US7685338B2 (en) 2007-05-24 2010-03-23 Siliconsystems, Inc. Solid state storage subsystem for embedded applications
US7685337B2 (en) 2007-05-24 2010-03-23 Siliconsystems, Inc. Solid state storage subsystem for embedded applications
US7685374B2 (en) 2007-07-26 2010-03-23 Siliconsystems, Inc. Multi-interface and multi-bus structured solid-state storage subsystem
US8181089B1 (en) 2007-08-24 2012-05-15 Datadirect Networks, Inc. Method for auto-correction of errors in a solid-state memory system
US8095851B2 (en) 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
US8261152B2 (en) 2007-09-10 2012-09-04 Samsung Electronics Co., Ltd. Apparatus and method for channel encoding/decoding in communication system using variable-length LDPC codes
US8312341B1 (en) * 2007-12-05 2012-11-13 Marvell International Ltd. Interleaved error correction coding for channels with non-uniform SNRs
US8751755B2 (en) 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
US8078918B2 (en) 2008-02-07 2011-12-13 Siliconsystems, Inc. Solid state storage subsystem that maintains and provides access to data reflective of a failure risk
US7962792B2 (en) 2008-02-11 2011-06-14 Siliconsystems, Inc. Interface for enabling a host computer to retrieve device monitor data from a solid state storage subsystem
KR101398212B1 (ko) 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
KR101398200B1 (ko) 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
US8180954B2 (en) 2008-04-15 2012-05-15 SMART Storage Systems, Inc. Flash management using logical page size
US7733712B1 (en) 2008-05-20 2010-06-08 Siliconsystems, Inc. Storage subsystem with embedded circuit for protecting against anomalies in power signal from host
WO2009143375A2 (en) 2008-05-21 2009-11-26 The Regents Of The University Of Calfornia Lower-complexity layered belief propagation deconding ldpc codes
US8276028B2 (en) * 2008-05-23 2012-09-25 Intel Corporation Using error information from nearby locations to recover uncorrectable data in non-volatile memory
US20100125695A1 (en) 2008-11-15 2010-05-20 Nanostar Corporation Non-volatile memory storage system
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
KR101391362B1 (ko) 2008-07-23 2014-05-07 삼성전자주식회사 읽기 전압 레벨이 설정가능한 플래시 메모리 시스템 및읽기 전압 레벨의 설정방법
US8583835B1 (en) 2008-08-06 2013-11-12 Siliconsystems, Inc. Command portal for executing non-standard storage subsystem commands
US8375151B1 (en) 2009-02-12 2013-02-12 Siliconsystems, Inc. Command portal for securely communicating and executing non-standard storage subsystem commands
US20100049914A1 (en) 2008-08-20 2010-02-25 Goodwin Paul M RAID Enhanced solid state drive
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8281214B2 (en) 2008-10-17 2012-10-02 Lsi Corporation Programmable quasi-cyclic low-density parity check (QC LDPC) encoder for read channel
US8161345B2 (en) 2008-10-29 2012-04-17 Agere Systems Inc. LDPC decoders using fixed and adjustable permutators
US9356623B2 (en) 2008-11-26 2016-05-31 Avago Technologies General Ip (Singapore) Pte. Ltd. LDPC decoder variable node units having fewer adder stages
KR101059673B1 (ko) 2008-12-26 2011-08-25 서울대학교산학협력단 신뢰도 또는 저장 용량을 동적으로 조절하는 저장 장치 및 그 방법
US9176859B2 (en) 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
US8090899B1 (en) 2009-03-04 2012-01-03 Western Digital Technologies, Inc. Solid state drive power safe wear-leveling
KR100929371B1 (ko) 2009-03-18 2009-12-02 한국과학기술원 페이지-디퍼런셜을 이용하여 dbms에 독립적인 방법으로 플래시 메모리에 데이터를 저장하는 방법
US10079048B2 (en) 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
US8327224B2 (en) 2009-04-16 2012-12-04 Micron Technology, Inc. Data recovery in a solid state storage system
US8578256B2 (en) 2009-04-22 2013-11-05 Agere Systems Llc Low-latency decoder
US8341501B2 (en) * 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
US7898859B2 (en) 2009-06-15 2011-03-01 Micron Technology, Inc. Use of emerging non-volatile memory elements with flash memory
US8255620B2 (en) * 2009-08-11 2012-08-28 Texas Memory Systems, Inc. Secure Flash-based memory system with fast wipe feature
US7941696B2 (en) 2009-08-11 2011-05-10 Texas Memory Systems, Inc. Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes
US7856528B1 (en) 2009-08-11 2010-12-21 Texas Memory Systems, Inc. Method and apparatus for protecting data using variable size page stripes in a FLASH-based storage system
US8402217B2 (en) 2009-09-15 2013-03-19 Marvell International Ltd. Implementing RAID in solid state memory
US8683302B2 (en) 2009-09-25 2014-03-25 Panasonic Corporation Coding device, decoding device, coding method, decoding method, and communication system
US8254172B1 (en) 2009-09-30 2012-08-28 Western Digital Technologies, Inc. Wear leveling non-volatile semiconductor memory based on erase times and program times
US8243525B1 (en) 2009-09-30 2012-08-14 Western Digital Technologies, Inc. Refreshing non-volatile semiconductor memory by reading without rewriting
JP2011086333A (ja) 2009-10-14 2011-04-28 Sony Corp データ変調装置および方法、並びにプログラム、記録媒体
US9753847B2 (en) 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US8135903B1 (en) 2009-10-30 2012-03-13 Western Digital Technologies, Inc. Non-volatile semiconductor memory compressing data to improve performance
US8261012B2 (en) 2009-10-30 2012-09-04 Western Digital Technologies, Inc. Non-volatile semiconductor memory comprising power fail circuitry for flushing write data in response to a power fail signal
TWI415396B (zh) 2009-11-23 2013-11-11 Nat Univ Tsing Hua 適用於根據里德-索羅門碼建立之低密度同位檢查碼的解碼器及解碼方法
US8397107B1 (en) 2009-12-11 2013-03-12 Western Digital Technologies, Inc. Data storage device employing data path protection using both LBA and PBA
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
KR101623119B1 (ko) 2010-02-01 2016-05-20 삼성전자주식회사 솔리드 스테이트 드라이브의 에러 제어 방법
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
US8407449B1 (en) 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
JP4940322B2 (ja) 2010-03-16 2012-05-30 株式会社東芝 半導体メモリ映像蓄積再生装置及びデータ書込み/読出し方法
US9098430B2 (en) 2010-03-22 2015-08-04 Conversant Intellectual Property Management Inc. Composite semiconductor memory device with error correction
US8726126B2 (en) 2010-03-23 2014-05-13 Apple Inc. Non-regular parity distribution detection via metadata tag
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
US8713066B1 (en) 2010-03-29 2014-04-29 Western Digital Technologies, Inc. Managing wear leveling and garbage collection operations in a solid-state memory using linked lists
US9544090B2 (en) 2010-03-31 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Hard input low density parity check decoder
US8527840B2 (en) * 2010-04-06 2013-09-03 Densbits Technologies Ltd. System and method for restoring damaged data programmed on a flash device
WO2011126578A1 (en) 2010-04-09 2011-10-13 Link_A_Media Devices Corporation Implementation of ldpc selective decoding scheduling
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
US8762813B2 (en) * 2010-05-17 2014-06-24 Skymedi Corporation Configurable coding system and method of multiple ECCS
US8489979B2 (en) 2010-05-28 2013-07-16 Seagate Technology Llc Methods and devices to reduce outer code failure rate variability
US8799747B2 (en) 2010-06-03 2014-08-05 Seagate Technology Llc Data hardening to compensate for loss of data retention characteristics in a non-volatile memory
US8341339B1 (en) 2010-06-14 2012-12-25 Western Digital Technologies, Inc. Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk
US8612669B1 (en) 2010-06-28 2013-12-17 Western Digital Technologies, Inc. System and method for performing data retention in solid-state memory using copy commands and validity and usage data
US8447920B1 (en) 2010-06-29 2013-05-21 Western Digital Technologies, Inc. System and method for managing data access in non-volatile memory
US8521972B1 (en) 2010-06-30 2013-08-27 Western Digital Technologies, Inc. System and method for optimizing garbage collection in data storage
US8639872B1 (en) 2010-08-13 2014-01-28 Western Digital Technologies, Inc. Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk
US8775720B1 (en) 2010-08-31 2014-07-08 Western Digital Technologies, Inc. Hybrid drive balancing execution times for non-volatile semiconductor memory and disk
US8638602B1 (en) 2010-09-10 2014-01-28 Western Digital Technologies, Inc. Background selection of voltage reference values for performing memory read operations
US8769190B1 (en) 2010-09-15 2014-07-01 Western Digital Technologies, Inc. System and method for reducing contentions in solid-state memory access
US8788779B1 (en) 2010-09-17 2014-07-22 Western Digital Technologies, Inc. Non-volatile storage subsystem with energy-based performance throttling
US8458568B2 (en) * 2010-09-24 2013-06-04 International Business Machines Corporation Systems and methods for memory devices
US8463991B2 (en) 2010-09-28 2013-06-11 Pure Storage Inc. Intra-device data protection in a raid array
US8612804B1 (en) 2010-09-30 2013-12-17 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
US20120084507A1 (en) 2010-10-01 2012-04-05 John Colgrove Multi-level protection with intra-device protection in a raid array based storage system
US9348696B2 (en) 2010-10-01 2016-05-24 Pure Storage, Inc. Distributed multi-level protection in a raid array based storage system
WO2012058328A1 (en) 2010-10-27 2012-05-03 Sandforce, Inc. Adaptive ecc techniques for flash memory based data storage
US8601313B1 (en) 2010-12-13 2013-12-03 Western Digital Technologies, Inc. System and method for a data reliability scheme in a solid state memory
US8601311B2 (en) 2010-12-14 2013-12-03 Western Digital Technologies, Inc. System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US8458435B1 (en) 2010-12-20 2013-06-04 Western Digital Technologies, Inc. Sequential write thread detection
US8392635B2 (en) 2010-12-22 2013-03-05 Western Digital Technologies, Inc. Selectively enabling a host transfer interrupt
US8626989B2 (en) * 2011-02-02 2014-01-07 Micron Technology, Inc. Control arrangements and methods for accessing block oriented nonvolatile memory
US8683113B2 (en) 2011-02-04 2014-03-25 Western Digital Technologies, Inc. Concurrently searching multiple devices of a non-volatile semiconductor memory
US8700950B1 (en) 2011-02-11 2014-04-15 Western Digital Technologies, Inc. System and method for data error recovery in a solid state subsystem
US8700951B1 (en) 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
US8769232B2 (en) 2011-04-06 2014-07-01 Western Digital Technologies, Inc. Non-volatile semiconductor memory module enabling out of order host command chunk media access
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US8862804B2 (en) 2011-04-29 2014-10-14 Western Digital Technologies, Inc. System and method for improved parity determination within a data redundancy scheme in a solid state memory
US8751728B1 (en) 2011-04-29 2014-06-10 Western Digital Technologies, Inc. Storage system bus transfer optimization
US9021178B2 (en) 2011-05-02 2015-04-28 Western Digital Technologies, Inc. High performance path for command processing
US8503237B1 (en) 2011-05-18 2013-08-06 Western Digital Technologies, Inc. System and method for data recovery in a solid state storage device
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US8719531B2 (en) 2011-06-14 2014-05-06 Western Digital Technologies, Inc. System and method for performing data retention that incorporates environmental conditions
US8806112B2 (en) * 2011-07-14 2014-08-12 Lsi Corporation Meta data handling within a flash media controller
US20130031301A1 (en) * 2011-07-29 2013-01-31 Stec, Inc. Backend organization of stored data
US8423722B1 (en) 2011-08-26 2013-04-16 Western Digital Technologies, Inc. System and method for high performance command processing in solid state drives
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting in data storage systems
US8700834B2 (en) 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US8977803B2 (en) 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Disk drive data caching using a multi-tiered memory
US8339919B1 (en) 2011-12-14 2012-12-25 Western Digital Technologies, Inc. Disk drive margining read channel by biasing log-likelihood ratios of a nonbinary iterative decoder
US8724422B1 (en) 2012-02-29 2014-05-13 Western Digital Technologies, Inc. System and method for charging back-up charge storage element for data storage device using spindle phase switching elements
US9003224B2 (en) 2012-04-25 2015-04-07 Western Digital Technologies, Inc. Managing unreliable memory in data storage systems
US8996957B1 (en) * 2012-05-22 2015-03-31 Pmc-Sierra, Inc. Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes
US8788778B1 (en) 2012-06-04 2014-07-22 Western Digital Technologies, Inc. Garbage collection based on the inactivity level of stored data
US8966343B2 (en) 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
US8788880B1 (en) 2012-08-22 2014-07-22 Western Digital Technologies, Inc. Efficient retry mechanism for solid-state memory failures
US8898548B1 (en) * 2012-08-24 2014-11-25 Western Digital Technologies, Inc. Methods, data storage devices and systems having variable size ECC page size
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US8972826B2 (en) 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
US9177638B2 (en) 2012-11-13 2015-11-03 Western Digital Technologies, Inc. Methods and devices for avoiding lower page corruption in data storage devices
US8954694B2 (en) 2012-11-15 2015-02-10 Western Digital Technologies, Inc. Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9059736B2 (en) 2012-12-03 2015-06-16 Western Digital Technologies, Inc. Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme
US20140223255A1 (en) 2012-12-18 2014-08-07 Western Digital Technologies, Inc. Decoder having early decoding termination detection
US9430376B2 (en) 2012-12-26 2016-08-30 Western Digital Technologies, Inc. Priority-based garbage collection for data storage systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101950586A (zh) * 2009-03-27 2011-01-19 联发科技股份有限公司 存储控制器及控制数据读取的方法
CN102005250A (zh) * 2010-10-27 2011-04-06 记忆科技(深圳)有限公司 准循环低密度奇偶校验码译码器及译码方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
An Improved Variable Length Coding Scheme Using Structured LDPC Codes;Ming Jiang等;《International Conference On Wireless Communications and Signal Processing》;20101021;第1-5页 *

Also Published As

Publication number Publication date
KR101927575B1 (ko) 2018-12-10
US10216574B2 (en) 2019-02-26
EP2912667A1 (en) 2015-09-02
CN104871249A (zh) 2015-08-26
JP2015534409A (ja) 2015-11-26
WO2014065967A1 (en) 2014-05-01
JP6129328B2 (ja) 2017-05-17
US8972826B2 (en) 2015-03-03
US20140115427A1 (en) 2014-04-24
KR20150082334A (ko) 2015-07-15
HK1214401A1 (zh) 2016-07-22
US20150100854A1 (en) 2015-04-09
EP2912667A4 (en) 2016-06-01

Similar Documents

Publication Publication Date Title
CN104871249B (zh) 数据存储系统的自适应错误纠正码
CN101183565B (zh) 存储介质中数据校验方法
CN107665723A (zh) 用于非易失性存储器的非二进制编码
US8656263B2 (en) Trellis-coded modulation in a multi-level cell flash memory device
US9465552B2 (en) Selection of redundant storage configuration based on available memory space
US9214963B1 (en) Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system
US10965324B2 (en) Memory controller, memory system, and memory control method
CN105302659B (zh) 固态器件中的多纠错码代码字尺寸
CN102394114B (zh) 具有自适应纠错能力的bch码纠错方法
US11397640B2 (en) Extended error correction in storage device
JP2013524609A5 (zh)
JP2013524609A (ja) ソリッド・ステート・ストレージ・デバイスのsレベル・ストレージに入力データを記録するための方法、エンコーダ装置、およびソリッド・ステート・ストレージ・デバイス
WO2022103925A1 (en) Cache management based on memory device over-provisioning
US11817883B2 (en) Variable length ECC code according to value length in NVMe key value pair devices
CN108268338A (zh) 逐渐缩减大小的可变节点存储器
CN107305510A (zh) 数据处理方法、存储器存储装置及存储器控制电路单元
CN112562772B (zh) 自适应低密度奇偶校验硬解码器
CN105632554B (zh) 存储装置的操作方法

Legal Events

Date Code Title Description
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: 1214401

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: 1214401

Country of ref document: HK