CN109119106A - 数据存储方法、设备及计算机可读存储介质 - Google Patents

数据存储方法、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN109119106A
CN109119106A CN201710497674.0A CN201710497674A CN109119106A CN 109119106 A CN109119106 A CN 109119106A CN 201710497674 A CN201710497674 A CN 201710497674A CN 109119106 A CN109119106 A CN 109119106A
Authority
CN
China
Prior art keywords
data
memory
data block
threshold value
moving
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
Application number
CN201710497674.0A
Other languages
English (en)
Other versions
CN109119106B (zh
Inventor
叶位彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201710497674.0A priority Critical patent/CN109119106B/zh
Publication of CN109119106A publication Critical patent/CN109119106A/zh
Application granted granted Critical
Publication of CN109119106B publication Critical patent/CN109119106B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0097Erasing, e.g. resetting, circuits or methods

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明公开了一种数据存储方法、设备及计算机可读存储介质,所述数据存储方法包括:获取存储器的当前擦除频度,并根据所述当前擦除频度,对存储器的数据搬移阈值进行调整;根据调整后的数据搬移阈值,对数据块进行搬移。本方案中数据搬移阈值作为存储器中数据块的搬移触发条件,当前擦除频度表征存储器的当前擦除次数,数据块搬移时,需要进行相应的擦除操作,从而通过存储器的当前擦除频度,可获知存储器的实际搬移次数,进而根据当前擦除频度,调整数据搬移阈值,以便对数据块进行搬移操作,在搬移的过程中,对存储单元进行充电,对浮栅电荷进行补充,避免数据丢失,延长存储器中数据的保存时间。

Description

数据存储方法、设备及计算机可读存储介质
技术领域
本发明主要涉及存储器技术领域,具体地说,涉及一种数据存储方法、设备及计算机可读存储介质。
背景技术
在通讯设备领域,Nand-flash存储器以其大容量、高吞吐、低功耗、耐震、发热量小的优点,越来越被用来存储程序和数据。随着厂商的半导体工艺的不断升级,以及为了满足对日益增长的容量需求,Nand-flash存储器的工艺尺寸不断缩小。但是Nand-flash存储器是基于浮栅电荷存储实现数据的保存,随着工艺尺寸不断缩小,Nand-flash存储器的存储单元浮栅结构的几何尺寸不断缩小,导致绝缘层越来越薄,电荷泄漏越来越严重,浮栅电荷数量减少,而浮栅电荷的丢失将会导致数据错误产生,使数据保持能力严重下降,数据保存时间越来越短。
同时,Nand-flash存储器还有一个技术缺陷就是读干扰,由于Nand-flash的存储单元是串联在一起的,当读出某一存储单元数据时,需要给其它单元施加电压使其导通。施加的电压虽然比较低,但也可能促使少量电荷注入或泄漏,从而影响了数据的保存时间。也就是说,即使数据保存在一个地方不搬移,也会因为读取附近的数据而导致其出错。
现有的解决方案是增加ECC(Error Correction Code)可纠错比特数来提升纠错能力。但增加可纠错比特数,纠错电路复杂度呈级数增加,所以可纠错比特数是很有限的。随着Nand-flash存储器工艺尺寸不断缩小,数据保存时间的增加,数据错误的产生会爆发式增长,一旦超出可纠错范围,将无法纠正。能否提高Nand-flash存储器的数据存储能力,将影响Nand-flash存储器能否作为未来工业级存储解决方案的关键。
发明内容
本发明的主要目的是提供一种数据存储方法、设备及计算机可读存储介质,旨在解决现有数据存储的有效存储时间短、易出错的问题。
为实现上述目的,本发明提供一种数据存储方法,所述数据存储方法包括以下步骤:
获取存储器的当前擦除频度,并根据所述当前擦除频度,对存储器的数据搬移阈值进行调整;
根据调整后的数据搬移阈值,对数据块进行搬移。
优选地,所述根据所述当前擦除频度,对存储器的数据搬移阈值进行调整的步骤包括:
根据存储器中预设的擦除频度与数据搬移阈值映射关系参考值,获取与当前擦除频度对应的参考数据搬移阈值;
将数据搬移阈值调整为参考数据搬移阈值。
优选地,所述根据调整后的数据搬移阈值,对数据块进行搬移的步骤包括:
统计存储器中各数据块增加的擦除次数,并判断是否存在目标数据块,其中目标数据块为增加的擦除次数大于或等于调整后的数据搬移阈值的数据块;
当存在所述目标数据块时,对目标数据块进行搬移。
优选地,所述当存在所述目标数据块时,对目标数据块进行搬移的步骤包括:
当存在目标数据块时,获取数据块中擦除次数最少的数据块,并将所述擦除次数最少的数据块作为待交换数据块;
将所述目标数据块和待交换数据块交换,完成数据块的搬移。
优选地,所述获取数据块中擦除次数最少的数据块,并将所述擦除次数最少的数据块作为待交换数据块的步骤包括:
当擦除次数最少的数据块数量有多个时,根据多个所述擦除次数最少的数据块的存储地址确定待交换数据块
优选地,所述获取存储器的当前擦除频度的步骤包括:
获取存储器的总运行时间以及存储器中数据块的总擦除次数;
根据所述总运行时间以及总擦除次数,确定存储器的当前擦除频度。
优选地,所述根据所述总运行时间以及总擦除次数,确定存储器的当前擦除频度的步骤包括:
将总擦除次数与总运行时间的比值作为当前擦除频度。
优选地,所述记录并保存存储器的总运行时间以及存储器中数据块的总擦除次数的步骤包括:
当存储器的运行时间到达预设记录周期时,在原总运行时间的基础上增加预设记录周期,形成新的总运行时间保存;
当接收到擦除命令时,在原总擦除次数的基础上增加预设值,形成新的总擦除次数保存。
此外,为实现上述目的,本发明还提出一种数据存储设备,所述数据存储设备包括:存储器、处理器、通信总线以及存储在所述存储器上的数据存储程序;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行所述数据存储程序,以实现以下步骤:
获取存储器的当前擦除频度,并根据所述当前擦除频度,对存储器的数据搬移阈值进行调整;
根据调整后的数据搬移阈值,对数据块进行搬移。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序可被一个或者一个以上的处理器执行以用于:
获取存储器的当前擦除频度,并根据所述当前擦除频度,对存储器的数据搬移阈值进行调整;
根据调整后的数据搬移阈值,对数据块进行搬移。
本发明提出的数据存储方法,通过获取存储器的当前擦除频度,从而根据当前擦除频度调整存储器的数据搬移阈值,进而根据调整后的数据搬移阈值,对数据块进行搬移。本方案中数据搬移阈值作为存储器中数据块的搬移触发条件,当前擦除频度表征存储器的当前擦除次数。数据块搬移时,需要进行相应的擦除操作,从而通过存储器的当前擦除频度,可获知存储器的实际搬移次数。进而根据当前擦除频度,调整数据搬移阈值,以便对数据块进行搬移操作,在搬移的过程中,对存储单元进行充电,对浮栅电荷进行补充,避免数据丢失,延长存储器中数据的保存时间。
附图说明
图1是本发明的数据存储方法第一实施例的流程示意图;
图2是本发明的数据存储方法第二实施例的流程示意图;
图3是本发明的数据存储方法实施例的数据搬移阈值调整表示意图;
图4是应用本发明的数据存储方法的CF卡一实施例框架示意图;
图5是本发明的数据存储装置第一实施例的功能模块示意图;
图6是本发明的数据存储装置第二实施例的获取模块的细化功能模块示意图;
图7是本发明的数据存储装置第三实施例的获取模块的细化功能模块示意图;
图8是本发明的数据存储装置第四实施例的搬移模块的细化功能模块示意图;
图9是本发明的数据存储装置第五实施例的功能模块示意图;
图10是本发明实施例方法涉及的硬件运行环境的设备结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种数据存储方法,请参照图1,在第一实施例中,本发明提出的数据存储方法包括以下步骤:
步骤S10,获取存储器的当前擦除频度,并根据所述当前擦除频度,对存储器的数据搬移阈值进行调整;
本发明的技术方案主要适用于固态存储器的数据存储,固态存储器通过存储芯片内部晶体管的开关状态来存储数据,没有读写头、不需要转动,主要包括CF卡、SD卡、U盘,其硬件结构包括控制器和Nand-flash存储器,控制器用于实现Nand-flash存储器接口到USB、SD、CF等接口的转换,同时实现ECC纠错、均衡磨损以及坏块管理等功能。Nand-flash存储器是flash存储器的一种,其内部采用非线性宏单元模式,具有容量大、改写速度快等优点,适用于大量数据的存储,广泛应用于嵌入式产品。Nand-flash存储器既可对程序数据进行存储,也可存储产品运行过程中产生的数据,且存储方式为数据块的方式,而不是单个数据的方式,数据块是一组或几组按顺序连续排列在一起的记录,是存储器与输入设备、输出设备或外存储器之间进行传输数据的最小单位。产品上电运行时,相应的存储器被激活运行,对产品运行的数据进行存储。存储器在运行过程中,可对存储的数据进行读写操作,其中写入需要对存储器中存储的原数据进行擦除,再进行新数据的重新写入。本实施例用擦除频度表征存储器在运行时间内的擦写次数,擦除频度越高,储存器在运动的时间内,擦除的次数越多。本实施例获取存储器的当前擦除频度,并根据当前擦除频度,对存储器的数据搬移阈值进行调整。数据搬移阈值用于表示当数据块被写入的次数达到此阈值时,引发的搬移操作,作为数据块搬移的触发条件。当存储器中某一数据块的擦除次数达到此数据搬移阈值,即此数据块被写入的次数达到数据搬移阈值,搬移操作被触发,将此数据块的数据搬移到其他数据块中。从而数据块搬移与否由此数据搬移阈值决定,本实施例可根据获取的当前擦除频度,对数据搬移阈值进行调整。其中获取存储器的当前擦除频度的步骤包括:
步骤S11,获取存储器的总运行时间以及存储器中数据块的总擦除次数;
步骤S12,根据所述总运行时间以及总擦除次数,确定存储器的当前擦除频度。
可理解地,因擦除频度表征存储器在运行时间内的擦写次数,从而可通过获取存储器的总运行时间以及存储器中数据块的总擦除次数来确定存储器的当前擦除频度。总擦除次数可表征存储器中数据块被写入的活跃度,在运行时间内的总擦除次数越多,则数据被写入的活跃度越高。在获取存储器的总运行时间以及数据块的总擦除次数后,根据此总运行时间和总擦除次数,确定存储器的当前擦除频度,具体的确定方式为:
将总擦除次数与总运行时间做相比运算,用比值结果作为当前擦除频度。
当前擦除频度可用于表示存储器在当前总运行时间内的总擦除次数,当前擦除频度越高,则说明在存储器的当前总运行时间内发生擦除操作的擦除次数越多,从而相应的存储器中数据块被写入的写操作的次数越多;反之擦除频度越低,则说明在存储器的当前总运行时间内发生的擦除操作的擦除次数越少,存储器中的数据块被写入的写操作的次数越少。总擦除次数与总运行时间的比值,可表示总运行时间内发生总擦除次数的频度,从而确定存储器的当前擦除频度,进而根据此当前擦除频度,对存储器的数据搬移阈值进行调整。
步骤S20,根据调整后的数据搬移阈值,对数据块进行搬移。
进一步地,在用总运行时间与总擦除次数相比,得到存储器的当前擦除频度,并根据当前擦除频度,对存储器的数据搬移阈值进行调整后,需要根据调整后的数据搬移阈值,对数据块进行搬移。当擦除频度过低,存储器在运行时间内,数据块发生的擦除操作少,即写入操作少,存储器中存储的数据搬移次数少,数据长期不动,随着存储时间的延长,实现存储器存储功能的浮栅电荷会发生泄露,减少的浮栅电荷将导致保存的数据发生错误,使数据的保存时间缩短。而当擦除频度过高,存储器在运行时间内,数据块发生的擦除操作多,数据块搬移过于频繁时,则会影响存储器的使用寿命。从而本实施例,根据调整的数据搬移阈值,对数据块进行搬移,以在实现数据长期存储的同时确保存储器寿命。
本实施例的数据存储方法包括:获取存储器的当前擦除频度,并根据所述当前擦除频度,对存储器的数据搬移阈值进行调整;根据调整后的数据搬移阈值,对数据块进行搬移。本方案中数据搬移阈值作为存储器中数据块的搬移触发条件,当前擦除频度表征存储器的当前擦除次数。数据块搬移时,需要进行相应的擦除操作,从而通过存储器的当前擦除频度,可获知存储器的实际搬移次数。进而根据当前擦除频率,调整数据搬移阈值,以便对数据块进行搬移操作,在搬移的过程中,对存储单元进行充电,对浮栅电荷进行补充,避免数据丢失,延长存储器中数据的保存时间。
进一步的,在本发明数据存储方法的另一实施例中,所述步骤S10根据所述当前擦除频度,对存储器的数据搬移阈值进行调整的步骤包括:
步骤S13,根据存储器中预设的擦除频度与数据搬移阈值映射关系参考值,获取与当前擦除频度对应的参考数据搬移阈值;
步骤S14,将数据搬移阈值调整为参考数据搬移阈值。
进一步地,本实施例的存储器中预先设置有擦除频度与数据搬移阈值的映射关系参考值,不同的擦除频度对应不同的参考数据搬移阈值,此参考数据搬移阈值为经多次试验所得的推荐值。具体的,请参照图3,当擦除频度大于100000时,对应的数据搬移阈值为4000;擦除频度在10000~99999之间时,对应的数据搬移阈值为2000;擦除频度在1000~9999之间时,对应的数据搬移阈值为1000;擦除频度在100~999之间时,对应的数据搬移阈值为100;擦除频度在10~99之间时,对应的数据搬移阈值为10;擦除频度在0~9时,对应的数据搬移阈值为1。其中此擦除频度与数据搬移阈值的对应关系,也可根据实际需要进行设定。如当擦除频度大于100000时,将对应的数据搬移阈值设定为5000,即通过总运行时间与总擦除次数的比值计算得到擦除频度大于100000时,说明存储器的数据写操作很频繁,将数据搬移阈值设定为5000,进行5000次擦除操作时,才进行一次搬移操作,也可以设定为其他数值,当擦除操作的次数和此数值相等时,进行搬移操作。通过不同擦除频度与数据搬移阈值的对应设定,从而避免过少或过多的搬移。本方案在根据存储卡的总运行时间和总擦除次数,确定存储器的当前擦除频度后,根据此擦除频度与数据搬移阈值映射关系,确定当前擦除频度的参考数据搬移阈值,从而将数据搬移阈值调整为参考数据搬移阈值,并根据调整的参考数据搬移阈值,对数据块进行搬移。
在一实施例中,存储器中初始的数据搬移阈值为100,即存储器中某数据块擦除次数为100时,才对此数据块进行搬移。在存储器运行一段时间后,其数据块变更为不需要经常读写,擦除频度低,根据总运行时间和总擦除次数的比值获得的当前擦除频度为10,从而根据擦除频度与数据搬移阈值映射关系可知,参考数据搬移阈值为10,进而将数据搬移阈值由100降低为10。当存储器中某数据块的擦除次数为10次时,就对此数据块进行搬移,从而提高存储器中数据的搬移次数。通过搬移操作,对存储单元进行充电,对浮栅电荷进行补充,避免数据丢失,延长存储器中数据的保存时间。另一方面,在存储器运行一段时间后,存储器的数据块变更为需要经常读写,擦除频度高,根据总运行时间和总擦除次数的比值获得的当前擦除频度为1000,从而根据擦除频度与数据搬移阈值映射关系可知,参考数据搬移阈值为1000,进而将数据搬移阈值由100增加到1000。当存储器中某数据块的擦除次数为1000次时,就对此数据块进行搬移,从而减少存储器中数据的搬移次数。因存储器的使用寿命有限,过于频繁的对数据进行搬移将会影响存储的使用寿命,在数据搬移过于频繁时,通过增加数据搬移阈值,即提高数据搬移的触发条件,减少搬移次数,以延长存储器的使用寿命。
进一步的,在本发明数据存储方法的另一实施例中,所述步骤S20根据调整后的数据搬移阈值,对数据块进行搬移的步骤包括:
步骤S21,统计存储器中各数据块增加的擦除次数,并判断是否存在目标数据块,其中目标数据块为增加的擦除次数大于或等于调整后的数据搬移阈值的数据块;
步骤S22,当存在所述目标数据块时,对目标数据块进行搬移。
在通讯领域,存储器主要用于存储程序数据,程序数据下载到存储器中存储后,很少需要写入改动,很多数据长期存储在同一存储单元。这种长期存储在同一存储单元,很长时间没有搬移的数据成为冷数据,相应的,将经常搬移,活跃度高的数据成为热数据。因数据搬移阈值表示当擦除次数达到此阈值时,引发的搬移操作,从而对存储器中单个数据块增加的擦除次数进行统计,并判断是否存在增加的擦除次数大于或等于调整后的数据搬移阈值的目标数据块,当存在增加的擦除次数大于或等于调整后的数据搬移阈值的目标数据块时,触发数据搬移,将此目标数据块进行搬移。其中搬移的步骤包括:
步骤q1,当存在目标数据块时,获取数据块中擦除次数最少的数据块,并将所述擦除次数最少的数据块作为待交换数据块;
步骤q2,将所述目标数据块和待交换数据块交换,完成数据块的搬移。
进一步地,当检测到存储器中存在增加的擦除次数大于或等于调整后的数据搬移阈值的目标数据块时,对存储器中所有数据块按照擦除次数的多少进行排序,排序规则可以是按照擦除次数从多到少的顺序进行排列,也可以按照擦除次数从少到多的顺序进行排列。因数据块的排列顺序体现的是存储器中各个数据块的擦除次数的多少,当排序规则为数据块擦除次数从多到少,排在前面的数据块的擦除次数多,为热数据;而当排序规则为数据块擦除次数从少到多时,则排在前面的数据块的擦除次数少,为冷数据。在排序完成后,即可获知数据块中擦除次数最多的数据块和擦除次数最少的数据块,并将擦除次数最少的数据块作为待交换数据块。将此待交换数据块中的数据搬移写入到目标数据块上,同时将目标数据块上的数据搬移写入到待交换数据块中,实现目标数据块和待交换数据块互换,实现数据块的搬移。在其他的技术方案中,也可以选择排序中的其他排列顺序的数据块互换,将排在第一位的擦除次数最多的数据块和排在倒数第一位的擦除次数最少的数据块进行互换,或者排在第二位的数据块和排在倒数第二位的数据块进行互换,以实现多种方案的数据块搬移。将热数据块搬移到冷数据块的区域,冷数据块搬移到热数据块的区域,一方面提高了冷数据的搬移次数,延长其保存时间,另一方面减少热数据搬移次数,延长存储器的使用寿命。
可理解地,存储器中数据块的搬移次数可能相同,从而获取数据块中擦除次数最少的数据块,并将所述擦除次数最少的数据块作为待交换数据块的步骤包括:
步骤q3,当擦除次数最少的数据块数量有多个时,根据多个所述擦除次数最少的数据块的存储地址确定待交换数据块;
进一步地,不同数据块的擦除次数可能相同,且此擦除次数在所有数据块的擦除次数中数值最小的数据块可能有多个,即擦除次数最少的数据块数量有多个,对存储器中所有数据块按照擦除次数的多少进行排序时,排在第一或最后的数据块并不是唯一,而是以多个并列的形式存在。此时,需要从多个擦除次数最少的数据块中选取待交换数据块和目标数据块进行交换。具体的,可根据多个擦除次数最少的数据块的存储地址确定待交换数据块。不同数据块的存储地址不相同,当擦除次数最少的数据块数量有多个时,分别获取多个数据块的存储地址,根据存储地址进行读写操作的难以程度,将容易进行读写操作的存储地址中所存储的数据块,确定为待交换数据块。因选取的数据块所在的存储地址读写操作简单,从而简化了目标数据块和待交换数据块的互换。
进一步地,请参照图2,基于本发明数据存储方法的第一实施例,提出本发明数据存储方法的第二实施例,在第二实施例中,所述获取存储器的总运行时间以及存储器中数据块的总擦除次数的步骤之前包括:
步骤S30,当存储器的运行时间到达预设记录周期时,在原总运行时间的基础上增加预设记录周期,形成新的总运行时间保存;
步骤S40,当接收到擦除命令时,在原总擦除次数的基础上增加预设值,形成新的总擦除次数保存。
可理解地,在获取存储器的总运行时间以及总擦除次数之前,需要对存储器的运行时间以及擦除次数进行记录。存储器中设置有运行总时长记录模块和擦除总次数记录模块,以分别对存储器的总运行时间和存储器中数据块的总擦除次数进行记录,并将记录的数据存储在非易失存储器中,非易失存储器为当存储器所在的产品或设备失电时,存储器中的内容任然能够保存,不会丢失。此外存储器还包括阈值调整模块,其定时读出运行总时长记录和擦除总次数记录,并根据运行总时长记录和擦除总时长记录,确定擦除频度。当对运行时间记录时,预先设定记录的预设记录周期,当存储器的运行时间达到预设记录周期时,在原总运行时间的基础上增加预设记录周期,形成新的总运行时间。预设记录周期可以设定为按天记录也可以设定按周或小时等计时周期进行记录。固态存储器中的控制器包括计时器,计时器实现计时。当预设记录周期为按天进行记录时,将计时器的计时换算为以天计数,每当天数增加时,在原总运行时间的基础上增加一天,形成新的总运行时间,保存到Nand-flash存储器中。当固态存储器失电时,存储器不运行,不记录运行时间;当重新上电时,存储器继续运行,从Nand-flash存储器中读出原来记录继续累加。对总擦除次数进行记录时,预先设定记录的预设值,当接收到擦除命令时,在原总擦除次数的基础上增加预设值,形成新的总擦除次数保存。预设值可以按照用户需求设定,通常设定为1,即当固态存储器的控制器对Nand-flash存储器发出一次擦除命令时,擦除总次数记录模块的记录数在原总擦除次数的基础上加1,形成新的总擦除次数。当记录次数增加10次时,将此10此记录保存到Nand-flash存储器中,以避免过于频繁的触发保存操作,其中触发保存的记录增加次数也可以设定为20次或其他数值。同样的,当固态存储器失电时,存储器不能进行擦除操作,不记录擦除次数;当重新上电,并发生擦除操作时,从Nand-flash存储器中读出原来记录继续累加。
在一具体实施例中,请参照图4,固态存储器为CF卡,CF卡由控制器、32mn SLC工艺Nand-flash、连接器构成,其还包括均衡磨损处理模块,其作用是依据数据块的擦除次数和数据搬移阈值,将热数据所在数据块和冷数据所在数据块进行搬移。具体地,当运行总时长记录模块记录的总运行时间为1000天,擦除总次数记录模块记录的总擦除次数为10000次时,阈值调整模块将10000除以1000得到擦除频度为10,根据擦除频度与数据搬移阈值对应关系可知,对应的数据搬移阈值为10,并将此新的数据搬移阈值发送到均衡磨损处理模块,以便均衡磨损处理模块根据此新的数据搬移阈值对数据块进行搬移。当均衡磨损处理模块检测到NAND FLASH中某数据块A擦除次数增加了10次后,则选择一个擦除次数最小的某数据块B与之替换,将数据块B的数据搬移至数据块A,将数据块A的数据搬移至数据块B。因数据搬移阈值为10,即擦除10次,发送一次搬移操作,从而本实施例中擦除总次数记录模块记录的总擦除次数为10000次,其搬移次数为1000次。对比现有技术方案,32nm SLC工艺NANDFLASH的数据搬移阈值通常为4000,擦除总次数10000次,从而数据搬移次数仅为2次。对于一个大小为512KB的数据块,每次搬移的数据量为512KB,那么本实施例在总运行时间1000天里搬移次数为1000次,实际搬移的数据为512MB,也就是512MB冷数据得到了刷新,延长了保存时间。而现有技术方案中,搬移2次的数据量为1MB。进一步地,当CF卡使用场景发生变化,数据的写入量变得频繁,在运行时长为1100天时,记录到擦除总次数为200000次。则阈值调整模块将200000除以1100得到181,根据擦除频度与数据搬移阈值对应关系可知,对应的数据搬移阈值为100,阈值调整模块将新的数据搬移阈值发送均衡磨损处理模块,以便均衡磨损处理模块根据此新的数据搬移阈值对数据块进行搬移,数据搬移阈值由原来的10变为100,从而降低数据搬移次数,防止数据块过度磨损。
此外,本发明还提供一种数据存储装置,参照图5,在第一实施例中,本发明提出的数据存储装置包括:
获取模块10,用于获取存储器的当前擦除频度,并根据所述当前擦除频度,对存储器的数据搬移阈值进行调整;
本发明的技术方案主要适用于固态存储器的数据存储,固态存储器通过存储芯片内部晶体管的开关状态来存储数据,没有读写头、不需要转动,主要包括CF卡、SD卡、U盘,其硬件结构包括控制器和Nand-flash存储器,控制器用于实现Nand-flash存储器接口到USB、SD、CF等接口的转换,同时实现ECC纠错、均衡磨损以及坏块管理等功能。Nand-flash存储器是flash存储器的一种,其内部采用非线性宏单元模式,具有容量大、改写速度快等优点,适用于大量数据的存储,广泛应用于嵌入式产品。Nand-flash存储器既可对程序数据进行存储,也可存储产品运行过程中产生的数据,且存储方式为数据块的方式,而不是单个数据的方式,数据块是一组或几组按顺序连续排列在一起的记录,是存储器与输入设备、输出设备或外存储器之间进行传输数据的最小单位。产品上电运行时,相应的存储器被激活运行,对产品运行的数据进行存储。存储器在运行过程中,可对存储的数据进行读写操作,其中写入需要对存储器中存储的原数据进行擦除,再进行新数据的重新写入。本实施例用擦除频度表征存储器在运行时间内的擦写次数,擦除频度越高,储存器在运动的时间内,擦除的次数越多。本实施例获取模块10获取存储器的当前擦除频度,并根据当前擦除频度,对存储器的数据搬移阈值进行调整。数据搬移阈值用于表示当数据块被写入的次数达到此阈值时,引发的搬移操作,作为数据块搬移的触发条件。当存储器中某一数据块的擦除次数达到此数据搬移阈值,即此数据块被写入的次数达到数据搬移阈值,搬移操作被触发,将此数据块的数据搬移到其他数据块中。从而数据块搬移与否由此数据搬移阈值决定,本实施例可根据获取的当前擦除频度,对数据搬移阈值进行调整。具体地,请参照图6,获取模块10包括:
第一获取单元11,获取存储器的总运行时间以及存储器中数据块的总擦除次数;
确定单元12,根据所述总运行时间以及总擦除次数,确定存储器的当前擦除频度。
可理解地,因擦除频度表征存储器在运行时间内的擦写次数,从而可通过第一获取单元11获取存储器的总运行时间以及存储器中数据块的总擦除次数来确定存储器的当前擦除频度。总擦除次数可表征存储器中数据块被写入的活跃度,在运行时间内的总擦除次数越多,则数据被写入的活跃度越高。在第一获取单元11获取存储器的总运行时间以及数据块的总擦除次数后,确定单元12根据此总运行时间和总擦除次数,确定存储器的当前擦除频度,具体的确定方式为:
将总擦除次数与总运行时间做相比运算,用比值结果作为当前擦除频度。
当前擦除频度可用于表示存储器在当前总运行时间内的总擦除次数,当前擦除频度越高,则说明在存储器的当前总运行时间内发生擦除操作的擦除次数越多,从而相应的存储器中数据块被写入的写操作的次数越多;反之擦除频度越低,则说明在存储器的当前总运行时间内发生的擦除操作的擦除次数越少,存储器中的数据块被写入的写操作的次数越少。总擦除次数与总运行时间的比值,可表示总运行时间内发生总擦除次数的频度,从而确定存储器的当前擦除频度,进而根据此当前擦除频度,对存储器的数据搬移阈值进行调整。
搬移模块20,用于根据调整后的数据搬移阈值,对数据块进行搬移。
进一步地,在用总运行时间与总擦除次数相比,得到存储器的当前擦除频度,并根据当前擦除频度,对存储器的数据搬移阈值进行调整后,需要根据调整后的数据搬移阈值,对数据块进行搬移。当擦除频度过低,存储器在运行时间内,数据块发生的擦除操作少,即写入操作少,存储器中存储的数据搬移次数少,数据长期不动,随着存储时间的延长,实现存储器存储功能的浮栅电荷会发生泄露,减少的浮栅电荷将导致保存的数据发生错误,使数据的保存时间缩短。而当擦除频度过高,存储器在运行时间内,数据块发生的擦除操作多,数据块搬移过于频繁时,则会影响存储器的使用寿命。从而本实施例,根据调整的数据搬移阈值,搬移模块20对数据块进行搬移,以在实现数据长期存储的同时确保存储器寿命。
本实施例的数据存储装置包括:获取模块10,用于获取存储器的当前擦除频度,并根据所述当前擦除频度,对存储器的数据搬移阈值进行调整;搬移模块20,用于根据调整后的数据搬移阈值,对数据块进行搬移。本方案中数据搬移阈值作为存储器中数据块的搬移触发条件,当前擦除频度表征存储器的当前擦除次数。数据块搬移时,需要进行相应的擦除操作,从而通过存储器的当前擦除频度,可获知存储器的实际搬移次数。进而根据当前擦除频率,调整数据搬移阈值,以便对数据块进行搬移操作,在搬移的过程中,对存储单元进行充电,对浮栅电荷进行补充,避免数据丢失,延长存储器中数据的保存时间。
进一步的,参照图7,基于本发明的数据存储装置第一实施例,在本发明数据存储装置的第二实施例中,所述获取模块10包括:
第二获取单元13,用于根据存储器中预设的擦除频度与数据搬移阈值映射关系参考值,获取与当前擦除频度对应的参考数据搬移阈值;
调整单元14,用于将数据搬移阈值调整为参考数据搬移阈值。
进一步地,本实施例的存储器中预先设置有擦除频度与数据搬移阈值的映射关系参考值,不同的擦除频度对应不同的参考数据搬移阈值,此参考数据搬移阈值为经多次试验所得的推荐值。具体的,请参照图3,当擦除频度大于100000时,对应的数据搬移阈值为4000;擦除频度在10000~99999之间时,对应的数据搬移阈值为2000;擦除频度在1000~9999之间时,对应的数据搬移阈值为1000;擦除频度在100~999之间时,对应的数据搬移阈值为100;擦除频度在10~99之间时,对应的数据搬移阈值为10;擦除频度在0~9时,对应的数据搬移阈值为1。其中此擦除频度与数据搬移阈值的对应关系,也可根据实际需要进行设定。如当擦除频度大于100000时,将对应的数据搬移阈值设定为5000,即通过总运行时间与总擦除次数的比值计算得到擦除频度大于100000时,说明存储器的数据写操作很频繁,将数据搬移阈值设定为5000,进行5000次擦除操作时,才进行一次搬移操作,也可以设定为其他数值,当擦除操作的次数和此数值相等时,进行搬移操作。通过不同擦除频度与数据搬移阈值的对应设定,从而避免过少或过多的搬移。本方案在根据存储卡的总运行时间和总擦除次数,确定存储器的当前擦除频度后,根据此擦除频度与数据搬移阈值映射关系,第二获取单元13确定当前擦除频度的参考数据搬移阈值,从而将数据搬移阈值调整为参考数据搬移阈值,并根据调整的参考数据搬移阈值,调整单元14对数据块进行搬移。
在一实施例中,存储器中初始的数据搬移阈值为100,即存储器中某数据块擦除次数为100时,才对此数据块进行搬移。在存储器运行一段时间后,其数据块变更为不需要经常读写,擦除频度低,根据总运行时间和总擦除次数的比值获得的当前擦除频度为10,从而根据擦除频度与数据搬移阈值映射关系可知,参考数据搬移阈值为10,进而将数据搬移阈值由100降低为10。当存储器中某数据块的擦除次数为10次时,就对此数据块进行搬移,从而提高存储器中数据的搬移次数。通过搬移操作,对存储单元进行充电,对浮栅电荷进行补充,避免数据丢失,延长存储器中数据的保存时间。另一方面,在存储器运行一段时间后,存储器的数据块变更为需要经常读写,擦除频度高,根据总运行时间和总擦除次数的比值获得的当前擦除频度为1000,从而根据擦除频度与数据搬移阈值映射关系可知,参考数据搬移阈值为1000,进而将数据搬移阈值由100增加到1000。当存储器中某数据块的擦除次数为1000次时,就对此数据块进行搬移,从而减少存储器中数据的搬移次数。因存储器的使用寿命有限,过于频繁的对数据进行搬移将会影响存储的使用寿命,在数据搬移过于频繁时,通过增加数据搬移阈值,即提高数据搬移的触发条件,减少搬移次数,以延长存储器的使用寿命。
进一步的,参照图8,基于本发明的数据存储装置第二实施例,在本发明数据存储装置的第三实施例中,所述搬移模块20还包括包括:
判断单元21,用于统计存储器中各数据块增加的擦除次数,并判断是否存在目标数据块,其中目标数据块为增加的擦除次数大于或等于调整后的数据搬移阈值的数据块;
搬移单元22,用于当存在所述目标数据块时,对目标数据块进行搬移。
在通讯领域,存储器主要用于存储程序数据,程序数据下载到存储器中存储后,很少需要写入改动,很多数据长期存储在同一存储单元。这种长期存储在同一存储单元,很长时间没有搬移的数据成为冷数据,相应的,将经常搬移,活跃度高的数据成为热数据。因数据搬移阈值表示当擦除次数达到此阈值时,引发的搬移操作,从而对存储器中单个数据块增加的擦除次数进行统计,判断单元21判断是否存在增加的擦除次数大于或等于调整后的数据搬移阈值的目标数据块,当存在增加的擦除次数大于或等于数据搬移阈值的目标数据块时,触发数据搬移,将此目标数据块进行搬移。其中搬移单元22还用于:
当存在目标数据块时,获取数据块中擦除次数最少的数据块,并将所述擦除次数最少的数据块作为待交换数据块;
将所述目标数据块和待交换数据块交换,完成数据块的搬移。
进一步地,当检测到存储器中存在增加的擦除次数大于或等于调整后的数据搬移阈值的目标数据块时,对存储器中所有数据块按照擦除次数的多少进行排序,排序规则可以是按照擦除次数从多到少的顺序进行排列,也可以按照擦除次数从少到多的顺序进行排列。因数据块的排列顺序体现的是存储器中各个数据块的擦除次数的多少,当排序规则为数据块擦除次数从多到少,排在前面的数据块的擦除次数多,为热数据;而当排序规则为数据块擦除次数从少到多时,则排在前面的数据块的擦除次数少,为冷数据。在排序完成后,即可获知数据块中擦除次数最多的数据块和擦除次数最少的数据块,并将擦除次数最少的数据块作为待交换数据块。将此待交换数据块中的数据搬移写入到目标数据块上,同时将目标数据块上的数据搬移写入到待交换数据块中,实现目标数据块和待交换数据块互换,实现数据块的搬移。在其他的技术方案中,也可以选择排序中的其他排列顺序的数据块互换,将排在第一位的擦除次数最多的数据块和排在倒数第一位的擦除次数最少的数据块进行互换,或者排在第二位的数据块和排在倒数第二位的数据块进行互换,以实现多种方案的数据块搬移。将热数据块搬移到冷数据块的区域,冷数据块搬移到热数据块的区域,一方面提高了冷数据的搬移次数,延长其保存时间,另一方面减少热数据搬移次数,延长存储器的使用寿命。
可理解地,存储器中数据块的搬移次数可能相同,从而搬移单元22还用于:
当擦除次数最少的数据块数量有多个时,根据多个所述擦除次数最少的数据块的存储地址确定待交换数据块。
进一步地,不同数据块的擦除次数可能相同,且此擦除次数在所有数据块的擦除次数中数值最小的数据块可能有多个,即擦除次数最少的数据块数量有多个,对存储器中所有数据块按照擦除次数的多少进行排序时,排在第一或最后的数据块并不是唯一,而是以多个并列的形式存在。此时,需要从多个擦除次数最少的数据块中选取待交换数据块和目标数据块进行交换。具体的,可根据多个擦除次数最少的数据块的存储地址确定待交换数据块。不同数据块的存储地址不相同,当擦除次数最少的数据块数量有多个时,分别获取多个数据块的存储地址,根据存储地址进行读写操作的难以程度,将容易进行读写操作的存储地址中所存储的数据块,确定为待交换数据块。因选取的数据块所在的存储地址读写操作简单,从而简化了目标数据块和待交换数据块的互换。
进一步的,参照图9,基于本发明的数据存储装置第三实施例,在本发明数据存储装置的第四实施例中,所述数据存储装置还包括记录模块30:
所述记录模块30用于:
当存储器的运行时间到达预设记录周期时,在原总运行时间的基础上增加预设记录周期,形成新的总运行时间保存;
当接收到擦除命令时,在原总擦除次数的基础上增加预设值,形成新的总擦除次数保存。
可理解地,在获取存储器的总运行时间以及总擦除次数之前,需要对存储器的运行时间以及擦除次数进行记录。存储器中设置有运行总时长记录模块和擦除总次数记录模块,以分别对存储器的总运行时间和存储器中数据块的总擦除次数进行记录,并将记录的数据存储在非易失存储器中,非易失存储器为当存储器所在的产品或设备失电时,存储器中的内容任然能够保存,不会丢失。此外存储器还包括阈值调整模块,其定时读出运行总时长记录和擦除总次数记录,并根据运行总时长记录和擦除总时长记录,确定擦除频度。当对运行时间记录时,预先设定记录的预设记录周期,当存储器的运行时间达到预设记录周期时,在原总运行时间的基础上增加预设记录周期,形成新的总运行时间。预设记录周期可以设定为按天记录也可以设定按周或小时等计时周期进行记录。固态存储器中的控制器包括计时器,计时器实现计时。当预设记录周期为按天进行记录时,将计时器的计时换算为以天计数,每当天数增加时,在原总运行时间的基础上增加一天,形成新的总运行时间,保存到Nand-flash存储器中。当固态存储器失电时,存储器不运行,不记录运行时间;当重新上电时,存储器继续运行,从Nand-flash存储器中读出原来记录继续累加。对总擦除次数进行记录时,预先设定记录的预设值,当接收到擦除命令时,在原总擦除次数的基础上增加预设值,形成新的总擦除次数保存。预设值可以按照用户需求设定,通常设定为1,即当固态存储器的控制器对Nand-flash存储器发出一次擦除命令时,擦除总次数记录模块的记录数在原总擦除次数的基础上加1,形成新的总擦除次数。当记录次数增加10次时,将此10此记录保存到Nand-flash存储器中,以避免过于频繁的触发保存操作,其中触发保存的记录增加次数也可以设定为20次或其他数值。同样的,当固态存储器失电时,存储器不能进行擦除操作,不记录擦除次数;当重新上电,并发生擦除操作时,从Nand-flash存储器中读出原来记录继续累加。
在一具体实施例中,请参照图4,固态存储器为CF卡,CF卡由控制器、32mn SLC工艺Nand-flash、连接器构成,其还包括均衡磨损处理模块,其作用是依据数据块的擦除次数和数据搬移阈值,将热数据所在数据块和冷数据所在数据块进行搬移。具体地,当运行总时长记录模块记录的总运行时间为1000天,擦除总次数记录模块记录的总擦除次数为10000次时,阈值调整模块将10000除以1000得到擦除频度为10,根据擦除频度与数据搬移阈值对应关系可知,对应的数据搬移阈值为10,并将此新的数据搬移阈值发送到均衡磨损处理模块,以便均衡磨损处理模块根据此新的数据搬移阈值对数据块进行搬移。当均衡磨损处理模块检测到NAND FLASH中某数据块A擦除次数增加了10次后,则选择一个擦除次数最小的某数据块B与之替换,将数据块B的数据搬移至数据块A,将数据块A的数据搬移至数据块B。因数据搬移阈值为10,即擦除10次,发送一次搬移操作,从而本实施例中擦除总次数记录模块记录的总擦除次数为10000次,其搬移次数为1000次。对比现有技术方案,32nm SLC工艺NANDFLASH的数据搬移阈值通常为4000,擦除总次数10000次,从而数据搬移次数仅为2次。对于一个大小为512KB的数据块,每次搬移的数据量为512KB,那么本实施例在总运行时间1000天里搬移次数为1000次,实际搬移的数据为512MB,也就是512MB冷数据得到了刷新,延长了保存时间。而现有技术方案中,搬移2次的数据量为1MB。进一步地,当CF卡使用场景发生变化,数据的写入量变得频繁,在运行时长为1100天时,记录到擦除总次数为200000次。则阈值调整模块将200000除以1100得到181,根据擦除频度与数据搬移阈值对应关系可知,对应的数据搬移阈值为100,阈值调整模块将新的数据搬移阈值发送均衡磨损处理模块,以便均衡磨损处理模块根据此新的数据搬移阈值对数据块进行搬移,数据搬移阈值由原来的10变为100,从而降低数据搬移次数,防止数据块过度磨损。
参照图10,图10是本发明实施例方法涉及的硬件运行环境的设备结构示意图。
本发明实施例数据存储设备可以是PC,也可以是智能手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面3)播放器、便携计算机等终端设备。
如图10所示,该数据存储设备可以包括:处理器1001,例如CPU,存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,该数据存储设备还可以包括用户接口、网络接口、摄像头、RF(RadioFrequency,射频)电路,传感器、音频电路、WiFi模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
本领域技术人员可以理解,图10中示出的数据存储设备结构并不构成对数据存储设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图10所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块以及数据存储程序。操作***是管理和控制数据存储设备硬件和软件资源的程序,支持数据存储程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与数据存储设备中其它硬件和软件之间通信。
在图10所示的数据存储设备中,处理器1001用于执行存储器1005中存储的数据存储程序,实现以下步骤:
获取存储器的当前擦除频度,并根据所述当前擦除频度,对存储器的数据搬移阈值进行调整;
根据调整后的数据搬移阈值,对数据块进行搬移。
进一步地,所述根据所述当前擦除频度,对存储器的数据搬移阈值进行调整的步骤包括:
根据存储器中预设的擦除频度与数据搬移阈值映射关系参考值,获取与当前擦除频度对应的参考数据搬移阈值;
将数据搬移阈值调整为参考数据搬移阈值。
进一步地,所述根据调整后的数据搬移阈值,对数据块进行搬移的步骤包括:
统计存储器中各数据块增加的擦除次数,并判断是否存在目标数据块,其中目标数据块为增加的擦除次数大于或等于调整后的数据搬移阈值的数据块;
当存在所述目标数据块时,对目标数据块进行搬移。
进一步地,存在所述目标数据块时,对目标数据块进行搬移的步骤包括:
当存在目标数据块时,获取数据块中擦除次数最少的数据块,并将所述擦除次数最少的数据块作为待交换数据块;
将所述目标数据块和待交换数据块交换,完成数据块的搬移。
进一步地,所述获取数据块中擦除次数最少的数据块,并将所述擦除次数最少的数据块作为待交换数据块的步骤包括:
当擦除次数最少的数据块数量有多个时,根据多个所述擦除次数最少的数据块的存储地址确定待交换数据块。
进一步地,所述获取存储器的当前擦除频度的步骤包括:
获取存储器的总运行时间以及存储器中数据块的总擦除次数;
根据所述总运行时间以及总擦除次数,确定存储器的当前擦除频度。
进一步地,所述根据所述总运行时间以及总擦除次数,确定存储器的当前擦除频度的步骤包括:
将总擦除次数与总运行时间的比值作为当前擦除频度。
进一步地,所述获取存储器的总运行时间以及存储器中数据块的总擦除次数的步骤之前,
处理器1001用于执行存储器1005中存储的数据存储程序,实现以下步骤:
当存储器的运行时间到达预设记录周期时,在原总运行时间的基础上增加预设记录周期,形成新的总运行时间保存;
当接收到擦除命令时,在原总擦除次数的基础上增加预设值,形成新的总擦除次数保存。
本发明数据存储设备具体实施方式与上述数据存储方法各实施例基本相同,在此不再赘述。
本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于:
获取存储器的当前擦除频度,并根据所述当前擦除频度,对存储器的数据搬移阈值进行调整;
根据调整后的数据搬移阈值,对数据块进行搬移。
进一步地,所述根据所述当前擦除频度,对存储器的数据搬移阈值进行调整的步骤包括:
根据存储器中预设的擦除频度与数据搬移阈值映射关系参考值,获取与当前擦除频度对应的参考数据搬移阈值;
将数据搬移阈值调整为参考数据搬移阈值。
进一步地,所述根据调整后的数据搬移阈值,对数据块进行搬移的步骤包括:
统计存储器中各数据块增加的擦除次数,并判断是否存在目标数据块,其中目标数据块为增加的擦除次数大于或等于调整后的数据搬移阈值的数据块;
当存在所述目标数据块时,对目标数据块进行搬移。
进一步地,存在所述目标数据块时,对目标数据块进行搬移的步骤包括:
当存在目标数据块时,获取数据块中擦除次数最少的数据块,并将所述擦除次数最少的数据块作为待交换数据块;
将所述目标数据块和待交换数据块交换,完成数据块的搬移。
进一步地,所述获取数据块中擦除次数最少的数据块,并将所述擦除次数最少的数据块作为待交换数据块的步骤包括:
当擦除次数最少的数据块数量有多个时,根据多个所述擦除次数最少的数据块的存储地址确定待交换数据块。
进一步地,所述获取存储器的当前擦除频度的步骤包括:
获取存储器的总运行时间以及存储器中数据块的总擦除次数;
根据所述总运行时间以及总擦除次数,确定存储器的当前擦除频度。
进一步地,所述根据所述总运行时间以及总擦除次数,确定存储器的当前擦除频度的步骤包括:
将总擦除次数与总运行时间的比值作为当前擦除频度。
进一步地,所述获取存储器的总运行时间以及存储器中数据块的总擦除次数的步骤之前,
所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于:
当存储器的运行时间到达预设记录周期时,在原总运行时间的基础上增加预设记录周期,形成新的总运行时间保存;
当接收到擦除命令时,在原总擦除次数的基础上增加预设值,形成新的总擦除次数保存。
本发明计算机可读存储介质具体实施方式与上述数据存储方法各实施例基本相同,在此不再赘述。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

Claims (10)

1.一种数据存储方法,其特征在于,所述数据存储方法包括以下步骤:
获取存储器的当前擦除频度,并根据所述当前擦除频度,对存储器的数据搬移阈值进行调整;
根据调整后的数据搬移阈值,对数据块进行搬移。
2.如权利要求1所述的数据存储方法,其特征在于,所述根据所述当前擦除频度,对存储器的数据搬移阈值进行调整的步骤包括:
根据存储器中预设的擦除频度与数据搬移阈值映射关系参考值,获取与当前擦除频度对应的参考数据搬移阈值;
将数据搬移阈值调整为参考数据搬移阈值。
3.如权利要求1所述的数据存储方法,其特征在于,所述根据调整后的数据搬移阈值,对数据块进行搬移的步骤包括:
统计存储器中各数据块增加的擦除次数,并判断是否存在目标数据块,其中目标数据块为增加的擦除次数大于或等于调整后的数据搬移阈值的数据块;
当存在所述目标数据块时,对目标数据块进行搬移。
4.如权利要求3所述的数据存储方法,其特征在于,所述当存在所述目标数据块时,对目标数据块进行搬移的步骤包括:
当存在目标数据块时,获取数据块中擦除次数最少的数据块,并将所述擦除次数最少的数据块作为待交换数据块;
将所述目标数据块和待交换数据块交换,完成数据块的搬移。
5.如权利要求4所述的数据存储方法,其特征在于,所述获取数据块中擦除次数最少的数据块,并将所述擦除次数最少的数据块作为待交换数据块的步骤包括:
当擦除次数最少的数据块数量有多个时,根据多个所述擦除次数最少的数据块的存储地址确定待交换数据块。
6.如权利要求1-5任一项所述的数据存储方法,其特征在于,所述获取存储器的当前擦除频度的步骤包括:
获取存储器的总运行时间以及存储器中数据块的总擦除次数;
根据所述总运行时间以及总擦除次数,确定存储器的当前擦除频度。
7.如权利要求6所述的数据存储方法,其特征在于,所述根据所述总运行时间以及总擦除次数,确定存储器的当前擦除频度的步骤包括:
将总擦除次数与总运行时间的比值作为当前擦除频度。
8.如权利要求6所述的数据存储方法,其特征在于,所述获取储存器的总运行时间以及存储器中数据块的总擦除次数的步骤之前包括:
当存储器的运行时间到达预设记录周期时,在原总运行时间的基础上增加预设记录周期,形成新的总运行时间保存;
当接收到擦除命令时,在原总擦除次数的基础上增加预设值,形成新的总擦除次数保存。
9.一种数据存储设备,其特征在于,所述数据存储设备包括:存储器、处理器、通信总线以及存储在所述存储器上的数据存储程序;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行所述数据存储程序,以实现以下步骤:
获取存储器的当前擦除频度,并根据所述当前擦除频度,对存储器的数据搬移阈值进行调整;
根据调整后的数据搬移阈值,对数据块进行搬移。
10.一种计算机可读存储介质,其特征在于,所述计算机课读存储介质上存储有数据存储程序,所述数据存储程序被处理器执行时实现以下步骤:
获取存储器的当前擦除频度,并根据所述当前擦除频度,对存储器的数据搬移阈值进行调整;
根据调整后的数据搬移阈值,对数据块进行搬移。
CN201710497674.0A 2017-06-26 2017-06-26 数据存储方法、设备及计算机可读存储介质 Active CN109119106B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710497674.0A CN109119106B (zh) 2017-06-26 2017-06-26 数据存储方法、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710497674.0A CN109119106B (zh) 2017-06-26 2017-06-26 数据存储方法、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN109119106A true CN109119106A (zh) 2019-01-01
CN109119106B CN109119106B (zh) 2022-08-02

Family

ID=64821802

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710497674.0A Active CN109119106B (zh) 2017-06-26 2017-06-26 数据存储方法、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN109119106B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928852A (zh) * 2019-12-09 2020-03-27 Oppo广东移动通信有限公司 一种垃圾回收方法、装置及计算机可读存储介质
CN110968524A (zh) * 2019-12-09 2020-04-07 Oppo广东移动通信有限公司 数据存储控制方法、装置、存储介质及电子装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101458658A (zh) * 2007-12-13 2009-06-17 中芯国际集成电路制造(上海)有限公司 用于闪存的数据存储方法及装置
CN102637145A (zh) * 2011-02-11 2012-08-15 慧荣科技股份有限公司 用来进行区块管理的方法、记忆装置及其控制器
US20140063949A1 (en) * 2012-09-06 2014-03-06 Kabushiki Kaisha Toshiba Semiconductor memory device
US20150205527A1 (en) * 2012-05-04 2015-07-23 Seagate Technology Llc Zero-one balance management in a solid-state disk controller
CN105808156A (zh) * 2014-12-31 2016-07-27 华为技术有限公司 将数据写入固态硬盘的方法及固态硬盘
CN105867850A (zh) * 2016-03-29 2016-08-17 联想(北京)有限公司 一种信息调整方法及电子设备
CN106547491A (zh) * 2016-11-22 2017-03-29 郑州云海信息技术有限公司 一种固态硬盘中数据搬移的方法及***

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101458658A (zh) * 2007-12-13 2009-06-17 中芯国际集成电路制造(上海)有限公司 用于闪存的数据存储方法及装置
CN102637145A (zh) * 2011-02-11 2012-08-15 慧荣科技股份有限公司 用来进行区块管理的方法、记忆装置及其控制器
US20150205527A1 (en) * 2012-05-04 2015-07-23 Seagate Technology Llc Zero-one balance management in a solid-state disk controller
US20140063949A1 (en) * 2012-09-06 2014-03-06 Kabushiki Kaisha Toshiba Semiconductor memory device
CN105808156A (zh) * 2014-12-31 2016-07-27 华为技术有限公司 将数据写入固态硬盘的方法及固态硬盘
CN105867850A (zh) * 2016-03-29 2016-08-17 联想(北京)有限公司 一种信息调整方法及电子设备
CN106547491A (zh) * 2016-11-22 2017-03-29 郑州云海信息技术有限公司 一种固态硬盘中数据搬移的方法及***

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928852A (zh) * 2019-12-09 2020-03-27 Oppo广东移动通信有限公司 一种垃圾回收方法、装置及计算机可读存储介质
CN110968524A (zh) * 2019-12-09 2020-04-07 Oppo广东移动通信有限公司 数据存储控制方法、装置、存储介质及电子装置
CN110928852B (zh) * 2019-12-09 2022-12-02 Oppo广东移动通信有限公司 一种垃圾回收方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN109119106B (zh) 2022-08-02

Similar Documents

Publication Publication Date Title
US10600491B2 (en) Method for managing data blocks and method of data management for data storage device
US9298608B2 (en) Biasing for wear leveling in storage systems
US9535614B2 (en) Temperature based flash memory system maintenance
CN104216665B (zh) 多层单元固态硬盘的存储管理方法
US9021319B2 (en) Non-volatile memory management system with load leveling and method of operation thereof
TWI591644B (zh) 以保持漂移歷史為基礎之非揮發性記憶體讀取臨限最佳化
US10496297B2 (en) Data categorization based on invalidation velocities
EP2069939B1 (en) End of life recovery and resizing of memory cards
US20080082726A1 (en) Memory Cards with End of Life Recovery and Resizing
US20080082725A1 (en) End of Life Recovery and Resizing of Memory Cards
US20140310445A1 (en) Storage control system with power-off time estimation mechanism and method of operation thereof
CN102918601A (zh) 存储的单元/页/子页/块的损耗均衡
US10628257B2 (en) Memory management method and storage controller
US10884665B2 (en) Data reading method, storage controller and storage device for optimizing read voltages
CN102880556A (zh) 一种实现Nand Flash磨损均衡的方法及其***
CN103514958A (zh) 一种emmc芯片寿命检测方法
CN104346286B (zh) 数据储存装置以及快闪存储器控制方法
KR20170033227A (ko) 전력 관리 메커니즘을 갖는 솔리드 스테이트 메모리 시스템 및 그것의 동작 방법
CN106164873A (zh) 当到达寿命终止条件时约束写入固态存储器的方法和装置
CN109119106A (zh) 数据存储方法、设备及计算机可读存储介质
US10650879B2 (en) Device and method for controlling refresh cycles of non-volatile memories
CN107817943A (zh) 数据传输方法、存储器存储装置及存储器控制电路单元
CN104252417A (zh) 一种Nand存储器及数据存储方法
TWI748410B (zh) 用來針對非揮發性記憶體進行區塊管理的方法以及設備
US20210318821A1 (en) Adjusting trim settings to improve memory performance or reliability

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant