CN111966287B - 数据存储方法、电子设备及存储介质 - Google Patents
数据存储方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111966287B CN111966287B CN202010787605.5A CN202010787605A CN111966287B CN 111966287 B CN111966287 B CN 111966287B CN 202010787605 A CN202010787605 A CN 202010787605A CN 111966287 B CN111966287 B CN 111966287B
- Authority
- CN
- China
- Prior art keywords
- data
- stored
- subarea
- storage area
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000013500 data storage Methods 0.000 title claims abstract description 22
- 125000004122 cyclic group Chemical group 0.000 claims description 26
- 238000012795 verification Methods 0.000 claims description 14
- 230000002159 abnormal effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 abstract description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例涉及通讯领域,特别涉及数据存储方法、电子设备及存储介质,闪存中包括第一存储区域,该第一存储区域包括数存储子区域和备份子区域,当待存储数据指定的存储区域为所述第一存储区域时,将待存储数据分别存储存储子区域和备份子区域,使得当闪存出现故障导致存储子区域的数据丢失时,还可以获取存储在备份子区域的备份数据,以避免由于闪存故障导致的数据丢失的问题。
Description
技术领域
本发明实施例涉及通讯领域,特别涉及数据存储方法、电子设备及存储介质。
背景技术
FLASH存储器又称闪存,是一种长寿命的非易失性的存储器,在断电情况下仍能保持所存储的数据信息。由于其断电时仍能保存数据,闪存通常被用来保存设置信息。例如,电脑的基本输入输出系统(Basic Input Output System,BIOS)、个人数字助理(PersonalDigital Assistant,PDA)、数码相机中应用FLASH来保存数据等。
发明人发现现有技术中至少存在如下问题:FLASH的使用过程中常常出现各种故障,导致FLASH中存储的数据丢失。
发明内容
本发明实施方式的目的在于提供一种数据存储方法、电子设备及存储介质,避免了闪存中存储的数据丢失。
为解决上述技术问题,本发明的实施方式提供了一种数据存储方法,该方法应用于闪存,闪存包括第一存储区域,第一存储区域包括存储子区域和备份子区域,包括:
获取待存储数据以及为待存储数据指定的存储区域;
当为待存储数据指定的存储区域为第一存储区域时,将待存储数据分别存储至存储子区域和备份子区域。
本发明的实施方式还提供了一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述数据存储方法。
本发明实施方式相对于现有技术而言,闪存中包括第一存储区域,该第一存储区域包括数存储子区域和备份子区域,当待存储数据指定的存储区域为第一存储区域时,将待存储数据分别存储存储子区域和备份子区域,使得当闪存出现故障导致存储子区域的数据丢失时,还可以获取存储在备份子区域的备份数据,以避免由于闪存故障导致的数据丢失的问题。
另外,将待存储数据分别存储至存储子区域和备份子区域之前,该方法还包括:将为待存储数据分配的索引与第一存储区域中的索引进行对比,确定待存储数据存储在存储子区域的第一目标地址,和存储在备份子区域的第二目标地址。将为待存储数据分配的索引和第一存储区域中的索引进行对比,确定待存储数据对存储在所述存储子区域的第一目标地址,和存储在所述备份子区域的第二目标地址,使得将待存储数据能准确的存储至对应的子区域。
另外,确定待存储数据存储在存储子区域的第一目标地址,和存储在备份子区域的第二目标地址之后,该方法还包括:对第一目标地址上当前存储的数据进行校验,得到的第一校验结果;第一校验结果用于指示第一目标地址上当前存储的数据是否出现异常;对第二目标地址上当前存储的数据进行校验,得到的第二校验结果;第二校验结果用于指示第二目标地址上当前存储的数据是否出现异常;根据第一校验结果和第二校验结果,确定将待存储数据先存储至存储子区域,或,将待存储数据先存储至备份子区域。
另外,根据第一校验结果和第二校验结果,确定将待存储数据先存储至存储子区域,或,将待存储数据先存储至备份子区域,包括:若第一校验结果为校验失败,待存储数据的存储顺序为先将待存储数据存储至存储子区域,再将待存储数据存储至备份子区域;若第二校验结果为校验失败,待存储数据的存储顺序为先将待存储数据存储至备份子区域,再将待存储数据存储至存储子区域。将待存储数据优先存储至校验结果为校验失败的子区域,使得待存储数据能够优先存储至数据已出现异常的区域,提高了所存储的数据的安全性。
另外,闪存还包括第二存储区域,第二存储区域包括至少一个子存储区域组;子存储区域组中包括多个按照预设顺序排列的循环子区域;该方法还包括:当为待存储数据指定的存储区域为第二存储区域时,将待存储数据存储至对应的子存储区域组中的循环子区域上。
另外,将待存储数据存储至对应的子存储区域组中的子存储区域上,包括:当子存储区域组中最后一个循环子区域未存储有数据时,将待存储数据存储至子存储区域组中序号最小且未存储有数据的循环子区域;当子存储区域组中最后一个子存储区域已存储有数据时,删除子存储区域组中各循环子区域中存储的数据,并将待存储数据存储至子存储区域组上的第一个循环子区域。在将待存储数据存储至第二存储区域时,当子存储区域组上最后一个子存储区域中未存储数据时,不会删除已存储有数据的子存储区域上的数据,并将待存储数据存储至子存储区域组中序号最小且未存储有数据的子存储区域,只有当子存储区域组上最后一个子存储区域中存储有数据时,才删除子存储区域组中各子存储区域中的数据,并将待存储数据存储至子存储区域组上第一个子存储区域,也即是说,采用本申请的数据存储方法,无需每次存储待存储数据时,都需要删除已存储的数据,进而避免了多次删除数据导致的闪存使用寿命变短的问题。
另外,闪存还包括第三存储区域;该方法还包括:当为待存储数据指定的存储区域为第三存储区域时,将待存储数据存储至第三存储区域的剩余空间上;并根据待存储数据存储的地址更新待存储数据的索引。当将待存储数据存储至将存储至第三存储区域时,可以根据待存储数据存储的地址信息更新待存储数据的索引,使得在存储待存储数据时,只需要根据存储的地址信息更新该数据的索引信息,即可将待存储数据与其他数据区分出来,提高了存储待存储数据的便捷性。
另外,该方法还包括:接收用户输入的指示从第三存储区域读取数据的读数据指令,读数据指令中包括待读取数据的索引;根据待读取数据的索引,对第三存储区域中存储的数据进行校验,当校验结果为校验成功时,输出校验成功的数据。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1为一个实施例中数据存储方法的流程示意图;
图2为另一个实施例中数据存储方法的流程示意图;
图3为另一个实施例中数据存储方法的流程示意图;
图4为一个实施例中电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾。
传统方法中在使用闪存时,通常只是简单的将数据存储至闪存中,针对不同属性的数据,具体存储在什么区域,采用何种读写策略,均无系统化的规范。在一种情况下,当待存储的数据是重要程度较高的数据时,例如系统参数,在存储过程中,出现供电中断或电磁干扰的情况时,可能出现数据丢失的问题。
图1为一个实施例中数据存储方法的流程示意图,该方法应用于闪存,闪存包括第一存储区域,第一存储区域包括存储子区域和备份子区域,本实施方式涉及是将待存储数据分别存储至存储子区域和备份子区域的具体过程。下面对本实施方式的数据存储方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。如图1所示,该方法包括:
步骤101,获取待存储数据以及为待存储数据指定的存储区域。
其中,待存储数据可以是重要数据,例如系统参数,也可以是需要频繁存储的数据,例如实时更新的位置数据,也可以是随机存储的数据,本申请实施例对此不做限制。需要说明的是,在一些情况下,本申请实施例中所描述的待存储数据是重要且需要频繁存储的数据,并基于本申请实施例的方法进行存储。在获取为待存储数据指定的存储区域时,可以通过接收用户输入的语言指令、文字指令、触控指令中的任一种,来接收为待存储数据指定的存储区域,本申请实施例对此不做限制。在获取待存储数据时,可以通过接收用户输入的待存储数据获取,也可以通过获取服务器下发的数据获取,本申请实施例对此不做限制。例如,当待存储数据为系统参数时,可以获取服务器下发的系统参数来得到待存储数据。
步骤102,当为待存储数据指定的存储区域为第一存储区域时,将待存储数据分别存储至存储子区域和备份子区域。
当为待存储数据指定的存储区域为上述第一存储区域时,可以将待存储数据存储至第一存储区域的存储子区域,并将待存储数据存储至第一存储区域的备份子区域。也即是说,待存储数据被存储在存储子区域和备份子区域中。
上述数据存储方法,闪存中包括第一存储区域,该第一存储区域包括数存储子区域和备份子区域,当待存储数据指定的存储区域为第一存储区域时,将待存储数据分别存储存储子区域和备份子区域,使得当闪存出现故障导致存储子区域的数据丢失时,还可以获取存储在备份子区域的备份数据,以避免由于闪存故障导致的数据丢失的问题。
在一个实施例中,将待存储数据分别存储至存储子区域和备份子区域之前,可选地,将为待存储数据分配的索引与第一存储区域中的索引进行对比,确定待存储数据存储在存储子区域的第一目标地址,和存储在备份子区域的第二目标地址。
第一目标地址可以是存储子区域上的一个地址,也可以是一段地址,本申请实施例对此不做限制。同样第二目标地址可以是备份子区域上的一个地址,也可以是一段地址,本申请实施例对此不做限制。当第一目标地址是存储子区域上的一个地址时,在将待存储数据存储至存储子区域时,可以是将第一目标地址作为待存储数据存储在存储子区域上的起始地址。当第二目标地址是备份子区域上的一个地址时,在将待存储数据存储至备份子区域时,可以将第二目标地址作为待存储数据存储在备份子区域上的起始地址。
通过网络收发数据报文,必然要存储一些网络参数,这些网络参数用于指示将报文发送至哪个服务器,服务器端口等信息。这些网络参数一旦丢失,将造成数据报文发送失败,若要重新连接,需要回收设备,使用串口重新配置。在一些情况下,电子设备会被固定安装大型设备上,例如车辆上,存在拆装不方便,回收成本高等问题。为了保证这些网络参数不丢失,需要将网络参数存储至第一存储区域上。当将待存储数据存储至存储子区域和备份子区域之前,可以先确定待存储数据存储在存储子区域上的第一目标地址,和,待存储数据存储在备份子区域的第二目标地址。通常,第一存储区域包括索引区和数据区,例如,如表1所示,索引区中包括多个索引,数据区包括存储子区域和备份子区域,用于存储数据和备份数据。索引区中索引的格式可以如表2所示,包括:信息头、数据起始地址、数据结束地址、数据对应的标识和数据大小。将系统上电时底层为待存储数据分配的索引与索引区中的索引对比,确定待存储数据在存储子区域上的第一目标地址,和,待存储数据存储在备份子区域的第二目标地址。当待存储数据存储至第一存储区域上时,数据格式可以如表3所示,包括:信息头、数据标识、循环冗余校验码、数据的长度和数据。
表1
表2
表3
信息头 | 数据标识 | 循环冗余校验码 | 数据的长度 | 数据 |
2字节 | 4字节 | 1字节 | 2字节 | XX |
上述数据存储方法,将待存储数据中的索引和第一存储区域中的索引进行对比,确定待存储数据存储在存储子区域的第一目标地址,和存储在备份子区域的第二目标地址,使得将待存储数据能准确的存储至对应的子区域。
在一个实施例中,确定待存储数据存储在存储子区域的第一目标地址,和存储在备份子区域的第二目标地址之后,还可以对第一目标地址上当前存储的数据和第二目标地址上当前存储的数据进行校验,以确定是先将待存储数据存储至存储子区域,或是先将待存储数据存储备份子区域。下面通过图2所示的实施例来详细描述,如图2所示,该方法还包括:
步骤201,对第一目标地址上当前存储的数据进行校验,得到的第一校验结果;第一校验结果用于指示第一目标地址上当前存储的数据是否出现异常。
其中,第一目标地址上当前存储的数据,其存储的数据格式可以如表3所示,对第一目标地址上当前存储的数据进行校验,可以是对该数据中的循环冗余校验码进行校验,通过数学运算来确定数据位和校验位的约定关系是否正确。当存储在第一目标地址上的数据出现异常时,第一校验结果为校验失败。
步骤202,对第二目标地址上当前存储的数据进行校验,得到的第二校验结果;第二校验结果用于指示第二目标地址上当前存储的数据是否出现异常。
其中,第二目标地址上当前存储的数据,其存储的数据格式可以如表3所示,对第二目标地址上当前存储的数据进行校验,可以是对该数据中的循环冗余校验码进行校验,通过数学运算来确定数据位和校验位的约定关系是否正确。当存储在第二目标地址上的数据出现异常时,第二校验结果为校验失败。
步骤203,根据第一校验结果和第二校验结果,确定将待存储数据先存储至存储子区域,或,将待存储数据先存储至备份子区域。
在上述实施例的基础,得到了第一目标地址上当前存储的数据的第一校验结果,和第二目标地址上当前存储的数据的第二校验结果,可以根据第一校验结果和第二校验结果,确定将待存储数据先存储至存储子区域,或,将待存储数据先存储至备份子区域。可选地,若第一校验结果为校验失败,待存储数据的存储顺序为先将待存储数据存储至存储子区域,再将待存储数据存储至备份子区域;若第二校验结果为校验失败,待存储数据的存储顺序为先将待存储数据存储至备份子区域,再将待存储数据存储至存储子区域。在一种可能的情况下,第一校验结果和第二校验结果均为校验成功时,可以按照预先设定的顺序存储待存储数据,例如预先设定的顺序为先将待存储数据存储至存储子区域,再将待存储数据存储备份子区域。同样的,当第一校验结果和第二校验结果均为校验失败时,可以按照预先设定的顺序存储待存储数据,例如,先将待存储数据存储至存储子区域,再将待存储数据存储备份子区域。在一种可能的情况下,在更新数据的过程中,当出现电磁干扰、产品性能差或者擦写途中断电的情况时,会导致对应的子区域上未能存储正确的待存储数据。例如,在向存储子区域存储待存储数据时,出现电磁干扰的情况,使得存储子区域上未能存储正确的待存储数据,此时的第一校验结果即为校验失败。则在更新数据时,先更新存储子区域的数据,再更新备份子区域的数据。
上述数据存储方法,将待存储数据优先存储至校验结果为校验失败的子区域,使得待存储数据能够优先存储至数据已出现异常的区域,提高了所存储的数据的安全性。
在上述实施例的基础上,闪存还可以包括第二存储区域,其中,第二存储区域包括至少一个子存储区域组;子存储区域组中包括多个按照预设顺序排列的循环子区域,该方法还包括:当为待存储数据指定的存储区域为第二存储区域时,将待存储数据存储至对应的子存储区域组中的循环子区域上。
其中,系统时间、GPS位置等需要实时存储的数据,通常变化频率较快,更新保存的次数较多。闪存中最小删除单位是扇区,以MX25L64为例,一个扇区内含4096个字节,每更新一次,会将该扇区中的所有数据都删除掉。当需要存储上述实时存储的数据时,通常会将此类数据存储至第二存储区域,其中,第二存储区域包括至少一个子存储区域组;子存储区域组中包括多个按照预设顺序排列的循环子区域。例如,子存储区域组中的循环子区域可以如表4所示,按顺序排列。
表4
在将待存储数据存储至第二存储区域时,若待存储数据占用10字节,在第一次存储该待存储数据时,将待存储数据写入地址为0~10循环子区域1;第二次存储该待存储数据时,将待存储数据写入地址为11~20循环子区域2;第三次存储该待存储数据时,将待存储数据写入地址为21~30循环子区域3;……将待存储数据存储至循环子区域时,其数据格式可以如表5所示,包括信息头、信息头~数据总长度,数据编号、循环冗余校验码和数据。其中,数据编号随着存储的次数递增。
表5
在具体的将待存储数据存储至第二存储区域时,当子存储区域组中最后一个循环子区域未存储有数据时,将待存储数据存储至子存储区域组中序号最小且未存储有数据的循环子区域。此时,不删除已存储的其他循环子区域上的数据。当子存储区域组中最后一个子存储区域已存储有数据时,删除子存储区域组中各循环子区域中存储的数据,并将待存储数据存储至子存储区域组上的第一个循环子区域。在一些实施例中,循环子区域可以是一个扇形区域,也可以是多个扇形区域,本申请实施例对此不做限制。传统方法中,在对扇形区域进行擦除时,是整个扇形区域擦除,即使该扇形区域上只存储了1个字节的数据,也是将整个将扇形区域擦除,这样就会导致扇形区域频繁的被擦除。本申请实施例正是通过设置多个循环子区域来避免这种情况。需要说明的是,当循环子区域为多个扇形区域时,当一个扇形区域被写满时,继续将待存储数据存储至下一个扇形区域内。
上述数据存储方法,在将待存储数据存储至第二存储区域时,当子存储区域组上最后一个子存储区域中未存储数据时,不会删除已存储有数据的子存储区域上的数据,并将待存储数据存储至子存储区域组中序号最小且未存储有数据的子存储区域,只有当子存储区域组上最后一个子存储区域中存储有数据时,才删除子存储区域组中各子存储区域中的数据,并将待存储数据存储至子存储区域组上第一个子存储区域,也即是说,采用本申请的数据存储方法,无需每次存储待存储数据时,都需要删除已存储的数据,进而避免了多次删除数据导致的闪存使用寿命变短的问题。进一步地,在循环子区域为多个扇形区域时,只有在存满所有扇形区域时,才删除已存储的数据,更大程度的避免了反复擦写操作。
在一个实施例中,闪存还包括第三存储区域,可选地,该方法还包括:当为待存储数据指定的存储区域为第三存储区域时,将待存储数据存储至第三存储区域的剩余空间上;并根据待存储数据存储的地址更新待存储数据的索引。
在一种情况下,GPS定位器、温湿度监控设备等,要实时发送设备的最新报文给服务器,而设备在移动的过程中,可能经过网络信号差的区域,无法将报文发送出去,这时就需要将报文存储在闪存中。即使在网络通畅时,随机存取存储器(Random Access Memory,RAM)空间较小,且可能同时产生多条报文的问题,也需要将报文存在闪存中,通常这些报文的长度不同。当将这些报文作为待存储数据存储至第三存储区域的剩余空间上时,可以根据待存储数据存储的地址更新待存储数据的索引,其中,第三存储区域中的空间可以如表6所示,包括索引区和数据区,其中,索引区中的索引的存储结构可以如表7所示,包括信息头,读指针,写指针、总数据项和循环冗余校验码。在将待存储数据存储至第三存储区域的剩余空间上时,待存储数据的存储结构可以如表8所示,包括信息头、数据的循环冗余校验码、数据长度、从“信息头”到“数据长度”的循环冗余校验码和数据。再将待存储数据存储至第三存储区域的剩余空间上时,电子设备可以调用应用程序接口(ApplicationProgramming Interface,API),给待存储数据增加数据头尾,以区分不同的数据。
表6
表7
表8
上述数据存储方法,当将待存储数据存储至将存储至第三存储区域时,可以根据待存储数据存储的地址信息更新待存储数据的索引,使得在存储待存储数据时,只需要根据存储的地址信息更新该数据的索引信息,即可将待存储数据与其他数据区分出来,提高了存储待存储数据的便捷性。
在将数据存储至第三存储区域之后,还可以从第三存储区域中读取所存储的数据,可选地,如图3所示,该方法还包括:
步骤301,接收用户输入的指示从第三存储区域读取数据的读数据指令,读数据指令中包括待读取数据的索引。
步骤302,根据待读取数据的索引,对第三存储区域中存储的数据的索引进行校验,当校验结果为校验成功时,输出校验成功的索引对应的数据。
在对第三存储区域中存储的数据进行校验时,可以是对如表8中的数据的循环冗余校验码,或者是对如表8中的从“信息头”到“数据长度”的循环冗余校验码,电子设备可以从第三存储区域中第一个存储的数据开始依次对各个数据进行校验,若校验结果为校验失败,则继续校验下一个数据,直至校验结果为校验成功,并将校验成功的数据作为读数据指令指示要读取的数据输出。
在一个实施例中,若闪存包括第一存储区域、第二存储区域和第三存储区域,电子设备可以是通过API将闪存划分为第一存储区域、第二存储区域和第三存储区域。其中,本申请实施例对一个闪存中包括的第一存储区域的个数、第二存储区域的个数及第三存储区域的个数不做限定。
需要说明的是,上述各示例均为方便理解进行的举例说明,并不对本发明的技术方案构成限定。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明另一实施方式涉及一种电子设备,如图4所示,包括至少一个处理器401;与至少一个处理器401通信连接的存储器402;其中,存储器402存储有可被至少一个处理器401执行的指令,指令被至少一个处理器401执行,以使至少一个处理器401能够执行上述方法类实施例所示的方法步。
其中,存储器402和处理器401采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器401和存储器402的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器401处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器401。
处理器401负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器402可以被用于存储处理器401在执行操作时所使用的数据。
本发明另一实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (8)
1.一种数据存储方法,其特征在于,所述方法应用于闪存,所述闪存包括第一存储区域,所述第一存储区域包括存储子区域和备份子区域,所述方法包括:
获取待存储数据以及为所述待存储数据指定的存储区域;
当为所述待存储数据指定的存储区域为所述第一存储区域时,将所述待存储数据分别存储至所述存储子区域和所述备份子区域;
其中,所述将所述待存储数据分别存储至所述存储子区域和所述备份子区域之前,所述方法还包括:
将为所述待存储数据分配的索引与所述第一存储区域中的索引进行对比,确定所述待存储数据存储在所述存储子区域的第一目标地址,和存储在所述备份子区域的第二目标地址;
所述确定所述待存储数据存储在所述存储子区域的第一目标地址,和存储在所述备份子区域的第二目标地址之后,所述方法还包括:
对所述第一目标地址上当前存储的数据进行校验,得到的第一校验结果;所述第一校验结果用于指示所述第一目标地址上当前存储的数据是否出现异常;
对所述第二目标地址上当前存储的数据进行校验,得到的第二校验结果;所述第二校验结果用于指示所述第二目标地址上当前存储的数据是否出现异常;
根据所述第一校验结果和所述第二校验结果,确定将所述待存储数据先存储至所述存储子区域,或,将所述待存储数据先存储至所述备份子区域。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一校验结果和所述第二校验结果,确定将所述待存储数据先存储至所述存储子区域,或,将所述待存储数据先存储至所述备份子区域,包括:
若所述第一校验结果为校验失败,所述待存储数据的存储顺序为先将所述待存储数据存储至所述存储子区域,再将所述待存储数据存储至所述备份子区域;
若所述第二校验结果为校验失败,所述待存储数据的存储顺序为先将所述待存储数据存储至所述备份子区域,再将所述待存储数据存储至所述存储子区域。
3.根据权利要求1或2所述的方法,其特征在于,所述闪存还包括第二存储区域,所述第二存储区域包括至少一个子存储区域组;所述子存储区域组中包括多个按照预设顺序排列的循环子区域;所述方法还包括:
当为所述待存储数据指定的存储区域为所述第二存储区域时,将所述待存储数据存储至对应的子存储区域组中的循环子区域上。
4.根据权利要求3所述的方法,其特征在于,所述将所述待存储数据存储至对应的子存储区域组中的子存储区域上,包括:
当所述子存储区域组中最后一个循环子区域未存储有数据时,将所述待存储数据存储至所述子存储区域组中序号最小且未存储有数据的循环子区域;
当所述子存储区域组中最后一个子存储区域已存储有数据时,删除所述子存储区域组中各循环子区域中存储的数据,并将所述待存储数据存储至所述子存储区域组上的第一个循环子区域。
5.根据权利要求1或2所述的方法,其特征在于,所述闪存还包括第三存储区域;所述方法还包括:
当为所述待存储数据指定的存储区域为所述第三存储区域时,将所述待存储数据存储至所述第三存储区域的剩余空间上;并根据所述待存储数据存储的地址更新所述待存储数据的索引。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收用户输入的指示从所述第三存储区域读取数据的读数据指令,所述读数据指令中包括待读取数据的索引;
根据所述待读取数据的索引,对所述第三存储区域中存储的数据进行校验,当校验结果为校验成功时,输出校验成功的数据。
7.一种电子设备,其特征在于,包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至6中任一所述的数据存储方法。
8.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010787605.5A CN111966287B (zh) | 2020-08-07 | 2020-08-07 | 数据存储方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010787605.5A CN111966287B (zh) | 2020-08-07 | 2020-08-07 | 数据存储方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111966287A CN111966287A (zh) | 2020-11-20 |
CN111966287B true CN111966287B (zh) | 2024-01-19 |
Family
ID=73364749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010787605.5A Active CN111966287B (zh) | 2020-08-07 | 2020-08-07 | 数据存储方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111966287B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527207A (zh) * | 2020-12-18 | 2021-03-19 | 深圳市元征科技股份有限公司 | 一种eeprom中数据存储方法及装置 |
CN114428591A (zh) * | 2022-01-27 | 2022-05-03 | 北京海纳川汽车部件股份有限公司 | 车载网关的数据存储方法、读取方法及装置 |
CN116204127B (zh) * | 2023-03-01 | 2024-04-02 | 钛玛科(北京)工业科技有限公司 | 一种防止数据在存储过程中发生丢失和错误的方法 |
CN117420962B (zh) * | 2023-12-14 | 2024-05-14 | 深圳市德兰明海新能源股份有限公司 | 数据存取管理方法、单片机产品及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789423A (zh) * | 2012-07-11 | 2012-11-21 | 山东华芯半导体有限公司 | 四池闪存磨损均衡方法 |
CN111124742A (zh) * | 2019-12-18 | 2020-05-08 | 上海东软载波微电子有限公司 | Flash数据校验方法及Flash控制器、存储介质、设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100504814C (zh) * | 2007-01-17 | 2009-06-24 | 忆正存储技术(深圳)有限公司 | 闪存的区块管理方法 |
US8489833B2 (en) * | 2010-08-20 | 2013-07-16 | Transcend Information, Inc. | Data backup method for flash memory module and solid state drive |
US20120246384A1 (en) * | 2011-03-21 | 2012-09-27 | Winbond Electronics Corp. | Flash memory and flash memory accessing method |
-
2020
- 2020-08-07 CN CN202010787605.5A patent/CN111966287B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789423A (zh) * | 2012-07-11 | 2012-11-21 | 山东华芯半导体有限公司 | 四池闪存磨损均衡方法 |
CN111124742A (zh) * | 2019-12-18 | 2020-05-08 | 上海东软载波微电子有限公司 | Flash数据校验方法及Flash控制器、存储介质、设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111966287A (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111966287B (zh) | 数据存储方法、电子设备及存储介质 | |
US9286164B2 (en) | Electronic device to restore MBR, method thereof, and computer-readable medium | |
WO2021135280A1 (zh) | 一种分布式存储系统的数据校验方法及相关装置 | |
US11048601B2 (en) | Disk data reading/writing method and device | |
CN113515531B (zh) | 数据访问方法、装置、客户端及存储介质 | |
CN107239411B (zh) | 一种车载控制器内存管理方法及系统 | |
EP3336702B1 (en) | Metadata recovery method and device | |
JP2007058286A (ja) | 記憶装置のフォーマットを不要としたストレージシステム及び記憶制御方法 | |
CN112558868A (zh) | 一种配置数据存储的方法和装置及设备 | |
CN112015447A (zh) | 电子设备的系统更新方法及装置、电子设备及存储介质 | |
US8321626B2 (en) | Management of configuration data using persistent memories requiring block-wise erase before rewriting | |
US11586504B2 (en) | Electronic apparatus and boot method thereof | |
US7058753B2 (en) | System and method for accessing an offline storage unit through an online storage unit | |
CN107329850B (zh) | 一种满足海量读写次数操作的存储器及数据存储方法 | |
CN109298953B (zh) | 一种共享内存数据读写的装置和方法 | |
CN113868023B (zh) | 存储系统的快照方法、装置、电子设备及可读存储介质 | |
CN115328851A (zh) | 一种数据保护方法、装置、设备及介质 | |
CN110471791A (zh) | 一种对闪存的坏块信息的存储方法和装置以及设备 | |
CN107305582B (zh) | 一种元数据处理方法及装置 | |
CN112230855A (zh) | 固态硬盘及其读写方法 | |
CN113050893B (zh) | 一种高并发的文件存储方法、系统、介质及电子终端 | |
CN111813597A (zh) | 一种空调器 | |
CN117348816A (zh) | Ssd系统数据的存储方法、装置、电子设备及介质 | |
CN110321073B (zh) | 一种闪存的数据存储方法和装置以及设备 | |
TWI757606B (zh) | 伺服器裝置及其基板管理控制器與可程式邏輯單元之間的通訊協定方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |