一种NANDFlash烧写数据的处理、使用方法及装置、系统的制作方法

文档序号:6765743阅读:561来源:国知局
一种NAND Flash烧写数据的处理、使用方法及装置、系统的制作方法
【专利摘要】本发明公开了一种NAND?Flash烧写数据的处理、使用方法及装置、系统。其中,NAND?Flash烧写数据的处理方法包括:识别出NAND?Flash烧写数据中的所有半空块,半空块是烧写数据中部分页写有数据、其余页空白的块,在所有半空块的所有空白页中写入预设标记字符,以使半空块均转换为全满块。通过上述方式,本发明能够使得烧写数据块都满足每个页都空或者每个页都写有数据的要求,从而避免高温贴片时已烧写数据出现损坏,提高产品质量和可靠性。
【专利说明】—种NAND Flash烧写数据的处理、使用方法及装置、系统
【技术领域】
[0001]本发明涉及计算机数据存储领域,特别是涉及一种NAND Flash烧写数据的处理、使用方法及装置、系统。
【背景技术】
[0002]非易失闪存(NAND Flash)以其容量大、访问速度快以及单位容量的成本低廉等特点,在嵌入式领域越来越广泛地被用作存放数据的载体。虽然NAND Flash在各类闪存芯片中有容量和成本上的优势,但可靠性相对较差也是其固有的缺陷。
[0003]NAND Flash根据其工艺结构又可分为单层单元(Single Level Cell,SLC)和多层单元(Multi Level Cell, MLC)两种类型。SLC用一个存储单元存放一个比特的信息,而MLC 一个存储单元则可以存放两个字比特的信息,因此MLC有着成本上的天然优势,随着市场对NAND Flash容量越来越大的需求,MLC的应用逐渐广泛。但也由于其特殊的物理结构,MLC的可靠性相对于SLC要差地多,因此在取得成本优势的同时提高MLC可靠性成了必须解决的问题。
[0004]NAND Flash在量产时,一般是使用专门的烧录器将烧写数据写入到NAND Flash,然后通过高温贴片方式将NAND Flash贴片到电路板上。但是高温贴片可能会使其中已经写好的数据发生损坏,从而影响产品质量。

【发明内容】

[0005]本发明主要解决的技术问题是提供一种NAND Flash烧写数据的处理、使用方法及装置、系统,能够使低成本的MLC NAND Flash大规模应用于产品中,在保证生产效率的同时还能确保NAND Flash的可靠性。
[0006]为解决上述技术问题,本发明采用的一个技术方案是:提供一种NAND Flash烧写数据的处理方法,在烧写数据之前,包括:识别出NANDFlash烧写数据中的所有半空块,所述半空块是烧写数据中部分页写有数据、其余页空白的块;在所有所述半空块的所有空白页中写入预设标记字符,以使所述半空块均转换为全满块,所述全满块是每页均写有数据的块,所述预设标记字符用于区别写入预设标记字符的块与其他全满块。
[0007]为解决上述技术问题,本发明采用的另一个技术方案是:提供一种NAND Flash的使用方法,所述方法包括:系统上电时,判断所述NANDFlash烧写数据块中是否存在预设标记字符,所述预设标记字符用于区别写入预设标记字符的半空块与其他全满块;若所述NAND Flash烧写数据块中存在预设标记字符,则将所述存在预设标记字符的块中的有效数据写入空白块,并对所述存在预设标记字符的块进行擦除处理。
[0008]为解决上述技术问题,本发明提供的又一种技术方案是:提供一种NAND Flash烧写数据的处理装置,所述装置包括识别模块和写入模块,其中:所述识别模块用于识别出NAND Flash烧写数据中的所有半空块,所述半空块是烧写数据中部分页写有数据、其余页空白的块;所述写入模块用于在所有所述半空块的所有空白页中写入预设标记字符,以使所述半空块均转换为全满块,所述全满块是每页均写有数据的块,所述预设标记字符用于区别写入预设标记字符的块与其他全满块。
[0009]为解决上述技术问题,本发明提供的还有一种技术方案是:提供一种NAND Flash的运行系统,所述运行系统包括判断模块和处理模块,其中:所述判断模块用于在系统上电时,判断所述NAND Flash烧写数据块中是否存在预设标记字符,所述预设标记字符用于区别写入预设标记字符的半空块与其他全满块;所述处理模块用于在所述NAND Flash烧写数据块中存在预设标记字符,则将所述存在预设标记字符的块中的有效数据写入空白块,并对所述存在预设标记字符的块进行擦除处理。
[0010]本发明的有益效果是:区别于现有技术的情况,本发明通过在烧写数据之前,识别出NAND Flash烧写数据中的部分页写有数据、其余页空白的所有半空块,在所有半空块的所有空白页中写入预设标记字符,以使半空块均转换为每页均写有数据的全满块,其中预设标记字符用于区别写入预设标记字符的块与其他全满块。通过这样的方式,对半空块进行处理,使得烧写数据块都满足每个页都空或者每个页都写有数据的要求,从而避免高温贴片时已烧写数据出现损坏,提高产品质量和可靠性。
【专利附图】

【附图说明】
[0011]图1是本发明提供的一种NAND Flash烧写数据的处理方法一个实施方式的流程图;
[0012]图2是本发明提供的一种NAND Flash的使用方法一个实施方式的流程图;
[0013]图3是本发明提供的一种NAND Flash烧写数据的处理装置一个实施方式的结构示意图;
[0014]图4是本发明提供的一种NAND Flash的运行系统一个实施方式的结构不意图。【具体实施方式】
[0015]请参阅图1,图1是本发明提供的一种NAND Flash烧写数据的处理方法一个实施方式的流程图,本实施方式的NAND Flash烧写数据的处理方法包括:
[0016]SlOl:识别出NAND Flash烧写数据中的所有半空块;
[0017]在烧写数据之前,对烧写数据进行处理,其主要目的是为了使烧写数据的所有数据块的每个页都空或者每个页都写有数据的要求,而不要出现一个半空块的状态。所述半空块是指部分页写有数据,而其余页空白的块。因此,对烧写数据进行处理需要先识别出烧写数据中的半空块。
[0018]可以通过对烧写数据按页顺序读取来一一识别烧写数据中的所有半空块。
[0019]对于MLC NAND Flash, 一般而言其要求一个块从前往后顺序写,而不是反过来从后往前写数据。因此,一个半空块一定是前半部分存放有数据,后半部分为空区域。利用这一点可以提高识别半空块的效率。如果一个块的第一个页就是空页,可以认为这个块是完全没使用的空块,不再需要判断后面的页。如果从前往后判断发现中间某个页为空页,则可以认为这个块是半空块,也不需要再判断后面页的情况了。当然,为提高速度,当从前往后判断发现块中第一页有数据,则立即判断该块的最后一页是否有数据,若没有数据则认为是半空块,反之则认为是全满块。这样可以提高对MLC NAND Flash的烧写数据中半空块的识别效率。
[0020]S102:在所有半空块的所有空白页中写入预设标记字符,以使半空块均转换为全满块;
[0021]一般NAND Flash在生产时,都通过烧录器将烧写数据写入Flash中,但是烧录器只负责烧写环节,用户提供什么数据,它就原样烧写什么数据。由于NAND Flash擦除后的默认值就是1,如果烧录数据中某个页的值全部是I就可以认为这是一个空页。而烧录器在写NAND Flash之前会将整个NAND Flash擦除一遍,因此出于加快烧写速度的考虑,烧录器如果发现烧写数据中某个页是空的会跳过去不做烧写,NANDFlash中对应的位置自然就保持在擦除后的空页状态。
[0022]对于MLC NAND Flash,一般而言只有整个块都是空的状态才适合在烧写时直接跳过去,而半空块尽管也含有空页,但是这些空页也不应该跳过去,需要强制烧写其中的每一个页。因此需要对半空块进行处理以避免在烧写时其被跳过。
[0023]本发明实施方式中通过在所有半空块的所有空白页中写入预设标记字符,以使半空块均转换为全满块。这里预设标记字符是用于区别写入预设标记字符的块与其他全满块。
[0024]作为一种优选的实现方式,可以在所有半空块中所有空白页的开头预定比特写入预设标记字符。
[0025]另外,为了产品性能,进一步考虑NAND Flash的纠错码(ECC, Error CorrectionCode)校验码问题,如下:
[0026]由于NAND Flash的可靠性较差,因此需要在每个页面中加入ECC校验码来确保用户数据的完整性。在写入数据的时候生成ECC,ECC连同用户数据一起写入NAND Flash中。而在读取数据时会重新计算ECC值并和写入的ECC进行比对,看数据是否有损坏。ECC还具有一定的纠错能力,如果错误的比特数没有超出所用ECC算法的纠错能力,损坏的数据可以纠正回来。
[0027]为了避免对半空块的所有空白页写入预设标记字符而不会导致以后读到这些页出现系统报告ECC错误。对半空块的所有空白页写入预设标记字符通过以下这种优选方式实现:即在半空块的所有空白页的开头几个比特写入预设标记字符0,并且写入预设标记字符比特数控制在ECC可纠错的比特范围内(即写入预设标记字符比特数小于或等于ECC可纠错的比特数量)。比如ECC可纠错范围为10比特,这里写入预设标记字符比特数可以是< 10的任何比特数。当然为了方便,可以只写在每页开头I比特写入预设标记字符。
[0028]这样,ECC就不用重新计算。系统初始化时,读到这些经过处理的半空块的空白页,既不会有实际的数据损坏发生,同时又能找出这些标记过的半空块。
[0029]烧录器在烧写以上经过处理的烧写数据时,看到的烧写数据要么是全部内容为空的块,要么是所有页都写过数据的块,因此,烧录器要么对所有页都写过数据的块进行完整的写入,而跳过全部内容为空的块。
[0030]S103:在所有半空块的所有空白页中写入预设标记字符后,对NAND Flash进行烧写数据的处理。
[0031]通过上述实施方式的描述,可以理解,本发明实施方式的NANDFlash烧写数据的处理方法,通过在烧写数据之前,识别出NAND Flash烧写数据中的部分页写有数据、其余页空白的所有半空块,在所有半空块的所有空白页中写入预设标记字符,以使半空块均转换为每页均写有数据的全满块,其中预设标记字符用于区别写入预设标记字符的块与其他全满块。通过这样的方式,对半空块进行处理,使得烧写数据块都满足每个页都空或者每个页都写有数据的要求,从而避免高温贴片时已烧写数据出现损坏,提高产品质量和可靠性。
[0032]另外,在优选实现方式中半空块中空白页写入预设标记字符比特数控制在ECC可纠错的范围内,这样后续在读到这些页的时候,既不会有实际的数据损坏,又能方便找出这些经过处理的页进行修复处理以便这些页可以被重复利用。
[0033]进一步地,在半空块的所有空白页的开头几个比特写入能被ECC纠错的预设标记字符后,可以不在该写入预设标记字符的页中设置ECC校验码,以方便后续系统初始化时能够根据不设置ECC校验码但又有比特写入的特征快速识别出写入预设标记字符的全满块。当然,在其他实施方式中,也可以在写入预设标记字符的同时设置ECC校验码。此时,写入预设标记字符的页中,除了预设标记字符外,没有其他数据,以此为特征来识别该块是写入预设标记字符的全满块。在万一出现没有预设标记字符的其他全满块的相应页前面也碰巧同样存在预设标记字符时,因为这种情况下预设标记字符的后面会跟随数据,因此也可以以此为特征来识别该块是没有预设标记字符的全满块。
[0034]本发明用于区别写入预设标记字符的全满块的方式,不限于上述设定预定数量的O作为预设标记字符的方式,还可以其他任何能够区别写入预设标记字符的全满块与其他没有写入预设标记字符的全满块的方式,比如设计可标识的字符排列或字符内容等等。
[0035]而本发明读取NAND Flash的顺序也不限于从前到后,在合适情况下也可以设计为其他顺序比如从后到前,此时本发明区别写入预设标记字符的全满块的方式则适应性调整,不再赘述。
[0036]请参阅图2,图2是本发明提供的一种NAND Flash的使用方法的一个实施方式流程图,本实施方式的NAND Flash的使用方法包括:
[0037]S201:系统上电;
[0038]系统上电时,会对NAND Flash每个块进行读取,以便获得文件系统相关的信息。
[0039]S202:判断NAND Flash烧写数据块中是否存在预设标记字符;
[0040]通过对NAND Flash每个块的数据进行读取,从中判断NANDFlash烧写数据块中是否存在预设标记字符。
[0041]原来系统上电时一般读取每个块的开头两页,而本发明一种比较优选的实施方式中,针对MLC NAND Flash,为了找出烧写数据中原本属于半空块,但是在烧写数据时做过预设标记字符的块,读取烧写数据每个块开头两页后,再多读取烧写数据块最后一页。由于MLC NAND Flash要求一个块必须从前往后顺序写,因此半空块的后半部分为做过标记的空区域,读取其最后一页,通常会得到一个可纠正的ECC结果。如果得到一个可纠正的ECC结果,则可以认为读到一个存在预设标记字符的半空块。
[0042]为了便于找到存在预设标记字符的数据块,预存预设标记字符为0,并控制写入预设标记字符比特数小于或等于ECC可纠错的比特数。这样,当某个块的最后一页得到ECC结果时,该页已被ECC纠正,所以逻辑上看来被标记的半空块后半部分还是空页状态,并没有之前被标记的预设标记字符O。
[0043]可以对系统上电后找到的存在预存预设标记字符的块信息用一个专门的空块来记录,以后如果在开机则只对没有记录的块读取最后一个页,可以加快后续开机的速度。
[0044]S203:将存在预设标记字符的块中的有效数据写入空白块,并对存在预设标记字符的块进行擦除处理。
[0045]存在预设标记字符的块是被预先做过标记的半空块,但是其并不是真正的半空状态,其空页还不能直接用于存放数据。因此,会将找出的存在预设标记字符的块进行修复处理以便能重新使用。所述的修复处理是将存在预设标记字符的块中的有效数据拷贝出来,写入空白块,然后对存在预设标记字符的块进行擦除处理。擦除之后的块,可以在以后重新使用,即可以直接写入数据。
[0046]通过这样的方式,对标记过的半空块,能够释放其空白页,使这些页又能够被利用,一般而言上述修复处理过程,不会对空白页进行拷贝,所以原来的空页中写入的一定比特预设标记字符在经过上述修复处理后自然就消失了。
[0047]对存在预设标记字符的块中的有效数据拷贝出来属于一个读过程,而又将其写入空白块属于一个写过程,为提高效率,读、写过程是可以同步完成的。而对存在预设标记字符的块进行擦除处理的步骤,则可以在后台异步完成。
[0048]如果烧写数据块中存在预设标记字符的块在很长时间内不会被写入数据,那么这个存在预设标记字符的块在被写入数据前,某个系统空闲时间内,将这个块的有效数据写入空白块,并对这个块进行擦除处理。这时该执行动作是在后台完成的。
[0049]一个存在预设标记字符的块在被修复处理之前,可以直接读和擦除,但是通常不能直接写。这样,如果后台的修复处理还没有做,但又需要对存在预设标记字符的块进行写操作,则可以同步的强制做修复处理。因此,修复处理分两种情况:一种情况是在后台异步完成,它对系统性能影响较小;另一种是在写请求之前同步完成。
[0050]另外,为了避免在开机过程中集中进行多个块的修复处理而影响开机速度,如果在后台异步执行修复处理时,可以设定当开机预定时间内需要修复处理的块多于预定数量时,暂时关闭后台修复处理。这里的预定时间和预定数量可以根据系统性能设置。比如开机50秒内需要修复处理的块数量多于8个,就关闭后台修复处理。或者I分钟内需要修复处理的块数量多于10个时就关闭后台修复处理等等。
[0051]通过以上实施方式的描述,本发明提供的NAND Flash烧写数据的处理方法以及NAND Flash的使用方法,通过在烧写数据之前,识别出NAND Flash烧写数据中的部分页写有数据、其余页空白的所有半空块,在所有半空块的所有空白页中写入预设标记字符,以使半空块均转换为每页均写有数据的全满块,能够确保提供给烧录器使用的烧写数据不含半空状态的块。另外,在系统上电后,能够识别出标记过的半空块,并且对这些标记过的半空块做修复处理,使其空余的空间能够释放出来被重新使用,又能尽量减少对开机时间的影响。
[0052]因此,本发明能够使低成本的MLC NAND Flash大规模应用于产品中,在保证生产效率的同时确保产品质量的可靠。
[0053]请参阅图3,图3是本发明提供的一种NAND Flash烧写数据的处理装置一个实施方式的结构示意图,本实施方式的NAND Flash烧写数据的处理装置100包括识别模块11和写入模块12,其中:
[0054]识别模块11用于识别出NAND Flash烧写数据中的所有半空块,半空块是烧写数据中部分页写有数据、其余页空白的块;
[0055]在烧写数据之前,本实施方式的NAND Flash烧写数据的处理装置对烧写数据进行处理,其主要目的是为了使烧写数据的所有数据块的每个页都空或者每个页都写有数据的要求,而不要出现一个半空块的状态。所述半空块是指部分页写有数据,而其余页空白的块。因此,对烧写数据进行处理需要先识别出烧写数据中的半空块。
[0056]其中,识别模块11可以通过对烧写数据按页顺序读取来一一识别烧写数据中的所有半空块。其中,识别模块11用于对烧写数据中的块,按照页的顺序从前往后查找,如果块的第一页有数据,而第一页之后的任意一页为空白,则识别出块为半空块。
[0057]对于MLC NAND Flash, 一般而言其要求一个块必须从前往后顺序写,而不是反过来从后往前写数据。因此,一个半空块一定是前半部分存放有数据,后半部分为空区域。利用这一点可以提高识别半空块的效率。如果一个块的第一个页就是空页,可以认为这个块是完全没使用的空块,不再需要判断后面的页。如果从前往后判断发现中间某个页为空页,则可以认为这个块是半空块,也不需要再判断后面页的情况了。当然,为提高速度,当从前往后判断发现块中第一页有数据,则立即判断该块的最后一页是否有数据,若没有数据则认为是半空块,反之则认为是全满块。这样可以提高对MLC NAND Flash的烧写数据中半空块的识别效率。
[0058]写入模块12用于在所有所述半空块的所有空白页中写入预设标记字符,以使半空块均转换为全满块,全满块是每页均写有数据的块,预设标记字符用于区别写入预设标记字符的块与其他全满块。
[0059]一般NAND Flash在生产时,都通过烧录器将烧写数据写入Flash中,但是烧录器只负责烧写环节,用户提供什么数据,它就原样烧写什么数据。由于NAND Flash擦除后的默认值就是1,如果烧录数据中某个页的值全部是I就可以认为这是一个空页。而烧录器在写NAND Flash之前会将整个NAND Flash擦除一遍,因此出于加快烧写速度的考虑,烧录器如果发现烧写数据中某个页是空的会跳过去不做烧写,NANDFlash中对应的位置自然就保持在擦除后的空页状态。
[0060]对于MLC NAND Flash,一般而言只有整个块都是空的状态才适合在烧写时直接跳过去,而半空块尽管也含有空页,但是这些空页也不应该跳过去,需要强制烧写其中的每一个页。因此需要对半空块进行处理以避免在烧写时其被跳过。
[0061]本发明实施方式中通过写入模块在所有半空块的所有空白页中写入预设标记字符,以使半空块均转换为全满块。这里预设标记字符是用于区别写入预设标记字符的块与其他全满块。
[0062]作为一种优选的实现方式,写入模块12用于在所有半空块中所有空白页的开头预定比特写入预设标记字符。其中,更优选地,预设标记字符是0,预定比特小于或等于纠错码可纠错的比特数量。比如ECC可纠错范围为10比特,这里写入预设标记字符比特数可以是< 10的任何比特数。当然为了方便,可以只写在每页开头I比特写入预设标记字符。这样,ECC就不用重新计算。系统初始化时,读到这些经过处理的半空块的空白页,既不会有实际的数据损坏发生,同时又能找出这些标记过的半空块。
[0063]烧录器在烧写以上经过处理的烧写数据时,看到的烧写数据要么是全部内容为空的块,要么是所有页都写过数据的块,因此,烧录器要么对所有页都写过数据的块进行完整的写入,而跳过全部内容为空的块。
[0064]在所有半空块的所有空白页中写入预设标记字符后,对NAND Flash进行烧写数据的处理。
[0065]请参阅图4,图4是本发明提供的一种NAND Flash的运行系统一个实施方式的结构示意图,本实施方式的NAND Flash的运行系统200包括判断模块21和处理模块22,其中:
[0066]判断模块21用于在系统上电时,判断NAND Flash烧写数据块中是否存在预设标记字符,预设标记字符用于区别写入预设标记字符的半空块与其他全满块。
[0067]本实施方式的NAND Flash的运行系统通过对NAND Flash每个块的数据进行读取,通过判断模块21从中判断NAND Flash烧写数据块中是否存在预设标记字符。
[0068]原来系统上电时一般读取每个块的开头两页,而本发明一种比较优选的实施方式中,针对MLC NAND Flash,为了找出烧写数据中原本属于半空块,但是在烧写数据时做过预设标记字符的块,判断模块21读取烧写数据每个块开头两页后,再多读取烧写数据块最后一页。如果最后一页存在预设标记字符,则确定烧写数据块存在预设标记字符。
[0069]因为MLC NAND Flash要求一个块必须从前往后顺序写,因此半空块的后半部分为做过标记的空区域,读取其最后一页,只要最后一页有预设标记字符,则表明这个块被标记过,而避免每一页的逐个判断浪费不必要的时间。而且读取数据块的最后一页,通常会得到一个可纠正的ECC结果。因此如果得到一个可纠正的ECC结果,也可以认为读到一个存在预设标记字符的半空块。
[0070]处理模块22用于在NAND Flash烧写数据块中存在预设标记字符,则将存在预设标记字符的块中的有效数据写入空白块,并对存在预设标记字符的块进行擦除处理。
[0071]存在预设标记字符的块是被预先做过标记的半空块,但是其并不是真正的半空状态,其空页还不能直接用于存放数据。因此,处理模块22会将找出的存在预设标记字符的块进行修复处理以便能重新使用。所述的修复处理是将存在预设标记字符的块中的有效数据拷贝出来,写入空白块,然后对存在预设标记字符的块进行擦除处理。擦除之后的块,可以在以后重新使用,即可以直接写入数据。
[0072]通过这样的方式,对标记过的半空块,能够释放其空白页,使这些页又能够被利用,一般而言上述修复处理过程,不会对空白页进行拷贝,所以原来的空页中写入的一定比特预设标记字符在经过上述修复处理后自然就消失了。
[0073]对存在预设标记字符的块中的有效数据拷贝出来属于一个读过程,而又将其写入空白块属于一个写过程,为提高效率,读、写过程是可以同步完成的。而对存在预设标记字符的块进行擦除处理的步骤,则可以在后台异步完成。
[0074]如果烧写数据块中存在预设标记字符的块在很长时间内不会被写入数据,那么这个存在预设标记字符的块在被写入数据前,处理模块22在某个系统空闲时间内,将这个块的有效数据写入空白块,并对这个块进行擦除处理。这时处理模块22执行该修复处理动作是在后台完成的。
[0075]一个存在预设标记字符的块在被修复处理之前,可以直接读和擦除,但是通常不能直接写。这样,如果后台的修复处理还没有做,但又需要对存在预设标记字符的块进行写操作,则可以同步的强制做修复处理。因此,修复处理分两种情况:一种情况是在后台异步完成,它对系统性能影响较小;另一种是在写请求之前同步完成。
[0076]为了避免在开机过程中集中进行多个块的修复处理而影响开机速度,如果在后台异步执行修复处理时,可以设定当开机预定时间内需要修复处理的块多于预定数量时,处理模块22暂时关闭后台修复处理。这里的预定时间和预定数量可以根据系统性能设置。比如开机50秒内需要修复处理的块数量多于8个,就关闭后台修复处理。或者I分钟内需要修复处理的块数量多于10个时就关闭后台修复处理等等。
[0077]通过以上实施方式的描述,通过在烧写数据之前,识别出NANDFlash烧写数据中的部分页写有数据、其余页空白的所有半空块,在所有半空块的所有空白页中写入预设标记字符,以使半空块均转换为每页均写有数据的全满块,能够确保提供给烧录器使用的烧写数据不含半空状态的块。另外,在系统上电后,能够识别出标记过的半空块,并且对这些标记过的半空块做修复处理,使其空余的空间能够释放出来被重新使用,又能尽量减少对开机时间的影响。
[0078]因此,本发明能够使低成本的MLC NAND Flash大规模应用于产品中,在保证生产效率的同时确保产品质量的可靠。
[0079]在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0080]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0081 ] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0082]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM, Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0083]以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的【技术领域】,均同理包括在本申请的专利保护范围内。
【权利要求】
1.一种NAND Flash烧写数据的处理方法,其特征在于,在烧写数据之前,包括: 识别出NAND Flash烧写数据中的所有半空块,所述半空块是烧写数据中部分页写有数据、其余页空白的块; 在所有所述半空块的所有空白页中写入预设标记字符,以使所述半空块均转换为全满块,所述全满块是每页均写有数据的块,所述预设标记字符用于区别写入预设标记字符的块与其他全满块。
2.根据权利要求1所述的方法,其特征在于,所述在所有所述半空块的所有空白页中写入预设标记字符的步骤包括:在所有所述半空块中所有空白页的开头预定比特写入预设标记字符。
3.根据权利要求2所述的方法,其特征在于,所述预设标记字符是O。
4.根据权利要求2所述的方法,其特征在于,所述预定比特小于或等于纠错码可纠错的比特数量。
5.根据权利要求1所述的方法,其特征在于,所述识别出烧写数据中的半空块的步骤包括: 对于烧写数据中的块,按照页的顺序从前往后查找; 如果所述块的第一页有数据,而所述第一页之后的任意一页为空白,则识别出所述块为半空块。
6.一种NAND Flash的使用方法,其特征在于,所述方法包括: 系统上电时,判断所述NAND Flash烧写数据块中是否存在预设标记字符,所述预设标记字符用于区别写入标记字符的半空`块与其他全满块; 若所述NAND Flash烧写数据块中存在预设标记字符,则将所述存在预设标记字符的块中的有效数据写入空白块,并对所述存在预设标记字符的块进行擦除处理。
7.根据权利要求6所述的方法,其特征在于,所述预设标记字符是O。
8.根据权利要求6所述的方法,其特征在于,所述预设标记字符的比特数小于或等于纠错码可纠错的比特数。
9.根据权利要求6所述的方法,其特征在于,所述判断所述NANDFlash烧写数据块中是否存在预设标记字符的步骤包括: 读取所有所述NAND Flash烧写数据块中的最后一页; 若所述最后一页存在预设标记字符,则确定所述烧写数据块存在预设标记字符。
10.根据权利要求6所述的方法,其特征在于,所述将所述存在预设标记字符的块中的有效数据写入空白块,并对所述存在预设标记字符的块进行擦除处理的步骤在后台异步执行或在响应所述存在预设标记字符的块的写请求之前同步执行。
11.根据权利要求10所述的方法,其特征在于,当所述将所述存在预设标记字符的块中的有效数据写入空白块,并对所述存在预设标记字符的块进行擦除处理的步骤在后台异步执行时,如果所述系统上电预定时间内所述存在预设标记字符的块多于预定数量,关闭所述后台异步执行。
12.—种NAND Flash烧写数据的处理装置,其特征在于,所述装置包括识别模块和写入模块,其中: 所述识别模块用于识别出NAND Flash烧写数据中的所有半空块,所述半空块是烧写数据中部分页写有数据、其余页空白的块; 所述写入模块用于在所有所述半空块的所有空白页中写入预设标记字符,以使所述半空块均转换为全满块,所述全满块是每页均写有数据的块,所述预设标记字符用于区别写入预设标记字符的块与其他全满块,所述预定比特小于或等于纠错码可纠错的比特数量。
13.根据权利要求12所述的装置,其特征在于,所述写入模块用于在所有所述半空块中所有空白页的开头预定比特写入预设标记字符。
14.根据权利要求13所述的装置,其特征在于,所述预设标记字符是O。
15.根据权利要求13所述的装置,其特征在于,所述预定比特小于或等于纠错码可纠错的比特数量。
16.根据权利要求12所述的装置,其特征在于,所述识别模块用于对烧写数据中的块,按照页的顺序从前往后查找,如果所述块的第一页有数据,而所述第一页之后的任意一页为空白,则识别出所述块为半空块。
17.一种NAND Flash的运行系统,其特征在于,所述运行系统包括判断模块和处理模块,其中: 所述判断模块用于在系统上电时,判断所述NAND Flash烧写数据块中是否存在预设标记字符,所述预设标记字符用于区别写入预设标记字符的半空块与其他全满块; 所述处理模块用于在所述NAND Flash烧写数据块中存在预设标记字符,则将所述存在预设标记字符的块中的有效数据写入空白块,并对所述存在预设标记字符的块进行擦除处理。
18.根据权利要求17所述的系统,其特征在于,所述预设标记字符是O。
19.根据权利要求17所述的系统,其特征在于,所述预设标记字符比特数小于或等于纠错码可纠错的比特数。
20.根据权利要求17所述的系统,其特征在于,所述判断模块用于读取所有所述NANDFlash烧写数据块中的最后一页,若所述最后一页存在预设标记字符,则确定所述烧写数据块存在预设标记字符。
21.根据权利要求17所述的系统,其特征在于,所述处理模块用于在后台异步执行或响应所述存在预设标记字符的块的写请求之前同步执行所述将所述存在预设标记字符的块中的有效数据写入空白块,并对所述存在预设标记字符的块进行擦除处理的步骤。
22.根据权利要求21所述的系统,其特征在于,当所述处理模块在后台异步执行所述将所述存在预设标记字符的块中的有效数据写入空白块,并对所述存在预设标记字符的块进行擦除处理的步骤时,如果所述系统上电预定时间内需要做修复处理的块多于预定数量,所述处理模块关闭所述后台异步执行。
【文档编号】G11C16/24GK103778964SQ201310746872
【公开日】2014年5月7日 申请日期:2013年12月30日 优先权日:2013年12月30日
【发明者】周涛 申请人:上海晨思电子科技有限公司, 晨星半导体股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1