CN102713855A - 在存储器设备处的控制数据的错误校正的系统和方法 - Google Patents
在存储器设备处的控制数据的错误校正的系统和方法 Download PDFInfo
- Publication number
- CN102713855A CN102713855A CN2010800582962A CN201080058296A CN102713855A CN 102713855 A CN102713855 A CN 102713855A CN 2010800582962 A CN2010800582962 A CN 2010800582962A CN 201080058296 A CN201080058296 A CN 201080058296A CN 102713855 A CN102713855 A CN 102713855A
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- control data
- ecc
- 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.)
- Granted
Links
Images
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
技术领域
本公开一般涉及在存储器设备处的控制数据的错误校正。
背景技术
在向存储器中写入数据的过程期间,通常用额外的位来编码数据以形成码字。在存在噪声时,表示该码字的位中的一些位可能改变,用错误来破坏原始码字。当从存储器读取该码字时,可以使用解码器使用错误校正编码(ECC)来标识和校正这些错误。例如,在其中位错误趋向于不相关的应用中一般使用Bose-Chaudhuri-Hocquenghem(BCH)、低密度奇偶校验(LDPC)、里德所罗门(Reed Solomon)和Turbo编码方案。
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处。缓存在HRAM 220处的用户数据可以被提供给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字节页的例子是:
结构 | 字节长度 |
头部 | 16 |
头部奇偶校验 | 4 |
数据0 | 1018 |
对于数据0的奇偶校验 | 28 |
数据1 | 1018 |
对于数据1的奇偶校验 | 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的HRAM220可以从外部设备(例如主机设备)202接收用户数据。控制数据可以在控制器处产生。控制数据可以包括从由用于存储器设备处的存储器阵列的逻辑和物理块地址表;对于存储器阵列处的数据结构的索引、指针和偏移量;以及对于存储器设备的损耗均衡数据构成的组中选择的一种类型的数据。例如,图2的控制器206可以产生控制数据244。
方法500还包括在504对压缩的控制数据编码以产生表示压缩的控制数据的码字。该码字可由存储器设备处的错误校正编码(ECC)引擎解码。例如,图2的ECC引擎254解码压缩的控制数据240以产生表示压缩的控制数据240的码字252。压缩的控制数据可以被存储在缓冲随机存取存储器(BRAM)处。例如,图2的BRAM226可以存储压缩的控制数据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 (30)
1.一种方法,包括:
在存储器设备的控制器处:
压缩控制数据;
对压缩的控制数据编码以产生表示压缩的控制数据的码字,其中该码字可由存储器设备处的错误校正编码(ECC)引擎解码;以及
将该码字存储在耦接到该控制器的存储器阵列处。
2.如权利要求1的方法,其中在该控制器处产生该控制数据。
3.如权利要求1的方法,其中该控制数据包括从由以下构成的组中选择的一种类型的数据:对于该存储器设备处的存储器阵列的逻辑和物理块地址表;对于该存储器阵列处的数据结构的索引、指针以及偏移量;以及对于该存储器设备的损耗均衡数据。
4.如权利要求1的方法,还包括从耦接到该存储器设备的外部设备接收用户数据,其中该外部设备是主机设备,并且其中在该存储器设备处的主机随机存取存储器(HRAM)处接收该用户数据。
5.如权利要求1的方法,其中该压缩的控制数据被存储在缓冲随机存取存储器(BRAM)处。
6.如权利要求1的方法,其中在该ECC引擎处的该压缩的控制数据的有效错误校正率超过该控制数据的有效错误校正率。
7.如权利要求1的方法,其中存储码字包括存储格式化的数据字,该格式化的数据字包括:
头部数据部分;
有效负荷部分;以及
奇偶校验部分。
8.如权利要求7的方法,其中该格式化的数据字还包括头部奇偶校验部分,还包括将该压缩的控制数据的大小存储在该头部数据部分处,并将附加的数据添加到该压缩的控制数据以将该格式化的数据字的存储大小增加到预定大小。
9.如权利要求8的方法,其中在该压缩的控制数据被编码之后,向该压缩的控制数据添加该附加的数据。
10.如权利要求1的方法,还包括将该压缩的控制数据的大小存储在该存储器阵列处。
11.如权利要求1的方法,还包括将该压缩的控制数据的大小存储在该控制器处。
12.如权利要求1的方法,其中,所述编码包括产生与该压缩的控制数据对应的ECC位。
13.如权利要求1的方法,其中,所述编码是基于Reed-Solomon码、BoseRay-Chaudhuri Hocquenghem(BCH)码和低密度奇偶校验(LDPC)码之一。
14.一种方法,包括:
在存储器设备的控制器处:
从存储器阵列读取码字;
在错误校正编码(ECC)引擎处解码该码字以产生压缩的控制数据;以及
对该压缩的控制数据解压缩。
15.如权利要求14的方法,其中该压缩的控制数据包括附加的数据,并且还包括基于该压缩的控制数据的大小从该压缩的控制数据中丢弃该附加的数据,其中该压缩的控制数据的大小指示没有该附加的数据的压缩的控制数据的大小。
16.如权利要求15的方法,还包括从存储器阵列取回该压缩的控制数据的大小。
17.如权利要求15的方法,还包括从该控制器取回该压缩的控制数据的大小。
18.一种系统,包括:
存储器阵列;以及
控制器,耦接到该存储器阵列,其中该控制器包括:
错误校正编码(ECC)引擎;以及
ECC增强压缩模块,耦接到该ECC引擎,其中该ECC增强压缩模块被配置为接收并压缩要被提供到ECC引擎以被编码的控制数据,其中在该ECC引擎处产生的该压缩的被编码控制数据作为码字被存储在存储器阵列处。
19.如权利要求18的系统,其中该ECC增强压缩模块还被配置为:从该存储器阵列取回该压缩的被编码控制数据;以及
对该压缩的被编码控制数据解码以产生压缩的控制数据。
20.如权利要求18的系统,其中该ECC引擎还包括:
错误检测编码电路,被配置为对该压缩的控制数据编码;以及
错误校正编码电路,被配置为对该编码的被压缩控制数据解码。
21.一种方法,包括:
在包括错误校正编码(ECC)引擎和多个存储元件的存储器设备中进行如下步骤,其中所述多个存储元件包括一组存储元件,其中该存储器设备被配置为根据页格式将信息存储到存储元件,该页格式包括数据部分和奇偶校验部分:
开始压缩操作以对要存储在该组存储元件中的数据进行压缩;
基于数据的压缩的程度来选择产生第一数量的奇偶校验位的ECC引擎的第一模式和产生第二数量的奇偶校验位的ECC引擎的第二模式;
对压缩的数据编码以产生与压缩的数据对应的奇偶校验位;以及
根据所述页格式,将压缩的数据和奇偶校验位存储到该组存储元件,其中该压缩的数据被存储在数据部分中,并且该奇偶校验位中的至少一些被存储在奇偶校验部分中。
22.如权利要求21的方法,其中该第一数量的奇偶校验位对应于奇偶校验部分的大小,以及其中该第二数量的奇偶校验位大于该奇偶校验部分的大小。
23.如权利要求22的方法,其中当选择该第二模式时,该奇偶校验位的第一部分被存储在该奇偶校验部分中,并且该奇偶校验位的第二部分被存储在该数据部分中。
24.如权利要求23的方法,其中响应于该数据部分具有足够空间来包括该压缩的数据和该奇偶校验位的第二部分,选择该第二模式。
25.一种方法,包括:
在包括错误校正编码(ECC)引擎和多个存储元件的存储器设备中进行如下步骤,其中该存储器设备被配置为根据页格式将信息存储在存储元件处,该页格式包括数据部分和奇偶校验部分:
根据该页格式从该存储元件读取包括压缩的控制数据和奇偶校验位的数据页,其中该压缩的数据被包括在该页的数据部分中,并且该奇偶校验位中的至少一些被包括在该页的奇偶校验部分中;
使用该奇偶校验位在该ECC引擎处对该压缩的数据解码;以及
对该压缩的数据解压缩以产生解压缩的数据,
其中该ECC引擎可配置以当所有奇偶校验位都被包括在该页的奇偶校验部分中时根据第一模式而操作,或者当该奇偶校验位的第一部分被包括在该页的奇偶校验部分中并且该奇偶校验位的第二部分被包括在该页的数据部分中时根据第二模式而操作。
26.如权利要求25的方法,其中该存储器设备包括控制器,以及其中该解压缩的数据包括在该控制器处产生的控制数据。
27.一种数据存储设备,包括:
存储器,包括多个存储元件;以及
控制器,耦接到该存储器并被配置为根据页格式将信息存储到该存储元件,该页格式包括数据部分和奇偶校验部分,其中该控制器包括:
错误校正编码(ECC)引擎;以及
压缩模块,耦接到该ECC引擎,并被配置为接收和压缩要被提供给ECC引擎用于编码的数据,
其中该ECC引擎可配置以基于数据的压缩程度而在第一模式下操作来产生第一数量的奇偶校验位或者在第二模式下操作来产生第二数量的奇偶校验位,以及
其中该控制器被配置为根据该页格式将包括该压缩的数据和奇偶校验位的页存储到该存储元件,其中该压缩的数据被存储在该页的数据部分中,并且该奇偶校验位中的至少一些被存储在该页的奇偶校验部分中。
28.如权利要求27的数据存储设备,其中该控制器还被配置为产生控制数据,以及其中接收的数据包括该控制数据,其中该控制数据包括从由以下构成的组中选择的一种类型的数据:对于该存储器的逻辑和物理块地址表;对于该存储器处的数据结构的索引、指针以及偏移量;以及对于数据存储设备的损耗均衡数据。
29.一种数据存储设备,包括:
存储器,包括多个存储元件;以及
控制器,耦接到该存储器并被配置为根据页格式从该存储元件读取信息,该页格式包括数据部分和奇偶校验部分,其中该控制器包括:
错误校正编码(ECC)引擎;以及
解压缩模块,耦接到该ECC引擎,并被配置为接收和解压缩由ECC引擎提供的解码的数据,
其中该ECC引擎可操作以根据该页格式对从该存储器读取的压缩的数据和奇偶校验位的页进行解码,其中该压缩的数据被包括在该页的数据部分中,并且该奇偶校验位中的至少一些被包括在该页的奇偶校验部分中,以及
其中该ECC引擎被配置为当所有奇偶校验位都被包括在该页的奇偶校验部分中时根据第一模式而操作,或者当该奇偶校验位的第一部分被包括在该页的奇偶校验部分中并且该奇偶校验位的第二部分被包括在该页的数据部分中时根据第二模式而操作。
30.如权利要求29的数据存储设备,其中解压缩的被解码数据包括可由控制器使用的控制数据,以及其中该存储器包括闪存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510102335.9A CN104657231B (zh) | 2009-12-23 | 2010-12-01 | 在存储器设备处的控制数据的错误校正的系统和方法 |
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 | ||
PCT/US2010/058591 WO2011087602A1 (en) | 2009-12-23 | 2010-12-01 | System and method of error correction of control data at a memory device |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510102335.9A Division CN104657231B (zh) | 2009-12-23 | 2010-12-01 | 在存储器设备处的控制数据的错误校正的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102713855A true CN102713855A (zh) | 2012-10-03 |
CN102713855B CN102713855B (zh) | 2015-04-08 |
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 Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510102335.9A Active CN104657231B (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) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105448334A (zh) * | 2014-09-01 | 2016-03-30 | 华邦电子股份有限公司 | 半导体存储装置 |
CN106663044A (zh) * | 2014-06-26 | 2017-05-10 | 微软技术许可有限责任公司 | 延长寿命的存储器 |
CN107111562A (zh) * | 2014-12-23 | 2017-08-29 | 国际商业机器公司 | 工作负荷自适应数据打包算法 |
CN107209703A (zh) * | 2015-02-03 | 2017-09-26 | 高通股份有限公司 | 支持在专用于存储错误校正码(ecc)的ecc存储单元中的数据指示符的存储的双列直插式存储器模块(dimm) |
CN108074622A (zh) * | 2016-11-07 | 2018-05-25 | 三星电子株式会社 | 存储器控制器、数据芯片及其控制方法 |
CN108073471A (zh) * | 2016-11-15 | 2018-05-25 | 西部数据技术公司 | 链接的存储系统和主机系统错误校正码 |
CN108463807A (zh) * | 2015-10-30 | 2018-08-28 | 英特尔公司 | 温度相关的多模式错误校正 |
TWI648622B (zh) * | 2014-02-05 | 2019-01-21 | 美商美光科技公司 | 快閃記憶體之壓縮、讀取方法及應用其方法的裝置 |
CN109471808A (zh) * | 2017-09-08 | 2019-03-15 | 希耐克斯实验室公司 | 具有数据可靠性机制的存储系统及其操作方法 |
CN109949854A (zh) * | 2017-12-20 | 2019-06-28 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN110148434A (zh) * | 2018-02-13 | 2019-08-20 | 三星电子株式会社 | 半导体存储器件、存储系统和操作半导体存储器件的方法 |
CN110462593A (zh) * | 2017-03-17 | 2019-11-15 | 美光科技公司 | 用于提供冗余错误校正的存储器中的错误校正码(ecc)操作 |
CN110764948A (zh) * | 2018-07-25 | 2020-02-07 | 爱思开海力士有限公司 | 数据存储装置、该数据存储装置的操作方法以及存储系统 |
CN111081308A (zh) * | 2018-10-19 | 2020-04-28 | 奈奎斯特半导体有限公司 | 用于混合非易失性存储系统的系统和方法 |
CN111290705A (zh) * | 2018-12-06 | 2020-06-16 | 三星电子株式会社 | 包括现场可编程门阵列的存储器系统及其操作方法 |
CN112540719A (zh) * | 2019-09-23 | 2021-03-23 | 深圳宏芯宇电子股份有限公司 | 数据编码方法、存储器存储装置及存储器控制器 |
Families Citing this family (56)
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 |
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 |
US10067828B2 (en) | 2014-10-03 | 2018-09-04 | Hitachi, Ltd. | Memory controller and data control method |
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 |
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 |
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 |
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 |
TWI703438B (zh) * | 2018-09-11 | 2020-09-01 | 慧榮科技股份有限公司 | 映射表更新方法 |
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 |
TWI719880B (zh) * | 2019-12-16 | 2021-02-21 | 慧榮科技股份有限公司 | 寫入頁面群組的資料到閃存模組的裝置及方法 |
US11307804B2 (en) | 2019-12-16 | 2022-04-19 | Samsung Electronics Co., Ltd. | Enhanced SSD reliability |
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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370324B1 (en) * | 1997-03-31 | 2002-04-09 | Sony Corporation | Digital information recorder/reproducer with ECC encoding of compressed signal and selective bypass of ECC encoding |
US6754277B1 (en) * | 1998-10-06 | 2004-06-22 | Texas Instruments Incorporated | Error protection for compressed video |
TW200606946A (en) * | 2004-08-13 | 2006-02-16 | Richip Inc | Data storage device |
WO2008070173A1 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage |
Family Cites Families (41)
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 |
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 | ソニー株式会社 | ディジタルビデオ信号処理装置および方法、ディジタルビデオ信号再生装置、復号装置および方法、ならびに、再生装置および方法 |
US6470142B1 (en) | 1998-11-09 | 2002-10-22 | Sony Corporation | Data recording apparatus, data recording method, data recording and reproducing apparatus, data recording and reproducing method, data reproducing apparatus, data reproducing method, data record medium, digital data reproducing apparatus, digital data reproducing method, synchronization detecting apparatus, and synchronization detecting 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 | 半導体集積回路装置および電子システム |
EP1178076B1 (en) * | 2000-07-31 | 2007-01-03 | Fuji Photo Film Co., Ltd. | Fluorescent lamp cover and lighting fixture |
US7113432B2 (en) | 2000-09-14 | 2006-09-26 | Sandisk Corporation | Compressed event counting technique and application to a flash memory system |
JP2002329367A (ja) * | 2001-04-27 | 2002-11-15 | Sony Corp | データ記録方法および装置、データ再生方法および装置、並びにデータ記録媒体 |
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 |
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 |
KR20080023191A (ko) | 2006-09-08 | 2008-03-12 | 삼성전자주식회사 | 퓨전메모리 장치 및 방법 |
JP4888862B2 (ja) * | 2006-11-10 | 2012-02-29 | 株式会社メガチップス | メモリ管理方法 |
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 WO PCT/US2010/058591 patent/WO2011087602A1/en active Application Filing
- 2010-12-01 EP EP10796202.9A patent/EP2517107B1/en not_active Not-in-force
- 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 EP EP13198178.9A patent/EP2713274B1/en not_active Not-in-force
- 2010-12-01 CN CN201080058296.2A patent/CN102713855B/zh active Active
- 2010-12-01 KR KR1020127018462A patent/KR101727267B1/ko active IP Right Grant
- 2010-12-08 TW TW099142853A patent/TW201133501A/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370324B1 (en) * | 1997-03-31 | 2002-04-09 | Sony Corporation | Digital information recorder/reproducer with ECC encoding of compressed signal and selective bypass of ECC encoding |
US6754277B1 (en) * | 1998-10-06 | 2004-06-22 | Texas Instruments Incorporated | Error protection for compressed video |
TW200606946A (en) * | 2004-08-13 | 2006-02-16 | Richip Inc | Data storage device |
WO2008070173A1 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI648622B (zh) * | 2014-02-05 | 2019-01-21 | 美商美光科技公司 | 快閃記憶體之壓縮、讀取方法及應用其方法的裝置 |
CN106663044B (zh) * | 2014-06-26 | 2020-03-03 | 微软技术许可有限责任公司 | 延长寿命的存储器 |
CN106663044A (zh) * | 2014-06-26 | 2017-05-10 | 微软技术许可有限责任公司 | 延长寿命的存储器 |
CN105448334B (zh) * | 2014-09-01 | 2019-08-23 | 华邦电子股份有限公司 | 半导体存储装置 |
CN105448334A (zh) * | 2014-09-01 | 2016-03-30 | 华邦电子股份有限公司 | 半导体存储装置 |
CN107111562A (zh) * | 2014-12-23 | 2017-08-29 | 国际商业机器公司 | 工作负荷自适应数据打包算法 |
CN107209703B (zh) * | 2015-02-03 | 2020-06-19 | 高通股份有限公司 | 双列直插式存储器模块(dimm)以及将数据写入到dimm的方法 |
CN107209703A (zh) * | 2015-02-03 | 2017-09-26 | 高通股份有限公司 | 支持在专用于存储错误校正码(ecc)的ecc存储单元中的数据指示符的存储的双列直插式存储器模块(dimm) |
CN108463807A (zh) * | 2015-10-30 | 2018-08-28 | 英特尔公司 | 温度相关的多模式错误校正 |
CN108463807B (zh) * | 2015-10-30 | 2021-11-23 | 英特尔公司 | 温度相关的多模式错误校正 |
CN108074622A (zh) * | 2016-11-07 | 2018-05-25 | 三星电子株式会社 | 存储器控制器、数据芯片及其控制方法 |
CN108074622B (zh) * | 2016-11-07 | 2023-06-06 | 三星电子株式会社 | 存储器控制器、数据芯片及其控制方法 |
CN108073471A (zh) * | 2016-11-15 | 2018-05-25 | 西部数据技术公司 | 链接的存储系统和主机系统错误校正码 |
CN108073471B (zh) * | 2016-11-15 | 2021-06-25 | 西部数据技术公司 | 链接的存储系统和主机系统错误校正码 |
CN110462593A (zh) * | 2017-03-17 | 2019-11-15 | 美光科技公司 | 用于提供冗余错误校正的存储器中的错误校正码(ecc)操作 |
CN110462593B (zh) * | 2017-03-17 | 2024-03-26 | 美光科技公司 | 用于提供冗余错误校正的存储器中的错误校正码操作 |
CN109471808A (zh) * | 2017-09-08 | 2019-03-15 | 希耐克斯实验室公司 | 具有数据可靠性机制的存储系统及其操作方法 |
CN109471808B (zh) * | 2017-09-08 | 2023-10-31 | 希耐克斯实验室公司 | 具有数据可靠性机制的存储系统及其操作方法 |
CN109949854B (zh) * | 2017-12-20 | 2023-01-24 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN109949854A (zh) * | 2017-12-20 | 2019-06-28 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN110148434A (zh) * | 2018-02-13 | 2019-08-20 | 三星电子株式会社 | 半导体存储器件、存储系统和操作半导体存储器件的方法 |
CN110148434B (zh) * | 2018-02-13 | 2024-03-08 | 三星电子株式会社 | 半导体存储器件、存储系统和操作半导体存储器件的方法 |
CN110764948B (zh) * | 2018-07-25 | 2023-06-20 | 爱思开海力士有限公司 | 数据存储装置、该数据存储装置的操作方法以及存储系统 |
CN110764948A (zh) * | 2018-07-25 | 2020-02-07 | 爱思开海力士有限公司 | 数据存储装置、该数据存储装置的操作方法以及存储系统 |
CN111081308A (zh) * | 2018-10-19 | 2020-04-28 | 奈奎斯特半导体有限公司 | 用于混合非易失性存储系统的系统和方法 |
CN111081308B (zh) * | 2018-10-19 | 2023-08-15 | 英韧科技(上海)有限公司 | 用于混合非易失性存储系统的系统和方法 |
CN111290705A (zh) * | 2018-12-06 | 2020-06-16 | 三星电子株式会社 | 包括现场可编程门阵列的存储器系统及其操作方法 |
CN111290705B (zh) * | 2018-12-06 | 2023-11-14 | 三星电子株式会社 | 包括现场可编程门阵列的存储器系统及其操作方法 |
CN112540719A (zh) * | 2019-09-23 | 2021-03-23 | 深圳宏芯宇电子股份有限公司 | 数据编码方法、存储器存储装置及存储器控制器 |
Also Published As
Publication number | Publication date |
---|---|
TW201133501A (en) | 2011-10-01 |
JP5698260B2 (ja) | 2015-04-08 |
EP2713274A2 (en) | 2014-04-02 |
CN102713855B (zh) | 2015-04-08 |
EP2713274A3 (en) | 2014-04-30 |
US20110154160A1 (en) | 2011-06-23 |
CN104657231B (zh) | 2017-11-17 |
EP2713274B1 (en) | 2017-04-26 |
EP2517107A1 (en) | 2012-10-31 |
EP2517107B1 (en) | 2014-01-22 |
CN104657231A (zh) | 2015-05-27 |
JP2013516000A (ja) | 2013-05-09 |
KR101727267B1 (ko) | 2017-05-02 |
US20110154158A1 (en) | 2011-06-23 |
US8533558B2 (en) | 2013-09-10 |
US8533564B2 (en) | 2013-09-10 |
KR20120107495A (ko) | 2012-10-02 |
WO2011087602A1 (en) | 2011-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102713855B (zh) | 在存储器设备处的控制数据的错误校正的系统和方法 | |
US9425828B2 (en) | Memory device and memory system | |
US8341501B2 (en) | Adaptive endurance coding of non-volatile memories | |
US8769374B2 (en) | Multi-write endurance and error control coding of non-volatile memories | |
US8458568B2 (en) | Systems and methods for memory devices | |
US7900118B2 (en) | Flash memory system and method for controlling the same | |
US8719677B2 (en) | Using ECC encoding to verify an ECC decode operation | |
CN104115126A (zh) | 使用代数码的多阶段ecc编码 | |
WO2009074978A2 (en) | Systems and methods for error correction and decoding on multi-level physical media | |
US10848184B2 (en) | Method for controlling storage device with aid of error correction and associated apparatus | |
CN102110481A (zh) | 具有ecc电路的半导体存储系统及其控制方法 | |
CN104246706A (zh) | 使用存储器特定奇偶校验矩阵的数据编码器和解码器 | |
US20180167088A1 (en) | Error-Correcting Code Method and System with Hybrid Block Product Codes | |
CN107710163B (zh) | 一次写入型存储器码的纠错码管理的电路、系统和方法 | |
CN109358978A (zh) | 一种基于极化码和元数据信息的nand flash差错控制方法 |
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 | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: texas Patentee after: DELPHI INT OPERATIONS LUX SRL Address before: texas Patentee before: Sandisk Corp. |