闪速存储器、用于闪速存储器的数据管理方法及设备
技术领域
本发明涉及数据存储管理技术领域,尤其是涉及一种闪速存储器、用于闪速存储器的数据管理方法及设备。
背景技术
闪速存储器(Flash Memory,简称闪存)作为一种安全、快速的存储体,具有体积小、容量大、成本低、掉电数据不丢失等一系列优点,已成为嵌入式系统中数据和程序最主要的存储载体。由于FLASH在结构和操作方式上与硬盘、E2ROM等其他存储介质有较大区别,使用FLASH时必须根据其自身特性,对存储系统进行特殊设计,以保证系统的性能达到最优。
闪速存储器是一种非易失性存储器NVM(Non-Volatile Memory),根据结构的不同可以将其分成NOR型闪速存储器和NAND型闪速存储器两种。但不管哪一种闪速存储器,其在结构和操作方式上与硬盘、E2ROM等其他存储介质有较大区别,都具有如下特点:
1、区块结构
闪速存储器在物理结构上分成若干个区块,区块之间相互独立。
2、先擦后写
由于闪速存储器的写操作只能将数据位从1写成0,不能从0写成1,所以在对存储器进行写入之前必须先执行擦操作,将预写入的数据位初始化为1。并且,擦操作的最小单位是一个区块,而不是单个字节。
3、操作指令
除了NOR型闪速存储器的读操作,闪速存储器的其它操作不能像RAM存储器那样,能直接对目标地址进行总线操作。比如执行一次写操作,它必须输入一串特殊的指令(NOR型闪速存储器),或者完成一段时序(NAND型闪速存储器)才能将数据写入到闪速存储器中。
通常,在机顶盒等家用设备、通信设备以及嵌入式系统中,闪速存储器作为存储和数据处理的存储载体。这些设备在使用过程中,用户需要对闪速存储器进行操作,来读、写或修改其中的数据。其中,出于数据存储安全考虑,在闪速存储器中实行备份机制,即将闪速存储器分为数据区和备份数据区,将数据区中存储的数据映射至备份数据区。当数据区中的数据被破坏后,可通过备份数据区来恢复数据。
但是,由于闪速存储器本身存储结构的特点,采用备份机制的闪速存储器在使用过程中仍存在数据不安全的因素:
闪速存储器数据区和备份数据区均包括一个描述信息分区,若对数据区中的数据做修改,需要同步更新数据区和备份数据区的描述信息。由于闪速存储器需要作“先擦后写”的操作,当在更新数据时,系统突然断电,可能造成描述信息的丢失或破坏,使系统或用户无法获取闪速存储器中的数据。
发明内容
本发明的目的是提出一种闪速存储器、以及用于闪速存储器的数据管理方法和设备,以解决在对闪速存储器写入数据、同步更新描述信息时,因断电等意外事故造成闪速存储器中数据的损坏或丢失的技术问题。
为解决本发明的技术问题,本发明公开一种用于闪速存储器的数据管理方法,包括:
将闪速存储器的数据读入外部内存,在内存中将读入的数据处理成需要写入闪速存储器的数据;
将处理后的数据写入闪速存储器的交换区之后,并对闪速存储器作数据更新处理,具体包括以下步骤:
将处理后的数据写入闪速存储器的备份数据区;
将处理后的数据写入闪速存储器的数据区;
同步更新数据区和备份数据区中的描述信息;
若将处理后的数据写入闪速存储器的备份数据区的过程中数据被破坏,则读取交换区中的数据,对备份数据区做数据恢复处理。
其中,若将处理后的数据写入闪速存储器的数据区的过程中数据被破坏,则读取备份数据区或交换区中的数据,对数据区作数据恢复处理。
其中,所述数据恢复处理的还步骤包括:更新所述数据区或/和所述备份数据区的描述信息。
相应地,本发明还公开一种用于闪速存储器的数据管理设备,包括:
内存单元,与所述闪速存储器连接,保存需要写入闪速存储器的数据或是需要对闪速存储器作修改的数据;
内存数据处理单元,与所述内存单元连接,将所述内存单元的数据处理成需要写入闪速存储器的数据;
数据写控制单元,与所述内存数据处理单元及闪速存储器连接,将所述内存数据处理单元处理后的数据写入闪速存储器的交换区,并对闪速存储器作数据更新处理;所述数据写控制单元具体包括:
数据写控制模块,用于将所述内存数据处理单元处理后的数据写入闪速存储器的交换区,之后再控制将数据先写入闪速存储器的备份数据区再写入数据区;
数据恢复控制模块,当对闪速存储器的备份数据区写入数据过程发生数据破坏时,用于读取交换区中的数据,对备份数据区作数据恢复处理;当对闪速存储器的数据区写入数据过程发生数据破坏时,用于读取闪速存储器的备份数据区或交换区中的数据,对闪速存储器的数据区作数据恢复处理。
相应地,本发明还公开一种闪速存储器,包括:
用于存储数据的数据区,以及对所述数据区进行备份的备份数据区;
以及交换区,用于保存需要写入所述数据区的数据,并读取保存的数据对所述数据区与所述备份数据区作数据更新处理;备份数据区先读取更新处理后的数据,数据区再读取更新处理后的数据,数据区和备份数据区中的描述信息同步更新;若备份数据区读取更新处理后数据的过程中数据被破坏,则交换区对备份数据区做数据恢复处理。
与现有技术相比,本发明具有如下有益效果:
本发明将闪速存储器的交换区作为存储数据的二级备份区,通过在内存将需要写入闪速存储器的数据作处理之后,先写入用户无法直接操作的交换区,然后,再写入闪速存储器的备份数据区和数据区。如此,当数据写入备份数据区或/和数据区发生意外事故导致数据被破坏时,可从交换区读取数据后,恢复备份数据区或/和数据区的数据;当数据区的数据被破坏或不完整时,可通过备份数据区来恢复。因此,本发明可保证对闪速存储器写入数据、同步更新描述信息时,不会因为断电等意外事故,造成闪速存储器中数据的损坏或丢失。
附图说明
图1是一种采用备份机制的闪速存储器的分区结构示意图。
图2是本发明方法的一个较佳实施例的流程示意图。
图3是本发明设备的一个较佳实施例的结构示意图。
具体实施方式
为便于理解本发明,请参考图1,是业界一种采用备份机制的闪速存储器的分区结构示意图。闪速存储器采取分区结构,包括数据区110、对数据区110中数据进行备份的备份数据区120、以及用于对数据区110与备份数据区120中的数据做交换处理的交换(SWAP)区130。其中,数据区110与备份数据区120的结构相似,包括用于存储分区描述信息的描述信息分区(SYSCFG)111(或121)等多个分区。
当对数据区110中的数据做修改时,通过交换区130对备份数据区120做同步更新;若对数据区110的描述信息分区111中的描述信息做修改时,也需同步更新备份数据区120的描述信息分区121中的描述信息。
请参考图2所示,本发明所揭示用于闪速存储器的数据管理方法的一个较佳实施例的流程示意图。
本实施例包括如下实现步骤:
步骤S210:当根据用户操作指令,需要对闪速存储器做数据写入或数据修改的操作时,控制将闪速存储器的备份数据区中保存的数据读入至系统内存;
其中,系统内存是指闪速存储器外部,配合闪速存储器进行数据处理的外部存储器。比如,在机顶盒中,闪速存储器用于保存系统和用户数据,而机顶盒在运行过程中,当前使用的系统数据、用户数据被读入至机顶盒的系统内存中进行数据处理。
步骤S220:在内存中将读入的数据作更新处理,即,根据用户的指令,将需要对闪速存储器作修改的数据、写入的数据,对内存中读入的数据进行更新。
内存中更新处理后的数据,即为根据用户的指令需要重新写入闪速存储器的数据。
上述步骤S210和S220都是在闪速存储器外部所作的数据处理,因此,不会对闪速存储器中存储数据做任何的修改或写入操作。
步骤S230:将内存中的数据写入至闪速存储器的交换区(SWAP)。
由于交换区原本是作为数据区和备份数据区进行数据交换的临时交换区,用户是无法直接对该区中的数据进行操作的,因此,不管用户对闪速存储器做何操作,都无法直接影响交换区中的数据。
本步骤实际上已将数据写入了闪速存储器,不过数据不是写入在跟用户操作直接相关的数据区和备份数据区,而是写在交换区。即使当数据区或/和备份数据区中的数据被破坏后,仍可控制从交换区读出数据后,恢复数据区或/和备份数据区中的数据。
步骤S240:将内存中的数据写入至备份数据区;
备份数据区用于备份保存一些重要的数据。如果操作过程出现异常(断电),备份的重要数据已损坏,但是,交换区中已保存了更新后的数据,于下次启动时,检查备份数据区中数据是否完整,如果不完整,则通过交换区中的数据对备份数据区作数据恢复,以保证重要的数据不被损坏。
步骤S250:对数据区作数据更新处理。
本步骤包括:将内存中的数据写入数据区,并更新数据区中的描述信息,同时同步更新备份数据区的描述信息。
其中,描述信息包括各逻辑分区的起始地址和结束地址(物理地址)等信息,甚至还可以包括文件索引表起始地址、大小等文件系统信息或是文件系统页大小、文件分配表和文件登记表所在的位置等文件系统信息。因此,若闪速存储器中的描述信息被损坏,可能导致闪速存储器无法正常工作,存储的数据被破坏或丢失,系统或用户也无法获取闪速存储器中的数据。
数据区保存的是系统运行时必须的信息和用户可以修改的信息。即使上述步骤S250在操作过程出现异常(比如,断电),数据区的数据被破坏,但备份数据区和交换区中的数据均保存完整。因此,于系统启动时,如果检测到数据区中的数据不完整,则可以通过备份数据区或交换区的数据作数据恢复处理,从而不影响系统的正常运行。
其中,对数据恢复处理的步骤包括:将交换区的数据读入内存,在内存中处理数据后,再将处理后的数据写入备份数据区或数据区。
另外,本发明还揭露一种用于闪速存储器的数据管理设备,请参见图3所示,为本设备的一个较佳实施例的结构示意图。
该设备包括:
内存单元320,与所述闪速存储器310连接,保存需要写入闪速存储器的数据或是需要对闪速存储器作修改的数据;
内存数据处理单元330,与所述内存单元320以及数据写控制单元340连接,将内存单元320的数据处理成需要写入闪速存储器310的数据;
数据写控制单元340,与所述内存数据处理单元330及闪速存储器310连接,将所述内存数据处理单元330处理后的数据写入闪速存储器310的交换区313,并对闪速存储器310作数据更新处理。
其中,所述数据写控制单元340具体包括:
数据写控制模块,将所述内存数据处理单元330处理后的数据写入闪速存储器310的交换区313,之后再控制写入闪速存储器310的数据区311和备份数据区312。
数据恢复控制模块,当对闪速存储器310的备份数据区312写入数据过程发生数据破坏时,读取闪速存储器310的交换区313中的数据,对闪速存储器310的备份数据区312作数据恢复处理;当对闪速存储器310的数据区311写入数据过程发生数据破坏时,读取闪速存储器310的备份数据区312或交换区311中的数据(如果备份数据区中的数据完整则通过备份数据区恢复,否则通过交换区恢复),对闪速存储器310的数据区作数据恢复处理。
并且,当对所述闪速存储器310写入数据时,同步更新所述数据区311和所述备份数据区312的描述信息。
综上,本发明实际上是将闪速存储器的交换区作为存储数据的二级备份区,通过在内存中对需要写入闪速存储器的数据处理之后,先写入用户无法直接操作的交换区,然后,再写入闪速存储器的备份数据区和数据区,这样,当数据写入备份数据区发生意外事故导致数据被破坏时,可从交换区读取数据后,恢复备份数据区的数据;当数据区的数据被破坏或不完整时,可通过备份数据区或交换区来恢复。因此,本发明可保证对闪速存储器写入数据,同步更新描述信息时,不会因为断电等意外事故,造成闪速存储器中数据的损坏或丢失。