一种在Flash存储介质上申请簇的方法技术

技术编号:2842509 阅读:413 留言:0更新日期:2012-04-11 18:40
一种在Flash存储介质上申请簇的方法,当FAT文件系统因添加数据而第一次申请簇(Cluster)时,先找FAT项全为Free的扇区,该扇区的起始FAT项对应的簇即为要申请的簇;如找不到这样的区域,则将扇区按1/2折半,如存在半区的FAT项全为FreeFAT项时,则这个半区的起始FAT项对应的簇即为要申请的;如仍找不到这样的区域,则按1/4折半,并依此类推直至找到FAT项全为Free  FAT的区域,该区域的第一个FAT项对应的簇即为要申请的簇。本发明专利技术申请簇时可以减少扇区上的数据修改操作,减少属性为Dirty的扇区产生及属性为Free的扇区的消耗,从而减少Flash存储单元的擦除操作,提高写的速度及Flash的使用寿命。

【技术实现步骤摘要】

本专利技术涉及一种文件分配表(File Allocation Table,FAT)文件系统针对Nand Flash或Nor Flash此类非易失闪存技术的数据存取技术。
技术介绍
在嵌入式领域,一般多以Flash作为存贮媒体,Flash由块(Block)构成。向Flash写数据只能实现”1”->”0”的位翻转,而不能实现”0”->”1”的位翻转。只有将Block擦除后,Block上的所有数据位全部为”1”。文件系统在逻辑上将Flash划分为扇区(Sector),且一个或多个扇区为一个簇(Cluster),通常扇区分为如下几种属性(a)Free可用属性。此为被擦除以后的状态;(b)Valid有效属性。在此状态下,扇区中已存入有效数据。当对Valid扇区改写或添加数据时,扇区状态不变;(c)Dirty脏属性。在此状态下,扇区不可用,须经过回收变为Free状态后才可用;文件系统修改扇区上的数据时,需申请一个Free属性的扇区,将原扇区上的数据和要写的数据合并后写入新申请的扇区,再将原扇区的属性改为Dirty。这样就减少了属性为Free的扇区,而增加了属性为Dirty的扇区。而且Flash的存取速度和寿命通常是由数据擦写次数所决定。针对Flash的这些特点,这就要求文件系统在进行数据存贮时,尽可能减少扇区上的改写操作。
技术实现思路
本专利技术的目的在于提供,其可减少Flash Block的擦除次数,从而提高写数据的速度及Flash存储介质的使用寿命。本专利技术的技术方案是提供,当FAT文件系统因添加数据而第一次申请簇(Cluster)时,先找FAT项全为Free的扇区,该扇区的起始FAT项对应的簇即为要申请的簇;如找不到这样的区域,则将扇区按1/2折半,如存在半区的FAT项全为Free FAT项时,则这个半区的起始FAT项对应的簇即为要申请的;如仍找不到这样的区域,则按1/4折半,并依此类推直至找到FAT项全为Free FAT的区域,该区域的第一个FAT项对应的簇即为要申请的簇。一种如上述Flash存储介质数据存取的方法,如以后因添加数据,需要再申请簇时,从当前簇对应的FAT项开始,顺序往后查找属性为Free的FAT项。找到的第一个属性为Free的FAT项对应的簇即为要申请的。本专利技术的有益效果是本专利技术可使文件数据对应的FAT项尽可能的位于同一个扇区上,或集中在较少个数的扇区上。这样可以减少扇区上的数据修改操作,减少属性为Dirty的扇区的产生及属性为Free的扇区的消耗,从而减少Flash存储单元的擦除操作。提高写的速度及Flash的使用寿命,也提高了文件搜索数据链的速度。并且若以后需修改该扇区上的FAT项,虽也会将该扇区属性改为Dirty,并将其上的数据搬运至另一个属性为Free的扇区,但仍可减少数据的搬运量。附图说明下面将参考附图进行详细的说明。附图A-1是本专利技术Flash存储介质数据存取的方法的FAT文件系统的结构示意图;附图A-2是本专利技术Flash存储介质数据存取的方法的为文件或目录申请第一个簇的方法示意图。具体实施例方式请一并参阅图A-1及图A-2,本专利技术实施方法如下; 1.为文件或目录确定第一个簇;2.从FAT区的第一个扇区开始,查找全为Free FAT项的扇区,如找到了,则以这个扇区的第一个FAT项对应的簇作为要找簇,否则继续下一步;3.将FAT区中的每个扇区平均分为两个区,为叙述方便我们称之为搜索区,那么搜索区的个数为FAT区所含扇区个数的2倍。从FAT表的第一个扇区开始,查找全为Free FAT项的搜索区,如找到了,则以这个搜索区的第一个FAT项对应的簇作为要找簇,否则继续下一步;4.判断搜索区包含的目录项个数是否小于1,如果小于1,则表明无存贮空间,退出查找操作,如果搜索区包含的目录项个数大于1,则执行接下来的步骤4;5.将FAT区中的每个扇区平均分为4个搜索区,那么搜索区的个数为FAT区所含扇区个数的4倍。从FAT表的第一个扇区开始,查找全为Free FAT项的搜索区,如找到了,则以这个搜索区的第一个FAT项对应的簇作为要找簇,否则,依此类推将每个扇区平均分为8个、16个搜索区继续下一步;6.为文件确定第一个簇以后的簇从文件当前位置所在的簇对应的FAT项开始,顺序往后查找,直到找到Free FAT项为止,则该Free FAT项所对应的簇即为所找。如至FAT区末端仍没有找到,则又从FAT区找开始查找。可以理解,本专利技术Flash存储介质数据存取的方法可使文件数据对应的FAT项尽可能的位于同一个扇区上,或集中在较少个数的扇区上。这样可以减少扇区上的数据修改操作,减少属性为Dirty的扇区的产生及属性为Free的扇区的消耗,从而减少Flash存储单元的擦除操作。提高写的速度及Flash的使用寿命,也提高了文件搜索数据链的速度。并且若以后需修改该扇区上的FAT项,虽也会将该扇区属性改为Dirty,并将其上的数据搬运至另一个属性为Free的扇区,但仍可减少数据的搬运量。可以理解,本专利技术主要指为文件申请目录项,即使程序采用不同的实现方式,亦属本专利技术的专利范围。权利要求1.,其特征在于当FAT文件系统因添加数据而第一次申请簇(Cluster)时,先找FAT项全为Free的扇区,该扇区的起始FAT项对应的簇即为要申请的簇;如找不到这样的区域,则将扇区按1/2折半,即将FAT区中的每个扇区平均分为两个区,为叙述方便我们称之为搜索区,那么搜索区的个数为FAT区所含扇区个数的2倍,从FAT表的第一个扇区开始,查找全为Free FAT项的搜索区,如找到了,则以这个搜索区的第一个FAT项对应的簇即为要申请的,如仍找不到这样的区域,则将扇区按1/4折半,并依此类推,即将每个扇区平均分为8个、16个搜索区继续搜索,直至找到FAT项全为Free FAT的区域,该区域的第一个FAT项对应的簇即为要申请的簇。2.按照权利要求1所述,其特征在于如以后因添加数据,需要再申请簇时,从当前簇对应的FAT项开始,顺序往后查找属性为Free的FAT项,找到的第一个属性为Free的FAT项对应的簇即为要申请的。3.按照权利要求1所述,其特征在于为文件确定第一个簇以后的簇,从文件当前位置所在的簇对应的FAT项开始,顺序往后查找,直到找到Free FAT项为止,则该Free FAT项所对应的簇即为所找,如至FAT区末端仍没有找到,则又从FAT区找开始查找。全文摘要,当FAT文件系统因添加数据而第一次申请簇(Cluster)时,先找FAT项全为Free的扇区,该扇区的起始FAT项对应的簇即为要申请的簇;如找不到这样的区域,则将扇区按1/2折半,如存在半区的FAT项全为Free FAT项时,则这个半区的起始FAT项对应的簇即为要申请的;如仍找不到这样的区域,则按1/4折半,并依此类推直至找到FAT项全为Free FAT的区域,该区域的第一个FAT项对应的簇即为要申请的簇。本专利技术申请簇时可以减少扇区上的数据修改操作,减少属性为Dirty的扇区产生及属性为Free的扇区的消耗,从而减少Flash存储单元的擦除操作,提高写的速度及Flash的使用寿命。文档编号G06F12/00GK1963809SQ2005101177本文档来自技高网...

【技术保护点】
一种在Flash存储介质上申请簇的方法,其特征在于:当FAT文件系统因添加数据而第一次申请簇(Cluster)时,先找FAT项全为Free的扇区,该扇区的起始FAT项对应的簇即为要申请的簇;如找不到这样的区域,则将扇区按1/2折半,即将FAT区中的每个扇区平均分为两个区,为叙述方便我们称之为搜索区,那么搜索区的个数为FAT区所含扇区个数的2倍,从FAT表的第一个扇区开始,查找全为FreeFAT项的搜索区,如找到了,则以这个搜索区的第一个FAT项对应的簇即为要申请的,如仍找 不到这样的区域,则将扇区按1/4折半,并依此类推,即将每个扇区平均分为8个、16个搜索区继续搜索,直至找到FAT项全为FreeFAT的区域,该区域的第一个FAT项对应的簇即为要申请的簇。

【技术特征摘要】

【专利技术属性】
技术研发人员:张学平
申请(专利权)人:康佳集团股份有限公司
类型:发明
国别省市:94[中国|深圳]

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

1