CN107422987A - 一种在非易失性存储器中存储数据的方法及装置 - Google Patents
一种在非易失性存储器中存储数据的方法及装置 Download PDFInfo
- Publication number
- CN107422987A CN107422987A CN201710414662.7A CN201710414662A CN107422987A CN 107422987 A CN107422987 A CN 107422987A CN 201710414662 A CN201710414662 A CN 201710414662A CN 107422987 A CN107422987 A CN 107422987A
- Authority
- CN
- China
- Prior art keywords
- memory block
- data storage
- write
- memory
- area
- 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.)
- Granted
Links
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
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
本申请提出了一种在非易失性存储器中存储数据的方法及装置,该存储器包括,第一存储块和第二存储块对数据进行存储,所述存储块包括,用于存储数据的信息区和用于寄存签名信息的签名区。使用该存储器在存储数据时,需先将存储数据写入当前存储块且标识签名,再将待用的存储块配置为再次写入存储数据和签名信息的存储块(修改待用存储块上的原始数据)。因此,即使在数据写入时发生意外掉电或reset等突发事件,当前存储块上新写入的数据虽未能完成写入,但是另一存储块上的存储数据未被修改,不会丢失数据,降低了存储器内的数据因意外掉电或reset等突发事件造成的数据丢失或损坏的风险。
Description
技术领域
本申请涉及电子通信领域,特别涉及一种闪存的数据存储方法及闪存。
背景技术
非易失性存储器(NVS,nonvolatile storage,non-volatile storage)也称为非易失性存储或非易失性随机存取存储器(NVRAM),是静态随机存取存储器的一种形式,当计算机关闭或失去它的外部电源的时候,它的内容可以保存下来。因此,在许多常见的应用中,微处理器要求用非易失性存储器来存放其可执行代码、变量和其他暂态数据。
常见的非易失性存储器有可擦可编程只读存储器(Erasable ProgrammableRead-Only Memory,RPROM)、电可擦可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM)、闪存(Flash EEPROM)等类型。每种非易失性存储器根据其成本和性能运用在不同的技术领域。例如,虽然EEPROM使用灵活,可以实现单字节删除与改写,但是其擦写电路占用空间大,在存储容量较大数据时十分不便。
闪存作为一种常用的非易失性存储器,具有存储容量大,携带方便等优点。闪存可以在称为存储块(block)的存储单位中进行删除和改编,即每个存储块共用一个擦除电路,因此在存储大量数据时,其可以大大节省空间,方便数据存储。
但是,在使用闪存进行存储时,即使仅仅修改几个字节,也需要擦除这几个字节所在的块的所有数据,再写入新的数据。众所周知,非易失性存储器的擦除过程比较耗时,如果擦除过程中有意外掉电或者Reset等事件发生时,整个块的数据恰好被擦除或者部分擦除,而这时新写入的数据却没有正常写入,使得原来存储在闪存中的数据不再完整,形成一块“坏数据”区域。如果有相关程序使用到上述“坏数据”区域,整个程序可能无法正常运行(例如程序跑飞或者执行错误),使得应用该程序的相关产品的稳定性存在极大的隐患。
因此,当非易失性存储器中写入存储数据时,如何降低存储器内的数据因意外掉电或reset等突发事件发生时,发生数据丢失或损坏的风险,是本领域的技术人员亟待解决的问题。
发明内容
本申请提供一种在非易失性存储器中存储数据的方法及装置,用以降低存储器内的数据因意外掉电或reset等突发事件造成的丢失或损坏的风险。
为了达到上述目的,本申请提出了一种在非易失性存储器中存储数据的方法,所述非易失性存储器包括,第一存储块和第二存储块,所述存储块包括,用于存储数据的信息区和用于标识签名信息的签名区,所述方法包括,
将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息后,将所述第二存储块配置为用于再次写入存储数据并标识有签名信息的存储块;
其中,所述存储块为清空状态时,该存储块上未写入存储数据且未标识签名信息。
优选的,根据所述第二存储块的配置状态,将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息后,将所述第一存储块配置为用于再次写入存储数据并标识有签名信息的存储块。
优选的,所述将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息后,将所述第二存储块配置为用于再次写入存储数据并标识有签名信息的存储块,具体包括,
将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息,然后配置所述第二存储块为清空状态,最后将所述第二存储块配置为用于再次写入存储数据并标识有签名信息的存储块;
所述将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息后,将所述第一存储块配置为用于再次写入存储数据并标识有签名信息的存储块,具体包括,
将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息,然后配置所述第一存储块为清空状态,最后将所述第一存储块配置为用于再次写入存储数据并标识有签名信息的存储块。
优选的,所述将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息后,将所述第二存储块配置为用于再次写入存储数据并标识有签名信息的存储块,具体包括,
将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息后,若所述第一存储块的存储空间已满,配置所述第二存储块为再次写入存储数据和标识签名的存储块,否则配置若所述第一存储块为再次写入存储数据的存储块;
所述将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息后,将所述第一存储块配置为用于再次写入存储数据并标识有签名信息的存储块,具体包括,
将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息后,若所述第二存储块的存储空间已满,配置所述第一存储块为再次写入存储数据和签名信息的存储块,否则配置所述第二存储块为再次写入存储数据的存储块。
优选的,将存储数据写入至标识有签名信息的所述第一存储块或第二存储块的信息区。
优选的,所述存储数据和所述签名信息写入至清空状态的存储块时,先在所述存储块的所述信息区内写入存储数据后,再在所述存储块的所述签名区内写入所述签名信息。
相应的,本申请还提出了一种非易失性存储器,所述非易失性存储器包括,第一存储块和第二存储块,所述存储块包括,用于存储数据的信息区和用于寄存签名信息的签名区,所述存储器还包括,处理模块,
所述处理模块,用于将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息后,将所述第二存储块配置为用于再次写入存储数据并标识有签名信息的存储块;
其中,所述存储块为清空状态时,该存储块上未写入存储数据且未标识签名信息。。
优选的,所述处理模块,还用于根据所述第二存储块的配置状态,将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息后,将所述第一存储块配置为用于再次写入存储数据并标识有签名信息的存储块。
优选的,所述处理模块,具体用于将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息,然后配置所述第二存储块为清空状态,最后将所述第二存储块配置为用于再次写入存储数据并标识有签名信息的存储块;
将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息,然后配置所述第一存储块为清空状态,最后将所述第一存储块配置为用于再次写入存储数据并标识有签名信息的存储块。
优选的,所述处理模块,具体用于将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息后,若所述第一存储块的存储空间已满,配置所述第二存储块为再次写入存储数据和标识签名的存储块,否则配置若所述第一存储块为再次写入存储数据的存储块;
将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息后,若所述第二存储块的存储空间已满,配置所述第一存储块为再次写入存储数据和签名信息的存储块,否则配置所述第二存储块为再次写入存储数据的存储块。
优选的,所述处理模块,还用于将存储数据写入至标识有签名信息的所述第一存储块或第二存储块的信息区。
优选的,所述处理模块在将所述存储数据和所述签名信息写入至清空状态的存储块时,先在所述存储块的所述信息区内写入存储数据后,再在所述存储块的所述签名区内写入所述签名信息。
与现有技术相比,本申请提出的技术方案的有益技术效果包括:
本申请提出了一种在非易失性存储器中存储数据的方法及装置,该存储器包括,第一存储块和第二存储块对数据进行存储,所述存储块包括,用于存储数据的信息区和用于寄存签名信息的签名区。使用该存储器在存储数据时,需先将存储数据写入当前存储块且标识签名,再将待用的存储块配置为再次写入存储数据和签名信息的存储块(修改待用存储块上的原始数据)。因此,即使在数据写入时发生意外掉电或reset等突发事件,当前存储块上新写入的数据虽未能完成写入,但是另一存储块上的存储数据未被修改,不会丢失数据,降低了存储器内的数据因意外掉电或reset等突发事件造成的数据丢失或损坏的风险。
此外,基于所述存储器的存储数据运行的程序可以根据所述签名区的签名信息有选择的读取所述第一存储块或第二存储块上的存储数据,可以有效的保证所述程序不读取由于意外掉电或reset等突发事件造成的“坏数据”区域的数据,从而保证程序的正常运行。
附图说明
图1为本申请实施例提出的一种在非易失性存储器中存储数据的方法的流程示意图;
图2为本申请实施例提出的一种在具体的应用场景中所述存储块结构示意图;
图3为本申请实施例提出的一种在具体应用场景下的在非易失性存储器中存储数据的方法的流程图
图4为本申请实施例提出的在实施图3所示的方法时出现意外掉电的一种情形示意图;
图5为本申请实施例提出的在实施图3所示的方法时出现意外掉电的一种情形示意图;
图6为本申请实施例提出的在实施图3所示的方法时出现意外掉电的一种情形示意图;
图7为本申请实施例提出的在实施图3所示的方法时出现意外掉电的一种情形示意图;
图8为本申请实施例提出的在实施图3所示的方法时出现意外掉电的一种情形示意图;
图9为本申请实施例提出的一种确定是否在当前存储块写入存储数据的方法流程图;
图10为本申请实施例提出的一种读取存储数据的方法的流程示意图;
图11为本申请实施例提出的一种非易失性存储器中存储的结构示意图。
具体实施方式
正如背景技术中所述的,非易失存储器的数据存储区由于在新写入数据时需要擦除原有数据后,再在相应位置写入新的存储数据。若使用非易失性存储器进行数据存储时,发生意外掉电或reset等突发事件,存储器的存储区由于原数据被擦除,而新数据又未被写入,因此,该数据存储区形成一块“坏数据”区域。若某产品的程序正好需要基于该存储区的数据运行,则该程序将跑飞或者执行错误,严重影响产品稳定性。
本申请的发明人希望通过本申请所提供的方法,可以降低存储器内的数据因意外掉电或reset等突发事件造成的数据丢失或损坏的风险。
如图1所示,为本申请实施例所提供的一种在非易失性存储器中存储数据的方法的流程示意图,该非易失性存储器包括第一存储块和第二存储块,所述存储块包括用于存储数据的信息区和用于寄存签名信息的签名区,所述方法包括如下步骤:
步骤S101:将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息后,将所述第二存储块配置为用于再次写入存储数据并标识有签名信息的存储块;
其中,所述存储块为清空状态时,该存储块上未写入存储数据且未标识签名信息。
在实施本申请实施例的技术方案写入存储数据时,需确认所述第一存储块是否为配置的当前写入存储数据和签名信息的存储块。可以根据其签名区有无签名信息确认所述第一存储块是否为配置的当前写入存储数据和签名信息的存储块。具体为:当所述第一存储块的签名区未标识有签名时,所述第一存储块为配置的当前写入存储数据和签名信息的存储块,此时,将存储数据写入所述第一存储块并标识签名。
在实施本申请实施例提出的技术方案时,由于使用所述第一存储块和第二存储块交替存储,因此,若所述第一存储块上不是配置的当前写入存储数据和签名信息的存储块,则所述第二存储块为当前写入存储数据和签名信息的存储块。同理,也可以根据所述第二存储块的签名区有无签名信息确认所述第二存储块是否为当前写入存储数据和签名信息的存储块,具体为:当所述第二存储块未标识签名信息时,所述第二存储块为当前配置的写入存储数据和签名信息的存储块。
当所述第二存储块为当前配置的写入存储数据和签名信息的存储块时,需将存储数据写入至所述第二存储块。因此,本申请实施例提出存储方法还包括,根据所述第二存储块的配置状态,将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息后,将所述第一存储块配置为用于再次写入存储数据并标识有签名信息的存储块。
在具体的应用场景中,在设置存储块的信息区和签名区时,可以根据实际情况灵活设置,只要可以写入到签名区的签名信息可以标识存储块的存储状态即可。如图2所示,为本实施提出的一种在具体的应用场景中所述存储块结构示意图。所述存储块包含N个字节,其中前N-2个字节为信息区,第N-1到N个字节为签名区。
需要说明的是,在保证存储块的签名区可以标识存储块的存储状态的前提下,在存储块上如何划分信息区和签名区并不会影响本申请的保护范围。
在具体的应用场景中,为了可以快速的再次写入数据,在将所述将存储数据写入至配置的当前写入存储数据和签名信息的存储块后,优选擦除待用存储块上的存储数据和所标识的所述签名信息,使该存储块处于清空状态。因此该存储方法具体可以为:
将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息,然后配置所述第二存储块为清空状态,最后将所述第二存储块配置为用于再次写入存储数据并标识有签名信息的存储块。
或者,将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息,然后配置所述第一存储块为清空状态,最后将所述第一存储块配置为用于再次写入存储数据并标识有签名信息的存储块。
需要说明的是,在将所述将存储数据写入至配置的当前写入存储数据和签名信息的存储块后,擦除所述待用存储块上的存储数据和签名信息的步骤在配置再次写入存储数据并标识有签名信息的存储块的步骤之前或之后,均可以保证在写入数据时即使发生突发事件,原始数据不会丢失。因此,在保证将存储数据写入至配置的当前写入存储数据和签名信息的存储块后,再对所述另一存储块上的存储数据和标识的签名信息进行处理前提下,何时擦除所述第二存储块上的存储数据并不会影响本申请的保护范围。
为了更合理的利用第一存储块和第二存储块的存储空间,在配置用于再次写入存储数据的存储块时,优选考虑所述第一存储块和第二存储块的存储状态。具体可以为:
将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息后,若所述第一存储块的存储空间已满,配置所述第二存储块为再次写入存储数据和标识签名的存储块,否则配置若所述第一存储块为再次写入存储数据的存储块。
将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息后,若所述第二存储块的存储空间已满,配置所述第一存储块为再次写入存储数据和签名信息的存储块,否则配置所述第二存储块为再次写入存储数据的存储块。
需要说明的是,在实施本申请的技术方案写入存储数据时,若当前存储块为配置的写入存储数据和签名信息的存储块,则在当前存储块写入存储数据和签名信息;若当前存储块为配置的写入存储数据的存储块,则仅在当前存储块中写入存储数据。
还需要说明的是,上述根据存储块的存储状态配置用于再次写入存储数据和签名信息的存储块仅是实施本申请实施例的技术方案的一种优选实施方式,在将存储数据写入至配置的当前写入存储数据和签名信息的存储块后,再对所述另一存储块上的存储数据和标识的签名信息进行处理前提下,在配置用于再次写入存储数据和签名信息的存储块是否考虑存储块的存储状态并不影响本申请的保护范围。。
若使用本申请实施例提出的优化实施方案在存储器中存储信息时,可以根据图9所示的方法确定存储块的配置状态。该方法具体包括:
步骤S901:若第一存储块有签名,所述第二存储块无签名且第一存储块的存储空间未满,则所述第一存储块为配置的当前写入存储数据的存储块。
步骤S902:若第一存储块有签名,所述第二存储块无签名且第一存储块的存储空间已满,则所述第二存储块为配置的当前写入存储数据和签名信息的存储块。
步骤S903:若所述第一存储块无签名,所述第二存储块有签名且第二存储块的存储空间未满,则所述第二存储块为配置的当前写入存储数据的存储块。
步骤S904:若所述第一存储块无签名,所述第二存储块有签名且第二存储块的存储空间已满,则所述第一存储块为配置的当前写入存储数据和签名信息的存储块。
步骤S905:若所述第一存储块、第二存储块均有签名且第一存储块空间已满、第二存储块的存储空间未满,则所述第二存储块为配置的当前写入存储数据和签名信息的存储块。此时为异常存储造成,需先擦除所述第二存储块上的原有的存储数据和签名信息,再进行新的存储数据和签名信息写入。
步骤S906:若所述第一存储块、第二存储块均有签名且所述第一存储块和第二存储块的存储空间均未满,则所述第二存储块为配置的当前写入存储数据存储块。此时为异常存储造成,最好在将新的存储数据和签名信息写入前或后,擦除所述第一存储块上的原有的存储数据和签名信息。
需要说明的是,上述方法仅是在实施本申请实施例提出优化的技术方案时可以采用的一种确定是否在当前存储块写入存储数据的优选实施方式,具体如何确定可以根据实际情景进行设置。
如图10所示,本申请实施例还提出了一种读取非易失性存储器中存储数据的方法。该读取方法基于本申请实施例所述的优化实施方案对数据进行存储。
所述读取方法具体包括:
步骤:S1001:若所述第一存储块有签名,所述第二存储块无签名,读取所述第一存储块信息区所有数据。
步骤:S1002:若所述第一存储块无签名,所述第二存储块有签名,读取所述第二存储块信息区所有数据。
步骤:S1003:若所述第一存储块和所述第二存储块均有签名,判断所述第一存储块的信息区的数据是否为新写入的数,若是则进行步骤S1004,若否则进行步骤S1005。
步骤:S1004:读取所述第一存储块所有数据。
步骤:S1005:读取所述第二存储块所有数据。
与现有技术相比,本申请实施例提出的技术方案的有益技术效果包括:
本申请提出了一种在非易失性存储器中存储数据的方法及装置,该存储器包括,第一存储块和第二存储块对数据进行存储,所述存储块包括,用于存储数据的信息区和用于寄存签名信息的签名区。使用该存储器在存储数据时,需先将存储数据写入当前存储块且标识签名,再将待用的存储块配置为再次写入存储数据和签名信息的存储块(修改待用存储块上的原始数据)。因此,即使在数据写入时发生意外掉电或reset等突发事件,当前存储块上新写入的数据虽未能完成写入,但是另一存储块上的存储数据未被修改,不会丢失数据,降低了存储器内的数据因意外掉电或reset等突发事件造成的数据丢失或损坏的风险。
进而,该存储方法可以使基于所述存储器的存储数据运行的程序可以根据所述签名区的签名信息有选择的读取所述第一存储块或第二存储块上的存储数据。因此,基于所述存储器的存储数据运行的程序可以有选择的读取所述第一存储块或第二存储块存储的数据,从而保证了程序稳定运行。
为了进一步阐述本申请的技术思想,现结合具体的应用场景,对本申请的技术方案进行说明。
如图3所示,为本申请实施例提供的一种在具体应用场景下的在非易失性存储器中存储数据的方法的流程图。该非易失性存储器为闪存,所述闪存包含第一存储块和第二存储块,所述存储块包括,用于存储数据的信息区和用于寄存签名信息的签名区。
本实施例的应用场景为所述闪存的存储块包含42个字节,其中前40个字节为信息区,第41-42个字节为签名区。数据需分多次在存储块中写入,具体为:第一次写入存储数据123;第二次写入数据45;第三次写入数据67887654321123456788765432112345678;第四次写入数据876;第五次写入数据543;第六次写入数据2112345678876543211234567887654321;第七次写入数据123;第八次写入数据45678。
具体存储步骤如下:
步骤S301:在所述第一存储中写入数据123并标识签名SS,将所述第一存储块配置为再次写入存储数据的存储块。
步骤S302:在所述第一存储中写入数据45,将所述第一存储块配置为再次写入存储数据的存储块。
步骤S303:在所述第一存储中写入67887654321123456788765432112345678,将所述第二存储块配置为再次写入存储数据和签名信息的存储块。
步骤S304:在所述第二存储中写入876并标识签名SS,然后擦除所述第一存储块的数据信息和签名信息,配置所述第一存储块为清空状态,最后将所述第二存储块配置为再次写入存储数据的存储块。
步骤S305:在所述第二存储中写入543,将所述第二存储块配置为再次写入存储数据的存储块。
步骤S306:在所述第二存储块写入2112345678876543211234567887654321,将所述第一存储块配置为再次写入存储数据和签名信息的存储块。
步骤S307:在所述第一存储块写入123且标识签名SS,然后擦除所述第二存储块的数据信息和签名信息,配置所述第二存储块为清空状态,最后将所述第一存储块配置为再次写入存储数据的存储块。
在上述数据存储的过程中,若发生意外掉电或者Reset等突发事件,会出现如图4-图8所示几种情形之一:
图4为在实施步骤S302或步骤S308出现意外掉电的情形,此时第一存储块的新数据未被写入,但是由于该步骤未进行擦除操作,因此原数据得以保留,无数据丢失的风险。
图5为在实施步骤S304出现一种意外掉电的情形,此时在第二存储块未写入数据,第一存储块原数据保存完整。运行程序可以根据签名区信息选择读取第一存储块数据。
图6为在实施步骤S304时出现的一种意外的情形,此时在第二存储块已写入数据但未写入签名,第一存储块原数据保存完整。运行程序可以根据签名区信息选择读取第一存储块数据。
图7为在实施步骤S304时出现的一种意外的情形,此时在第二存储块已写入数据但且写入签名,第一存储块上的数据信息和签名未被擦除,此时,第二存储块的原存储数据保存完整,运行程序可以根据第二存储块上的签名信息和第二存储块上的信息为新写入信息选择读取第二存储块的数据。
图8为在实施步骤S304时出现的一种意外的情形,此时在第二存储块已写入数据但且写入签名,第一存储块上的数据信息易被擦除但签名未被擦除,此时,第二存储块的原存储数据保存完整,运行程序可以根据第二存储块上的签名信息和第二存储块上的信息为新写入信息选择读取第二存储块的数据。
由此可见,通过应用本申请实施例所述的技术方案,即使发生意外掉电或reset等突发事件,非易失性存储器上原始的存储数据也不会丢失或损坏。基于该存储器上存储的数据运行的程序可以根据签名区的信息选择读取数据完整的存储块上的数据,避免读取异常数据造成的程序跑飞或执行错误。
为达到以上技术目的,基于同样的发明构思,如图11所示为本申请实施例提出的一种非易失性存储器的结构示意图。该存储器,包括,第一存储块210和第二存储块310,所述存储块包括,用于存储数据的信息区和用于寄存签名信息的签名区,所述存储器还包括,处理模块110,
所述处理模块110,用于将存储数据写入至清空状态的所述第一存储块210的信息区并在所述第一存储块210的签名区标识签名信息后,将所述第二存储块310配置为用于再次写入存储数据并标识有签名信息的存储块;
其中,所述存储块为清空状态时,该存储块上未写入存储数据且未标识签名信息。。
优选的,所述处理模块110,还用于根据所述第二存储块310的配置状态,将存储数据写入至清空状态的所述第二存储块310的信息区并在所述第二存储块310的签名区标识签名信息后,将所述第一存储块210配置为用于再次写入存储数据并标识有签名信息的存储块。
优选的,所述处理模块110,具体用于将存储数据写入至清空状态的所述第一存储块210的信息区并在所述第一存储块210的签名区标识签名信息,然后配置所述第二存储块310为清空状态,最后将所述第二存储块310配置为用于再次写入存储数据并标识有签名信息的存储块;
将存储数据写入至清空状态的所述第二存储块310的信息区并在所述第二存储块310的签名区标识签名信息,然后配置所述第一存储块210为清空状态,最后将所述第一存储块210配置为用于再次写入存储数据并标识有签名信息的存储块。
优选的,所述处理模块110,具体用于将存储数据写入至清空状态的所述第一存储块210的信息区并在所述第一存储块210的签名区标识签名信息后,若所述第一存储块210的存储空间已满,配置所述第二存储块310为再次写入存储数据和标识签名的存储块,否则配置若所述第一存储块210为再次写入存储数据的存储块;
将存储数据写入至清空状态的所述第二存储块310的信息区并在所述第二存储块310的签名区标识签名信息后,若所述第二存储块310的存储空间已满,配置所述第一存储块210为再次写入存储数据和签名信息的存储块,否则配置所述第二存储块310为再次写入存储数据的存储块。
优选的,所述处理模块110,还用于将存储数据写入至标识有签名信息的所述第一存储块210或第二存储块310的信息区。
优选的,所述处理模块110在将所述存储数据和所述签名信息写入至清空状态的存储块时,先在所述存储块的所述信息区内写入存储数据后,再在所述存储块的所述签名区内写入所述签名信息。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (12)
1.一种在非易失性存储器中存储数据的方法,其特征在于,所述非易失性存储器包括,第一存储块和第二存储块,所述存储块包括,用于存储数据的信息区和用于标识签名信息的签名区,所述方法包括,
将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息后,将所述第二存储块配置为用于再次写入存储数据并标识有签名信息的存储块;
其中,所述存储块为清空状态时,该存储块上未写入存储数据且未标识签名信息。
2.如权利要求1所述的方法,其特征在于,所述方法还包括,
根据所述第二存储块的配置状态,将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息后,将所述第一存储块配置为用于再次写入存储数据并标识有签名信息的存储块。
3.如权利要求2所述的方法,其特征在于,
所述将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息后,将所述第二存储块配置为用于再次写入存储数据并标识有签名信息的存储块,具体包括,
将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息,然后配置所述第二存储块为清空状态,最后将所述第二存储块配置为用于再次写入存储数据并标识有签名信息的存储块;
所述将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息后,将所述第一存储块配置为用于再次写入存储数据并标识有签名信息的存储块,具体包括,
将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息,然后配置所述第一存储块为清空状态,最后将所述第一存储块配置为用于再次写入存储数据并标识有签名信息的存储块。
4.如权利要求2所述的方法,其特征在于,
所述将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息后,将所述第二存储块配置为用于再次写入存储数据并标识有签名信息的存储块,具体包括,
将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息后,若所述第一存储块的存储空间已满,配置所述第二存储块为再次写入存储数据和标识签名的存储块,否则配置若所述第一存储块为再次写入存储数据的存储块;
所述将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息后,将所述第一存储块配置为用于再次写入存储数据并标识有签名信息的存储块,具体包括,
将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息后,若所述第二存储块的存储空间已满,配置所述第一存储块为再次写入存储数据和签名信息的存储块,否则配置所述第二存储块为再次写入存储数据的存储块。
5.如权利要求4所述的方法,其特征在于,所述方法还包括,
将存储数据写入至标识有签名信息的所述第一存储块或第二存储块的信息区。
6.如权利要求1-5任一项所述的方法,其特征在于,所述存储数据和所述签名信息写入至清空状态的存储块时,先在所述存储块的所述信息区内写入存储数据后,再在所述存储块的所述签名区内写入所述签名信息。
7.一种非易失性存储器,其特征在于,所述非易失性存储器包括,第一存储块和第二存储块,所述存储块包括,用于存储数据的信息区和用于寄存签名信息的签名区,所述存储器还包括,处理模块,
所述处理模块,用于将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息后,将所述第二存储块配置为用于再次写入存储数据并标识有签名信息的存储块;
其中,所述存储块为清空状态时,该存储块上未写入存储数据且未标识签名信息。
8.如权利要求7所述的存储器,其特征在于,
所述处理模块,还用于根据所述第二存储块的配置状态,将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息后,将所述第一存储块配置为用于再次写入存储数据并标识有签名信息的存储块。
9.如权利要求8所述的存储器,其特征在于,
所述处理模块,具体用于将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息,然后配置所述第二存储块为清空状态,最后将所述第二存储块配置为用于再次写入存储数据并标识有签名信息的存储块;
将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息,然后配置所述第一存储块为清空状态,最后将所述第一存储块配置为用于再次写入存储数据并标识有签名信息的存储块。
10.如权利要求8所述的存储器,其特征在于,
所述处理模块,具体用于将存储数据写入至清空状态的所述第一存储块的信息区并在所述第一存储块的签名区标识签名信息后,若所述第一存储块的存储空间已满,配置所述第二存储块为再次写入存储数据和标识签名的存储块,否则配置若所述第一存储块为再次写入存储数据的存储块;
将存储数据写入至清空状态的所述第二存储块的信息区并在所述第二存储块的签名区标识签名信息后,若所述第二存储块的存储空间已满,配置所述第一存储块为再次写入存储数据和签名信息的存储块,否则配置所述第二存储块为再次写入存储数据的存储块。
11.如权利要求10所述的存储器,其特征在于,
所述处理模块,还用于将存储数据写入至标识有签名信息的所述第一存储块或第二存储块的信息区。
12.如权利要求7-11任一项所述的存储器,其特征在于,
所述处理模块在将所述存储数据和所述签名信息写入至清空状态的存储块时,先在所述存储块的所述信息区内写入存储数据后,再在所述存储块的所述签名区内写入所述签名信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710414662.7A CN107422987B (zh) | 2017-06-05 | 2017-06-05 | 一种在非易失性存储器中存储数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710414662.7A CN107422987B (zh) | 2017-06-05 | 2017-06-05 | 一种在非易失性存储器中存储数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107422987A true CN107422987A (zh) | 2017-12-01 |
CN107422987B CN107422987B (zh) | 2020-12-01 |
Family
ID=60429692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710414662.7A Active CN107422987B (zh) | 2017-06-05 | 2017-06-05 | 一种在非易失性存储器中存储数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107422987B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108724735A (zh) * | 2018-05-03 | 2018-11-02 | 杭州先临爱打印科技有限公司 | 一种3d打印机及其断电续打控制电路和方法 |
CN113434086A (zh) * | 2021-06-25 | 2021-09-24 | 南京英锐创电子科技有限公司 | 数据存储方法、装置、非易失性存储器件和存储器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1278198C (zh) * | 2001-10-09 | 2006-10-04 | 本田技研工业株式会社 | 用于控制在非易失性存储器中重写数据的交通工具控制器 |
CN1871588A (zh) * | 2003-10-24 | 2006-11-29 | 海珀斯通股份公司 | 在按块可擦的存储器中写存储器扇区的方法 |
CN101162608A (zh) * | 2006-10-10 | 2008-04-16 | 北京华旗资讯数码科技有限公司 | 闪存的存储块的标识方法 |
CN102789426A (zh) * | 2012-07-27 | 2012-11-21 | 青岛海信宽带多媒体技术有限公司 | 在非易失性存储器件中存储信息的方法和装置 |
-
2017
- 2017-06-05 CN CN201710414662.7A patent/CN107422987B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1278198C (zh) * | 2001-10-09 | 2006-10-04 | 本田技研工业株式会社 | 用于控制在非易失性存储器中重写数据的交通工具控制器 |
CN1871588A (zh) * | 2003-10-24 | 2006-11-29 | 海珀斯通股份公司 | 在按块可擦的存储器中写存储器扇区的方法 |
CN101162608A (zh) * | 2006-10-10 | 2008-04-16 | 北京华旗资讯数码科技有限公司 | 闪存的存储块的标识方法 |
CN102789426A (zh) * | 2012-07-27 | 2012-11-21 | 青岛海信宽带多媒体技术有限公司 | 在非易失性存储器件中存储信息的方法和装置 |
CN102789426B (zh) * | 2012-07-27 | 2015-07-15 | 青岛海信宽带多媒体技术有限公司 | 在非易失性存储器件中存储信息的方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108724735A (zh) * | 2018-05-03 | 2018-11-02 | 杭州先临爱打印科技有限公司 | 一种3d打印机及其断电续打控制电路和方法 |
CN113434086A (zh) * | 2021-06-25 | 2021-09-24 | 南京英锐创电子科技有限公司 | 数据存储方法、装置、非易失性存储器件和存储器 |
CN113434086B (zh) * | 2021-06-25 | 2024-02-02 | 南京英锐创电子科技有限公司 | 数据存储方法、装置、非易失性存储器件和存储器 |
Also Published As
Publication number | Publication date |
---|---|
CN107422987B (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103914393B (zh) | 一种基于mcu的flash不丢失更新存储方法 | |
CN106227680B (zh) | 一种数据处理及防掉电数据保护方法 | |
CN111984610A (zh) | 数据压缩方法、装置及计算机可读存储介质 | |
CN106776362B (zh) | 存储器的控制方法及装置 | |
CN103294615A (zh) | 一种存储机顶盒用户信息的方法 | |
CN108897492B (zh) | 一种数据写入方法和装置 | |
CN106527992A (zh) | 一种存储设备数据销毁方法及装置 | |
CN102662688B (zh) | 一种Nor flash更新方法及装置 | |
CN107422987A (zh) | 一种在非易失性存储器中存储数据的方法及装置 | |
CN107992268B (zh) | 一种坏块标记的方法及相关装置 | |
CN105512047B (zh) | Flash闪存的写操作、擦除操作方法及装置 | |
CN104268097B (zh) | 一种元数据处理方法及系统 | |
CN103677893B (zh) | 开机的映像文件的大小缩减方法及运算装置 | |
CN111399857A (zh) | 一种fru数据烧录方法、系统、设备及计算机存储介质 | |
CN109062808A (zh) | 一种ssd开发性能的测试方法、装置及相关设备 | |
CN109240856A (zh) | 一种存储元数据损坏模拟方法、装置、终端及存储介质 | |
CN108646987A (zh) | 一种文件卷的管理方法、装置、存储介质及终端 | |
CN200950255Y (zh) | 大容量sim卡 | |
CN110704468A (zh) | 数据更新方法、装置及控制器 | |
CN112464500B (zh) | 备份cell替换电路验证方法、装置、存储介质和终端 | |
CN110321740A (zh) | 一种存储设备的数据操作方法以及存储设备 | |
CN102880562B (zh) | 闪存装置 | |
CN109960601A (zh) | 一种业务数据的恢复方法、装置和电子设备 | |
CN103399716A (zh) | 写数据和读数据的方法、及写数据和读数据处理器 | |
CN105573835A (zh) | 一种界面组合管理系统、方法及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |