一种快速存储装置及快速更新数据的方法

文档序号:6554625阅读:142来源:国知局
专利名称:一种快速存储装置及快速更新数据的方法
技术领域
本发明涉及存储技术,尤指一种快速存储装置及快速更新数据的方法。
背景技术
闪速存储器(Flash)由于具有存储容量大,掉电数据不丢失、可多次擦写等优点,正逐步取代其他半导体存储器而被广泛应用于交换机、路由器、移动电话、个人数据助理(PDA)等产品中。在这些产品中,用Flash作为存储数据和应用程序的存储体,可以将大量数据方便、快捷地进行移动和交换。
Flash读取数据的过程与一般的存储器读取数据的过程大体相同,可以实现随机、快速的读取。而Flash的写操作却和一般的存储器不同,Flash要先擦除存储块中的所有数据,再将新数据写入擦除后的存储块。由于Flash存储块的大小一般是64K或者128K,因此在数据更新过程中即使更新一个字节的数据,也要将更新数据所对应的存储块中的所有数据擦除后再将需要更新的新数据写入。这里,将更新数据所对应的存储块称为更新块。
具体更新数据的过程简单描述如下首先将更新数据所对应的更新块中的所有数据拷贝到内存,然后擦除当前更新块,再将内存中不需要更新的数据和需要更新的新数据写回当前更新块。由于内存存储数据的不稳定性,在Flash更新数据的过程中很容易导致由于系统复位、掉电或用户强行终止操作而使数据丢失的问题,造成了对文件系统的巨大损坏,严重的会使整个文件系统不可用。
在实际应用中,为了解决Flash在更新数据过程中由于系统复位、掉电或用户强行终止操作而致使更新数据失败的问题,通常的作法是将Flash中的一个存储块作为备份块,用备份块代替内存的功能。由于Flash具有掉电数据不丢失的功能,因此可以解决由于系统复位、掉电或用户强行终止操作而致使更新数据失败的问题。
现有技术中,设置了备份块的Flash内部结构如图1所示。Flash100中包括控制单元101、存储单元102和备份块103。所述控制单元101用于控制存储单元102读取、写入及更新数据的过程。所述存储单元102用于存储数据。所述备份块103用于备份存储单元102需要更新的数据;当系统重启恢复时,由控制单元101控制将备份数据重新写回存储单元102。其中,Flash更新数据的具体过程如图2所示步骤201当有数据需要更新时,控制单元101控制存储单元102将当前更新操作所对应的存储单元102中更新块内的数据备份至备份块103中。其中,更新操作所对应的存储单元102中的更新块,由待被更新的数据所在确定的存储块。
步骤202控制单元101设置备份标记有效。
步骤203控制单元101擦除存储单元102中当前更新块内的所有数据。
步骤204控制单元101将备份块103中不需要更新的数据重新写回当前更新块,并将新数据直接写入当前更新块。
步骤205在更新完成之后,控制单元101设置备份标记为无效。
步骤206控制单元101擦除备份块103中的备份数据。
虽然,如图2所示的更新流程可以解决由于系统复位、掉电或用户强行终止操作而致使更新数据失败的问题,但是在更新过程中执行了两次擦除Flash存储块的操作,分别是步骤203中更新块的擦除和步骤206中备份块的擦除,众所周知Flash存储块的擦除过程耗时较长,因此产生了由于Flash存储块的擦除操作而使Flash数据更新过程较长的问题,严重影响了系统的运行速度和效率;同时,由于每次更新过程中都需要对Flash中的备份块进行擦除操作,并且Flash中存储块的擦除次数是有限的,因此频繁的擦除操作极大的缩短了Flash中备份块的使用寿命,进而也缩短了Flash的使用寿命。另外,在向更新块中写入新数据的过程是将不需要更新的数据从备份块103中写回更新块,而将新数据直接写入更新块,可以看出这样的更新操作过程复杂,更新过程容易出错,降低了Flash文件系统的容灾性。

发明内容
有鉴于此,本发明的主要目的在于提供一种快速存储装置,应用该装置能够提高Flash更新数据的速度。
本发明的又一主要目的在于提供快速更新数据的方法,应用该方法能够提高Flash更新数据的速度、以及提高Flash文件系统的容灾性。
为达到上述目的,本发明的技术方案是这样实现的一种快速存储装置,至少包括闪速存储器,闪速存储器中至少包括控制单元和存储单元,控制单元控制存储单元执行读取和写入的操作,该装置进一步包括非易失性存储器;所述非易失性存储器,用于备份或更新对应的存储单元中更新块内的数据;所述存储单元,在非易失性存储器备份更新块中的数据后,擦除更新块中的数据;所述控制单元,控制非易失性存储器备份数据,并根据新数据和非易失性存储器中备份的数据,控制存储单元更新当前更新块。
其中,所述控制单元在存储单元的更新块中写入当前更新块需要更新的数据;所述非易失性存储器将更新块中不需更新的数据写回当前更新块。
其中,所述控制单元在非易失性存储器内更新数据,所述非易失性存储器将更新后的数据写回存储单元中当前更新操作所对应的更新块。
其中,所述非易失性存储器为非易失性随机存储器、或电可擦除只读存储器、或硬盘。
一种快速更新数据的方法,当闪速存储器更新数据时,执行以下步骤A1、将当前更新操作所对应的更新块中的数据备份至非易失性存储器;B1、擦除当前更新操作所对应的更新块,根据新数据和非易失性存储器中备份的数据更新当前更新块。
其中,步骤B1中,所述根据新数据和非易失性存储器中备份的数据更新当前更新块为将新数据,和非易失性存储器中备份的、不被更新的数据,写回当前更新块中。
其中,步骤B1中,所述根据新数据和非易失性存储器中备份的数据更新当前更新块为用新数据更新非易失性存储器中备份的数据,并将更新后的非易失性存储器中的数据写回当前更新块。
其中,所述步骤B1为B11、用新数据更新非易失性存储器中备份的数据;B12、擦除当前更新操作所对应的更新块;B13、将非易失性存储器中更新后的数据写回当前更新块。
另外,设置备份标记,在步骤B11和步骤B12之间,设置备份标记为有效;在步骤B13之后,设置备份标记为无效;当系统恢复重启时,该方法进一步包括当备份标记有效时,执行步骤B12和B13。
另外,设置备份标记,在步骤A1和步骤B1之间,设置备份标记为有效;在步骤B1之后,设置备份标记为无效;当系统恢复重启时,该方法进一步包括当备份标记有效时,将非易失性存储器中备份的数据写回更新块。
一种快速更新数据的方法,该方法包括以下步骤A2、备份当前更新操作所对应的更新块中的数据;B2、根据新数据,对备份的数据进行更新;C2、将更新后的备份数据写回当前更新操作所对应的更新块。
其中,步骤A2中所述备份当前更新操作所对应的更新块中的数据为备份当前更新操作所对应的闪速存储器中更新块内的数据;
在步骤A2和步骤B2之间进一步包括AB2、擦除当前更新操作所对应的更新块。
其中,步骤A2中所述备份当前更新操作所对应的更新块中的数据为备份当前更新操作所对应的闪速存储器中更新块内的数据;在步骤B2和步骤C2之间进一步包括BC2、擦除当前更新操作所对应的更新块。
另外,设置备份标记,在步骤B2和步骤BC2之间,设置备份标记为有效;在步骤C2之后,设置备份标记为无效;当系统恢复重启时,该方法进一步包括当备份标记有效时,执行步骤BC2和C2。
另外,设置备份标记,执行完步骤A2之后,设置备份标记为有效;执行完步骤C2之后,设置备份标记为无效;当系统恢复重启时,该方法进一步包括当备份标记有效时,将备份的数据写回更新块。
本发明所提供的一种快速存储装置,用非易失性存储器代替Flash中的备份块作为Flash的备份块,减少了在更新数据过程中擦除Flash存储块的次数,因此加快了Flash更新数据的速度,进而加快了Flash读写数据的速度,提高了整个系统的运行速度及效率,同时延长了Flash的使用寿命。经实验测试表明,使用FLASH中的存储块作为备份块改写一个13M大小的文件需要7.4分钟;而引入NVRAM作为Flash的备份块之后,改写同样大小的一个13M文件仅需4.3分钟。
同时,本发明还提供了一种利用非易失性存储器代替Flash中备份块作为Flash备份块的快速更新数据的方法,该方法由于利用非易失性存储器代替Flash中的备份块作为Flash的备份块,因此减少了更新数据的过程中擦除Flash存储块的次数,加快了Flash更新数据的速度,加快了Flash读写数据的速度,从而提高了整个系统的运行速度及效率,延长了Flash的使用寿命。
另外,本发明又提供了一种在备份数据中更新数据的快速更新数据的方法,该方法由于在备份的数据内进行数据更新,然后将更新完的数据写入更新块,因此降低了现有技术中Flash更新过程的复杂度,提高了Flash文件系统的容灾性,提高了系统的抗毁性。


图1为现有技术Flash的结构示意图;图2为现有技术Flash更新数据的流程图;图3为本发明中实施例一的装置结构示意图;图4为本发明中实施例二的装置结构示意图;图5为本发明中实施例二的方法流程图。
具体实施例方式
为使本发明的目的、技术方案及优点更加清楚明白,以下列举实施例,对本发明做进一步的详细说明。
实施例一为了提高Flash更新数据的速度,并同时解决在系统复位、掉电或用户强行终止操作而使更新数据操作失败的问题,在本实施例中采用将非易失性随机存储器(NVRAM)设置为Flash备份块的方法,以解决备份数据和提高更新速度的问题。这里,所述的NVRAM由于具有断电后数据不丢失,功耗小的特点,而正被广泛的应用于数码相机、可拍照手机、个人数字助理(PDA)中,用来存储硬件参数供软件调用;或作为其中的存储卡用来存储数据。但是,用NVRAM作为其他存储设备的备份装置却没有出现过。
图3为实施例一用NVRAM作为备份块的存储装置的结构示意图。该存储装置包括Flash300和NVRAM310;Flash300中包括控制单元301和存储单元302。
其中,控制单元301用于控制读取及写入存储单元302的操作,当需要更新数据时,控制单元301将当前更新操作所对应的存储单元302中更新块内的所有数据备份至NVRAM310,并设置备份标记为有效;并在擦除存储单元302当前更新块内的数据后,将新数据和NVRAM310中备份的不被更新的数据,写回当前更新块中更新当前更新块,并设置备份标记为无效。
本实施例中更新数据的具体流程与现有技术更新流程中的步骤201至步骤205相同,所不同的是由NVRAM执行备份数据的操作,而不是由Flash中的备份块执行。由于可见,在更新数据的流程中减少了一次擦除Flash备份块的次数,即减少了一次擦除Flash存储块的时间,加快了Flash更新数据的速度,提高了Flash的读写速度,同时延长了Flash的使用寿命。
而且,在本实施例中,当系统复位、掉电或用户强行终止操作而使当前更新数据的操作失败时,在系统恢复重新启动之后,首先判断设置的备份标记是否有效,如果有效,则当前的更新数据操作失败,则在擦除当前更新数据操作所对应的更新块之后,将备份块中的数据写回更新块;否则,更新数据操作成功或者是更新数据的操作还没有开始,不执行任何操作。使Flash文件系统在系统异常重启或断电之后,能够有效的保证文件系统的完整性,提高了系统的容灾性。
实施例二与实施例一相同,实施例二同样设置NVRAM作为Flash的备份块。具体NVRAM作为Flash备份块时应设置的存储空间的大小,可以是NVRAM内一个存储块的大小,也可以根据实际应用场合的需要设置合适的大小。
由于NVRAM的写操作不需要像Flash一样需要先擦除、再写入,因此在本实施例中采用直接根据新数据在NVRAM中进行数据的更新,然后将更新后的数据写回存储单元的更新块中。这样,可以尽量避免Flash更新操作的复杂度,提高了Flash文件系统的容灾性。使Flash文件系统在系统异常重启或断电之后,能够有效的保证文件系统的完整性。
实施例二存储装置的结构示意图如图4所示,包括Flash400和NVRAM410,其中Flash400中包括控制单元401和存储单元402。其中,控制单元401用于控制读取及写入存储单元402的操作,当需要更新数据时,控制单元401将当前更新操作所对应的存储单元402中的更新块内的数据备份至NVRAM410,并设置备份标记为有效;根据新数据直接在NVRAM410中进行数据的更新后,并在擦除存储单元402中当前更新块后,将NVRAM410更新后的数据写或存储单元402中的更新块,并设置备份标记为无效。
实施例二中更新数据的具体流程如图5所示步骤501当有数据需要更新时,控制单元401控制存储单元402将当前更新操作所对应的更新块中的数据备份至NVRAM410中。
步骤502控制单元401保留NVRAM410中从更新块备份的、不需要更新的数据,将用来执行更新操作的新数据写入NVRAM410。
步骤503控制单元401设置备份标记为有效。
步骤504控制单元401擦除当前更新操作所对应的更新块。
步骤505将NVRAM410更新后的数据重新写回当前更新块中。
步骤506控制单元401设置备份标记为无效。
在图5所示的流程中,当系统复位、掉电或用户强行终止操作而使当前更新数据的操作失败时,在系统恢复重新启动之后,首先判断设置的备份标记是否有效,如果有效,则当前的更新数据操作虽然失败,但需要更新的新数据已成功写入NVRAM410中,此时则只需从步骤504开始执行直到步骤506以完成更新操作;否则,不执行任何操作。
在图5所示的流程中,也可以将步骤503移至步骤502之前,其他步骤的次序及操作均不变。此时,当系统复位、掉电或用户强行终止操作而使当前更新数据的操作失败时,在系统恢复重启之后,首先判断设置的备份标记是否有效,如果有效,则将NVRAM410中的备份数据写回当前更新数据所对应的更新块中即可;当判断备份标记无效时,则不执行任何操作。
在本实施例如图4所示的存储装置中还存在另外一种快速存储方法,即在图5所示的流程中,将步骤502调整至步骤504之后,其他步骤的次序及操作均不变。此时,当系统复位、掉电或用户强行终止操作而使当前更新数据的操作失败时,在系统恢复重新启动之后,首先判断设置的备份标记是否有效,如果有效,则将NVRAM中的备份数据写回当前更新数据所对应的更新块中,完成备份的功能;当判断备份标记无效时,则不执行任何操作。
在本发明所列举的实施例中,描述的是用NVRAM作Flash备份块的情况,实际上除Flash之外的所有非易失性存储器都可以作为Flash的备份块。由于除Flash之外任意的非易失性存储器都不会存在Flash先擦后写的情况,因此用它们做Flash的备份块均可以达到快速更新数据的目的。这样的非易失性存储器如电可擦除只读存储器(EEPROM)、硬盘等。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种快速存储装置,至少包括闪速存储器,闪速存储器中至少包括控制单元和存储单元,控制单元控制存储单元执行读取和写入的操作,其特征在于,该装置进一步包括非易失性存储器;所述非易失性存储器,用于备份或更新对应的存储单元中更新块内的数据;所述存储单元,在非易失性存储器备份更新块中的数据后,擦除更新块中的数据;所述控制单元,控制非易失性存储器备份数据,并根据新数据和非易失性存储器中备份的数据,控制存储单元更新当前更新块。
2.根据权利要求1所述的装置,其特征在于,所述控制单元在存储单元的更新块中写入当前更新块需要更新的数据;所述非易失性存储器将更新块中不需更新的数据写回当前更新块。
3.根据权利要求1所述的装置,其特征在于,所述控制单元在非易失性存储器内更新数据,所述非易失性存储器将更新后的数据写回存储单元中当前更新操作所对应的更新块。
4.根据权利要求1、2或3所述的装置,其特征在于,所述非易失性存储器为非易失性随机存储器、或电可擦除只读存储器、或硬盘。
5.一种快速更新数据的方法,其特征在于,当闪速存储器更新数据时,执行以下步骤A1、将当前更新操作所对应的更新块中的数据备份至非易失性存储器;B1、擦除当前更新操作所对应的更新块,根据新数据和非易失性存储器中备份的数据更新当前更新块。
6.根据权利要求5所述的方法,其特征在于,步骤B1中,所述根据新数据和非易失性存储器中备份的数据更新当前更新块为将新数据,和非易失性存储器中备份的、不被更新的数据,写回当前更新块中。
7.根据权利要求5所述的方法,其特征在于,步骤B1中,所述根据新数据和非易失性存储器中备份的数据更新当前更新块为用新数据更新非易失性存储器中备份的数据,并将更新后的非易失性存储器中的数据写回当前更新块。
8.根据权利要求5所述的方法,其特征在于,所述步骤B1为B11、用新数据更新非易失性存储器中备份的数据;B12、擦除当前更新操作所对应的更新块;B13、将非易失性存储器中更新后的数据写回当前更新块。
9.根据权利要求8所述的方法,其特征在于,设置备份标记,在步骤B11和步骤B12之间,设置备份标记为有效;在步骤B13之后,设置备份标记为无效;当系统恢复重启时,该方法进一步包括当备份标记有效时,执行步骤B12和B13。
10.根据权利要求5至8中任一权利要求所述的方法,其特征在于,设置备份标记,在步骤A1和步骤B1之间,设置备份标记为有效;在步骤B1之后,设置备份标记为无效;当系统恢复重启时,该方法进一步包括当备份标记有效时,将非易失性存储器中备份的数据写回更新块。
11.一种快速更新数据的方法,其特征在于,该方法包括以下步骤A2、备份当前更新操作所对应的更新块中的数据;B2、根据新数据,对备份的数据进行更新;C2、将更新后的备份数据写回当前更新操作所对应的更新块。
12.根据权利要求11所述的方法,其特征在于,步骤A2中所述备份当前更新操作所对应的更新块中的数据为备份当前更新操作所对应的闪速存储器中更新块内的数据;在步骤A2和步骤B2之间进一步包括AB2、擦除当前更新操作所对应的更新块。
13.根据权利要求11所述的方法,其特征在于,步骤A2中所述备份当前更新操作所对应的更新块中的数据为备份当前更新操作所对应的闪速存储器中更新块内的数据;在步骤B2和步骤C2之间进一步包括BC2、擦除当前更新操作所对应的更新块。
14.根据权利要求13所述的方法,其特征在于,设置备份标记,在步骤B2和步骤BC2之间,设置备份标记为有效;在步骤C2之后,设置备份标记为无效;当系统恢复重启时,该方法进一步包括当备份标记有效时,执行步骤BC2和C2。
15.根据权利要求11、12或13所述的方法,其特征在于,设置备份标记,执行完步骤A2之后,设置备份标记为有效;执行完步骤C2之后,设置备份标记为无效;当系统恢复重启时,该方法进一步包括当备份标记有效时,将备份的数据写回更新块。
全文摘要
本发明公开了一种快速存储装置,包括非易失性存储器,控制单元和存储单元,非易失性存储器用于备份更新块的数据;存储单元,在非易失性存储器执行完备份操作后擦除更新块的数据;控制单元根据新数据和非易失性存储器中备份的数据更新当前更新块。同时,本发明还公开了一种快速更新数据的方法,包括将更新操作所对应的更新块中的数据备份至非易失性存储器;然后擦除更新块,根据新数据和非易失性存储器中备份的数据更新当前更新块。另外,本发明又公开了一种快速更新数据的方法。本发明所提供的装置及方法,由于减少了更新数据过程中擦除闪速存储器的次数及更新过程的复杂度,加快了闪速存储器更新数据的速度,并延长了闪速存储器的使用寿命。
文档编号G06F11/14GK1811725SQ20061000838
公开日2006年8月2日 申请日期2006年2月21日 优先权日2006年2月21日
发明者王勇 申请人:杭州华为三康技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1