闪存介质扫描方法

文档序号:6782099阅读:188来源:国知局
专利名称:闪存介质扫描方法
技术领域
本发明涉及半导体存储介质领域,特别涉及一种闪存介质扫描方法。
背景技术
闪存介质(Flash)包括多个存储块简称块(Block,擦除闪存介质的基本单位),每个块包括多个页(Page,读写闪存介质的基本单位),每个页包括多个位(bit,取值为0或1 )。可以实现取值从0到1和从1到0的逆转换的位称为好位,否则认为是坏位,不能用于存储数据。为识别闪存介质是否可以使用,需扫描其内部的块。现有一种闪存介质扫描的流程如图1所示,判断某块是否好块的做法是将某块擦除,然后写数据到该块,再从每一页中读出数据,与写入的数据相比较。当某页中出现写入和读出的数据不相同,则认为该页是不可使用的页,筒称坏页,坏页所在的块认为是不可使用的块,筒称坏块;若某页中所有写入和读出的数据都相同,则认为该页是好页,所有页都是好页的块称为好块。对于包含较少坏块的闪存介质,采用上述扫描方法就可以顺利完成识别。
随着闪存介质技术和应用的快速发展,闪存介质市场越来越大,容量越来越高,开发商对闪存介质扫描效率和闪存介质良率的要求也越来越高。采用上述的扫描技术能全面准确地完成扫描,但对一片大容量如1G的闪存介质进行扫描往往需要半个小时甚至更久时间,速度慢效率低不适于实际生产应用;上述的扫描技术可以单独运行几次扫描,分别产生扫描结果再整合形成最终扫描结果,对于坏块较多的情况,坏块会被扫描多次。现有另一种扫描技术可以提高扫描速度,但无法全面找出坏块,扫描结果准确度和可靠性不强。

发明内容
本发明的目的在于提供一种针对闪存介质的扫描方法,以实现对闪存介质的快速准确扫描。
本发明提供一种闪存介质扫描方法,包括步骤对闪存介质进行擦除扫描,产生擦除扫描结果;对闪存介质进行至少一扫描周期的扫描,分别产生至少一周期扫描结果;整合擦除扫描结果和/或至少一周期扫描结果,形成最终扫描结果。优选地,上述擦除扫描包括步骤将闪存介质所有块擦除;检查闪存介质,判断数据是否正确擦除,找出未能正确擦除的坏块,产生擦除扫描结果;擦除闪存介质中的好块。
优选地,上述进行至少一扫描周期的扫描包括步骤将扫描数据写入闪存介质;读取闪存介质中的数据,与写入的扫描数据相比较,将写入和读出的数据存在不一致的块认为是坏块,否则认为是好块;擦除闪存介质中的好块。
优选地,上述将扫描数据写入闪存介质的步骤是抽取其中至少一块、抽取块中至少一页、页中至少一字节和/或至少一位,向其中写入扫描数据,读取闪存介质中的数据是指从闪存介质中抽取写入了数据的至少 一块、块中至少一页、页中至少一字节和/或至少一位,读取其中的凄史据。
优选地,上述闪存介质扫描方法还包括预设一坏位上限;对包含坏位数不超过所述坏位上限的块,将其作为好块。
本发明提供的闪存介质扫描方法能快速准确扫描闪存介质,在短时间内找出坏块并剔除,不用于后续的传统扫描过程,大大提高扫描速度又保留了传统扫描过程所具有的全面性。


图l是本发明现有技术扫描闪存介质的流程示意图;图2是本发明第一实施例扫描流程示意图;图3是本发明第二实施例擦除扫描流程示意图;图4是本发明第二实施例擦除扫描部分具体流程示意图;图5是本发明第三实施例快速扫描流程示意图;图6是本发明第四实施例扫描闪存介质的具体流程示意图;图7是本发明第五实施例对一块进行扫描的流程示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施例方式
本发明提出第一实施例,对闪存介质进行至少一扫描周期的扫描,整合至少一扫描周期产生的周期扫描结果,形成最终扫描结果。如图2所示,第一实施例扫描流程包括步骤Sl,对闪存介质进行擦除扫描,产生擦除扫描结果;步骤S2,对闪存介质进行至少一扫描周期的扫描,分别产生至少一周期扫描结果;
步骤S3,整合擦除扫描结果和/或至少一周期扫描结果,形成最终扫描结果。
上述擦除扫描是指对闪存介质擦除后,检查部分或全部数据是否正确擦除,据此找出坏块的过程。上述扫描周期是指对闪存介质进行一次扫描4企查,找出坏块的过程。周期扫描结果是通过一个扫描周期找出的坏块信息。最终扫描结果是指将擦除扫描结果和/或至少一周期扫描结果中包含的坏块信息整合形成的闪存介质好/坏块信息,根据最终扫描结果可对闪存介质进行数据操作。
上述扫描周期可依据擦除扫描结果和/或上一扫描周期产生的周期扫描结果进行,根据最后一扫描周期产生的周期扫描结果形成最终扫描结果;也可分别进行各步骤的扫描,分别产生擦除扫描结果和至少一周期扫描结果,待扫描结束后整合擦除扫描结果和/或至少一周期扫描结果,形成最终扫描结果。
基于上述实施例,本发明提出第二实施例,上述擦除扫描是对闪存介质擦除后,读取部分或全部数据,检查数据是否为'T,,据此找出坏块,实现对闪存介质的快速扫描。参照图3,上述步骤Sl,对闪存介质进行擦除扫描,产生擦除扫描结果包括
步骤S21,将闪存介质所有块擦除;
步骤S22,检查闪存介质,判断数据是否正确擦除,产生擦除扫描结果;步骤S23,擦除闪存介质中的好块。
具体来说,在上述扫描周期过程的步骤S22是读取闪存介质中的块中至少一页、页中至少一位和/或至少一字节中的数据,检查数据是否被正确擦除,找出未能正确擦除的块,将其认为是坏块。由于好块被擦除后,其中的所有位都应为'T,,因此将读出数据不为'T,的位所在的块认为是无法正确擦除的坏块,读出数据全为'T,的块认为是可以正确擦除的好块。执行该步骤时,可以读耳又并判断所有块中的所有数据,也可仅抽取至少一块,对块中至少一页读取数据;进一步地,对抽取的至少一页也不读取所有位,而是〗又抽耳又页中至少一位或至少一字节读取数据,检查这些位或字节的数据。抽取页、位和/或字节可使用随机算法实现。
具体来说,参照图4,上述步骤S22包括
步骤S221,接收主机发来的读扫描结果指令,根据指令中的指定起始地址和长度,设定指针i指向要扫描的块,用于记录当前检查的块的块号,指针i初始化为0;步骤S222,抽耳又块中至少一页、页中至少一位和/或至少一字节,读取其中的数据;
步骤S223,检查读取的数据是否为"1",若读出的数据不为'T'则进行步骤S224,否则进行步骤S225;
步骤S224,将指针i指向的当前块认为是坏块,记录其块号,然后进行步骤S325;
步骤S225,判断指针i是否指向步骤S221中主机指定的最后一块,若指向最后一块则步骤S22结束;否则进4亍步骤S226;
步骤S226,指针i加l,即使指针i指向当前块的下一块,然后进行步骤S222。
本实施例提供的擦除扫描流程可大大加快扫描速度。由于坏块被4察除后,其中的数值会有多种可能,绝大部分的坏块通过抽查就可以找出来。对于一片容量为lGByte的闪存介质,执行本实施例提出的擦除扫描不超过2秒钟。设经擦除扫描找出的坏块不再参与后续的扫描操作,对于一片坏块很多的闪存介质将大大提高扫描的速度,例如一片包含1000个块的闪存介质,若采用本实施例的擦除扫描可快速检查出500个坏块,则扫描速度将比现有技术提高近l倍。
本发明提出第三实施例,基于上述实施例提出快速扫描机制,从闪存介质中抽查个别块,进一步从块中抽查个别页,在一个扫描周期内实现对闪存介质的快速扫描。快速扫描机制应用在上述步骤S2中,对闪存介质进行至少一扫描周期的扫描,分别产生至少一周期扫描结果,可大大提高扫描速度。
参照图5,快速扫描机制包括
步骤S31,将扫描数据写入闪存介质;
步骤S32,读取闪存介质中的数据,与写入的扫描数据相比较,将写入和读出的数据存在不一致的块认为是坏块,否则认为是好块;步骤S33,擦除闪存介质中的好块。
具体来说,在上述步骤S31,并不向整个闪存介质所有块都写数据,而是抽取其中至少一块写数据;对抽取的块,也可进一步抽取至少一页写入数据,还可抽取页中的至少一字节和/或至少一位,向其中写入数据。主机抽取块后,向闪存介质发送写数据指令,指定起始地址和长度,将扫描数据写入指定的块和/或指定页中。
相应地,在上述扫描周期过程的步骤S32,也不读取块中所有数据,而是仅抽取步骤S31写入数据的至少一块和至少一页,读取其中的数据。主^/L向闪
7存介质发送读数据指令,指定起始地址和长度,指定的块和/或指定页中的数据读取出来。进一步地,对抽取的至少一页也不读耳又所有位,而是但j由取页中至少一位或至少一字节读取数据,检查这些位或字节的数据。抽取块、页、位和/或字节可使用随机算法实现。
本实施例的步骤S32与上一实施例的步骤S22的具体流程相似,参照图4,区别在于上一实施例的步骤S223是检查读取的数据是否为"1",若读出的数据不为'T,则进行步骤S224,否则进行步骤S225;而本实施例是检查读取的数据是否与写入的数据一致,若一致则进行步骤S224,否则进行步骤S225。
本实施例提供的快速扫描机制可应用在本发明扫描流程的至少一扫描周期的扫描中,大大加快扫描速度。
本发明提出第四实施例,对闪存介质进行多扫描周期的扫描,各扫描周期分别依据上一扫描周期产生的周期扫描结果进行,根据最后 一扫描周期产生的周期扫描结果形成最终扫描结果。
本实施例具体的扫描流程如图6所示,包括步骤S41,根据对闪存介质扫描要求,设定扫描周期的个数;步骤S42,对闪存介质进行擦除扫描,产生擦除扫描结果;步骤S43,记录〗察除扫描结果;
步骤S44,根据前一扫描结果,进行下一扫描周期的扫描;步骤S45,整合当前周期扫描结果与前一扫描结果;步骤S46,判断是否已达到设定的扫描周期个数,达到则进行步骤S47,否则返回步骤S44;
步骤S47,根据最后一周期扫描结果形成最终扫描结果,流程结束。
上述步骤S41,根据对闪存介质的扫描要求,设定扫描周期的个数。扫描周期是指对闪存介质进行一次检查,找出坏块的过程。其中对闪存介质的扫描要求越高,设定扫描周期的个数应越多, 一般扫描要求下设定二个扫描周期即可,对于部分闪存介质,扫描要求较高的情况,可设定三个或更多扫描周期。
上述步骤S42采用第二实施例中提出的擦除扫描做法实现,产生擦除扫描结果。
上述步骤S43,记录擦除扫描结果。设通过擦除扫描得到的擦除扫描结果为块号为45、 46的块为坏块,将该擦除扫描结果上报给对闪存介质进行扫描的主才几。
上述步骤S34,根据前一扫描结果,进行下一扫描周期的扫描。当前一扫
8描周期为擦除扫描时,下一扫描周期称为第一扫描周期;当前一扫描周期为第一扫描周期时,下一扫描周期称为第二扫描周期。具体来说,是对闪存介质进行扫描的主机将剔除擦除扫描结果或前一周期扫描结果中的坏块,仅对闪存介质中其余块进行周期扫描。具体来说,是向未记录为坏块的其他块分别写入扫描数据,再分别从这些块中读取数据,与写入的扫描数据相比较。
设写入这些块中各位的扫描数据都为"0",则读取的凝:据不为"0"的位i人为是坏位,该坏位所在页认为是坏页,相应地该坏页所在块认为是坏块。
本步骤使用的扫描数据与步骤S42中的扫描数据相反,例如若步骤S42中采用的扫描数据为"0",则本步骤采用的扫描数据为'T,。扫描数据是由主机产生并发送下来的,每个扫描周期的扫描数据与前一扫描周期的扫描凄t据相反,采用相反的扫描数据可以检查位是否能够实现取值从0到1和从1到0的逆转换,从而确定位是否为好位。
上述步骤S45,整合当前扫描结果与前一周期扫描结果。当当前扫描周期为第一扫描周期时,前一扫描周期是指擦除扫描;当当前扫描周期为第二扫描周期时,前一扫描周期是指第一扫描周期,依此类推。设通过步骤S44得到的当前扫描结果为块号122、 123和124的块为坏块,将当前扫描结果上才艮^^主机,主机将当前扫描结果与前一周期扫描结果整合,得到块号为45、 46、 122、123、 124的块为坏块,作为第二周期扫描结果。
上述步骤S46,判断是否已达到设定的扫描周期个数,达到则进行步骤S47,否则返回步骤S44。若步骤S41设定的扫描周期个数为1,则经过上述步骤,已完成对闪存介质的扫描,进行步骤S47;若步骤S41设定的扫描周期个数为2,则返回步骤S44,根据第一周期扫描结果,对闪存介质进行扫描的主机将剔除第一周期扫描结果中记录的坏块,仅对闪存介质中其余块进行第二扫描周期的扫描。
上述步骤S47,根据最后一周期扫描结果形成最终扫描结果,流程结束。当步骤S41设定的扫描周期个数为2,则最后一周期扫描结果即第二周期扫描结果,根据该第二周期扫描结果生成最终扫描结果闪存介质中块号为45、46、 122、 123、 124的块为坏块,其余块为好块。
当步骤S41设定的扫描周期个数为3 ,则最后一周期扫描结果即第三周期扫描结果。
当步骤S41设定的扫描周期个数为3以上则依此类推,循环直至完成设定个数的扫描周期,根据最后一周期扫描结果形成最终扫描结果,流程结束。
上述最终扫描结果可以现有的扫描结果格式记录在主机或闪存介质的至少一好块中,供主机对闪存介质数据操作使用。上述第一扫描周期、第二扫描周期、第三扫描周期和/或更多扫描周期可采用上述第三实施例提出的快速扫描机制实现,也可采用现有技术的扫描机制实现。
本实施例中,扫描结果分批上报给主机并存在主机中。要读取扫描结果时,主机发送命令,指定起始块和块的个数,闪存主控芯片根据命令读取从起始块开始,指定个数个块中的数据,根据数据判断所在块为好块或坏块,产生扫描结果,将扫描结果返回给主^L,闪存主控芯片不负责保存扫描结果。主机根据取得的扫描结果就可以知道闪存介质中哪些是好块,哪些是坏块,可以用数组记录好坏块信息,形成好坏块信息表。写数据时,主机也会发送命令指定从起始块开始,向指定个数的块中写数据。由于命令是由主一几发出,好坏块信息也是由主机保存,这样主机就可以保证发送命令时避开坏块,保障数据读写操作准确无误。
基于上述各实施例本发明提出第五实施例,结合闪存介质主控芯片,预设一坏位上限,对包含坏位数不超过坏位上限的块,将其作为好块使用,以提高闪存介质的使用率。
参照图7示出对一块进行扫描的流程图,包括
步骤S51,设定指针j指向要扫描的页,用于记录当前检查的页的页号,指针j初始化为0;
步骤S52,将指针j所指页的数据读到闪存介质主控芯片的内存中;
步骤S53,闪存介质主控芯片自带的纠错码(ECC)模块判断步骤S52读过程中是否有数据发生错误的位,如果发现有位中的数据发生错误,则进行步骤S59,否则进行步骤S54;
步骤S54,判断错误个数是否达到坏位上限,根据判断结果进行步骤S55或步骤S59;
步骤S55,判断当前页数据是否全为0,根据判断结果进行步骤S56或步骤S59;
步骤S56,判断指针j是否指向该块最后一页,根据判断结果进行步骤S57或步骤S58;
步骤S57,指针j指向的页所在块认为是好块,结束流程;步骤S58,指针j力。1,指向下一页,然后进行步骤S52;步骤S59,指针j指向的页所在块认为是坏块,结束流程。
进一步地,由于坏块可能存在很多位不能实现从0到1的转换,而如果从这样的位开始读数据,当数据全都是0的情况下,纠错码(ECC)模块无法检测出错误。所以本实施例提出,在闪存介质主控芯片中增加一寄存器,用于记录数据全部为0的位。若主机发送下来的数据不是全0,而此寄存器又记录这个页的数据是全O时,那这个页所在的块就是坏块,如图中步骤S56所示。当步骤S53、 S54、 S55和S56的条件都不能成立时,执行比较操作步骤S59,看当前页是否已经是这个块的最后一个页,如果是,则当前块就认为是好块,结束对这个块的扫描;否则页指针j增加l指向下一页,对下一页进行类似的操作。
本实施例可应用于上述第一扫描周期、第二扫描周期、第三扫描周期和/或更多扫描周期,提高闪存介质利用率。
上述实施例中,各扫描周期都根据前一扫描结果排除坏块,仅对未识别出的块进行扫描。当坏块数较多时,可以大大提升扫描效率。本发明也可不根据前一周期扫描结果进行扫描,多个周期扫描结果整合形成最终扫描结果,这样作流程简单但效率较低,故不赘述。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
ii
权利要求
1、一种闪存介质扫描方法,其特征在于,包括步骤对闪存介质进行擦除扫描,产生擦除扫描结果;对闪存介质进行至少一扫描周期的扫描,分别产生至少一周期扫描结果;整合擦除扫描结果和/或至少一周期扫描结果,形成最终扫描结果。
2、 如权利要求l所述的闪存介质扫描方法,其特征在于,所述擦除扫描包括步骤将闪存介质所有块擦除;检查闪存介质,判断数据是否正确擦除,找出未能正确擦除的坏块,产生擦除扫描结果;擦除闪存介质中的好块。
3、 如权利要求2所述的闪存介质扫描方法,其特征在于所述检查闪存介质是指检查闪存介质中所有块的所有数据,或抽查至少一块、块中至少一页、页中至少一位和/或至少一字节中的凝:据。
4、 如^又利要求1所述的闪存介质扫描方法,其特征在于,所述进行至少一扫描周期的扫描包括步骤将扫描凄t据写入闪存介质;读取闪存介质中的数据,与写入的扫描数据相比较,将写入和读出的数据存在不一致的块认为是坏块,否则认为是好块;擦除闪存介质中的好块。
5、 如权利要求4所述的闪存介质扫描方法,其特征在于所述将扫描数据写入闪存介质的步骤是向所述闪存介质所有块中写入扫描数据,所述读取闪存介质中的数据是指读取闪存介质中所有数据。
6、 如权利要求4所述的闪存介质扫描方法,其特征在于所述将扫描数据写入闪存介质的步骤是抽取其中至少一块、抽取块中至少一页、页中至少一字节和/或至少一位,向其中写入扫描凄t据,所述读取闪存介质中的数据是指从闪存介质中抽取写入了数据的至少一块、块中至少一页、页中至少一字节和/或至少一位,读取其中的数据。
7、 如权利要求1至6任意一项所述的闪存介质扫描方法,其特征在于,还包括步骤根据对闪存介质扫描要求,设定扫描周期的个数;对闪存介质分别进行至少一扫描周期的扫描,直到达到设定的扫描周期个数。
8、 如权利要求1至6任意一项所述的闪存介质扫描方法,其特征在于根据前一扫描结果,进行下一扫描周期的扫描;整合当前周期扫描结果与前一扫描结果;根据最后 一周期扫描结果形成最终扫描结果。
9、 如权利要求1至6任意一项所述的闪存介质扫描方法,其特征在于分别进行各步骤的扫描,分别产生纟察除扫描结果和至少一周期扫描结果;整合擦除扫描结果和/或至少一周期扫描结果,形成最终扫描结果。
10、 如权利要求1至6任意一项所述的闪存介质扫描方法,其特征在于预设一坏位上限;对包含坏位数不超过所述坏位上限的块,将其作为好块。
全文摘要
本发明提供一种闪存介质扫描方法,包括步骤对闪存介质进行擦除扫描,产生擦除扫描结果;对闪存介质进行至少一扫描周期的扫描,分别产生至少一周期扫描结果;整合擦除扫描结果和/或至少一周期扫描结果,形成最终扫描结果。本发明提供的闪存介质扫描方法能快速准确扫描闪存介质,在短时间内找出坏块并剔除,不用于后续的传统扫描过程,大大提高扫描速度又保留了传统扫描过程所具有的全面性。
文档编号G11C16/06GK101540204SQ20081008405
公开日2009年9月23日 申请日期2008年3月21日 优先权日2008年3月21日
发明者卢赛文 申请人:深圳市朗科科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1