一种Flash数据管理方法技术

技术编号:4721597 阅读:271 留言:0更新日期:2012-04-11 18:40
本发明专利技术是一种针对Flash应用的数据管理方法,具体而言,就是通过从目标Flash空间分配出若干Block作为暂存区,对Flash做连续地址多扇区写入操作时,如果中间插入对其他扇区地址的读或写操作,并且数据缓冲区尚未写满,则放弃对当前Page的Program操作,并把数据缓冲区的数据保存到暂存区;等到对其他扇区地址的读写操作结束之后,从暂存区中重新装入数据到缓冲区,然后继续上一次的多扇区写入操作。从而,避免了Flash内部因Page未被写满而造成的空间碎片,以及由此碎片造成的Block合并和重整操作,改善了Flash数据写入效率。

【技术实现步骤摘要】

本专利技术是一种针对Flash应用的数据管理方法。
技术介绍
Flash芯片的广泛应用于诸如U盘、存储卡、MP3、 MP4、数码相机、数码摄像 机、手机、GPS等等。Flash芯片速度快,集成度高,Flash内部的基本单元是Block,比 Block小的单元是Page,通常一个Block由64或128个Page组成,每个Page容量为2K 字节。但是,Flash芯片在存取操作上有着特定的要求,写过的单元必须擦除之后才能再 次写入新的内容。写入编程操作(Program)是以Page为单位,但是擦除操作(Erase)则是 以Block为单位,这个特点决定了 Flash中的数据写入要有一定的管理方法。 建立在Flash芯片上面的文件系统通常是FAT/FAT32(下面统称为FAT)格式。在 FAT文件系统中,对文件的写入就有这样的特点,即每写入一个文件就要操作一次FAT 表。每个文件的写入都是多个连续扇区的写入,当我们写入多个文件时, 一般情况下, 其扇区地址是连续的,但是这种连续扇区的操作会被中间对FAT表的操作所打断。对 目标Flash而言,就是一次完整的连续多扇区写入操作被分成了几段。通常的算法实现 中, 一旦遇到地址不连续的情况,不管当前缓冲区是否写满,都会对当前Page数据进行 Program,然后转到FAT表的扇区进行操作。如果当前缓冲区尚未被写满,这样就会在 当前Page留下了空间碎片,也就是说,当前Block在该Page上损失了一点空间,当这个 Block再次被操作并且被写满的时候,就会因为前面的Page存在空间碎片而导致最后几个 扇区没有空间而无法写入,此时必须对该Block进行Page数据重整,或者先写入到一个 临时Block中。如果写入到临时Block中,可能会因为其他Block的写入也要用到这个临 时Block而要求原始Block和临时Block之间进行合并。不论是合并抑或是重整操作都会 带来效率上一定程度的下降。 因此,针对上述不足,本专利技术提供了,通过这个方法, 从目标Flash空间分配出若干Block作为暂存区,对Flash做连续地址多扇区写入操作时, 如果中间插入对其他扇区地址的读或写操作,并且数据缓冲区尚未写满,则放弃对当前 Page的Program操作,并把数据缓冲区的数据保存到暂存区;等到对其他扇区地址的读 写操作结束之后,从暂存区中重新装入数据到缓冲区,然后继续上一次的多扇区写入操 作。从而,避免了 Flash内部因Page未被写满而造成的空间碎片,以及由此碎片造成的 Block合并和重整操作,改善了 Flash数据写入效率。
技术实现思路
为了以上目的,本专利技术提供了,该方法包括 1、对目标Flash空间划分出若干Block组成暂存区,用于暂存数据缓冲器中的数 据;对Flash做若干次连续地址多扇区写入操作时,如果扇区地址始终保持连续,则不操 作暂存区;对Flash做若干次连续地址多扇区写入操作时,如果中间插入对其他扇区地址的读或写操作,并且数据缓冲区尚未写满,则放弃对当前Page的Program操作,并把数 据缓冲区的数据保存到暂存区,等到对其他扇区地址的读写操作结束之后,从暂存区中 重新装入数据到缓冲区,然后继续下一次的连续地址多扇区写入操作; 2、目标Flash中的暂存区可以按照Page循环使用,也可以按照Block循环使用; 按照Page循环使用时,始终用同一个Block的Page直到该Block变成Bad Block, Page循 环一次之后擦除该Block,该Block成为Bad Block之后,在暂存区中找一个新的Block来 使用;按照Block循环使用时,则对暂存区中的多个Block的多个Page进行循环使用,某 个Block变成Bad Block之后,可以在暂存区中找一个新Block来替换,或者剔除该Bad Block。附图说明 在本专利技术专利申请的权利要求书中,具体地指出了本专利技术的主题,并清楚地对 其提出了专利保护。然而参照说明和附图,可以更好的理解本专利技术的有关结构和实现方 法以及其目的、特征和优势。 图1暂存区Block暂存操作前示意图; 图2暂存区Block暂存操作后示意图; 虽然此处说明描述了本专利技术的某些特征及一种实现方法,但是对于本专业的技 术人员来说,将会出现许多修改、替换、变化和等效代换。因此,本专利技术的保护范围以 所附的权利要求的范围为准。权利要求,该方法具有如下特征1)、对目标Flash空间划分出若干Block组成暂存区,用于暂存数据缓冲器中的数据;对Flash做若干次连续地址多扇区写入操作时,如果扇区地址始终保持连续,则不操作暂存区;对Flash做若干次连续地址多扇区写入操作时,如果中间插入对其他扇区地址的读或写操作,并且数据缓冲区尚未写满,则放弃对当前Page的Program操作,并把数据缓冲区的数据保存到暂存区,等到对其他扇区地址的读写操作结束之后,从暂存区中重新装入数据到缓冲区,然后继续下一次的连续地址多扇区写入操作;2)、目标Flash中的暂存区可以按照Page循环使用,也可以按照Block循环使用;按照Page循环使用时,始终用同一个Block的Page直到该Block变成Bad Block,Page循环一次之后擦除该Block,该Block成为Bad Block之后,在暂存区中找一个新的Block来使用;按照Block循环使用时,则对暂存区中的多个Block的多个Page进行循环使用,某个Block变成Bad Block之后,可以在暂存区中找一个新Block来替换,或者剔除该Bad Block。全文摘要本专利技术是一种针对Flash应用的数据管理方法,具体而言,就是通过从目标Flash空间分配出若干Block作为暂存区,对Flash做连续地址多扇区写入操作时,如果中间插入对其他扇区地址的读或写操作,并且数据缓冲区尚未写满,则放弃对当前Page的Program操作,并把数据缓冲区的数据保存到暂存区;等到对其他扇区地址的读写操作结束之后,从暂存区中重新装入数据到缓冲区,然后继续上一次的多扇区写入操作。从而,避免了Flash内部因Page未被写满而造成的空间碎片,以及由此碎片造成的Block合并和重整操作,改善了Flash数据写入效率。文档编号G06F12/06GK101692211SQ20091003490公开日2010年4月7日 申请日期2009年9月15日 优先权日2009年9月15日专利技术者丁铁英, 吴俊辉, 朱小茅, 濮国亮 申请人:苏州超锐微电子有限公司本文档来自技高网
...

【技术保护点】
一种Flash数据管理方法,该方法具有如下特征:  1)、对目标Flash空间划分出若干Block组成暂存区,用于暂存数据缓冲器中的数据;对Flash做若干次连续地址多扇区写入操作时,如果扇区地址始终保持连续,则不操作暂存区;对Flash做若干次连续地址多扇区写入操作时,如果中间插入对其他扇区地址的读或写操作,并且数据缓冲区尚未写满,则放弃对当前Page的Program操作,并把数据缓冲区的数据保存到暂存区,等到对其他扇区地址的读写操作结束之后,从暂存区中重新装入数据到缓冲区,然后继续下一次的连续地址多扇区写入操作;  2)、目标Flash中的暂存区可以按照Page循环使用,也可以按照Block循环使用;按照Page循环使用时,始终用同一个Block的Page直到该Block变成Bad Block,Page循环一次之后擦除该Block,该Block成为Bad Block之后,在暂存区中找一个新的Block来使用;按照Block循环使用时,则对暂存区中的多个Block的多个Page进行循环使用,某个Block变成Bad Block之后,可以在暂存区中找一个新Block来替换,或者剔除该Bad Block。...

【技术特征摘要】

【专利技术属性】
技术研发人员:朱小茅丁铁英濮国亮吴俊辉
申请(专利权)人:苏州超锐微电子有限公司
类型:发明
国别省市:32[]

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

1