CN104657231B - 在存储器设备处的控制数据的错误校正的系统和方法 - Google Patents
在存储器设备处的控制数据的错误校正的系统和方法 Download PDFInfo
- Publication number
- CN104657231B CN104657231B CN201510102335.9A CN201510102335A CN104657231B CN 104657231 B CN104657231 B CN 104657231B CN 201510102335 A CN201510102335 A CN 201510102335A CN 104657231 B CN104657231 B CN 104657231B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- page
- ecc
- code word
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/35—Unequal 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/63—Joint error correction and other techniques
- H03M13/6312—Error control coding in combination with data compression
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/403—Error protection encoding, e.g. using parity or ECC codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
耦接到存储器阵列的控制器包括错误校正编码(ECC)引擎和耦接到该ECC引擎的ECC增强压缩模块。该ECC增强压缩模块被配置为接收并压缩要提供给ECC引擎以被编码的控制数据。在ECC引擎处产生的压缩的被编码控制数据作为码字被存储在存储器阵列处。
Description
本发明是以下发明专利申请的分案申请:申请号:201080058296.2,申请日:2010年12月1日,发明名称:在存储器设备处的控制数据的错误校正的系统和方法。
技术领域
本公开一般涉及在存储器设备处的控制数据的错误校正。
背景技术
在向存储器中写入数据的过程期间,通常用额外的位来编码数据以形成码字。在存在噪声时,表示该码字的位中的一些位可能改变,用错误来破坏原始码字。当从存储器读取该码字时,可以使用解码器使用错误校正编码(ECC)来标识和校正这些错误。例如,在其中位错误趋向于不相关的应用中一般使用Bose-Chaudhuri-Hocquenghem(BCH)、低密度奇偶校验(LDPC)、里德所罗门(Reed Solomon)和Turbo编码方案。
ECC算法的硬件和软件实现方式通常被定义为能够对给定长度的数据校正给定量的错误。如果存储介质返回具有比ECC引擎被设计为能够校正的更多的错误的数据,则解码的数据将不匹配原始存储的数据。因此,改进存储器设备的ECC引擎的错误校正能力可以改进存储器设备的可靠性。
发明内容
公开了错误校正编码(ECC)增强压缩模块,其可以改进存储器设备的ECC引擎的错误校正能力。该ECC增强压缩模块通过在编码控制数据之前压缩该控制数据来增强该控制数据的错误校正,由此减少需要由ECC引擎编码和解码的控制数据位的数量。减少表示控制数据的位的数量使得ECC引擎能够将其校正能力集中在更少的位上,因此可比控制数据未压缩的情况校正更多错误。因此,增强了ECC引擎的有效错误校正能力。
根据本发明的一个方面,提供一种方法,包括:在包括错误校正编码(ECC)引擎和多个存储元件的存储器器件中进行,其中所述多个存储元件包括一组存储元件,其中所述存储器器件被配置为根据页格式向所述存储元件存储信息,所述页格式包括数据部分和奇偶校验部分:启动操作以压缩要被存储在所述组存储元件中的数据;选择所述ECC引擎的生成第一数量的奇偶校验位的第一模式和ECC引擎的生成第二数量的奇偶校验位的第二模式之一,所选模式基于所压缩的数据的压缩的程度;编码所压缩的数据以生成对应于所压缩的数据的奇偶校验位;向所压缩的数据添加附加数据以增加格式化的字的存储尺寸;以及根据所述页格式存储包括所压缩的数据和奇偶校验位的格式化的字到所述组存储元件,其中,所压缩的数据被存储在所述数据部分中,且至少一些奇偶校验位被存储在所述奇偶校验部分中。
根据本发明的另一个方面,提供一种方法,包括:在包括错误校正编码(ECC)引擎和多个存储元件的存储器器件中进行,其中所述存储器器件被配置为根据页格式在所述存储元件处存储信息,所述页格式包括数据部分和奇偶校验部分:根据所述页格式从所述存储元件读取包括所压缩的数据和奇偶校验位的一页数据,其中该页数据包括被添加到所压缩的数据以增加格式化的字的存储尺寸的附加数据,其中,所压缩的数据被包括在所述页的数据部分中,且至少一些奇偶校验位被包括在所述页的奇偶校验部分中;使用所述奇偶校验位在所述ECC引擎处解码所压缩的数据;以及解压缩所压缩的数据以生成解压缩的数据,其中,所述ECC引擎可配置为当所有奇偶校验位被包括在所述页的奇偶校验部分中时根据第一模式操作或当所述奇偶校验位的第一部分被包括在所述页的奇偶校验部分中且所述奇偶校验位的第二部分被包括在所述页的数据部分中时根据第二模式操作。
根据本发明的另一个方面,提供一种数据存储器件,包括:存储器,包括多个存储元件;以及控制器,耦合于所述存储器,且被配置为根据页格式向所述存储元件存储信息,所述页格式包括数据部分和奇偶校验部分,其中,所述控制器包括:错误校正编码(ECC)引擎;以及压缩模块,耦合于所述ECC引擎,且被配置为接收和压缩被提供给ECC引擎用于编码的数据,其中,所述ECC引擎可配置为基于数据的压缩的程度、在第一模式中操作以生成第一数量的奇偶校验位、或在第二模式中操作以生成第二数量的奇偶校验位,以及其中,所述控制器被配置为根据所述页格式向所述存储元件存储包括所压缩的数据和奇偶校验位的数据,其中,所压缩的数据被存储在所述页的数据部分中,且至少一些奇偶校验位被存储在所述页的奇偶校验部分中,且其中,所述控制器被配置为向所压缩的数据添加附加数据来增加格式化的字的存储尺寸。
根据本发明的另一个方面,提供一种数据存储器件,包括:存储器,包括多个存储元件;以及控制器,耦合于所述存储器,且被配置为根据页格式从所述存储元件读取信息,所述页格式包括数据部分和奇偶校验部分,其中,所述控制器包括:错误校正编码(ECC)引擎;以及解压缩模块,耦合于所述ECC引擎,且被配置为接收和解压缩由ECC引擎提供的解码的数据,其中,所述ECC引擎可操作以根据所述页格式解码从所述存储器读取的所压缩的数据和奇偶校验位,其中,所压缩的数据被包括在所述页的数据部分中,且至少一些奇偶校验位被包括在所述页的奇偶校验部分中,且其中,所述控制器被配置为向所压缩的数据添加附加数据来增加格式化的字的存储尺寸,以及其中,所述ECC引擎被配置为当所有奇偶校验位被包括在所述页的奇偶校验部分中时根据第一模式操作或当所述奇偶校验位的第一部分被包括在所述页的奇偶校验部分中且所述奇偶校验位的第二部分被包括在所述页的数据部分中时根据第二模式操作。
附图说明
图1是包括具有错误校正编码(ECC)增强压缩模块的存储器设备的系统的具体例示实施例的框图;
图2是包括具有ECC增强压缩模块的存储器设备的系统的第二例示实施例的框图;
图3是控制数据以及包括压缩和编码的控制数据的格式化的数据字的例示实施例的框图;
图4是包括压缩和编码的控制数据的格式化的数据字的第二例示实施例的框图;
图5是增强在存储器设备处的控制数据的错误校正的方法的例示实施例的流程图;
图6是增强在存储器设备处的控制数据的错误校正的方法的第二例示实施例的流程图。
具体实施方式
参考图1,绘出了包括ECC增强压缩模块110的系统的具体实施例并且一般将其指定为100。系统100包括耦接到存储器设备104的主机设备102。存储器设备104包括耦接到存储器阵列108的控制器106。控制器106包括耦接到ECC引擎112的ECC增强压缩模块110。ECC增强压缩模块110被配置为压缩控制数据144并将压缩的控制数据140提供给ECC引擎112用于编码为要存储在存储器阵列108处的码字160。通过在编码之前压缩控制数据144,与控制数据144的非压缩编码相比,增强了由于在ECC引擎112处的编码引起的压缩的控制数据140的有效错误校正率。
ECC增强压缩模块110可以被配置为接收并压缩要被提供给ECC引擎112用于编码的控制数据144。例如,ECC增强压缩模块110可以包括执行压缩软件、诸如执行“zlib”压缩算法或者一个或多个其他算法以进行控制数据144的压缩的处理器。可以通过专用硬件压缩电路来加速该压缩模块110。ECC增强压缩模块110可以被配置为将压缩的控制数据140提供给ECC引擎112。另外。ECC增强压缩模块110可以被配置为从主机设备102接收用户数据145。ECC增强压缩模块110可以被配置为进行用户数据145的压缩并将压缩的用户数据141提供给ECC引擎112以被编码来存储在存储器阵列108处。
ECC引擎112可以包括接收用户数据(例如压缩的控制数据140)并产生表示输入数据的编码的一个或多个码字(例如码字160)的电路。例如,ECC引擎112可以被配置为利用里德-所罗门(Reed-Solomon)编码、BCH码、低密度奇偶校验(LDPC)码、一个或多个错误检测和校正码或其任意组合。尽管ECC引擎112被描述为由专用硬件电路来进行,但是在其他实施例中,ECC引擎112可以包括执行可执行的指令来进行编码或解码功能的至少一部分的一个或多个处理器。
响应于来自控制器106的指令,存储器阵列108可以响应于控制器106而存储并取回数据。例如,存储器阵列108可以响应于控制器106而在存储器阵列108处进行数据写入操作。例如,从ECC引擎112接收的码字160可以被提供给存储器阵列108作为来自控制器106的数据写入操作。码字160可以存储在存储器阵列108处用于稍后由控制器106取回。存储器阵列108可以是诸如闪存的非易失性存储器。
主机设备102可以是在存储器设备104外部的设备。例如,主机设备102可以是诸如移动手持机的便携式电子设备,并且存储器设备104可以是耦接到主机设备102或者安装在主机设备102内的闪存卡。
在操作期间,主机设备102可以将用户数据145提供给存储器设备104用于存储在存储器阵列108处。用户数据145可以在控制器106处被接收并且可以被提供给ECC增强压缩模块110。另外,控制器106还可以产生对存储器设备104的操作有用的控制数据(例如控制数据144)。例如,控制器106可以使用控制数据144来进行逻辑到物理地址映射、计算擦除计数、确定与存储器设备104对应的状态信息或者其任意组合。例如,控制数据144可以包括将逻辑地址映射到存储器阵列108内的物理地址的逻辑块地址表和物理块地址表。控制数据144还可以包括对于存储器阵列108处的数据结构的索引、指针和偏移量、对于存储器设备104的损耗均衡数据、其他控制数据或其任意组合。控制数据144可以对应于或者可以不对应于用户数据145,并且可以与或者可以不与用户数据145在时间上同步(即控制数据144可以在与用户数据145的接收的时间基本不同的时间产生)。控制数据144可以与用户数据145分离。或者,控制数据144可以与用户数据145交织或者附于用户数据145上,以在ECC增强压缩模块110处被压缩。
在ECC增强压缩模块110处压缩的数据(例如控制数据144和用户数据145)可以被提供给ECC引擎112用于编码,并且从ECC引擎112输出的编码的数据(例如码字160)可以被存储在存储器阵列108处。ECC引擎112可以操作以对压缩的控制数据140编码。通过操作ECC引擎112来对由于编码前压缩而具有减小的数据大小的数据进行完全编码操作,可以实现ECC编码的有效错误校正能力。
例如,ECC增强压缩模块110可以根据压缩比(CR)压缩控制数据144。(CR)可以定义为:
ECC引擎112可以根据错误校正比(ECR)检测并校正错误。(ECR)可以定义为
(可校正位数量)可以是ECC引擎112可以校正的具有按字节的大小(控制数据的大小)的数据字中的位的数量。压缩该控制数据144可能影响ECC引擎112的(ECR)。例如,向ECC引擎112应用压缩的控制数据140可以得到被定义为如下的(ECR’):
例如,ECC引擎112可以被设计为校正控制数据144的每512字节最大12位(即可校正位数量)。相应的ECR(可校正位数量=12)近似为2.9E-3。如果50%的压缩比(CR)应用于控制数据144,则压缩的控制数据140的大小将是256字节,并且相应的ECR’将近似是5.9E-3。因此,改进(即降低)ECC增强压缩模块110施加的压缩比可以增加ECC引擎112的错误校正能力。
压缩控制数据144可以使得ECC引擎112能够使用较不强力的(例如具有较低的(可校正位数量)的值的)算法来实现相同错误校正率。例如,如上所述,向以50%压缩的控制数据应用6位校正的ECC引擎的ECR’可以等于向未压缩的控制数据应用12位校正的ECC引擎的ECR,如表述为:
ECR’(可校正位数量=6;CR=0.5)=ECR(可校正位数量=12)。
从主机设备102接收的用户数据145可以在存储器设备104处被接收之前被压缩,并且因此,ECC增强压缩模块110可能不能明显改善用户数据145的压缩。但是,控制数据144可能在ECC增强压缩模块110处被接收之前未被压缩。压缩被提供到ECC引擎112的控制数据144(即产生压缩的控制数据140)可以表示从原始控制数据144在大小上的明显减小,并且可以提供在ECC引擎112的有效错误校正比方面的相应改进。
可以从存储器阵列108取回码字160并可以通过ECC引擎112对其解码。ECC引擎112可以检测并校正可能在存储器阵列108处的存储或者向控制器106的传输期间发生的多个错误。压缩的控制数据140的原始编码可以对减小的数据大小使用ECC引擎112的全ECC能力,因此可以改进控制数据144的错误校正。得到的解码的被压缩控制数据可以被提供给ECC增强压缩模块110。ECC增强压缩模块110可以对从ECC引擎112接收的解码的被压缩控制数据146进行解压缩以用于在控制器106处作为控制数据144使用。另外,ECC引擎112可以解码被存储在存储器阵列108处的压缩的用户数据并将解码的被压缩用户数据148提供给ECC增强压缩模块110。ECC增强压缩模块110可以解压缩该解码的被压缩用户数据148以产生要发送到主机设备102的用户数据145。
压缩控制数据144可以通过缩窄校正作用的区域而使得ECC引擎112的错误校正能力能够增加。在ECC引擎112处的压缩的控制数据140的有效错误校正率可以超过控制数据144的有效错误校正率。因此,由于存储器阵列108中的误差出现的频率可能随着时间而增加,因此通过ECC引擎112的有效错误校正率的增加可以延长存储器设备104的寿命预期。改进ECC引擎112的有效错误校正率可以改进存储器设备104的可靠性以及因此的存储器设备104的寿命预期。
参考图2,绘出了系统的具体实施例并且一般将其指定为200。系统200包括外部设备202,诸如主机设备。外部设备202耦接到存储器设备204。存储器设备204包括耦接到ECC引擎245的ECC增强压缩模块224,以将压缩的控制数据240作为编码的数据(例如码字252)存储在存储器阵列208处。例如,存储器设备204可以是图1的存储器设备104。
存储器设备204包括耦接到存储器阵列208的控制器206。控制器206包括耦接到ECC增强压缩模块224的控制管理模块222。主机随机存取存储器(HRAM)220耦接到ECC增强压缩模块224并被配置为与外部设备202通信数据。控制器206还包括被耦接以在ECC增强压缩模块224和闪存接口模块(FIM)228之间缓冲数据的缓冲随机存取存储器(BRAM)226。闪存接口模块228被耦接以与存储器阵列208通信数据。
控制管理模块222可以被配置为向存储器设备204提供控制功能性。控制管理模块222可以被配置为产生控制数据244和可能与控制数据244有关的其他数据,诸如控制数据244的大小248以及压缩的控制数据的大小250。控制管理模块222耦接到ECC增强压缩模块224并且可以被配置为将控制数据244提供给ECC增强压缩模块224以用于压缩、编码并存储在存储器阵列208处。
ECC增强压缩模块224可以被配置为从HRAM 220取回数据、诸如从外部设备202提供的用户数据,并且还从控制管理模块222取回控制数据244。ECC增强压缩模块224包括压缩模块230和解压缩模块232。压缩模块230可以被配置为对接收的数据、诸如用户数据或控制数据244进行压缩操作。例如,压缩模块230可以被配置为对控制数据244进行压缩操作以产生压缩的控制数据240。
解压缩模块232可以被配置为接收存储在BRAM 226处的数据,诸如已经从存储器阵列208读取的解码的数据,并对接收的数据进行解压缩操作。例如,解压缩模块232可以被配置为从BRAM 226接收解码的被压缩控制数据,并进行解压缩操作以产生解压缩的控制数据242。
闪存接口模块228可以被配置为从BRAM 226接收要存储在存储器阵列208处的数据并进行数据处理以用于存储并通信到存储器阵列208。例如,闪存接口模块228包括ECC引擎254。ECC引擎254可以包括错误检测编码(EDC)电路234和ECC电路236。ECC引擎254可以被配置为接收要存储在存储器阵列208处的数据并进行编码操作、诸如里德-所罗门(Reed-Solomon)、BCH或LDPC编码操作,以使得能够检测和校正在向和从存储器阵列208传输期间以及在存储器阵列208处存储期间发生的错误。
ECC电路236可以被配置为接收可能包括一个或多个错误的从存储器阵列208读取的数据,并且进行解码操作以检测和校正在接收的数据中的错误。在数据写入操作期间,EDC电路234可以产生被存储在存储器阵列208处的码字252。例如,EDC电路234可以对压缩的控制数据240编码以产生码字252。在EDC电路234处的编码可以包括产生与压缩的控制数据240对应的ECC位、诸如奇偶校验位。这些ECC位可以被包括在码字252中。
可以从存储器阵列208读取码字252并将其提供给ECC电路236用于解码。ECC电路236可以被配置为检测一个或多个错误以恢复原始码字252并解码该码字252以产生解码的数据。由ECC引擎254恢复的解码的数据可以被提供给BRAM 226。
存储器阵列208可以包括存储元件的一个或多个结构布置。例如,存储器阵列208可以用存储器单元的列布置,并且可以包括诸如在NOR闪存布置中的位线和源极线。作为另一例子,存储器阵列208可以用诸如在NAND闪存布置中的串联的存储器单元的列来布置。存储器阵列208可以是多个堆积的(multi-banked)存储器,并且可以包括NAND闪存、NOR闪存、一个或多个其他存储器类型及其任意组合。
存储器阵列208可以按多级单元(MLC)模式或者单级单元(SLC)模式而操作。在SLC模式下,每个存储器单元可以被编程到“0”或者“1”状态。可以通过将单个控制电压施加到被寻址的存储器单元的控制栅极以便如果被编程到“1”状态则晶体管导通但是在“0”状态保持截止来实现对这样的二进制单元的读取。在MLC模式下,通过更精细地控制该单元的编程,对于每个存储器单元可以有多于两个数据状态。在MLC模式下为存储器阵列208的每个存储器单元定义四个或更多可能的状态。例如,存储器单元的状态可以对应于二进制值00、01、10和11。实际上,两个中间状态可以对应于在完全被擦除和完全被编程状态之间的单元的部分编程的两个级别。在每个存储器单元处存储两位或更多位数据的能力可以双倍、三倍或进一步增强存储器阵列208的数据容量。
在操作期间,控制管理模块222可以产生要被压缩、编码并存储在存储器阵列208处的控制数据244。控制管理模块222可以将控制数据244同给ECC增强压缩模块224。控制数据244可以被压缩模块240压缩以产生压缩的控制数据240。诸如在ECC增强压缩模块224处或者控制管理模块222处,压缩的控制数据240的大小250可以与(未压缩的)控制数据244的大小248相比较。响应于压缩的控制数据240的大小250小于控制数据244的大小248,压缩的控制数据240可以被提供给BRAM 226。但是,当控制数据244的大小248不超过压缩的控制数据240的大小250时,压缩模块230进行的压缩操作可能已经不起作用,并且可能已经增加或不改变控制数据244的大小248。在此情况下,压缩模块230将未压缩的控制数据244提供给BRAM 226。存储在BRAM 226处的数据可以被提供给ECC引擎254的EDC电路234。EDC电路234可以诸如通过在系统编码中产生一组奇偶校验位或者通过在非系统编码中产生码字来对压缩的控制数据240编码。在EDC电路234处产生的压缩的被编码控制数据可以被提供给闪存接口模块228作为数据字或页,并且可以被提供给存储器阵列208用于存储为码字252。
可以从存储器阵列208、诸如经由可以取回格式化的数据字的数据读取操作来取回码字252,如将关于图3和图4描述的。取回的码字252可以被提供给错误校正编码(ECC)电路236。ECC电路236可以解码并校正码字252中的错误以产生解码的被压缩控制数据用于存储在BRAM 226处。
来自BRAM 226的解码的被压缩控制数据可以被提供给解压缩模块232,该解压缩模块232可以对解码的被压缩控制数据操作以产生解压缩的控制数据242。解压缩的控制数据242可以被提供给控制管理模块222用于存储器设备204的控制管理。
另外,可以从外部设备202取回用户数据并将其缓存在HRAM 220处。缓存在HRAM220处的用户数据可以被提供给ECC增强压缩模块224用于以与对控制数据244描述的方式基本类似的方式、在存储在存储器阵列208处之前压缩和编码。
控制器206可以被配置为基于ECC增强压缩模块224的压缩比(CR)为ECC引擎254选择操作模式。ECC引擎254的模式的选择可以被延迟直到在已知压缩比之后。例如,ECC引擎254可以具有两个操作模式:对于22字节长的奇偶校验的12位校正以及对于28字节长的奇偶校验的16位校正。
作为例示性的例子,存储器阵列208中的2112字节页可以包括以下大小的以下部分:
结构 | 字节长度 |
头部 | 16 |
头部奇偶校验 | 4 |
数据0 | 1024 |
对于数据0的奇偶校验 | 22 |
数据1 | 1024 |
对于数据1的奇偶校验 | 22 |
总共 | 2112 |
数据部分的大小可能影响控制器206选择ECC引擎的具体模式的能力。例如,在存储器阵列208的2112字节页中,如果数据0和数据1部分占据2048字节的空间,且组合的头部和头部奇偶校验为20字节大小,则2112字节页大小可能仅允许对每个数据部分的22字节的奇偶校验。因此,可能阻止ECC引擎254使用16位模式提供的校正能力。
压缩该数据部分(例如数据0和数据1)使得ECC引擎254能够使用更高的16位校正模式。例如,将数据0和数据1部分每个压缩6字节使得能够对于数据0和数据2的奇偶校验每个增加6字节,使得能够实现对于每个数据部分的28字节的奇偶校验。增加奇偶校验还可以增加ECC引擎254的错误校正能力。具有数据部分的6字节压缩和28字节奇偶校验的2112字节页的例子是:
控制器206可以被配置为控制ECC增强压缩模块224的(CR)以实现ECC引擎254中的预定的块错误率(BLER)。例如,对于BCH码,BLER可以定义为:
BLER=Sum((p)i*C(n,i)*(1-p)n-i,i=k,n)
在一个具体实施例中,(p)表示最大输入位错误率,(k)是1加上ECC引擎254在每(n)位数据能够校正的位的数量。C(n,k)函数是来自具有大小(n)的n-元素的集合的K-组合(每个大小(k))的数量的计算。例如,C(n,k)函数可以定义为:
将压缩比(CR)引入BLER计算中得到:
BLER=Sum((p)i*C(n,i)*(1-p)n-i,i=k,n)
例如,ECC引擎254可以被配置为以(BLER)≤1011来每2048字节数据校正122位。因此,(k)=122+1=123并且(n)=2048字节*8位/字节=16,384。对(p)求解得到:
压缩比(CR) | (p)最大输入BER[%] |
1 | 0.34 |
0.9 | 0.37 |
0.8 | 0.41 |
0.7 | 0.46 |
0.6 | 0.53 |
0.5 | 0.62 |
0.4 | 0.74 |
0.3 | 0.92 |
0.2 | 1.2 |
控制器206可以被配置为控制ECC增强压缩模块224的(CR)。例如,如果来自ECC引擎254的期望的最大输入BER(p)是0.41,则控制器206可以指示ECC增强压缩模块224使用0.8的(CR)。例如,假设0.001的恒定最大位错误率概率以及可以在1K字节块中校正高达16个错误的ECC引擎,则(n)=8*1024字节=8,192位;(k)=17;(p)=0.001。
对不可校正的错误的概率求解BLER方程得到:
压缩比(CR) | 不可校正错误概率 |
0.1 | 3.58E-17 |
0.2 | 2.25E-12 |
0.3 | 1.00E-09 |
0.4 | 5.96E-08 |
0.5 | 1.18E-06 |
0.6 | 1.16E-05 |
0.7 | 7.05E-05 |
0.8 | 3.01E-04 |
0.9 | 9.86E-04 |
1 | 2.62E-03 |
因此,随着压缩比(CR)改善(即降低),ECC引擎254不能校正控制数据中的所有错误的概率降低。例如,与使用1的压缩比相比,在ECC增强压缩模块224中的50%压缩可以显著降低ECC引擎254返回不可校正的错误的概率。通过改善(CR),ECC引擎254的有效错误校正能力增加,因此改进了存储器设备204的可靠性。
参考图3,绘出了控制数据320和格式化的数据字302并且一般将其指定为300。控制数据320可以包括逻辑和物理地址表322、损耗均衡数据324以及数据结构信息,诸如索引、指针和偏移量326。
控制数据320可以被压缩并编码330为格式化的数据字302。格式化的数据字302可以包括头部数据306、头部奇偶校验数据308、压缩的控制数据310、附加的数据312以及奇偶校验数据314,诸如例如ECC位。格式化的数据字302的有效负荷可以包括压缩的控制数据310和附加的数据312。
附加的数据312被添加到压缩的控制数据310以将格式化的数据字302的存储大小增加到预定大小。为了例示,格式化的数据字302可以是2112字节页。附加的数据312可以在压缩的控制数据的解码之后被添加。可以选择或产生附加的数据312以降低依赖于数据的程序故障。例如,附加的数据312可以包括基于奇偶校验数据314的样式,诸如奇偶校验数据314的重复样式。
附加的数据312可以在解码阶段期间被丢弃。例如,可以基于指示没有附加的数据312的压缩的控制数据310的大小的压缩的控制数据310的大小来识别附加的数据312。例如,图2的ECC引擎254或者ECC增强压缩模块224可以在附加的数据312的添加之前确定压缩的控制数据310的大小250,并且可以将压缩的控制数据的大小250存储在控制管理模块222处。或者,压缩的控制数据的大小250可以被存储在头部数据306处、在图2的控制器206处、诸如在日志文件(未示出)中或者在另一位置处。ECC引擎254可以取回压缩的控制数据的大小250以在解码格式化的数据字302之前丢弃附加的数据312。
参考图4,可变大小的格式化的数据字402可以包括头部数据406、头部奇偶校验408、压缩的控制数据410以及奇偶校验数据414。压缩的控制数据410可以包括可变大小的格式化的数据字402的有效负荷404。有效负荷404不包括附加的数据、诸如用于将可变大小的格式化的数据字402扩展到预定大小的图3的附加的数据312。
存储压缩的控制数据410而不添加附加的数据可以得到被存储在诸如图1-2的存储器阵列108或208的存储器阵列中的可变大小的格式化的数据字402。可变大小的格式化的数据字可以节省存储器阵列中的空间,并且可以增加存储器阵列中的数据存储的效率。
图5是压缩并编码控制数据的方法500的一个实施例的流程图。方法500在存储器设备的控制器处、诸如在图1的控制器106或者图2的控制器206处进行,作为例示性的非限制的例子。方法500包括在502压缩控制数据。例如,图2的错误校正编码(ECC)增强压缩模块224压缩控制数据244。方法500还可以包括从耦接到存储器设备的外部设备接收用户数据。该外部设备可以是主机设备,并且可以在存储器设备处的主机随机存取存储器(HRAM)处接收该用户数据。例如,图2的HRAM 220可以从外部设备(例如主机设备)202接收用户数据。控制数据可以在控制器处产生。控制数据可以包括从由用于存储器设备处的存储器阵列的逻辑和物理块地址表;对于存储器阵列处的数据结构的索引、指针和偏移量;以及对于存储器设备的损耗均衡数据构成的组中选择的一种类型的数据。例如,图2的控制器206可以产生控制数据244。
方法500还包括在504对压缩的控制数据编码以产生表示压缩的控制数据的码字。该码字可由存储器设备处的错误校正编码(ECC)引擎解码。例如,图2的ECC引擎254解码压缩的控制数据240以产生表示压缩的控制数据240的码字252。压缩的控制数据可以被存储在缓冲随机存取存储器(BRAM)处。例如,图2的BRAM 226可以存储压缩的控制数据240。在ECC引擎处的压缩的控制数据的有效错误校正率可以超过控制数据的有效错误校正率。例如,图2的ECC引擎254可以具有超过控制数据244的有效错误校正率的压缩的控制数据240的有效错误校正率。编码压缩的控制数据可以包括产生与压缩的控制数据对应的ECC位。该编码可以基于里德-所罗门(Reed-Solomon)码、Bose Ray-Chaudhuri Hocquenghem(BCH)码或者低密度奇偶校验(LDPC)码。
方法500还包括在506将码字存储在耦接到控制器的存储器阵列处。例如,图2的控制器206将码字252存储在耦接到控制器206的存储器阵列208处。存储码字可以包括存储包括头部数据部分、有效负荷部分和奇偶校验部分的格式化的数据字。格式化的数据字还可以包括头部奇偶校验部分。例如,图3的格式化的数据字302包括头部数据306、有效负荷304、奇偶校验数据314以及头部奇偶校验数据308。
方法500可以包括将附加的数据添加到压缩的控制数据以将格式化的数据字的存储大小增加到预定大小。可以在压缩的控制数据被解码之后将该附加的数据添加到压缩的控制数据。例如,图2的控制器206可以将图3的附加的数据312添加到格式化的数据字302的压缩的控制数据310。或者,压缩的控制数据可以在没有附加的数据的情况下被解码以产生可变大小的格式化的数据字,诸如图4的格式化的数据字402。
方法500可以包括存储压缩的控制数据的大小。例如,该大小可以被存储在头部数据部分处,诸如图3的格式化的数据字302的头部数据306处。作为另一例子,压缩的控制数据的大小可以被存储在存储器阵列处。例如,图2的控制器206可以将压缩的控制数据240的大小250存储在存储器阵列208处。压缩的控制数据的大小可以被存储在控制器处,诸如压缩的控制数据240的大小250被存储在图2的控制器206处。方法500还可以包括将控制数据的第一大小与压缩的控制数据的第二大小相比较并且响应于第二大小超过或等于第一大小,将控制数据提供给ECC引擎以被编码。例如,图2的控制器206可以将控制数据244的大小248与压缩的控制数据240的大小250相比较,并且响应于压缩的控制数据的大小250超过或等于控制数据的大小248而将控制数据244提供给ECC引擎254以被编码。作为另一例子,响应于控制数据的大小248超过压缩的控制数据的大小250,压缩的控制数据240可以被提供给ECC引擎254。
图6是解码和解压缩控制数据的方法600的一个实施例的流程图。方法600可以在存储器设备的控制器处、诸如在图1的控制器106或者图2的控制器206处进行,作为例示的非限制性例子。方法600包括在602从存储器阵列读取码字。例如,图2的控制器206从存储器阵列208读取码字252。方法600还包括在604在错误校正编码(ECC)引擎处解码该码字以产生压缩的控制数据。例如,图2的ECC引擎254解码该码字252以产生压缩的控制数据240。方法600还包括在606解压缩该压缩的控制数据。例如,图2的ECC增强压缩模块224解压缩该压缩的控制数据以产生解压缩的控制数据242。
压缩的控制数据可以包括附加的数据。基于压缩的控制数据的大小,可以从该压缩的控制数据中丢弃该附加的数据。例如,图2的控制器206可以基于压缩的控制数据240的大小250从图3的压缩的控制数据310中丢弃附加的数据312。压缩的控制数据的大小可以指示没有附加的数据的压缩的控制数据的大小。
方法600还可以包括从存储器阵列取回压缩的控制数据的大小。例如,图2的控制器206可以从存储器阵列208取回压缩的控制数据240的大小250。或者,或另外,可以从控制器返回压缩的控制数据的大小。例如,图2的控制器206可以从控制器206取回压缩的控制数据230的大小250。
随着附加的数据从压缩的控制数据中移除,控制器可以对压缩的控制数据解压缩以用于在存储器设备的操作中使用。对压缩的控制数据进行错误校正解码可以通过缩窄校正作用的区域而使得ECC引擎的错误校正能力能够增加。例如,在ECC引擎处的压缩的控制数据的有效错误校正率可以超过控制数据的有效错误校正率。
尽管在此描绘的各个组件被例示为块组件并且按一般方面描述,但是这样的组件可以包括一个或多个微处理器、状态机或者被配置为使得图1的存储器设备104或者图2的存储器设备204能够进行属于这样的组件的具体功能的其他电路或者其任意组合。例如,图1的ECC增强压缩模块110以及图2的ECC增强压缩模块224可以表示物理组件,诸如硬件控制器、状态机、逻辑电路或者使得图1的存储器设备104能够压缩控制数据以被编码的来存储的其他结构。
作为另一例子,图1的控制器106可以使用专用电路来实现,该专用电路被配置为在ECC增强压缩模块110处进行控制数据的压缩和解压缩、在ECC引擎112处的压缩的控制数据的编码和解码以及在存储器阵列108处的码字的取回和存储。或者,或另外,控制器106或者控制器106的部分可以使用被编程为进行压缩、解压缩、编码、解码或其任意组合的微处理器或者微控制器来实现。存储器设备104可以包括由处理器执行的可执行指令,并且这些指令可以被存储在存储器阵列108处,诸如闪存阵列处。或者,或另外,可以被包括在存储器设备104中的由处理器执行的可执行指令可以被存储在不是存储器阵列108的部分的单独的存储器位置,诸如单独的随机存取存储器(RAM)(未示出)或者只读存储器(ROM)(未示出)处。
图1的存储器设备104可以是被配置为选择性地耦接到诸如主机设备的一个或多个外部设备的便携式设备。但是,在其他实施例中,存储器设备104可以附连或者嵌入到一个或多个主机设备内,诸如在便携式通信设备的外壳内。例如,存储器设备104可以在包装的装置内,诸如在无线电话、个人数字助理(PDA)、游戏设备或控制台、便携式导航设备或者使用内部非易失性存储器的其他设备内。存储器设备104可以包括非易失性存储器,诸如闪存(例如NAND、NOR、多级单元(MLC)、划分位线NOR(DINOR)、AND、高容量耦合比(HiCR)、不对称不接触晶体管(ACT)或其他闪存)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、一次可编程存储器(OTP)、或者任意类型的非易失性存储器。
在此所述的实施例的例示意图提供对各个实施例的一般理解。可以利用此公开并从此公开得到其他实施例,以便可以不脱离本公开的范围而做出结构和逻辑上的替换以及改变。本公开意图覆盖各个实施例的任意以及所有随后的适应或变型。
以上公开的主题将被认为是例示性的而不是限制性的,并且所附权利要求意图覆盖所有这样的修改、改进和其他实施例,它们落在本公开的范围内。因此,达法律允许的最大程度,本发明的范围将由以下权利要求及其等效物的最宽允许解释来确定,并且不应受以上详细描述的限制或限定。
Claims (21)
1.一种错误校正方法,所述方法包括:
在包括错误校正编码(ECC)引擎和多个存储元件的存储器器件中进行如下步骤,其中所述多个存储元件包括一组存储元件,所述存储器器件被配置为根据页格式向所述存储元件存储信息,所述页格式包括数据部分和奇偶校验部分:
压缩要被存储在所述组存储元件中的数据,所述数据包括控制数据;
使用所述ECC引擎编码所压缩的数据以生成码字,所述码字具有数据部分和奇偶校验部分;
确定所述码字是否具有等于格式化的字的存储尺寸的尺寸;
当确定所述码字的尺寸小于格式化的字的存储尺寸时,向所述码字添加附加数据以将所述码字的尺寸增加到格式化的字的存储尺寸;以及
根据所述页格式存储所述码字到该组存储元件中。
2.根据权利要求1所述的方法,其中,所述附加数据被添加到所述码字的数据部分。
3.根据权利要求1所述的方法,其中,使用所述ECC引擎的第一模式或第二模式来选择性地编码所压缩的数据,使用第二模式生成的所述码字具有大于使用第一模式生成的码字的奇偶校验部分的奇偶校验部分。
4.根据权利要求3所述的方法,其中,当选择第二模式时,所述码字的奇偶校验部分的第一部分被存储在所述页格式的奇偶校验部分中,且所述码字的奇偶校验部分的第二部分被存储在所述页格式的数据部分中。
5.根据权利要求4所述的方法,其中,响应于所述页格式的数据部分具有足够的空间以包含所述码字的数据部分和所述奇偶校验部分的第二部分,来选择所述第二模式。
6.根据权利要求1所述的方法,其中,所述存储器器件包括控制器,且其中,所述控制数据在所述控制器处生成。
7.根据权利要求6所述的方法,其中,所述控制数据包括从由用于存储元件的逻辑和物理块地址表、在存储器器件处的数据结构的索引、指针和偏移量、和存储器器件的损耗平衡数据构成的组中选择的一类数据。
8.一种错误校正方法,所述方法包括:
在包括错误校正编码(ECC)引擎和多个存储元件的存储器器件中进行如下步骤,其中所述存储器器件被配置为根据页格式在所述存储元件处存储信息,所述页格式包括数据部分和奇偶校验部分:
根据所述页格式从所述存储元件读取包括码字的一页数据,所述码字包括所压缩的数据和奇偶校验位,其中该页包括被添加到所述码字的附加数据以将所述码字增加到格式化的字的存储尺寸,其中,所压缩的数据被包括在所述页的数据部分中,且至少一些奇偶校验位被包括在所述页的奇偶校验部分中;
丢弃所述附加数据;
使用所述奇偶校验位在所述ECC引擎处解码所压缩的数据;以及
解压缩所压缩的数据以生成解压缩的数据,所述解压缩的数据包括控制数据,
其中,所述ECC引擎可配置为当所有奇偶校验位被包括在所述页的奇偶校验部分中时根据第一模式操作或当所述奇偶校验位的第一部分被包括在所述页的奇偶校验部分中且所述奇偶校验位的第二部分被包括在所述页的数据部分中时根据第二模式操作。
9.根据权利要求8所述的方法,其中,所述存储器器件包括控制器,且其中所压缩的控制数据在所述控制器处生成。
10.根据权利要求9所述的方法,其中,所述控制数据包括从由用于存储元件的逻辑和物理块地址表、在存储器器件处的数据结构的索引、指针和偏移量、和存储器器件的损耗平衡数据构成的组中选择的一类数据。
11.一种数据存储器件,包括:
存储器,包括多个存储元件;以及
控制器,耦合于所述存储器,且被配置为根据页格式向所述存储元件存储信息,所述页格式包括数据部分和奇偶校验部分,其中,所述控制器包括:
错误校正编码(ECC)引擎;以及
压缩模块,耦合于所述ECC引擎,且被配置为接收和压缩被提供给ECC引擎用于编码的数据,所述数据包括控制数据,
其中,所述ECC引擎可配置为使用第一模式或第二模式来编码所压缩的数据以生成码字,所述第一模式生成第一数量的奇偶校验位,所述第二模式生成第二数量的奇偶校验位,其中,基于所压缩的数据的压缩的程度来选择所述第一模式或所述第二模式,以及
其中,所述控制器被配置为根据所述页格式向所述存储元件存储包括所压缩的数据和奇偶校验位的页,其中,所压缩的数据被存储在所述页的数据部分中,且至少一些奇偶校验位被存储在所述页的奇偶校验部分中,且其中,所述控制器被配置为向所述码字添加附加数据来增加所述码字到格式化的字的存储尺寸。
12.根据权利要求11所述的数据存储器件,其中,所述ECC引擎还包括:
错误检测编码电路,被配置为编码所压缩的控制数据;以及
错误校正编码电路,被配置为解码所编码的压缩控制数据。
13.根据权利要求11所述的数据存储器件,其中,所述奇偶校验位的第一数量对应于所述页的奇偶校验部分的尺寸,且其中,所述奇偶校验位的第二数量大于所述页的奇偶校验部分的尺寸。
14.根据权利要求13所述的数据存储器件,其中,当所述ECC引擎在第二模式中操作时,所述奇偶校验位的第一部分被存储在所述奇偶校验部分中,且所述奇偶校验位的第二部分被存储在所述数据部分中。
15.根据权利要求14所述的数据存储器件,其中,响应于所述数据部分具有足够的尺寸以包含所压缩的控制数据和所述奇偶校验位的第二部分,来选择所述第二模式。
16.根据权利要求11所述的数据存储器件,其中,所述控制器还被配置为生成控制数据。
17.根据权利要求16所述的数据存储器件,其中,所述控制数据包括从由用于存储器的逻辑和物理块地址表、在存储器处的数据结构的索引、指针和偏移量、和数据存储器件的损耗平衡数据构成的组中选择的一类数据。
18.根据权利要求11所述的数据存储器件,其中,所述存储器包括闪存。
19.一种数据存储器件,包括:
存储器,包括多个存储元件;以及
控制器,耦合于所述存储器,且被配置为根据页格式从所述存储元件读取信息,所述页格式包括数据部分和奇偶校验部分,其中,所述控制器包括:
错误校正编码(ECC)引擎;以及
解压缩模块,耦合于所述ECC引擎,且被配置为接收和解压缩由ECC引擎提供的解码的数据;并且生成解压缩的解码的数据,所述解压缩的解码的数据包括控制数据,
其中,所述ECC引擎可操作以根据所述页格式解码从所述存储器读取的所压缩的数据和奇偶校验位,其中,所压缩的数据被包括在所述页的数据部分中,且至少一些奇偶校验位被包括在所述页的奇偶校验部分中,且其中,所述控制器被配置为向所压缩的数据添加附加数据来增加格式化的字的存储尺寸,以及
其中,所述ECC引擎被配置为当所有奇偶校验位被包括在所述页的奇偶校验部分中时根据第一模式操作或当所述奇偶校验位的第一部分被包括在所述页的奇偶校验部分中且所述奇偶校验位的第二部分被包括在所述页的数据部分中时根据第二模式操作。
20.根据权利要求19所述的数据存储器件,其中,所述控制数据可由所述控制器使用。
21.根据权利要求19所述的数据存储器件,其中,所述存储器包括闪存。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/645,700 | 2009-12-23 | ||
US12/645,700 US8533564B2 (en) | 2009-12-23 | 2009-12-23 | System and method of error correction of control data at a memory device |
US12/955,174 US8533558B2 (en) | 2009-12-23 | 2010-11-29 | System and method of error correction of control data at a memory device |
US12/955,174 | 2010-11-29 | ||
CN201080058296.2A CN102713855B (zh) | 2009-12-23 | 2010-12-01 | 在存储器设备处的控制数据的错误校正的系统和方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080058296.2A Division CN102713855B (zh) | 2009-12-23 | 2010-12-01 | 在存储器设备处的控制数据的错误校正的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104657231A CN104657231A (zh) | 2015-05-27 |
CN104657231B true CN104657231B (zh) | 2017-11-17 |
Family
ID=44152894
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510102335.9A Active CN104657231B (zh) | 2009-12-23 | 2010-12-01 | 在存储器设备处的控制数据的错误校正的系统和方法 |
CN201080058296.2A Active CN102713855B (zh) | 2009-12-23 | 2010-12-01 | 在存储器设备处的控制数据的错误校正的系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080058296.2A Active CN102713855B (zh) | 2009-12-23 | 2010-12-01 | 在存储器设备处的控制数据的错误校正的系统和方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US8533564B2 (zh) |
EP (2) | EP2517107B1 (zh) |
JP (1) | JP5698260B2 (zh) |
KR (1) | KR101727267B1 (zh) |
CN (2) | CN104657231B (zh) |
TW (1) | TW201133501A (zh) |
WO (1) | WO2011087602A1 (zh) |
Families Citing this family (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8023345B2 (en) * | 2009-02-24 | 2011-09-20 | International Business Machines Corporation | Iteratively writing contents to memory locations using a statistical model |
US8560918B1 (en) | 2009-04-21 | 2013-10-15 | Marvell International Ltd. | Method and apparatus for dynamically selecting an error correction code to be applied to data in a communication system |
US8386739B2 (en) * | 2009-09-28 | 2013-02-26 | International Business Machines Corporation | Writing to memory using shared address buses |
US8463985B2 (en) * | 2010-03-31 | 2013-06-11 | International Business Machines Corporation | Constrained coding to reduce floating gate coupling in non-volatile memories |
US8495464B2 (en) * | 2010-06-28 | 2013-07-23 | Intel Corporation | Reliability support in memory systems without error correcting code support |
TWI455144B (zh) * | 2010-07-22 | 2014-10-01 | Silicon Motion Inc | 使用於快閃記憶體的控制方法與控制器 |
US8892809B2 (en) | 2010-10-25 | 2014-11-18 | Marvell World Trade Ltd. | Data compression and encoding in a memory system |
US8879640B2 (en) * | 2011-02-15 | 2014-11-04 | Hong Kong Applied Science and Technology Research Institute Company Limited | Memory efficient implementation of LDPC decoder |
US8635514B2 (en) * | 2011-02-28 | 2014-01-21 | Micron Technology, Inc. | Error control in memory storage systems |
US8732538B2 (en) * | 2011-03-10 | 2014-05-20 | Icform, Inc. | Programmable data storage management |
KR101800445B1 (ko) * | 2011-05-09 | 2017-12-21 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 |
KR20130012737A (ko) * | 2011-07-26 | 2013-02-05 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이를 포함하는 반도체 시스템 |
CN103197985B (zh) * | 2011-11-08 | 2018-07-13 | 索尼公司 | 存储控制装置 |
KR101888074B1 (ko) * | 2012-01-09 | 2018-08-13 | 삼성전자주식회사 | 저장 장치 및 불휘발성 메모리 장치, 그리고 그것의 동작 방법 |
US8862967B2 (en) * | 2012-03-15 | 2014-10-14 | Sandisk Technologies Inc. | Statistical distribution based variable-bit error correction coding |
US9246511B2 (en) * | 2012-03-20 | 2016-01-26 | Sandisk Technologies Inc. | Method and apparatus to process data based upon estimated compressibility of the data |
WO2013147819A1 (en) * | 2012-03-29 | 2013-10-03 | Intel Corporation | Compression-enabled blending of data in non-volatile memory |
US8694862B2 (en) * | 2012-04-20 | 2014-04-08 | Arm Limited | Data processing apparatus using implicit data storage data storage and method of implicit data storage |
KR102081980B1 (ko) * | 2012-10-08 | 2020-02-27 | 삼성전자 주식회사 | 메모리 시스템에서의 라이트 동작 또는 리드 동작 수행 방법 |
US9043674B2 (en) * | 2012-12-26 | 2015-05-26 | Intel Corporation | Error detection and correction apparatus and method |
US9495288B2 (en) | 2013-01-22 | 2016-11-15 | Seagate Technology Llc | Variable-size flash translation layer |
KR20140099689A (ko) | 2013-02-04 | 2014-08-13 | 삼성전자주식회사 | 불휘발성 메모리 셀 어레이를 포함하는 반도체 메모리 장치 |
US9136873B2 (en) | 2013-03-11 | 2015-09-15 | Intel Corporation | Reduced uncorrectable memory errors |
JP2015022516A (ja) * | 2013-07-19 | 2015-02-02 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法 |
TWI609263B (zh) * | 2013-08-16 | 2017-12-21 | 司固科技公司 | 可變大小快閃轉變層 |
TWI512732B (zh) * | 2013-08-30 | 2015-12-11 | Phison Electronics Corp | 解碼方法、記憶體儲存裝置與非揮發性記憶體模組 |
US9213595B2 (en) * | 2013-10-15 | 2015-12-15 | International Business Machines Corporation | Handling errors in ternary content addressable memories |
US9959072B2 (en) * | 2013-12-20 | 2018-05-01 | Sandisk Technologies Llc | Systems and methods of compressing data |
US9927998B2 (en) * | 2014-02-05 | 2018-03-27 | Tidal Systems, Inc. | Flash memory compression |
JP5855150B2 (ja) | 2014-03-06 | 2016-02-09 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
US9350388B2 (en) * | 2014-03-07 | 2016-05-24 | Storart Technology Co. Ltd. | Data format with ECC information for on-the-fly decoding during data transfer and method for forming the data format |
US9391646B2 (en) * | 2014-03-25 | 2016-07-12 | Samsung Electronics Co., Ltd. | Joint source-channel encoding and decoding for compressed and uncompressed data |
US9442799B2 (en) * | 2014-06-26 | 2016-09-13 | Microsoft Technology Licensing, Llc | Extended lifetime memory |
CN105448334B (zh) * | 2014-09-01 | 2019-08-23 | 华邦电子股份有限公司 | 半导体存储装置 |
WO2016051599A1 (ja) * | 2014-10-03 | 2016-04-07 | 株式会社日立製作所 | メモリコントローラ及びデータ制御方法 |
GB2531756A (en) | 2014-10-29 | 2016-05-04 | Ibm | Multi-chip device and method for storing data |
EP3016432B1 (en) * | 2014-10-30 | 2018-07-04 | Vodafone IP Licensing limited | Content compression in mobile network |
US9710199B2 (en) | 2014-11-07 | 2017-07-18 | International Business Machines Corporation | Non-volatile memory data storage with low read amplification |
US10162700B2 (en) * | 2014-12-23 | 2018-12-25 | International Business Machines Corporation | Workload-adaptive data packing algorithm |
US9710324B2 (en) | 2015-02-03 | 2017-07-18 | Qualcomm Incorporated | Dual in-line memory modules (DIMMs) supporting storage of a data indicator(s) in an error correcting code (ECC) storage unit dedicated to storing an ECC |
JP6294251B2 (ja) * | 2015-02-26 | 2018-03-14 | ファナック株式会社 | 誤り訂正機能による寿命予測を有する制御装置 |
US9858994B2 (en) | 2015-06-18 | 2018-01-02 | Samsung Electronics Co., Ltd. | Memory system with MLC memory cells and partial page compression or reduction |
US9712190B2 (en) | 2015-09-24 | 2017-07-18 | International Business Machines Corporation | Data packing for compression-enabled storage systems |
US20170126249A1 (en) * | 2015-10-30 | 2017-05-04 | Intel Corporation | Temperature dependent multiple mode error correction |
US10255004B2 (en) * | 2015-11-16 | 2019-04-09 | Marvell World Trade Ltd. | Systems and methods for managing address-mapping data in memory devices |
KR102435181B1 (ko) | 2015-11-16 | 2022-08-23 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법 |
US9870285B2 (en) | 2015-11-18 | 2018-01-16 | International Business Machines Corporation | Selectively de-straddling data pages in non-volatile memory |
US10223198B2 (en) | 2016-02-18 | 2019-03-05 | Micron Technology, Inc. | Error rate reduction |
US10592336B1 (en) * | 2016-03-24 | 2020-03-17 | Amazon Technologies, Inc. | Layered indexing for asynchronous retrieval of redundancy coded data |
CN107239224B (zh) * | 2016-03-29 | 2020-05-12 | 群联电子股份有限公司 | 数据保护方法、存储器控制电路单元与存储器存储装置 |
US10275541B2 (en) | 2016-08-05 | 2019-04-30 | Micron Technology, Inc. | Proactive corrective actions in memory based on a probabilistic data structure |
KR102504178B1 (ko) | 2016-08-23 | 2023-02-28 | 에스케이하이닉스 주식회사 | 반도체장치 |
US10236917B2 (en) * | 2016-09-15 | 2019-03-19 | Qualcomm Incorporated | Providing memory bandwidth compression in chipkill-correct memory architectures |
US10394648B2 (en) * | 2016-11-07 | 2019-08-27 | Samsung Electronics Co., Ltd. | Method to deliver in-DRAM ECC information through DDR bus |
US10284230B2 (en) * | 2016-11-15 | 2019-05-07 | Western Digital Technologies, Inc. | Linked storage system and host system error correcting code |
US10312944B2 (en) * | 2017-03-17 | 2019-06-04 | Micron Technology, Inc. | Error correction code (ECC) operations in memory for providing redundant error correction |
US10269422B2 (en) * | 2017-09-08 | 2019-04-23 | Cnex Labs, Inc. | Storage system with data reliability mechanism and method of operation thereof |
KR102468721B1 (ko) * | 2017-12-20 | 2022-11-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
KR102432551B1 (ko) * | 2018-02-13 | 2022-08-16 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법 |
US10587284B2 (en) * | 2018-04-09 | 2020-03-10 | International Business Machines Corporation | Multi-mode compression acceleration |
US10747638B2 (en) * | 2018-04-18 | 2020-08-18 | Oracle International Corporation | Computing memory health metrics |
KR20200011655A (ko) * | 2018-07-25 | 2020-02-04 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
TWI703438B (zh) * | 2018-09-11 | 2020-09-01 | 慧榮科技股份有限公司 | 映射表更新方法 |
US20200127685A1 (en) * | 2018-10-19 | 2020-04-23 | Nyquist Semiconductor Limited | Systems and methods for a hybrid non-volatile storage system |
KR102645140B1 (ko) * | 2018-12-06 | 2024-03-07 | 삼성전자주식회사 | Fpga를 포함하는 메모리 시스템 및 이의 동작 방법 |
KR102139826B1 (ko) * | 2018-12-27 | 2020-07-31 | 한양대학교 산학협력단 | 플래시 메모리 저장장치 저장 장치 및 그 구동 방법 |
US11200004B2 (en) * | 2019-02-01 | 2021-12-14 | EMC IP Holding Company LLC | Compression of data for a file system |
CN112540719A (zh) * | 2019-09-23 | 2021-03-23 | 深圳宏芯宇电子股份有限公司 | 数据编码方法、存储器存储装置及存储器控制器 |
US11307804B2 (en) | 2019-12-16 | 2022-04-19 | Samsung Electronics Co., Ltd. | Enhanced SSD reliability |
CN112988449B (zh) * | 2019-12-16 | 2023-08-15 | 慧荣科技股份有限公司 | 写入页面群组的数据到闪存模块的装置及方法 |
KR20220018757A (ko) | 2020-08-07 | 2022-02-15 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법 |
US11972822B2 (en) * | 2021-09-24 | 2024-04-30 | Sandisk Technologies Llc | Programmable ECC for MRAM mixed-read scheme |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1463433A (zh) * | 2001-04-27 | 2003-12-24 | 索尼株式会社 | 记录介质的记录方法和记录装置以及记录介质的再现方法和再现装置 |
US6754277B1 (en) * | 1998-10-06 | 2004-06-22 | Texas Instruments Incorporated | Error protection for compressed video |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0661156B2 (ja) * | 1983-05-21 | 1994-08-10 | ソニー株式会社 | エラ−訂正のための符号化方法 |
US5200962A (en) | 1988-11-03 | 1993-04-06 | Racal-Datacom, Inc. | Data compression with error correction |
JPH0512800A (ja) * | 1991-07-04 | 1993-01-22 | Matsushita Electric Ind Co Ltd | データ圧縮機能を備えた情報記録再生装置と情報記録媒体 |
US5394534A (en) | 1992-09-11 | 1995-02-28 | International Business Machines Corporation | Data compression/decompression and storage of compressed and uncompressed data on a same removable data storage medium |
US5357614A (en) | 1992-09-17 | 1994-10-18 | Rexon/Tecmar, Inc. | Data compression controller |
US5459850A (en) | 1993-02-19 | 1995-10-17 | Conner Peripherals, Inc. | Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks |
US5771081A (en) | 1994-02-28 | 1998-06-23 | Korea Telecommunication Authority | Bit system for transmitting digital video data |
MY114518A (en) | 1994-03-19 | 2002-11-30 | Sony Corp | Optical disk and method and apparatus for recording and then playing information back from that disk |
GB2298078B (en) | 1995-02-20 | 1998-09-16 | Sony Uk Ltd | Digital tape recorder |
JPH10275417A (ja) | 1997-03-31 | 1998-10-13 | Sony Corp | ディジタル情報信号記録再生装置およびその方法 |
EP0915413A1 (en) | 1997-10-31 | 1999-05-12 | Hewlett-Packard Company | Data encoding scheme with switchable compression |
JP2927282B2 (ja) | 1997-11-06 | 1999-07-28 | 日本電気株式会社 | ディスクアレイ装置 |
JP3809719B2 (ja) * | 1998-01-05 | 2006-08-16 | ソニー株式会社 | ディジタルビデオ信号処理装置および方法、ディジタルビデオ信号再生装置、復号装置および方法、ならびに、再生装置および方法 |
EP1001635B1 (en) | 1998-11-09 | 2008-02-13 | Sony Corporation | Data recording apparatus and method |
US6145069A (en) | 1999-01-29 | 2000-11-07 | Interactive Silicon, Inc. | Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices |
JP2000326571A (ja) * | 1999-05-24 | 2000-11-28 | Canon Inc | 印刷制御装置及びその印刷制御方法ならびに記録媒体 |
JP2001229073A (ja) * | 2000-02-16 | 2001-08-24 | Hitachi Ltd | フラッシュメモリ |
US6862662B1 (en) | 2000-03-03 | 2005-03-01 | Micron Technology, Inc. | High density storage scheme for semiconductor memory |
JP2002024084A (ja) | 2000-07-12 | 2002-01-25 | Mitsubishi Electric Corp | 半導体集積回路装置および電子システム |
ATE350415T1 (de) * | 2000-07-31 | 2007-01-15 | Fuji Photo Film Co Ltd | Fluoreszente lampenabdeckung und beleuchtungseinrichtung |
US7113432B2 (en) | 2000-09-14 | 2006-09-26 | Sandisk Corporation | Compressed event counting technique and application to a flash memory system |
US20030014716A1 (en) * | 2001-07-16 | 2003-01-16 | Cute Ltd. | Universal lossless data compression |
US6961890B2 (en) | 2001-08-16 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Dynamic variable-length error correction code |
JP4112849B2 (ja) * | 2001-11-21 | 2008-07-02 | 株式会社東芝 | 半導体記憶装置 |
US7051152B1 (en) | 2002-08-07 | 2006-05-23 | Nvidia Corporation | Method and system of improving disk access time by compression |
TWI228257B (en) * | 2004-05-06 | 2005-02-21 | Carry Computer Eng Co Ltd | Silicon storage media, controller, and access method thereof |
TWI248617B (en) * | 2004-08-13 | 2006-02-01 | Prolific Technology Inc | Data storage device |
US7340666B1 (en) * | 2004-09-16 | 2008-03-04 | Sun Microsystems, Inc. | Method and apparatus for using memory compression to enhance error correction |
US7673215B2 (en) | 2004-12-17 | 2010-03-02 | Samsung Electronics Co., Ltd. | Apparatus and method for using an error correcting code to achieve data compression in a data communication network |
US8473673B2 (en) * | 2005-06-24 | 2013-06-25 | Hewlett-Packard Development Company, L.P. | Memory controller based (DE)compression |
JP2007094639A (ja) * | 2005-09-28 | 2007-04-12 | Tdk Corp | メモリコントローラ及びフラッシュメモリシステム |
US7987514B2 (en) | 2006-04-04 | 2011-07-26 | Intertrust Technologies Corp. | Systems and methods for retrofitting electronic appliances to accept different content formats |
JP4901334B2 (ja) * | 2006-06-30 | 2012-03-21 | 株式会社東芝 | メモリコントローラ |
EP1885131A1 (en) * | 2006-08-04 | 2008-02-06 | STMicroelectronics (Research & Development) Limited | Iterative image compression for limited file sizes |
TW200820261A (en) | 2006-09-08 | 2008-05-01 | Samsung Electronics Co Ltd | Fusion memory device and method |
JP4888862B2 (ja) * | 2006-11-10 | 2012-02-29 | 株式会社メガチップス | メモリ管理方法 |
CN101715575A (zh) | 2006-12-06 | 2010-05-26 | 弗森多系统公司(dba弗森-艾奥) | 采用数据管道管理数据的装置、系统和方法 |
US7958331B2 (en) | 2006-12-13 | 2011-06-07 | Seagate Technology Llc | Storage device with opportunistic address space |
US7945842B2 (en) * | 2007-06-19 | 2011-05-17 | International Business Machines Corporation | Method and apparatus for rateless source coding with/without decoder side information |
US7941409B2 (en) * | 2007-09-11 | 2011-05-10 | Hitachi, Ltd. | Method and apparatus for managing data compression and integrity in a computer storage system |
US8131927B2 (en) * | 2007-11-30 | 2012-03-06 | Hitachi, Ltd. | Fast accessible compressed thin provisioning volume |
JP4672742B2 (ja) * | 2008-02-27 | 2011-04-20 | 株式会社東芝 | メモリコントローラおよびメモリシステム |
US8341501B2 (en) | 2009-04-30 | 2012-12-25 | International Business Machines Corporation | Adaptive endurance coding of non-volatile memories |
-
2009
- 2009-12-23 US US12/645,700 patent/US8533564B2/en active Active
-
2010
- 2010-11-29 US US12/955,174 patent/US8533558B2/en active Active
- 2010-12-01 CN CN201510102335.9A patent/CN104657231B/zh active Active
- 2010-12-01 JP JP2012545985A patent/JP5698260B2/ja not_active Expired - Fee Related
- 2010-12-01 CN CN201080058296.2A patent/CN102713855B/zh active Active
- 2010-12-01 EP EP10796202.9A patent/EP2517107B1/en not_active Not-in-force
- 2010-12-01 KR KR1020127018462A patent/KR101727267B1/ko active IP Right Grant
- 2010-12-01 WO PCT/US2010/058591 patent/WO2011087602A1/en active Application Filing
- 2010-12-01 EP EP13198178.9A patent/EP2713274B1/en not_active Not-in-force
- 2010-12-08 TW TW099142853A patent/TW201133501A/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6754277B1 (en) * | 1998-10-06 | 2004-06-22 | Texas Instruments Incorporated | Error protection for compressed video |
CN1463433A (zh) * | 2001-04-27 | 2003-12-24 | 索尼株式会社 | 记录介质的记录方法和记录装置以及记录介质的再现方法和再现装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2713274B1 (en) | 2017-04-26 |
CN102713855B (zh) | 2015-04-08 |
KR20120107495A (ko) | 2012-10-02 |
KR101727267B1 (ko) | 2017-05-02 |
EP2517107B1 (en) | 2014-01-22 |
US20110154160A1 (en) | 2011-06-23 |
JP2013516000A (ja) | 2013-05-09 |
US8533564B2 (en) | 2013-09-10 |
CN104657231A (zh) | 2015-05-27 |
EP2713274A3 (en) | 2014-04-30 |
WO2011087602A1 (en) | 2011-07-21 |
TW201133501A (en) | 2011-10-01 |
JP5698260B2 (ja) | 2015-04-08 |
CN102713855A (zh) | 2012-10-03 |
US20110154158A1 (en) | 2011-06-23 |
EP2517107A1 (en) | 2012-10-31 |
EP2713274A2 (en) | 2014-04-02 |
US8533558B2 (en) | 2013-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104657231B (zh) | 在存储器设备处的控制数据的错误校正的系统和方法 | |
US8949687B2 (en) | Memory device and memory system | |
US7900118B2 (en) | Flash memory system and method for controlling the same | |
US8458568B2 (en) | Systems and methods for memory devices | |
US8769374B2 (en) | Multi-write endurance and error control coding of non-volatile memories | |
US20120254686A1 (en) | Non-volatile semiconductor memory devices and error correction methods | |
US8719677B2 (en) | Using ECC encoding to verify an ECC decode operation | |
US20130139037A1 (en) | Systems and Methods for Error Correction and Decoding on Multi-Level Physical Media | |
CN101256842A (zh) | 纠错码控制器和包括该纠错码控制器的存储器系统 | |
CN109491828A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN109901784B (zh) | 数据存取方法、存储器控制电路单元以及存储器储存装置 | |
US20170161141A1 (en) | Method and apparatus for correcting data in multiple ecc blocks of raid memory | |
US11689219B1 (en) | Method and system for error correction in memory devices using irregular error correction code components | |
TW200839502A (en) | Flash memory system and method for controlling the same | |
US12009840B2 (en) | Systems and methods of decoding error correction code of a memory device with dynamic bit error estimation | |
US11561738B2 (en) | Memory system | |
CN111324478B (zh) | 解码方法、存储器控制电路单元以及存储器存储装置 | |
CN113921076A (zh) | 基于数据压缩的数据处理方法及ssd设备 | |
CN109358978A (zh) | 一种基于极化码和元数据信息的nand flash差错控制方法 | |
CN111258791A (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: texas Applicant after: DELPHI INT OPERATIONS LUX SRL Address before: texas Applicant before: Sandisk Corp. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |