[发明专利]文件数据管理方法及装置有效
| 申请号: | 201510080418.2 | 申请日: | 2015-02-13 |
| 公开(公告)号: | CN104615546B | 公开(公告)日: | 2018-04-27 |
| 发明(设计)人: | 孟德国;刘鑫;高自光 | 申请(专利权)人: | 小米科技有限责任公司 |
| 主分类号: | G06F12/02 | 分类号: | G06F12/02 |
| 代理公司: | 北京博思佳知识产权代理有限公司11415 | 代理人: | 林祥 |
| 地址: | 100085 北京市海淀区清*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 文件 数据管理 方法 装置 | ||
技术领域
本公开涉及存储技术领域,尤其涉及文件数据管理方法及装置。
背景技术
Flash(闪存)作为一种存储器,其不仅具有电子可擦除可编程的性能,还可以快速读取数据,使数据不会因为断电而丢失。一种常见的Flash为Nor Flash,通常应用在MCU(Micro Control Unit,微控制单元)上,这种Flash按照较小的单元写入数据,并且按照较大的单元擦除数据,因此需要将不能同时有效或无效的数据存放在不同的擦写单元。
相关技术中,当某个独立的小数据块占用整个擦写单元时,例如,一个字节的数据块占用了1K的擦写单元,因此浪费了Flash的存储空间,并且当该数据块变化时,需要对1K的存储空间进行擦除操作,频繁的擦除操作会缩短Flash的使用寿命。
发明内容
本公开提供了文件数据管理方法及装置,以解决相关技术中的文件数据管理方式容易浪费Flash存储空间,缩短Flash使用寿命的问题。
根据本公开实施例的第一方面,提供一种文件数据管理方法,用于对闪存中的文件系统进行管理,所述闪存中包括多个擦写单元,所述方法包括:
当要写入目标文件的目标数据块时,根据已建立的擦写单元链表获取目标擦写单元;
将所述目标数据块写入所述目标擦写单元;
根据写入结果保存所述目标数据块的元信息,并更新所述目标文件的数据结构和所述目标擦写单元的数据结构。
可选的,所述方法还包括:
当所述文件系统上电时,根据所述多个擦写单元中的数据块的元信息建立每个文件的数据结构、每个擦写单元的数据结构、以及擦写单元链表。
可选的,所述数据块的元信息包括:数据块的头信息,数据块的长度,数据块所属文件的文件名,数据块的有效性信息,数据块在所属文件中的序号;
所述建立每个文件的数据结构包括:
根据每个文件的文件名遍历所述多个擦写单元,获得与所述每个文件的文件名具有相同文件名的数据块;
计算所述具有相同文件名的数据块的长度和,将所述长度和作为所述文件的文件长度;
按照所述具有相同文件名的数据块在所述文件中的序号,获得所述文件的第一个数据块的地址信息和最后一个数据块的地址信息;
生成所述文件的数据结构,所述文件的数据结构中包括所述文件的文件名,所述文件长度,所述第一个数据块的地址信息和最后一个数据块的地址信息。
可选的,建立每个擦写单元的数据结构包括:
按照预设的写入单元的写入长度遍历每个擦写单元,获取每个擦写单元中未写入数据的剩余写入单元的剩余数量,以及已写入数据的有效写入单元的有效数量;
生成所述擦写单元的数据结构,所述擦写单元的数据结构中包括所述剩余数量和所述有效数量,其中,所述擦写单元中除所述剩余写入单元和所述有效写入单元外的写入单元为无效写入单元。
可选的,建立擦写单元链表包括:
遍历每个擦写单元的数据写入情况;
根据未写入数据的擦写单元建立空闲擦写单元队列,所述空闲擦写单元队列对为先进先出队列,以及,根据已写入数据的擦写单元建立已使用擦写单元链表,所述已使用擦写单元链表中的擦写单元中包含剩余写入单元。
可选的,所述方法还包括:
判断所述空闲擦写单元队列中的擦写单元的数量是否小于第一预设数量;
当小于所述第一预设数量时,从所述已使用擦写单元链表中获取不少于第二预设数量的擦写单元,所述不少于第二预设数量的擦写单元中的每个擦写单元的剩余数量和有效数量之和小于预设写入单元数量;
从所述空闲擦写单元队列的队尾获取至少一个擦写单元;
将所述不少于第二预设数量的擦写单元中有效性信息为有效的数据块写入所述至少一个擦写单元;
对所述不少于第二预设数量的擦写单元执行擦除操作后,将所述不少于第二预设数量的擦写单元添加到所述空闲擦写单元队列的头部。
可选的,所述根据已建立的擦写单元链表获取目标擦写单元,包括:
从所述已使用擦写单元链表中获取第一目标擦写单元;
当所述目标数据块的长度大于所述第一目标擦写单元中剩余写入单元的长度时,从所述空闲擦写单元队列的队尾获取第二目标擦写单元。
可选的,所述根据写入结果保存所述目标数据块的元信息,包括:
将所述目标文件的最后一个数据块在所述目标文件中的序号加一作为所述目标数据块在所述目标文件中的序号;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于小米科技有限责任公司,未经小米科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510080418.2/2.html,转载请声明来源钻瓜专利网。





