CN112181303A - 数据存储方法、装置、计算机设备和存储介质 - Google Patents

数据存储方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN112181303A
CN112181303A CN202011053271.5A CN202011053271A CN112181303A CN 112181303 A CN112181303 A CN 112181303A CN 202011053271 A CN202011053271 A CN 202011053271A CN 112181303 A CN112181303 A CN 112181303A
Authority
CN
China
Prior art keywords
data
written
storage
memory
target
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
CN202011053271.5A
Other languages
English (en)
Other versions
CN112181303B (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.)
Guangdong Ake Technology Co ltd
Original Assignee
Guangdong Ake Technology Co ltd
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 Guangdong Ake Technology Co ltd filed Critical Guangdong Ake Technology Co ltd
Priority to CN202011053271.5A priority Critical patent/CN112181303B/zh
Publication of CN112181303A publication Critical patent/CN112181303A/zh
Application granted granted Critical
Publication of CN112181303B publication Critical patent/CN112181303B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请涉及一种数据存储方法、装置、计算机设备和存储介质。所述数据存储方法包括:获取当前的待写入数据的存储标识,所述存储标识用于指示所述待写入数据在存储器内存储的位置信息;判断所述位置信息对应的目标存储区域是否存储有所述待写入数据关联的上一写入数据;若所述目标存储区域存储有所述上一写入数据,则获取所述存储器内的目标空闲区域,所述目标空闲区域的存储空间大于所述待写入数据的数据大小;将所述待写入数据存储至所述目标空闲区域,并将所述目标空闲区域的位置信息更新为新的所述存储标识。该数据存储方法能够提高存储器的使用寿命。

Description

数据存储方法、装置、计算机设备和存储介质
技术领域
本申请涉及存储技术领域,特别是涉及一种数据存储方法、装置、计算机设备和存储介质。
背景技术
随着存储技术的发展,出现了越来越多的数据存储方法。
目前,常用的数据存储方法,对于目标数据,在存储器内都预先配置好一个固定的存储区域进行存储。若该目标数据更新时,由于存储器擦除的最小单位是存储区块,则需要将存储区域所在的存储区块进行擦除后,存储更新的目标数据至固定的存储区域中。
然而,目前的数据存储方法,需要频繁地对存储区块进行擦除,导致存储器的使用寿命过短。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高存储器的使用寿命的的数据存储方法、装置、计算机设备和存储介质。
一种数据存储方法,包括:
获取当前的待写入数据的存储标识,所述存储标识用于指示所述待写入数据在存储器内存储的位置信息;
判断所述位置信息对应的目标存储区域是否存储有所述待写入数据关联的上一写入数据;
若所述目标存储区域存储有所述上一写入数据,则获取所述存储器内的目标空闲区域,所述目标空闲区域的存储空间大于所述待写入数据的数据大小;
将所述待写入数据存储至所述目标空闲区域,并将所述目标空闲区域的位置信息更新为新的所述存储标识。
在其中一个实施例中,所述获取所述存储器内的目标空闲区域,包括:
确定所述目标存储区域所在的目标存储区块,并判断所述目标存储区块是否存在候选空闲区域,所述候选空闲区域的存储空间大于所述待写入数据的数据大小;
若所述目标存储区块存在所述候选空闲区域,则将所述候选空闲区域作为所述目标空闲区域;
若所述目标存储区块不存在所述候选空闲区域,则遍历所述存储器的其余存储区块,判断所述其余存储区块是否存在所述候选空闲区域,并将存在的所述候选空闲区域作为所述目标空闲区域。
在其中一个实施例中,所述获取所述存储器内的目标空闲区域,还包括:
若所述其余存储模块中不存在所述候选空闲区域,则将所述存储器中存储空间大于所述待写入数据的数据大小的其中一个存储区块进行擦除;
从擦除后的存储区块中选取空闲区域作为所述目标空闲区域。
在其中一个实施例中,所述将所述存储器中存储空间大于所述待写入数据的数据大小的其中一个存储区块进行擦除,包括:
将在所述目标存储区块之后工作且与所述目标存储区块临近的临近存储区块进行擦除。
在其中一个实施例中,存储区块每擦除一次则记录一次擦除次数,所述将所述存储器中存储空间大于所述待写入数据的数据大小的其中一个存储区块进行擦除,包括:
查找所述存储器中存储空间大于所述待写入数据的数据大小的候选存储区块;
获取每个所述候选存储区块对应的累积擦除次数;
将所述累积擦除次数最小对应的候选存储区块进行擦除。
在其中一个实施例中,所述方法还包括:
判断所述待写入数据和所述上一写入数据是否相同;
若所述待写入数据和所述上一写入数据不相同,则获取所述存储器内的目标空闲区域;
若所述待写入数据和所述上一写入数据相同,则结束存储。
在其中一个实施例中,所述存储器包括第一频率区和第二频率区,所述第一频率区包括的存储区块的数量大于所述第二频率区包括的存储区块的数量,所述方法还包括:
获取所述待写入数据的更新频率;
判断所述更新频率是否大于预设频率;
若所述更新频率大于所述预设频率,则将所述待写入数据存储至所述第一频率区包括的存储区块中;
若所述更新频率不大于所述预设频率,则将所述待写入数据存储至所述第二频率区包括的存储区块中。
一种数据存储装置,包括:
存储标识获取模块,用于获取当前的待写入数据的存储标识,所述存储标识用于指示所述待写入数据在存储器内存储的位置信息;
判断模块,用于判断所述位置信息对应的目标存储区域是否存储有所述待写入数据关联的上一写入数据;
目标空闲区域获取模块,用于若所述目标存储区域存储有所述上一写入数据,则获取所述存储器内的目标空闲区域,所述目标空闲区域的存储空间大于所述待写入数据的数据大小;
存储模块,用于将所述待写入数据存储至所述目标空闲区域,并将所述目标空闲区域的位置信息更新为新的所述存储标识。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
上述数据存储方法、装置、计算机设备和存储介质,数据存储方法包括获取当前的待写入数据对应的目标属性,并查找所述目标属性关联的存储标识,所述存储标识用于指示所述待写入数据在存储器内存储的位置信息;判断所述位置信息对应的目标存储区域是否存储有所述待写入数据关联的上一写入数据;若所述目标存储区域存储有所述上一写入数据,则获取所述存储器内的目标空闲区域,所述目标空闲区域的存储空间大于所述待写入数据的数据大小;将所述待写入数据存储至所述目标空闲区域,并将所述目标空闲区域的位置信息更新为新的所述存储标识,通过在目标存储区域存在上一写入数据时,将待写入数据动态地存储至存储器其他的目标空闲区域中,不需要每次存储都对存储区块进行擦除,则存储器中存储区块的擦除次数减少,实现了提高存储器的使用寿命。
附图说明
为了更清楚地说明本申请实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其余的附图。
图1是一个实施例提供的一种数据存储方法的流程示意图;
图2是一个实施例提供的另一种数据存储方法的流程示意图;
图3是一个实施例提供的另一种数据存储方法的流程示意图;
图4是一个实施例提供的图3中的步骤S360的细化流程图;
图5是一个实施例提供的另一种数据存储方法的流程示意图;
图6是一个实施例提供的另一种数据存储方法的流程示意图;
图7是一个实施例提供的一种数据存储装置的结构示意图。
具体实施方式
为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的实施例。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使本申请的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其余特征、整体、步骤、操作、组件、部分或它们的组合的可能性。同时,在本说明书中使用的术语“和/或”包括相关所列项目的任何及所有组合。
正如背景技术所述,现有技术中的数据存储方法有存储器的使用寿命过短问题,经发明人研究发现,出现这种问题的原因在于,存储器内都预先配置好一个固定的存储区域对某一个数据进行存储,由于存储器擦除的最小单位是存储区块,则当该数据更新时,需要先对该存储区域所在的存储区块擦除,从而将更新的数据存储至存储器中该固定的存储区域。一般的,存储器的擦除次数是有限制的,通常在几万次到几十万次之间,但现有技术的方案每次更新一次数据就需要擦除一次存储区块,尤其是更新频繁的数据,擦除的次数十分频繁,导致存储器的寿命过短。
基于以上原因,本发明提供了一种能够提高存储器的使用寿命的数据存储方法、装置、计算机设备和存储介质。
参考图1,图1是一个实施例提供的一种数据存储方法的流程示意图。在一个实施例中,如图1所示,提供了一种数据存储方法,包括:
步骤S110、获取当前的待写入数据的存储标识,所述存储标识用于指示所述待写入数据在存储器内存储的位置信息。
其中,待写入数据是指准备写入存储器的数据。可选的,待写入数据包括但不限于消费累积信息、消费累积信息对应的用户和消费累积信息对应的产生时间等写入信息,此处不作限制。消费累积信息是指用户在某一个预设项目消费的累积信息。其中,消费累积信息每间隔一个预设时间生成。例如,消费累积信息可以是中央空调的累积计费金额、累积计量信息(累积消费时间或累积消费能量)等;又例如,消费累积信息可以是用水或用电的累积计费金额、累积计量信息(累积消费时间或累积消费容量)等,此处不作限制。
存储标识是指待写入数据在存储器中存储位置的标识,用于指示待写入数据在存储器内进行存储的位置信息。可选的,存储标识可以是根据上一写入数据在存储器内存储的位置信息确定,也可以是在存储器初始化时分配的存储标识。具体的,若该待写入数据是第一次写入,则不存在关联的上一写入数据时,存储标识为存储器在初始化时分配的;若该待写入数据不是第一次写入,则存在关联的上一写入数据时,存储标识根据上一写入数据在存储器内存储的位置信息确定。其中,位置信息是指存储器内期望存储该待写入数据的物理地址或逻辑地址。可选的,待写入数据的存储标识与待写入数据的目标属性关联。其中,目标属性用于表征待写入数据的数据类型或数据来源等,根据待写入数据对应的目标属性可以确定该待写入数据的存储标识。例如,待写入数据的数据类型可以是累积的消费数据或非消费数据。待写入数据的数据来源可以是来源于消费记录仪表(例如中央空调的消费时间记录仪表),此处不作限制。当待写入数据的数据来源是消费记录仪表时,则待写入数据的数据类型为消费数据。
存储器是指用来存储程序和各种数据信息的记忆部件。本实施例的存储器是用于存储待写入数据的记忆部件。可选的,本实施例的存储器可以是RAM(random accessmemory,随机存储器)、ROM(Read-Only Memory,只读存储器)或FLASH(Flash Memory,闪存)。优选的,本实施例的存储器为FLASH闪存。结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据。
步骤S120、判断所述位置信息对应的目标存储区域是否存储有所述待写入数据关联的上一写入数据。
其中,目标存储区域是指与位置信息对应,期望存储该待写入数据的存储区域。上一写入数据是指待写入数据关联的前一数据。具体的,上一写入数据和当前写入数据的数据类型或数据来源相同,但存储的时间节点在当前待写入数据的时间节点之前且相邻。例如,当待写入数据为消费数据时,上一写入数据为上一时刻产生的消费数据。以中央空调的消费数据为例,在用户持续使用中央空调的过程中,累积的消费数据是在不断地更新,则在产生新的消费数据时,该最新产生的消费数据为当前的待写入数据,上一次产生的消费数据为上一写入数据。
具体的,若目标存储区域存储有上一写入数据,则执行步骤S130。若目标存储区域不存在上一写入数据,且目标存储区域为空或未存储有最新的数据时,则执行将待写入数据存储至该目标存储区域中。
步骤S130、获取所述存储器内的目标空闲区域,所述目标空闲区域的存储空间大于所述待写入数据的数据大小。
其中,目标空闲区域是指存储器中,存储空间大于待写入数据的数据大小的空闲区域。在本步骤中,当目标存储区域存储有上一写入数据时,则将待写入数据存储至存储器的目标空闲区域中,避免对存储器的频繁擦除。
具体的,在现有方案中,若目标存储区域存储有上一写入数据时,则将目标存储区域所在的目标存储区块擦除,从而将待写入数据存储在该目标存储区域中,在每次待写入数据更新需要进行存储时,都需要执行一次擦除操作,大大缩短了存储器的使用寿命。而本步骤中当目标存储区域存储有上一写入数据时,将待写入数据存储至其余的目标空闲区域,则不需要每次数据更新时都需要执行一次擦除操作,仅当存储器内设定的部分全部存储有数据时,才需要进行一次擦除操作,大大提高了存储器的使用寿命。此外,由于待写入数据每次存储的位置均不同,则本实施例的方案是在存储器内的一个或多个存储区块动态存储。
步骤S140、将所述待写入数据存储至所述目标空闲区域,并将所述目标空闲区域的位置信息更新为新的所述存储标识。
在本步骤中,将待写入数据存储至目标空闲区域,并将目标空闲区域的位置信息更新为新的存储标识,则存储待写入数据关联的下一写入数据时,则可以重新执行步骤S110,以对下一写入数据进行存储。
需要说明的是,本实施例的数据存储方法适用于数据频繁更新的场景,例如计量消费的场景。在计量消费中,累积的消费数据更新十分频繁,采用本实施例的数据存储方法可以大大提高存储器的使用寿命。
举例来说,企业或个人在使用中央空调时,中央空调的使用时间随着用户的持续使用在不断地更新,则中央空调的消费金额也在不断地更新。在目标时刻产生消费数据时,需要对该消费数据存储至存储器中,以供后续需要时查询最新的消费数据。则根据该消费数据对应的存储标识,确定出存储该消费数据的位置信息对应的目标存储区域,并判断该目标存储区域是否存储有上一时刻的消费数据,若目标存储区域存储有上一时刻的消费数据时,则查找存储器内的目标空闲区域,从而对该消费数据进行存储,并将目标空闲区域的位置信息更新为新的存储标识。
可以理解的是,上述仅仅是一个应用场景的示例,本实施例的数据存储方法不仅适用于中央空调计费,只要是数据频繁更新的场景都可以适用本实施例的数据存储方法,例如用水或用电的场景,本实施例不作具体限制。
本实施例的技术方案,通过在目标存储区域存在上一写入数据时,将待写入数据动态地存储至存储器其他的目标空闲区域中,不需要每次存储都对存储区块进行擦除,则存储器中存储区块的擦除次数减少,实现了提高存储器的使用寿命。
参考图2,图2是一个实施例提供的另一种数据存储方法的流程示意图。在一个实施例中,对于步骤S110、获取存储器内的目标空闲区域进行了进一步细化。如图2所示,提供了另一种数据存储方法,包括:
步骤S210、获取当前的待写入数据的存储标识,所述存储标识用于指示所述待写入数据在存储器内存储的位置信息。
本步骤可以参考上述实施例的描述,本实施例不作赘述。
步骤S220、判断所述位置信息对应的目标存储区域是否存储有所述待写入数据关联的上一写入数据。
本步骤可以参考上述实施例的描述,本实施例不作赘述。具体的,若所述目标存储区域存储有所述上一写入数据,则执行步骤S230。
步骤S230、确定所述目标存储区域所在的目标存储区块,并判断所述目标存储区块是否存在候选空闲区域,所述候选空闲区域的存储空间大于所述待写入数据的数据大小。
其中,目标存储区块是指目标存储区域所在的存储区块。候选空闲区域是指空闲的且存储空间大于待写入数据的数据大小的存储区域。以FLASH为例,FLASH的层级从大到小分别为物理块(block)、页(page),即FLASH包括多个物理块,每个物理块包括多个页。则物理块可以是本实施例的存储区块,页可以是本实施例的存储区域。
在本步骤中,具体的,若所述目标存储区块存在所述候选空闲区域,则执行步骤S240;若所述目标存储区块不存在所述候选空闲区域,则执行步骤S250。
步骤S240、将所述候选空闲区域作为所述目标空闲区域。
在本步骤中,将候选空闲区域作为目标空闲区域对待写入数据进行存储。
步骤S250、遍历所述存储器的其余存储区块,判断所述其余存储区块是否存在所述候选空闲区域,并将存在的所述候选空闲区域作为所述目标空闲区域。
其中,其余存储区块是指存储器中,除目标存储区块之外的存储区块。若其余存储区块存在候选空闲区域,则将存在的候选空闲区域作为目标空闲区域,从而存储待写入数据。遍历存储器的其余存储区块,是指按照其余存储区块的地址依次进行寻址,当寻址到其余存储区块中的一个时,则判断该存储区块中是否存在候选空闲区域,若不存在,则继续寻址到其余存储区块中的下一个,直至其余存储区块均查找完成,并将最先确定存在的候选空闲区域作为目标空闲区域。可选的,存储器中的所有存储区块按顺序循环存储,则遍历其余存储区块的顺序可以是从目标存储区块对应的下一存储区块开始依次寻址,到目标存储区块对应的上一存储区块为一次遍历。
步骤S260、将所述待写入数据存储至所述目标空闲区域,并将所述目标空闲区域的位置信息更新为新的所述存储标识。
本步骤可以参考上述实施例的描述,本实施例不作赘述。
本实施例的技术方案,获取目标空闲区域是先从存储标识对应的目标存储区域所在的目标存储区块开始查找候选空闲区域,提高了查找候选空闲区域的效率,也就提高了数据存储的效率。此外,在目标存储区块不存在候选空闲区域时,从其余存储区块中查找候选空闲区域,充分利用了所有存储区块的存储空间,避免了部分存储区块擦除频繁,进一步提高了存储器的使用寿命。
参考图3,图3是一个实施例提供的另一种数据存储方法的流程示意图。在一个实施例中,对于上述实施例进行了进一步的细化,适用于不存在候选空闲区域的场景。在一个实施例中,如图3所示,提供了另一种数据存储方法,包括:
步骤S310、获取当前的待写入数据的存储标识,所述存储标识用于指示所述待写入数据在存储器内存储的位置信息。
本步骤可以参考上述实施例的描述,本实施例不作赘述。
步骤S320、判断所述位置信息对应的目标存储区域是否存储有所述待写入数据关联的上一写入数据。
本步骤可以参考上述实施例的描述,本实施例不作赘述。具体的,若所述目标存储区域存储有所述上一写入数据,则执行步骤S330。
步骤S330、确定所述目标存储区域所在的目标存储区块,并判断所述目标存储区块是否存在候选空闲区域,所述候选空闲区域的存储空间大于所述待写入数据的数据大小。
在本步骤中,具体的,若所述目标存储区块存在所述候选空闲区域,则执行步骤S340;若所述目标存储区块不存在所述候选空闲区域,则执行步骤S350。
步骤S340、将所述候选空闲区域作为所述目标空闲区域。
在本步骤中,将候选空闲区域作为目标空闲区域对待写入数据进行存储。
步骤S350、遍历所述存储器的其余存储区块,判断所述其余存储区块是否存在所述候选空闲区域,并将存在的所述候选空闲区域作为所述目标空闲区域。
在本步骤中,若其余存储区块中存在候选空闲区域,则执行步骤S380;若其余存储区块中不存在候选空闲区域,则执行步骤S360。
步骤S360、若其余存储区块中不存在候选空闲区域,将所述存储器中存储空间大于所述待写入数据的数据大小的其中一个存储区块进行擦除。
在本步骤中,当其余存储模块不存在候选空闲区域时,则将存储空间大于待写入数据的数据大小的其中一个存储区块擦除,从而给待写入数据提供存储空间。
步骤S370、从擦除后的存储区块中选取空闲区域作为所述目标空闲区域。
在本步骤中,将擦除后的存储区块中的一部分空闲区域作为目标空闲区域,从而对待写入数据进行存储。
步骤S380、将所述待写入数据存储至所述目标空闲区域,并将所述目标空闲区域的位置信息更新为新的所述存储标识。
本步骤可以参考上述实施例的描述,本实施例不作赘述。
需要说明的是,在一个实施例中,也可以在目标存储区块不存在候选空闲区域时,直接将执行步骤S360。
在本实施例中,通过在目标存储区块不存在候选空闲区域时,遍历存储器的其余存储区块已查找候选空闲区域作为目标空闲区域,当其余存储区块也不存在候选空闲区域时才进行存储区块的擦除,相较于在目标存储区块不存在候选空闲区域就直接进行存储区块的擦除,减少了擦除的次数,也进一步提高了存储器的使用寿命。
在一个可能的实施方式中,步骤S360、将所述存储器中存储空间大于所述待写入数据的数据大小的其中一个存储区块进行擦除,包括:
将在所述目标存储区块之后工作且与所述目标存储区块临近的临近存储区块进行擦除。
在本实施方式中,将在目标存储区块之后工作且与目标存储区块临近的临近存储区块进行擦除。可选的,在目标存储区块之后工作与目标存储区块临近可以是目标存储区块对应的下n个存储区块,其中n为大于等于1的自然数。优选的,n=1,即临近存储区块为目标存储区块的下一个存储区块。
在本实施方式中,具体的,存储器内的多个存储区块按顺序循环进行存储。将在所述目标存储区块之后工作且与所述目标存储区块临近的临近存储区块进行擦除,由于存储区块是按顺序循环进行存储的,则临近存储区块存储的数据是比较旧的数据,则擦除也不会有什么影响,从而避免需要的数据丢失。
参考图4,图4是一个实施例提供的图3中的步骤S360的细化流程图。在另一个可能的实施方式中,步骤S360、将所述存储器中存储空间大于所述待写入数据的数据大小的其中一个存储区块进行擦除,包括:
S361、查找所述存储器中存储空间大于所述待写入数据的数据大小的候选存储区块。
其中,候选存储区块是指存储器中,存储空间大于待写入数据的数据大小的存储区块。
S362、获取每个所述候选存储区块对应的累积擦除次数。
其中,累积擦除次数是候选存储区块累积的擦除次数。具体的,存储区块每擦除一次则记录一次擦除次数,则可以根据每个候选存储区块对应的擦除次数累加得到对应的累积擦除次数。
S363、将所述累积擦除次数最小对应的候选存储区块进行擦除。
在本步骤中,将累积擦除次数最小对应的候选存储区块进行擦除,则保证存储器中各个存储区块的擦除次数是接近的,避免某个存储区块的擦除次数过多浪费了存储器的使用寿命,进一步提高了存储器的使用寿命。
在本实施例中,通过获取存储空间大于待写入数据的候选存储模块对应的累积擦除次数,将累积擦除次数最小对应的候选存储区块进行擦除,使得存储器中各个存储区块的擦除次数是接近的,进一步提高了存储器的使用寿命。
参考图5,图5是一个实施例提供的另一种数据存储方法的流程示意图。在一个实施例中,如图5所示,另一种数据存储方法包括:
步骤S510、获取当前的待写入数据的存储标识,所述存储标识用于指示所述待写入数据在存储器内存储的位置信息。
本步骤可以参考上述实施例的描述,本实施例不作赘述。
步骤S520、判断所述位置信息对应的目标存储区域是否存储有所述待写入数据关联的上一写入数据。
本步骤可以参考上述实施例的描述,本实施例不作赘述。具体的,若所述目标存储区域存储有所述上一写入数据,则执行步骤S530。
步骤S530、判断所述待写入数据和所述上一写入数据是否相同。
其中,待写入数据和上一写入数据相同,是指待写入数据和上一写入数据包括的参数值相同。例如,上一写入数据的空调使用时间为10小时,且待写入数据的空调使用时间为10小时,则待写入数据和上一写入数据相同。
在本步骤中,具体的,若所述待写入数据和所述上一写入数据不相同,则执行步骤S540。若所述待写入数据和所述上一写入数据相同,则结束存储。
步骤S540、获取所述存储器内的目标空闲区域,所述目标空闲区域的存储空间大于所述待写入数据的数据大小。
本步骤可以参考上述实施例的描述,本实施例不作赘述。
步骤S550、将所述待写入数据存储至所述目标空闲区域,并将所述目标空闲区域的位置信息更新为新的所述存储标识。
本步骤可以参考上述实施例的描述,本实施例不作赘述。
在本实施例中,通过判断待写入数据和上一写入数据为不相同时才获取所述存储器内的目标空闲区域进行写入,若待写入数据和上一写入数据相同时则不写入,则减少了写入的次数,进一步提高了存储器的使用寿命。
参考图6,图6是一个实施例提供的另一种数据存储方法的流程示意图。在一个实施例中,存储器包括第一频率区和第二频率区,所述第一频率区包括的存储区块的数量大于所述第二频率区包括的存储区块的数量,如图6所示,另一种数据存储方法还包括:
步骤S610、获取所述待写入数据的更新频率。
其中,更新频率是指待写入数据单位时间内的更新次数。
步骤S620、判断所述更新频率是否大于预设频率。
其中,预设频率是指判断待写入数据应该存储至哪个存储区块的评判基准。具体的,若更新频率大于预设频率,则执行步骤S630。若所述更新频率不大于所述预设频率,则执行步骤S640。
步骤S630、将所述待写入数据存储至所述第一频率区包括的存储区块中。
步骤S640、将所述待写入数据存储至所述第二频率区包括的存储区块中。
在本实施例中,存储器预先划分为第一频率区和第二频率区,且第一频率区包括的存储区块的数量大于所述第二频率区包括的存储区块的数量,当更新频率大于预设频率,即更新频率较高时,则将待写入数据存储至存储区块更多的第一频率区中,若所述更新频率不大于所述预设频率,即更新频率较低使,将待写入数据存储至存储区块更少的第二频率区中,由于第一频率区包括的存储区块的数量多,则即使待写入数据的更新频率较高时,也有更多的存储区块进行存储,则存储器整体的擦除次数和写入次数较为平均,避免了个别存储区块写入次数过高的问题,进一步提高了存储器的使用寿命。
应该理解的是,虽然图1-图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-图6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
参考图7,图7是一个实施例提供的一种数据存储装置的结构示意图,在一个实施例中,提供了一种数据存储装置700的结构示意图,包括存储标识获取模块710、判断模块720、目标空闲区域获取模块730和存储模块740。其中:
存储标识获取模块710用于获取当前的待写入数据的存储标识,所述存储标识用于指示所述待写入数据在存储器内存储的位置信息;判断模块720用于判断所述位置信息对应的目标存储区域是否存储有所述待写入数据关联的上一写入数据;目标空闲区域获取模块730用于若所述目标存储区域存储有所述上一写入数据,则获取所述存储器内的目标空闲区域,所述目标空闲区域的存储空间大于所述待写入数据的数据大小;存储模块740用于将所述待写入数据存储至所述目标空闲区域,并将所述目标空闲区域的位置信息更新为新的所述存储标识。
在一个实施例中,目标空闲区域获取模块730包括:目标存储区块确定单元,用于确定所述目标存储区域所在的目标存储区块,并判断所述目标存储区块是否存在候选空闲区域,所述候选空闲区域的存储空间大于所述待写入数据的数据大小;目标空闲区域获取单元,用于若所述目标存储区块存在所述候选空闲区域,则将所述候选空闲区域作为所述目标空闲区域;若所述目标存储区块不存在所述候选空闲区域,则遍历所述存储器的其余存储区块,判断所述其余存储区块是否存在所述候选空闲区域,并将存在的所述候选空闲区域作为所述目标空闲区域。
在一个实施例中,该目标空闲区域获取模块730还包括:擦除单元,用于若所述其余存储模块740中不存在所述候选空闲区域,则将所述存储器中存储空间大于所述待写入数据的数据大小的其中一个存储区块进行擦除;该目标空闲区域获取单元还用于从擦除后的存储区块中选取空闲区域作为所述目标空闲区域。
在一个实施例中,擦除单元具体用于将在所述目标存储区块之后工作且与所述目标存储区块临近的临近存储区块进行擦除。
在一个实施例中,存储区块每擦除一次则记录一次擦除次数,擦除单元包括:候选存储区块查找子单元,用于查找所述存储器中存储空间大于所述待写入数据的数据大小的候选存储区块;累积擦除次数获取子单元,用于获取每个所述候选存储区块对应的累积擦除次数;擦除子单元,用于将所述累积擦除次数最小对应的候选存储区块进行擦除。
在一个实施例中,该判断模块720还用于判断所述待写入数据和所述上一写入数据是否相同;该目标空闲区域获取模块730还用于若所述待写入数据和所述上一写入数据不相同,则获取所述存储器内的目标空闲区域;若所述待写入数据和所述上一写入数据相同,则结束存储。
在一个实施例中,存储器包括第一频率区和第二频率区,所述第一频率区包括的存储区块的数量大于所述第二频率区包括的存储区块的数量,该装置700还包括:更新频率获取模块,用于获取所述待写入数据的更新频率;该判断模块720还用于判断所述更新频率是否大于预设频率;该存储模块740还用于若所述更新频率大于所述预设频率,则将所述待写入数据存储至所述第一频率区包括的存储区块中;若所述更新频率不大于所述预设频率,则将所述待写入数据存储至所述第二频率区包括的存储区块中。
关于数据存储装置的具体限定可以参见上文中对于数据存储方法的限定,在此不再赘述。上述数据存储装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
在本说明书的描述中,参考术语“有些实施例”、“其余实施例”、“理想实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特征包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性描述不一定指的是相同的实施例或示例。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种数据存储方法,其特征在于,包括:
获取当前的待写入数据的存储标识,所述存储标识用于指示所述待写入数据在存储器内存储的位置信息;
判断所述位置信息对应的目标存储区域是否存储有所述待写入数据关联的上一写入数据;
若所述目标存储区域存储有所述上一写入数据,则获取所述存储器内的目标空闲区域,所述目标空闲区域的存储空间大于所述待写入数据的数据大小;
将所述待写入数据存储至所述目标空闲区域,并将所述目标空闲区域的位置信息更新为新的所述存储标识。
2.如权利要求1所述的方法,其特征在于,所述获取所述存储器内的目标空闲区域,包括:
确定所述目标存储区域所在的目标存储区块,并判断所述目标存储区块是否存在候选空闲区域,所述候选空闲区域的存储空间大于所述待写入数据的数据大小;
若所述目标存储区块存在所述候选空闲区域,则将所述候选空闲区域作为所述目标空闲区域;
若所述目标存储区块不存在所述候选空闲区域,则遍历所述存储器的其余存储区块,判断所述其余存储区块是否存在所述候选空闲区域,并将存在的所述候选空闲区域作为所述目标空闲区域。
3.如权利要求2所述的方法,其特征在于,所述获取所述存储器内的目标空闲区域,还包括:
若所述其余存储模块中不存在所述候选空闲区域,则将所述存储器中存储空间大于所述待写入数据的数据大小的其中一个存储区块进行擦除;
从擦除后的存储区块中选取空闲区域作为所述目标空闲区域。
4.如权利要求3所述的方法,其特征在于,所述将所述存储器中存储空间大于所述待写入数据的数据大小的其中一个存储区块进行擦除,包括:
将在所述目标存储区块之后工作且与所述目标存储区块临近的临近存储区块进行擦除。
5.如权利要求3所述的方法,其特征在于,存储区块每擦除一次则记录一次擦除次数,所述将所述存储器中存储空间大于所述待写入数据的数据大小的其中一个存储区块进行擦除,包括:
查找所述存储器中存储空间大于所述待写入数据的数据大小的候选存储区块;
获取每个所述候选存储区块对应的累积擦除次数;
将所述累积擦除次数最小对应的候选存储区块进行擦除。
6.如权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
判断所述待写入数据和所述上一写入数据是否相同;
若所述待写入数据和所述上一写入数据不相同,则获取所述存储器内的目标空闲区域;
若所述待写入数据和所述上一写入数据相同,则结束存储。
7.如权利要求1-5任一项所述的方法,其特征在于,所述存储器包括第一频率区和第二频率区,所述第一频率区包括的存储区块的数量大于所述第二频率区包括的存储区块的数量,所述方法还包括:
获取所述待写入数据的更新频率;
判断所述更新频率是否大于预设频率;
若所述更新频率大于所述预设频率,则将所述待写入数据存储至所述第一频率区包括的存储区块中;
若所述更新频率不大于所述预设频率,则将所述待写入数据存储至所述第二频率区包括的存储区块中。
8.一种数据存储装置,其特征在于,包括:
存储标识获取模块,用于获取当前的待写入数据的存储标识,所述存储标识用于指示所述待写入数据在存储器内存储的位置信息;
判断模块,用于判断所述位置信息对应的目标存储区域是否存储有所述待写入数据关联的上一写入数据;
目标空闲区域获取模块,用于若所述目标存储区域存储有所述上一写入数据,则获取所述存储器内的目标空闲区域,所述目标空闲区域的存储空间大于所述待写入数据的数据大小;
存储模块,用于将所述待写入数据存储至所述目标空闲区域,并将所述目标空闲区域的位置信息更新为新的所述存储标识。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202011053271.5A 2020-09-29 2020-09-29 数据存储方法、装置、计算机设备和存储介质 Active CN112181303B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011053271.5A CN112181303B (zh) 2020-09-29 2020-09-29 数据存储方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011053271.5A CN112181303B (zh) 2020-09-29 2020-09-29 数据存储方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN112181303A true CN112181303A (zh) 2021-01-05
CN112181303B CN112181303B (zh) 2024-08-16

Family

ID=73946681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011053271.5A Active CN112181303B (zh) 2020-09-29 2020-09-29 数据存储方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN112181303B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112947862A (zh) * 2021-03-10 2021-06-11 歌尔科技有限公司 设备、Flash存储器及其数据存储方法
CN113434086A (zh) * 2021-06-25 2021-09-24 南京英锐创电子科技有限公司 数据存储方法、装置、非易失性存储器件和存储器
CN113568579A (zh) * 2021-07-28 2021-10-29 深圳市高川自动化技术有限公司 一种存储器、数据存储方法以及数据读取方法
CN114661249A (zh) * 2022-05-26 2022-06-24 深圳高灯计算机科技有限公司 数据存储方法、装置、计算机设备和存储介质
WO2023179243A1 (zh) * 2022-03-21 2023-09-28 上海美仁半导体有限公司 数据读写方法、系统及介质、设备
CN117668934A (zh) * 2023-11-15 2024-03-08 江苏星期七数字科技有限公司 一种基于大数据的区块链数据存储方法和装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1173363A (ja) * 1997-08-29 1999-03-16 Matsushita Graphic Commun Syst Inc メモリー制御装置
US6839798B1 (en) * 1998-12-14 2005-01-04 Renesas Technology Corp. Flash memory capable of storing frequently rewritten data
CN1815629A (zh) * 2005-11-25 2006-08-09 康佳集团股份有限公司 一种闪存装置的脏块回收方法
JP2007172447A (ja) * 2005-12-26 2007-07-05 Jatco Ltd フラッシュメモリ
JP2009087173A (ja) * 2007-10-02 2009-04-23 Mitsubishi Electric Corp フラッシュメモリ管理装置及びフラッシュメモリ管理方法及びプログラム
CN101419573A (zh) * 2008-12-01 2009-04-29 成都市华为赛门铁克科技有限公司 一种存储管理的方法、系统和存储设备
CN101419838A (zh) * 2008-09-12 2009-04-29 中兴通讯股份有限公司 一种提高flash使用寿命的方法
CN105260133A (zh) * 2015-09-22 2016-01-20 Tcl移动通信科技(宁波)有限公司 一种移动终端emmc的数据写入方法及系统
US20170024137A1 (en) * 2015-07-23 2017-01-26 Kabushiki Kaisha Toshiba Memory system for controlling nonvolatile memory

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1173363A (ja) * 1997-08-29 1999-03-16 Matsushita Graphic Commun Syst Inc メモリー制御装置
US6839798B1 (en) * 1998-12-14 2005-01-04 Renesas Technology Corp. Flash memory capable of storing frequently rewritten data
CN1815629A (zh) * 2005-11-25 2006-08-09 康佳集团股份有限公司 一种闪存装置的脏块回收方法
JP2007172447A (ja) * 2005-12-26 2007-07-05 Jatco Ltd フラッシュメモリ
JP2009087173A (ja) * 2007-10-02 2009-04-23 Mitsubishi Electric Corp フラッシュメモリ管理装置及びフラッシュメモリ管理方法及びプログラム
CN101419838A (zh) * 2008-09-12 2009-04-29 中兴通讯股份有限公司 一种提高flash使用寿命的方法
CN101419573A (zh) * 2008-12-01 2009-04-29 成都市华为赛门铁克科技有限公司 一种存储管理的方法、系统和存储设备
US20170024137A1 (en) * 2015-07-23 2017-01-26 Kabushiki Kaisha Toshiba Memory system for controlling nonvolatile memory
CN105260133A (zh) * 2015-09-22 2016-01-20 Tcl移动通信科技(宁波)有限公司 一种移动终端emmc的数据写入方法及系统

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112947862A (zh) * 2021-03-10 2021-06-11 歌尔科技有限公司 设备、Flash存储器及其数据存储方法
CN113434086A (zh) * 2021-06-25 2021-09-24 南京英锐创电子科技有限公司 数据存储方法、装置、非易失性存储器件和存储器
CN113434086B (zh) * 2021-06-25 2024-02-02 南京英锐创电子科技有限公司 数据存储方法、装置、非易失性存储器件和存储器
CN113568579A (zh) * 2021-07-28 2021-10-29 深圳市高川自动化技术有限公司 一种存储器、数据存储方法以及数据读取方法
CN113568579B (zh) * 2021-07-28 2022-05-03 深圳市高川自动化技术有限公司 一种存储器、数据存储方法以及数据读取方法
WO2023179243A1 (zh) * 2022-03-21 2023-09-28 上海美仁半导体有限公司 数据读写方法、系统及介质、设备
CN114661249A (zh) * 2022-05-26 2022-06-24 深圳高灯计算机科技有限公司 数据存储方法、装置、计算机设备和存储介质
CN114661249B (zh) * 2022-05-26 2022-09-27 深圳高灯计算机科技有限公司 数据存储方法、装置、计算机设备和存储介质
CN117668934A (zh) * 2023-11-15 2024-03-08 江苏星期七数字科技有限公司 一种基于大数据的区块链数据存储方法和装置

Also Published As

Publication number Publication date
CN112181303B (zh) 2024-08-16

Similar Documents

Publication Publication Date Title
CN112181303B (zh) 数据存储方法、装置、计算机设备和存储介质
US10783071B2 (en) Data storage device and operating method thereof, wherein mapping table for valid data of source block that has not been copied to destination block has a higher priority than mapping information collected by reverse scanning from end of the destination block
CN100419714C (zh) 闪存存取方法、闪存文件系统的块替换方法及其管理装置
JP5336060B2 (ja) 不揮発性メモリ装置およびそれを動作させる方法
US6772274B1 (en) Flash memory system and method implementing LBA to PBA correlation within flash memory array
CN101354681B (zh) 存储器系统、非易失性存储器的磨损均衡方法及装置
CN102890656B (zh) 提高flash使用寿命的方法
US20150186261A1 (en) Data storage device and flash memory control method
US9563553B2 (en) Data storing method and embedded system
CN101154190A (zh) 映射信息管理设备和方法
US20010054129A1 (en) Method, system and computer program
US8745312B2 (en) Storage device and method of mapping a nonvolatile memory based on a map history
CN112068772B (zh) 数据存储方法、数据存储装置及存储装置
US7500081B2 (en) Power-up implementation for block-alterable memory with zero-second erase time
CN112965919B (zh) 一种电能表数据分钟冻结方法、存储介质及设备
TWI463311B (zh) 快閃記憶體儲存設備的資料儲存方法和裝置
CN110286848B (zh) 数据处理方法及装置
CN111143238B (zh) 基于eFlash存储芯片的数据擦写方法及系统
CN116301614A (zh) 存储器数据存取方法、系统、设备和存储介质
CN111813708B (zh) 用于存储装置的块映射系统和方法
CN111708487A (zh) 一种数据存储的方法、装置及计算机存储介质
CN110633056A (zh) 在操作系统层面的Flash芯片的页面管理方法及存储设备
CN115309345B (zh) nor flash的擦除方法、装置、设备及介质
CN115309344B (zh) nor flash的全片擦除方法、装置、设备及介质
CN115145489B (zh) 一种基于缓存结构的对象扫描方法

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