Fat文件系统格式化方法及装置的制作方法

文档序号:6399587阅读:296来源:国知局
专利名称:Fat文件系统格式化方法及装置的制作方法
技术领域
本发明涉及数据存储领域,具体地,是一种FAT文件系统格式化的方法及格式化
>J-U ρ α装直。
背景技术
现有的电子设备广泛应用FAT (File Allocation Table,文件配置表)文件系统,其是目前应用于各种平台上最简单的文件系统。FAT文件系统由保留区、FAT数据区、根目录数据区以及用户数据区构成,每一个存储区域被分配一定的空间以存储相应的数据。应用FAT文件系统时,最为经常被访问的是FAT数据区以及用户数据区,因此FAT数据区以及用户数据区的读写速度决定了 FAT文件系统的访问速度。现有大多嵌入式设备使用nand flash作为存储器以存储数据,因此嵌入式设备的FAT文件系统的数据将存储在nand flash存储器中。由于nand flash存储器是以页为最小存储单位,而FAT文件系统存储数据时以簇为单位,一旦存储的数据一簇边界与nandflash—页不对齐,即一簇数据超出一页数据,将造成数据的跨页存储,对数据访问时将会造成跨页访问,造成nand flash存储器的访问速度较慢。如图1所示,FAT文件系统中的保留区11存储空间小于一页,往往也是小于一簇数据的存储空间,而FATO数据区12将跨越三页,也就跨越三簇的存储空间,FATl数据区13也跨越三簇存储空间,也就是保留区1UFAT0数据区12以及FATl数据区13并没有与nandflash存储器的边界对齐。这样,导致根目录数据区14以及用户数据区15也没有与nandflash存储器的边界对齐, 导致对根目录数据区14、用户数据区15的访问需要跨页访问,影响到根目录数据区14、用户数据区15的访问速度,进而影响nand flash存储器的访问速度。使用FAT文件系统时通常需要对其进行格式化以清空根目录数据区14、用户数据区15的数据,并将重新分配保留区1UFAT0数据区12以及FATl数据区13的存储空间。格式化时,保留区11的存储空间可以被调整,但通常设置成默认值,即32个扇区,也就是16K字节大小。FATO数据区12及FATl数据区13的存储容量大小是通过存储器存储空间的总容量计算获得。格式化时,FATO数据区12及FATl数据区13将设置在保留区11后,根目录数据区14将设置在FATl数据区13后。在格式化的最后,FATO数据区12、FAT1数据区13及根目录数据区14将被初始化,写入初始数据。由于现有的格式化方法并没有将FATl数据区13的终止字节设置为一簇数据的存储空间终止字节,导致根目录数据区14的起始字节并不在一簇数据的存储空间起始字节,导致根目录数据区14、用户数据区15往往出现跨页访问的现象,影响nand flash存储器的访问速度。

发明内容
本发明的主要目的是提供一种存储器访问速度较快的FAT文件系统格式化方法。
本发明的另一目的是提供一种提高FAT文件系统的数据读写性能的FAT文件系统格式化装置。为了实现上述的主要目的,本发明提供的FAT文件系统格式化方法包括获取存储器一页数据的存储空间容量值,并设置一簇数据的存储空间容量值,判断所设置的一簇数据的存储空间容量值是否为一页数据的存储空间容量值的整数倍,如不是,将一簇数据的存储空间容量值调整为一页数据的存储空间容量值的整数倍,设置保留区的存储空间,获取存储器的存储空间总容量值,根据存储空间总容量值计算FAT数据区的存储空间容量值,将FAT数据区设置在保留区后,并且,判断FAT数据区的存储空间终止字节是否为一簇数据的存储空间终止字节,如是,初始化FAT数据区,否则,在FAT数据区的终止字节与FAT数据区所在簇的存储空间终止字节之间设置填充区,并初始化FAT数据区,最后对根目录数据区进行初始化。由上述方案可见,在FAT数据区后设置填充区,以确保根目录数据区的起始字节为一页数据的存储空间的起始字节,可以避免对根目录数据区及用户数据区访问时的跨页访问的问题,提高存储器的读写访问速度。并且,将一簇数据的存储空间容量值调整为一页数据的存储空间容量值整数倍,可以确保对根目录数据区及用户数据区写入的数据都是一页或多页数据,从而避免跨页或跨多页访问的问题。一个优选的方案是,设置保留区的存储空间的步骤是:判断默认的保留区的存储空间容量值是否为一簇数据的存储空间容量值的整数倍,如是,使用默认的保留区的存储空间容量值作为保留区的存储空间容量,否则,调整保留区的存储空间容量值为一簇数据的存储空间容量的整数倍。由此可见,在设置保留区时也能够确保所设置的保留区为一簇数据存储空间的整数倍,从而确保FAT数据区的起始字节也是一页数据存储空间的起始字节,有利于提高FAT文件系统的数据读写速度。进一步的方案是,设置填充区后,将填充区内的数据簇标记为坏簇。这样,将填充区的数据簇标记为坏簇,避免对根目录数据区写入数据时将数据写入到填充区中,避免对填充区进行访问,也就避免访问根目录数据区时跨页访问的问题。为实现上述的另一目的,本发明提供的FAT文件系统格式化装置包括存储空间容量值获取模块,用于获取存储器的存储空间总容量值以及存储器一页数据的存储空间容量值,并设有簇数据存储空间容量设置模块,用于设置一簇数据的存储空间容量值,还设有保留区设置模块,用于设置保留区的存储空间,还包括FAT数据区设置模块,用于根据存储空间总容量值计算FAT数据区的存储空间容量值,将FAT数据区设置在保留区后,还设有填充区设置模块,在判断FAT数据区的存储空间终止字节不是一簇数据的存储空间终止字节时,在FAT数据区的终止字节与FAT数据区所在簇的存储空间终止字节之间设置填充区,以及初始化模块,用于对FAT数据区及根目录数据区进行初始化,簇数据存储空间容量设置模块包括簇调整模块,用于在判断所设置的一簇数据的存储空间容量值不是一页数据的存储空间容量值的整数倍时,将一簇数据的存储空间容量值调整为一页数据的存储空间容量值的整数倍。由上述方案可见,通过填充模块在FAT数据区后设置填充模块,确保根目录数据区、用户数据区的起始字节为一页数据存储空间的起始字节,有效地避免根目录数据区及 用户数据区的跨页访问的问题,提高FAT文件系统的读写性能。


图1是现有FAT文件系统格式化装置生成的磁盘镜像存储结构示意图。图2是本发明FAT文件系统格式化装置实施例的结构框图。图3是本发明FAT文件系统格式化方法实施例的流程图。图4是应该本发明FAT文件系统格式化方法生成的磁盘镜像存储结构示意图。以下结合附图及实施例对本发明作进一步说明。
具体实施例方式本发明的FAT文件系统格式化方法是用于对FAT文件系统的存储器,如nandflash存储器进行格式化的方法,FAT文件系统格式化装置是应用上述方法对存储器进行格式化的装置。参见图2,本发明的FAT文件系统格式化装置具有存储空间容量值获取模块21、簇数据存储空间容量设置模块22、保留区设置模块24、FAT数据区设置模块26以及填充区设置模块27、初始化模块28,其中簇数据存储空间容量设置模块22设有簇调整模块23,保留区设置模块24设有保留区调整模块25,填充区设置模块27内设置有标记模块29。存储空间容量值获取模块21用于获取存储器的存储空间总容量值,并且获取存储器一页数据的存储空间容量值,簇数据存储空间容量设置模块22用于设置一簇数据的存储空间容量,簇调整模块23用于调整一簇数据的存储空间容量。保留区设置模块24用于设置保留区的存储空间,通常保留区设置在存储器的最前端的存储空间上,保留区调整模块25用于调整保留区的存储空间大小。当然,保留区设置模块24可以设置一个默认的保留区存储空间的容量值。FAT数据区设置模块26用于设置FAT数据区,FAT数据区的存储空间容量值根据存储器的存储空间总容量值计算获得,并且设置在保留区后。本实施例中,FAT数据区包括两个FAT数据区,分别是FATO数据区以及FATl数据区。填充区设置模块27用于设置填充区,填充区设置在FAT数据区后,用于对FAT数据区终止字节与一簇数据存储空间的终止字节之间进行填充,标记模块29用于将填充区27内的数据簇标记为坏簇,避免对填充区进行访问。初始化模块28用于对FAT数据区以及根目录数据区进行初始化操作,以完成FAT文件系统的格式化。下面结合图3说明FAT文件系统格式化装置的工作流程。首先,存储空间容量值获取模块21执行步骤SI,获取存储器,如nand flash存储器一页数据的存储空间容量值,如32K字节。然后,簇数据存储空间容量设置模块22设置一簇数据的存储空间容量值,即执行步骤S2。一簇数据的存储空间容量值可以使用默认值,但默认值往往不是一页数据存储空间容量值的整数倍,这样将导致对根目录数据区以及用户数据区的数据写入时出现非一整页数据写入或读取的情况,因此需要将一簇数据的存储空间容量值设置为一页数据的存储空间容量值的整数倍。
因此,执行步骤S2后,需要执行步骤S3,判断所设置的一簇数据的存储空间容量值是否为一页数据的存储空间容量值的整数倍,如是则对保留区进行设置,否则执行步骤S4,簇调整模块23调节一簇数据的存储空间容量值,例如将16K字节修改为32K字节。对一簇数据的存储空间容量值调整后,对保留区进行设置。参见图4,由于FAT文件系统的保留区31设置在FAT文件系统的最前端,因此保留区31的起始字节为第一页数据的存储空间的起始字节。保留区设置模块24需要设置保留区的存储空间大小,由于保留区的存储空间大小有默认值,因此保留区设置模块24首先执行步骤S5,判断默认的保留区存储空间是否为一页数据存储空间的整数倍,也就是判断是否为一簇数据的整数倍,如是执行步骤S7,使用默认的保留区存储空间容量值设置保留区31的存储空间。如果默认的保留区存储空间不是一页数据存储空间的整数倍,则执行步骤S6,保留区调整模块25调整保留区31的存储空间容量值,将保留区31的存储空间容量值设置为一页数据的存储空间容量值的整数倍,因此调整存储空间容量后,保留区31的存储空间容量将是一簇数据存储空间容量的整数倍。最后,使用调整后的保留区存储空间容量值对保留区31进行设置。设置保留区31后,执行步骤S8,存储空间容量值获取模块22获取存储器的存储空间总容量值,并根据获取的存储空间总容量值计算FAT数据区的存储空间容量值。由于本实施例的FAT数据区包括FATO数据区32及FATl数据区34,因此计算FAT数据区的存储空间容量值后,将该容量值平均分配分别计算出FATO数据区32的存储空间容量值及FATl数据区34的存储空间容量值。计算FATO数据区32的存储空间容量值后,将FATO数据区32设置在保留区31后,然后执行步骤S9,判断FATO数据区32是否与存储器的数据存储页边界对齐,也就是判断FATO数据区32的起始字节是否为一簇数据的起始字节,且FATO数据区32的终止字节是否为一簇数据的存储空间的终止字节。由于保留区31为一簇数据的存储空间整数倍,因此FATO数据区的起始字节是一簇数据的存储空间的起始字节。但由于FATO数据区的终止字节往往未必是一簇数据的存储空间的终止字节,此时需要执行步骤S10,由填充区设置模块27在FATO数据区32的终止字节与FATO数据区32的终止字节所在的数据簇的终止字节之间设置填充区33,填充区33内可以不写入任何数据,也可以写入任意的数据,且填充区33不会被后续的访问、读写。步骤SlO中,还需要标记模块29对填充区33内的数据簇进行标记,将填充区33内的数据簇标记为坏簇,以确保填充区33内的数据不会被访问。设置FATO数据区32以及填充区33后,需要在填充区33的存储空间后设置FATl数据区34。由于填充区33的终止字节为一簇存储数据的存储空间终止字节,因此FATl数据区34的起始字节为下一簇存储数据的起始字节。设置FATl数据区34时,也需要判断FATl数据区34是否与存储器的数据存储页对齐,也就是判断FATl数据区34的终止字节是否为一簇数据的存储空间的终止字节,如是执行步骤S11,否则执行步骤S10,在FATl数据区34后设置填充区35,填充区35设置在FATl数据区的终止字节与该数据簇的终止字节之间,并且由标记模块29将填充区35内的数据簇标记为坏簇。可见,FAT数据区设置模块26在判断FATO数据区32及FATl数据区34中任一个没有与存储器的数据簇对齐,即在相应的FAT数据区后设置填充模块,以确保该FAT数据区后的有效存储区域起始字节为一簇数据的起始字节。设置FATl数据区34及填充区35后,执行步骤S11,对FATO数据区32、FATI数据区34以及根目录数据区36进行初始化,初始化后的根目录数据区36的起始字节为一簇数据存储空间的起始字节。由于根目录数据区36可被后续写入,是以一簇数据为单位,且一簇数据的存储空间为一页数据的整数倍,因此根目录数据区36的存储空间为一页数据的存储空间的整数倍。用户数据区37设置在根目录数据区36后,其起始字节也是一页数据存储空间的起始字节,这样可以尽可能少地避免根目录数据区36、用户数据区37的跨页访问,提高根目录数据区36以及用户数据区37的访问速度,FAT文件系统内的数据访问速度也得以提闻。当然,上述实施例仅是本发明较佳的实施方式,实际应用时,还可以有更多的改变,例如,在FAT数据区的数据增多的情况下,相应地判断每一个FAT数据区是否与数据存储页对齐,并在没有对齐的情况下设置填充区;或者,不将填充区内的数据簇标记为坏簇,而是将填充区设计成禁止访问;又或者,FAT数据区仅为一个区域,这样填充区仅设置在FAT数据区后,这样可以实现本发明的目的。最后需要强调的是,本发明不限于上述实施方式,如调整的一簇数据存储空间大小的改变、设置的保留区存储空间的改变等变化也应该包括在本发明权利要求的保护范围内。
权利要求
1.FAT文件系统格式化方法,包括 获取存储器一页数据的存储空间容量值,并设置一簇数据的存储空间容量值; 其特征在于: 判断所设置的一簇数据的存储空间容量值是否为一页数据的存储空间容量值的整数倍,如不是,将所述一簇数据的存储空间容量值调整为一页数据的存储空间容量值的整数倍; 设置保留区的存储空间,获取所述存储器的存储空间总容量值,根据所述存储空间总容量值计算FAT数据区的存储空间容量值,将FAT数据区设置在所述保留区后; 判断所述FAT数据区的存储空间终止字节是否为一簇数据的存储空间终止字节,如是,初始化所述FAT数据区,否则,在所述FAT数据区的终止字节与所述FAT数据区所在簇的存储空间终止字节之间设置填充区,并初始化所述FAT数据区; 对根目录数据区进行初始化。
2.根据权利要求1所述的FAT文件系统格式化方法,其特征在于: 设置所述保留区的存储空间的步骤是:判断默认的保留区的存储空间容量值是否为一簇数据的存储空间容量值的整数倍,如是,使用默认的保留区的存储空间容量值作为所述保留区的存储空间容量,否则,调整所述保留区的存储空间容量值为一簇数据的存储空间容量的整数倍。
3.根据权利要求1或2所述的FAT文件系统格式化方法,其特征在于: 设置所述填充 区后,将所述填充区内的数据簇标记为坏簇。
4.根据权利要求1或2所述的FAT文件系统格式化方法,其特征在于: 所述FAT数据区包括第一 FAT数据区以及第二 FAT数据区; 判断所述FAT数据区的存储空间终止字节是否为一簇数据的存储空间终止字节的步骤是:分别判断所述第一 FAT数据区的存储空间终止字节及所述第二 FAT数据区的存储空间终止字节是否为一簇数据的存储空间终止字节; 如所述第一 FAT数据区的存储空间终止字节及所述第二 FAT数据存储区的存储空间终止字节中任一个不是一簇数据的存储空间的终止字节,则在该FAT数据区后设置所述填充区。
5.FAT文件系统格式化装置,包括 存储空间容量值获取模块,用于获取存储器的存储空间总容量值以及所述存储器一页数据的存储空间容量值; 簇数据存储空间容量设置模块,用于设置一簇数据的存储空间容量值; 保留区设置模块,用于设置保留区的存储空间; FAT数据区设置模块,用于根据所述存储空间总容量值计算FAT数据区的存储空间容量值,将FAT数据区设置在所述保留区后; 其特征在于: 填充区设置模块,在判断所述FAT数据区的存储空间终止字节不是一簇数据的存储空间终止字节时,在所述FAT数据区的终止字节与所述FAT数据区所在簇的存储空间终止字节之间设置填充区; 初始化模块,用于对所述FAT数据区及根目录数据区进行初始化;所述簇数据存储空间容量设置模块包括簇调整模块,用于在判断所设置的一簇数据的存储空间容量值不是一页数据的存储空间容量值的整数倍时,将所述一簇数据的存储空间容量值调整为一页数据的存储空间容量值的整数倍。
6.根据权利要求5所述的FAT文件系统格式化装置,其特征在于: 所述保留区设置模块包括保留区调整模块,用于判断默认的保留区的存储空间容量值是否为一簇数据的存储空间容 量值的整数倍,如是,使用默认的保留区的存储空间容量值作为所述保留区的存储空间容量,否则,调整所述保留区的存储空间容量值为一簇数据的存储空间容量的整数倍。
7.根据权利要求5或6所述的FAT文件系统格式化装置,其特征在于: 所述填充区设置模块还包括标记模块,用于将所述填充区内的数据簇标记为坏簇。
8.根据权利要求5或6所述的FAT文件系统格式化装置,其特征在于: 所述FAT数据区包括第一 FAT数据区以及第二 FAT数据区,所述填充区设置在所述第一 FAT数据区和/或所述第二 FAT数据区后。
全文摘要
本发明提供一种FAT文件系统格式化方法及装置,该方法包括获取存储器一页数据的存储空间容量值,并设置一簇数据的存储空间容量值,设置保留区的存储空间,获取存储器的存储空间总容量值,根据存储空间总容量值计算FAT数据区的存储空间容量值,将FAT数据区设置在保留区后,并且,判断FAT数据区的存储空间终止字节是否为一簇数据的存储空间终止字节,如是,初始化FAT数据区,否则,在FAT数据区的终止字节与FAT数据区所在簇的存储空间终止字节之间设置填充区,并初始化FAT数据区,最后对根目录数据区进行初始化。该装置是应用上述方法对FAT文件系统进行格式化。本发明能提高格式化后的FAT文件系统的数据访问速度。
文档编号G06F17/30GK103116640SQ20131005523
公开日2013年5月22日 申请日期2013年2月21日 优先权日2013年2月21日
发明者孙彦邦, 彭刚 申请人:珠海全志科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1