[发明专利]一种NOR FLASH FAT文件系统空闲簇的分配方法有效
申请号: | 201210453150.9 | 申请日: | 2012-11-13 |
公开(公告)号: | CN102981968A | 公开(公告)日: | 2013-03-20 |
发明(设计)人: | 刘宝阳;黄家明 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F17/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 250014 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种NORFLASHFAT文件系统空闲簇的分配方法,通过三次遍历FAT分区表中所有簇信息,第一次遍历空簇,找到空簇直接分配使用,不再进行第二、三次遍历;第二次遍历在第一次遍历失败情况下进行,遍历NOR-FLASH某个擦写块上全部是脏簇的块,首先擦除此块进行垃圾回收,然后分配该擦写块上的第一个簇,此时,此簇为空簇;第三次遍历在前两次遍历均失败情况下进行,遍历NOR-FLASH某个擦写块上脏簇最多的块,回收该块上的脏簇,然后分配该擦写块上第一个脏簇,即已经回收为空簇,这样可以最大限度的回收脏簇。这样可以最大限度的减少擦写NOR-FLASH的次数,延长了NOR-FLASH的使用寿命。 | ||
搜索关键词: | 一种 nor flash fat 文件系统 空闲 分配 方法 | ||
【主权项】:
一种NOR FLASH FAT文件系统空闲簇的分配方法, 其特征在于分三次遍历FAT分区表中所有簇信息,第一次遍历空簇,找到直接分配,不再进行第二、三次遍历;第二次遍历在第一次遍历失败情况下进行,遍历NOR‑FLASH某个擦写块上全部是脏簇的块,首先擦除此块进行垃圾回收,然后分配该擦写块上的第一个簇;第三次遍历在前两次遍历均失败情况下进行,遍历NOR‑FLASH某个擦写块上脏簇最多的块,回收该块上的脏簇,然后分配该擦写块上第一个脏簇,即已经回收为空簇,在分配簇的过程中兼顾到分配效率和垃圾回收,不再需要额外的资源去做垃圾回收工作,同时垃圾回收时选择脏簇最多的块,可以最大限度的减少擦写NOR‑FLASH的次数,延长了NOR‑FLASH的使用寿命,具体步骤如下:首先,有簇请求时,从FAT分区表中读取空闲簇的位置信息,此位置信息是上一次分配簇的簇号,此次分配簇从此位置开始往后循环遍历,目的是为了擦写平衡考虑的,能够保证遍历在整个簇空间中进行,而不是每次都从第一簇开始,每次从第一簇开始会出现多次分配簇出现在同一个擦写块上;其次,从空闲簇位置信息开始的簇往后进行第一次遍历,在FAT分区表中找到空闲簇位置信息对应的簇,查看此簇的状态,簇的状态分三种:已使用,空簇和脏簇,如果为空簇,则直接分配此簇,并且修改空闲簇位置信息为当前簇号,否则,空闲簇位置信息加1,查看下一个簇的状态;再次,如果第一次遍历完成以后,没有发现空簇,则进行第二次遍历,在FAT分区表中找到空闲簇位置信息对应的簇,查看此簇的状态,如果为脏簇,则查看和此脏簇在同一个NOR‑FLASH擦写块上的其他所有簇状态,如果均为脏簇,则擦除此块进行垃圾回收,然后分配此擦写块上的第一个簇,并修改空闲簇位置信息为当前簇号,否则,空闲簇位置信息置为下一个擦写块的第一个簇的簇号,继续进行遍历;最后,如果前两次遍历完成以后,没有找到空闲簇,则进行第三次遍历,在FAT分区表中找到空闲簇位置信息对应的簇,查看此簇的状态,如果为脏簇,则查看和此脏簇在同一个NOR‑FLASH擦写块上的其他所有簇状态,并记录此擦写块上脏簇的个数,修改空闲簇位置信息,并查看下一个擦写块的所有脏簇个数,直至遍历完所有的擦写块,最终找到一个脏簇个数最多的擦写块,进行垃圾回收,然后分配此擦写块上的第一个脏簇,即已经回收为空簇,并修改空闲簇位置信息为当前簇号。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201210453150.9/,转载请声明来源钻瓜专利网。