CN105512049A - 一种存储器数据回收方法、装置及系统 - Google Patents

一种存储器数据回收方法、装置及系统 Download PDF

Info

Publication number
CN105512049A
CN105512049A CN201510819020.6A CN201510819020A CN105512049A CN 105512049 A CN105512049 A CN 105512049A CN 201510819020 A CN201510819020 A CN 201510819020A CN 105512049 A CN105512049 A CN 105512049A
Authority
CN
China
Prior art keywords
storage unit
data
state parameter
predetermined condition
unit
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
CN201510819020.6A
Other languages
English (en)
Other versions
CN105512049B (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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201510819020.6A priority Critical patent/CN105512049B/zh
Priority to DE102016105833.5A priority patent/DE102016105833A1/de
Priority to US15/087,301 priority patent/US10198209B2/en
Publication of CN105512049A publication Critical patent/CN105512049A/zh
Application granted granted Critical
Publication of CN105512049B publication Critical patent/CN105512049B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/0608Saving storage space on storage systems
    • 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/061Improving I/O performance
    • 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
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种存储器数据回收方法、装置及系统,应用于固态硬盘,通过获取存储器中M个存储单元的第一状态参数,基于第一状态参数确定M个存储单元中的第一存储单元,获取存储单元中与第一存储单元满足第一预定条件的N个存储单元,当满足第二预定条件时,对第一存储单元和N个存储单元中的数据进行处理,其中,M、N为大于1的整数,且N不大于M。本方案通过选取与第一存储单元满足第一预定条件的N个存储单元,实现了对第一存储单元和N个存储单元中数据的处理,实现了对多个存储单元数据的回收,提高了回收效率,降低了存储器数据回收的次数,避免了资源的浪费。

Description

一种存储器数据回收方法、装置及系统
技术领域
本发明涉及控制领域,尤其涉及一种存储器数据回收方法、装置及系统。
背景技术
硬盘通常分为机械硬盘HDD和固态硬盘SSD,机械硬盘即为普通传统硬盘,支持覆盖写入,因此删掉数据只需标记,在被新数据覆盖之前可以很容易找回;而固态硬盘是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成,其不支持覆盖写入,因此要先擦除,即垃圾回收。
数据回收主要是从含有失效数据的块中选择合适的块进行回收操作,其中,块位于内存库Bank中,内存库Bank中有多个块block,每个块block包含多个页page。将其中的有效数据存储至更新块中,对原块中的数据进行擦除,以增加空白块,达到释放可用空间的目的,保持有足够多的空白块用来写入数据。
目前,通常采用的方法是:综合考虑块block的擦、写次数和有效页page的个数,定义损失函数,并将损失函数的最大值作为数据回收块,即数据回收存储单元,但是在数据回收的过程中只能一次选择回收一个块,这就造成了资源的浪费,增加了数据回收的次数,降低了效率。
发明内容
有鉴于此,本发明提供一种存储器数据回收方法、装置及系统,以解决现有技术中一次只能选择回收一个存储单元,造成了资源的浪费,增加了存储器数据回收的次数,降低了效率的问题,其具体方案如下:
一种存储器数据回收方法,包括:
获取所述存储器中M个存储单元的第一状态参数;
基于所述第一状态参数确定所述M个存储单元中的第一存储单元;
获取所述存储单元中与所述第一存储单元满足第一预定条件的N个存储单元;
当满足第二预定条件时,对所述第一存储单元和N个存储单元中的数据进行处理,其中M、N为大于1的整数,且N不大于M。
进一步的,所述获取所述存储单元中与所述第一存储单元满足第一预定条件的N个存储单元,具体为:
获取所述存储单元中与所述第一存储单元满足第一预定条件的N个存储单元的第二状态参数。
进一步的,所述获取所述存储单元中与所述第一存储单元满足第一预定条件的N个存储单元,具体为:
获取所述存储单元中与所述第一存储单元的第二状态参数相差在第一范围内的N个存储单元。
进一步的,当满足第二预定条件时,对所述第一存储单元和N个存储单元中的数据进行处理,具体为:
当所述存储器中的空白存储单元的数量小于第一阈值时,对所述第一存储单元和N个存储单元中的数据进行处理。
进一步的,当满足第二预定条件时,对所述第一存储单元和N个存储单元中的数据进行处理,具体为:
当接收到启动指令时,对所述第一存储单元和N个存储单元中的数据进行处理。
进一步的,所述对所述第一存储单元和N个存储单元中的数据进行处理,具体为:
获取所述第一存储单元和N个存储单元中第二状态参数相同的存储单元;
将所述第二状态参数相同的存储单元中的数据保存至第二存储单元;
将所述第二状态参数相同的存储单元中除第二存储单元外的其他存储单元中的数据进行清除。
一种存储器数据回收装置,包括:存储器,及与所述存储器相连的处理器,
所述存储器中包括M个存储单元;
所述处理器用于获取所述存储器中M个存储单元的第一状态参数,基于所述第一状态参数确定所述M个存储单元中的第一存储单元,并获取所述存储单元中与所述第一存储单元满足第一预定条件的N个存储单元,当满足第二预定条件时,对所述第一存储单元和N个存储单元中的数据进行处理,其中,M、N为大于1的整数,且N不大于M。
进一步的,所述处理器获取所述存储器中与所述第一存储单元满足第一预定条件的N个存储单元,具体为:
所述处理器获取所述存储单元中与所述第一存储单元满足第一预定条件的N个存储单元的第二状态参数。
进一步的,所述处理器获取所述存储器中与所述第一存储单元满足第一预定条件的N个存储单元,具体为:
所述处理器获取所述存储单元中与所述第一存储单元的第二状态参数相差在第一范围内的N个存储单元。
进一步的,所述当满足第二预定条件时,所述处理器对所述第一存储单元和N个存储单元中的数据进行处理,具体为:
当所述存储器中的空白存储单元的数量小于第一阈值时,所述处理器对所述第一存储单元和N个存储单元中的数据进行处理。
进一步的,当满足第二预定条件时,所述处理器对所述第一存储单元和N个存储单元中的数据进行处理,具体为:
当所述处理器接收到启动指令时,对所述第一存储单元和N个存储单元中的数据进行处理。
进一步的,所述处理器对所述第一存储单元和N个存储单元中的数据进行处理,具体为:
所述处理器获取所述第一存储单元和N个存储单元中第二状态参数相同的存储单元;将所述第二状态参数相同的存储单元中的数据保存至第二存储单元;并将所述第二状态参数相同的存储单元中除第二存储单元外的其他存储单元中的数据进行清除。
一种存储器数据回收系统,包括:第一获取单元,与所述第一获取单元相连的确定单元,与所述确定单元相连的第二获取单元,与所述第二获取单元相连的处理单元,其中:
所述第一获取单元用于获取所述存储器中M个存储单元的第一状态参数;
所述确定单元用于基于所述第一状态参数确定所述M个存储单元中的第一存储单元;
所述第二获取单元用于获取所述存储单元中与所述第一存储单元满足第一预定条件的N个存储单元;
所述处理单元用于当满足第二预定条件时,对所述第一存储单元和N个存储单元中的数据进行处理,其中M、N为大于1的整数,且N不大于M。
从上述技术方案可以看出,本申请公开的存储器数据回收方法、装置及系统,应用于固态硬盘,通过获取存储器中M个存储单元的第一状态参数,基于第一状态参数确定M个存储单元中的第一存储单元,获取存储单元中与第一存储单元满足第一预定条件的N个存储单元,当满足第二预定条件时,对第一存储单元和N个存储单元中的数据进行处理,其中,M、N为大于1的整数,且N不大于M。本方案通过选取与第一存储单元满足第一预定条件的N个存储单元,实现了对第一存储单元和N个存储单元中数据的处理,实现了对多个存储单元数据的回收,提高了回收效率,降低了存储器数据回收的次数,避免了资源的浪费。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种存储器数据回收方法的流程图;
图2为本发明实施例公开的一种存储器数据回收方法的流程图;
图3为本发明实施例公开的一种存储器数据回收方法的流程图;
图4为本发明实施例公开的一种存储器数据回收装置的结构示意图;
图5为本发明实施例公开的一种存储器数据回收系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明公开了一种存储器数据回收方法,其流程图如图1所示,包括:
步骤S11、获取存储器中M个存储单元的第一状态参数;
存储器中包括多个存储单元,可以记为M,M为大于1的整数。
步骤S12、基于第一状态参数确定M个存储单元中的第一存储单元;
具体的,第一状态参数可以为损失函数值,根据M个存储单元的损失函数值选取第一存储单元。
其中,存储器中的存储单元可以具体为数据块block,数据块中包括页数据page,其中,数据块为最小的擦写单元,页数据page为最小的写单元。
那么,损失函数cost具体为:
cos t = ( g l p b a l W r i t e - b l o c k W r i t e ) b l o k E r a s e * G l o a b l V a l i d P a g e s B l o c k V a l i d P a g e s ,
其中,globalWriet为在存储器中的写次数,blockWrite为当前的写次数,blockErase为当前的擦次数,GloablValidPages为存储器中的有效页个数,BlockValidPages为当前的有效页个数。
步骤S13、获取存储单元中与第一存储单元满足第一预定条件的N个存储单元;
具体为:获取存储单元中与第一存储单元的第二状态参数相差在第一范围内的N个存储单元;也可以为:获取存储单元中与第一存储单元满足第一预定条件的N个存储单元的第二状态参数。
其中,第二状态参数表示每一个存储单元的hash值。
对每一个存储单元,即数据块中的页数据进行散列hash,得到页数据对应的hash值,进而得到每一个存储单元的hash值,即第二状态参数,从M个存储单元中查找出与第一存储单元的hash值相差在第一范围内的多个存储单元,该多个存储单元可以具体为N个,N为大于1的整数,且N不大于M。
步骤S14、当满足第二预定条件时,对第一存储单元和N个存储单元中的数据进行处理,其中M、N为大于1的整数,且N不大于M。
对第一存储单元和N个存储单元中的数据进行处理,可以具体为:对第一存储单元和N个存储单元中的数据进行数据回收操作。
具体的,可以为:将第一存储单元中的数据分别存储至N个存储单元,进而清除第一存储单元中的数据,使第一存储单元为空存储单元;也可以为:从N个存储单元中选取一个或几个存储单元,并将选取出的存储单元中的数据分别存储至其他存储单元,进而清除选取出的存储单元中的数据,使选取出的存储单元成为空存储单元,便于后续数据的存储。
本实施例公开的存储器数据回收方法,应用于固态硬盘,通过获取存储器中M个存储单元的第一状态参数,基于第一状态参数确定M个存储单元中的第一存储单元,获取存储单元中与第一存储单元满足第一预定条件的N个存储单元,当满足第二预定条件时,对第一存储单元和N个存储单元中的数据进行处理,其中,M、N为大于1的整数,且N不大于M。本方案通过选取与第一存储单元满足第一预定条件的N个存储单元,实现了对第一存储单元和N个存储单元中数据的处理,实现了对多个存储单元数据的回收,提高了回收效率,降低了存储器数据回收的次数,避免了资源的浪费。
本实施例公开了一种存储器数据回收方法,其流程图如图2所示,包括:
步骤S21、获取存储器中M个存储单元的第一状态参数;
存储器中包括多个存储单元,可以记为M,M为大于1的整数。
步骤S22、基于第一状态参数确定M个存储单元中的第一存储单元;
具体的,第一状态参数可以为损失函数值,根据M个存储单元的损失函数值选取第一存储单元。
其中,存储器中的存储单元可以具体为数据块block,数据块中包括页数据page,其中,数据块为最小的擦写单元,页数据page为最小的写单元。
那么,损失函数cost具体为:
cos t = ( g l o b a l W r i t e - b l o c k W r i t e ) b l o c k E r a s e * G l o a b l V a l i d P a g e s B l o c k V a l i d P a g e s ,
其中,globalWriet为在存储器中的写次数,blockWrite为当前的写次数,blockErase为当前的擦次数,GloablValidPages为存储器中的有效页个数,BlockValidPages为当前的有效页个数。
步骤S23、获取存储单元中与第一存储单元满足第一预定条件的N个存储单元;
具体为:获取存储单元中与第一存储单元的第二状态参数相差在第一范围内的N个存储单元;也可以为:获取存储单元中与第一存储单元满足第一预定条件的N个存储单元的第二状态参数。
其中,第二状态参数表示每一个存储单元的hash值。
对每一个存储单元,即数据块中的页数据进行散列hash,得到页数据对应的hash值,进而得到每一个存储单元的hash值,即第二状态参数,从M个存储单元中查找出与第一存储单元的hash值相差在第一范围内的多个存储单元,该多个存储单元可以具体为N个,N为大于1的整数,且N不大于M。
步骤S24、当存储器中的空白存储单元的数量小于第一阈值时,对第一存储单元和N个存储单元中的数据进行处理。
其中M、N为大于1的整数,且N不大于M。
当检测到存储器中能够用于后续存储其他数据的空白存储单元的数量较少时,进行存储单元中数据的回收处理;
进一步的,也可以为:接收到用户发送的启动指令后,根据该启动指令,对存储单元中的数据进行回收处理,使存储器中始终保持有空白存储单元的状态。
对第一存储单元和N个存储单元中的数据进行处理,可以具体为:对第一存储单元和N个存储单元中的数据进行数据回收操作。
具体的,可以为:将第一存储单元中的数据分别存储至N个存储单元,进而清除第一存储单元中的数据,使第一存储单元为空存储单元;也可以为:从N个存储单元中选取一个或几个存储单元,并将选取出的存储单元中的数据分别存储至其他存储单元,进而清除选取出的存储单元中的数据,使选取出的存储单元成为空存储单元,便于后续数据的存储。
本实施例公开的存储器数据回收方法,应用于固态硬盘,通过获取存储器中M个存储单元的第一状态参数,基于第一状态参数确定M个存储单元中的第一存储单元,获取存储单元中与第一存储单元满足第一预定条件的N个存储单元,当满足第二预定条件时,对第一存储单元和N个存储单元中的数据进行处理,其中,M、N为大于1的整数,且N不大于M。本方案通过选取与第一存储单元满足第一预定条件的N个存储单元,实现了对第一存储单元和N个存储单元中数据的处理,实现了对多个存储单元数据的回收,提高了回收效率,降低了存储器数据回收的次数,避免了资源的浪费。
本实施例公开了一种存储器数据回收方法,其流程图如图3所示,包括:
步骤S31、获取存储器中M个存储单元的第一状态参数;
存储器中包括多个存储单元,可以记为M,M为大于1的整数。
步骤S32、基于第一状态参数确定M个存储单元中的第一存储单元;
具体的,第一状态参数可以为损失函数值,根据M个存储单元的损失函数值选取第一存储单元。
其中,存储器中的存储单元可以具体为数据块block,数据块中包括页数据page,其中,数据块为最小的擦写单元,页数据page为最小的写单元。
步骤S33、获取存储单元中与第一存储单元满足第一预定条件的N个存储单元;
具体为:获取存储单元中与第一存储单元的第二状态参数相差在第一范围内的N个存储单元;
也可以为:获取存储单元中与第一存储单元满足第一预定条件的N个存储单元的第二状态参数,其中,第一预定条件可以为:与第一存储单元的第二状态参数相差在第一范围内。
步骤S34、获取第一存储单元和N个存储单元中第二状态参数相同的存储单元;
其中M、N为大于1的整数,且N不大于M。
当检测到存储器中能够用于后续存储其他数据的空白存储单元的数量较少时,进行存储单元中数据的回收处理。
上述步骤中获取的N个存储单元只是与第一存储单元的第二状态参数相差在第一范围内,即N个存储单元及第一存储单元的第二状态参数是相近的,也有相同的,查找出这N+1个存储单元中第二状态参数相同的存储单元。
第二状态参数相同的存储单元可以为:第三存储单元、第四存储单元及第五存储单元;也可以为:第一存储单元、第四存储单元、第五存储单元及第六存储单元。
这N+1个存储单元中第二状态参数相同的存储单元中,可以有一组,即只有第三存储单元与第四存储单元的第二状态参数相同,或者只有第一存储单元、第四存储单元及第五存储单元的第二状态参数相同;也可以有两组,即:第三存储单元与第四存储单元的第二状态参数相同,另外,第一存储单元、第四存储单元及第五存储单元的第二状态参数也相同,但是这两组的第二状态参数的具体值是不同的,在此不做具体限定。
步骤S35、将第二状态参数相同的存储单元中的数据保存至第二存储单元;
若只有一组第二状态参数相同的存储单元,如:第一存储单元、第四存储单元及第五存储单元的第二状态参数相同,那么,可以将第一存储单元及第四存储单元中的数据全部保存至第五存储单元,也可以将第一存储单元及第五存储单元的数据全部保存至第四存储单元,也可以将第一存储单元、第四存储单元及第五存储单元中的数据全部保存至一个空白存储单元中,将保存该数据的存储单元定义为第二存储单元。
若有两组甚至多组第二状态参数相同的存储单元,那么分别按照上述方式将第二状态参数相同的存储单元中的数据保存至一个存储单元中。
进一步的,在将第一存储单元、第四存储单元及第五存储单元中的数据全部保存至一个空白存储单元中,或者将第一存储单元及第五存储单元的数据全部保存至第四存储单元中时,需要更新映射表,即将数据从第一存储单元保存至第四存储单元这个数据转移过程需要在映射表中体现,以便于对数据的查找。
步骤S36、将第二状态参数相同的存储单元中除第二存储单元外的其他存储单元中的数据进行清除。
若第二状态参数相同的存储单元为:第一存储单元、第四存储单元及第五存储单元,并且,将第一存储单元及第四存储单元中的数据全部保存至第五存储单元,那么,将第一存储单元及第四存储单元中的数据全部删除,使第一存储单元及第四存储单元成为新的空白存储单元;若将第一存储单元、第四存储单元及第五存储单元中的数据全部保存至一个空白存储单元中,则将第一存储单元、第四存储单元及第五存储单元中的数据全部删除,使第一存储单元、第四存储单元及第五存储单元成为全新的空白存储单元。
若有多组第二状态参数相同的存储单元,经过上述步骤,就可以得到多个空白存储单元。
本实施例公开的存储器数据回收方法,应用于固态硬盘,通过获取存储器中M个存储单元的第一状态参数,基于第一状态参数确定M个存储单元中的第一存储单元,获取存储单元中与第一存储单元满足第一预定条件的N个存储单元,当满足第二预定条件时,对第一存储单元和N个存储单元中的数据进行处理,其中,M、N为大于1的整数,且N不大于M。本方案通过选取与第一存储单元满足第一预定条件的N个存储单元,实现了对第一存储单元和N个存储单元中数据的处理,实现了对多个存储单元数据的回收,提高了回收效率,降低了存储器数据回收的次数,避免了资源的浪费。
本实施例公开了一种存储器数据回收装置,其结构示意图如图4所示,包括:存储器41,及与存储器41相连的处理器42。
其中,存储器41中包括M个存储单元。
处理器42用于获取存储器41中M个存储单元的第一状态参数,基于第一状态参数确定M个存储单元中的第一存储单元,并获取存储单元中与第一存储单元满足第一预定条件的N个存储单元,当满足第二预定条件时,对第一存储单元和N个存储单元中的数据进行处理,其中:M、N为大于1的整数,且N不大于M。
第一状态参数可以为损失函数值,根据M个存储单元的损失函数值选取第一存储单元。
其中,存储器中的存储单元可以具体为数据块block,数据块中包括页数据page,其中,数据块为最小的擦写单元,页数据page为最小的写单元。
那么,损失函数cost具体为:
cos t = ( g l o b a l W r i t e - b l o c k W r i t e ) b l o c k E r a s e * G l o a b l V a l i d P a g e s B l o c k V a l i d P a g e s ,
其中,globalWriet为在存储器中的写次数,blockWrite为当前的写次数,blockErase为当前的擦次数,GloablValidPages为存储器中的有效页个数,BlockValidPages为当前的有效页个数。
处理器42获取存储单元中与第一存储单元满足第一预定条件的N个存储单元,具体为:获取存储单元中与第一存储单元的第二状态参数相差在第一范围内的N个存储单元;也可以为:获取存储单元中与第一存储单元满足第一预定条件的N个存储单元的第二状态参数。
其中,第二状态参数表示每一个存储单元的hash值。
对每一个存储单元,即数据块中的页数据进行散列hash,得到页数据对应的hash值,进而得到每一个存储单元的hash值,即第二状态参数,从M个存储单元中查找出与第一存储单元的hash值相差在第一范围内的多个存储单元,该多个存储单元可以具体为N个,N为大于1的整数,且N不大于M。
当满足第二预定条件时,处理器42对第一存储单元和N个存储单元中的数据进行处理,可以具体为:当存储器中的空白存储单元的数量小于第一阈值时,处理器对第一存储单元和N个存储单元中的数据进行数据回收操作;也可以为:当处理器接收到启动指令时,对所述第一存储单元和N个存储单元中的数据进行处理。
具体的,可以为:将第一存储单元中的数据分别存储至N个存储单元,进而清除第一存储单元中的数据,使第一存储单元为空存储单元;也可以为:从N个存储单元中选取一个或几个存储单元,并将选取出的存储单元中的数据分别存储至其他存储单元,进而清除选取出的存储单元中的数据,使选取出的存储单元成为空存储单元,便于后续数据的存储。
具体的,可以为:将第一存储单元中的数据分别存储至N个存储单元,进而清除第一存储单元中的数据,使第一存储单元为空存储单元;也可以为:从N个存储单元中选取一个或几个存储单元,并将选取出的存储单元中的数据分别存储至其他存储单元,进而清除选取出的存储单元中的数据,使选取出的存储单元成为空存储单元,便于后续数据的存储。
处理器42获取第一存储单元和N个存储单元中第二状态参数相同的存储单元;将第二状态参数相同的存储单元中的数据保存至第二存储单元;并将第二状态参数相同的存储单元中除第二存储单元外的其他存储单元中的数据进行清除。
其中,处理器获取的N个存储单元只是与第一存储单元的第二状态参数相差在第一范围内,即N个存储单元及第一存储单元的第二状态参数是相近的,也有相同的,查找出这N+1个存储单元中第二状态参数相同的存储单元。
第二状态参数相同的存储单元可以为:第三存储单元、第四存储单元及第五存储单元;也可以为:第一存储单元、第四存储单元、第五存储单元及第六存储单元。
这N+1个存储单元中第二状态参数相同的存储单元中,可以有一组,即只有第三存储单元与第四存储单元的第二状态参数相同,或者只有第一存储单元、第四存储单元及第五存储单元的第二状态参数相同;也可以有两组,即:第三存储单元与第四存储单元的第二状态参数相同,另外,第一存储单元、第四存储单元及第五存储单元的第二状态参数也相同,但是这两组的第二状态参数的具体值是不同的,在此不做具体限定。
若只有一组第二状态参数相同的存储单元,如:第一存储单元、第四存储单元及第五存储单元的第二状态参数相同,那么,可以将第一存储单元及第四存储单元中的数据全部保存至第五存储单元,也可以将第一存储单元及第五存储单元的数据全部保存至第四存储单元,也可以将第一存储单元、第四存储单元及第五存储单元中的数据全部保存至一个空白存储单元中,将保存该数据的存储单元定义为第二存储单元。
若有两组甚至多组第二状态参数相同的存储单元,那么分别按照上述方式将第二状态参数相同的存储单元中的数据保存至一个存储单元中。
进一步的,在将第一存储单元、第四存储单元及第五存储单元中的数据全部保存至一个空白存储单元中,或者将第一存储单元及第五存储单元的数据全部保存至第四存储单元中时,需要更新映射表,即将数据从第一存储单元保存至第四存储单元这个数据转移过程需要在映射表中体现,以便于对数据的查找。
若第二状态参数相同的存储单元为:第一存储单元、第四存储单元及第五存储单元,并且,将第一存储单元及第四存储单元中的数据全部保存至第五存储单元,那么,将第一存储单元及第四存储单元中的数据全部删除,使第一存储单元及第四存储单元成为新的空白存储单元;若将第一存储单元、第四存储单元及第五存储单元中的数据全部保存至一个空白存储单元中,则将第一存储单元、第四存储单元及第五存储单元中的数据全部删除,使第一存储单元、第四存储单元及第五存储单元成为全新的空白存储单元。
若有多组第二状态参数相同的存储单元,经过上述步骤,就可以得到多个空白存储单元。
本实施例公开的存储器数据回收装置,应用于固态硬盘,处理器通过获取存储器中M个存储单元的第一状态参数,基于第一状态参数确定M个存储单元中的第一存储单元,获取存储单元中与第一存储单元满足第一预定条件的N个存储单元,当满足第二预定条件时,对第一存储单元和N个存储单元中的数据进行处理,其中,M、N为大于1的整数,且N不大于M。本方案通过选取与第一存储单元满足第一预定条件的N个存储单元,实现了对第一存储单元和N个存储单元中数据的处理,实现了对多个存储单元数据的回收,提高了回收效率,降低了存储器数据回收的次数,避免了资源的浪费。
本实施例公开了一种存储器数据回收系统,其结构示意图如图5所示,包括:
第一获取单元51,与第一获取单元51相连的确定单元52,与确定单元52相连的第二获取单元53,与第二获取单元53相连的处理单元54。
其中,第一获取单元51用于获取存储器中M个存储单元的第一状态参数。
存储器中包括多个存储单元,可以记为M,M为大于1的整数。
确定单元52用于基于第一状态参数确定M个存储单元中的第一存储单元。
具体的,第一状态参数可以为损失函数值,根据M个存储单元的损失函数值选取第一存储单元。
其中,存储器中的存储单元可以具体为数据块block,数据块中包括页数据page,其中,数据块为最小的擦写单元,页数据page为最小的写单元。
那么,损失函数cost具体为:
cos t = ( g l o b a l W r i t e - b l o c k W r i t e ) b l o c k E r a s e * G l o a b l V a l i d P a g e s B l o c k V a l i d P a g e s ,
其中,globalWriet为在存储器中的写次数,blockWrite为当前的写次数,blockErase为当前的擦次数,GloablValidPages为存储器中的有效页个数,BlockValidPages为当前的有效页个数。
第二获取单元53用于获取存储单元中与第一存储单元满足第一预定条件的N个存储单元。
具体为:获取存储单元中与第一存储单元的第二状态参数相差在第一范围内的N个存储单元;也可以为:获取存储单元中与第一存储单元满足第一预定条件的N个存储单元的第二状态参数。
其中,第二状态参数表示每一个存储单元的hash值。
对每一个存储单元,即数据块中的页数据进行散列hash,得到页数据对应的hash值,进而得到每一个存储单元的hash值,即第二状态参数,从M个存储单元中查找出与第一存储单元的hash值相差在第一范围内的多个存储单元,该多个存储单元可以具体为N个,N为大于1的整数,且N不大于M。
处理单元54用于当满足第二预定条件时,对第一存储单元和N个存储单元中的数据进行处理,其中,M、N为大于1的整数,且N不大于M。
对第一存储单元和N个存储单元中的数据进行处理,可以具体为:对第一存储单元和N个存储单元中的数据进行数据回收操作。
具体的,可以为:将第一存储单元中的数据分别存储至N个存储单元,进而清除第一存储单元中的数据,使第一存储单元为空存储单元;也可以为:从N个存储单元中选取一个或几个存储单元,并将选取出的存储单元中的数据分别存储至其他存储单元,进而清除选取出的存储单元中的数据,使选取出的存储单元成为空存储单元,便于后续数据的存储。
本实施例公开的存储器数据回收系统,应用于固态硬盘,通过第一获取单元获取存储器中M个存储单元的第一状态参数,确定单元基于第一状态参数确定M个存储单元中的第一存储单元,第二获取单元获取存储单元中与第一存储单元满足第一预定条件的N个存储单元,当满足第二预定条件时,处理单元对第一存储单元和N个存储单元中的数据进行处理,其中,M、N为大于1的整数,且N不大于M。本方案通过选取与第一存储单元满足第一预定条件的N个存储单元,实现了对第一存储单元和N个存储单元中数据的处理,实现了对多个存储单元数据的回收,提高了回收效率,降低了存储器数据回收的次数,避免了资源的浪费。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (13)

1.一种存储器数据回收方法,其特征在于,包括:
获取所述存储器中M个存储单元的第一状态参数;
基于所述第一状态参数确定所述M个存储单元中的第一存储单元;
获取所述存储单元中与所述第一存储单元满足第一预定条件的N个存储单元;
当满足第二预定条件时,对所述第一存储单元和N个存储单元中的数据进行处理,其中M、N为大于1的整数,且N不大于M。
2.根据权利要求1所述的方法,其特征在于,所述获取所述存储单元中与所述第一存储单元满足第一预定条件的N个存储单元,具体为:
获取所述存储单元中与所述第一存储单元满足第一预定条件的N个存储单元的第二状态参数。
3.根据权利要求1所述的方法,其特征在于,所述获取所述存储单元中与所述第一存储单元满足第一预定条件的N个存储单元,具体为:
获取所述存储单元中与所述第一存储单元的第二状态参数相差在第一范围内的N个存储单元。
4.根据权利要求1所述的方法,其特征在于,当满足第二预定条件时,对所述第一存储单元和N个存储单元中的数据进行处理,具体为:
当所述存储器中的空白存储单元的数量小于第一阈值时,对所述第一存储单元和N个存储单元中的数据进行处理。
5.根据权利要求1所述的方法,其特征在于,当满足第二预定条件时,对所述第一存储单元和N个存储单元中的数据进行处理,具体为:
当接收到启动指令时,对所述第一存储单元和N个存储单元中的数据进行处理。
6.根据权利要求2或3中任意一项所述的方法,其特征在于,所述对所述第一存储单元和N个存储单元中的数据进行处理,具体为:
获取所述第一存储单元和N个存储单元中第二状态参数相同的存储单元;
将所述第二状态参数相同的存储单元中的数据保存至第二存储单元;
将所述第二状态参数相同的存储单元中除第二存储单元外的其他存储单元中的数据进行清除。
7.一种存储器数据回收装置,其特征在于,包括:存储器,及与所述存储器相连的处理器,
所述存储器中包括M个存储单元;
所述处理器用于获取所述存储器中M个存储单元的第一状态参数,基于所述第一状态参数确定所述M个存储单元中的第一存储单元,并获取所述存储单元中与所述第一存储单元满足第一预定条件的N个存储单元,当满足第二预定条件时,对所述第一存储单元和N个存储单元中的数据进行处理,其中,M、N为大于1的整数,且N不大于M。
8.根据权利要求7所述的装置,其特征在于,所述处理器获取所述存储器中与所述第一存储单元满足第一预定条件的N个存储单元,具体为:
所述处理器获取所述存储单元中与所述第一存储单元满足第一预定条件的N个存储单元的第二状态参数。
9.根据权利要求7所述的装置,其特征在于,所述处理器获取所述存储器中与所述第一存储单元满足第一预定条件的N个存储单元,具体为:
所述处理器获取所述存储单元中与所述第一存储单元的第二状态参数相差在第一范围内的N个存储单元。
10.根据权利要求7所述的装置,其特征在于,所述当满足第二预定条件时,所述处理器对所述第一存储单元和N个存储单元中的数据进行处理,具体为:
当所述存储器中的空白存储单元的数量小于第一阈值时,所述处理器对所述第一存储单元和N个存储单元中的数据进行处理。
11.根据权利要求7所述的装置,其特征在于,当满足第二预定条件时,所述处理器对所述第一存储单元和N个存储单元中的数据进行处理,具体为:
当所述处理器接收到启动指令时,对所述第一存储单元和N个存储单元中的数据进行处理。
12.根据权利要求8或9中任意一项所述的装置,其特征在于,所述处理器对所述第一存储单元和N个存储单元中的数据进行处理,具体为:
所述处理器获取所述第一存储单元和N个存储单元中第二状态参数相同的存储单元;将所述第二状态参数相同的存储单元中的数据保存至第二存储单元;并将所述第二状态参数相同的存储单元中除第二存储单元外的其他存储单元中的数据进行清除。
13.一种存储器数据回收系统,其特征在于,包括:第一获取单元,与所述第一获取单元相连的确定单元,与所述确定单元相连的第二获取单元,与所述第二获取单元相连的处理单元,其中:
所述第一获取单元用于获取所述存储器中M个存储单元的第一状态参数;
所述确定单元用于基于所述第一状态参数确定所述M个存储单元中的第一存储单元;
所述第二获取单元用于获取所述存储单元中与所述第一存储单元满足第一预定条件的N个存储单元;
所述处理单元用于当满足第二预定条件时,对所述第一存储单元和N个存储单元中的数据进行处理,其中M、N为大于1的整数,且N不大于M。
CN201510819020.6A 2015-11-23 2015-11-23 一种存储器数据回收方法、装置及系统 Active CN105512049B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201510819020.6A CN105512049B (zh) 2015-11-23 2015-11-23 一种存储器数据回收方法、装置及系统
DE102016105833.5A DE102016105833A1 (de) 2015-11-23 2016-03-30 Speicherwiederherstellung
US15/087,301 US10198209B2 (en) 2015-11-23 2016-03-31 Memory storage recycling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510819020.6A CN105512049B (zh) 2015-11-23 2015-11-23 一种存储器数据回收方法、装置及系统

Publications (2)

Publication Number Publication Date
CN105512049A true CN105512049A (zh) 2016-04-20
CN105512049B CN105512049B (zh) 2019-04-23

Family

ID=55720050

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510819020.6A Active CN105512049B (zh) 2015-11-23 2015-11-23 一种存储器数据回收方法、装置及系统

Country Status (3)

Country Link
US (1) US10198209B2 (zh)
CN (1) CN105512049B (zh)
DE (1) DE102016105833A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108121A (zh) * 2016-11-25 2018-06-01 三星电子株式会社 存储器控制器和控制其操作的方法
WO2023179569A1 (zh) * 2022-03-25 2023-09-28 中移(苏州)软件技术有限公司 一种数据回收方法、系统、装置、计算机可读存储介质及程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1815629A (zh) * 2005-11-25 2006-08-09 康佳集团股份有限公司 一种闪存装置的脏块回收方法
CN102147767A (zh) * 2011-04-26 2011-08-10 记忆科技(深圳)有限公司 固态硬盘垃圾收集参数动态调整方法及其系统
US20110219168A1 (en) * 2010-03-03 2011-09-08 Morphism Llc Flash Memory Hash Table
CN102841849A (zh) * 2011-05-19 2012-12-26 国际商业机器公司 用于操作计算机化存储器的方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1815629A (zh) * 2005-11-25 2006-08-09 康佳集团股份有限公司 一种闪存装置的脏块回收方法
US20110219168A1 (en) * 2010-03-03 2011-09-08 Morphism Llc Flash Memory Hash Table
CN102147767A (zh) * 2011-04-26 2011-08-10 记忆科技(深圳)有限公司 固态硬盘垃圾收集参数动态调整方法及其系统
CN102841849A (zh) * 2011-05-19 2012-12-26 国际商业机器公司 用于操作计算机化存储器的方法和系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108121A (zh) * 2016-11-25 2018-06-01 三星电子株式会社 存储器控制器和控制其操作的方法
CN108108121B (zh) * 2016-11-25 2022-02-25 三星电子株式会社 存储器控制器和控制其操作的方法
WO2023179569A1 (zh) * 2022-03-25 2023-09-28 中移(苏州)软件技术有限公司 一种数据回收方法、系统、装置、计算机可读存储介质及程序产品

Also Published As

Publication number Publication date
US20170147256A1 (en) 2017-05-25
DE102016105833A1 (de) 2017-05-24
CN105512049B (zh) 2019-04-23
US10198209B2 (en) 2019-02-05

Similar Documents

Publication Publication Date Title
CN103902465B (zh) 一种固态硬盘垃圾回收的方法、系统和固态硬盘控制器
CN103049390B (zh) 应用元数据的数据处理方法及存储系统
CN104461390B (zh) 将数据写入叠瓦状磁记录smr硬盘的方法及装置
CN105573681B (zh) 一种ssd盘片内部raid组建方法及系统
CN107391774B (zh) 基于重复数据删除的日志文件系统的垃圾回收方法
CN102622309B (zh) 数据安全擦除方法及装置
CN103593298B (zh) 内存回收方法和装置
CN105493051A (zh) 自适应高速缓冲存储器控制器
CN109542358A (zh) 一种固态硬盘冷热数据分离方法、装置及设备
CN101645043B (zh) 写数据的方法、读数据的方法及存储设备
CN105242871A (zh) 一种数据写入方法及装置
CN105224237A (zh) 一种数据存储方法及装置
CN105159915A (zh) 可动态适应的lsm树合并方法及系统
CN103677674B (zh) 一种数据处理方法及装置
CN105745628B (zh) 一种将数据写入闪存装置的方法、闪存装置和存储系统
CN103577336A (zh) 一种存储数据处理方法及装置
CN105243027A (zh) 在存储设备中存储数据的方法和存储控制器
CN104750432B (zh) 一种数据存储方法及装置
CN104199784A (zh) 一种基于分级存储的数据迁移方法及装置
CN107273046A (zh) 一种基于固态盘阵列的数据处理方法及系统
CN105917303A (zh) 一种控制器、识别数据块稳定性的方法和存储系统
CN104375944A (zh) 一种数据存储方法和装置
CN105512049A (zh) 一种存储器数据回收方法、装置及系统
CN103176920A (zh) Nor flash掉电保护方法及装置
CN109445693A (zh) 一种数据压缩方法和装置

Legal Events

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