针对NANDFlash冗余码的存取方法

文档序号:6781907阅读:356来源:国知局
专利名称:针对NAND Flash冗余码的存取方法
技术领域
本发明涉及NAND Flash技术领域,特别是针对NAND Flash冗余码的存取方法。
背景技术
NAND Flash是一种用于存储数据的存储介质。 一个NAND Flash由很多块 (BLOCK)组成,每个块又由一定数量的页面(PAGE)组成。 一般来说, 一个页 面由2K字节数据区和64字节备用区组成,结构如图l所示。
在数据存储逻辑上,每个页面可以分解为4个扇区(SECTOR),其中每个扇 区包括512字节数据区和16字节备用区。虽然NAND Flash的电荷能永久保存电 晶体的状态,但由于这些电荷被氧化物层隔开(以维持一个稳定的状态),而这些 氧化物层是会随着时间和使用多少而消失的,因此最终会导致Flash Memory失效。 这也就导致了 NAND Flash在生产和使用过程中会产生坏块。坏块是指该块所在其 中一页或多页在存储数据时,发生数据存储错误。而且,随着使用寿命的增加, 坏块出现的概率也在增大,在NAND Flash使用过程中,如果简单丢弃坏块会造成 很大的资源浪费。
所以为了提高FLASH存储的稳定性和使用效率,必须采用一定的数据纠错算 法。通过数据纠错算法后,会有一组冗余码附加在需要存储的数据后面。因此, NAND Flash制造商在设计NAND存储阵列时包含了一定的备用区用于存储这些 冗余码。比如,每512字节的数据块分配16字节的备用区。
通常,我们以一个扇区为单位进行编码,这样,我们就只有最大16字节的空 间存放冗余码。早期的NAND Flash工艺以SLC (Single-Cell)为主,单位数据块 的出错概率较小,NAND存储阵列中的备用区足够存储数据纠错算法产生的冗余 码。对于目前NAND Flash主流工艺MLC (Multi-Level-Cell),由于密度的增加导 致单位数据块出错概率增大,单位数据块所需要的纠错能力远大于SLC工艺的要 求。这就导致了 16字节的备用区已经不能存储下所有的冗余码。目前解决这一问 题的通常做法是采用不同的纠错算法或降低纠错能力,但是这些做法是以牺牲纠 错能力为前提的,不能满足NAND Flash MLC主流工艺的发展。

发明内容
本发明的目的是提供针对NAND Flash冗余码的存取方法,通过采用将NAND Flash块中的数据区做为备用区的扩展空间来存储更多的冗余码,可以大大提高纠 错能力。
本发明的技术方案如下
针对NAND Flash冗余码的存取方法,其特征在于将NAND Flash中 一个块 的n个页面作为备用区的扩展空间,其中n》l;写入数据时,数据存储在一个扇 区的数据区中,当需要纠错能力大于16字节的空间来存放冗余码时,冗余码的前 16字节放入该扇区自带的16字节备用区中,其余的字节存储在该扇区所对应的备 用区的扩展空间中。
所述页面被划分为等长的段,每一段作为NAND Flash的其余页面中每个扇区 备用区的扩展空间,每一段的长度等于冗余码字节减去16字节后的字节长度。
所述一个块的n个页面为第1页一第n页,则li页为备用区的扩展空间, 把li页划分为等长的m段,则从第n+l页开始为包含数据区和备用区的普通页; 以St表示第n+1页的第一个扇区,Rt表示第n+1页的第一个扇区所对应的备用区 的扩展空间,当&为第1页的第一段时,则表示第l页的第一段为第i!+l页的第 一个扇区的备用区对应的扩展空间;当n个页面为其他范围的页面时,以此类推。
所述NAND Flash写入数据到数据区时,按该数据区的逻辑地址寻址。
所述NAND Flash写入数据到一个扇区的数据区时,该扇区的备用区对应的扩 展空间所在的页数读入内部存储器RAM中。
所述NAND Flash在读取数据时,必须先读取数据区的数据、备用区的冗余码 和备用区对应扩展空间的冗余码,再通过解码器解码才能得到。
所述NAND Flash在读取数据时的具体步骤为首先,从RAM中提取页数Pn, 再将所对应页数Pn中的每个扇区的数据区512字节数据、备用区16字节冗余码以 及该扇区所对应的备用区扩展空间Rn中的冗余码一起通过解码器解码,就可以得 到原来所存入的数据。
本发明的有益效果
开辟了新的冗余码存储空间,在次空间内冗余码按块顺序排放,在读取某块 数据前,先将冗余码加载至系统内存,供解码单元使用。


图1为NAND Flash的结构示意图
图2为本发明页面中备用区和扩展空间对应关系示意图
图3为NAND Flash的一个扇区的组成结构示意图
图4为本发明NAND Flash的逻辑地址寻址示意图
图5为本发明存储数据的流程图
图6为本发明读取数据的流程图
图7为本发明实施例2的组成示意图
图8为本发明实施例3的组成示意图
具体实施例
实施例1
针对NAND Flash冗余码的存取方法,将NAND Flash中一个块的n个页面作 为备用区的扩展空间,其中n》l;写入数据时,数据存储在一个扇区的数据区中, 当需要纠错能力大于16字节的空间来存放冗余码时,冗余码的前16字节放入该 扇区自带的16字节备用区中,其余的字节存储在该扇区所对应的备用区的扩展空 间中。
所述页面被划分为等长的段,每一段作为NAND Flash的其余页面中每个扇区 备用区的扩展空间,每一段的长度等于冗余码字节减去16字节后的字节长度。
如图2所示,所述一个块的n个页面为第l页一第n页,贝Uli页为备用区 的扩展空间,把1—n页划分为等长的m段,则从第n+l页开始为包含数据区和备 用区的普通页;以S!表示第n+l页的第一个扇区,Si由数据区和备用区组成(如 图3所示),R!表示第n+1页的第一个扇区所对应的备用区的扩展空间,当&为 第1页的第一段时,则表示第1页的第一段为第n+l页的第一个扇区的备用区对 应的扩展空间;当n个页面为其他范围的页面时,以此类推。'
所述NAND Flash写入数据到数据区时,按该数据区的逻辑地址寻址,如图4 所示。
如图2和图5所示,所述NAND Flash写入数据到一个扇区的数据区时,该扇 区的备用区对应的扩展空间所在的页数读入内部存储器RAM中。
如图6所示,所述NANDFlash在读取数据时,必须先读取数据区的数据、备 用区的冗余码和备用区对应扩展空间的冗余码,再通过解码器解码才能得到。
所述NAND Flash在读取数据时的具体步骤为首先,从RAM中提取页数Pn,再将所对应页数Pn中的每个扇区的数据区512字节数据、备用区16字节冗余码以 及该扇区所对应的备用区扩展空间Rn中的冗余码一起通过解码器解码,就可以得 到原来所存入的数据。如图2所示,以PnW为例,从RAM中提取页数Pn+i,再将
所对应页数Pn+1中的扇区S!—S4的数据区512字节数据、备用区16字节冗余码以 及该4个扇区所对应的备用区扩展空间Rr~S4中的冗余码一起通过解码器解码, 就可以得到原来所存入的数据。 实施例2
将本方法运用到使用NAND Flash作为存储介质的存储器中,以提高存储器的 纠错能力。
采用本方法存取冗余码的NAND Flash与固态硬盘控制器、固态硬盘接口单元 一起组成固态硬盘。先将固态硬盘NAND Flash中一个块的其中一个页面或几个页 面作为备用区的扩展空间;并在页面内把用户数据区划分为等长的小段,每一段 作为页面中每个扇区的备用区的扩展空间;再将要操作的备用区的扩展空间所在 的页数读入内部存储器RAM中。
存储数据时,数据通过固态硬盘接口单元发送到固态硬盘控制器,控制器通 过数据纠错算法将需要存储的数据和冗余码发送到NAND Flash中存储,数据存储 在数据区中。当固态硬盘的纠错能力大于8bit时,16字节冗余码仍存储在NAND Flash的备用区中,其余的冗余码则存储在备用区的扩展空间中。
读取数据时,将数据区需要读取的数据、备用区的冗余码及对应备用区扩展 空间的冗余码一起传送到固态硬盘控制器中,控制器通过解码还原出原数据后再 传送固态硬盘接口单元。 实施例3
采用本方法存取冗余码的NAND Flash与U盘控制器、U盘接口单元一起组 成U盘。先将U盘NAND Flash中一个块的其中一个页面或几个页面作为备用区 的扩展空间;并在页面内把用户数据区划分为等长的小段,每一段作为页面中每 个扇区的备用区的扩展空间;再将要操作的备用区的扩展空间所在的页数读入内 部存储器RAM中。
存储数据时,数据通过U盘接口单元发送到U盘控制器,控制器通过数据纠 错算法将需要存储的数据和冗余码发送到NAND Flash中存储,数据存储在数据区 中。当U盘的纠错能力大于8bit时,前16字节冗余码存储在NAND Flash的备用区中,其余的冗余码则存储在备用区的扩展空间中。
读取数据时,将数据区需要读取的数据、备用区的冗余码及对应备用区扩展 空间的冗余码一起传送到U盘控制器中,控制器通过解码还原出原数据后再传送 U盘接口单元。
权利要求
1、针对NAND Flash冗余码的存取方法,其特征在于将NAND Flash中一个块的n个页面作为备用区的扩展空间,其中n≥1;写入数据时,数据存储在一个扇区的数据区中,当需要纠错能力大于16字节的空间来存放冗余码时,冗余码的前16字节放入该扇区自带的16字节备用区中,其余的字节存储在该扇区所对应的备用区的扩展空间中。
2、 根据权利要求1所述针对NAND Flash冗余码的存取方法,其特征在于 所述页面被划分为等长的段,每一段作为^AND Flash的其余页面中每个扇区备用 区的扩展空间,每一段的长度等于冗余码字节减去16字节后的字节长度。
3、 根据权利要求1所述针对NAND Flash冗余码的存取方法,其特征在于 所述一个块的n个页面为第1页一第n页,则li页为备用区的扩展空间,把l i页划分为等长的m段,则从第n+l页开始为包含数据区和备用区的普通页; 以S!表示第n+l页的第一个扇区,R,表示第n+l页的第一个扇区所对应的备用区 的扩展空间,当Ri为第1页的第一段时,则表示第1页的第一段为第n+l页的第 一个扇区的备用区对应的扩展空间;当n个页面为其他范围的页面时,以此类推。
4、根据权利要求l所述针对NANDFlash冗余码的存取方法,其特征在于 所述NAND Flash写入数据到数据区时,按该数据区的逻辑地址寻址。
5、 根据权利要求1或3所述针对NAND Flash冗余码的存取方法,其特征在 于所述NAND Flash写入数据到一个扇区的数据区时,该扇区的备用区对应的扩 展空间所在的页数读入内部存储器RAM中。
6、 根据权利要求l所述针对NAND Flash.冗余码的存取方法,其特征在于 所述NAND Flash在读取数据时,必须先读取数据区的数据、备用区的冗余码和备 用区对应扩展空间的冗余码,再通过解码器解码才能得到。
7、 根据权利要求6所述针对NAND Flash冗余码的存取方法,其特征在于 所述NAND Flash在读取数据时的具体步骤为首先,从RAM中提取页数Pn,再将所对应页数Pn中的每个扇区的数据区512字节数据、备用区16字节冗余码以及 该扇区所对应的备用区扩展空间Rn中的冗余码一起通过解码器解码,就可以得到 原来所存入的数据。
全文摘要
本发明公开了针对NAND Flash冗余码的存取方法,其特征在于将NANDFlash中一个块的n个页面作为备用区的扩展空间,其中n≥1;写入数据时,数据存储在一个扇区的数据区中,当需要纠错能力大于16字节的空间来存放冗余码时,冗余码的前16字节放入该扇区自带的16字节备用区中,其余的字节存储在该扇区所对应的备用区的扩展空间中;开辟了新的冗余码存储空间,在次空间内冗余码按块顺序排放,在读取某块数据前,先将冗余码加载至系统内存,供解码单元使用。
文档编号G11C29/24GK101425342SQ20081004640
公开日2009年5月6日 申请日期2008年10月29日 优先权日2008年10月29日
发明者防 周, 邹铮贤 申请人:四川登巅微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1