半导体存储器件及其控制方法

文档序号:6476552阅读:129来源:国知局
专利名称:半导体存储器件及其控制方法
技术领域
本发明涉及半导体存储器件及其控制方法,并且例如,涉及配置 有用于校正非易失性地存储在半导体存储器内的信息中的错误的校 正电路的半导体存储器,以及控制该器件的方法。
背景技术
根据非易失性存储器件的类型,与存储器中存储的数据量相对应 的存储器的物理量的状态随着时间的流逝而改变。当经过了预设的时 间时,数据可能丢失。各种存储器件都具有这个属性。例如,这些存 储器件中包括使用具有所谓的层叠栅结构的晶体管作为存储器单元 的非易失性半导体存储器件。
层叠栅结构包括隧道绝缘膜,浮栅电极,栅间绝缘膜和控制栅电 极。为了在存储器单元中存储信息,通过隧道绝缘膜从村底側将电子 注入浮栅电极。在浮栅电极中积累的电荷用作信息。由于在浮栅电极 中积累的电荷随着时间的流逝会通过隧道绝缘膜泄漏到衬底,导致了 存储在存储器单元内的信息随着时间的流逝而丟失的结果(信息中将 出现错误)。
如果从信息存储以来经过的时间短,则信息中出现错误的概率 小。相反,如果从信息存储以来经过的时间长,则信息中出现错误的概率大。可以给包括如上所述的存储器单元的存储器件提供用于校正 信息中的错误的纠错机制。
一般地,具有高纠错性能的校正机制是必须的,以便校正由于例 如经过了很长的时间而出现在由多个位组成的信息中的错误。具有高 纠错性能的校正机制一般具有大的电路规模,耗费很多能源,并且需 要大量时间用于进行处理。然而,为了即使当自数据存储以来经过了 很长时间时也能保证数据的正确恢复,提供了具有高纠错性能的校正 机制,并且不论自数据存储以来经过的时间如何,总是使用该校正机 制。
因此,即使读取自其存储以来仅经过了短时间的信息,即,即使 读取不包含很多错误的信息,也使用高纠错性能的校正机制。这浪费 了能源。
另夕卜, 一般地,为了增强纠错性能,必须扩展将接受纠错的信息。
例如,为了增强纠错性能,例如,以4K字节数据片段而不是512字 节的数据片段(通过耦合多个512字节的数据片段形成4k字节的数 据片段)为单位产生纠错码。在该情况下,即使当希望读取512字节 的数据时,也必须读取4k字节的数据。这同样增加了存储器件的能耗。
下面的文档被认为是与本申请相关的现有技术 JP - A 63 - 275225 ( KOKAI)
在该参考文献中,公开了一种具有高纠错能力的校正装置。

发明内容
根据本发明的一个方面,提供了一种半导体存储器,包括临时 存储电路,被配置为接收多个数据项,并且将所述数据项存储在行和 列内;检测码产生器,被配置为分别产生用于检测所述多个数据项中 的错误的多个第一检测码;第一校正码产生器,被配置为分别产生用 于校正与所述列相对应的多个第一数据块中的错误的多个第一校正 码,每个第一数据块包含布置在所述列中的相应一列中的若干数据项;第二校正码产生器,被配置为分别产生用于校正与所述行相对应 的多个第二数据块中的错误的多个第二校正码,每个第二数据块包含
布置在所述行中的相应一行中的若干数据项;和半导体存储器,被配 置为非易失性地存储数据项,第一检测码,第一校正码和第二校正码。 根据本发明的一个方面,提供了一种控制半导体存储器件的方 法,该方法包括接收多个数据项,并且在临时存储电路的行和列中 存储所述数据项;分别产生用于检测所述多个数据项中的错误的多个 第 一检测码;分别产生用于校正与所述列相对应的多个第一数据块中 的错误的多个第一校正码,每个第一数据块包含布置在所述列中的相 应一列中的若干数据项;分别产生用于校正与所述行相对应的多个第 二数据块中的错误的多个第二校正码,每个第二数据块包含布置在所 述行中的相应一行中的若干数据项;和在半导体存储器中非易失性地 存储数据项,第一检测码,第一校正码和第二校正码。


图1是示出了根据一个实施例的半导体存储器件10的示意性框
图2是示出了包含在NAND闪存中的存储器块BLK的结构的等 效电路图3是示出了关于数据写的纠错电路11的基本部分的方框图; 图4是示出了从纠错电路11传输到半导体存储器12的数据的格 式的图5是示出了在临时存储电路20中采用的用于写的数据结构的
图6是示出了纠错电路11的错误检测码产生操作和纠错码产生 操作的一部分的图7是示出了图6所示部分之后的错误检测码产生操作和纠错码 产生操作的一部分的图8是示出了图7所示部分之后的错误检测码产生操作和纠错码产生操作的一部分的图9是示出了图8所示部分之后的错误检测码产生操作和纠错码 产生操作的一部分的图10是示出了图9所示部分之后的错误检测码产生操作和纠错 码产生操作的一部分的图11是示出了关于数据读取的纠错电路11的基本部分的方框
图12是示出了由ECC校正单元31的第一纠^"获得的块数据的
图13是示出了由RS校正单元33的第 一纠错获得的块数据的图; 图14是示出了由ECC校正单元31的第二纠错获得的块数据的
图15是示出了由RS校正单元33的第二纠错获得的块数据的和
图16是示出了自写以来经过的时间和所需校正性能之间的关系的图。
具体实施例方式
将参考附图描述本发明的实施例。在下面的描述中,类似的参考 号代表类似的元件,并且仅当必须时才给出重复解释。
下面描述的实施例仅是用于表达本发明的技术概念的装置或方 法的例子,并且因此结构元件的材料,形状,结构和/或布置不限于下 面所述那些。它们可被以各种方法修改,而不脱离本发明的范围。
另外,在本发明的实施例中,可由硬件,软件或其组合实现每个 功能块。为了对此进行阐明,将主要考虑每个块的功能描述每个块。 以硬件还是以软件实现每个功能取决于对特定实施例或整个系统的 设计约束。本领域的任何技术人员可以使用各种方法以特定实施例实 现这些功能,并且这些实现包括在本发明的范围内。
图l是示出了根据本发明的实施例的半导体存储器件IO的示意性框图。半导体存储器件10包括纠错电路11和半导体存储器12。纠 错电路11和半导体存储器12被认为包括在单个半导体集成电路内, 并且被提供在单个半导体芯片上。只要半导体存储器12非易失性地 存储信息,并且所存储的信息随着时间的流逝而改变,则半导体存储 器12可以是任意存储器件。半导体存储器12是例如NAND闪存。在 本实施例中,作为半导体存储器12的例子,将描述NAND闪存。
NAND闪存由多个存储器块BLK形成,数据被以存储器块BLK 为单位擦除。现在参考图2,将描述存储器块BLK的结构。图2是示 出了存储器块BLK的结构的等效电路图。
存储器块BLK包括沿着X轴布置的m (m:不小于l的整数) 个NAND串。每个NAND串包括选择晶体管ST1和ST2,以及n ( n: 不小于1的整数)个存储器单元晶体管MT。包括在m个NAND串 中的各个选择晶体管ST1的漏极连接到位线BL1到BLm,并且其栅 极共同连接到选择栅线SGD。另外,选择晶体管ST2的源极共同连 接到源线SL,并且其栅极共同连接到选择栅线SGS。
每个存储器单元晶体管MT是金属氧化物半导体场效应晶体管 (MOSFET),其具有层叠的栅极结构并且形成在半导体衬底上,层 叠栅结构和半导体衬底之间插入有栅绝缘膜。层叠栅结构包括在栅绝 缘膜上形成的电荷积累层(浮栅),以及在电荷积累层上形成的控制 栅电极,在电荷积累层和控制栅电极之间插入有栅间绝缘膜。在每个 NAND串中,n个存储器单元晶体管MT的电流路径串联在选择晶体 管ST1的源极和选择晶体管ST2的漏极之间。即,n个存储器单元晶 体管MT沿着Y轴串联连接,从而在相应的相邻晶体管MT对之间共 享每个扩散区域(源/漏区域)。
存储器单元晶体管MT的各个控制栅电极以从最靠近漏极侧的 存储器单元晶体管MT开始的顺序连接到字线WL1到WLn。因此, 连接到字线WL1的存储器单元晶体管MT的漏极连接到选择晶体管 ST2的源极。类似地,连接到字线WLn的存储器单元晶体管MT的 源极连接到选择晶体管ST2的漏极。在存储器块BLK的各NAND串之间,每个字线WL1到WLn 将相应的存储器单元晶体管MT的控制栅电极彼此共同连接。即,布 置在存储器块BLK的每行内的存储器单元晶体管MT的控制栅电极 通过相应的字线WL彼此连接。由相同的字线WL连接的存储器单元 被视为一页,并且以页为单位执行数据写和读。
另外,在多个存储器块BLK之间,每个位线BL1到BLn将相 应的选择晶体管ST1的漏极彼此共同连接。即,布置在存储器块BLK 之间相同列内的NAND串连4妄到相同的位线BL。
在每个存储器单元晶体管MT中,阈值电压根据浮栅电极中积累 的电子的数目而变化,并且存储相应于这样设置的阈值之间的差的信 息。每个存储器单元晶体管MT可祐:设计为存储一位或多个位的信息。 包括在半导体存储器12中的读取放大器(未示出)和包括例如电势 产生电路的控制电路(未示出)具有如下结构,所述结构使得能够向 存储器单元晶体管MT写入和从存储器单元晶体管MT读取被提供给 半导体存储器12的数据。
从外部器件向半导体存储器件10提供请求写入到半导体存储器 12的数据(写数据)。纠错电路11给写数据添加纠错码和错误检测 码,并且将结果数据提供给半导体存储器12。半导体存储器12非易 失性地存储具有纠错码和错误检测码的写数据。
另外,响应从外部器件提供给半导体存储器件10的控制信号, 半导体存储器12给纠错电路11提供添加了纠错码和错误检测码的请 求读取的数据(读数据)。纠错电路11检测读数据中的错误。如果 存在错误,纠错电路11校正错误,并且从其中去除纠错码和错误检 测码,从而向外部输出校正后的读数据。将描述纠错电路11的特定 配置的例子。
写电路的配置
图3是示出了关于数据写的纠错电路11的基本部分的方框图。 图4是示出了从纠错电路11向半导体存储器12传输的数据格式的图。 纠错电路11以预置尺寸的数据项D为单位产生错误检测码。该预置尺寸是例如512字节。纠错电路11还以布置在每个列中的多个 写数据项(包括错误检测码)为单位产生第一纠错码,并且以布置在 每个行中的多个写数据项为单位产生第二纠错码。基于所希望的纠错 性能和采用的纠错码,确定作为用于产生纠错码的单位的写数据项的 数目。
作为纠错码,可以使用循环冗余校验和(CRC) 32, CRC16等。 因此,在本实施例中,纠错码产生单元21是CRC产生单元21。由于 CRC产生单元21的特定结构是本领域的技术人员公知的,因此不再 给出对它的描述。CRC产生单元21以写数据项D的512字节为单位 产生CRC。在本实施例中,CRC的大小是4字节。
作为第 一纠错码,使用能够校正一位或多个位的纠错码(ECC )。 更具体地,可以使用Bose - Chaudhuri Hocq画ghem ( BCH )码或 低密度奇偶校验(LDPC)码。在本实施例中,第一纠错码产生单元 22被称为ECC产生单元22。由于ECC产生单元22的特定结构是本 领域的技术人员公知的,不再给出对它的描述。ECC产生单元22以 第一数据块UDa为单位产生ECC码,每个数据块包括例如8个写数 据项D和相应的8个CRC码。在该情况下,ECC的大小是24字节。
作为第二纠错码,例如,使用能够校正多个位,即,能够进行比 第一纠错码性能更高的纠错的纠错码。更具体地,例如使用
Reed-Salomon码(RS)作为第二纠错码。因此,在本实施例中,第 二纠错码产生单元23是RS产生单元23。由于RS产生单元23的特 定结构是本领域的技术人员公知的,不再给出对它的描述。RS产生 单元23以第二数据块UDb为单位产生例如4个RS码。因此,RS产 生单元23可以校正包含在构成单个第二数据块UDb的1024个写数 据项D中所包括的4个数据项中的错误。
纠错电路11具有临时存储电路20。临时存储电路20是例如易 失性存储器电路,诸如动态随机存取存储器(DRAM)。纠错电路ll 从外部接收多个写数据项D (1, 1)到D (8, 1024)。临时存储电 路20将写数据项D(1, 1)到D(8, 1024)临时存储在列和行中。图5示出了临时存储电路20的数据结构。
如图5所示,临时存储电路20存储被当作ECC产生单元22的 处理单位的8个写数据项D (1, p)到D(8, p)作为列数据项,并 且存储被当作RS产生单元23的处理单位的1024个数据项D(q, 1) 到D(q, 1024)作为行数据项。p是包括1至1024的任意数字,并 且q是包括l到8的任意数字。
CRC产生单元21包括与作为列数据项的8个写数据项D( 1, p ) 到D ( 8, p )相对应的8个CRC产生单元21 - 1到21 - 8。 8个CRC 产生单元21 -1到21 -8产生相应于8个写数据项D( 1, p)到D(8, p)的8个CRC码。这8个CRC码用于检测8个写数据项D ( 1, p) 到D(8, p)中的错误。这8个CRC码被发送到ECC产生单元22。
ECC产生单元22以笫 一数据块UDap为单位产生一个ECC码, 每个第一数据块包括8个写数据项D (1, p)到D(8, p)和与其相 对应的8个CRC码。ECC码用于校正第一数据块UDap中的错误。 在本实施例中,由每个第一数据块UDap和相应的ECC码构成的数 据的大小对应于一页的大小(见图4)。
另外,在本实施例中,RS产生单元23以第二数据块UDb为单 位产生一个RS码,每个第二数据块包括1024个写数据项D ( 1, 1) 到D (1, 1024)作为行数据项。RS产生单元23包括相应于临时存 储电路20的各写数据行的8个RS产生单元23 - 1到23 - 8。 RS产 生单元23-l为第二数据块UDbl产生4个RS码RS (1, 1)到RS (1, 4)。类似地,相应于第2到第8行的RS产生单元23-2到23 -8同样如此。
CRC产生单元21-1到21-8为8个RS码(1, r)到(8, r) 也产生CRC码。r是包括1到4的任意数字。类似地,ECC产生单 元22为包括8个RS码(1, r)到(8, r)和与其相应的8个CRC 码的第三数据块UDc产生一个ECC码。第三数据块UDc具有与第一 数据块UDa相同的数据大小。
写数据D和CRC, ECC以及RS码被以图4所示的页为单位从纠错电路ll发送到半导体存储器12。半导体存储器12以页的顺序存 储数据。例如,当一个存储器块BLK由1028个页构成时,图4所示 的数据存储在半导体存储器12中的一个存储器块BLK内。 [数据写操作]
参考图6到8,将给出在数据写入期间由纠错电路11执行的错 误检测码产生操作和纠错码产生操作的描述。
首先,如图6所示,将被写到半导体存储器12的8个写数据项 D (1, 1)到D (8, 1)被提供给纠错电路11,在纠错电路11处这 些写数据项被存储在临时存储电路20内。
随后,如图7所示,8个写数据项D(1, 1)到D(8, l)被分 别发送到CRC产生单元21 — 1到21 一 8。 CRC产生单元21 一 1到21 -8随即为相应的8个写数据项D (1, 1)到D(8, 1)产生8个错 误检测码(CRC )。这8个CRC码被附加到相应的写数据项D的末 尾,从而形成第一数据块UDal。在本实施例中,CRC产生单元21 -l到21-8并行地执行其各自的错误检测码产生操作,从而减少了 所需的处理时间。
此后,如图8所示,第一数据块UDal被发送到ECC产生单元 22。 ECC产生单元22使用第一数据块UDal产生用于校正第一数据 块UDal中的错误的第一纠错码(ECC) 。 ECC码被附加到第一数据 块UDal的末尾,以便形成页1的数据。页1的数据被发送并且存储 在半导体存储器12内。
对页2到1024的数据项重复如上相同的操作,从而形成图4所 示的数据。页2到1024的数据项被发送并且存储在半导体存储器12 内。
此后,RS产生单元23产生第二纠错码(RS)。此时,临时存 储电路20已经如图5所示在行和列中存储了写数据项D(l, l)到D (8, 1024)。
如图9所示,从布置在第一行中的1024个写数据项D (1, 1) 到D (1, 1024 )形成第二数据块UDbl,并且通过临时存储电路20将其发送到RS产生单元23-1。类似地,形成第二数据块UDb2到 UDb8,并且通过临时存储电路20将其发送到RS产生单元23-2到 23 - 8。
随后,如图10所示,RS产生单元23-l使用第二数据块UDbl 产生4个RS码RS (1, 1)到RS (1, 4) 。 RS产生单元23-2到 23-8执行与RS产生单元23 - 1相同的RS产生操作。在本实施例中, RS产生单元23 - 1到23 - 8并行地执行其各自的校正码产生操作。 RS产生单元23 - 1到23 - 8的并行操作减少了处理所需的时间。
当使用reed-solomon码作为纠错码时,通常使用4个冗余码以 获得两个错误位置信息项和两个纠错信息项,并且因此可以进行两个 错误校正。然而,在本实施例中,为了指定写数据D中的错误的位置, 还使用了 CRC码。因此,在本实施例中,使用4个冗余码可以进行4 个错误校正。即,可以校正包含在1024个写数据项D (1, 1)到D
(1, 1024)中的4个错误。
此后,如在RS产生单元23-1到23-8中的情况,CRC产生 单元21-1到21-8为布置在一列中的8个RS码RS (1, 1)到RS
(8,1)产生8个CRC码。这样获得的8个CRC码被附加到相应的 8个RS码的末尾,以〗更形成第三数据块UDcl。 ECC产生单元22使 用第三数据块UDcl以产生用于校正第三数据块UDcl中的错误的 ECC码。该ECC码被附加到第三数据块UDcl的末尾,以便形成页 1025的数据项。页1025的数据项被发送到并且存储在半导体存储器 12内。
为页1026到1028的数据项重复如上相同的操作,从而形成图4 所示的数据。页1026到1028的数据项被发送到并且存储在半导体存 储器12内。
读电路的配置I
图11是示出了关于数据读取的纠错电路11的基本部分的方框 图。当读取数据时,存储在一个存储器块BLK中的块数据(图4中 所示的数据)被发送到并且存储在临时存储电路20内。纠错电路11包括ECC校正单元31。 ECC校正单元31使用以 页为单位产生的纠错码(ECC),以便校正包含在第一数据块UDap 内的错误,所述第一数据块UDap包括8个读数据项D (1, p)到D (8, p)以及与其相对应的8个CRC码。由ECC校正单元31校正 的第一校正后数据DC1被发送到临时存储电路20。临时存储电路20 更新存储在其中并且相应于第一校正后数据DC1的数据。
纠错电路11还包括CRC检测单元32。 CRC检测单元32包括 与布置在一列中的8个读数据项D (1, p)到D(8, p)(即,对应 于行数)相对应的8个CRC检测单元31 - 1到32 - 8。 8个CRC检 测单元31 - 1到32-8使用为相应的读数据项D (1, p)到D(8, p) 产生的8个CRC码,以便检测读数据项D (1, p )到D ( 8, p )中 的错误。CRC检测单元32的特定结构是本领域的技术人员公知的, 并且因此不再对它进行描述。
纠错电路11还包括RS校正单元33。 RS校正单元33包括与布 置在一列中的8个读数据项D (1, p)到D (8, p)相对应的8个 RS校正单元33-1到33 - 8。 RS校正单元33-1例如使用4个RS 码RS (1, 1)到RS (1, 4),以便校正由布置在第一行中的1024 个读数据项D(l, l)到D(l, 1024 )构成的第二数据块UDbl中的 错误。RS校正单元33的特定结构是本领域的技术人员公知的,并且 因此不再对它进行描述。
在本实施例中,使用reed - solomon ( RS )码作为第二纠错码, 并且将全部4个RS码RS ( 1, l)到RS(l, 4)用于纠错。因此, RS校正单元33 - 1可以校正包括在1024个读数据项D (1, 1)到D (1, 1024)中的4个读数据项。对于相应于第2到第8行的RS校正 单元33-2到33 — 8同样如此。由RS校正单元33 — 1到33 - 8中的 任意一个校正的第二校正后数据DC2被发送到临时存储电路20。而 临时存储电路20由此更新存储在其中并且相应于第二校正后数据 DC2的数据。
以ECC校正单元31和RS校正单元33 - 1到33 - 8校正的读数据项D(l, l)到D(S, 1024 )被从纠错电路ll输出到外部。 [数据读操作

参考图12到15,将给出数据读期间纠错电路11的错误检测操 作和纠错操作的描述。
在纠错操作之前,存储在半导体存储器12的一个存储器块BLK 中的块数据(图4中所示的数据)被发送到并且存储在临时存储电路 20内。
首先,ECC校正单元31执行第一纠错操作。具体地,页l的数 据被通过临时存储电路20发送到ECC校正单元31。 ECC校正单元 31使用包含在页1的数据中的纠错码(ECC)校正包含在页1的第一 数据块UDal中的错误。类似地,ECC校正单元31校正包含在页2 到1028的数据中的第一数据块UDa2到UDal028中的错误。以ECC 校正单元31校正的第一校正后数据DC1被发送到临时存储电路20。 临时存储电路20更新存储在其中并且相应于第一校正后数据DC1的 数据。
随后,CRC检测单元32执行第一错误检测操作。具体地,CRC 检测单元32 - 1到32 - 8使用各自的CRC码检测读数据项D ( 1, 1) 到D(8, 1)中的错误。在检错之后,CRC检测单元32-1到32-8 分别产生指示哪些读数据D包含错误的错误信息项Sl到S8。错误信 息项Sl到S8被分别发送到RS校正单元33 - 1到33 - 8。 CRC检测 单元32 - 1到32 - 8对页2到1028的数据执行相同的错误检测操作。 并行地执行CRC检测单元32 - 1到32 - 8的错误检测操作,以便减 少处理所需的时间。
图12示出了在ECC校正单元31的第一错误校正之后获得的块 数据的例子。在图12中,阴影部分指示这样的数据项,该数据项在 ECC校正单元31的第一错误校正之后仍留有错误,并且CRC检测 单元32 - 1到32 - 8检测到了该错误。
如果所有读数据项在ECC校正单元31的第 一错误校正之后不存 在错误,纠错操作结束。即,不执行稍后描述的RS校正单元33的纠错。例如,停止从电源电路(未示出)向RS校正单元33的供电,或 停止从时钟电路(未示出)向RS校正单元33的时钟信号提供,从而 停止其纠错操作。在仅存在少量错误的情况下,这减少了数据读取时 间。另外,在该情况下,由于RS校正单元33不执行纠错操作,减少
此后,RS校正单元33执行第一纠错操作。具体地,由1024个 读数据项D(l, l)到D(l, 1024)构成的第二数据块UDbl和与第 二数据块UDbl相对应的4个RS码RS ( 1, 1)到RS ( 1, 4 )通过 临时存储电路20被发送到RS校正单元33 - 1。 RS校正单元33 - 1 使用4个RS码RS ( 1, 1)到RS ( 1, 4 )校正读数据项D (1, 1) 到D(l, 1024 )中的错误。相应于第2到第8行的RS校正单元33 -2到33-8执行与上述相同的处理。
在本实施例中,RS校正单元33 - 1到33 - 8并行地执行其校正 操作。RS校正单元33-1到33-8的并行操作减少了处理时间。以 RS校正单元33 - 1到33 - 8校正的第二校正后数据DC2被发送到临 时存储电路20。临时存储电路20更新存储在其中并且相应于第二校 正后数据DC2的数据。
图13示出了在RS校正单元33的第一纠错之后获得的块数据的 例子。如图13所示,通过RS校正单元33-l校正读数据项D(l, 2) 和D(l, 6)中的错误。另外,由RS校正单元33 - 8校正读数据项 D (8, 2)和D (8, 1022 )中的错误。
如上所述,在RS校正单元33的纠错之前,CRC检测单元32 指出包含错误的读数据的位置。因此,RS校正单元33仅对其中具有 检测到的错误的读数据执行纠错就足够了。这可以减少RS校正单元 33执行校正所需的时间,并且可以减少能耗。
此后,ECC校正单元31对页1到1028的数据执行第二纠错。 第二纠错与ECC校正单元31的第一纠错相同。图14示出了在ECC 校正单元31的第二纠错之后获得的块数据的例子。如图14所示,ECC 校正单元31校正读数据项D ( 2, 1) , D ( 3, 2 )和D ( 2, 1022 )中的错误。
随后,CRC检测单元32-1到32-8检测所有读数据项D和纠 错码(RS )中的错误。该检测与上述CRC检测单元32 - 1到32 - 8 的第一错误检测相同。此后,RS校正单元33-1到33-8分别对笫 二数据块UDbl到UDb8执行第二纠错。第二纠错与上述RS校正单 元33- 1到33-8的第一纠错相同。
图15示出了在RS校正单元33的第二纠错之后获得的块数据的 例子。如图15所示,RS校正单元33-2校正读数据项D (2, 5)中 的错误。另外,RS校正单元33-3校正读数据项D (3, 4), D(3, 7)和D (3, 1023)中的错误。因此,校正了读数据项D (1, 1)到 D (8, 1024)中的所有错误。
其错误已被校正的读数据项D (1, 1)到D (8, 1024 )从临时 存储电路20输出到外部。
图16示出了数据被写到半导体存储器12之后经过的时间和所需 的校正性能之间的关系。如图16所示,经过的时间越长,写到半导 体存储器12的数据内包含的错误数目越多。据此,根据错误数目的 增加改变纠错性能。确定第一纠错单元(ECC校正单元)31和第二 纠错单元(RS校正单元)33的纠错性能,从而不实现过度或不足的 纠错性能。具体地,确定第一纠错单元31和第二纠错单元33的纠错 性能,从而当经过的时间短时,仅有第一纠错单元31执行纠错,并 且在经过了预设的时间后(即,当错误数目突然增加时),第一和第 二纠错单元31和33都执行纠错。
如上面详细所述,在本实施例中,首先,使用第一纠错码(ECC) 纠错,并且使用第二纠错码(RS)对校正结果进行进一步的纠错。因 此,即使当第一纠错单元31和第二纠错单元33的纠错性能级别被设 置为低时,可以用不变的或缩小的电路规模保证所希望的校正性能。
另外,如果由第一纠错单元31执行的第一纠错的结果表明所有 读数据中都不包含错误,则RS纠错单元33不执行校正,从而当数据 中仅包含少量错误时,减少了数据读取所需的时间。结果,可以获得仅包含少量错误时数据读取时间的减少和包含大量错误时高校正性
能的实现两者。另外,由于RS纠错单元33的操作被有条件地停止, 可以减少能耗。
另外,使用第一纠错码(ECC)校正以列布置的数据中的错误, 并且使用第二纠错码(RS)校正以行布置的数据中的错误。因此,当 使用NAND闪存作为半导体存储器12时,可以对每个存储器块内的 所有页的数据执行纠错。另外,由于可以对出现错误的概率高的区域 执行若干次纠错,因此本实施例在错误出现的概率在数据存储位置之 间明显不同的半导体存储器中尤其有效。
另外,CRC检测单元32检测包含错误的读数据的位置,并且 RS校正单元33仅对检测到的读数据执行纠错。因此,最小化了 RS 才交正单元33的处理时间。
由于使用错误检测码(CRC)检测包含错误的数据D的位置, RS校正单元33不必执行检错。因此,可将所有RS码(本实施例中 4个RS码)用于纠错。
本领域的技术人员易于想到附加的优点和修改。因此,本发明在 其较宽的方面不限于此处描述的特定细节和示出的各个实施例。因 此,可以做出各种修改,而不脱离由所附权利要求及其等同物定义的 一般发明概念的精神和范围。
权利要求
1.一种半导体存储器件,包括临时存储电路,所述临时存储电路被配置为接收多个数据项,并且将所述数据项存储在行和列内;检测码产生器,所述检测码产生器被配置为分别产生用于检测所述多个数据项中的错误的多个第一检测码;第一校正码产生器,所述第一校正码产生器被配置为分别产生用于校正与各列相对应的多个第一数据块中的错误的多个第一校正码,每个第一数据块包含布置在所述列中的相应一列中的若干数据项;第二校正码产生器,所述第二校正码产生器被配置为分别产生用于校正与各行相对应的多个第二数据块中的错误的多个第二校正码,每个第二数据块包含布置在所述行中的相应一行中的若干数据项;和半导体存储器,所述半导体存储器被配置为非易失性地存储所述数据项、第一检测码、第一校正码和第二校正码。
2. 如权利要求1的所述器件,还包括第一校正器,所述第一校正器被配置为使用所述多个第一校正 码,校正所述多个第一数据块中的错误;检测器,所述检测器被配置为使用所述多个第一检测码,检测校 正后的第一数据块中的错误;和第二校正器,所述第二校正器被配置为使用所述多个第二校正 码,校正所检测的第一数据块中的错误。
3. 如权利要求1的所述器件,其中每个第一数据块包括对于布置 在所述列中的相应一列中的数据项产生的多个第一检测码。
4. 如权利要求1的所述器件,其中所述检测码产生器还产生用于 检测多个第二校正码中的错误的多个第二检测码。
5.如权利要求4的所述器件,其中笫一检测码产生器还产生第三 校正码,所述第三校正码用于校正由所述多个第二校正码构成的第三 数据块中的错误。
6. 如权利要求5的所述器件, 第二检测码。
7. 如权利要求2的所述器件, 重复各自的校正操作。
8. 如权利要求7的所述器件, 正后的笫一数据块。其中所述第三数据块包括所述多个 其中所述第 一和第二校正器交替地 其中所述临时存储电路更新所述校
9. 如权利要求2的所述器件,其中所述检测器产生指示具有检测到的错误的数据项的错误信息,和 第二校正器基于所述错误信息执行纠错。
10. 如权利要求1的所述器件,其中所述半导体存储器使用第一 数据尺寸作为最小单位来执行数据读和数据写,每个第一数据块具有 所述第一数据尺寸。
11. 如权利要求1的所述器件,其中所述半导体存储器是NAND闪存。
12. —种用于控制半导体存储器件的方法,该方法包括 接收多个数据项,并且将所述数据项存储在临时存储电路中的行和列中;分别产生用于检测所述多个数据项中的错误的多个第 一检测码;分别产生用于校正与所述列相对应的多个第一数据块中的错误 的多个第 一校正码,每个第 一数据块包含布置在所述列中的相应 一列中的若干数据项;分别产生用于校正与所述行相对应的多个第二数据块中的错误 的多个第二校正码,每个第二数据块包含布置在所述行中的相应一行中的若干数据项;和在半导体存储器中非易失性地存储所述数据项、第一检测码、第一校正码和第二才交正码。
13. 如权利要求12的所述方法,还包括使用所述多个第一校正码,校正所述多个第一数据块中的错误; 使用所述多个第 一检测码,检测校正后的笫 一数据块中的错误;和使用所述多个第二校正码,校正所检测的第 一数据块中的错误。
14. 如权利要求12的所述方法,其中每个第一数据块包括对于布 置在所述列中的相应一列中的数据项产生的多个第一检测码。
15. 如权利要求12的所述方法,其中产生所述检测码包括产生用 于检测多个第二校正码中的错误的多个第二检测码。
16. 如权利要求15的所述方法,产生第一检测码包括产生第三校 正码,所述第三校正码用于校正由所述多个第二校正码构成的第三数 据块中的错误。
17. 如权利要求16的所述方法,其中所述第三数据块包括所述多 个第二检测码。
18. 如权利要求13的所述方法,其中交替地重复使用第一校正码和第二校正码的两个校正操作。
19. 如权利要求13的所述方法,其中所述临时存储电路更新所述 校正后的第一数据块。
20. 如权利要求12的所述方法,其中所述半导体存储器是NAND闪存。
全文摘要
一种半导体存储器件包括临时存储电路,被配置为接收多个数据项,并且将数据项存储在行和列内,检测码产生器,被配置为分别产生用于检测数据项中的错误的第一检测码,第一校正码产生器,被配置为分别产生用于校正相应于列的第一数据块中的错误的第一校正码,每个第一数据块包含布置在所述列中的相应一列中的若干数据项,和第二校正码产生器,被配置为分别产生用于校正与所述行相对应的第二数据块中的错误的第二校正码,每个第二数据块包含布置在所述行中的相应一行中的若干数据项。
文档编号G06F11/10GK101622604SQ20088000672
公开日2010年1月6日 申请日期2008年7月17日 优先权日2007年9月26日
发明者菅野伸一 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1