一种外置闪存芯片的防掉电存储方法及外置闪存芯片与流程

文档序号:30183267发布日期:2022-05-26 15:52阅读:135来源:国知局
一种外置闪存芯片的防掉电存储方法及外置闪存芯片与流程

1.本发明涉及断电保护的技术领域,尤其涉及一种外置闪存芯片的防掉电存储方法及外置闪存芯片。


背景技术:

2.目前,为了满足使用成本低廉、程序易移植的存储芯片来进行数据存储的需求,人们大多采用闪存芯片(flash memory)来读取并储存数据。
3.闪存芯片包括嵌入式闪存芯片及外置闪存芯片。由于数据的读取与写入需要一定的时间,在嵌入式闪存芯片存在安装嵌入式闪存芯片的设备断电后,嵌入式闪存芯片的存储区域内的数据丢失甚至错乱的风险。当外置闪存芯片发生异常掉电时,同样存在未被写入外置芯片的存储区域的数据丢失,甚至存储区域内的数据发生错乱的缺陷。此外,在闪存芯片重新上电,并对丢失、错乱的数据进行恢复后,仍存在恢复失败的情况。


技术实现要素:

4.针对现有技术中存在的问题,本发明提供一种外置闪存芯片的防掉电存储方法,包括:
5.步骤s1,所述外置闪存芯片读取外部的待储存数据,将所述待储存数据中包含的多个数据块依次写入所述外置闪存芯片中对应的存储区域,并在每个所述数据块写入完成后分别向所述存储区域中写入对应的一操作标记;
6.步骤s2,所述外置闪存芯片在每次异常掉电后上电时,根据所述操作标记判断所述存储区域中写入的各所述数据块是否按照一预设顺序排列形成一数据序列:
7.若是,则转向步骤s3;
8.若否,则根据所述操作标记将各所述数据块按照所述预设顺序调整形成所述数据序列,随后转向步骤s3;
9.步骤s3,读取所述数据序列中最后一次写入的所述操作标记对应的所述数据块,并根据所述数据块匹配得到所述待储存数据中尚未写入的各所述数据块,将尚未写入的各所述数据块作为所述待储存数据,随后返回所述步骤s1。
10.优选的,所述操作标记包括用于表征所述数据块写入完成的唯一标识及用于表征所述数据块的数据写入次序的一序号;
11.则所述步骤s2中根据所述唯一标识及所述序号表征的顺序值判断所述存储区域中写入的各所述数据块是否按照所述预设顺序排列形成所述数据序列。
12.优选的,所述存储区域包括多个扇区,每个所述扇区包括多个存储地址,则所述步骤s1中,每次写入所述数据块之前,还包括向所述数据块分配对应的所述存储地址。
13.优选的,所述步骤s3还包括,读取所述数据序列中最后一次写入的所述操作标记的所述存储地址,并将所述存储地址的下一所述存储地址作为所述待储存数据中尚未写入的各所述数据块的起始地址。
14.优选的,所述步骤s1中,每次写入所述数据块之前,还包括:
15.步骤a1,判断所述数据块分配得到的所述存储地址是否与上一所述数据块分配得到的所述存储地址位于同一所述扇区内;
16.若是,根据所述存储地址继续写入所述数据块;
17.若否,转向步骤a2;
18.步骤a2,对所述数据块分配到的所述存储地址对应的所述扇区进行块擦除处理,随后根据所述存储地址写入所述数据块。
19.优选的,所述步骤s1中,每个所述数据块写入完成后,还包括依次写入所述唯一标识及所述序号。
20.优选的,还提供一种外置闪存芯片,应用如上任意一项所述的防掉电存储方法,所述外置闪存芯片包括:
21.读写模块,用于读取外部的待储存数据,将所述待储存数据中包含的多个数据块依次写入所述外置闪存芯片中对应的存储区域,并在每个所述数据块写入完成后分别向所述存储区域中写入对应的一操作标记;
22.分析模块,连接所述读写模块,用于在每次异常掉电后上电时,根据所述操作标记判断所述存储区域中写入的各所述数据块是否按照一预设顺序排列形成一数据序列,并在各所述数据块不按照所述预设顺序排列形成所述数据序列时,将各所述数据块按照所述预设顺序调整形成所述数据序列;
23.恢复模块,分别连接所述读写模块及所述分析模块,用于读取所述数据序列中最后一次写入的所述操作标记对应的所述数据块,并根据所述数据块匹配得到所述待储存数据中尚未写入的各所述数据块,将尚未写入的各所述数据块作为所述待储存数据。
24.优选的,所述存储区域包括多个扇区,每个所述扇区包括多个存储地址,则所述读写模块还用于,在每次写入所述数据块之前,向所述数据块分配对应的所述存储地址。
25.优选的,所述操作标记包括用于表征所述数据块写入完成的唯一标识及用于表征所述数据块的数据写入次序的一序号;
26.则所述分析模块用于根据所述唯一标识及所述序号表征的顺序值判断所述存储区域中写入的各所述数据块是否按照所述预设顺序排列形成所述数据序列。
27.优选的,所述读写模块包括:
28.判断单元,用于判断所述数据块分配得到的所述存储地址是否与上一所述数据块分配得到的所述存储地址位于同一所述扇区内,并在所述数据块分配得到的所述存储地址与上一所述数据块分配得到的所述存储地址不位于同一所述扇区内时,生成一擦除信号并输出;
29.擦除单元,连接所述判断单元,用于对所述数据块分配到的所述存储地址对应的所述扇区进行块擦除处理,随后根据所述存储地址写入所述数据块。
30.上述技术方案具有如下优点或有益效果:
31.(1)、通过操作标记对写入存储区域的数据块进行标记,在异常掉电并重新上电后,若存在丢失的数据块则外置闪存芯片根据操作标记对丢失数据进行恢复,并根据操作标记对存储区域内的存在错乱的写入存储区域的数据块进行排序,提高了数据恢复的成功率;
32.(2)、操作标记包括唯一标识,根据唯一标识判断是否存在丢失的数据块,并通过未丢失的写入存储区域的数据块与待储存数据中的数据块进行匹配的方式找回丢失的数据块,提高了数据丢失的恢复效率;
33.(3)、操作标记包括序号,针对异常掉电并重新上电后,外置闪存芯片可能存在数据错乱的情况,根据预设顺序对写入存储区域的各数据块进行顺序调整排序得到符合预设顺序的数据序列,以对错乱的写入存储区域的数据块进行高效的管理,提高了外置闪存芯片的数据恢复能力。
附图说明
34.图1为本发明的较佳的实施例中,防掉电存储方法的流程图;
35.图2为本发明的较佳的实施例中,防掉电存储方法中步骤a1至步骤a2的具体流程图;
36.图3为本发明的较佳的实施例中,外置闪存芯片的控制原理图。
具体实施方式
37.下面结合附图和具体实施例对本发明进行详细说明。本发明并不限定于该实施方式,只要符合本发明的主旨,则其他实施方式也可以属于本发明的范畴。
38.本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种外置闪存芯片的防掉电存储方法及外置闪存芯片,如图1所示,包括:
39.步骤s1,外置闪存芯片读取外部的待储存数据,将待储存数据中包含的多个数据块依次写入外置闪存芯片中对应的存储区域,并在每个数据块写入完成后分别向存储区域中写入对应的一操作标记;
40.步骤s2,外置闪存芯片在每次异常掉电后上电时,根据操作标记判断存储区域中写入的各数据块是否按照一预设顺序排列形成一数据序列:
41.若是,则转向步骤s3;
42.若否,则根据操作标记将各数据块按照预设顺序调整形成数据序列,随后转向步骤s3;
43.步骤s3,读取数据序列中最后一次写入的操作标记对应的数据块,并根据数据块匹配得到待储存数据中尚未写入的各数据块,将尚未写入的各数据块作为待储存数据,随后返回步骤s1。
44.具体地,本实施例中,当外置闪存芯片发生异常断电时,正在读取或写入数据块的动作被中断,此时待储存数据未全部发送至外置闪存芯片,存在外置闪存芯片未完整读取数据块的缺陷。
45.此外,当外置闪存芯片发生异常断电时,即使读取得到的数据块能完整写入存储区域内,还存在存储区域内的各数据块的数据序列发生错乱的情况。
46.通过操作标记对写入存储区域的数据块进行标记,在异常掉电并重新上电后,外置闪存芯片根据操作标记对存储区域内的存在错乱的写入存储区域的数据块进行排序使得各数据块按照符合预设顺序的数据序列排列,并根据操作标记重新获取丢失或写入失败的数据块以进行恢复,以对写入存储区域的数据块进行有效的管理。
47.在另一实施例中,待储存数据为待烧录的一程序,当程序的烧录过程中发生外置闪存芯片异常掉电的情况时,外置闪存芯片重新上电后,对已储存至存储区域内的数据块进行检验。
48.当检测到数据块存在数据丢失、顺序错乱时,获取异常掉电后存储区域内各数据块的数据序列,并判断异常掉电后的数据序列是否符合预设顺序,在异常掉电后的数据序列不符合预设顺序时,调整数据序列使其符合预设顺序。
49.而后,根据进行最后一次写入的操作标记对应的数据块与程序中的数据块进行匹配,并由匹配得到的数据块得到程序中尚未写入的各数据块,重新写入。
50.在另一实施例中,在数据写入达到一预设长度后,写入操作标识,随后继续写入数据。
51.因而在检测到存储区域内的数据块具有对应的操作标记时,表征数据块已完整地写入存储区域,无需找回丢失数据。
52.本发明的较佳的实施例中,操作标记包括用于表征数据块写入完成的唯一标识及用于表征数据块的数据写入次序的一序号;
53.则步骤s2中根据唯一标识及序号表征的顺序值判断存储区域中写入的各数据块是否按照预设顺序排列形成数据序列。
54.具体地,本实施例中,在数据写入达到预设长度后写入唯一标识,而后写入操作标识,随后继续写入序号。
55.数据块的序号用于表示数据块在写入时在数据序列中的位置,当外置闪存芯片发生数据块顺序错乱时,根据序号及预设顺序来调整数据序列,使得调整后的数据序列符合预设顺序。
56.顺序值由唯一标识及序号组合生成,既用于区别各数据块,又用于对数据块及数据块内的数据进行排序。
57.本发明的较佳的实施例中,存储区域包括多个扇区,每个扇区包括多个存储地址,则步骤s1中,每次写入数据块之前,还包括向数据块分配对应的存储地址。
58.本发明的较佳的实施例中,步骤s3还包括,读取数据序列中最后一次写入的操作标记的存储地址,并将存储地址的下一存储地址作为待储存数据中尚未写入的各数据块的起始地址。
59.具体地,本实施例中,根据存储地址按照次序写入的数据块及操作标记有序地储存在存储区域内,便于发生异常掉电时,对数据块及操作标记进行次序调整及丢失数据的恢复。
60.本发明的较佳的实施例中,步骤s1中,每次写入数据块之前,如图2所示,还包括:
61.步骤a1,判断数据块分配得到的存储地址是否与上一数据块分配得到的存储地址位于同一扇区内;
62.若是,根据存储地址继续写入数据块;
63.若否,转向步骤a2;
64.步骤a2,对数据块分配到的存储地址对应的扇区进行块擦除处理,随后根据存储地址写入数据块。
65.具体地,本实施例中,在当前的扇区储存满之后,需要对新的扇区先进行块擦除处
理,而后将数据块储存至新的扇区内,以保障在读取新的扇区中所储存的写入存储区域的数据块时,读取的数据块的可靠性。
66.本发明的较佳的实施例中,步骤s1中,每个数据块写入完成后,还包括依次写入唯一标识及序号。
67.具体地,本实施例中,针对每个写入存储区域的数据块,按照数据块的写入顺序写入序号。
68.在另一实施例中,各序号设置为递增,根据各写入存储区域的数据块的写入顺序,将序号按照从小到大的顺序写入对应的存储地址。
69.在另一实施例中,各序号设置为递减,根据各写入存储区域的数据块的写入顺序,将序号按照从小到大的顺序写入对应的存储地址。
70.本发明的较佳的实施例中,还提供一种外置闪存芯片,应用如上任意一项的防掉电存储方法,如图3所示,外置闪存芯片包括:
71.读写模块1,用于读取外部的待储存数据,将待储存数据中包含的多个数据块依次写入外置闪存芯片中对应的存储区域,并在每个数据块写入完成后分别向存储区域中写入对应的一操作标记;
72.分析模块2,连接读写模块1,用于在每次异常掉电后上电时,根据操作标记判断存储区域中写入的各数据块是否按照一预设顺序排列形成一数据序列,并在各数据块不按照预设顺序排列形成数据序列时,将各数据块按照预设顺序调整形成数据序列;
73.恢复模块3,分别连接读写模块1及分析模块2,用于读取数据序列中最后一次写入的操作标记对应的数据块,并根据数据块匹配得到待储存数据中尚未写入的各数据块,将尚未写入的各数据块作为待储存数据。
74.本发明的较佳的实施例中,存储区域包括多个扇区,每个扇区包括多个存储地址,则读写模块1还用于,在每次写入数据块之前,向数据块分配对应的存储地址。
75.本发明的较佳的实施例中,操作标记包括用于表征数据块写入完成的唯一标识及用于表征数据块的数据写入次序的一序号;
76.则分析模块2用于根据唯一标识及序号表征的顺序值判断存储区域中写入的各数据块是否按照预设顺序排列形成数据序列
77.本发明的较佳的实施例中,读写模块1包括:
78.判断单元11,用于判断数据块分配得到的存储地址是否与上一数据块分配得到的存储地址位于同一扇区内,并在数据块分配得到的存储地址与上一数据块分配得到的存储地址不位于同一扇区内时,生成一擦除信号并输出;
79.擦除单元12,连接判断单元11,用于对数据块分配到的存储地址对应的扇区进行块擦除处理,随后根据存储地址写入数据块。
80.综上,通过操作标记对存储区域中的写入存储区域的数据块进行标记,在异常掉电并重新上电后,外置闪存芯片根据序号对错乱的写入存储区域的数据块进行高效的管理,并根据唯一标识对丢失或写入失败的存储区域中的写入存储区域的数据块进行定位,通过匹配的方式在所有待储存数据中,匹配得到位于丢失或写入失败的存储区域中的写入存储区域的数据块,恢复丢失或写入失败的数据块,提高了外置闪存芯片在异常掉电并重新上电后的数据恢复能力。
81.以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1