一种基于Flash的数据存储方法及系统的制作方法

文档序号:6550220阅读:136来源:国知局
一种基于Flash的数据存储方法及系统的制作方法
【专利摘要】本申请公开了一种基于Flash的数据存储方法及系统,其中方法包括:为内存中每个部分section的数据申请缓冲区,每个缓冲区对应一个section的数据,将所述每个section的数据写入至对应的缓冲区中,然后每隔预设时间,将所述缓冲区中的数据写入闪存Flash中。本申请的方案,避免了直接将内存中的数据写入Flash时存在的频繁擦除Flash的问题,通过将内存数据先写入缓冲区,在一段时间之后统一的将缓冲区中的数据写入Flash中,减少了Flash的擦除次数,在提高了写数据的速度的同时还减少了对Flash的磨损,增加了Flash的使用寿命。
【专利说明】—种基于Flash的数据存储方法及系统
【技术领域】
[0001]本申请涉及数据处理【技术领域】,更具体地说,涉及一种基于Flash的数据存储方法及系统。
【背景技术】
[0002]Flash存储器由于具有存储容量大、掉电数据不丢失以及可多次擦写等多种优点而逐步取代其它半导体存储器件。Flash存储器广泛应用于移动电话、掌上电脑以及数码相机等移动电子产品中。其作为存储数据和应用程序的存储体,可以将大量数据方便、快捷地移动和交换。Flash内部分为多个存储单元块(block),每个存储单元块又由多个页(page)组成。存储单元块是可擦除的最小单位,页是写入数据的最小单位。
[0003]Flash存储器读取数据与一般的存储器类似,可以实现随机读取且速度很快。但是,Flash存储器的写操作和一般的存储器不同,Flash的写操作必须先按存储单元块擦除,然后再按页顺序写入。由于Flash存储器擦除耗时较长,所以Flash存储器写入的时间主要在于Flash存储器内部的擦除操作。这就造成往Flash存储器里面写数据的时间过长,写速度不高。并且,频繁的对Flash存储器进行擦除会影响其使用寿命。

【发明内容】

[0004]有鉴于此,本申请提供了一种基于Flash的数据存储方法及系统,用于解决现有往Flash存储器中写数据时速度不高、频繁的对Flash存储器进行擦除操作影响其使用寿命的问题。
[0005]为了实现上述目的,现提出的方案如下:
[0006]一种基于Flash的数据存储方法,包括:
[0007]分别为内存中每个部分section的数据申请缓冲区,每个缓冲区对应一个section的数据;
[0008]将所述每个section的数据写入至对应的缓冲区中;
[0009]每隔预设时间,将所述缓冲区中的数据写入闪存Flash中。
[0010]优选的,所述将所述每个section的数据写入至对应的缓冲区中,包括:
[0011]将所述每个section的数据划分为若干个单元块block数据,并将所有block数据依次写入至缓冲区;
[0012]单个所述block数据写入至缓冲区的过程为:
[0013]在一个缓冲区的缓冲地址中查找一个空闲的block ;
[0014]为查找到的block创建索引标识,所述索引标识用于表示当前block所在缓冲区的缓冲地址以及在该缓冲地址中的偏移量;
[0015]将当前block所在的缓冲区的写入参数设置为第一参数,然后将一个block数据写入所述查找到的空闲的block,所述写入参数包括两个值,分别为所述第一参数和第二参数,所述第一参数表示将要对该缓冲区进行写入操作,所述第二参数表示本次写入操作成功;
[0016]检测到本次写入操作成功后:
[0017]将所述写入参数设置为所述第二参数;
[0018]将写入block数据的缓冲区的状态参数设置为第三参数,所述状态参数包括两个值,分别为所述第三参数和第四参数,所述第三参数表示该缓冲区已有数据,所述第四参数表示该缓冲区没有数据;
[0019]将写入block数据的缓冲区的存储参数确定为该写入的block数据所对应的Flash存储地址。
[0020]优选的,所述每隔预设时间,将所述缓冲区中的数据写入闪存Flash中,包括:
[0021]当达到预设时间时,检测每个所述缓冲区的写入参数和状态参数的值;
[0022]在缓冲区的写入参数为第二参数且状态参数为第三参数时,依据该缓冲区的存储参数,将该缓冲区中的block数据写入闪存Flash中指定的存储地址处。
[0023]优选的,在检测到缓冲区的写入参数为第二参数且状态参数为第三参数,将该缓冲区的数据写入闪存Flash中之后,还包括:
[0024]将该缓冲区的状态参数设置为所述第四参数。
[0025]优选的,还包括:
[0026]计算写入闪存Flash中的数据的冗余校验CRC值并保存。
[0027]—种基于Flash的数据存储系统,包括:
[0028]缓冲区申请单元,用于分别为内存中每个部分section的数据申请缓冲区,每个缓冲区对应一个section的数据;
[0029]第一写入单元,用于将所述每个section的数据写入至对应的缓冲区中;
[0030]第二写入单元,用于每隔预设时间,将所述缓冲区中的数据写入闪存Flash中。
[0031]优选的,所述第一写入单元包括:
[0032]划分单元,用于将所述每个section的数据划分为若干个单元块block数据,并将所有block数据依次写入至缓冲区;
[0033]所述划分单元包括:
[0034]查找单元,用于在一个缓冲区的缓冲地址中查找一个空闲的block ;
[0035]索引建立单元,用于为查找到的block创建索引标识,所述索引标识用于表示当前block所在缓冲区的缓冲地址以及在该缓冲地址中的偏移量;
[0036]第一设置单元,用于将当前block所在的缓冲区的写入参数设置为第一参数,然后将一个block数据写入所述查找到的空闲的block,所述写入参数包括两个值,分别为所述第一参数和第二参数,所述第一参数表示将要对该缓冲区进行写入操作,所述第二参数表示本次写入操作成功;
[0037]第二设置单元,用于在检测到本次写入操作成功后,将所述写入参数设置为所述
第二参数;
[0038]第三设置单元,用于在检测到本次写入操作成功后,将写入block数据的缓冲区的状态参数设置为第三参数,所述状态参数包括两个值,分别为所述第三参数和第四参数,所述第三参数表示该缓冲区已有数据,所述第四参数表示该缓冲区没有数据;
[0039]第四设置单元,用于在检测到本次写入操作成功后,将写入block数据的缓冲区的存储参数确定为该写入的block数据所对应的Flash存储地址。
[0040]优选的,所述第二写入单元包括:
[0041]检测单元,用于当达到预设时间时,检测每个所述缓冲区的写入参数和状态参数的值;
[0042]执行单元,用于在缓冲区的写入参数为第二参数且状态参数为第三参数时,依据该缓冲区的存储参数,将该缓冲区中的block数据写入闪存Flash中指定的存储地址处。
[0043]优选的,还包括:
[0044]第五设置单元,用于在所述执行单元将缓冲区的数据写入闪存Flash中之后,将该缓冲区的状态参数设置为所述第四参数。
[0045]优选的,还包括:
[0046]计算单元,用于计算写入闪存Flash中的数据的冗余校验CRC值并保存。
[0047]从上述的技术方案可以看出,本申请实施例公开的基于Flash的数据存储方法,首先为内存中每个部分section的数据申请缓冲区,每个缓冲区对应一个section的数据,将所述每个section的数据写入至对应的缓冲区中,然后每隔预设时间,将所述缓冲区中的数据写入闪存Flash中。本申请的方案,避免了直接将内存中的数据写入Flash时存在的频繁擦除Flash的问题,通过将内存数据先写入缓冲区,然后在一段时间之后统一的将缓冲区中的数据写入Flash中,减少了 Flash的擦除次数,在提高了写数据的速度的同时还减少了对Flash的磨损,增加了 Flash的使用寿命。
【专利附图】

【附图说明】
[0048]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0049]图1为本申请实施例公开的一种基于Flash的数据存储方法流程图;
[0050]图2为本申请实施例公开的将block数据写入至缓冲区的方法流程图;
[0051]图3为本申请实施例公开的另一种基于Flash的数据存储方法流程图;
[0052]图4为本申请实施例公开的一种将缓冲区中数据写入闪存Flash的方法流程图;
[0053]图5为本申请实施例公开的一种基于Flash的数据存储系统结构示意图;
[0054]图6为本申请实施例公开的第一写入单元的结构示意图;
[0055]图7为本申请实施例公开的第二写入单元的结构示意图;
[0056]图8为本申请实施例公开的另一种基于Flash的数据存储系统结构示意图;
[0057]图9为本申请实施例公开的又一种基于Flash的数据存储系统结构示意图。
【具体实施方式】
[0058]为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结解释如下:
[0059]Flash:闪存,其英文名称是"Flash Memory",—般简称为"Flash〃,它属于内存器件的一种,是一种不挥发性(Non-Volatile)内存。闪存的物理特性与常见的内存有根本性的差异:目前各类DDR、SDRAM或者RDRAM都属于挥发性内存,只要停止电流供应内存中的数据便无法保持,因此每次电脑开机都需要把数据重新载入内存;闪存在没有电流供应的条件下也能够长久地保持数据。
[0060]Section:部分,通常将数据划分为多个section,便于Flash中寻址。
[0061]Block:单兀块,一个section的数据又可以划分为多个块block, block是文件系统操作的基本单元。
[0062]Cache:缓冲区,其本质是一种结构体,其内部记录有缓冲地址buffer, buffer是用来记录数据的。
[0063]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0064]本申请实施例公开了一种基于Flash的数据存储方法,参照图1,图1为本申请实施例公开的一种基于Flash的数据存储方法流程图。
[0065]如图1所示,该方法包括:
[0066]步骤S100:分别为内存中每个部分section的数据申请缓冲区,每个缓冲区对应一个section的数据;
[0067]内存中的数据分为几个部分section,每部分的大小section_size都是相同的,一般是64K或者128K。每个section又可以分为很多单元块block,每个单元块的大小也是相同的。单元块是文件系统操作的基本单元。我们首先为各个section的数据申请缓冲区cache,每个缓冲区cache所带的存储地址buffer指向一个大小与section_size相同的内存空间。每个cache对应一个section,多个cache可以通过链表结构串联起来。
[0068]步骤SllO:将所述每个section的数据写入至对应的缓冲区中;
[0069]经过上一步骤的缓冲区申请过程,这里将section数据写入至对应的申请的缓冲区cache中。
[0070]步骤S120:每隔预设时间,将所述缓冲区中的数据写入闪存Flash中。
[0071]由于数据的写入需要一定的时间,我们设定一个时间例如5s,每隔5s即将缓冲区中的数据统一写入到闪存Flash中。
[0072]本申请实施例公开的基于Flash的数据存储方法,首先为内存中每个部分section的数据申请缓冲区,每个缓冲区对应一个section的数据,将所述每个section的数据写入至对应的缓冲区中,然后每隔预设时间,将所述缓冲区中的数据写入闪存Flash中。本申请的方案,避免了直接将内存中的数据写入Flash时存在的频繁擦除Flash的问题,通过将内存数据先写入缓冲区,然后在一段时间之后统一的将缓冲区中的数据写入Flash中,减少了 Flash的擦除次数,在提高了写数据的速度的同时还减少了对Flash的磨损,增加了 Flash的使用寿命。
[0073]优选地,在将section数据写入至缓冲区的过程中,可以将每个section数据划分为若干个单元块block数据,并将所有的block数据依次写入至缓冲区中。其中,单个block数据写入至缓冲区的过程可以参照图2,图2为本申请实施例公开的将block数据写入至缓冲区的方法流程图。
[0074]如图2所示,该过程包括:[0075]步骤S200:在一个缓冲区的缓冲地址中查找一个空闲的block ;
[0076]举例来说,缓冲地址可以看作一条直线,该直线可以划分为多个线段,一个线段即为一个block,我们需要在这条直线上查找一个线段,该线段没有负载任何信息,即为一个空的线段。
[0077]步骤S210:为查找到的block创建索引标识,所述索引标识用于表示当前block所在缓冲区的缓冲地址以及在该缓冲地址中的偏移量;
[0078]具体地,查找到空闲的block后,即将该block与缓冲区的缓冲地址关联起来。为查找到的block建立索引标识,该索引标识能够表示该block所在的缓冲区的序号,以及在该缓冲区的缓冲地址中的偏移量,即通过索引标识即可定位到某个缓冲区的缓冲地址的某一个位置处。
[0079]步骤S220:将当前block所在的缓冲区的写入参数设置为第一参数,然后将一个block数据写入所述查找到的空闲的block ;
[0080]具体地,所述写入参数包括两个值,分别为所述第一参数和第二参数,所述第一参数表示将要对该缓冲区进行写入操作,所述第二参数表示本次写入操作成功。这里写入参数的本意是为了检测对该缓冲区的写入操作是否成功,在写入数据之前我们将写入参数先设定为第一参数,在写入操作成功之后,将该第一参数修改为第二参数。后续我们检测到该写入参数为第二参数时,即代表写入操作成功,缓冲区里面已经存在写入的数据。可选的,这里的写入参数可以用cnt_cache来表示,第一参数即cnt_cache值为I,第二参数即cnt_cache值为O。当然,这仅仅是一种表示方式而已,本领域技术人员可以想到的,还可以用其它方式来表示,只要能够体现出写入操作前后的不同即可。
[0081]在检测到本次写入操作成功后不分先后顺序的执行下述三个步骤:
[0082]步骤S230:将所述写入参数设置为所述第二参数;
[0083]这里,在检测到写入操作成功后,即可将原来的第一参数修改为第二参数。代表本次数据写入过程已经完毕。
[0084]步骤S240:将写入block数据的缓冲区的状态参数设置为第三参数;
[0085]具体地,所述状态参数包括两个值,分别为所述第三参数和第四参数,所述第三参数表示该缓冲区已有数据,所述第四参数表示该缓冲区没有数据。在检测到写入操作成功后,将缓冲区的状态参数设置为第三参数。状态参数代表该缓冲区中是否存在数据,而第三参数即代表缓冲区中存在数据,第四参数代表缓冲区中不存在数据。此处设置状态参数是方便后续将缓冲区的数据写入Flash时,针对存在数据的缓冲区进行写操作,而针对那些不存在数据的缓冲区则不进行写操作。可选的,状态参数可以用flag_dirty来表示,第三参数即flag_dirty值为I,第四参数即flag_dirty值为O。当然,这仅仅是一种表示方式而已,本申请并不局限于此。
[0086]步骤S250:将写入block数据的缓冲区的存储参数确定为该写入的block数据所对应的Flash存储地址。
[0087]其中,针对一个缓冲区,只要有一个block数据写入即将状态参数设定为第三参数,后续再有其它block数据写入该缓冲区时保持状态参数值为第三参数不变。只有在该缓冲区的数据写入到Flash之后才对状态参数进行更改,参见图3,图3为本申请实施例公开的另一种基于Flash的数据存储方法流程图。[0088]结合图1和图3可知,在将缓冲区中的数据写入到闪存Flash之后,进一步包括:
[0089]步骤S300:将该缓冲区的状态参数设置为第四参数。
[0090]缓冲区的数据写入到Flash之后,该缓冲区内部数据清空,则将其状态参数设置为第四参数,表示该缓冲区内部没有数据。
[0091]可选的,上述步骤S120中将缓冲区中的数据写入闪存Flash中的过程可见参见图4所示,图4为本申请实施例公开的一种将缓冲区中数据写入闪存Flash的方法流程图。
[0092]如图4所示,该过程包括:
[0093]步骤S400:当达到预设时间时,检测每个所述缓冲区的写入参数和状态参数的值;
[0094]步骤S410:在缓冲区的写入参数为第二参数且状态参数为第三参数时,依据该缓冲区的存储参数,将该缓冲区中的block数据写入闪存Flash中指定的存储地址处。
[0095]其中,在预设时间到达后,针对每个缓冲区均检测其写入参数和状态参数两个值。写入参数为第二参数代表该缓冲区当前没有正在写入的数据,也即该缓冲区当前处于一个稳定的状态。状态参数为第三参数代表该缓冲区内部有数据。在往Flash中写数据时,参照缓冲区的存储参数,即该缓冲区所存储的block数据所指定的Flash存储地址,将block数据存储到Flash的指定地址处。
[0096]可选的,在数据写入Flash之后,可以计算Flash中数据的冗余校验CRC值并保存,该CRC值用于进行误差校验的。
[0097]下面对本申请实施例提供的基于Flash的数据存储系统进行描述,下文描述的基于Flash的数据存储系统与上文描述的基于Flash的数据存储方法可相互对应参照。
[0098]参见图5,图5为本申请实施例公开的一种基于Flash的数据存储系统结构示意图。
[0099]如图5所示,该系统包括:
[0100]缓冲区申请单元51,用于分别为内存中每个部分section的数据申请缓冲区,每个缓冲区对应一个section的数据;
[0101]第一写入单元52,用于将所述每个section的数据写入至对应的缓冲区中;
[0102]第二写入单元53,用于每隔预设时间,将所述缓冲区中的数据写入闪存Flash中。
[0103]可选的,本申请实施例公开了第一写入单元52的一种可选结构,如图6所示,第一写入单元52可以包括:
[0104]划分单元61,用于将所述每个section的数据划分为若干个单元块block数据,并将所有block数据依次写入至缓冲区;
[0105]所述划分单元61包括:
[0106]查找单元611,用于在一个缓冲区的缓冲地址中查找一个空闲的block ;
[0107]索引建立单元612,用于为查找到的block创建索引标识,所述索引标识用于表示当前block所在缓冲区的缓冲地址以及在该缓冲地址中的偏移量;
[0108]第一设置单元613,用于将当前block所在的缓冲区的写入参数设置为第一参数,然后将一个block数据写入所述查找到的空闲的block,所述写入参数包括两个值,分别为所述第一参数和第二参数,所述第一参数表示将要对该缓冲区进行写入操作,所述第二参数表示本次写入操作成功;[0109]第二设置单元614,用于在检测到本次写入操作成功后,将所述写入参数设置为所述第二参数;
[0110]第三设置单元615,用于在检测到本次写入操作成功后,将写入block数据的缓冲区的状态参数设置为第三参数,所述状态参数包括两个值,分别为所述第三参数和第四参数,所述第三参数表示该缓冲区已有数据,所述第四参数表示该缓冲区没有数据;
[0111]第四设置单元616,用于在检测到本次写入操作成功后,将写入block数据的缓冲区的存储参数确定为该写入的block数据所对应的Flash存储地址。
[0112]可选的,本申请实施例公开了第二写入单元53的一种可选结构,如图7所示,第二写入单元53可以包括:
[0113]检测单元71,用于当达到预设时间时,检测每个所述缓冲区的写入参数和状态参数的值;
[0114]执行单元72,用于在缓冲区的写入参数为第二参数且状态参数为第三参数时,依据该缓冲区的存储参数,将该缓冲区中的block数据写入闪存Flash中指定的存储地址处。
[0115]可选的,本申请实施例还公开了数据存储系统的另一种可选结构,结合图5和图8可知,数据存储系统还可以包括:
[0116]第五设置单元81,用于在所述执行单元72将缓冲区的数据写入闪存Flash中之后,将该缓冲区的状态参数设置为所述第四参数。 [0117]可选的,本申请实施例还公开了数据存储系统的又一种可选结构,结合图8和图9可知,数据存储系统还可以包括:
[0118]计算单元91,用于计算写入闪存Flash中的数据的冗余校验CRC值并保存。
[0119]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0120]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0121]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种基于Flash的数据存储方法,其特征在于,包括: 分别为内存中每个部分section的数据申请缓冲区,每个缓冲区对应一个section的数据; 将所述每个section的数据写入至对应的缓冲区中; 每隔预设时间,将所述缓冲区中的数据写入闪存Flash中。
2.根据权利要求1所述的数据存储方法,其特征在于,所述将所述每个section的数据写入至对应的缓冲区中,包括: 将所述每个section的数据划分为若干个单元块block数据,并将所有block数据依次写入至缓冲区; 单个所述block数据写入至缓冲区的过程为: 在一个缓冲区的缓冲地址中查找一个空闲的block ; 为查找到的block创建索引标识,所述索引标识用于表示当前block所在缓冲区的缓冲地址以及在该缓冲地址中的偏移量; 将当前block所在的缓冲区的写入参数设置为第一参数,然后将一个block数据写入所述查找到的空闲的block,所述写入参数包括两个值,分别为所述第一参数和第二参数,所述第一参数表示将要对该缓冲区进行写入操作,所述第二参数表示本次写入操作成功;检测到本次写入操作 成功后: 将所述写入参数设置为所述第二参数; 将写入block数据的缓冲区的状态参数设置为第三参数,所述状态参数包括两个值,分别为所述第三参数和第四参数,所述第三参数表示该缓冲区已有数据,所述第四参数表示该缓冲区没有数据; 将写入block数据的缓冲区的存储参数确定为该写入的block数据所对应的Flash存储地址。
3.根据权利要求1所述的数据存储方法,其特征在于,所述每隔预设时间,将所述缓冲区中的数据写入闪存Flash中,包括: 当达到预设时间时,检测每个所述缓冲区的写入参数和状态参数的值; 在缓冲区的写入参数为第二参数且状态参数为第三参数时,依据该缓冲区的存储参数,将该缓冲区中的block数据写入闪存Flash中指定的存储地址处。
4.根据权利要求3所述的数据存储方法,其特征在于,在检测到缓冲区的写入参数为第二参数且状态参数为第三参数,将该缓冲区的数据写入闪存Flash中之后,还包括: 将该缓冲区的状态参数设置为所述第四参数。
5.根据权利要求4所述的数据存储方法,其特征在于,还包括: 计算写入闪存Flash中的数据的冗余校验CRC值并保存。
6.一种基于Flash的数据存储系统,其特征在于,包括: 缓冲区申请单元,用于分别为内存中每个部分section的数据申请缓冲区,每个缓冲区对应一个section的数据; 第一写入单元,用于将所述每个section的数据写入至对应的缓冲区中; 第二写入单元,用于每隔预设时间,将所述缓冲区中的数据写入闪存Flash中。
7.根据权利要求6所述的数据存储系统,其特征在于,所述第一写入单元包括:划分单元,用于将所述每个section的数据划分为若干个单元块block数据,并将所有block数据依次写入至缓冲区; 所述划分单元包括: 查找单元,用于在一个缓冲区的缓冲地址中查找一个空闲的block ; 索引建立单元,用于为查找到的block创建索引标识,所述索引标识用于表示当前block所在缓冲区的缓冲地址以及 在该缓冲地址中的偏移量; 第一设置单元,用于将当前block所在的缓冲区的写入参数设置为第一参数,然后将一个block数据写入所述查找到的空闲的block,所述写入参数包括两个值,分别为所述第一参数和第二参数,所述第一参数表示将要对该缓冲区进行写入操作,所述第二参数表示本次写入操作成功; 第二设置单元,用于在检测到本次写入操作成功后,将所述写入参数设置为所述第二参数; 第三设置单元,用于在检测到本次写入操作成功后,将写入block数据的缓冲区的状态参数设置为第三参数,所述状态参数包括两个值,分别为所述第三参数和第四参数,所述第三参数表示该缓冲区已有数据,所述第四参数表示该缓冲区没有数据; 第四设置单元,用于在检测到本次写入操作成功后,将写入block数据的缓冲区的存储参数确定为该写入的block数据所对应的Flash存储地址。
8.根据权利要求1所述的数据存储系统,其特征在于,所述第二写入单元包括: 检测单元,用于当达到预设时间时,检测每个所述缓冲区的写入参数和状态参数的值; 执行单元,用于在缓冲区的写入参数为第二参数且状态参数为第三参数时,依据该缓冲区的存储参数,将该缓冲区中的block数据写入闪存Flash中指定的存储地址处。
9.根据权利要求8所述的数据存储系统,其特征在于,还包括: 第五设置单元,用于在所述执行单元将缓冲区的数据写入闪存Flash中之后,将该缓冲区的状态参数设置为所述第四参数。
10.根据权利要求9所述的数据存储系统,其特征在于,还包括: 计算单元,用于计算写入闪存Flash中的数据的冗余校验CRC值并保存。
【文档编号】G06F12/02GK104008065SQ201410277262
【公开日】2014年8月27日 申请日期:2014年6月19日 优先权日:2014年6月19日
【发明者】徐佳宏, 毛建会, 朱吕亮, 张建国 申请人:深圳市茁壮网络股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1