[发明专利]一种闪存管理方法和装置有效
申请号: | 201310612810.8 | 申请日: | 2013-11-26 |
公开(公告)号: | CN103617124B | 公开(公告)日: | 2017-01-25 |
发明(设计)人: | 王存友;楼俊青;李凤庆 | 申请(专利权)人: | 北京创毅视讯科技有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京润泽恒知识产权代理有限公司11319 | 代理人: | 苏培华 |
地址: | 100084 北京市海淀区中关村*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 闪存 管理 方法 装置 | ||
1.一种闪存管理方法,其特征在于,包括:
对目标数据进行分段得到各目标数据段;
计算各所述目标数据段的数据校验值;
针对各所述目标数据段中的每一段所述目标数据段,当所述目标数据段的所述数据校验值与所述目标数据段的对应子块的数据校验值不同时,确定所述对应子块的可用子块,并将所述目标数据段的数据写入所述可用子块;所述子块为所述闪存中的存储单元,多个所述子块组成一个块;
当所述目标数据段的所述数据校验值与所述目标数据段的对应子块的数据校验值相同时,保持所述对应子块的数据不变。
2.根据权利要求1所述的方法,其特征在于,所述对目标数据进行分段得到各目标数据段,包括:
按照所述目标数据段的对应子块的长度将所述目标数据划分为各目标数据段。
3.根据权利要求1所述的方法,其特征在于,所述对目标数据进行分段得到各目标数据段之前,所述方法还包括:
存储各块和各子块的管理信息至管理结构体中;
其中,各所述子块的管理信息包括子块的状态和子块的数据信息;所述子块的数据信息包括数据校验值、数据版本号和数据位置号;各所述块的管理信息包括块的状态和不同状态的子块的数量。
4.根据权利要求3所述的方法,其特征在于,所述确定所述对应子块的可用子块,包括:
获取所述对应子块之后的各子块的状态,所述子块的状态包括可写入状态、可擦除状态和使用中状态;
选择可写入状态的子块作为可用子块;其中,所述对应子块的状态为使用中状态,且所述对应子块的数据版本号为最新版本;
所述将所述目标数据段的数据写入所述可用子块之后,所述方法还包括:
修改所述对应子块的状态为可擦除状态,并修改所述可用子块的状态为使用中状态。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
设置多个中转块;所述中转块的状态为可写入状态;
对于使用中状态的块,当其中使用中状态的子块的数量占所述使用中状态的块的所有子块的数量比值小于等于搬移阈值时,将所述使用中状态的子块的数据搬移到所述中转块中,并将所述使用中状态的块的状态变更为可擦除状态。
6.一种闪存管理装置,其特征在于,包括:
分段模块,用于对目标数据进行分段得到各目标数据段;
校验值计算模块,用于计算各所述目标数据段的数据校验值;
子块处理模块,用于针对各所述目标数据段中的每一段所述目标数据段,当所述目标数据段的所述数据校验值与所述目标数据段的对应子块的数据校验值不同时,确定所述对应子块的可用子块,并将所述目标数据段的数据写入所述可用子块;所述子块为所述闪存中的存储单元,多个所述子块组成一个块;
子块保持模块,用于针对各所述目标数据段中的每一段所述目标数据段,当所述目标数据段的所述数据校验值与所述目标数据段的对应子块的数据校验值相同时,保持所述对应子块的数据不变。
7.根据权利要求6所述的装置,其特征在于,所述分段模块按照所述目标数据段的对应子块的长度将所述目标数据划分为各目标数据段。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
管理信息存储模块,用于在所述分段模块对目标数据进行分段得到各目标数据段之前,存储各块和各子块的管理信息至管理结构体中;
其中,各所述子块的管理信息包括子块的状态和子块的数据信息;所述子块的数据信息包括数据校验值、数据版本号和数据位置号;各所述块的管理信息包括块的状态和不同状态的子块的数量。
9.根据权利要求8所述的装置,其特征在于,所述子块处理模块,包括:
状态获取子模块,用于获取所述对应子块之后的各子块的状态,所述子块的状态包括可写入状态、可擦除状态和使用中状态;
子块选择子模块,用于选择可写入状态的子块作为可用子块;其中,所述对应子块的状态为使用中状态,且所述对应子块的数据版本号为最新版本;
所述装置还包括:
状态修改模块,用于在所述子块处理模块将所述目标数据段的数据写入所述可用子块之后,修改所述对应子块的状态为可擦除状态,并修改所述可用子块的状态为使用中状态。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
中转块设置模块,用于设置多个中转块;所述中转块的状态为可写入状态;
搬移模块,用于对于使用中状态的块,当其中使用中状态的子块的数量占所述使用中状态的块的所有子块的数量比值小于等于搬移阈值时,将所述使用中状态的子块的数据搬移到所述中转块中,并将所述使用中状态的块的状态变更为可擦除状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京创毅视讯科技有限公司,未经北京创毅视讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310612810.8/1.html,转载请声明来源钻瓜专利网。