基于ECC纠错码的NAND-FLASH坏块恢复方法技术

技术编号:9794469 阅读:176 留言:0更新日期:2014-03-21 18:46
本发明专利技术属于航空电子技术领域,特别是涉及到基于ECC纠错码的NAND-FLASH坏块恢复方法,针对由m片NAND-FLASH且每片FLASH有n个Block块构成的大容量数据存储设备,首先将数据编码写入前m-k片NAND-FLASH的Block块中,然后在后k片NAND-FLASH的Block块中放入该行数据编码后的效验码,此后的编码以此类推。本发明专利技术应用于由多片NAND-FLASH组成的大容量数据存储设备中,如果在擦写NAND-FLASH过程中遇到坏块,不需要像传统方法那样拷贝数据到完好的NAND-FLASH数据块中,降低了NAND-FLASH坏块管理的难度。

【技术实现步骤摘要】
基于ECC纠错码的NAND-FLASH坏块恢复方法
本专利技术属于航空电子
,涉及到大容量数据存储速度及可靠性技术,特别是涉及到基于ECC纠错码的NAND-FLASH坏块恢复方法。
技术介绍
NAND-FLASH因其体积小、非易失性、多次可擦除性、更快的写入和擦除速度以及更低廉的每比特价格等特点在电子产品应用市场中得到了迅猛的发展。NAND-FLASH在产品出厂时会做一次坏块标定。在使用过程中,由于程序设计者在编程过程中对NAND-FLASH的反复擦除与写入会导致NAND-FLASH —定程度上的磨损,从而出现坏块,导致存储数据的不可靠或丢失。目前传统的针对NAND-FLASH使用过程中产生的坏块处理主要有两种方法:第一种方法是首先标记出当前出现的坏块,然后将已写入的数据全部拷贝至新的数据块中,接着依次写入后续数据。第二种方法是直接标记出NAND-FLASH的坏块,同时丢掉该坏块中已写入的数据,跳转到新的数据块中进行数据写入。然而,采用方法一进行坏块处理时,会导致数据写入速度不稳定,并且当坏块已写入数据无法正常读取时会造成数据的丢失。而采用方法二进行坏块处理时,会直接导致已写入当前坏块中的数据丢失。
技术实现思路
专利技术目的:本专利技术的目的是提出一种基于ECC纠错码的NAND-FLASH坏块恢复方法,解决在NAND-FLASH使用过程中,尤其是大容量数据存储过程中出现的坏块恢复处理问题。相对于传统的两种处理方法,该技术即不影响数据流的写入速度,也不会导致当前坏块的数据丢失。技术方案:基于ECC纠错码的NAND-FLASH坏块恢复方法,针对由m片NAND-FLASH且每片FLASH有n个Block块构成的大容量数据存储设备,其特征在于,首先将数据编码写入前m-k片NAND-FLASH的Block块中,然后在后k片NAND-FLASH的Block块中放入该行数据编码后的效验码,此后的编码以此类推,每一行的前m-k片NAND-FLASH的Block块FLASH1-FLASHnrit 中存储编码数据,而后 k 片 NAND-FLASH 的 Block 块 FLASHn^1-FLASHni 中存放该行数据编码后的效验码;当某一行出现坏块要对存储数据进行恢复还原时,首先对坏块区设定一个初值,然后利用该行的后k片NAND-FLASH的Block块中的效验码进行解码,对坏块中的数据进行纠错,从而完成对坏块中数据的恢复。2、根据权利要求1所述的基于ECC纠错码的NAND-FLASH坏块恢复方法,其特征在于,该效验码可由BCH编码或者RS编码方法产生。3、根据权利要求1或2所述的基于ECC纠错码的NAND-FLASH坏块恢复方法,其特征在于,具体包括以下 步骤:步骤1:将所要记录和存储的数据依次写入FLASH1-FLASHk芯片中Blockl的第一行,即Byte1-Byte4依次存入FLASHrFLASHK,每片FLASH都为8bit数据;步骤2:通过ECC编码计算所写入数据的效验码;步骤3:写完第一行数据后,进行第二行数据及其校验码录入,之后依次类推;步骤4:读取数据时,对于出错的FLASH数据块,则对应的Byte数据无法读取,只能读取未出错FLASH数据块对应的Byte数据及其对应的校验码;步骤5:对出错FLASH数据块对应的Byte数据赋以固定初值,然后通过BCH解码完成该Byte数据的纠正。有益效果:(I)本专利技术应用于由多片NAND-FLASH组成的大容量数据存储设备中,如果在擦写NAND-FLASH过程中遇到坏块,不需要像传统方法那样拷贝数据到完好的NAND-FLASH数据块中,可以完全不考虑坏块的情况,简单易行,降低了 NAND-FLASH坏块管理的难度,同时不会因为坏块丢失数据。(2)应用本专利技术可以避免因为外力或者使用寿命造成个别FLASH损坏而造成的数据丢失。(3)应用本专利技术可以避免传统方法中坏块造成的数据写入速度不稳定情况。(4)应用本专利技术可以在不丢失或备份数据的情况对大容量数据存储设备中个别寿命到期的NAND-FLASH进行更换和数据恢复。【附图说明】图1为本专利技术实施例中存储设备中数据存储区示意图;图2数据存储内容示例。【具体实施方式】下面结合附图及实施例对本专利技术做进一步详细描述,请参阅图1至图2。基于ECC纠错码的NAND-FLASH坏块恢复方法,针对由m片NAND-FLASH且每片FLASH有n个Block块构成的大容量数据存储设备,首先将Byte数据写入前m_k片NAND-FLASH的Block块中,然后在后k片NAND-FLASH的Block块中放入该行Byte数据编码后的校验码,此后的编码以此类推,每一行的前m-k片NAND-FLASH (FLASH1-FLASHm^k)的Block块中存储Byte数据,而后k片NAND-FLASH (FLASHm_k+1-FLASHm)的Block块中存放该行Byte数据编码后的效验码;当某一行出现坏块要对存储Byte数据进行恢复还原时,首先对坏块区对应的Byte数据设定一个初值,然后利用该行的后k片NAND-FLASH的Block块中的校验码进行解码,对坏块中的Byte数据的初值进行纠错,从而完成对坏块中数据的恢复。该校验码可由BCH编码或者RS编码方法产生。存储校验码的NAND-FLASH片数K,可根据纠正的错误位数按照所选择编码的理论进行选择。实施例:假设该设备由8片NAND FLASH芯片,分别对应FLASHl~FLASH8,每片FLASH有n个块,分别对应Block1~Blockn,具体包括以下步骤:步骤1:将所要记录和存储的数据依次写入Flash1-Flash4芯片中Biocki的第一行,即Bytel-Byte4依次存入FLASH1-FLASH4,每片FLASH都为8bit数据;步骤2:通过ECC编码计算所写入数据的效验码,并将其写入FLASH5~FLASH8中;步骤3:写完第一行数据后,进行第二行数据及其校验码,之后依次类推;步骤4:读取数据时,对于出错的FLASH数据块,则对应的Byte数据无法读取,只能读取未出错FLASH数据块对应的Byte数据及其对应的校验码;步骤5:对出错FLASH数据块对应的Byte数据赋以固定初值,然后通过BCH解码完成该Byte数据的纠正。本文档来自技高网...

【技术保护点】
基于ECC纠错码的NAND?FLASH坏块恢复方法,针对由m片NAND?FLASH且每片FLASH有n个Block块构成的大容量数据存储设备,其特征在于,首先将数据编码写入前m?k片NAND?FLASH的Block块中,然后在后k片NAND?FLASH的Block块中放入该行数据编码后的效验码,此后的编码以此类推,每一行的前m?k片NAND?FLASH的Block块FLASH1?FLASHm?k中存储编码数据,而后k片NAND?FLASH的Block块FLASHm?k+1?FLASHm中存放该行数据编码后的效验码;当某一行出现坏块要对存储数据进行恢复还原时,首先对坏块区设定一个初值,然后利用该行的后k片NAND?FLASH的Block块中的效验码进行解码,对坏块中的数据进行纠错,从而完成对坏块中数据的恢复。

【技术特征摘要】
1.基于ECC纠错码的NAND-FLASH坏块恢复方法,针对由m片NAND-FLASH且每片FLASH有n个Block块构成的大容量数据存储设备,其特征在于,首先将数据编码写入前m-k片NAND-FLASH的Block块中,然后在后k片NAND-FLASH的Block块中放入该行数据编码后的效验码,此后的编码以此类推,每一行的前m-k片NAND-FLASH的Block块FLASH1-FLASHnHt中存储编码数据,而后k片NAND-FLASH的Block块FLASHm_k+1-FLASHm中存放该行数据编码后的效验码;当某一行出现坏块要对存储数据进行恢复还原时,首先对坏块区设定一个初值,然后利用该行的后k片NAND-FLASH的Block块中的效验码进行解码,对坏块中的数据进行纠错,从而完成对坏块中数据的恢复。2.根据权利要求1所述的基于ECC纠错码的NAND-...

【专利技术属性】
技术研发人员:程金贾宁
申请(专利权)人:陕西千山航空电子有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1