具有自适应纠错能力的bch码纠错方法

文档序号:6736823阅读:2758来源:国知局
专利名称:具有自适应纠错能力的bch码纠错方法
技术领域
本发明属于非挥发存储器中的数据纠错领域,特别涉及具有自适应纠错能力的 BCH码纠错方法。
背景技术
NAND型快闪存储器广泛地应用于大容量的数据存储产品中(包括MP3,平板电脑, 手机等)。NAND型快闪存储器制造工艺在不断缩小,新一代NAND型快闪存储器的工艺节点可以达到25nm。这使得快闪存储器所允许的最多编程擦除次数也在不断减小。而快闪存储器使用过程中,随着编程擦除操作的不断增加,其内部的比特错误率(BER)也随之不断增加,因此NAND型快闪存储器产品中需要使用纠错码技术来提高其可靠性。纠错码技术是一种能够有效提高系统可靠性的技术,第一次被提出是在1948年 Claude ShannonMathematical Theory of Communication''^, Ι Λ+^ W^ 展,ECC技术目前已广泛应用于通信系统、无线应用、光盘存储等领域。ECC技术的原理是 向原始的信息数据中添加冗余位,进行编码;对接收到的信息,利用冗余位能够找出接收信息中错误的位置,并进行纠正,从而恢复原始的信息数据,这个过程也称为解码。BCH码是Bose-Chaudur-Hocquenghem码的缩写,它是一种能够纠正多个错误的线性纠错码(error correction code,ECC),其特点是进行数据处理的单位是码字 (codeword),码字是具有固定长度的信息块。目前主流的NAND型快闪存储器通常使用BCH 码来提高快闪存储器的可靠性,延长存储器的使用寿命。如图1所示是BCH码的码字结构图,BCH码通常表示为BCH(n,k,t),其中η为BCH码字的长度;k为BCH码字中数据信息的长度;t为该BCH码所允许的纠正错误的个数;n-k为冗余位的长度,n-k的值越大,冗余位的开销越多,则BCH码的纠错能力越强。各参数的约束如下码字长度n= 2m-l信息数据的长度k彡2m-mt-l校验信息的长度n_k彡mt纠错能力所有小于或等于t位错误的情况。(m > 2,m, n, k,t均为正整数)有些情况下实际应用中的信息数据长度并不恰好等于BCH(n,k)码定义中的信息数据长度。例如,在快闪存储器中通常信息位个数为2m,而根据上述BCH码的定义所计算出的k兴2m,在这种情况下,可以使用缩短的BCH码。所谓缩短BCH码,是指在BCH(n,k,t)码的码字中使最高位的P个信息位均置为0,构成一个(n-p,k-p)的码,这称为BCH码的缩短码,使k-p = 2m,从而满足快闪存储器中应用BCH码的要求。需要指出的是BCH缩短码有着与BCH码同样的纠错能力,均为t,表示为BCH(n-p,k-p, t)。应用于快闪存储器中的BCH编解码系统如图2所示。在快闪存储器中应用BCH 码纠错系统时,写入数据的过程是将k位的数据首先通过编码器产生相应的冗余位,形成一个η位的码字。然后根据相应的地址,将码字写入到闪存存储阵列对应的页(Page)中。 由于存储单元的器件漏电,相邻存储单元间的电容耦合效应,以及页长期编程擦除的高压操作等各种因素的影响,使得一页中存储的信息可能出现错误。而读取数据的过程是首先通过快闪存储器的读操作,从存储阵列中读出一页的码字信息,然后这一页的信息经过BCH 解码器,解码器将搜索码字信息中的错误,并在其纠错能力范围内纠正相应的错误,从而恢复正确的数据信息。通过BCH码纠错系统能够弥补由于存储阵列的漏电、电容耦合,以及高压操作等各种物理因素所导致的闪存可靠性的下降,延长闪存的寿命,因此纠错技术成为闪存应用的关键设计技术。从图2可以看出,页(page)是NAND型快闪存储器进行数据存储最基本的物理单位。NAND型快闪存储器的每一页是由有效的信息数据区和空闲存储区组成。空闲存储区主要用于存放BCH纠错码的冗余位、该页的逻辑地址、擦除次数等其它信息。目前主流NAND 型快闪存储器中一页的大小是I Byte的信息位和64Byte的空闲存储区,或者是4K Byte 的信息位和128Byte的空闲存储区。因此存储在NAND型快闪存储器中的BCH码的冗余位是有限的。由于NAND型快闪存储器中使用BCH码时,BCH码的冗余位是有限的,因而BCH码的纠错位数t有上限值。目前的闪存产品中采用的是BCH(n,k,t)码中k为主机文件系统中扇区的大小,通常为512Byte或1Kbyte,t为一固定值。制造工艺的不断缩小,能够在同样的硅片面积上制造更高容量的快闪存储器产品,从而降低存储每比特的成本,然而制造工艺的不断缩小也使得闪存的可靠性严重下降,NAND型快闪存储器所允许的最多编程擦除次数(P/E cycles)(衡量闪存可靠性下降的一个重要指标)逐渐减少,目前新一代的闪存产品将采用25nm工艺制程,每个存储单元中存储2-bit信息,然而它所允许的P/E cycles 仅为5000,使可靠性严重下降。因此目前闪存中BCH码纠错系统的缺点是BCH码有其固定的纠错能力,而新一代NAND型快闪存储器的可靠性不断下降,一旦闪存一页中比特错误的个数超过BCH码的纠错能力,则该页将视为永久失效页,BCH码有限的纠错能力使得NAND型快闪存储器的寿命减少。

发明内容
本发明针对上述缺陷公开了具有自适应纠错能力的BCH码纠错方法,它包括以下步骤1)当NAND型快闪存储器的页编程擦除次数小于或等于a时,选取sector-level BCH码作为NAND型快闪存储器的纠错码;2)当NAND型快闪存储器的页编程擦除次数大于a且小于b时,读取操作时所读出的码字中比特错误的个数超过了 sector-level BCH码的纠错能力,选取page-level BCH 码作为NAND型快闪存储器的纠错码;3)当NAND型快闪存储器的页编程擦除次数大于或等于b时,读取操作时所读出的码字中比特错误的个数超过了 page-level BCH码的纠错能力,则将该页标记为失效页。所述a和b的取值范围为3000彡a < b彡10000。所述sector-level BCH 码表示为 BCH(n,k,t),η 为 sector-level BCH 码字的长度;k为sector-level BCH码字中数据信息的长度;t为该sector-level BCH码所允许的纠正错误的个数;各参数的约束如下η = 2m-l ;
k 彡 2m-mt-l ;n-k ^ mt ;n、k、t和m均为正整数,m> 2 ;当实际应用中的数据信息的长度不等于k时,sector-level BCH码表示为 BCH(n-p, k-p,t),在BCH(n-p,k-p, t)码字中,将最高的ρ个信息位均置为0 ;操作系统对存储设备访问的逻辑单位为扇区,扇区的大小为512Byte,采用 sector-level BCH码有利于操作系统对NAND型快闪存储器的随机访问。所述page-level BCH 码表示为 BCH(η,,k,,t,),η,为 page-levelBCH 码字的长度;k’为page-level BCH码字中数据信息的长度;t’为该page-level BCH码所允许的纠正错误的个数;各参数的约束如下n,= 2m_l ;k,彡 2m,-m,t,-1 ;η,-k,< m,t,;n,、k,、t,和 m,均为正整数,m,> 2 ;当实际应用中的数据信息的长度不等于k’时,sector-level BCH码表示为 BCH(η‘ -p’,k’ -p’,t’),在BCH(n’ -p’,k’ -p’,t’ )码字中,将最高的ρ’个信息位均置为 0 ;采用page-level BCH码能提高NAND型快闪存储器的可靠性。本发明的有益效果为本发明采用sector-level BCH码时,码字长度较短,码字中信息长度为主机文件系统扇区的大小,因而能够在保证系统可靠性的基础上最大限度地提高闪存对主机的响应速度;采用page-level BCH码时,能够在一个快闪存储器页中有限的冗余位内最大程度地提高BCH码的纠错能力,并能够最大限度地提高纠错的性能,从而能够提高快闪存储器的使用寿命。本发明的设计方法和电路结构,与其附加的对象和好处,能在研读下列多个实施例和相应附图时被充分了解。


图1为BCH码的码字结构;图2为应用于闪存的BCH纠错系统结构图;图3为本发明实施例中分别采用sector-level BCH码与page-level BCH码时, 闪存一页中的数据信息示意图。图4为本发明实施例中反映sector-level BCH码与page-level BCH码纠错能力的错误率曲线图;图5为本发明实施例中自适应BCH纠错系统编码方案选择策略原理图。
具体实施例方式下面结合附图对本发明作进一步详细说明。如图3、图5所示,具有自适应纠错能力的BCH码纠错方法包括以下步骤1)在NAND型快闪存储器刚开始使用时,页编程擦除次数较小(小于或等于a),快闪存储器内部的比特错误率(BER)也较小,这时选取sector-level BCH码(以扇区 (Sector)为单位)作为NAND型快闪存储器的纠错码;2)随着NAND型快闪存储器的不断使用,其内部的页编程擦除次数(P/E cycles) 不断增加,比特错误率增加,当页编程擦除次数增加到一定值(大于a时)导致比特错误的个数超过原来BCH码的纠错能力时,这时选取page-level BCH码(以页(Page)为单位) 作为NAND型快闪存储器的纠错码;3)当NAND型快闪存储器的页编程擦除次数(P/E cycles)大于或等于b时,则将该页标记为失效页。所述a和b的取值范围为3000彡a < b彡10000。而对于不同的NAND型快闪存储器,a和b各自更具体的取值范围是不同的,可以通过进行测试实验来确定a和b各自更具体的取值范围。sector-level BCH 码表示为 BCH (n, k,t),η 为 sector-level BCH 码字的长度;k 为sector-level BCH码字中数据信息的长度(k同时为主机的扇区大小,通常为512Byte 或1KByte) ;t为该sector-level BCH码所允许的纠正错误的个数;各参数的约束如下η = 2m-l ;k 彡 2m-mt-l ;校验信息的长度n_k ^ mt ;n、k、t和m均为正整数,m> 2 ;当实际应用中的数据信息的长度不等于k时,sector-level BCH码表示为 BCH(n-p, k-p,t),在BCH(n-p,k-p, t)码字中,将最高的ρ个信息位均置为0。page-level BCH 码表示为 BCH(η,,k,,t,),η,为 page-level BCH 码字的长度; k’为page-level BCH码字中数据信息的长度(k’为快闪存储器中页的大小,通常为4KByte 或8KByte) ;t’为该page-level BCH码所允许的纠正错误的个数;各参数的约束如下n,= 2m_l ;k,彡 2m,-m,t,-1 ;校验信息的长度n’ -k’ ^m' t ;n,、k,、t,和 m,均为正整数,m,> 2 ;当实际应用中的数据信息的长度不等于k’时,sector-level BCH码表示为 BCH(η‘ -p’,k’ -p’,t’),在BCH(n’ -p’,k’ -p’,t’ )码字中,将最高的ρ’个信息位均置为 O0本发明主要有两个设计思想Dsector-level BCH码和page-level BCH码占用相同的冗余字节在BCH码中,冗余信息是存储在NAND型快闪存储器内部每页的空闲存储区上, 而每页的空闲存储区是有限的,除了存储纠错码的冗余位,还要存储该页的逻辑地址,擦除次数等。sector-level BCH码和page-level BCH码具有相同的冗余位,例如,对于 sector-level码,设定数据信息长度k = 512Byte,纠错位数t = 8,因此需要采用BCH(η_ρ, k-p,t)码,这时,n-p = 4200,k-p = 4096,t = 8,m = 13(即采用 BCH(4200,4096,8)码), 冗余位长度为mt = 104Bit ;对于page-level码,设定数据信息长度k,= 4KByte,纠错位数 t,= 52,因此需要采用 BCH(η,-p,,k,-p,,t,)码,这时,η,-ρ,= 33600,k,-ρ,=32768,t,= 52,m,= 16 (即采用 BCH(33600,32768,52)码),相应的冗余位长度为 m,t, =832Bit = 104Byte。显然,当使用k = 512Byte的sector-level BCH码存储4KByte的信息位时,所需要的冗余位长度为8*104Bit = 104Byte,因此与k,= 4KByte的page-level BCH码占用的冗余位相同。因此,本发明既充分利用了冗余位的效率,又不会影响其他操作对剩余空闲存储区的要求。2) sector-level BCH码和page-level BCH码具有不同的纠错能力虽然sector-level BCH码和page-level BCH码有着相同的冗余位,却有着差别很大的纠错能力。反映两者纠错能力的错误率曲线如图4所示。NAND型快闪存储器的原始错误率(Raw Bit Error Rate)是指没有使用纠错码技术时,在NAND型快闪存储器的寿命期限内,NAND型快闪存储器吞吐的全部数据量中,读出数据中错误比特所占的比率。通常在NAND型快闪存储器应用的系统中,系统要求的错误率(BER)小于10_15,也就是说,快闪存储器吞吐IO15Bit的数据后才允许有错误出现。从图4中可以清晰地看出,对于系统所要求的错误率,page-level BCH码所允许的原始错误率(raw BER)比使用sector-level BCH 码所允许的原始错误率(raw BER)高出约10倍,因此page-level BCH码比sector-level BCH码有着更强的纠错能力。采用sector-level BCH的优点是sector-level BCH的码长较短,因此解码器的延迟时间较短,解码速度较快,另外,操作系统对存储设备访问的逻辑单位为扇区,扇区的大小为512Byte,因此采用sector-level BCH有利于操作系统对NAND型快闪存储器的随机访问。而采用page-level BCH的优点是能最大限度地提高NAND型快闪存储器的可靠性。 因此,本发明能够结合两者的优点,实现高速高可靠的纠错。本发明充分利用NAND型快闪存储器错误率单调递增性的特点,通过设定NAND型快闪存储器中页编程擦除次数的阈值,动态选择快闪存储器中选用的纠错码。
权利要求
1.具有自适应纠错能力的BCH码纠错方法,其特征在于,包括以下步骤1)当NAND型快闪存储器的页编程擦除次数小于或等于a时,选取sector-levelBCH 码作为NAND型快闪存储器的纠错码;2)当NAND型快闪存储器的页编程擦除次数大于a且小于b时,读取操作时所读出的码字中比特错误的个数超过了 sector-level BCH码的纠错能力,选取page-level BCH码作为NAND型快闪存储器的纠错码;3)当NAND型快闪存储器的页编程擦除次数大于或等于b时,读取操作时所读出的码字中比特错误的个数超过了 page-level BCH码的纠错能力,则将该页标记为失效页。
2.根据权利要求1所述的具有自适应纠错能力的BCH码纠错方法,其特征在于,所述a 和b的取值范围为3000彡a < b彡10000。
3.根据权利要求1所述的具有自适应纠错能力的BCH码纠错方法,其特征在于,所述 sector-level BCH 码表示为 BCH(n,k,t),η 为 sector-level BCH 码字的长度;k 为 sector-level BCH码字中数据信息的长度;t为该sector-level BCH码所允许的纠正错误的个数;各参数的约束如下η = 2m-l ; k 彡 2m-mt-l ; n-k ^ mt ;n、k、t和m均为正整数,m> 2 ;当实际应用中的数据信息的长度不等于k时,sector-level BCH码表示为BCH(n_p, k-p,t),在BCH(n-p,k-p,t)码字中,将最高的ρ个信息位均置为0 ;操作系统对存储设备访问的逻辑单位为扇区,扇区的大小为512Byte,采用 sector-level BCH码有利于操作系统对NAND型快闪存储器的随机访问。
4.根据权利要求1所述的具有自适应纠错能力的BCH码纠错方法,其特征在于,所述 page-level BCH 码表示为 BCH(η,,k,,t,),η,为 page-level BCH 码字的长度;k,为 page-level BCH码字中数据信息的长度;t’为该page-level BCH码所允许的纠正错误的个数;各参数的约束如下n,= 2m-l ;k,彡 2m,-m,t,-1 ;η,_k,彡 m,t,;n,、k,、t,和m,均为正整数,m’ > 2 ;当实际应用中的数据信息的长度不等于k’时,sector-level BCH码表示为 BCH(η‘ -p’,k’ -p’,t’),在BCH(n’ -p’,k’ -p’,t’ )码字中,将最高的ρ’个信息位均置为 0 ;采用page-level BCH码能提高NAND型快闪存储器的可靠性。
全文摘要
本发明公开了属于非挥发存储器中的数据纠错领域的具有自适应纠错能力的BCH码纠错方法。它分为以下步骤1)当NAND型快闪存储器的页编程擦除次数小于或等于a时,选取sector-level BCH码作为纠错码;2)当NAND型快闪存储器的页编程擦除次数大于a且小于b时,选取page-level BCH码作为纠错码;3)当NAND型快闪存储器的页编程擦除次数大于或等于b时,将该页标记为失效页。本发明的有益效果为采用sector-level BCH码时,能够提高闪存对主机的响应速度;采用page-level BCH码时,能够提高纠错的性能,从而提高快闪存储器的使用寿命。
文档编号G11C29/42GK102394114SQ20111035944
公开日2012年3月28日 申请日期2011年11月14日 优先权日2011年11月14日
发明者周润德, 潘立阳, 王雪强 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1