一种Flash存储器的数据更新方法和装置制造方法及图纸

技术编号:27935111 阅读:23 留言:0更新日期:2021-04-02 14:15
本发明专利技术涉及一种Flash存储器的数据更新方法和装置,属于数据处理技术领域,解决了现有技术数据的存储擦写难以保证高寿命的应用需求的问题。方法包括根据文件数据更新请求和当前地址映射表,确定与待更新的文件数据相对应的原逻辑页以及原逻辑页映射的原物理页;根据当前地址映射表所在的物理页的位置,在空闲物理页表中以循环的方式查找一个或多个空闲物理页并作为数据空闲物理页;将待更新的文件数据读出到缓存,在缓存中更新文件数据,将更新后的文件数据对应地写入到数据空闲物理页中;以及将当前地址映射表读取到缓存中,在缓存中更新当前地址映射表,并将更新后的当前地址映射表写入第二空闲物理页中。该更新方法能够保证高寿命的应用需求。

【技术实现步骤摘要】
一种Flash存储器的数据更新方法和装置
本专利技术涉及数据处理
,尤其涉及一种Flash存储器的数据更新方法和装置。
技术介绍
Flash存储器为半导体存储芯片,数据写入方式以页为单元先擦除再写入数据。现有的嵌入式操作系统普遍基于以Flash物理器件存储介质的方案,Flash存储的擦写次数是其使用寿命的关键性能,但现有Flash文件存储方式:固定文件存储方式,这种方法采用文件体逻辑上与单一的物理地址映射。每次对文件的更新都在该物理存储位置。固定文件存储方案由于文件的物理存储位置固定,无法实现特定对擦写次数要求较高的应用要求,其存储数据的更新寿命与Flash的极限擦写性能一致。基础文件机制无法提升文件的擦写寿命。因此,对Flash存储器的访问存在的问题是采用固定文件地址的方式使得文件数据的存储擦写寿命与物理存储器的寿命一致,难以保证高寿命的应用需求。
技术实现思路
鉴于上述的分析,本专利技术实施例旨在提供一种Flash存储器的数据更新方法和装置,用以解决现有文件数据的存储擦写难以保证高寿命的应用需求的问题。一方面,本专利技术实施例提供了一种Flash存储器的数据更新方法,包括:根据文件数据更新请求和当前地址映射表,确定与待更新的文件数据相对应的原逻辑页以及所述原逻辑页映射的原物理页,其中,所述原物理页包括一个或多个物理页;根据所述当前地址映射表所在的物理页的位置,在空闲物理页表中以循环的方式查找一个或多个空闲物理页并将查找到的空闲物理页作为数据空闲物理页,其中,所述数据空闲物理页包括与所述原物理页中物理页的数量相同的一个或多个第一空闲物理页;将所述待更新的文件数据读出到缓存,在所述缓存中更新所述文件数据,将更新后的文件数据对应地写入到所述数据空闲物理页中;以及将所述当前地址映射表读取到所述缓存中,在所述缓存中更新所述当前地址映射表,并将更新后的当前地址映射表写入第二空闲物理页中。上述技术方案的有益效果如下:本实施例提供的Flash存储器的数据更新方法基于地址映射方法,在缓存中对待更新的文件数据进行更新并将更新的文件数据写入Flash存储器的空闲物理页,在缓存中对当前地址映射表进行顺序更新,然后将更新的当前地址映射表写入Flash存储器的空闲物理页,以减少数据擦写次数以提升通用文件数据擦写寿命,同时由于可以在所有空闲物理页内滚动更新文件,有效利用了系统的空闲空间达到寿命和性能的提升,总体的存储资源消耗较少。基于上述方法的进一步改进,所述当前地址映射表包括校验码、版本信息、地址映射表标识和多个映射表项,其中,所述映射表项的序号对应于逻辑页,以及所述映射表项中的内容对应于所述物理页。上述技术方案的有益效果如下:地址映射表包括校验码、版本信息、地址映射表标识和多个映射表项,以将物理页的存储空间用于存储映射表项以能够管理更多的Flash存储器的空间。基于上述方法的进一步改进,在所述缓存中更新所述当前地址映射表进一步包括:在所述缓存中将所述当前地址映射表中的版本信息递增以更新所述版本信息;在所述缓存中更新所述当前地址映射表中的一个或多个映射表项中的内容;以及在所述缓存中根据所述更新的版本信息、所述地址映射表标识和更新的一个或多个映射表项重新计算校验码,并利用计算的校验码更新所述当前地址映射表的校验码。上述技术方案的有益效果如下:基于版本信息和标识的校验机制:为保证有效地址映射表的系统唯一性,本实施例通过“版本信息”的逻辑递增设计和“地址映射表标识”保证了系统地址映射表的识别和唯一性检查;并通过全部对地址映射表内数据进行“校验码”检查,使得本方法具有异常掉电的容错机制。基于上述方法的进一步改进,当所述原物理页包括一个物理页时,更新所述当前地址映射表中的一个映射表项,包括:通过将序号为所述原逻辑页的映射表项中的内容修改为所述数据空闲物理页中的一个物理页的地址来修改原文件数据在所述当前地址映射表中原逻辑页和原物理页的映射关系。基于上述方法的进一步改进,当所述原物理页包括多个物理页时,更新所述当前地址映射表中的多个映射表项,包括:通过将序号为所述原逻辑页的多个映射表项中的内容顺序修改为所述数据空闲物理页中的多个物理页的地址来修改原文件数据在所述当前地址映射表中原逻辑页和原物理页的映射关系。基于上述方法的进一步改进,所述空闲物理页表用于管理所述Flash存储器的所有物理页,其中,在空闲物理页表中将所述一个或多个原物理页的状态标记为空闲状态并将所述一个或多个第一空闲物理页的状态标记为占用状态。上述技术方案的有益效果如下:物理页表使用情况标记机制:为保证在全部空闲物理页滚动循环更新过程中,空闲物理页使用和更新的高效,减少Flash存储器的擦写操作。提供了物理页表机制,通过“物理页标记表”记录物理页的空闲回收和分配。基于上述方法的进一步改进,根据文件数据更新请求和当前地址映射表,确定与待更新的文件数据相对应的原逻辑页以及所述原逻辑页映射的原物理页进一步包括:根据文件数据更新请求提供的逻辑地址和更新数据长度,确定所述待更新的文件数据的逻辑地址范围;基于所述逻辑地址范围获得与所述逻辑地址范围相对应的原逻辑页;以及根据所述当前地址映射表和所述原逻辑页确定所述待更新的文件数据实际存储的原物理页。基于上述方法的进一步改进,将所述当前地址映射表读取到所述缓存中,在所述缓存中更新所述当前地址映射表,并将更新后的当前地址映射表写入第二空闲物理页中进一步包括:根据所述当前地址映射表所在的物理页的位置,在空闲物理页表中以循环的方式查找一个空闲物理页并将查找到的一个空闲物理页作为所述第二空闲物理页;将所述待更新的当前地址映射表读出到缓存,并对所述缓存中的当前地址映射表进行更新;将更新后的当前地址映射表写入所述第二空闲物理页中;以及在所述空闲物理页表中将存储所述待更新的当前地址映射表的物理页的状态标记为空闲状态并将所述第二空闲物理页的状态标记为占用状态。基于上述方法的进一步改进,根据所述当前地址映射表所在的物理页的位置,在空闲物理页表中以循环的方式查找一个空闲物理页进一步包括:在所述空闲物理页表中从所述当前地址映射表所在的物理页开始向高地址第一次查找:直到查找到一个空闲物理页停止查找,并返回查找到的一个空闲物理页;以及当第一次查找过程中没有查找到空闲物理页时,从所述空闲物理页表中的起始物理页开始进行二次查找,直到查找到一个空闲物理页停止查找,并返回查找到的一个空闲物理页。基于上述方法的进一步改进,根据存储所述当前地址映射表的所述物理页的位置,在空闲物理页表中以循环的方式查找多个空闲物理页进一步包括:在所述空闲物理页表中从所述当前地址映射表所在的物理页开始向高地址进行第一次查找:直到查找到所述多个空闲物理页停止查找并返回查找到的多个空闲物理页;以及当在第一次查找过程中没有查找到空闲物理页或者查找到的空闲物理页的数量不足时,从所述空闲物理页表中的起始物理页开始进行第二次查找,直到查找到所述多个空闲物理页或查找到的空闲物理页之和等于所述多个空闲物理页的数量停止查找并本文档来自技高网...

【技术保护点】
1.一种Flash存储器的数据更新方法,其特征在于,包括:/n根据文件数据更新请求和当前地址映射表,确定与待更新的文件数据相对应的原逻辑页以及所述原逻辑页映射的原物理页,其中,所述原物理页包括一个或多个物理页;/n根据所述当前地址映射表所在的物理页的位置,在空闲物理页表中以循环的方式查找一个或多个空闲物理页并将查找到的空闲物理页作为数据空闲物理页,其中,所述数据空闲物理页包括与所述原物理页中物理页的数量相同的一个或多个第一空闲物理页;/n将所述待更新的文件数据读出到缓存,在所述缓存中更新所述文件数据,将更新后的文件数据对应地写入到所述数据空闲物理页中;以及/n将所述当前地址映射表读取到所述缓存中,在所述缓存中更新所述当前地址映射表,并将更新后的当前地址映射表写入第二空闲物理页中。/n

【技术特征摘要】
1.一种Flash存储器的数据更新方法,其特征在于,包括:
根据文件数据更新请求和当前地址映射表,确定与待更新的文件数据相对应的原逻辑页以及所述原逻辑页映射的原物理页,其中,所述原物理页包括一个或多个物理页;
根据所述当前地址映射表所在的物理页的位置,在空闲物理页表中以循环的方式查找一个或多个空闲物理页并将查找到的空闲物理页作为数据空闲物理页,其中,所述数据空闲物理页包括与所述原物理页中物理页的数量相同的一个或多个第一空闲物理页;
将所述待更新的文件数据读出到缓存,在所述缓存中更新所述文件数据,将更新后的文件数据对应地写入到所述数据空闲物理页中;以及
将所述当前地址映射表读取到所述缓存中,在所述缓存中更新所述当前地址映射表,并将更新后的当前地址映射表写入第二空闲物理页中。


2.根据权利要求1所述的Flash存储器的数据更新方法,其特征在于,所述当前地址映射表包括校验码、版本信息、地址映射表标识和多个映射表项,其中,所述映射表项的序号对应于逻辑页,以及所述映射表项中的内容对应于所述物理页。


3.根据权利要求2所述的Flash存储器的数据更新方法,其特征在于,在所述缓存中更新所述当前地址映射表进一步包括:
在所述缓存中将所述当前地址映射表中的版本信息递增以更新所述版本信息;
在所述缓存中更新所述当前地址映射表中的一个或多个映射表项中的内容;以及
在所述缓存中根据所述更新的版本信息、所述地址映射表标识和更新的一个或多个映射表项重新计算校验码,并利用计算的校验码更新所述当前地址映射表的校验码。


4.根据权利要求3所述的Flash存储器的数据更新方法,其特征在于,当所述原物理页包括一个物理页时,更新所述当前地址映射表中的一个映射表项,包括:
通过将序号为所述原逻辑页的映射表项中的内容修改为所述数据空闲物理页中的一个物理页的地址来修改原文件数据在所述当前地址映射表中原逻辑页和原物理页的映射关系。


5.根据权利要求3所述的Flash存储器的数据更新方法,其特征在于,当所述原物理页包括多个物理页时,更新所述当前地址映射表中的多个映射表项,包括:
通过将序号为所述原逻辑页的多个映射表项中的内容顺序修改为所述数据空闲物理页中的多个物理页的地址来修改原文件数据在所述当前地址映射表中原逻辑页和原物理页的映射关系。


6.根据权利要求1所述的Flash存储器的数据更新方法,其特征在于,所述空闲物理页表用于管理所述Flash存储器的所有物理页,其中,在空闲物理页表中将所述一个或多个原物理页的状态标记为空闲状态并将所述一个或多个第一空闲物理页的状态标记为占用状态。


7.根据权利要求1所述的Flash存储器的数据更新方法,其特征在于,根据文件数据更新请求和当前地址映射表,确定与待更新的文件数据相对应的原逻辑页以及所述原逻辑页映射的原物理页进一步包括:
根据文件数据更新请求提供的逻辑地址和更新数据长度,确定所述待更新的文件数据的逻辑地址范围;
基于所述逻辑地址范围获得与所述逻辑地址范围相对应的原逻辑页;以及
根据所述当前地址映射表和所述原逻辑页确定所述待更新的文件数据实际存储的原物理页。


8.根据权利要求3所述的Flash存储器的数据更新方法,其特征在于,将所述当前地址...

【专利技术属性】
技术研发人员:黄明刘青王卫东张秀玲
申请(专利权)人:北京华弘集成电路设计有限责任公司
类型:发明
国别省市:北京;11

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

1