技术新讯 > 信息存储应用技术 > 闪存模拟电可擦除可编程只读存储器的方法及相关装置与流程  >  正文

闪存模拟电可擦除可编程只读存储器的方法及相关装置与流程

  • 国知局
  • 2024-07-31 19:39:17

本发明涉及嵌入式通信,尤其涉及一种闪存模拟电可擦除可编程只读存储器的方法。

背景技术:

1、eeprom:是一种非易失性存储器,可以在断电后保留数据,且可以按字节或字进行读写操作,具有较高的擦写寿命(百万次以上)。

2、flash:一种非易失性存储器,具有较大的容量,但是擦写寿命较低(十万次左右),且只能按块进行擦除操作,块的大小通常以kb为单位。而如何使得flash具有较高的擦写寿命,是亟待解决的一个问题。

技术实现思路

1、本发明实施例提供了一种闪存模拟电可擦除可编程只读存储器的方法及相关装置,用于利用闪存flash来模拟电可擦除可编程只读存储器eeprom,从而来提升闪存flash的擦写寿命。

2、本发明实施例提供了第一方面提供了一种闪存模拟电可擦除可编程只读存储器的方法,包括:

3、将闪存flash分割为至少两个块,其中,每个块的容量与电可擦除可编程只读存储器eeprom的容量相同;

4、将flash块的数据空间映射至加载至内存中的所述eeprom的索引中;

5、通过调用接口,访问所述eeprom的索引,使得通过所述eeprom的索引在所述flash块的数据空间中执行数据操作。

6、可选地,所述将flash块的数据空间映射至加载至内存中的所述eeprom的索引中,包括:

7、注册flash驱动;

8、利用所述flash驱动对所述flash执行初始化操作,其中,所述初始化操作至少包括设置所述flash块的容量、页的容量和所述flash擦除区的容量;

9、利用所述flash驱动创建rom文件,并将所述rom文件确定为所述eeprom的索引;

10、将所述flash驱动与所述eeprom的索引执行关联存储,以将所述flash每个块中的数据空间映射至所述eeprom的索引中。

11、可选地,当所述数据操作为写操作时,所述通过调用接口,访问所述eeprom的索引,使得通过所述eeprom的索引在所述flash块的数据空间中执行数据操作,包括:

12、将所述至少两个块中的第一个块作为活动块;

13、在所述活动块中写入至少一条记录,其中,每条记录包括一个或多个变量及变量值,以及元数据段;

14、当所述活动块的空间不足以写入新记录时,将所述活动块中的有效记录复制并存储至所述至少两个块的第二个块中;

15、擦除所述第一块中的记录,并将所述第二个块设置为活动块。

16、可选地,所述元数据段包括记录状态字段、记录标识字段和记录大小字段,其中,所述记录状态字段的长度为所述flash的ecc校验基长度的整数倍;

17、所述记录状态字段用于表示记录是否有效,所述记录标识字段用于表示记录中所包含的变量,所述记录大小字段用于表示记录中数据的字节数。

18、可选地,当所述数据操作为修改操作时,所述通过调用接口,访问所述eeprom的索引,使得通过所述eeprom的索引在所述flash块的数据空间中执行数据操作,包括:

19、从所述记录标识字段中获取待修改的变量字段;

20、在所述待修改的变量字段中写入修改后的数值;

21、将修改后的变量字段作为新的记录写入所述活动块中,并将修改前的记录标识为无效记录,将修改后的记录标识为有效记录。

22、可选地,所述将所述活动块中的有效记录复制并存储至所述至少两个块的第二个块中,包括:

23、将所述活动块中的每条有效记录的元数据先写入所述第二个块中;

24、再将所述活动块中的每条有效记录的数据写入至所述第二个块中;

25、判断所述每条有效记录是否成功写入至所述第二个块中;

26、若否,则针对每条有效记录,在所述第二个块中重复写入n次,并在n次失败后跳过写入失败的记录,其中,所述n≥2。

27、可选地,所述方法还包括:

28、在每个块的头部设置块状态字段,所述块状态字段至少包括所述块是否已执行初始化、所述块是否为活动块,所述块是否需要执行擦除操作或执行恢复操作;

29、当对所述每个块执行上电或复位操作时,遍历所述每个块,并根据所述每个块的块状态字段,对所述每个块执行与块状态字段相匹配的操作。

30、本技术实施例第二方面提供了一种闪存模拟电可擦除可编程只读存储器的装置,所述装置包括:

31、分割单元,用于将所述闪存flash分割为至少两个块,其中,每个块的容量与所述电可擦除可编程只读存储器eeprom的容量相同;

32、映射单元,用于将flash块的数据空间映射至加载至内存中的所述eeprom的索引中;

33、执行单元,用于通过调用接口,访问所述eeprom的索引,使得通过所述eeprom的索引在所述flash块的数据空间中执行数据操作。

34、可选地,映射单元,具体用于:

35、注册flash驱动;

36、利用所述flash驱动对所述flash执行初始化操作,其中,所述初始化操作至少包括设置所述flash块的容量、页的容量和所述flash擦除区的容量;

37、利用所述flash驱动创建rom文件,并将所述rom文件确定为所述eeprom的索引;

38、将所述flash驱动与所述eeprom的索引执行关联存储,以将所述flash每个块中的数据空间映射至所述eeprom的索引中。

39、可选地,当所述数据操作为写操作时,执行单元具体用于:

40、将所述至少两个块中的第一个块作为活动块;

41、在所述活动块中写入至少一条记录,其中,每条记录包括一个或多个变量及变量值,以及元数据段;

42、当所述活动块的空间不足以写入新记录时,将所述活动块中的有效记录复制并存储至所述至少两个块的第二个块中;

43、擦除所述第一块中的记录,并将所述第二个块设置为活动块。

44、可选地,所述元数据段包括记录状态字段、记录标识字段和记录大小字段,其中,所述记录状态字段的长度为所述flash的ecc校验基长度的整数倍;

45、所述记录状态字段用于表示记录是否有效,所述记录标识字段用于表示记录中所包含的变量,所述记录大小字段用于表示记录中数据的字节数。

46、可选地,当所述数据操作为修改操作时,执行单元,具体用于:

47、从所述记录标识字段中获取待修改的变量字段;

48、在所述待修改的变量字段中写入修改后的数值;

49、将修改后的变量字段作为新的记录写入所述活动块中,并将修改前的记录标识为无效记录,将修改后的记录标识为有效记录。

50、可选地,执行单元,具体用于:

51、将所述活动块中的每条有效记录的元数据先写入所述第二个块中;

52、再将所述活动块中的每条有效记录的数据写入至所述第二个块中;

53、判断所述每条有效记录是否成功写入至所述第二个块中;

54、若否,则针对每条有效记录,在所述第二个块中重复写入n次,并在n次失败后跳过写入失败的记录,其中,所述n≥2。

55、可选地,所述装置还包括:

56、设置单元,用于在每个块的头部设置块状态字段,所述块状态字段至少包括所述块是否已执行初始化、所述块是否为活动块,所述块是否需要执行擦除操作或执行恢复操作;

57、遍历单元,用于当对所述每个块执行上电或复位操作时,遍历所述每个块,并根据所述每个块的块状态字段,对所述每个块执行与块状态字段相匹配的操作。

58、本技术实施例第三方面提供了一种计算机装置,包括处理器,所述处理器在执行存储于存储器上的计算机程序时,用于实现申请实施例第一方面提供的闪存模拟电可擦除可编程只读存储器的方法。

59、本技术实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,用于实现申请实施例第一方面提供的闪存模拟电可擦除可编程只读存储器的方法。

60、从以上技术方案可以看出,本发明实施例具有以下优点:

61、本技术实施例中,通过将所述闪存flash分割为至少两个块,其中,每个块的容量与所述电可擦除可编程只读存储器eeprom的容量相同;将flash块的数据空间映射至加载至内存中的所述eeprom的索引中;通过调用接口,访问所述eeprom的索引,使得通过所述eeprom的索引在所述flash块的数据空间中执行数据操作。

62、因为eeprom是按照字节对数据执行操作的,故通过eeprom的索引和flash块之间的映射关系,既可以实现通过字节实现在flash块和页中的数据操作,从而使得flash块具有和eeprom相似的读写特性,也即提升了flash块的擦写寿命。

本文地址:https://www.jishuxx.com/zhuanli/20240731/183437.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。