CN102023901B - 非易失性存储器装置、存储器控制器和存储器系统 - Google Patents
非易失性存储器装置、存储器控制器和存储器系统 Download PDFInfo
- Publication number
- CN102023901B CN102023901B CN201010275225XA CN201010275225A CN102023901B CN 102023901 B CN102023901 B CN 102023901B CN 201010275225X A CN201010275225X A CN 201010275225XA CN 201010275225 A CN201010275225 A CN 201010275225A CN 102023901 B CN102023901 B CN 102023901B
- Authority
- CN
- China
- Prior art keywords
- correcting code
- error correcting
- data
- ecc
- write
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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
- H03M13/356—Unequal error protection [UEP]
-
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
Abstract
在此公开了一种非易失性存储器装置,包括非易失性存储器部分、标准错误校正码处理部分、扩展错误校正码处理部分和控制部分。
Description
技术领域
本发明涉及每个具有错误校正功能的非易失性存储器装置、存储器控制器和存储器系统。
背景技术
非易失性存储器是可以以称为由多个字节或字组成的页的数据为单位存取的、并且在移除电力以后在其中保持数据的存储器。取决于这些特征,在以扇区为单位存取的存储系统中广泛地使用非易失性存储器。NAND闪存是代表性的非易失性存储器(NVM)。
近年来,与SRAM、SRAM和其他易失性随机存取存储器(RAM)一样可以字节或字为单位随机地存取的、并且即使掉电后也能保持数据的非易失性随机存取存储器(NVRAM)逐渐发展和商业化。FeRAM(铁电随机存取存储器)、PCRAM(相变随机存取存储器)和ReRAM(电阻随机存取存储器)是典型的NVRAM。
NVM使用错误校正码(ECC)来改进数据可靠性。需要高速ECC方案来最小化对存取速度的不利影响。一个这种ECC方案是能够一位错误校正和两位错误检测的扩展汉明码(Hamming code)。
需要NVRAM来提供与DRAM一样快速地以字节或字为单位的随机存取性能。由于这个原因,NVRAM的ECC需要构造允许以小存取单元为单位的很快速的错误校正的系统。
同时,校正错误的能力越高,ECC方案花费更长的时间来处理错误检测和校正,并且所涉及的代码大小越大。为了在NVM或NVRAM中维持连同数据一起的ECC,除了在存储器中的数据保留区域以外,需要留出冗余位区域。如此,为了使用具有更高的错误校正能力的ECC方案需要占用比以前更大容量的冗余位区域。
日本专利特开No.2008-192054公开了提供有错误校正功能的存储器系统。
在所引用的专利申请中公开的半导体存储器系统利用第一错误校正代码以及具有比第一错误校正代码更高的校正能力的第二错误校正代码。如果从读取的数据检测可由第一错误校正代码校正的错误,则使用第二错误校正代码来校正此后可能出现的任何错误,以便增强数据可靠性。
发明内容
但是,当错误校正系统提供更高的进行错误检测和校正的能力时,所涉及的代码大小变得相应地更大,并且花费更长时间来进行错误检测和校正处理。这导致存取性能的下降。
为了保持现有存取性能,可以通过减少要保护的数据的单元大小来相对地改进原样的错误校正能力。然而,这涉及相对于数据区域扩大冗余位区域的容量。假定其存储容量保持相同,则非易失性存储器装置将具有更小的区域来实际地容纳数据。
同时,在非易失性存储器中存储的数据在其中保持得越长,存储器劣化的程度越大,导致增加的位差错(corruption)。虽然劣化的趋势取决于被讨论的非易失性存储器的存储方法而变化,但是其存储器单元的数据重写的次数越大,则NAND闪存示意地趋于在数据保留特性上进一步劣化。使得NAND闪存来使数据保留特性更差的另一大因素是因为存储器单元存储用于数据存储的电荷,生产过程的正进行的小型化趋于减少要在每个存储器单元中累积的电荷。
根据在上面引用的专利文献中公开的技术,使用第一错误校正代码来在早期阶段中从频繁提取的数据中检测位差错,使用由第二错误校正代码加强的校正能力来防止数据错误。然而,位差错的检测趋于在数据不被存取长时间的情况下延迟。由于在位差错的提高,因此不能提取在切换到第二错误校正代码之前已经产生了不可由第一错误校正代码校正的错误的数据,作为此后的校正数据。此外,如在第一错误校正代码的情况下一样,因为使用第二错误校正代码对同一单元大小的数据进行错误校正,所以保持错误校正代码所需的冗余位区域的容量可能增加。
根据本发明的实施例,提供了一种非易失性存储器装置,包括:
非易失性存储器部分,配置为包括用于存储数据的数据区域、用于存储标准ECC的标准ECC区域和用于存储扩展ECC的扩展ECC区域;
标准ECC处理部分,配置为生成标准ECC,由此按每个存取单元对在所述数据区域中的数据进行错误校正处理;
扩展ECC处理部分,配置为生成扩展ECC,由此按每个所述存取单元的整数倍对在所述数据区域中的数据进行错误校正处理;以及
控制部分,配置为控制对所述非易失性存储器部分的存取,以及所述标准ECC处理部分和所述扩展ECC处理部分的处理,其中
所述控制部分包括,
标准ECC区域写功能,配置为当接收到写指令时,所述标准ECC区域写功能使得所述标准ECC处理部分从接收的数据按每个存取单元生成标准ECC,向所述非易失性存储器部分的所述数据区域写数据,并且向所述标准ECC区域写生成的标准ECC,
读功能,配置为当接收到读指令时,所述读功能从所述非易失性存储器部分的所述数据区域读数据,从所述标准ECC区域读标准ECC,使得所述标准ECC处理部分按每个存取单元进行读取数据的错误检测和校正,并且向外部发送校正的数据,
扩展ECC区域写功能,配置为当接收到外部指令时,所述扩展ECC区域写功能从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍组成的数据,并使得所述扩展ECC处理部分生成扩展ECC,以便向所述扩展ECC区域写所生成的扩展ECC,以及
功能,配置为当接收到外部指令时,所述功能从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍构成的数据,从所述扩展ECC区域读取扩展ECC,使得所述扩展ECC处理部分进行所述读取的数据的错误检测和校正,并且向外部发送校正的数据。
根据本发明的另一实施例,提供一种存储器控制器,包括:
控制部分,被配置以控制对非易失性存储器部分的存取,所述非易失性存储器部分包括用于存储数据的数据区域、用于存储标准ECC的标准ECC区域和用于存储扩展ECC的扩展ECC区域;
标准ECC处理部分,被配置以生成标准ECC,由此按每个存取单元对在所述数据区域中的数据进行错误校正处理;以及
扩展ECC处理部分,被配置以生成扩展ECC,由此按每个存取单元对在所述数据区域中的数据进行错误校正处理,其中
所述控制部分包括,
标准ECC区域写功能,配置为当接收到写指令时,所述标准ECC区域写功能使得所述标准ECC处理部分从接收的数据按每个存取单元生成标准ECC,向所述非易失性存储器部分的所述数据区域写数据,并且向所述标准ECC区域写生成的标准ECC,
读功能,配置为当接收到读指令时,所述读功能从所述非易失性存储器部分的所述数据区域读数据,从所述标准ECC区域读标准ECC,使得所述标准ECC处理部分按每个存取单元进行读取数据的错误检测和校正,并且向外部发送校正的数据,
扩展ECC区域写功能,配置为当接收到外部指令时,所述扩展ECC区域写功能从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍组成的数据,并使得所述扩展ECC处理部分生成扩展ECC,以便向所述扩展ECC区域写所生成的扩展ECC,以及
功能,配置为当接收到外部指令时,所述功能从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍构成的数据,从所述扩展ECC区域读取扩展ECC,使得所述扩展ECC处理部分进行所述读取的数据的错误检测和校正,并且向外部发送校正的数据。
根据本发明的另一实施例,提供一种存储器控制器,包括:
控制部分,配置为控制对非易失性存储器部分的存取,所述非易失性存储器部分包括用于存储数据的数据区域、用于存储标准ECC的标准ECC区域和用于存储扩展ECC的扩展ECC区域;
标准ECC处理部分,配置为生成标准ECC,由此按每个存取单元对在所述数据区域中的数据进行错误校正处理;以及
扩展ECC处理部分,配置为生成扩展ECC,由此按每个所述存取单元的整数倍对在所述数据区域中的数据进行错误校正处理,其中
所述控制部分包括,
标准ECC区域写功能,配置为当接收到写指令时,所述标准ECC区域写功能使得所述标准ECC处理部分从所接收的数据按每个存取单元生成标准ECC,向所述非易失性存储器部分的所述数据区域写数据,并且向所述标准ECC区域写所生成的标准ECC,
功能,配置为当接收到读指令时,所述功能从所述非易失性存储器部分的所述数据区域读取数据,从所述标准ECC区域读取标准ECC,使得所述标准ECC处理部分按每个存取单元进行读取的数据的错误检测和校正,并且向外部发送校正的数据,
扩展ECC区域写功能,配置为当接收到外部指令时,所述扩展ECC区域写功能从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍组成的数据,并使得所述扩展ECC处理部分生成扩展ECC,以便向所述扩展ECC区域写所生成的扩展ECC,以及
功能,配置为当接收到外部指令时,所述功能从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍构成的数据,从所述扩展ECC区域读取扩展ECC,使得所述扩展ECC处理部分进行读取的数据的错误检测和校正,并且向外部发送校正的数据。
根据本发明的另一实施例,提供一种存储器系统,包括:
非易失性存储器部分,配置为包括用于存储数据的数据区域、用于存储标准ECC的标准ECC区域和用于存储扩展ECC的扩展ECC区域;
标准ECC处理部分,配置为生成标准ECC,由此按每个存取单元对在所述数据区域中的数据进行错误校正处理;
扩展ECC处理部分,配置为生成扩展ECC,由此按每个存取单元的整数倍对数据进行错误校正处理;
存储器控制器,配置为控制对所述非易失性存储器部分的存取,以及所述标准ECC处理部分和所述扩展ECC处理部分的处理;以及
主机设备,配置为至少向所述存储器控制器发出写和读指令,其中
所述存储器控制器包括,
标准ECC区域写功能,配置为当从所述主机设备接收到所述写指令时,所述标准ECC区域写功能使得所述标准ECC处理部分从所接收的数据按每个存取单元生成标准ECC,向所述非易失性存储器部分的所述数据区域写数据,并且向所述标准ECC区域写所生成的标准ECC,
读功能,配置为当从所述主机设备接收到读指令时,所述读功能从所述非易失性存储器部分的所述数据区域读取数据,从所述标准ECC区域读取标准ECC,使得所述标准ECC处理部分按每个存取单元对读取的数据进行错误检测和校正,并且向外部发送校正的数据,
扩展ECC区域写功能,配置为当从所述主机设备接收到指令时,所述扩展ECC区域写功能从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍组成的数据,并使得所述扩展ECC处理部分生成扩展ECC,以便向所述扩展ECC区域写所生成的扩展ECC,以及
功能,配置为当从所述主机设备接收到指令时,所述功能从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍构成的数据,从所述扩展ECC区域读取扩展ECC,使得所述扩展ECC处理部分进行读取的数据的错误检测和校正,并且向外部发送校正的数据。
根据上述实施的本发明,使用扩展ECC校正使用标准ECC不能校正的错误,以便增强实施例校正存储了延长时间段的数据中的错误的能力。通常,采用标准ECC来最小化存取NVM和NVRAM用于读和写操作的性能任何下降。实施例配备有用于指定长期保留所需的数据的装置,并且向由多个数据单元组成的数据应用扩展ECC以便最小化存储扩展ECC的冗余位区域的增加。
附图说明
图1是示出构成本发明的第一实施例的、并且包括根据本发明的非易失性存储器装置的存储器系统的配置例子的示意图;
图2是用于在第一实施例的情况下使用的标准和扩展ECC的示意图说明;
图3是示出作为第一实施例的部分的标准/扩展ECC生成块的第一组成例子的示意图;
图4是示出作为第一实施例的部分的标准/扩展ECC生成块的第二组成例子的示意图;
图5是示出作为第一实施例的部分的标准/扩展ECC检测/校正部分的组成例子的示意图;
图6是第一实施例的存储器控制器在接收到写命令SYS_WRITE时如何操作的流程图说明;
图7是第一实施例的存储器控制器在接收到扩展ECC设置命令EECC_SET时如何操作的流程图说明;
图8是第一实施例的存储器控制器在接收有有效扩展ECC设置选项OPT_ESET的写命令SYS_WRITE时如何实际地操作的流程图说明;
图9是示出要存储在扩展ECC区域中的扩展ECC的典型格式的示意图;
图10是第一实施例的存储器控制器在接收到读命令SYS_READ时如何操作的流程图说明;
图11是在使用产品码作为扩展ECC的情况下如何加强错误校正能力的示意图说明;
图12是在使用多个错误校正码作为扩展ECC的情况下如何加强错误校正能力的示意图说明;
图13是第一实施例的存储器控制器在接收到扩展ECC清除命令时如何操作的流程图说明;
图14是示出构成本发明的第二实施例、并且包括根据本发明的非易失性存储器装置的存储器系统的配置例子的示意图;
图15是第二实施例的存储器控制器在接收到读命令SYS_READ时如何操作的流程图说明;
图16是示出构成本发明的第三实施例、并且包括根据本发明的非易失性存储器装置的存储器系统的配置例子的示意图;
图17A和17B是传送扩展ECC设置命令EECC_SET的主机设备和接收所传送的命令的存储器控制器如何操作作为第三实施例的部分的流程图说明;
图18是第三实施例的主机设备在读取数据时如何操作的流程图说明;
图19是示出构成本发明的第四实施例、并且包括根据本发明的非易失性存储器装置的存储器系统的配置例子的示意图;
图20是示出构成本发明的第五实施例、并且包括根据本发明的非易失性存储器装置的存储器系统的配置例子的示意图;
图21是示出构成本发明的第六实施例、并且包括根据本发明的非易失性存储器装置的存储器系统的配置例子的示意图;以及
图22是示出构成本发明的第七实施例、并且包括根据本发明的非易失性存储器装置的存储器系统的配置例子的示意图。
具体实施方式
现在将参考附图在以下标题下描述本发明的优选实施例:
1.第一实施例(存储器系统的第一配置例子)
2.第二实施例(存储器系统的第二配置例子)
3.第三实施例(存储器系统的第三配置例子)
4.第四实施例(存储器系统的第四配置例子)
5.第五实施例(存储器系统的第五配置例子)
6.第六实施例(存储器系统的第六配置例子)
7.第七实施例(存储器系统的第七配置例子)
<1.第一实施例>
图1是示出构成本发明的第一实施例、并且包括根据本发明的非易失性存储器装置的存储器系统10的配置例子的示意图。
作为构成作为第一实施例的存储器系统10的部分的非易失性存储器装置的例子,存在两个存储器类型:诸如可以仅以由几百到几千字节组成的页为单位存取的NAND闪存的非易失性存储器(NVM),以及可以以字节或字为单位存取的非易失性随机存取存储器(NVRAM)。以下说明的是涉及允许数据被重新写入到其中而不被指令为清除其内容的非易失性随机存取存储器(NVRAM)的例子。
存储器系统10是由主机设备100、存储器控制器200和非易失性存储器300构成的。非易失性存储器300构成作为在所附权利要求中描述的实施例的部分的非易失性存储器部分。
作为本发明的第一实施例的存储器系统10包括在NVRAM中将标准ECC添加到与字节或字一样小的每个数据单元的功能,以及每整数个由主机设备100选择的数据的存取单元设置扩展ECC的功能。存储器系统10还包括如果在使用标准ECC的数据读出时不能校正错误则使用扩展ECC来校正错误的功能。在第一实施例的存储器系统10中,存储器控制器200进行标准和扩展ECC处理。
以下说明主机设备100、存储器控制器200和非易失性存储器300的组件。
构造主机设备100包括CPU 101和主机接口部分102。
CPU 101具有向存储器控制器200发出各种命令的如下功能:
CPU 101发出数据写命令SYS_WRITE并通过主机接口部分102向存储器控制器200发送所发出的命令以及写数据。数据写命令SYS_WRITE包括提供将扩展ECC的设置指定到正被写的数据的另外的操作模式的选项OPT_ESET。
CPU 101还发出数据读命令SYS_READ并向存储器控制器200发送所发出的命令,以便通过主机接口部分102从其接收读数据。所接收的数据经过使用标准ECC的错误校正。数据读命令SYS_READ包括提供其中指定ECC校正的数据的写回(write-back)的另外的操作模式的选项OPT_OWRTB。
CPU 101还发出用于生成和存储扩展ECC的扩展ECC设置命令EECC_SET,并通过主机接口部分102向存储器控制器200发送所发出的命令以及所关心的数据的起始地址。如果已经向其设置了扩展ECC的数据在数据读出时产生了不能使用标准ECC校正的错误,则使用扩展ECC来校正错误。
CPU 101还发出扩展ECC读命令EECC_GET,并通过主机接口部分102向存储器控制器200发送所发出的命令以及所关心的数据的起始地址,以便从其接收已经被设置的扩展ECC信息。
CPU 101还发出扩展ECC清除命令EECC_CLR,并通过主机接口部分102向存储器控制器200发送所发出的命令以及要清除的数据的起始地址。
应该注意,所关心的数据的起始地址用于指定扩展ECC块230。
存储器控制器200包括主机接口部分201、非易失性存储器控制部分202、数据缓冲器部分203和存储器接口部分204。非易失性存储器控制部分202构造为包括控制单元205和标准/扩展ECC处理单元206。标准/扩展ECC处理单元206具有标准ECC处理单元和扩展ECC处理单元两者的功能。
主机接口部分201从主机设备100接收命令,并通知非易失性存储器控制部分202该接收的命令。
非易失性存储器控制部分202的控制单元205解码从主机设备100接收的命令,并相应地进行处理。在这种情况下,控制单元205通过存储器接口部分204向非易失性存储器300发出以下描述的命令。
控制单元205发出写命令MEM_WRITE,并通过存储器接口部分204向非易失性存储器300发送所发出的命令以及写命令。
控制单元205还发出读命令MEM_READ,并通过存储器接口部分204向非易失性存储器300发送所发出的命令,以便从其接收读数据。
控制单元205还发出扩展ECC写命令EECC_WRITE,并通过存储器接口部分204向非易失性存储器300发送所发出的命令以及要被写入存储器300的扩展ECC区域的写数据。
控制单元205还发出扩展ECC读命令EECC_READ,并通过存储器接口部分204向非易失性存储器300发送所发出的命令,以便接收从存储器300的扩展ECC区域读取的数据。
如果发现从主机设备100接收的命令SYS_READ具有为校正的数据的写回设置的选项OPT_OWRTB,则控制单元205发出随后有命令MEM_WRITE或EECC_WRITE的命令MEM_READ,以向非易失性存储器300写回使用标准或扩展ECC校正的数据。
数据缓冲器部分203临时存储通过主机接口部分201从主机设备100接收的写数据。数据缓冲器部分203还临时存储由控制单元205通过存储器接口部分204从非易失性存储器300读取的数据。
图2是用于在第一实施例的情况下使用的标准和扩展ECC的示意图说明。以下参考图2来说明标准/扩展ECC处理单元206的基本功能。在图2中,从系统到NVM的存取的单元被称为页。对于NVRAM,页由单个字节或字组成;对于NAND闪存,该页与构成写的单元的页一致。具有标准ECC的存取单元被写入具有标准ECC 215的页210。假设整数(n)个存取单元构成扩展ECC块230。扩展ECC块230的最后页220是写入用于保护该页的扩展ECC 220和标准ECC 225的扩展ECC区域。例如,在NAND闪存的情况下,扩展ECC块230与要被清除的块一致。
标准/扩展ECC处理单元206对页PG0到PGn-2的每个页数据210生成标准ECC,并如图2所示向每个页添加所生成的标准ECC。该数据以页为单位输出和写到非易失性存储器(NVM)300。
当生成扩展ECC时,标准/扩展ECC处理单元206从非易失性存储器300读出多达(n-1)页的页数据210、即n页减去用于扩展ECC块230的扩展ECC的页220。
标准/扩展ECC处理单元206在向扩展ECC处理部分输入(n-1)页的页数据210减去标准ECC以生成扩展ECC之前,将读数据经过标准ECC处理部分用于错误检测和校正。标准/扩展ECC处理单元206在向非易失性存储器300输出扩展ECC之前,再次向标准ECC处理部分输入所生成的扩展ECC,以给它补充标准ECC数据。最终被写到非易失性存储器300的是扩展ECC块230的最后页220加上用于该页的标准ECC 225。
另外,当要同时生成标准和扩展ECC时,标准/扩展ECC处理单元206首先向构成总共(n-1)页的写数据的页数据210的每页添加标准ECC 215,并向非易失性存储器300输出数据以及每页添加的标准ECC 215用于在其中存储。并行地,标准/扩展ECC处理单元206在输入上述(n-1)页的页数据的同时,生成扩展ECC 220。在向非易失性存储器300写页PGn-2的页数据210和对应的标准ECC 215之后,标准/扩展ECC处理单元206向扩展ECC 220添加标准ECC数据225以组成一页数据。该一页数据被输出到非易失性存储器300,使得将向其写数据作为扩展ECC块230的最后页220。
标准/扩展ECC处理单元206进行标准和扩展ECC的生成以及错误校正和检测。在检测到错误时,标准/扩展ECC处理单元206在数据缓冲器部分203中校正错误,并向主机设备100输出校正的数据。
以下参考图3到图5说明的是在标准/扩展ECC处理单元206中的标准/扩展ECC生成块和标准/扩展ECC检测/校正部分的组成例子。
图3是示出作为第一实施例的部分的标准/扩展ECC生成块240的第一组成例子的示意图。在图3中,标准/扩展ECC生成块240包括标准ECC生成部分241、标准ECC检测/校正部分242、扩展ECC生成部分243和选择器(SEL)244。
在标准/扩展ECC生成块240中,写数据通过选择器244输入到标准ECC生成部分241。通过标准ECC 215添加到页数据210以构成一页数据,则数据被输出并被写入非易失性存储器(NVM)300。如果设置扩展ECC用于标准/扩展ECC生成块240,则从非易失性存储器(NVM)300读取扩展ECC块230的所有页数据210以及其标准ECC 215。
在标准ECC检测/校正部分242的错误检测和校正之后,(n-1)页的页数据210减去标准ECC 215被输入到扩展ECC生成部分243。然后,由扩展ECC生成部分243生成的扩展ECC 220通过选择器244被输入到标准ECC生成部分241。
标准ECC生成部分241在向非易失性存储器(NVM)300输出数据之前,向扩展ECC 220添加标准ECC数据225。输出的数据被写入非易失性存储器300作为扩展ECC块230的最后页。
图4是示出作为第一实施例的部分的标准/扩展ECC生成块的第二组成例子的示意图。图4中的标准/扩展ECC生成块240A由图3中的标准/扩展ECC生成块240的组件加上选择器(SEL)245组成。选择器245选择数据输入线或标准ECC检测/校正部分242的输出,用于输入到扩展ECC生成部分243。
在标准/扩展ECC生成块240A中,写数据通过选择器244被输入到标准ECC生成部分241。通过标准ECC 215被添加到页数据210以构成一页的数据,则数据被输出并被写入非易失性存储器(NVM)300。在设置扩展ECC用于标准/扩展ECC生成块240A的情况下,从非易失性存储器(NVM)300读取扩展ECC块的所有页数据210以及其标准ECC 215。
在标准ECC检测/校正部分242的错误检测和校正之后,(n-1)页的页数据210减去标准ECC 215通过选择器245被输入到扩展ECC生成部分243。由扩展ECC生成部分243生成的扩展ECC 220通过选择器244被输入到标准ECC生成部分241。
标准ECC生成部分241在向非易失性存储器(NVM)300输出数据之前,向扩展ECC 220添加标准ECC数据225。输出的数据被写入非易失性存储器300作为扩展ECC块230的最后页。
在同时设置页数据210、标准ECC 215和扩展ECC 220的情况下,(n-1)页的写数据通过选择器244被输入到标准ECC生成部分241。在标准ECC 215被添加到页数据219以构成一页的数据的情况下,该数据被输出并被写到非易失性存储器(NVM)300。
同时,(n-1)页的页数据210也通过选择器245被输入到扩展ECC生成部分243。由扩展ECC生成部分243生成的扩展ECC 220通过选择器244被输入到标准ECC生成部分241。扩展ECC 220被补充了标准ECC数据225,以形成扩展ECC块230的一页数据。然后,该输入被输出到非易失性存储器300并被写到其中,作为扩展ECC块230的最后页。
图5是示出作为第一实施例的部分的标准/扩展ECC检测/校正部分的组成例子的示意图。图5中的ECC检测/校正块250包括标准ECC检测/校正部分251、扩展ECC检测/校正252和选择器(SEL)253。
在ECC检测/校正块250中,从非易失性存储器(NVM)300读取的页数据210和标准ECC 215被输入到标准ECC检测/校正部分251。在由标准ECC检测/校正部分251的错误检测和校正之后,数据通过选择器253被输出到主机设备100。
在要设置扩展ECC的情况下,从非易失性存储器(NVM)300读取的所有页数据210和其标准ECC 215被输入到扩展ECC检测/校正部分252。然后,(n-1)页的校正的页数据210减去标准ECC 215被输入到扩展ECC检测/校正部分252。在由扩展ECC检测/校正部分252的错误检测和校正之后,范围从页PG0到页PGn-2的页数据通过选择器253被输出到主机设备100。
由标准ECC检测/校正部分251从其检测不出错误的页数据210和由此已经校正了任何错误的页数据210可以被输出到主机设备100,而不经过使用扩展ECC 220的错误检测。
存储器控制器200的存储器接口部分204将来自非易失性存储器控制部分202的命令在将它们发送到非易失性存储器300之前转换为存储器接口协议。
存储器控制器200管理三个区域:范围从页0到页n-2的扩展ECC块230存在的数据区域303;页0到页n-1的标准ECC 215和225存在的标准ECC区域304;以及最后页n-1的扩展ECC 220存在的扩展ECC区域305。扩展ECC块230的最后页220具有诸如图9所示的格式。存储器控制器200取决于扩展ECC有效性标记FLEEV 402的值,来确定是否已经设置了最后页n-1的扩展ECC 220。
非易失性存储器300由存储器接口部分301、存储器单元阵列302、数据区域303、标准ECC区域304、扩展ECC区域305和控制部分306构成。构成非易失性存储器部分的存储器单元阵列302被构造以包括数据区域303、标准ECC区域304和扩展ECC区域305。经由存储器接口部分301存取非易失性存储器部分,作为具有多个扩展ECC块230的地址空间。
存储器接口部分301从存储器控制器200接收存取请求,并通知其控制部分306。根据所接收的存取请求,控制部分306通过适当地控制存储器单元阵列302来写或读数据。
现在将描述主机设备100、存储器控制器200和非易失性存储器300的工作。首先说明的是向非易失性存储器300写数据的数据写处理。图6是第一实施例的存储器控制器200在接收到写命令SYS_WRITE时如何操作的流程图说明。
存储器控制器200通过主机接口部分201接收命令SYS_WRITE以及写数据,并通知在其非易失性存储器控制部分202中的控制单元205。控制单元205解码所接收的命令,确定已经接收了命令SYS_WRITE,并接收写数据(在步骤ST1中)。然后,标准/扩展ECC处理单元206生成要被添加到数据210的每个存取单元的标准ECC 215(在步骤ST2中)。
控制单元205继续使用扩展ECC有效性标记FLEEV 402来确定扩展ECC220关于要写数据的地址是否有效(在步骤ST3中)。如果发现扩展ECC 220有效,则控制单元205向非易失性存储器发送命令EECC_WRITE,并清除标记FLEEV 402(在步骤ST4中)。
随后,控制单元205通过存储器接口部分204向非易失性存储器300发送写命令MEM_WRITE以及页数据210和在数据缓冲器部分203中保持的标准ECC 215(在步骤ST5中)。
接下来说明的是设置用于非易失性存储器300的扩展ECC的扩展ECC设置处理。图7是第一实施例的存储器控制器200在接收到扩展ECC设置命令EECC_SET时如何操作的流程图说明。
主机设备100图示地设置扩展ECC用于要在非易失性存储器300中存储长时间段的数据,以便改进数据保留特性。主机设备100从在非易失性存储器300中的数据中选择要对其设置扩展ECC的扩展ECC块230,并向存储器控制器200发送所选扩展ECC块230的起始地址,作为扩展ECC设置命令EECC_SET的变量。
存储器控制器200通过主机接口部分201接收扩展ECC设置命令EECC_SET,并通知在其非易失性存储器控制部分202中的控制单元205。控制单元205解码所接收的命令,并确定已经接收了命令EECC_SET。使用命令MEM_READ,控制单元205从非易失性存储器300向数据缓冲器部分203中相继读取要由扩展ECC保护的扩展ECC块230的数据210以及标准ECC215(在步骤ST11中)。在这种情况下,进行基于标准ECC的错误检测和校正处理(在步骤ST12中)。
从在数据缓冲器部分203中的数据中,标准/扩展ECC处理单元206生成扩展ECC 220。控制单元205将扩展ECC有效性标记FLEEV 402设置到扩展ECC 220(在步骤ST13中)。标准/扩展ECC处理单元206关于扩展ECC220生成标准ECC 225(在步骤ST14中)。控制单元205通过存储器接口部分204向非易失性存储器300输出扩展ECC写命令EECC_WRITE、扩展ECC220和标准ECC 225(在步骤ST15中)。
以下说明的是当在数据被写到非易失性存储器300的同时设置扩展ECC时会发生什么。图8是第一实施例的存储器控制器200在接收其选项OPT_ESET置为有效的写命令SYS_WRITE时如何操作来同时设置扩展ECC的流程图说明。
主机设备100向存储器控制器200发送设置其选项OPT_ESET的数据写命令SYS_WRITE以及写数据。在存储器控制器200中,主机接口部分201将命令SYS_WRITE和写数据接收到数据缓冲器部分203中,并且通知在其非易失性存储器控制部分202中的控制单元205。
控制单元205确定已经接收了命令SYS_WRITE(在步骤ST21中)。标准/扩展ECC处理单元206在并行地生成扩展ECC的同时生成每个存取单元要被添加的标准ECC(在步骤ST22中)。控制单元205向非易失性存储器300输出写命令MEM_WRITE以及在数据缓冲器部分203中保持的数据210和标准215(在步骤ST23中)。
在进行直到扩展ECC块230的页n-2的上述处理(在步骤ST24中)之后,控制单元205将标记FLEEV 402设置到所生成的扩展ECC 220(在步骤ST25中)。标准/扩展ECC处理单元206进一步关于扩展ECC 225生成标准ECC 225(在步骤ST26中)。然后,控制单元205通过存储器接口部分204向非易失性存储器300输出写命令EECC_WRITE以及在数据缓冲器部分203中保持的扩展ECC 220和标准ECC 225(在步骤ST27中)。
图9是示出要存储在扩展ECC区域中的扩展ECC的典型格式的示意图。图9中的扩展ECC 400由三个字段构成:指示要由扩展ECC保护的扩展ECC块230的物理地址字段401、扩展ECC有效性标记字段FLEEV 402和扩展ECC字段403。
以下说明如何从非易失性存储器300读取数据。图10是第一实施例的存储器控制器200在接收到读命令SYS_READ时如何操作的流程图说明。
主机设备100向存储器控制器200发送数据读命令SYS_READ。在从主机设备100接收读命令SYS_READ时,存储器控制器200的主机接口部分201通知在其非易失性存储器控制部分202中的控制单元205。控制单元205解码所接收的命令,确定已经接收了读命令SYS_READ,并通过存储器接口部分204向非易失性存储器300发送读命令MEM_READ。
控制单元205通过存储器接口部分204向数据缓冲器部分203发送数据210和标准ECC 215。标准/扩展ECC处理单元206使用标准ECC执行错误检测处理来校正在数据缓冲器部分203中的数据的任何错误(在步骤ST33中)。
如果在步骤ST33中没有检测到错误,或如果发现在步骤ST33中所检测的错误可使用标准ECC校正,则控制单元205通过主机接口部分201向主机设备发送在数据缓冲器部分203中保持的数据210(在步骤ST34中)。
如果在步骤ST33中发现使用标准ECC不可校正所检测的错误,则控制单元205检查扩展ECC有效性标记FLEEV 402的值(在步骤ST35中)。如果在步骤ST35中,发现标记FLEEV 403已经被清除,这意味着未设置扩展ECC。在这种情况下,控制单元205在终止该处理之前进行错误处理(在步骤ST42中)。
如果在步骤ST35中发现标记FLEEV 402被设置,则使用命令MEM_READ的控制单元205从非易失性存储器300向数据缓冲器部分203中接收扩展ECC块230的所有页(在步骤ST36中)。在这种情况下,使用标准ECC进行错误校正处理,将由标准ECC不可校正的任何错误不校正地接收到数据缓冲器部分203中(在步骤ST37中)。
控制单元205使用命令EECC_READ读取扩展ECC 220和标准ECC 225(在步骤ST38中)。标准/扩展ECC处理单元206使用标准ECC 225进行扩展ECC错误校正处理(在步骤ST39中),并且使用扩展ECC 220对数据缓冲器部分203进行数据错误检测和校正处理(在步骤ST40中)。在该步骤中,使用扩展ECC来校正由标准ECC不可校正的数据。
如果在步骤ST41中没有发现不可由扩展ECC校正的错误,则控制单元205通过主机接口部分201向主机设备100发送在数据缓冲器部分203中保持的所校正的数据(在步骤ST34中)。如果在步骤ST42中发现甚至不可由扩展ECC校正的任何错误,则控制单元205进行错误处理(在步骤ST42中),并且终止该处理。
在步骤ST34中的处理之后,控制单元205确定是否在来自主机设备100的读命令SYS_READ中设置校正数据写回选项OWETB(在步骤ST43中)。如果发现选项被设置,则控制单元205使用命令MEM_WRITE和EECC_WRITE将数据缓冲器部分203中保持的校正数据写回非易失性存储器300(在步骤ST44中)。
以下说明的是其中使用产品码作为扩展ECC的具体例子,随后的其中使用多个错误校正码作为扩展ECC的另一例子,每个例子示出实际上由扩展ECC来校正不可由标准ECC校正的数据。图11是如何使用产品码作为用于错误检测和校正的扩展ECC的示意图说明,并且图12是如何使用多个错误校正码作为用于错误检测和校正的扩展ECC的示意图说明。
以下参考图11首先说明如何使用产品码作为扩展ECC。使用产品码作为扩展ECC涉及在两个方向上阵列的数据块的行和列方向的每个中计算ECC,并且重复在行和列方向中的校正来在每个方向上校正错误。
图11示出了可以在行和列的每个中校正一个错误的例子。在行方向上的ECC被存储在标准ECC区域中,并且在列方向上的ECC被保持在扩展ECC区域中。在普通存取时,只使用对应于标准ECC的每行的方向上的ECC。扩展ECC是行-方向ECC与列-方向ECC的组合,并且行-方向ECC的值与标准ECC的值一致,使得不需要在扩展ECC区域中存储扩展ECC。
在要读取行R0的情况下,发现行R0已经出现了两个错误E0和E1,并且因此不能使用对应于该行的标准ECC校正(状态STS0)。在这种情况下,使用扩展ECC在从列C0到列Cn的列方向中进行错误校正。这使用列-方向ECC来校正错误E0。然而,该校正无法处理已经在列Cn-1中出现的两个错误(状态STS1)。返回到在行方向中的行R0的读取进入在该行中的仅一个错误E1。此时,使用行-方向的ECC来进行校正,以校正在行R0中的所有错误(状态STS2)。因此,正确地读取行R0的数据。
如所描述的,基于产品码的错误校正方案的特征在于,即使在初始状态(即、状态STS0)中错误校正不可用,在行和列方向中重复校正以便校正所有错误。在第一实施例的情况下,分别使用标准ECC和扩展ECC来处理行-方向ECC和列-方向ECC。即使在行和列方向中使用相同错误校正方案,也加强错误校正能力。这提供了生成标准和扩展ECC并且也进行错误校正处理的单个电路的优点。
接下来参考图12说明如何使用多个错误校正码作为扩展ECC。图12是其中使用能够单个错误校正的汉明码作为标准ECC,同时使用能够四倍错误校正的BCH码作为扩展ECC的例子。
在要读取行R0的情况下,发现该行出现了三个错误,使得不能使用标准ECC来校正该行的数据(状态STS10)。在该情况下,读出要由扩展ECC保护的数据。因为每次在单个行中发现除了行R0的那些错误的所有错误,所以使用标准ECC来校正这些错误(状态STS1)。
由扩展ECC保护的数据具有三个错误。由于扩展ECC能够四倍错误校正,所以可以使用扩展ECC来校正这三个错误(状态STS12)。
如所描述的,扩展ECC 220被附加到每个扩展ECC块230。该布置允许仅使用标准ECC 215不能校正的错误的校正。
现在将描述如何清除由主机设备100设置的扩展ECC。图13是第一实施例的存储器控制器200在接收扩展ECC清除命令EECC_CLR时如何操作的流程图说明。
主机设备100向存储器控制器200发送扩展ECC清除命令EECC_CLR。在接收该命令时,存储器控制器200的主机接口部分201通知在其非易失性存储器控制部分202中的控制单元205。控制单元205解码所接收的命令,并且确定已经接收了扩展ECC清除命令EECC_CLR。
控制单元205准备已经从其中清除了扩展ECC有效性标记FLEEV 402的数据(在步骤ST51中)。控制单元205通过存储器接口204向非易失性存储器300发送扩展ECC写命令EECC_WRITE,由此清除在扩展ECC区域305的扩展ECC块中的指定的扩展ECC(在步骤ST52)。
<2.第二实施例>
图14是示出构成本发明的第二实施例、并且包括根据本发明的非易失性存储器装置的存储器系统10A的配置例子的示意图。第二实施例的存储器系统10A与第一实施例的存储器系统10的不同之处在于以下方面:
在第一实施例的存储器系统10中,存储器控制器200处理标准和扩展ECC两者。在第二实施例的存储器系统10A中,相反,由非易失性存储器300A来处理标准ECC。
因此,在存储器系统10A中存储器控制器200A的非易失性存储器控制部分202A包括替代第一实施例的标准/扩展ECC处理单元的扩展ECC处理单元207。非易失性存储器300A包含由控制部分306控制的数据缓冲器部分307和标准ECC处理部分308。
如在第一实施例的情况下,第二实施例的主机设备100向存储器控制器发出命令SYS_WRITE、SYS_READ、EECC_SET、EECC_GET和EECC_CLR。
在第二实施例中,非易失性存储器300A包括三个功能:生成标准ECC的功能、使用标准ECC进行错误检测和校正的功能、以及通知存储器控制器200A不可由标准ECC校正的任何错误的功能。
存储器控制器200A向非易失性存储器300A发出命令MEM_WRITE、MEM_READ、EECC_READ和EECC_WRITE,但不像第一实施例中那样,在向其数据转移时不向数据添加标准ECC。更具体地,在使用命令MEM_WRITE的数据写时,存储器控制器200A不将标准ECC包括在所接收的数据中。非易失性存储器300A内部地向数据添加标准ECC用于在其中存储。在使用命令MEM_READ的数据读取时,非易失性存储器200A向存储器控制器200A发送由标准ECC校正的数据。
当使用命令EECC_WRITE来存储扩展ECC时,在所接收的扩展ECC信息中不包括标准ECC。非易失性存储器300A向扩展ECC信息内部地添加标准ECC用于在其中存储。当使用命令EECC_READ读取扩展ECC时,非易失性存储器300A向存储器控制器200A发送由标准ECC校正的扩展ECC。
随后是当使用命令MEM_WRITE来写数据时非易失性存储器300A如何生成标准ECC和在使用命令MEM_READ来读取数据时非易失性存储器300A如何进行错误检测和校正的说明。
当使用命令MEM_READ向非易失性存储器300A写数据时,非易失性存储器300A通过存储器接口部分301接收该命令,通知其控制部分306,并且将写数据接收到数据缓冲器部分307中。控制部分306解码该命令,确定该命令为MEM_WRITE,从在数据缓冲器部分307中保持的写数据中创建标准ECC,将数据写到数据区域303,并将标准ECC写到标准ECC区域304。
当使用命令MEM_READ从非易失性存储器300A读取数据时,非易失性存储器300A通过存储器接口部分301接收该命令,并且通知其控制部分306。控制部分306解码该命令,确定该命令为MEM_READ,从数据区域303和标准ECC区域304中读取数据到数据缓冲器部分307中,使得标准ECC处理部分进行数据的错误检测和校正,并且通过存储器接口部分301向存储器控制器200A发送数据。如果检测到任何不可校正的错误,则控制部分306通知其存储器控制器200A,并通过存储器接口部分301向存储器控制器200A发送未校正的数据。
以下描述的是当使用命令SYS_READ来读取数据时存储器控制器200A如何工作。图15是第二实施例的存储器控制器200A在接收命令SYS_READ时如何操作的流程图说明。在步骤ST32A、ST33A、T37A和ST39A发生的与在图10中示出流程图的第一实施例的可比较处理不同。其他步骤与第一实施例相同。
在第二实施例的情况下,在步骤ST32A、ST37A和ST39A中接收由标准ECC校正的数据。在步骤ST33A中,存储器控制器200A从非易失性存储器300A接收指示是否发生了不可由标准ECC校正的错误的信息,并且确定是否进行扩展ECC处理。如果在非易失性存储器300A中的标准ECC处理部分中发现该数据出现了不可校正的错误,则未校正的数据被输出到存储器控制器200A。
<3.第三实施例>
图16是示出构成本发明的第三实施例、并且包括根据本发明的非易失性存储器装置的存储器系统10B的配置例子的示意图。第三实施例的存储器系统10B与第一实施例的存储器系统10的不同之处在于以下方面:
在第一实施例的存储器系统10中,存储器控制器200处理标准和扩展ECC。在第三实施例的存储器控制器10B中,相反,由存储器控制器200B处理标准ECC,并且由主机设备100B处理扩展ECC。
因此,在存储器系统10B中存储器控制器200B的非易失性存储器控制部分202B包括替代标准/扩展ECC处理单元的扩展ECC处理单元208。主机设备100B包含由CPU 101控制的扩展ECC处理部分103。
可以使用硬件或软件来实现主机设备100B的扩展ECC处理部分103。
在第三实施例中,主机设备100B包括生成扩展ECC的功能和使用扩展ECC进行错误检测和校正的功能。主机设备100B向存储器控制器200B发送命令SYS_WRITE、SYS_READ、EECC_SET、EECC_GET和EECC_CLR。不像第一实施例中,主机设备100B发出这些命令不仅用于数据存取,还用于扩展ECC处理。
通过使用命令SYS_WRITE的写操作与第一实施例的相同。在基于命令SYS_READ的读操作的情况下,存储器控制器200B具有给出通知已经出现了不可由标准ECC校正的错误的功能,不像第一实施例中。在从存储器控制器200B接收不可由标准ECC校正的错误时,主机设备100B使用命令SYS_READ读取扩展ECC块230的页数据210,并且使用扩展ECC进行错误校正。
使用命令EECC_SET来设置扩展ECC。不像第一实施例,主机设备100B向非易失性存储器200B发送命令EECC_SET以及以图9所示的格式的扩展ECC。
以与第一实施例相同的方式来使用命令EECC_GET读取扩展ECC。以与第一实施例相同的方式来使用命令EECC_CLR清除扩展ECC。
存储器控制器200B以与第一实施例相同的方式向非易失性存储器300发出命令MEM_WRITE、MEM_READ、EECC_WRITE和EECC_READ。
以下描述的是当进行命令EECC_SET和SYS_READ时的第三实施例的操作特征。图17A和17B是主机设备100B和存储器控制器200B在处理命令EECC_SET时如何操作作为第三实施例的部分的流程图说明。图17示出主机设备100B如何工作,并且图17B指示存储器控制器200B如何操作。
在图17A,主机设备100B向存储器控制器200B发送命令SYS_READ,以便读取要由扩展ECC保护的扩展ECC块230的页数据210(在步骤ST61)。主机设备100B从读数据中生成扩展ECC,并且设置扩展ECC有效性标记FLEEV 402(在步骤ST62中)。然后,主机设备100B向存储器控制器200B发送所生成的扩展ECC以及命令EECC_SET(在步骤ST63中)。
在图17B中,在存储器控制器200B中的主机接口部分201接收命令EECC_SET,通知在其存储器控制部分202B中的控制单元205,并且将扩展ECC 403和扩展ECC有效性标记FLEEV 402写到数据缓冲器部分203。
控制单元205解码所接收的命令,并且确定已经接收了命令EECC_SET。然后,控制单元205将所接收的扩展ECC 403和标记FLEEV 402安排为图9所示的格式中(在步骤ST71中),计算标准ECC,并且向非易失性存储器300发送ECC以及命令EECC_WRITE(在步骤ST72中)。
以下说明的是由第三实施例的主机设备100B在数据读出时进行的扩展ECC校正处理。图18是主机设备100B在读取数据时如何操作的流程图说明。
在第三实施例的图18的流程图和第一实施例的图10的流程图之间的不同在于:当在第一实施例中存储器控制器处理标准和扩展ECC两者时,主机设备和非易失性存储器分别在第三实施例中处理扩展和标准ECC。
在步骤ST31B和ST32B中,主机设备100B使用命令SYS_READ读取数据。在步骤ST33B中接收到已经从存储器控制器200B出现不可由标准ECC校正的错误的通知时,主机设备100B尝试使用扩展ECC来校正错误(在步骤ST36B到ST40B)。
主机设备100B使用命令SYS_READ读取扩展ECC块230的页数据210(在步骤ST36B中)。在此时,使用标准ECC 215已经校正了所接收的数据210。如果发现不可由标准ECC 215校正的错误,则主机设备100B接收未校正的数据210(在步骤ST37B中)。然后,主机设备100B向存储器控制器200B发送要读取扩展ECC 220的命令EECC_GET(在步骤ST38B中),并且接收使用标准ECC已经校正了的扩展ECC 220(在步骤ST39B中)。此后,步骤ST40和ST41与第一实施例的那些相同,除了由主机设备100B进行该处理。
<4.第四实施例>
图19是示出构成本发明的第四实施例、并且包括根据本发明的非易失性存储器装置的存储器系统100C的配置例子的示意图。第四实施例的存储器系统10C与第一实施例的存储器系统10的不同之处在于以下方面:
在第一实施例的存储器系统10中,存储器控制器200处理标准和扩展ECC两者。在第四实施例的存储器系统10C中,相反,由非易失性存储器300C来处理标准和扩展ECC。
因此,在存储器系统10C中的存储器控制器200C的非易失性存储器控制部分202C不包括标准/扩展ECC处理单元。非易失性存储器300C包含数据缓冲器部分307和标准/扩展ECC处理部分309。
在第四实施例中,如上所述,由非易失性存储器300C处理标准和扩展ECC;由第四实施例中的非易失性存储器300C来掌管在第一实施例中的存储器控制器200进行的处理。
<5.第五实施例>
图20是示出构成本发明的第五实施例、并且包括根据本发明的非易失性存储器装置的存储器系统10D的配置例子的示意图。第五实施例的存储器系统10D与第一实施例的存储器系统10的不同之处在于以下方面:
在第一实施例的存储器系统10中,存储器控制器200处理标准和扩展ECC两者。在第五实施例的存储器系统10D中,相反,由非易失性存储器300D处理标准ECC,并且由主机设备100D处理扩展ECC。
因此,在存储器系统10D中的存储器控制器200D的非易失性存储器控制部分202D不包括标准/扩展ECC处理部分。非易失性存储器300D包含数据缓冲器部分307和标准ECC处理部分308,并且主机设备100D包括扩展ECC处理部分103。
在第五实施例中,如上所述,由非易失性存储器300D来处理标准ECC,并且由主机设备100D来处理扩展ECC。以与第二实施例相同的方式来处理标准ECC。存储器控制器200D不具有处理扩展ECC的功能。相反,存储器控制器200D包括通知主机设备100D不可由标准ECC校正并且从非易失性存储器300D输出的任何错误的功能。以与第三实施例相同的方式来处理扩展ECC。
<6.第六实施例>
图21是示出构成本发明的第六实施例、并且包括根据本发明的非易失性存储器装置的存储器系统10E的配置例子的示意图。第六实施例的存储器系统10E与第一实施例的存储器系统10的不同之处在于以下方面:
在第一实施例的存储器系统10中,存储器控制器200处理标准和扩展ECC两者。在第六实施例的存储器系统10E中,相反,由主机设备100E来处理标准和扩展ECC。
因此,在存储器系统10E中的存储器控制器200E的非易失性存储器控制部分202E不包括标准/扩展ECC处理部分。主机设备100E包括扩展ECC处理部分103和标准ECC处理部分104。因为主机设备100E的扩展ECC处理部分需要当标准ECC处理部分已经出现了不可校正的错误时进行其处理,因此该扩展ECC处理部分可以由软件来实现。
在第六实施例中,如上所述,由主机设备100E处理标准和扩展ECC;由第六实施例中的主机设备100E来掌管在第一实施例中的存储器控制器200进行的处理。
<7.第七实施例>
图22是示出构成本发明的第七实施例、并且包括根据本发明的非易失性存储器装置的存储器系统10F的配置例子的示意图。第七实施例的存储器系统10F与第一实施例的存储器系统10的不同之处在于以下方面:
在第一实施例的存储器系统10中,主机设备100和存储器控制器200被分开构造。在第七实施例的存储器系统10F中,相反,存储器控制器200F被构造被包括在主机设备100F中。
因此,第七实施例的存储器系统10F不需要主机接口部分102或201。第七实施例的其他组件和其功能与第一实施例的那些相同。
本申请包含涉及分别在2009年9月11日和2010年7月30日在日本专利局提交的日本优先权专利申请JP 2009-210433和2009-171690中公开的主题,其全部内容被引用附于此。
本领域技术人员应该理解,可以取决于设计需求或其他因素,进行各种修改、组合、子组合和变更,只要它们处于所附权利要求或其等同物的范围内。
Claims (19)
1.一种非易失性存储器装置,包括:
非易失性存储器部分,配置为包括用于存储数据的数据区域、用于存储标准错误校正码的标准错误校正码区域和用于存储扩展错误校正码的扩展错误校正码区域;
标准错误校正码处理部分,配置为生成标准错误校正码,由此按每个存取单元对在所述数据区域中的数据进行错误校正处理;
扩展错误校正码处理部分,配置为生成扩展错误校正码,由此按每个所述存取单元的整数倍对在所述数据区域中的数据进行错误校正处理;以及
控制部分,配置为控制对所述非易失性存储器部分的存取,以及所述标准错误校正码处理部分和所述扩展错误校正码处理部分的处理,其中
所述控制部分包括,
标准错误校正码区域写功能,配置为当接收到写指令时,所述标准错误校正码区域写功能使得所述标准错误校正码处理部分从接收的数据按每个存取单元生成标准错误校正码,向所述非易失性存储器部分的所述数据区域写数据,并且向所述标准错误校正码区域写生成的标准错误校正码,
读功能,配置为当接收到读指令时,所述读功能从所述非易失性存储器部分的所述数据区域读数据,从所述标准错误校正码区域读标准错误校正码,使得所述标准错误校正码处理部分按每个存取单元进行读取数据的错误检测和校正,并且向外部发送校正的数据,
扩展错误校正码区域写功能,配置为当接收到外部指令时,所述扩展错误校正码区域写功能从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍组成的数据,并使得所述扩展错误校正码处理部分生成扩展错误校正码,以便向所述扩展错误校正码区域写所生成的扩展错误校正码,以及
功能,配置为当接收到外部指令时,所述功能从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍构成的数据,从所述扩展错误校正码区域读取扩展错误校正码,使得所述扩展错误校正码处理部分进行所述读取的数据的错误检测和校正,并且向外部发送校正的数据。
2.根据权利要求1所述的非易失性存储器装置,其中,当接收到外部指令时,所述控制部分删除在所述非易失性存储器部分的所述扩展错误校正码区域中保持的扩展错误校正码。
3.根据权利要求1所述的非易失性存储器装置,其中,当接收到外部指令时,所述控制部分使得所述扩展错误校正码处理部分当向所述非易失性存储器部分的所述数据区域中的指令指定的地址写由所述存取单元的整数倍构成的数据时,生成扩展错误校正码,并且向所述扩展错误校正码区域写所生成的扩展错误校正码。
4.根据权利要求1所述的非易失性存储器装置,其中,所述控制部分向所述扩展错误校正码区域写所述扩展错误校正码,而同时向所述标准错误校正码区域写从所述扩展错误校正码生成的标准错误校正码。
5.根据权利要求1所述的非易失性存储器装置,其中,当接收到外部指令时,所述控制部分从所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍构成的数据,从所述扩展错误校正码区域读取扩展错误校正码,使得所述扩展错误校正码处理部分进行读取的数据的错误检测和校正,并且向所述非易失性存储器部分的所述数据区域写校正的数据。
6.根据权利要求1所述的非易失性存储器装置,其中,如果发现在所述扩展错误校正码区域中保持的任何值匹配预定固定值,则所述控制部分确定不使用保留了所述固定值的区域。
7.根据权利要求6所述的非易失性存储器装置,其中,所述固定值由指示不使用在存储区域中的特定位的标记来形成。
8.一种存储器控制器,包括:
控制部分,配置为控制对非易失性存储器部分的存取,所述非易失性存储器部分包括用于存储数据的数据区域、用于存储标准错误校正码的标准错误校正码区域和用于存储扩展错误校正码的扩展错误校正码区域;
标准错误校正码处理部分,配置为生成标准错误校正码,由此按每个存取单元对在所述数据区域中的数据进行错误校正处理;以及
扩展错误校正码处理部分,配置为生成扩展错误校正码,由此按每个所述存取单元的整数倍对在所述数据区域中的数据进行错误校正处理,其中
所述控制部分包括,
标准错误校正码区域写功能,配置为当接收到写指令时,所述标准错误校正码区域写功能使得所述标准错误校正码处理部分从所接收的数据按每个存取单元生成标准错误校正码,向所述非易失性存储器部分的所述数据区域写数据,并且向所述标准错误校正码区域写所生成的标准错误校正码,
第一功能,配置为当接收到读指令时,所述第一功能从所述非易失性存储器部分的所述数据区域读取数据,从所述标准错误校正码区域读取标准错误校正码,使得所述标准错误校正码处理部分按每个存取单元进行读取的数据的错误检测和校正,并且向外部发送校正的数据,
扩展错误校正码区域写功能,配置为当接收到外部指令时,所述扩展错误校正码区域写功能从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍组成的数据,并使得所述扩展错误校正码处理部分生成扩展错误校正码,以便向所述扩展错误校正码区域写所生成的扩展错误校正码,以及
第二功能,配置为当接收到外部指令时,所述第二功能从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍构成的数据,从所述扩展错误校正码区域读取扩展错误校正码,使得所述扩展错误校正码处理部分进行读取的数据的错误检测和校正,并且向外部发送校正的数据。
9.根据权利要求8所述的存储器控制器,其中,所述控制部分向所述扩展错误校正码区域写所述扩展错误校正码,而同时向所述标准错误校正码区域写从所述扩展错误校正码生成的标准错误校正码。
10.一种存储器控制器,包括:
控制部分,配置为控制对非易失性存储器部分的存取,所述非易失性存储器部分包括用于存储数据的数据区域、用于存储标准错误校正码的标准错误校正码区域、用于存储扩展错误校正码的扩展错误校正码区域和用于生成标准错误校正码的标准错误校正码处理部分,由此按每个存取单元对在所述数据区域中的数据进行错误校正处理;以及
扩展错误校正码处理部分,配置为生成扩展错误校正码,由此按每个所述存取单元的整数倍对在所述数据区域中的数据进行错误校正处理,其中
所述控制部分包括,
数据区域写功能,配置为当接收到写指令时,所述数据区域写功能向所述非易失性存储器部分的所述数据区域写所接收的数据,
第一功能,配置为当接收到读指令时,所述第一功能从所述非易失性存储器部分的所述数据区域读取由标准错误校正码校正的数据,并且向外部发送读取的数据,
扩展错误校正码区域写功能,配置为当接收到外部指令时,所述扩展错误校正码区域写功能从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍组成的数据,并且使得所述扩展错误校正码处理部分生成扩展错误校正码,以便向所述扩展错误校正码区域写所生成的扩展错误校正码,以及
第二功能,配置为当接收到外部指令时,所述第二功能从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍构成的数据,从所述扩展错误校正码区域读取扩展错误校正码,使得所述扩展错误校正码处理部分进行读取的数据的错误检测和校正,并且向外部发送校正的数据。
11.一种存储器系统,包括:
非易失性存储器部分,配置为包括用于存储数据的数据区域、用于存储标准错误校正码的标准错误校正码区域和用于存储扩展错误校正码的扩展错误校正码区域;
标准错误校正码处理部分,配置为生成标准错误校正码,由此按每个存取单元对在所述数据区域中的数据进行错误校正处理;
扩展错误校正码处理部分,配置为生成扩展错误校正码,由此按每个存取单元的整数倍对数据进行错误校正处理;
存储器控制器,配置为控制对所述非易失性存储器部分的存取,以及所述标准错误校正码处理部分和所述扩展错误校正码处理部分的处理;以及
主机设备,配置为至少向所述存储器控制器发出写和读指令,其中
所述存储器控制器包括,
标准错误校正码区域写功能,配置为当从所述主机设备接收到所述写指令时,所述标准错误校正码区域写功能使得所述标准错误校正码处理部分从所接收的数据按每个存取单元生成标准错误校正码,向所述非易失性存储器部分的所述数据区域写数据,并且向所述标准错误校正码区域写所生成的标准错误校正码,
读功能,配置为当从所述主机设备接收到读指令时,所述读功能从所述非易失性存储器部分的所述数据区域读取数据,从所述标准错误校正码区域读取标准错误校正码,使得所述标准错误校正码处理部分按每个存取单元对读取的数据进行错误检测和校正,并且向外部发送校正的数据,
扩展错误校正码区域写功能,配置为当从所述主机设备接收到指令时,所述扩展错误校正码区域写功能从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍组成的数据,并使得所述扩展错误校正码处理部分生成扩展错误校正码,以便向所述扩展错误校正码区域写所生成的扩展错误校正码,以及
第一功能,配置为当从所述主机设备接收到指令时,所述第一功能从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍构成的数据,从所述扩展错误校正码区域读取扩展错误校正码,使得所述扩展错误校正码处理部分进行读取的数据的错误检测和校正,并且向外部发送校正的数据。
12.根据权利要求11所述的存储器系统,其中,所述主机设备包括:
第二功能,配置为指定要对其添加所述存储器控制器的扩展错误校正码的数据的地址;以及
第三功能,配置为指定要从其删除所述存储器控制器的扩展错误校正码的数据的地址;以及
所述存储器控制器控制由所述主机设备指定的扩展错误校正码的添加和删除。
13.根据权利要求11所述的存储器系统,其中,所述主机设备指定所述存储器控制器向被要求为延长的存储保护的数据添加扩展错误校正码,所述数据从存储在所述非易失性存储器部分的所述数据区域中的数据中发现;以及
当从所述主机设备接收到指令时,所述存储器控制器从在所述非易失性存储器部分的所述数据区域中的指令指定的地址开始读取由所述存取单元的整数倍组成的数据,并使得所述扩展错误校正码处理部分生成扩展错误校正码,以便向所述扩展错误校正码区域写所生成的扩展错误校正码。
14.根据权利要求11所述的存储器系统,其中,在读取设置了扩展错误校正码的数据时,所述存储器控制器使用所述标准错误校正码以所述存取单元为单位验证并校正数据;以及
在由所述标准错误校正码不可校正的数据错误的情况下,所述存储器控制器进行可由所述扩展错误校正码校正的数据错误的错误检测和校正。
15.根据权利要求11所述的存储器系统,其中,在使用标准和扩展错误校正码进行校正的情况下,所述主机设备可以指示所述存储器控制器用校正的数据更新原始数据;以及
当从所述主机设备接收到指令时,所述存储器控制器控制用所述校正的数据对所述原始数据的更新。
16.根据权利要求11所述的存储器系统,其中,如果发现在所述扩展错误校正码区域中保持的任何值匹配预定固定值,则所述存储器控制器确定不使用保留了所述值的区域。
17.根据权利要求16所述的存储器系统,其中,所述固定值由指示不使用在存储区域中的特定位的标记来形成。
18.根据权利要求11所述的存储器系统,其中,所述标准错误校正码处理部分和所述扩展错误校正码处理部分被置于所述存储器控制器、所述非易失性存储器部分和所述主机设备之一中。
19.根据权利要求11所述的存储器系统,其中,所述主机设备包括所述存储器控制器的功能。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009210433 | 2009-09-11 | ||
JP210433/09 | 2009-09-11 | ||
JP171690/10 | 2010-07-30 | ||
JP2010171690A JP5540969B2 (ja) | 2009-09-11 | 2010-07-30 | 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102023901A CN102023901A (zh) | 2011-04-20 |
CN102023901B true CN102023901B (zh) | 2013-06-05 |
Family
ID=43731671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010275225XA Expired - Fee Related CN102023901B (zh) | 2009-09-11 | 2010-09-06 | 非易失性存储器装置、存储器控制器和存储器系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8438457B2 (zh) |
JP (1) | JP5540969B2 (zh) |
CN (1) | CN102023901B (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101803970B1 (ko) * | 2011-03-16 | 2017-12-28 | 삼성전자주식회사 | 컨텐트를 구성하는 장치 및 방법 |
KR101843918B1 (ko) | 2011-04-25 | 2018-04-02 | 삼성전자주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그 동작 방법 |
JP2012252558A (ja) * | 2011-06-03 | 2012-12-20 | Sony Corp | 不揮発性メモリ、メモリコントローラ、不揮発性メモリのアクセス方法、およびプログラム |
US8898541B2 (en) | 2011-11-30 | 2014-11-25 | Sony Corporation | Storage controller, storage device, information processing system, and storage controlling method |
JP5845876B2 (ja) * | 2011-12-20 | 2016-01-20 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 |
KR101889362B1 (ko) * | 2012-02-06 | 2018-09-20 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치 및 그 동작 방법, 이를 이용하는 데이터 처리 시스템 |
US8954825B2 (en) | 2012-03-06 | 2015-02-10 | Micron Technology, Inc. | Apparatuses and methods including error correction code organization |
JP2014086062A (ja) * | 2012-10-29 | 2014-05-12 | Sony Corp | 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法 |
US9146809B2 (en) * | 2013-10-07 | 2015-09-29 | Macronix International Co., Ltd. | ECC method for double pattern flash memory |
JP6028709B2 (ja) | 2013-10-18 | 2016-11-16 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 |
CN104637542B (zh) * | 2013-11-11 | 2018-03-13 | 旺宏电子股份有限公司 | 储存对应于数据的错误更正码的存储器装置及其操作方法 |
US9535785B2 (en) | 2014-01-17 | 2017-01-03 | Macronix International Co., Ltd. | ECC method for flash memory |
US9542268B2 (en) * | 2014-01-29 | 2017-01-10 | Macronix International Co., Ltd. | Dynamic data density ECC |
US9520901B2 (en) * | 2014-03-06 | 2016-12-13 | Kabushiki Kaisha Toshiba | Memory controller, memory system, and memory control method |
US9772900B2 (en) | 2014-07-10 | 2017-09-26 | Samsung Electronics Co., Ltd. | Tiered ECC single-chip and double-chip Chipkill scheme |
JP2016062463A (ja) | 2014-09-19 | 2016-04-25 | 株式会社東芝 | メモリシステム、誤り訂正装置、および誤り訂正方法 |
US9558066B2 (en) * | 2014-09-26 | 2017-01-31 | Intel Corporation | Exchanging ECC metadata between memory and host system |
US10289475B2 (en) | 2015-01-21 | 2019-05-14 | Toshiba Memory Corporation | Memory system |
JP6486723B2 (ja) | 2015-01-21 | 2019-03-20 | 東芝メモリ株式会社 | メモリシステムおよび処理装置 |
US10063263B2 (en) * | 2015-05-20 | 2018-08-28 | International Business Machines Corporation | Extended error correction coding data storage |
US9845268B2 (en) * | 2016-05-23 | 2017-12-19 | Kennametal Inc. | Sintered ceramic bodies and applications thereof |
US10290353B2 (en) * | 2016-09-06 | 2019-05-14 | Western Digital Technologies, Inc. | Error mitigation for 3D NAND flash memory |
JP6847796B2 (ja) | 2017-09-20 | 2021-03-24 | キオクシア株式会社 | メモリシステム |
JP6957392B2 (ja) | 2018-03-15 | 2021-11-02 | キオクシア株式会社 | メモリシステム |
KR102611860B1 (ko) * | 2018-11-05 | 2023-12-11 | 에스케이하이닉스 주식회사 | 디코딩 회로 및 이를 포함하는 반도체 메모리 장치 |
KR20200078830A (ko) * | 2018-12-24 | 2020-07-02 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 모듈 |
US11514174B2 (en) * | 2019-01-23 | 2022-11-29 | Micron Technology, Inc. | Memory devices with cryptographic components |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1493028A (zh) * | 2001-12-25 | 2004-04-28 | ���ṫ˾ | 存储器装置和使用该存储器装置的记录再现装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08166910A (ja) | 1994-12-15 | 1996-06-25 | Nec Corp | データ修復方法 |
JPH09167120A (ja) | 1995-12-15 | 1997-06-24 | Denso Corp | 記憶装置の誤り訂正装置 |
JP2001117825A (ja) | 1999-10-20 | 2001-04-27 | Sharp Corp | データ記録装置およびデータ再生装置 |
JP2004348824A (ja) | 2003-05-21 | 2004-12-09 | Toshiba Corp | Eccエンコード方法、eccエンコード装置 |
JP4586469B2 (ja) * | 2004-09-15 | 2010-11-24 | ソニー株式会社 | メモリ制御装置、メモリ制御方法、プログラム |
JP2006195569A (ja) * | 2005-01-11 | 2006-07-27 | Sony Corp | 記憶装置 |
US20060256615A1 (en) | 2005-05-10 | 2006-11-16 | Larson Thane M | Horizontal and vertical error correction coding (ECC) system and method |
US7568135B2 (en) * | 2006-05-15 | 2009-07-28 | Apple Inc. | Use of alternative value in cell detection |
JP2008139908A (ja) | 2006-11-29 | 2008-06-19 | Matsushita Electric Ind Co Ltd | メモリ制御装置、コンピュータシステム及びデータ再生記録装置 |
JP4925301B2 (ja) * | 2007-02-07 | 2012-04-25 | 株式会社メガチップス | 半導体メモリシステム |
JP4564520B2 (ja) * | 2007-08-31 | 2010-10-20 | 株式会社東芝 | 半導体記憶装置およびその制御方法 |
JP4538034B2 (ja) * | 2007-09-26 | 2010-09-08 | 株式会社東芝 | 半導体記憶装置、及びその制御方法 |
US7941696B2 (en) * | 2009-08-11 | 2011-05-10 | Texas Memory Systems, Inc. | Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes |
-
2010
- 2010-07-30 JP JP2010171690A patent/JP5540969B2/ja not_active Expired - Fee Related
- 2010-09-02 US US12/874,914 patent/US8438457B2/en active Active
- 2010-09-06 CN CN201010275225XA patent/CN102023901B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1493028A (zh) * | 2001-12-25 | 2004-04-28 | ���ṫ˾ | 存储器装置和使用该存储器装置的记录再现装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102023901A (zh) | 2011-04-20 |
JP2011081776A (ja) | 2011-04-21 |
US20110066923A1 (en) | 2011-03-17 |
JP5540969B2 (ja) | 2014-07-02 |
US8438457B2 (en) | 2013-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102023901B (zh) | 非易失性存储器装置、存储器控制器和存储器系统 | |
US10459794B2 (en) | Memory systems having extended product lifetime and methods of operating the same | |
US8707135B2 (en) | Method and system of dynamic data storage for error correction in a memory device | |
US8555143B2 (en) | Flash memory controller and the method thereof | |
CN102656566B (zh) | 固态存储系统中的数据管理 | |
CN102023815B (zh) | 在固态存储器中实现raid | |
JP5426711B2 (ja) | メモリコントローラ及び不揮発性記憶装置 | |
US8327230B2 (en) | Data structure for flash memory and data reading/writing method thereof | |
CN102339641B (zh) | 检错/纠错校验模块及该模块读写数据的方法 | |
MX2012010944A (es) | Detección de distribución de paridad no regulada vía etiqueta de metadatos. | |
US9003153B2 (en) | Method of storing blocks of data in a plurality of memory devices in a redundant manner, a memory controller and a memory system | |
CN101901169B (zh) | 扫描装置及方法 | |
US20130117632A1 (en) | Storage control apparatus | |
JP2015018451A (ja) | メモリコントローラ、記憶装置およびメモリ制御方法 | |
CN102394114B (zh) | 具有自适应纠错能力的bch码纠错方法 | |
US10509697B2 (en) | Data storage device and operating method therefor | |
JP6524126B2 (ja) | メモリ制御装置及びメモリ制御方法 | |
CN101853212B (zh) | 数据写入方法、数据读取方法和数据存储器 | |
CN104681095B (zh) | 储存装置及其操作方法 | |
CN101566969B (zh) | 提升非易失性存储器存储装置的管理效能的方法及控制器 | |
US20230229313A1 (en) | Memory module | |
US10922025B2 (en) | Nonvolatile memory bad row management | |
CN110058955B (zh) | 具有错误纠正功能的内存和相关内存系统 | |
US9436547B2 (en) | Data storing method, memory control circuit unit and memory storage device | |
JP3670151B2 (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130605 Termination date: 20210906 |