[发明专利]一种闪存资料防丢失方法、装置、设备及存储介质有效
申请号: | 202111185227.4 | 申请日: | 2021-10-12 |
公开(公告)号: | CN113918485B | 公开(公告)日: | 2023-04-11 |
发明(设计)人: | 黄峰 | 申请(专利权)人: | 广东省高峰科技有限公司 |
主分类号: | G06F12/16 | 分类号: | G06F12/16;G06F12/02;G06F12/0866;G06F21/64;G06F21/79 |
代理公司: | 北京维正专利代理有限公司 11508 | 代理人: | 何爽 |
地址: | 517583 广东省河*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 闪存 资料 丢失 方法 装置 设备 存储 介质 | ||
1.一种闪存资料防丢失方法,其特征在于,所述方法包括:
创建Flash缓存,并将所述Flash缓存分为多个缓存块,一个所述缓存块只能对应一个物理块;
在接收外部的数据擦写命令时,对所述Flash缓存中与所述数据擦写命令要访问的Flash存储区域的物理块所对应的缓存块进行改写;
每经过一个预设的间隔时间,则根据所述缓存块中的数据对所述Flash存储区域中相应的物理块执行一次同步更新;
所述外部的数据擦写命令中携带有要访问的物理块的线性地址以及要改写的数据;
所述在接收外部的数据擦写命令时,对所述Flash缓存中与所述数据擦写命令要访问的Flash存储区域的物理块所对应的缓存块进行改写,包括:
在接收到外部的数据擦写命令时,根据所述Flash缓存中所有缓存块的缓存块号查找是否存在与当前所述外部的数据擦写命令中携带的要访问的线性地址匹配的缓存块;
如果存在,则直接将数据更新到对应的缓块内,并且将数据擦写命令中包含的数据进行MD5加密计算,将计算结果当作缓存块校验码存到当前缓存块内;
如果不存在,则将数据更新到与数据擦写命令中包含的线性地址对应的物理块中,同时将数据擦写命令中包含的数据写到Flash缓存中空的缓存块中,将当前物理块的线性地址作为缓存块号记录在当前缓存块中,并且通过MD5对当前缓存块中的数据进行计算,并且将计算结果作为缓存块校验码存储到当前缓存块中;
所述将数据擦写命令中包含的数据写到Flash缓存中空的缓存块中包括如下处理:在Flash缓存中查询是否存在空缓存块,若存在空缓存块,则直接将数据擦写命令中的数据存储到任意一个空缓存块中;若不存在空缓存块,则计算Flash缓存中各缓存块的访问率,将当前计时循环中访问率最低的缓存块对应的物理块进行校验更新后,清除当前缓存块的内容,并将当前数据擦写命令中的数据存储到当前缓存块中;当进入到一个计时循环时,对Flash缓存访问的总次数进行累计,并且对每次访问对应的缓存块进行单独的访问次数累计;当在Flash缓存中查询不到当前访问对应的缓存块并且Flash缓存中不存在空缓存块时,分别计算各个缓存块的访问次数与Flash缓存访问总次数的比值,计算的比值结果即为该缓存块的访问率;其中,在Flash缓存中选出访问率最低的缓存块时,若访问率最低的缓存块有多个,则将若干访问率最低的缓存块中任意一个缓存块作为要清除的缓存块;若访问率最低的缓存块只有一个,则将该缓存块作为要清除的缓存块;接着先将确定的要清除的缓存块与该缓存块对应的物理块进行校验更新,再对当前缓存块进行清除并将其作为空缓存块,接着将当前命令中包含的数据存储到当前空缓存块中,并对当前缓存块中数据进行MD5计算,将计算结果作为缓存块校验码存储到当前缓存块中,并且也将当前命令中包含的线性地址作为缓存块号存储到缓存块中;当前计时循环结束后,对各个缓存块的访问次数以及Flash缓存访问的总次数归零。
2.根据权利要求1所述的方法,其特征在于,所述缓存块的数量不超过所述物理块的数量;所述缓存块用于存储缓存块号、缓存块校验码和与所述缓存块对应的物理块相应的数据,所述缓存块号即为与所述缓存块对应的物理块的线性地址。
3.根据权利要求2所述的方法,其特征在于,所述根据所述要清除的缓存块对相应的物理块进行同步更新,包括:
根据所述要清除的缓存块所对应的物理块中的数据计算物理校验码;
比较所述物理校验码与所述要清除的缓存块的缓存块校验码是否相同;
若比较结果不同则根据所述要清除的缓存块的数据对所述对应的物理块进行更新。
4.根据权利要求3所述的方法,其特征在于,所述每经过一个预设的间隔时间,则根据所述缓存块中的数据对所述Flash存储区域中相应的物理块执行一次同步更新,包括:
当第一次接收到数据擦写命令后,开始计时;
当时间达到预设的间隔时间后重新计时,并且遍历所述Flash缓存中的所述缓存块,根据与当前遍历到的缓存块所对应的物理块中的数据计算物理校验码;
判断所述当前遍历到的缓存块的缓存块校验码与所述对应的物理块的物理校验码是否一致,如果不一致,则根据所述当前遍历到的缓存块中的数据更新所述对应的物理块的数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东省高峰科技有限公司,未经广东省高峰科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111185227.4/1.html,转载请声明来源钻瓜专利网。