CN101868831B - 支持速率兼容经穿孔码的存储器控制器 - Google Patents

支持速率兼容经穿孔码的存储器控制器 Download PDF

Info

Publication number
CN101868831B
CN101868831B CN200880117049.8A CN200880117049A CN101868831B CN 101868831 B CN101868831 B CN 101868831B CN 200880117049 A CN200880117049 A CN 200880117049A CN 101868831 B CN101868831 B CN 101868831B
Authority
CN
China
Prior art keywords
data
code
punctured
flash memory
code check
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
CN200880117049.8A
Other languages
English (en)
Other versions
CN101868831A (zh
Inventor
威廉·H·拉德克
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.)
Micron Technology Inc
Original Assignee
Micron Technology 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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN101868831A publication Critical patent/CN101868831A/zh
Application granted granted Critical
Publication of CN101868831B publication Critical patent/CN101868831B/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/1068Adding 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 sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • H03M13/235Encoding of convolutional codes, e.g. methods or arrangements for parallel or block-wise encoding
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2933Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using a block and a convolutional code
    • 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • 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/6362Error control coding in combination with rate matching by puncturing
    • H03M13/6368Error control coding in combination with rate matching by puncturing using rate compatible puncturing or complementary puncturing
    • H03M13/6375Rate compatible punctured convolutional [RCPC] codes

Abstract

本发明揭示根据例如速率兼容卷积码(RPCC)等速率兼容码将数据存储于非易失性固态存储器装置(100)中的设备及方法。此种存储器装置(100)的实例是快闪存储器装置(100)。最初可对数据进行块编码(112)以用于错误校正及检测。可对所述经块编码的数据进行进一步卷积编码(114)。可穿孔(116)经卷积编码的数据并将其存储于所述存储器装置(100)中。所述穿孔减少用于存储所述数据的存储器量。取决于条件,穿孔量可在不穿孔到相对高的穿孔量之间改变以改变所提供的额外错误校正及所使用的存储器的量。当将从所述存储器装置(100)读取数据时,可对所述经穿孔数据进行解码(120、122)。

Description

支持速率兼容经穿孔码的存储器控制器
技术领域
一般来说,本发明的实施例涉及集成电路。特定来说,本发明的实施例涉及存储器电路。
背景技术
快闪存储器是一种形式的可擦除且可再编程非易失性存储器。在快闪存储器中,存储器单元按“块”进行布置以供擦除。在已擦除块之后,如果需要则准备编程。NOR快闪存储器是一种类型的提供对个别字节的存取以检索数据但具有相对低的密度的快闪存储器。
NAND快闪存储器是一种类型的提供相对高的密度的快闪存储器。高密度是部分通过形成串联连接的单元列实现。另外,通过NAND快闪存储器,按相对大的字节群组(例如,数据页)来编程及存取数据。举例来说,一页可对应于阵列中的一行或一行的一部分。
举例来说,用于存储数据的存储器单元阵列通常按2维行与列阵列进行布置。这些阵列在大小上可极大地改变。当所述阵列的单元能够保持2个或更多个层级(也就是说,每一单元多个层级或两个或更多个数据位)时,所述阵列按3维有效地保持数据。
在典型NAND快闪存储器阵列中,快闪单元的源极及漏极串联(源极到漏极)布置并称为列。控制单元的栅极的“字线”沿着行。通常一次一行地存取数据,其中从每一列存取一个位。将待读取行的字线设定为用于读取单元的所存储状态的特定电压。可将不同电压电平用于多级单元。所述列的其它单元的其它行线经设定以“接通”所述单元以准许通过所述列中的对应单元来读取所述行的单元的所存储状态。
每一行的字节数目可在非常宽广的范围内改变,“页”中的字节数目也可如此。一些制造商按一定数据量来界定一页,以使得(例如)两个数据页可对应于一个字线(行)。出于本说明的目的,“数据”页”对应于在写入循环或读取循环期间写入至NAND快闪存储器阵列或从其读取的数据量。在一个实例中,通过启动字线来检索2,112个字节。所述2,112个字节中的2,048个是数据字节且64个是备用字节,其通常用于错误校正码(ECC)、耗损平均信息或其它额外开销数据。错误校正码增加所存储数据的强健性。通常,一种形式的块码用于产生错误校正码,例如循环冗余校验(CRC)校验和、里德-所罗门错误校正码或类似物。这些错误校正码检测在数据字节的读取中是否存在错误,且只要所述错误不超过所述错误校正码的能力即通常可校正所述数据字节中的错误。
快闪存储器具有许多用途。实例包含:快闪存储器硬盘驱动器(硬盘驱动器的取代物)、USB快闪驱动器或拇指驱动器、移动电话、数码相机、数字媒体播放器、游戏机、存储器卡、导航装置、个人数字助理、计算机或类似装置。在限制内,错误校正码可校正数据字节中的数据中的许多错误。然而,超出这些限制,则通常不能校正具有错误的数据。举例来说,如果字线出现故障,那么针对整个行读取数据可能存在问题。此通常导致有太多错误需要错误校正码来进行校正。取决于数据的关键程度,数据中不可校正的错误的效应可介于不方便与具有灾难性之间。
附图说明
提供这些图式及本文相关联说明以图解说明本发明的具体实施例而并不打算具有限制性。
图1是包含存储器装置的示意图,其中所述存储器装置存储具有外部块码及内部速率兼容码的数据。
图2示意性地图解说明用于产生卷积码的编码器的实例。
图3示意性地图解说明用于穿孔卷积码的数据流程。
图4是大致图解说明用于动态地选择用于将数据存储于NAND快闪存储器装置中的码率的过程的流程图。
具体实施方式
数据根据例如速率兼容卷积码(RCPC)等速率兼容码存储于非易失性固态存储器装置中。此种存储器装置的实例是快闪存储器装置。最初可对数据进行块编码例如以供错误校正及检测。对所述经块编码的数据进行进一步卷积编码。当卷积编码增加冗余时,其也增加待存储的数据量。当穿孔(其有时也称为“打孔”)时,所述经卷积编码的数据中的一些数据根据穿孔模式移除。稍后将结合图3描述穿孔模式的实例。此增加速率兼容码的码率m/n,其中m是信息符号的数目且n是码符号的数目。所述穿孔减少用于存储数据的存储器量。取决于条件,穿孔量可在不穿孔到相对高的穿孔量之间改变以改变所提供的额外错误校正及所使用的存储器的量。当将从所述存储器装置读取数据时,对所述经穿孔的经编码数据进行解码。虽然本文中描述了若干特定实施例,但所属领域的技术人员将显而易见包含并不提供本文中所阐明的所有益处及特征的实施例的其它实施例。
存在两个其中使用术语“块”的背景。关于NAND快闪,块是对应于可擦除存储器单元的页的集合。关于错误校正,块码是指一种类型的错误校正。所述两者可基于背景进行区分。
图1是包含存储器装置100的示意图,其中所述存储器装置使用速率兼容码(也就是说,具有为m/n的可调节码率的卷积码)来产生经编码的数据。速率兼容码的实例是卷积码。卷积码是正向错误校正技术,其中到卷积编码器的输入数据串流与所述编码器的脉冲响应起卷积。图2中图解说明卷积码的计算的实例的方块图。所图解说明的实施例产生由内部码及外部码形成的并置错误校正码。首先产生外部错误校正码。在产生外部码之后对内部错误校正码进行编码并对将所述外部码进行进一步编码。外部块码提供错误检测能力及错误校正能力。内部速率兼容码提供额外错误校正能力。与按块处理数据的块码相反,速率兼容内部码以连续方式处理数据。
图解说明存储器装置100与CPU 102进行通信,CPU 102表示使用存储器装置100的装置。CPU 102是可对应于微处理器、微控制器、信号处理器或类似装置的处理器。所图解说明的存储器装置100包含写入缓冲器104、控制器106、存储器阵列108及读取缓冲器110。
控制器106进一步包含块码编码器112、速率兼容编码器124、速率兼容解码器126及块码解码器122。在所图解说明的实施例中,速率兼容编码器124进一步包含可穿孔码编码器114及穿孔电路116,且速率兼容解码器126进一步包含插入电路118及可穿孔码解码器120。控制器106可由硬件、由固件(软件)或由硬件与固件两者的组合实施。块码编码器112及可穿孔码编码器114每一者提供正向错误校正(FEC)。控制器106处置存储到存储器阵列108及从其检索的数据。为清楚起见,图1中不显示例如缓冲器、行解码器、感测/放大器电路及类似熟悉组件。举例来说,在块码编码器112与可穿孔码编码器114之间可存在缓冲器用于存储待编码数据。在可穿孔码编码器114与穿孔电路116之间可存在缓冲器用于存储待穿孔数据。在穿孔电路116与存储器阵列108的驱动器之间可存在缓冲器用于存储待写入的经穿孔的经编码数据。
在一个实施例中,存储器阵列108对应于NAND快闪存储器阵列。所述NAND快闪存储器阵列可具有单级、多级,或甚至可对应于多个阵列。虽然将在NAND快闪存储器的背景中描述特定实施例,但本文中所描述的原理及优点也可应用于其它类型的存储器。一定范围的非易失性固态存储器类型可用于存储器阵列108。举例来说,存储器阵列108可对应于其它形式的快闪(例如,NOR型)、电可擦除可编程只读存储器(EEPROM)、磁阻随机存取存储器(MRAM)、可编程导体存储器、铁电存储器及类似存储器。
写入缓冲器104存储意待存储到存储器阵列108的数据。读取缓冲器110存储从存储器阵列108中检索的数据以供CPU 102读取。对于NAND快闪存储器来说,通常一次将一数据“页”写入到存储器阵列108或从其读取一数据“页”。此数据页的大小可在存储器装置之间改变。典型页大小包含(但不限于):512个字节、1024个字节、2048个字节及类似大小。在所述示意图中,变量N表示页的数据量(例如,字节数目)。虽然从有利于CPU 102的观点来看特定页大小在大小上通常是固定的,但存储于存储器阵列108中的页大小将依据如将在下文更详细地解释的码率而改变。
通过块码编码器112对N个数目的正常数据字节进行编码。块码的实例包含(但并不限于):汉明码、里德-所罗门错误校正码、搏斯-乔赫里-霍克文黑姆(BCH)码或类似码。在限制内,这些块错误校正码可用于检测并校正数据中的许多错误。使用块码编码的数据占用图1中表示为变量y数目个块码字节的额外字节。在常规NAND快闪存储器阵列中,块码通常存储于对应页的备用字节区域中,其可包含其它信息以及块码。出于图解说明目的,这些可能额外字节包含于变量y中。因此,对于常规NAND快闪存储器阵列来说,针对N个正常数据字节及y个错误校正数据字节页存储N+y个字节。通常,对于块码来说,N+y个字节中的N个字节保持相同数据,并将用于错误校正的y个块码字节附加到N个正常数据字节。N个正常数据字节可视为块码编码器112的原始数据,且N+y个字节可视为可穿孔码编码器114的原始数据。块码稍后准许在对经编码数据进行解码时侦测及/或校正错误。
速率兼容编码器124对经块编码的数据进行编码。在一个实施例中,速率兼容编码器124包含可穿孔码编码器114及穿孔电路116。可穿孔码编码器114使用内部速率兼容码(例如,卷积码)编码以对来自块码编码器112的N+y个字节的数据进行编码。通常,码的码率在穿孔之前为1/n,例如1/2、1/3、1/4等等。此编码将页的数据量增加因子z0,以便在可穿孔码编码器114的输出处产生z0(N+y)个字节。对于为1/n的码率,则z0等于n。举例来说,对于半速率(1/2)码率,z0等于2。稍后将结合图2更详细地描述具有半速率码的经卷积编码的数据的产生。
穿孔电路116穿孔所述经卷积编码的数据。在一个实施例中,穿孔电路116的功能与可穿孔码编码器114集成在一起。此减少数据量,从而增加码率(m/n)。在穿孔之后,页的位数目是z1(N+y)个字节,其中z1是穿孔之后码率的倒数。z1(N+y)个字节存储于存储器阵列108中。随着数据大小的增长,存储器地址也可在内部映射到存储器装置以反映所存储的数据的大小的增加。穿孔的优点是其可用于改变码率(m/n),且因此,所述所使用的存储量对所存储的冗余量。
经穿孔码率的实例包含(但不限于)如稍后将结合图3描述的2/3及4/5。也可应用其它码率且其将容易地由所属领域的技术人员确定。码率(m/n)取决于所选择的特定穿孔模式及用于对待穿孔数据进行编码的码的码率。在“穿孔”数据时,删除所述数据中的某些位。在图1中,控制电路128提供穿孔模式或对穿孔模式的指示。码率(m/n)可随着穿孔模式而改变,且用于存储经穿孔数据的存储器阵列108的空间量可接着改变。因此,应理解,地址映射、行及/或列及对特定块所使用的码率的指示可存储于存储器阵列108的参考区域中并由控制电路128进行使用及/或选择。在一个实施例中,控制电路128也将指示经穿孔数据的穿孔等级的参考信息存储于存储器阵列108中。举例来说,可存储穿孔模式。在一个实施例中,参考信息自身并不穿孔以便可在不知晓穿孔模式的情况下对其进行解码。在一个实例中,参考信息存储于每一页的结尾处。然而,参考信息也可存储于每一块的结尾处或整个阵列的一个块内及类似位置处。稍后将结合图4描述控制电路128的可能功能的进一步实例。
速率兼容解码器126对经穿孔数据进行解码。根据应用,速率兼容解码器126也可将未经穿孔数据解码。在一个实施例中,速率兼容解码器126包含插入电路118及可穿孔码解码器120。当从存储器阵列108中检索z1(N+y)个字节的经穿孔数据时,插入电路118使用穿孔模式来插入虚设数据以替代先前删除的数据(解穿孔),所述虚设数据(例如)不影响维特比解码器的可能解码序列的似然计算(分支度量)。在替代实施例中,不是插入虚设数据,使用擦除指针来向解码器指示已穿孔特定数据。在一个实施例中,插入电路118的“插入”功能由可穿孔码解码器120中的硬接线数学等效物取代。只要错误总数目在速率兼容码的错误校正能力内,即应存在足够的冗余以对经穿孔数据进行正确地解码。
通过可穿孔码解码器120对具有z0(N+y)个字节的经重组码进行解码。在一个实施例中,可穿孔码解码器120是维特比解码器,其对经卷积编码的数据进行去卷积。所述经去卷积的数据接着提供到块码解码器122(例如,用于进一步错误检测及/或校正)。块码解码器122对z(N+y)个字节的经块解码数据进行解码并产生N个字节的经校正数据(除非错误不可校正)。所述N个字节的经校正数据置于读取缓冲器110中以供CPU 102存取。
在相对低的码率下,来自块码编码器112与速率兼容编码器124组合的外部块码与内部卷积码的并置可改善所存储数据的集成度并增加恢复可校正数据的可能性。可通过降低位错误率(BER)来观察此效应。BER的改善可用于分配可用存储器以通过更多的冗余来对更具有价值的数据进行编码并通过较少的冗余来对较不具有价值的数据进行编码。举例来说,可通过比应用程序数据(例如,音乐档案)多的冗余来对编程数据(例如,固件、操作系统或其它编程数据)进行编码。在另一实例中,稍后将结合图4描述,去往存储器阵列108的已被识别为变得较不可靠的区域的数据可与相对低速率内部码并置在一起。举例来说,可减小穿孔量或可完全停用穿孔以增加冗余及内部码的错误校正能力。
图2图解说明用于卷积编码数据的编码器200的实例,其是速率兼容编码器的实例。编码器200使用具有为1/2的m/n码率的卷积码。所述编码器包含移位寄存器202、第一模2加法器204及第二模2加法器206。模2加法器204、206实施互斥OR(XOR)逻辑。将输入数据位X连续地提供到移位寄存器202。移位寄存器202及模2加法器204、206实施生成多项式Y0、Y1,每一模2加法器204、206每一者一个。所述生成多项式表征卷积编码器的转换功能。可使用宽广范围的生成多项式。另外,如果需要可计算多于两个生成多项式,同时码率对应降低,例如,1/3、1/4等等。
图3图解说明数据串流。举例来说,参考图1,所述数据串流可对应于出现在可穿孔码编码器114、穿孔电路116周围的路径中,存储于存储器阵列108中、插入电路118及可穿孔码解码器120中及从其检索的那些数据串流。在顶部处的第一实例中,使用为1/2的码率对数据串流进行卷积编码并在不穿孔的情况下将其存储。在中间的第二实例中,使用为1/2的码率对数据串流进行卷积编码并将其穿孔以获得为2/3的码率。在底部处的第三实例中,使用为1/2的码率对数据串流进行卷积编码并将其穿孔以获得为4/5的码率。
返回到顶部处的第一实例,对来自块码编码器112的输出的数据串流x0,x1,x2,x3,...进行卷积编码以产生两个输出数据串流,...及,...。这两个输出数据串流存储于存储器阵列108中而不穿孔。当从存储器阵列108中检索数据时,可穿孔码解码器120可在不插入任何数据的情况下对,...及,...数据串流进行解码。
在中间的第二实例中,对数据串流x0,x1,x2,x3,...进行卷积编码以产生两个输出数据串流,...及,...,接着将其穿孔为,...及,...,,...及,...存储于存储器阵列108中。针对数据读取,从存储器阵列108中检索经穿孔数据,...及,...,插入不扰乱解码的虚设值来取代经删除数据或使用擦除指针,并可通过可穿孔码解码器120对具有插入,...及-,,-,...的经穿孔数据进行解码以解码回原始数据串流x0,x1,x2,x3,...。破折号(-)指示数据已被擦除。
在底部处的第三实例中,对数据串流x0,x1,x2,x3,...进行卷积编码以产生两个输出数据串流,...及,...,接着将其穿孔为,...及,...,,...及,...存储于存储器阵列108中。针对数据读取,从存储器阵列108中检索经穿孔数据,...及,...,插入不扰乱解码的虚设值来取代经删除数据或使用擦除指针,并通过可穿孔码解码器120对具有插入,...及,-,-,-,...的经穿孔数据进行解码以解码回原始数据串流x0,x1,x2,x3,...。
如图3中所图解说明,速率兼容码准许通过操纵码率来以各种密度存储数据。因此,当期望相对更多的冗余时,可使用相对低的码率。此使得可在已将存储器装置100(图1)置于字段中之后在存储能力与存储可靠性之间作出折衷。因此,举例来说,用户可在更可靠的数据存储或更多的数据存储之间进行选择。在另一实例中,用于速率兼容码的卷积码的约束长度k可改变。约束长度k是指卷积编码器的转换功能的长度。可在更可靠的数据存储与解码复杂性之间作出折衷。可将芯片的若干选择部分预分配为(例如)相对高的码率或预分配为相对低的码率(及在其之间)。在另一实例中,用于固件、操作系统的编程数据及类似编程数据可视为比应用程序数据(例如,用于音乐或文件的数据)更具有价值。常常地,可通过读取标头来识别正存储的数据的类型。因此,可通过由较低码率码所提供的更大冗余来存储更具有价值的数据。页、块、穿孔模式及类似物的可应用映射可存储于持久存储器的参考区域中,例如在也存储坏块表数据的数据块中。
在另一实例中,产生具有1/4的m/n码率的卷积码。所述具有1/4的未穿孔码率的卷积码用于存储参考信息。针对其它数据的存储,将所述卷积码穿孔为不同码率,例如1/3或1/2。在一个实施例中,如稍后将结合图4描述,穿孔量是可选择的。另外,存储器阵列108(图1)可具有多级单元,且经卷积编码的数据(经穿孔或未经穿孔)可散布于所述单元的多个层级之间。
在一个实施例中,码率也可在将存储器装置100(图1)放入字段中之后改变。然而,应注意,经编码数据的页大小及块大小随着码率而改变,使得也应适当地调节并持久地存储存储器映射、开始或停止地址的指示符、对选择哪一穿孔模式的指示等等以供检索。如果约束长度及/或生成多项式改变,那么也可存储那些映射及指示以供稍后检索。由于块将依据码率消耗变化量的物理存储器空间,因此可在擦除所述块时将其分配。图4图解说明码率的动态选择的实例。
图4是大致图解说明用于动态地选择用于将数据存储于NAND快闪存储器装置中的码率的过程的流程图。所属领域的技术人员应了解,可以多种方式修改所图解说明的过程,而不背离本发明的精神及范围。举例来说,在另一实施例中,可对所图解说明的过程的各个部分进行组合、可将其按交替序列进行重新布置、可将其移除及对其进行类似修改。在一个实施例中,NAND快闪存储器装置中的各个块最初以相对高的码率(低冗余)开始,且在耗损出现时,可降低码率以实现更多的冗余。
在NAND快闪存储器装置中,按相对大的多个页块擦除存储器,且通常一次将数据写入到一页及从其读取数据。所述过程以接收用于擦除块或编程410经擦除块的一部分的命令开始。
所述过程确定420在正用于特定块的码率下是否已存在边际条件的指示。边际条件可由正由块ECC校正的位的数目的增加来指示。举例来说,当块ECC指示其在一个不能够校正进一步错误的位内时,可将页及/或块视为降级且给其加旗标以经由较少穿孔实现增加的冗余。此可推迟块的淘汰并增加存储器装置100(图1)的服务寿命。也存在其中可期望动态地选择码率的其它情况。除前述实例之外,也可依据存储器装置100的存储器阵列108中可用存储器数目来选择码率。图4中所描绘的过程仅为一个实例。
快闪存储器芯片展现耗损机制。举例来说,存储器装置100(图1)可最初在生产期间配置以以相对高的码率(例如,4/5)操作。随着存储器装置100耗损,码率可降低以使得存储器装置100保持可靠性。应注意,此块ECC解码在读取操作期间执行。在一个实施例中,读取块并在擦除所述块之前校验所述块的页的块ECC。在另一实施例中,在正常读取操作期间以正进行基础读取所述块的页。
如果块ECC指示边际条件,那么降低码率430。此可通过减小用于下一组数据的穿孔量来实现。举例来说,可将码率从2/3调节到1/2(不穿孔)。
如果块ECC不指示边际条件,那么所述过程可继续进行以保持440将先前码率用于待编程到那些存储器位置的下一组数据。
一个实施例是一种设备,其包含:编码器,其经配置以接收数据,其中所述编码器经配置以穿孔所述所接收数据;一个或一个以上存储器阵列,其经配置以存储所述经穿孔数据;及解码器,其经配置以解码所述经穿孔数据。
一个实施例是一种用于将数据存储于具有一个或一个以上存储器阵列的非易失性存储器装置中的方法,其中所述方法包含:接收打算用于存储于所述一个或一个以上存储器阵列中的数据;对所述数据进行解码以产生经穿孔数据;及将所述经穿孔数据存储于所述一个或一个以上存储器阵列中。
一个实施例是一种检索存储于具有一个或一个以上存储器阵列的非易失性存储器装置中的经穿孔数据的方法,其中所述方法包含:从所述存储器装置的所述一个或一个以上存储器阵列中检索所述经穿孔数据;及根据与所述经穿孔数据相关联的穿孔模式对所述经穿孔数据进行解码。
一个实施例是一种确定非易失性固态存储器装置中的存储器空间块的码率的方法,其中所述方法包含:确定是否针对所述存储器装置的数据块的至少一部分存在边际条件;及如果存在所述边际条件,那么降低用于所述块的码率。
上文已描述了各种实施例。虽然参照这些具体实施例加以描述,但所述描述打算作为说明性而非打算作为限制性。所属领域的技术人员可想出各种修改及应用,而不背离如所附权利要求书中所界定的本发明的真正精神及范围。

Claims (16)

1.一种用于存储数据的设备,其包括:
编码器,其经配置以接收第一数据,其中所述编码器包括:
可穿孔码编码器,包括卷积编码器,该卷积编码器经配置以对所述第一数据进行卷积编码以产生经卷积编码数据;以及
穿孔电路,其配置以根据穿孔模式穿孔所述经卷积编码数据以产生经穿孔数据;
一个或一个以上NAND快闪存储器阵列,其经配置以存储所述经穿孔数据和所述穿孔模式;
控制电路,其中经配置以选择由所述编码器使用的码率,其中所述码率至少部分地通过边际条件或通过数据类型来选择,其中,通过选择穿孔量来改变所述码率;及
解码器,其经配置以从所述一个或一个以上NAND快闪存储器阵列检索所述经穿孔数据并根据所存储的穿孔模式来解码所述经穿孔数据。
2.根据权利要求1所述的设备,其进一步包括:
块码编码器,其经配置以对第二数据进行块编码以产生所述第一数据,使得所述第一数据是经块编码的,其中所述卷积编码器经配置以对经块编码的数据进行卷积编码;及
块码解码器,其经配置以对经解码的经穿孔数据进行进一步解码。
3.根据权利要求2所述的设备,其中用于解码所述经穿孔数据的所述解码器包括维特比解码器。
4.根据权利要求1所述的设备,其中第一码率被分配到所述一个或一个以上NAND快闪存储器阵列的至少一个块且其中第二码率被分配到所述一个或一个以上NAND快闪存储器阵列的至少第二块。
5.根据权利要求1所述的设备,其中所述一个或一个以上NAND快闪存储器阵列包括多级存储器单元,所述多级存储器单元经配置以将所述经穿孔数据存储于所述存储器单元的多个层级内。
6.根据权利要求1所述的设备,其中所述编码器经配置以从所述所接收数据产生具有1/4码率的卷积码,且进一步经配置以穿孔所述卷积码以产生所述经穿孔数据,其中所述经穿孔数据具有1/3到1/2的可选择码率。
7.根据权利要求1所述的设备,其中所述控制电路经配置以将呈未经穿孔形式的参考信息存储于所述一个或一个以上NAND快闪存储器阵列中,其中所述参考信息包括所述穿孔模式。
8.一种用于将数据存储于具有一个或一个以上NAND快闪存储器阵列的非易失性存储器装置中的方法,所述方法包括:
接收打算用于存储于所述一个或一个以上NAND快闪存储器阵列中的数据;
对所述数据进行卷积编码以产生经卷积编码数据;
选择由编码器使用的码率,其中,所述码率至少部分地通过边际条件或通过数据类型来选择,其中,通过选择穿孔量来改变所述码率;
根据控制电路选择的穿孔模式来穿孔所述经卷积编码数据以产生经穿孔数据;及
将所述经穿孔数据和所述穿孔模式存储于所述一个或一个以上NAND快闪存储器阵列中。
9.根据权利要求8所述的方法,其进一步包括在对所述数据进行卷积编码之前借助块码对所述数据进行编码。
10.根据权利要求8所述的方法,其进一步包括借助第一穿孔模式穿孔经卷积编码数据的至少一部分以产生具有第一码率的所述经穿孔数据并借助第二穿孔模式穿孔经卷积编码数据的至少第二部分以产生具有第二码率的第一经穿孔数据,其中将借助所述第一穿孔模式穿孔的所述数据存储于所述一个或一个以上NAND快闪存储器阵列的第一部分中且将借助所述第二穿孔模式穿孔的所述数据存储于所述一个或一个以上NAND快闪存储器阵列的第二部分中。
11.根据权利要求8所述的方法,其进一步包括至少部分地响应于所述所接收数据的数据类型而在第一码率与第二码率之间进行选择。
12.根据权利要求8所述的方法,其中编码包括:
产生具有1/4的码率的卷积码;及
穿孔所述卷积码以产生所述经穿孔数据,其中所述经穿孔数据具有1/3到1/2的可选择码率。
13.根据权利要求8所述的方法,其进一步包括将呈未经穿孔形式的参考信息存储于所述一个或一个以上NAND快闪存储器阵列中,其中所述参考信息包括所述穿孔模式。
14.一种检索存储于具有一个或一个以上NAND快闪存储器阵列的非易失性存储器装置中的经穿孔数据的方法,所述方法包括:
从所述存储器装置的所述一个或一个以上NAND快闪存储器阵列中检索所述经穿孔数据;
检索存储在所述一个或一个以上NAND快闪存储器阵列中的穿孔模式,该穿孔模式对应于用于产生所述经穿孔数据的穿孔模式;及
根据所述穿孔模式对所述经穿孔数据进行解码。
15.根据权利要求14所述的方法,其中解码包括维特比解码。
16.根据权利要求14所述的方法,其进一步包括:
从所述一个或一个以上NAND快闪存储器阵列中检索呈未经穿孔形式的参考信息,其中所述参考信息指示所述经穿孔数据的穿孔等级;及
根据所述参考信息来选择所述穿孔模式。
CN200880117049.8A 2007-11-21 2008-10-28 支持速率兼容经穿孔码的存储器控制器 Active CN101868831B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/943,943 2007-11-21
US11/943,943 US8327245B2 (en) 2007-11-21 2007-11-21 Memory controller supporting rate-compatible punctured codes
PCT/US2008/081475 WO2009067321A1 (en) 2007-11-21 2008-10-28 Memory controller supporting rate compatible punctured codes

Publications (2)

Publication Number Publication Date
CN101868831A CN101868831A (zh) 2010-10-20
CN101868831B true CN101868831B (zh) 2014-08-06

Family

ID=40643247

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880117049.8A Active CN101868831B (zh) 2007-11-21 2008-10-28 支持速率兼容经穿孔码的存储器控制器

Country Status (7)

Country Link
US (3) US8327245B2 (zh)
EP (1) EP2229680B1 (zh)
JP (1) JP5687062B2 (zh)
KR (1) KR101588605B1 (zh)
CN (1) CN101868831B (zh)
TW (1) TWI479506B (zh)
WO (1) WO2009067321A1 (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8499229B2 (en) * 2007-11-21 2013-07-30 Micro Technology, Inc. Method and apparatus for reading data from flash memory
US8750407B2 (en) * 2008-06-17 2014-06-10 Telefonaktiebolaget L M Ericsson (Publ) Transmitter and method for transmitting soft pilot symbols in a digital communication system
US8230158B2 (en) 2008-08-12 2012-07-24 Micron Technology, Inc. Memory devices and methods of storing data on a memory device
US8161354B2 (en) * 2008-10-16 2012-04-17 Genesys Logic, Inc. Flash memory controller having configuring unit for error correction code (ECC) capability and method thereof
US8077515B2 (en) 2009-08-25 2011-12-13 Micron Technology, Inc. Methods, devices, and systems for dealing with threshold voltage change in memory devices
US8429391B2 (en) 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
US8451664B2 (en) 2010-05-12 2013-05-28 Micron Technology, Inc. Determining and using soft data in memory devices and systems
US8386895B2 (en) 2010-05-19 2013-02-26 Micron Technology, Inc. Enhanced multilevel memory
US8615703B2 (en) 2010-06-04 2013-12-24 Micron Technology, Inc. Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
US11336303B2 (en) 2010-06-04 2022-05-17 Micron Technology, Inc. Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
TWI441181B (zh) 2010-09-09 2014-06-11 Silicon Motion Inc 用來進行資料整形之方法以及其記憶裝置及控制器
JP2012063871A (ja) * 2010-09-14 2012-03-29 Univ Of Tokyo 制御装置およびデータ記憶装置
CN102354527A (zh) * 2011-06-02 2012-02-15 钟浩 一种降低固态存储系统响应时间的方法
US8793556B1 (en) 2012-05-22 2014-07-29 Pmc-Sierra, Inc. Systems and methods for reclaiming flash blocks of a flash drive
US8972824B1 (en) 2012-05-22 2015-03-03 Pmc-Sierra, Inc. Systems and methods for transparently varying error correction code strength in a flash drive
US9176812B1 (en) 2012-05-22 2015-11-03 Pmc-Sierra, Inc. Systems and methods for storing data in page stripes of a flash drive
US9047214B1 (en) 2012-05-22 2015-06-02 Pmc-Sierra, Inc. System and method for tolerating a failed page in a flash device
US9183085B1 (en) 2012-05-22 2015-11-10 Pmc-Sierra, Inc. Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency
US9021333B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for recovering data from failed portions of a flash drive
US8788910B1 (en) 2012-05-22 2014-07-22 Pmc-Sierra, Inc. Systems and methods for low latency, high reliability error correction in a flash drive
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
US9021336B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages
US9021337B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive
CN102929655A (zh) * 2012-09-26 2013-02-13 瑞斯康达科技发展股份有限公司 向闪存芯片中烧写数据文件的方法、预处理方法及装置
US9577673B2 (en) 2012-11-08 2017-02-21 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders
US9026867B1 (en) 2013-03-15 2015-05-05 Pmc-Sierra, Inc. Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory
US9081701B1 (en) 2013-03-15 2015-07-14 Pmc-Sierra, Inc. Systems and methods for decoding data for solid-state memory
US9009565B1 (en) 2013-03-15 2015-04-14 Pmc-Sierra, Inc. Systems and methods for mapping for solid-state memory
US9053012B1 (en) 2013-03-15 2015-06-09 Pmc-Sierra, Inc. Systems and methods for storing data for solid-state memory
US9208018B1 (en) 2013-03-15 2015-12-08 Pmc-Sierra, Inc. Systems and methods for reclaiming memory for solid-state memory
US9235468B2 (en) * 2013-04-12 2016-01-12 Qualcomm Incorporated Systems and methods to improve the reliability and lifespan of flash memory
US9595352B2 (en) * 2014-03-17 2017-03-14 Seagate Technology Llc Manufacturer self-test for solid-state drives
US10795765B2 (en) * 2014-07-22 2020-10-06 Ngd Systems, Inc. SSD for long term data retention
US10528410B2 (en) * 2014-12-16 2020-01-07 Intel Corporation Apparatus, method and system to exchange error information in a unified protocol communication
US9727416B2 (en) * 2015-07-01 2017-08-08 Xilinx, Inc. Variable code rate solid-state drive
CN106484558A (zh) * 2016-09-20 2017-03-08 华中科技大学 一种基于可变码率的纠错码提高固态盘的可靠性方法
CN106846239B (zh) * 2017-01-12 2019-10-22 北京大学 实现图像卷积的编码型闪存系统及工作方法
US10644727B2 (en) * 2018-01-11 2020-05-05 Western Digital Technologies, Inc. Code rate switching mechanism for flash memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6628723B1 (en) * 1999-10-15 2003-09-30 Cisco Technology Coding rate reduction for turbo codes
CN1726647A (zh) * 2002-12-16 2006-01-25 美商内数位科技公司 实施涡轮码时所用同位位流中问题穿刺型态的检测、避免及/或改正

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4058851A (en) 1976-10-18 1977-11-15 Sperry Rand Corporation Conditional bypass of error correction for dual memory access time selection
DE69423104T2 (de) 1994-10-31 2000-07-20 St Microelectronics Srl Fehlernachweis- und Korrekturverfahren in einem mehrstufigen Speicher und Speicher für dieses Verfahren
JPH09261081A (ja) * 1996-03-22 1997-10-03 Kenwood Corp デパンクチャード回路
US5956743A (en) 1997-08-25 1999-09-21 Bit Microsystems, Inc. Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations
US6279133B1 (en) 1997-12-31 2001-08-21 Kawasaki Steel Corporation Method and apparatus for significantly improving the reliability of multilevel memory architecture
JP3180769B2 (ja) * 1998-07-17 2001-06-25 日本電気株式会社 受信電力算出方法及び移動局
JP2000068862A (ja) * 1998-08-19 2000-03-03 Fujitsu Ltd 誤り訂正符号化装置
JP3308915B2 (ja) 1998-11-11 2002-07-29 エヌイーシーマイクロシステム株式会社 不良救済用メモリセル及びそれを用いた記憶装置
US6871303B2 (en) 1998-12-04 2005-03-22 Qualcomm Incorporated Random-access multi-directional CDMA2000 turbo code interleaver
IL141800A0 (en) * 1999-07-06 2002-03-10 Samsung Electronics Co Ltd Rate matching device and method for a data communication system
US6487251B1 (en) * 1999-08-30 2002-11-26 Hughes Electronics Corporation System and method for performing combined multi-rate convolutional coding
US6731538B2 (en) 2000-03-10 2004-05-04 Kabushiki Kaisha Toshiba Semiconductor memory device including page latch circuit
JP2002076915A (ja) * 2000-08-31 2002-03-15 Sony Corp インターリーブ装置及びインターリーブ方法、並びに、復号装置及び復号方法
US6684366B1 (en) * 2000-09-29 2004-01-27 Arraycomm, Inc. Multi-rate codec with puncture control
US20030126545A1 (en) * 2001-10-05 2003-07-03 Tan Alfred Keng Tiong Non-linear code-division multiple access technology with improved detection algorithms and error correction coding
US6591394B2 (en) 2000-12-22 2003-07-08 Matrix Semiconductor, Inc. Three-dimensional memory array and method for storing data bits and ECC bits therein
US7012883B2 (en) * 2001-11-21 2006-03-14 Qualcomm Incorporated Rate selection for an OFDM system
US6683817B2 (en) 2002-02-21 2004-01-27 Qualcomm, Incorporated Direct memory swapping between NAND flash and SRAM with error correction coding
JP3969240B2 (ja) 2002-08-02 2007-09-05 ソニー株式会社 半導体記憶装置
US7260764B2 (en) * 2002-11-26 2007-08-21 Qualcomm Incorporated Multi-channel transmission and reception with block coding in a communication system
US7293217B2 (en) 2002-12-16 2007-11-06 Interdigital Technology Corporation Detection, avoidance and/or correction of problematic puncturing patterns in parity bit streams used when implementing turbo codes
US6839870B2 (en) 2003-03-21 2005-01-04 Terayon Communications Systems, Inc. Error-correcting code interleaver
US7467264B2 (en) 2003-06-27 2008-12-16 Hewlett-Packard Development Company, L.P. Methods and apparatuses for determining the state of a memory element
JP3984209B2 (ja) 2003-07-31 2007-10-03 株式会社東芝 半導体記憶装置
US7389465B2 (en) 2004-01-30 2008-06-17 Micron Technology, Inc. Error detection and correction scheme for a memory device
EP1800407A1 (en) * 2004-09-08 2007-06-27 Nokia Corporation System and method for adaptive low-density parity-check (ldpc) coding
US7061804B2 (en) 2004-11-18 2006-06-13 Qualcomm Incorporated Robust and high-speed memory access with adaptive interface timing
US7581159B2 (en) * 2004-11-23 2009-08-25 Texas Instruments Incorporated Simplified decoding using structured and punctured LDPC codes
US7987404B2 (en) 2004-12-28 2011-07-26 International Business Machines Corporation Information recording device, data-flow controller and data flow controlling method
US7359279B2 (en) 2005-03-31 2008-04-15 Sandisk 3D Llc Integrated circuit memory array configuration including decoding compatibility with partial implementation of multiple memory layers
US20070011513A1 (en) * 2005-06-13 2007-01-11 Intel Corporation Selective activation of error mitigation based on bit level error count
US7644338B2 (en) 2005-09-13 2010-01-05 Samsung Electronics Co., Ltd. Method of detecting and correcting a prescribed set of error events based on error detecting code
US7469368B2 (en) 2005-11-29 2008-12-23 Broadcom Corporation Method and system for a non-volatile memory with multiple bits error correction and detection for improving production yield
US7844879B2 (en) * 2006-01-20 2010-11-30 Marvell World Trade Ltd. Method and system for error correction in flash memory
US8055979B2 (en) 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
US7388781B2 (en) 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US7840875B2 (en) 2006-05-15 2010-11-23 Sandisk Corporation Convolutional coding methods for nonvolatile memory
US20070300130A1 (en) * 2006-05-17 2007-12-27 Sandisk Corporation Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices
US7355892B2 (en) * 2006-06-30 2008-04-08 Sandisk Corporation Partial page fail bit detection in flash memory devices
US7627803B2 (en) * 2006-07-05 2009-12-01 Harris Corporation System and method for variable forward error correction (FEC) protection
US8046660B2 (en) 2006-08-07 2011-10-25 Marvell World Trade Ltd. System and method for correcting errors in non-volatile memory using product codes
US7904780B2 (en) 2006-11-03 2011-03-08 Sandisk Corporation Methods of modulating error correction coding
US8024644B2 (en) * 2006-11-14 2011-09-20 Via Telecom Co., Ltd. Communication signal decoding
KR100766042B1 (ko) 2006-12-06 2007-10-12 삼성전자주식회사 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치
KR100822030B1 (ko) 2006-12-26 2008-04-15 삼성전자주식회사 고 부호화율 부호를 이용한 멀티 레벨 셀 메모리 장치
KR100842680B1 (ko) 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US8122323B2 (en) * 2007-03-08 2012-02-21 Intel Corporation Method, apparatus, and system for dynamic ECC code rate adjustment
WO2008142683A2 (en) * 2007-05-21 2008-11-27 Ramot At Tel Aviv University Ltd. Memory-efficient ldpc decoding
US8051358B2 (en) 2007-07-06 2011-11-01 Micron Technology, Inc. Error recovery storage along a nand-flash string
US8065583B2 (en) 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
TWI362855B (en) * 2007-07-10 2012-04-21 Ind Tech Res Inst Multiplexing method and apparatus thereof for data switching
JP5354979B2 (ja) * 2007-07-12 2013-11-27 パナソニック株式会社 低密度パリティ検査畳み込み符号(ldpc−cc)符号化器及びldpc−cc復号器
US8650352B2 (en) * 2007-09-20 2014-02-11 Densbits Technologies Ltd. Systems and methods for determining logical values of coupled flash memory cells
US7860200B2 (en) * 2007-10-12 2010-12-28 Harris Corporation Communications system using adaptive filter that is selected based on output power

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6628723B1 (en) * 1999-10-15 2003-09-30 Cisco Technology Coding rate reduction for turbo codes
CN1726647A (zh) * 2002-12-16 2006-01-25 美商内数位科技公司 实施涡轮码时所用同位位流中问题穿刺型态的检测、避免及/或改正

Also Published As

Publication number Publication date
US20130080864A1 (en) 2013-03-28
EP2229680B1 (en) 2013-02-13
US9442796B2 (en) 2016-09-13
JP2011504271A (ja) 2011-02-03
WO2009067321A1 (en) 2009-05-28
TW200931442A (en) 2009-07-16
US20090132889A1 (en) 2009-05-21
EP2229680A4 (en) 2011-12-21
EP2229680A1 (en) 2010-09-22
US8327245B2 (en) 2012-12-04
CN101868831A (zh) 2010-10-20
TWI479506B (zh) 2015-04-01
KR101588605B1 (ko) 2016-01-26
KR20100106402A (ko) 2010-10-01
JP5687062B2 (ja) 2015-03-18
US20150234704A1 (en) 2015-08-20
US8966352B2 (en) 2015-02-24

Similar Documents

Publication Publication Date Title
CN101868831B (zh) 支持速率兼容经穿孔码的存储器控制器
US9063875B2 (en) Error recovery storage along a memory string
US8239725B2 (en) Data storage with an outer block code and a stream-based inner code
KR101576102B1 (ko) 플래시 메모리의 블록으로부터 데이터를 판독하는 방법 및 관련 메모리 장치
US9152546B2 (en) Fault-tolerant non-volatile integrated circuit memory
US8122303B2 (en) Data structure for flash memory and data reading/writing method thereof
CN104681095B (zh) 储存装置及其操作方法
US20190294497A1 (en) Method of implementing error correction code used by memory storage apparatus and memory storage apparatus using the same
JP2007179480A (ja) メモリコントローラおよびフラッシュメモリシステム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant