掌桥专利:专业的专利平台
掌桥专利
首页

一种Flash芯片的存储方法及设备

文献发布时间:2023-06-19 11:08:20


一种Flash芯片的存储方法及设备

技术领域

本申请涉及计算机领域,尤其涉及一种Flash芯片的存储方法及设备。

背景技术

Flash芯片在写入大量的数据时,需要多次擦除整个块,从而减少Flash芯片的读写寿命,过早的导致设备到达生命周期。为了延长设备的使用寿命,现有的存储方式如下:

1)在常规的固定擦除的Flash芯片内存的基础上,加入了校验机制,通过校验确定已经擦除的块,然后重新寻找一块不用的块,这样就可以延长设备的使用寿命,缺点是会出现代码空间不够用,亦或者是剩余的块存在数据则整块擦除会出现代码错误;

2)擦除一个块(block)后,将block进行n等分后分开多次写入每个等分的数据,缺点是针对同一个块(block)进行擦除,如果数据写的和块差不多大小,这样就会导致使用寿命的增值微乎其微,几乎没有真正延长使用寿命。

发明内容

本申请的一个目的是提供一种Flash芯片的存储方法及设备,解决现有技术中存有数据的块整块擦除出现代码错误以及写入数据量与块容积接近使得Flash芯片使用寿命无法有效延长的问题。

根据本申请的一个方面,提供了一种Flash芯片的存储方法,该方法包括:

确定Flash芯片的内存容量以及剩余块的内存容量;

根据所述Flash芯片的内存容量以及所述剩余块的内存容量确定目标块,对所述目标块进行擦除处理;

根据写入数据的数据量和所述目标块的内存容量均分擦除处理后的目标块,确定所述擦除处理后的目标块的目标写入地址;

根据所述目标写入地址完成所述写入数据的存储处理。

可选的,对所述目标块进行擦除处理,包括:

将所述目标块加入存储对象队列,判断所述存储对象队列中的目标块的数量是否达到上限值,若是,则清空所述存储对象队列中的所有目标块。

可选的,所述对所述目标块进行擦除处理之后,包括:

对擦除处理过的目标块使用指定标识进行标记。

可选的,所述判断所述存储对象队列中的目标块的数量是否达到上限值之前,包括:

根据所述Flash芯片的内存容量确定所述上限值。

可选的,所述根据写入数据的数据量和所述目标块的内存容量均分擦除处理后的目标块,确定所述擦除处理后的目标块的目标写入地址,包括:

根据写入数据的数据量的整数倍均分擦除处理后的目标块的内存容量,根据均分后的所述擦除处理后的目标块的内存容量确定所述擦除处理后的目标块的多个写入地址;

基于所述写入数据的数据量确定多个写入地址中的目标写入地址。

可选的,所述根据均分后的所述擦除处理后的目标块的内存容量确定所述擦除处理后的目标块的多个写入地址之后,包括:

判断多个写入地址中是否存在不能使用的写入地址,若是,则使用第一预设标识标记所述不能使用的写入地址。

可选的,所述基于所述写入数据的数据量确定多个写入地址中的目标写入地址,包括:

将所述多个写入地址中带有第一预设标识的写入地址剔除;

基于所述写入数据的数据量确定剩余的写入地址中的目标写入地址。

可选的,所述根据所述目标写入地址完成所述写入数据的存储处理,包括:

在所述目标写入地址中存储所述写入数据,判断存储后的所述写入数据是否校验成功,若是,则完成所述写入数据的存储处理。

根据本申请的另一个方面,还提供了一种用于Flash芯片的存储的设备,其中,所述设备包括:

数据获取模块,用于确定Flash芯片的内存容量以及剩余块的内存容量;

数据处理模块,用于根据所述Flash芯片的内存容量以及所述剩余块的内存容量确定目标块,对所述目标块进行擦除处理;

数据均分模块,还用于根据写入数据的数据量和所述目标块的内存容量均分擦除处理后的目标块,确定所述擦除处理后的目标块的目标写入地址;

数据存储模块,用于根据所述目标写入地址完成所述写入数据的存储处理。

根据本申请的再一个方面,还提供了一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如前述任一项所述的方法。

根据本申请的又一个方面,还提供了一种用于Flash芯片的存储的设备,其中,所述设备包括:

一个或多个处理器;以及

存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如前述任一项所述方法的操作。

与现有技术相比,本申请通过确定Flash芯片的内存容量以及剩余块的内存容量;根据所述Flash芯片的内存容量以及所述剩余块的内存容量确定目标块,对所述目标块进行擦除处理;根据写入数据的数据量和所述目标块的内存容量均分擦除处理后的目标块,确定所述擦除处理后的目标块的目标写入地址;根据所述目标写入地址完成所述写入数据的存储处理。从而有效延长Flash芯片使用寿命,并精确地擦除可擦除的块。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出根据本申请的一个方面提供的一种Flash芯片的存储方法流程示意图;

图2示出了本申请一实施例中的一种Flash芯片使用方法流程示意图;

图3示出了根据本申请另一方面提出的一种用于Flash芯片的存储的设备框架结构示意图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本申请作进一步详细描述。

在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

图1示出根据本申请的一个方面提供的一种Flash芯片的存储方法,其中,所述方法包括:S100,确定Flash芯片的内存容量以及剩余块的内存容量;S200,根据所述Flash芯片的内存容量以及所述剩余块的内存容量确定目标块,对所述目标块进行擦除处理;S300,根据写入数据的数据量和所述目标块的内存容量均分擦除处理后的目标块,确定所述擦除处理后的目标块的目标写入地址;S400,根据所述目标写入地址完成所述写入数据的存储处理。从而有效延长Flash芯片使用寿命,并精确地擦除可擦除的块。

具体地,在S100中,确定Flash芯片的内存容量以及剩余块的内存容量。在此,确定Flash芯片的内存容量时可以确定正在使用的块(Block),本申请中将正在使用的块排除,将未使用的块作为剩余块来进行后续的擦除处理以及写入处理,查询以确定所述剩余块的内存容量。

在S200中,根据所述Flash芯片的内存容量以及所述剩余块的内存容量确定目标块,对所述目标块进行擦除处理。在此,目标块为需要进行擦除处理的数据块,根据写入数据的数据量和剩余块的内存容量选择出目标块,对所述目标块进行擦除处理,

在S300中,根据写入数据的数据量和所述目标块的内存容量均分擦除处理后的目标块,确定所述擦除处理后的目标块的目标写入地址。在此,均分后的经过擦除处理后的目标块可以用于储存写入数据,均分后的目标块的每一个地址的内存容量与写入数据的数据量存在倍数关系,这样就可以根据写入数据的数据量来确定目标块均分后的多个写入地址中可以用于存储写入数据的目标写入地址。

在S400中,根据所述目标写入地址完成所述写入数据的存储处理。在此,通过根据所述目标写入地址完成写入数据的存储处理,避免了某些块一次都使用不到,某些块被多次强制使用,能够有效延长Flash芯片的使用生命周期。

在本申请一实施例中,在S200中,将所述目标块加入存储对象队列,判断所述存储对象队列中的目标块的数量是否达到上限值,若是,则清空所述存储对象队列中的所有目标块。在此,所述存储对象队列中的存储对象即为所有可以用于写入的块,所述存储对象队列中的存储对象是循环使用的,将每一次擦除处理后的目标块排入所述存储对象队列的末尾;可选地,所述存储对象队列为环形队列,便于避免对同一个块的重复擦除。接着,判断所述存储对象队列中的目标块是否达到存储对象队列的最大值,若是,则表明所有的剩余块均已全部擦除处理并写入过了,则此时将队列中的所有目标块清空,新的擦除后的目标块计入后一轮的存储对象队列。

在本申请一实施例中,对所述目标块进行擦除处理之后,对擦除处理过的目标块使用指定标识进行标记。在此,所述指定标识是可自由预设置的,可以使用指定字节作为指定标识,例如0x5A。

在本申请一优选实施例中,对要擦写的目标块用0x5A进行标记,使用环形队列法将可以使用的剩余块数据进行排列。此时已知剩余10个块(block),从0开始,每擦除1次block,标记的存储对象队列加1,直到最大数9时,存储对象队列的值回归0,这样往复循环标记擦除过的剩余块,就避免对同一个块的反复擦除,有效延长了Flash芯片的使用寿命。

在本申请一实施例中,判断所述存储对象队列中的目标块的数量是否达到上限值之前,根据所述Flash芯片的内存容量确定所述上限值。在此,基于所述Flash芯片的内存容量可以得到剩余块的数量,所有剩余块的数量即为所述上限值。

在本申请一实施例中,在S300中,根据写入数据的数据量的整数倍均分擦除处理后的目标块的内存容量,根据均分后的所述擦除处理后的目标块的内存容量确定所述擦除处理后的目标块的多个写入地址;基于所述写入数据的数据量确定多个写入地址中的目标写入地址。在此,均分的对象为Flash芯片的块(block),擦除处理后的目标块的内存容量除以写入数据的数据量,得到计算结果,将结果进行取整,得到擦除处理后的目标块的内存容量的均分份数,在实际应用场景中,所述写入数据的数据量可以为写入数据的字节长度、头部字节数与块数的和的两倍以及校验字节数的总和。接着根据均分后的所述擦除处理后的目标块的内存容量确定多个写入地址,将均分后的每一份目标块设置为一个写入地址,然后基于所述写入数据的数据量和每一个写入地址对应的内存容量来确定所述写入数据存储的目标写入地址。例如,block大小4K,每次需要写入1000个字节,则可以均分为4等份,大小为1024个字节,这样就可以通过均分来增加每次写入的数据次数,即擦一次,写入四次,对此,n个擦写的block,每个block进行N等分,每次写入地址为block里面N的m个均分地址,可以记作n*N+m。

在本申请一实施例中,根据均分后的所述擦除处理后的目标块的内存容量确定所述擦除处理后的目标块的多个写入地址之后,判断多个写入地址中是否存在不能使用的写入地址,若是,则使用第一预设标识标记所述不能使用的写入地址。在此,多个写入地址可以用校验的方式来判断是否存在不能使用的写入地址,若是,则将不能使用的写入地址用第一预设标识来标记所述不能使用的写入地址,避免将本已存有不可擦除数据的块误擦除,导致整个Flash芯片中的代码出现错误。

在本申请一实施例中,在S300中,将所述多个写入地址中带有第一预设标识的写入地址剔除;基于所述写入数据的数据量确定剩余的写入地址中的目标写入地址。在此,若单一目标块中原有的所有均分后得到的写入地址均被第一预设标识标记,均为不能使用的写入地址,则重新选择一个新的块根据写入数据的数据量均分出可以使用的多个写入地址,从新的块的多个写入地址中选出目标写入地址。通过上述方式,避免将本已存有不可擦除数据的块误擦除导致整个Flash芯片中的代码出现错误,同时避免了某些块一次都使用不到,某些块被多次强制使用,最大化利用了所有块的内存容量,每一次写入数据均适应性地针对写入数据的数据量调整写入地址,能够有效延长Flash芯片的使用生命周期。

在本申请一实施例中,在S400中,在所述目标写入地址中存储所述写入数据,判断存储后的所述写入数据是否校验成功,若是,则完成所述写入数据的存储处理。在此,在目标写入地址中存储所述写入数据后对存储后的写入数据进行校验,当校验成功时,完成对写入数据的存储处理。

图2示出了本申请一实施例中的一种Flash芯片使用方法流程示意图,其中,每一个块(Block)中含有四个目标写入位置,每一个写入位置含有数据(Data),形成了左侧的块存储,已知上面四个存储位置对应的是正在正常使用的块1(Block1),则剩余的所有块均为可以存储的对象,将剩余所有块作为多个目标块,每次擦除整个目标块以后,将所述块加入存储对象队列中,并进行标记,下次写入数据则从除去已被标记的块以外的块开始写入。当满足单一目标块中的4个地址均被写入后,则将该目标块擦除为0xFF,第五次写入从下一个新的块开始写入,也就是写四次擦一次。如此循环往复,避免将本已存有不可擦除数据的块误擦除导致整个Flash芯片中的代码出现错误,同时避免了某些块一次都使用不到,某些块被多次强制使用,最大化利用了所有块的内存容量,每一次写入数据均适应性地针对写入数据的数据量调整写入地址,能够有效延长Flash芯片的使用生命周期。

本申请实施例还提供了一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现前述一种Flash芯片的存储方法。

与上文所述的方法相对应的,本申请还提供一种终端,其包括能够执行上述图1或图2或各个实施例所述的方法步骤的模块或单元,这些模块或单元可以通过硬件、软件或软硬结合的方式来实现,本申请并不限定。例如,在本申请一实施例中,还提供了一种用于Flash芯片的存储设备,其中,所述设备包括:

一个或多个处理器;以及

存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行前述所述一种Flash芯片的存储方法的操作。

例如,计算机可读指令在被执行时使所述一个或多个处理器:确定Flash芯片的内存容量以及剩余块的内存容量;根据所述Flash芯片的内存容量以及所述剩余块的内存容量确定目标块,对所述目标块进行擦除处理;根据写入数据的数据量和所述目标块的内存容量均分擦除处理后的目标块,确定所述擦除处理后的目标块的目标写入地址;根据所述目标写入地址完成所述写入数据的存储处理。

图3示出了根据本申请另一方面提出的一种用于Flash芯片的存储的设备框架结构示意图,其中,所述设备包括:数据获取模块100,用于确定Flash芯片的内存容量以及剩余块的内存容量;数据处理模块200,用于根据所述Flash芯片的内存容量以及所述剩余块的内存容量确定目标块,对所述目标块进行擦除处理;数据均分模块300,还用于根据写入数据的数据量和所述目标块的内存容量均分擦除处理后的目标块,确定所述擦除处理后的目标块的目标写入地址;数据存储模块400,用于根据所述目标写入地址完成所述写入数据的存储处理。从而有效延长Flash芯片使用寿命,并精确地擦除可擦除的块。

需要说明的是,所述数据获取模块100、数据处理模块200、数据均分模块300和数据存储模块400执行的内容分别与上述S100、S200、S300和S400中的内容相同或相应相同,为简明起见,在此不再赘述。

在本申请一优选实施例中,所述数据获取模块100还用于判断所述存储对象队列中的目标块的数量是否达到上限值之前,根据所述Flash芯片的内存容量确定所述上限值。

在本申请一优选实施例中,所述数据处理模块200还用于对所述目标块进行擦除处理之后,对擦除处理过的目标块使用指定标识进行标记。

在本申请一优选实施例中,所述数据均分模块300还用于将所述多个写入地址中带有第一预设标识的写入地址剔除;基于所述写入数据的数据量确定剩余的写入地址中的目标写入地址。

需要说明的是,所述数据获取模块100、数据处理模块200和数据均分模块300执行的内容分别与上述方法实施例中的内容相同或相应相同,为简明起见,在此不再赘述。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

相关技术
  • 一种Flash芯片的存储方法及设备
  • 一种FLASH寿命优化的数据存储方法、装置、设备及介质
技术分类

06120112811454