一种闪存控制方法及闪存技术

技术编号:3081749 阅读:157 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及USB移动存储领域,尤其涉及一种闪存控制方法及闪存,用以解决现有技术中存在FLASH上电处理速度缓慢的问题。在本发明专利技术中,FLASH预留物理块,并利用预留的物理块记录未完成的擦除或写操作的信息;FLASH在每一次上电时,根据预留的物理块记录的信息进行数据的恢复和处理。采用本发明专利技术方法,减少了FLASH在每一次上电后为了恢复处理数据而进行的工作量,从而提高FLASH的上电处理速度。

【技术实现步骤摘要】

本专利技术涉及USB (Universal Serial Bus,通用串行总线)移动存储领域, 尤其涉及一种闪存控制方法及闪存
技术介绍
在计算机技术快速发展的今天,用户时常需要进行大量数据的转移和存 储。移动存储类设备的适时出现迎合了广大用户的需求,以优盘为代表的移动 存储类设备得到广泛的应用。所谓移动存储类产品是基于USB接口的,采用 FLASH(闪存)介质的存储产品。按照惯例,我们把一个FLASH称为一个Zone, 一个Zone包含多个块, 一个块包含多个页,下面4叚设一个Zone包含M块, 一个块包含N页。页又分为两个区,数据区和冗余区。数据区主要用来存放有 效数据;冗余区主要存放除了必须的该页所属块对应的逻辑块号和有效数据的 ECC (Error Checking and Correcting,错误检查和纠正)校验,还可以存放块 完成标志甚至厂商产品信息等等,不一而论。对FLASH的访问操作包括FLASH 基于块的读、写和擦除。对FLASH基于块的写的过程包括原数据块保留数据 转移的过程、新数据写的过程和原数据块擦除的过程;对FLASH基于块的擦 除的过程就是将块中所有逻辑位置为1的过程。FLASH中数据的访问操作是 通过读文件目录表和文件分配表而实现的。相比较软盘,FLASH具有方便、快捷、安全可靠等优点,但是它也有其 不足之处。比如在FLASH基于块的写的过程中发生了人为的或外界不可抗力 等因素造成非法掉电,那么文件目录表和文件分配表中的信息就有可能发生混 乱,造成数据的不可访问,从而导致数据的丢失。在基于FLASH的块的擦除 的过程中发生了人为的或外界不可抗力等因素造成非法掉电,块部分未被擦除,再使用该块就会导致错误。所以必须有这样一种方法,该方法能够对块进 行标记,在掉点后重新上电能够根据标记辨别出未完成操作的块,从而进行块 的数据的恢复。为了解决这个问题,目前普遍使用的一种方案是在要访问的块的每一页的冗余区标注一些信息来表示该页是否操作完毕。当进行FLASH的写操作时, 首先根据要写的逻辑块找到对应的物理块,如果没有找到对应的物理块,则寻 找一个空的物理块,将此次操作要写入的数据写入该块中,同时将对应页中的 冗余区中写入对应的逻辑块号,完成后再将该块中未净皮使用的页的冗余区中也 写入对应的逻辑块号,在映射表中建立该逻辑块和该寻找到的物理块的映射关 系;如果找到对应的物理块,则先寻找一个新的空的物理块,将原来逻辑块对 应的物理块中的数据拷贝到新块的对应页中,并在完成拷贝的页中的冗余区中 写入对应的逻辑块号,然后将此次操作要写入的数据写入新块中,并在完成写 入的页中的冗余区中写入对应的逻辑块号,完成后再将新块的未被使用的页的 冗余区中也写入对应的逻辑块号,在映射表中建立该逻辑块和该寻找到的物理 块的映射关系,最后擦除原物理块,将映射表中该逻辑块和原物理块的映射关 系删除。这样无论在哪一步发生异常掉电,原数据都不会丢失。比如,当在从原物 理块拷贝数据到新物理块时发生掉电,则新物理块的部分页的冗余区内的标记 不是对应的逻辑块号,上电后,遍历该物理块的所有页, 一旦发现块内某一页 冗余区内的标记不是对应的逻辑块号,则表明数据没有完全转移到新物理块, 直接擦除新块,保证该新块在以后的正确使用,而原物理块的数据也得到了保 护。当原物理块内的数据完全拷贝到新物理块内,在擦除原物理块时掉电,则 上电后会发现原物理块的部分页的逻辑位为1,部分页的冗余区标记为对应的 逻辑块号,则直接擦除该块,并更新映射表,由于原物理块要保留的数据已经 完全拷贝到新物理块中,所以数据得到保护。对于基于FLASH的块擦除,同 样的原理可以保证擦除的过程中掉电后重新上电后,能够完成块擦除工作,使块能够重新被使用。这种对操作块标注信息表明操作是否完成的方法虽然能够保证数据不会丢失,但其也有不足之处该方法在判断某一物理块是否是操作未完成的块时, 需要读取块中页的冗余区直到发现符合块操作未完成条件的页。根据上面的假 i殳, 一个FLASH包含M个块, 一个块包含N个页,则每个块平均查找次数为 (N+l)/2。而在上电后为了完成数据恢复,需要遍历整个FLASH,所以每次上 电后的平均查找次数为M*(N+l)/2,最多可达N^N次。该方法的进一步提高 是只判断最后 一 页的冗余区的标志,但是只判断最后一 页还不能判断该块是未 完成操作的块还是空块。所以必须判断第一页和最后一页。这样要找到所有未 完成操作的块需要查找的次数最多为2*M。而且在这种情况下即使使用一页也 必须把N个页的冗余区写标志,这样的话,工作量就会增加,速度就会变慢。 可见,在现有技术中,在FLASH中恢复处理数据的方法使得每次上电后FLASH 进行的查找工作量非常巨大,从而导致FLASH的上电处理速度緩慢。
技术实现思路
本专利技术提供一种闪存控制方法及闪存,用以解决现有^J支术中存在FLASH 由于在每一次上电时需要进行大量的查找和在冗余区写入标志的工作而导致的上电处理速度緩慢的问题。为了解决上述4支术问题,本专利技术提供了一种闪存控制方法,包括以下步骤 闪存预留物理块,并利用所述预留的物理块记录未完成的擦除或写操作的信息;闪存在每一次上电时,才艮据所述预留的物理块记录的信息进行数据的恢复 和处理。进一步地,上述方法还可具有以下特点所述利用所述预留的物理块记录 未完成的擦除或写搡作的信息包括在所述预留的物理块中记录未完成的擦除或写操作的标识信息;或者令所述预留的物理块指向浮动块,在所述浮动块中记录未完成的擦除或写 操作的标识信息,所述浮动块是指闪存寻找到的,用来记录未完成的擦除或写 操作的标识信息的物理块。进一步地,上述方法还可具有以下特点对于擦除操作,所述数据的恢复 和处理包括根据所述预留的物理块记录的信息擦除未完成的擦除操作对应的 物理块,在映射表中将该物理块和其对应的逻辑块的映射关系删除。进一步地,上述方法还可具有以下特点所述擦除操作包括当接收到擦 除操作指令时,闪存根据该操作指令中的逻辑块号查找映射表,找到该逻辑块 对应的物理块,利用所述预留的物理块记录标识该操作未完成的信息,然后擦 除该逻辑块对应的物理块,在映射表中将该逻辑块和其对应的物理块的映射关 系删除,利用所述预留的物理块记录标识该操作已完成的信息。进一步地,上述方法还可具有以下特点对于写操作,所述数据的恢复和 处理包括才艮据所述预留的物理块记录的信息擦除未完成的写操作对应的新物理块;并且查找映射表,当存在一个逻辑块对应两个物理块时,擦除所述逻辑块对应 的原物理块,在映射表中将所述逻辑块和所述原物理块的映射关系删除,并将 该逻辑块对应的新物理块标识为其原物理块。进一步地,上述方法还可具有以下特点所述写操作包括当接收到写操 作指令时,闪存根据该操作指令中的逻辑块号查找映射表,如果该逻辑块没有 对应的原物理块,则直接寻找新物理块,利用所述预留的物理块记录标识该操 作未完成的信息,并根据该操作指令在新物理块中写入数据,在映射表中建立 该逻辑块和该新物理块的映射关系,利用所述预留的物理块记录标识该操作已 完成的信息;如果找到原物理块,则闪存寻找新物理块,利用所述预留的物理块记录标 识该操作未完成的信息,将本文档来自技高网
...

【技术保护点】
一种闪存控制方法,其特征在于,包括以下步骤:闪存预留物理块,并利用所述预留的物理块记录未完成的擦除或写操作的信息;闪存在每一次上电时,根据所述预留的物理块记录的信息进行数据的恢复和处理。

【技术特征摘要】
1、一种闪存控制方法,其特征在于,包括以下步骤闪存预留物理块,并利用所述预留的物理块记录未完成的擦除或写操作的信息;闪存在每一次上电时,根据所述预留的物理块记录的信息进行数据的恢复和处理。2、 如权利要求1所述的方法,其特征在于,所述利用所述预留的物理块 记录未完成的擦除或写操作的信息包括在所述预留的物理块中记录未完成的擦除或写操作的标识信息;或者 令所述预留的物理块指向浮动块,在所述浮动块中记录未完成的擦除或写操作的标识信息,所述浮动块是指闪存寻找到的,用来记录未完成的擦除或写操作的标识信息的物理块。3、 如权利要求1所述的方法,其特征在于,对于擦除操作,所述数据的 恢复和处理包括根据所述预留的物理块记录的信息擦除未完成的擦除操作对 应的物理块,在映射表中将该物理块和其对应的逻辑块的映射关系删除。4、 如权利要求3所述的方法,其特征在于,所述擦除操作包括当接收 到擦除操作指令时,闪存根据该操作指令中的逻辑块号查找映射表,找到该逻 辑块对应的物理块,利用所述预留的物理块记录标识该操作未完成的信息,然 后擦除该逻辑块对应的物理块,在映射表中将该逻辑块和其对应的物理块的映 射关系删除,利用所述预留的物理块记录标识该操作已完成的信息。5、 如权利要求1所述的方法,其特征在于,对于写操作,所述数据的恢 复和处理包括根据所述预留的物理块记录的信息擦除未完成的写操作对应的新物理块;并且查找映射表,当存在一个逻辑块对应两个物理块时,擦除所述逻辑块对应 的原物理块,在映射表中将所述逻辑块和所述原物理块的映射关系删除,并将 该逻辑块对应的新物理块标识为其原物理块。6、 如权利要求5所述的方法,其特征在于,所述写操作包括当接收到 写操作指令时,闪存根据该操作指令中的逻辑块号查找映射表,如果该逻辑块 没有对应的原物理块,则直^寻找新物理块,利用所述预留的物理块记录标识 该操作未完成的信息,并4艮据该操作指令在新物理块中写入数据,在映射表中 建立该逻辑块和该新物理块的映射关系,利用所述预留的物理块记录标识该操 作已完成的信息;如果找到原物理块,则闪存寻找新物理块,利用所述预留的物理块记录标 识该操作未完成的信息,将原物理块中的数据拷贝到该新物理块中,根据该操 作指令在新物理块中写入数据,在映射表中建立该逻辑块和该新物理块的映射 关系,利用所述预留的物理块记录标识该操作已完成的信息,然后擦除原物理 块,更新映射表。7、 如权利要求4或6所述的方法,其特征在于,所述利用所述预留的物 理块记录标识该操作未完成的信息包括在所述预留的物理块中寻找一个空白 未完成信息记录页,在该页中记录该操作的标识信息;所述利用所述预留的物理块记录标识该才乘作已完成的信息包括在该未完 成信息记录页相应的完成信息记录页中写入数据;所述根据所述预留的物理块记录的信息进行数据的恢复和处理包括扫描 所述预留的物理块,通过判断是否存在未完成信息记录页非空而其相应的完成 信息记录页为空的情况来获知未完成的擦除或写操作,并根据该未完成信息记 录页中记录的该^l作的标识信息进行数据的恢复和处理,然后在该未完成信息 记录页相应的完成信息记录页中写入数据。8、 如权利要求7所述的方法,其特征在于,当所述预留的物理块中的未 完成信息记录页写满后,闪存寻找一个空的物理块,将所述预留的物理块中记 录的未完成的擦除或写操作的信息拷贝到该寻找到的物理块的未完成信息记 录页中,然后擦除所述预留的物理块,将所述未完成的擦除或写操作的信息拷贝回所述预留的物理块的未完成信息记录页中,擦除该寻找到的物理块;闪存在每一次上电时,如果存在该寻找到的物理块,则擦除所述预留的物 理块,将所述未完成的擦除或写操作的信息拷贝回所述预留的物理块的未完成 信息记录页中,擦除该寻找到的物理块,然后扫描所述预留的物理块,否则直 接扫描所述预留的物理块。9、 如权利要求7所述的方法,其特征在于,闪存预留两个或两个以上物 理块来记录未完成的擦除或写操作的信息,当其中一个预留的物理块的未完成 信息记录页写满后,将该未完成信息记录页写满的物理块中所述未完成的擦除 或写操作的信息拷贝到另 一个预留的物理块的未完成信息记录页中,擦除该未 完成信息记录页写满的物理块;闪存在每一次上电时,才艮据所述预留的两个或两个以上物理块记录的信息 进行数据的恢复和处理。10、 如权利要求2所述的方法,其特征在于,所述在所迷浮动块中记录未 完成的擦除或写操作的标识信息包括在开始擦除或写操作时,闪存根据所述预留的物理块中最后一个写有数据 的页中保存的浮动块的标识信息找到相应的浮动块,在该浮动块中寻找一个空 白未完成信息记录页,在该页中记录该操作的标识信息;在该擦除或写操作完 成后,闪存在该未完成信息记录页相应的完成信息记录页中写入数据;所述根据所述预留的物理块记录的信息进行^t据的恢复和处理包括根据 所述预留的物理块中最后一个写有数据的页中保存的浮动块的标识信息找到 相应的浮动块,通过判断该浮动块中是否存在未完成信息记录页非空而其相应 的完成信息记录页为空的情况来获知未完成的擦除或写操作,并才艮据该未完成 信息记录页中记录的该操作的标识信息进行数据的恢复和处理,然后在该未完 成信息记录页相应的完成信息记录页中写入数据。11、 如权利要求10所述的方法,其特征在于,当所述浮动块中的未完成 信息记录页写满后,闪存寻找一个空的物理块作为当前浮动块,将原浮动块中 记录的未完成的擦除或写操作的标识信息拷贝到当前浮动块的未完成信息记 录页中,将当前浮动块的标识信息顺序写入预留的物理块中的一个空白页,然 后擦除所述原浮动块。12、 如^l利要求11所述的方法,其特征在于,当所述预留的物理块写满 时,闪存寻找一个空的物理块,将所述当前浮动块的标识信息写入该寻找到的 物理块,然后^^除所迷预留的物理块,将所述当前浮动块的标识信息写入所述 预留的物理块的起始页,擦除...

【专利技术属性】
技术研发人员:陈益峰李文峰
申请(专利权)人:北京握奇数据系统有限公司
类型:发明
国别省市:11[中国|北京]

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

1