数据存储方法、装置及电子设备与流程

文档序号:36651131发布日期:2024-01-06 23:35阅读:22来源:国知局
数据存储方法、装置及电子设备与流程

本技术实施例涉及计算机,尤其涉及一种数据存储方法、装置及电子设备。


背景技术:

1、非易失性存储器(none volatile memory,nvm)弥补了只读存储器(read-onlymemory,rom)和随机存取存储器(random access memory,ram)的缺点,不仅具备电子可擦除可编程的能力,还能在断电没有电流的情况下长久地保持数据,因此,其作为存储单元广泛应用在芯片中。

2、然而,在对nvm中的数据进行写入的过程中,可能会发生异常掉电,由此会使得nvm重新上电之后,读出的数据可能不完整,甚至是错误的,因此,需要对nvm进行掉电保护,用于在数据发生异常时进行数据恢复。而如何在对nvm中的数据进行写入的过程中实现掉电保护是当前亟需解决的问题。


技术实现思路

1、本技术实施例提供了一种数据存储方法、装置及电子设备,有助于在对nvm进行擦写时实现掉电保护。

2、第一方面,本技术实施例提供了一种数据存储方法,应用于nvm,包括:

3、当对所述nvm进行初始化时,获取第一信息和第二信息,其中,所述第一信息由所述nvm中的物理块中的标识信息确定,所述标识信息至少包括第一标识、第二标识及第三标识,所述第一标识用于指示所述物理块对应的逻辑地址,所述第二标识用于指示所述物理块的新旧,所述第三标识用于指示完整性校验码;所述第一信息包括逻辑地址与已占用物理块的物理地址之间的映射关系,第二信息由所述nvm中的物理块的擦除状态确定,所述第二信息包括空闲物理块的物理地址;

4、基于所述第一信息和所述第二信息,将待写入数据写入所述nvm的物理块。

5、本技术实施例中,通过已写入数据的物理块中携带标识信息,并由标识信息指示逻辑地址、物理块间的新旧以及完整性校验码,由此可以使得nvm掉电后可以根据标识信息找到物理地址与逻辑地址的映射关系、判断物理块间的新旧以及进行完整性校验,可以在完整性校验后,通过物理地址与逻辑地址的映射关系以及物理块间的新旧完成对物理块的数据写入或物理块的恢复,有助于在对非易失性存储器进行擦写时实现掉电保护

6、其中一种可能的实现方式中,所述基于所述第一信息和所述第二信息,将待写入数据写入所述nvm的物理块具体包括:

7、若所述第一信息中不包括第一逻辑地址与已占用物理块的物理地址之间的映射关系,则基于所述第二信息确定目标物理块的物理地址,将所述待写入数据写入所述目标物理块,并在所述目标物理块中创建所述标识信息,其中,所述第一逻辑地址为所述待写入数据的逻辑地址;

8、在所述第一信息中创建所述第一逻辑地址与所述目标物理块的物理地址之间的映射关系,并删除所述第二信息中的所述目标物理块的物理地址。

9、本技术实施例可以实现单个数据的首次写入。

10、其中一种可能的实现方式中,所述待写入数据包括一次事务写入的多个数据,所述多个数据用于待写入多个物理块,所述标识信息还包括第四标识,所述第四标识用于指示是否是事务写入中的最后一个写入的物理块。

11、本技术实施例可以实现事务级的首次写入。

12、其中一种可能的实现方式中,所述基于所述第一信息和所述第二信息将待写入数据写入所述nvm的物理块具体包括:

13、若所述第一信息中包括第一逻辑地址与已占用物理块的物理地址之间的第一映射关系,则基于所述第二信息确定目标物理块的物理地址,其中,所述第一逻辑地址为所述待写入数据的逻辑地址;

14、将所述第一映射关系中的已占用物理块的数据及标识信息写入缓存,将所述缓存中的第一映射关系中的已占用物理块的数据更新成所述待写入数据,并对所述缓存中的标识信息进行更新,将所述缓存中的待写入数据及更新后的标识信息写入所述目标物理块,其中,所述第一映射关系中已占用物理块的第二标识用于标识所述第一映射关系中已占用物理块为旧物理块,所述目标物理块的第二标识用于标识所述目标物理块为新物理块;

15、在所述第一信息中将所述第一映射关系更新为第二映射关系,并删除所述第二信息中的所述目标物理块的物理地址,其中,所述第二映射关系为所述第一逻辑地址与所述目标物理块的物理地址之间的映射关系;

16、对所述旧物理块的数据进行擦除。

17、本技术实施例可以实现单个数据的数据更新。

18、其中一种可能的实现方式中,所述待写入数据包括一次事务写入的多个数据,所述多个数据用于待写入多个物理块,所述标识信息还包括第四标识,所述第四标识用于指示是否是事务写入中的最后一个写入的物理块;所述对所述旧物理块的数据进行擦除具体包括:

19、当在所述第一信息中获取到本次事务写入中任一旧物理块的物理地址后,将所述旧物理块的物理地址存入第三信息;

20、若检测到已完成写入的新物理块的第四标识指示所述已完成写入的新物理块是事务写入中的最后一个写入的物理块,则基于所述第三信息中的物理地址对本次事务写入的所有旧物理块的数据进行擦除,并在擦除后删除所述第三信息中的物理地址。

21、本技术实施例可以实现事务级的数据更新。

22、其中一种可能的实现方式中,所述当对所述nvm进行初始化时,获取第一信息和第二信息包括:

23、当对所述nvm进行初始化时,对所述nvm中的物理块进行遍历;

24、在遍历过程中,创建第一信息和第二信息,其中,若任一物理块处于已擦除状态,则将当前遍历到的物理块的物理地址存入所述第二信息;或,若任一物理块处于非擦除状态,且处于所述非擦除状态的物理块基于所述第三标识完整性校验成功,则将所述当前遍历到的物理块的物理地址与第二逻辑地址之间的映射关系存入所述第一信息,所述第二信息中不包含所述当前遍历到的物理块的物理地址;

25、其中,所述第二逻辑地址为所述处于非擦除状态的物理块的第一标识指示的逻辑地址。

26、本技术实施例中,通过遍历的方式基于标识信息创建第一信息及第二信息,既可以快速创建第一信息和第二信息,又可以节省nvm的存储空间。

27、其中一种可能的实现方式中,所述方法还包括:

28、在遍历过程中,若任一物理块基于所述第三标识完整性校验失败,则将完整性校验失败的物理块的物理地址存入第三信息;

29、在遍历完成后,基于所述第三信息中的物理地址将完整性校验失败的物理块进行擦除,并在擦除后将所述第三信息中的物理地址进行删除。

30、本技术实施例中,通过基于第三标识进行完整性校验,避免掉电后出现数据错误的情况,由此可以实现掉电后的数据保护。

31、其中一种可能的实现方式中,所述方法还包括:

32、在遍历过程中,若存在一个逻辑地址映射两个物理地址的情况,则将旧物理块的物理地址存入第三信息,其中,所述第一信息中包含新物理块的物理地址与逻辑地址的映射关系。

33、本技术实施例中,通过物理地址与逻辑地址的映射冲突检测,避免掉电后出现一个逻辑地址映射多个物理地址的情况,由此可以实现掉电后的数据保护。

34、其中一种可能的实现方式中,所述方法还包括:

35、在遍历完成后,基于所述第三信息将所述旧物理块进行擦除,并在擦除后将所述第三信息中的物理地址进行删除。

36、其中一种可能的实现方式中,所述标识信息还包括第四标识,所述第四标识用于指示是否是事务写入中的最后一个写入的物理块,所述方法还包括:

37、在遍历过程中,基于所述第四标识判断本次事务写入是否已完成;

38、在遍历完成后,若判断本次事务写入未完成,则基于所述第三信息中的物理地址在所述第一信息中重新创建所述旧物理块的物理地址与逻辑地址的映射关系,在创建映射关系后在所述第三信息中删除所述旧物理块的物理地址,将所述第一信息中的新物理块的物理地址存入所述第三信息,基于所述第三信息中的物理地址将所述新物理块进行擦除,并在擦除后删除所述第三信息中的新物理块的物理地址;或,

39、在遍历完成后,若判断本次事务写入已完成,则基于所述第三信息中的旧物理块的物理地址将所述旧物理块进行擦除,并在擦除后将所述第三信息中的旧物理块的物理地址进行删除。

40、本技术实施例可以实现事务级的掉电保护。

41、其中一种可能的实现方式中,所述基于所述第四标识判断本次事务写入是否已完成具体包括:

42、若任一新物理块的第四标识指示所述新物理块为本次事务写入中的最后一个写入的物理块,则确定本次事务写入已完成;或,

43、若所有新物理块的第四标识都指示所述所有新物理块为本次事务写入中的非最后一个写入的物理块,则确定本次事务写入未完成。

44、其中一种可能的实现方式中,所述第一信息及所述第二信息存储在随机存取存储器ram或寄存器中。

45、本技术实施例可以加快对第一信息和第二信息的访问,又可以避免第一信息及第二信息对nvm的存储空间的占用。

46、其中一种可能的实现方式中,所述第二信息中空闲物理块的物理地址从所述nvm的随机物理地址开始遍历获得。

47、本技术实施例可以避免对同一个物理块进行擦写,有助于实现磨损平衡。

48、第二方面,本技术实施例提供了一种数据存储装置,包括:获取模块和写入模块,获取模块和写入模块用于执行如第一方面所述的数据存储方法。

49、第三方面,本技术实施例提供了一种电子设备,包括:处理器和存储器,存储器用于存储计算机程序;处理器用于运行计算机程序,执行如第一方面所述的数据存储方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1