CN112306378B - 用户数据搬移的恢复方法、装置、电子设备及存储介质 - Google Patents

用户数据搬移的恢复方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112306378B
CN112306378B CN201910708965.9A CN201910708965A CN112306378B CN 112306378 B CN112306378 B CN 112306378B CN 201910708965 A CN201910708965 A CN 201910708965A CN 112306378 B CN112306378 B CN 112306378B
Authority
CN
China
Prior art keywords
storage block
user data
data storage
block
free
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.)
Active
Application number
CN201910708965.9A
Other languages
English (en)
Other versions
CN112306378A (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.)
Zhaoyi Innovation Technology Group Co ltd
Original Assignee
Zhaoyi Innovation Technology Group 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 Zhaoyi Innovation Technology Group Co ltd filed Critical Zhaoyi Innovation Technology Group Co ltd
Priority to CN201910708965.9A priority Critical patent/CN112306378B/zh
Publication of CN112306378A publication Critical patent/CN112306378A/zh
Application granted granted Critical
Publication of CN112306378B publication Critical patent/CN112306378B/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种用户数据搬移的恢复方法、装置、电子设备及存储介质。该方法包括:获取自由存储块链表,查找自由存储块链表,确定是否存在写入数据的第一用户数据存储块和第二用户数据存储块;若仅存在第二用户数据存储块,则将第二用户数据存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最多的第三用户数据存储块对应的逻辑地址进行比对;其中,第三用户存储块与第一用户存储块为同种类型的存储块;若存在相同的逻辑地址,则确定第三用户数据存储块为数据搬移的源存储块,第二用户数据存储块为数据搬移的目标存储块,根据源存储块和目标存储块的存储数据恢复数据搬移。本发明实施例简化了GC复建过程,缩短了复建时间。

Description

用户数据搬移的恢复方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及数据存储技术,尤其涉及一种用户数据搬移的恢复方法、装置、电子设备及存储介质。
背景技术
EMMC(Embedded Multi Media Card,嵌入式多媒体卡)是MMC协会订立的,主要针对手机或者平板电脑等产品的内嵌式存储器标准规格,带有MMC多媒体接口、快闪存储器(例如NAND flash)以及EMMC控制器。越来越多的移动设备采用EMMC芯片作为存储单元。
EMMC中用户数据存储块用于存放用户数据,例如设定当可使用的用户数据存储块只剩全部的用户数据存储块约10%,需要启动数据搬移(Garbage collection,GC)。GC主要是将用户数据存储块中的有效数据进行搬移后,擦除该有效数据及其他无效数据,并回收该用户数据存储块以供再次使用,从而提高EMMC对NAND Flash存储块的使用效率。当GC尚未完成,发生断电,再次上电时需要复建GC断电前最新的系统数据和用户数据,保证存储设备能够在上次系统最新状态基础上继续运行,不丢失系统数据和用户数据。
然而现有的GC复建过程需要大量查表以及数据比对,造成GC复建时间较长。
发明内容
本发明提供一种用户数据搬移的恢复方法、装置、电子设备及存储介质称,以实现简化GC复建过程,缩短复建时间。
第一方面,本发明实施例提供了一种用户数据搬移的恢复方法,该方法包括:
获取自由存储块链表,其中,所述自由存储块链表存储有每一自由存储块的类型、有效数据量以及逻辑地址,且数据搬移的目标存储块由所述自由存储块链表中存储的自由存储块中选取,以及数据搬移的源存储块在搬移完成后回收到所述自由存储块链表;
查找所述自由存储块链表,确定是否存在写入数据的第一用户数据存储块和第二用户数据存储块;其中,所述第一用户数据存储块的存储容量小于所述第二用户数据存储块的存储容量,所述第一用户数据存储块为第一类型用户数据存储块,所述第二用户数据存储块为第二类型用户数据存储块;
若所述自由存储块链表中仅存在第二用户数据存储块,且所述第二用户数据存储块未被写满,则将所述第二用户数据存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最多的第三用户数据存储块对应的逻辑地址进行比对;其中,所述第三用户数据存储块与所述第一用户数据存储块为同种类型的存储块;
若存在相同的逻辑地址,则确定所述第三用户数据存储块为数据搬移的源存储块,所述第二用户数据存储块为数据搬移的目标存储块,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移。
可选的,该方法还包括:
若所述自由存储块链表中同时存在第一用户数据存储块和第二用户数据存储块,则将所述第一用户数据存储块中的数据擦除,将所述第二用户数据存储块移至用户数据存储块信息表中,并更新所述自由存储块链表和所述户数据存储块信息表。
可选的,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移,包括:
比较所述源存储块与所述目标存储块中的有效数据的逻辑地址,判断数据搬移是否完成;
若未完成,则继续将所述源存储块中的有效数据搬移至所述目标存储块中。
可选的,将所述源存储块中的有效数据搬移至所述目标存储块中之后,还包括:
将所述源存储块移至所述自由存储块链表中,并将所述目标存储块移至用户数据存储块信息表中。
可选的,查找所述自由存储块链表,确定是否存在写入数据的第一用户数据存储块和第二用户数据存储块,包括:
由所述自由存储块链表的末尾开始依次检测每一存储块;
若存储块为写入数据的存储块,则继续检测,直至检测出未被写入数据的存储块;
查询写入数据的存储块的类型,并根据所述类型确定其是否为第一用户数据存储块和第二用户数据存储块。
可选的,所述第一类型用户数据存储块为单层存储单元存储块,所述第二类型用户数据存储块为多层存储单元存储块。
第二方面,本发明实施例还提供了一种用户数据搬移的恢复装置,包括:
信息表获取模块,用于获取自由存储块链表,其中,所述自由存储块链表存储有每一自由存储块的类型、有效数据量以及逻辑地址,且数据搬移的目标存储块由所述自由存储块链表中存储的自由存储块中选取,以及数据搬移的源存储块在搬移完成后回收到所述自由存储块链表;
查表模块,用于查找所述自由存储块链表,确定是否存在写入数据的第一用户数据存储块和第二用户数据存储块;其中,所述第一用户数据存储块的存储容量小于所述第二用户数据存储块的存储容量,所述第一用户数据存储块为第一类型用户数据存储块,所述第二用户数据存储块为第二类型用户数据存储块;
逻辑地址比对模块,用于若所述自由存储块链表中仅存在第二用户数据存储块,且所述第二用户数据存储块未被写满,则将所述第二用户数据存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最多的第三用户数据存储块对应的逻辑地址进行比对;其中,所述第三用户存储块与所述第一用户存储块为同种类型的存储块;
搬移恢复模块,用于若存在相同的逻辑地址,则确定所述第三用户数据存储块为数据搬移的源存储块,所述第二用户数据存储块为数据搬移的目标存储块,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移。
可选的,该装置还包括:
数据擦除模块,用于若所述自由存储块链表中同时存在第一用户数据存储块和第二用户数据存储块时,则将所述第一用户数据存储块中的数据擦除;
存储表更新模块,用于将所述第二用户数据存储块移至用户数据存储块信息表中,并更新所述自由存储块链表和所述户数据存储块信息表。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明任意实施例所述的用户数据搬移的恢复方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时实现本发明任意实施例所述的用户数据搬移的恢复方法。
本发明实施例的方案仅需通过查找自由存储块链表,并根据自由存储块链表中查到的写入数据的第二用户数据存储块与用户数据存储块信息表中有效数据量最多的第三用户数据存储块对应的逻辑地址进行比对,当存在相同的逻辑地址时,确定第三用户数据存储块为数据搬移的源存储块,第二用户数据存储块为数据搬移的目标存储块,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移。本实施例的方案数据查找量少,且数据比对量少,实现简化GC复建过程,缩短复建时间。
附图说明
图1是本发明实施例一提供的一种用户数据搬移的恢复方法的流程图;
图2是本发明实施例二提供的又一种用户数据搬移的恢复方法的流程图;
图3是本发明实施例二提供的一种存储块扫描示意图;
图4是本发明实施例三提供的一种用户数据搬移的恢复装置的结构示意图;
图5为本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
本实施例提供了一种用户数据搬移的恢复方法,可以由用户数据搬移的恢复装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在芯片中,例如EMMC芯片等。图1是本发明实施例一提供的一种用户数据搬移的恢复方法的流程图,具体的,参见图1,该方法包括如下步骤:
步骤110、获取自由存储块链表。其中,所述自由存储块链表(free block chaintable)存储有每一自由存储块的类型、有效数据量以及逻辑地址,且数据搬移的目标存储块由所述自由存储块链表中存储的自由存储块中选取,以及数据搬移的源存储块在搬移完成后回收到所述自由存储块链表。
其中,每一存储块由多个存储页组成,每一存储页包括多个存储单元,每一存储单元按照存储容量分类可以包括单层存储单元(Single-Level Cell,SLC)和多层存储单元(Multi-level Cell,MLC)。单层存储单元为每一存储单元只能存储一个位元(one-bit percell);多层存储单元则为每一存储单元可以存储两个位元以上,例如可以是双层存储单元(two-bit per cell)、三层存储单元(three-bit per cell)、和四层存储单元(four-bitper cell)。存储块按照功能分类可以包括用户数据类型存储块或缓存类型存储块等类型,其中用户数据类型存储块即存储有用户数据的存储块,缓存类型存储块即作为缓存空间用的存储块。有效数据量可以为存储块中存储有效数据的存储页的个数,存储块在写入数据时会实时更新有效数据量。逻辑地址可以为存储块中每一存储页存储的数据对应的逻辑地址。
自由存储块为存储空间中角色自由且未被写入数据的存储块,第一自由存储块信息表可以为自由存储块链表(free block chain table)。自由存储块在结构上为多层存储单元MLC存储块,在使用时可以根据需要作为单层存储单元SLC存储块或多层存储单元MLC存储块使用,以及可以根据需要作为缓存类型存储块或用户数据类型存储块等类型使用。
此外,源存储块即GC过程中需要将有效数据搬出的存储块,目标存储块即GC过程中有效数据要存入的存储块。
步骤120、查找所述自由存储块链表,确定是否存在写入数据的第一用户数据存储块和第二用户数据存储块。其中,所述第一用户数据存储块的存储容量小于所述第二用户数据存储块的存储容量,所述第一用户数据存储块为第一类型用户数据存储块,所述第二用户数据存储块为第二类型用户数据存储块。
具体的,GC的目标存储块由自由存储块链表中存储的自由存储块中选取。当GC完成后,目标存储块会移出自由存储块链表,存储到用户数据存储块信息表中,源存储块会移入自由存储块链表。因此当在自由存储块链表中仅存在目标存储块时,说明GC尚未完成。
可选的,第一用户数据存储块为单层存储单元存储块,第二用户数据存储块为多层存储单元存储块。
步骤130、若所述自由存储块链表中仅存在第二用户数据存储块,且所述第二用户数据存储块未被写满,则将所述第二用户数据存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最多的第三用户数据存储块对应的逻辑地址进行比对。其中,所述第三用户数据存储块与所述第一用户数据存储块为同种类型的存储块。
其中,第二用户数据存储块对应的逻辑地址即第二用户数据存储块中每一存储有效数据的存储页对应的逻辑地址。用户数据存储块信息表即存储用户数据类型存储块的类型、有效数据量、逻辑地址以及物理地址等信息的存储表。
具体的,GC过程由用户数据存储块信息表中选取有效数据量最多的用户数据存储块进行数据搬移,每次对至少两个用户数据存储块进行数据搬移。GC尚未完成时,作为GC源存储块的用户数据存储块的信息依然在用户数据存储块信息表中,通过将第二用户数据存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最多的用户数据存储块对应的逻辑地址进行比对,可以确定该用户数据存储块是否为GC的源存储块,以及该第三用户数据存储块是否为GC的目标存储块。
步骤140、若存在相同的逻辑地址,则确定所述第三用户数据存储块为数据搬移的源存储块,所述第二用户数据存储块为数据搬移的目标存储块,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移。
具体的,当存在相同的逻辑地址时,说明该第三用户数据存储块在断电前被选中做GC,即该第三用户数据存储块为源存储块,该第二用户数据存储块为数据搬移的目标存储块。
示例性的,可以每次选择用户数据都是全满并且全部有效的3个单层存储单元类型的用户数据存储块进行数据搬移。由自由存储块链表的中选取擦除次数最少的自由存储块作为多层存储单元类型的用户数据存储块,用作GC的目标存储块。当自由存储块链表中仅存在写入数据的多层存储单元类型的用户数据存储块,没有写入数据的单层存储单元类型的用户数据存储块时,说明GC未完成,则将多层存储单元类型的用户数据存储块对应的逻辑地址与用户数据存储块信息表中的全部写满有效数据的单层存储单元类型的用户数据存储块的逻辑地址进行比对。存在相同逻辑地址的单层存储单元类型的用户数据存储块即为GC的源存储块。
需要说明的是,本实施例仅示例性的以多层存储单元类型的用户存储块为GC的目标存储块为例进行了说明,本非对本发明的限定,在其他实施方式中,目标存储块还可以为其他类型的多层存储单元存储块。
本实施例的方案仅需通过查找自由存储块链表,并根据自由存储块链表中查到的写入数据的第二用户数据存储块与用户数据存储块信息表中有效数据量最多的第三用户数据存储块对应的逻辑地址进行比对,当存在相同的逻辑地址时,确定第三用户数据存储块为数据搬移的源存储块,第二用户数据存储块为数据搬移的目标存储块,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移。本实施例的方案数据查找量少,且数据比对量少,实现简化GC复建过程,缩短复建时间。
实施例二
本实施例以上述实施例为基础对用户数据搬移的恢复方法进行优化,图2是本发明实施例二提供的又一种用户数据搬移的恢复方法的流程图,参考图2,该方法包括如下步骤:
步骤210、获取自由存储块链表。
可选的,在步骤210之前还可以包括:
获取自由存储块头表(free block header table);
查找所述获取自由存储块头表,确定是否存在写入数据的第二缓存存储块,其中,所述第二缓存存储块用于对有效数据量少于设定值的第一缓存存储块的有效数据进行整合。
其中,缓冲类型存储块包括第一类型缓存存储块(T1 cache block)和第二类型缓存存储块(T2 cache block),其中T1 cache block用于缓存较小的数据量,例如逻辑地址对应实体地址的对照表、来自主机的命令,T2 cache block用于缓存较大的数据量,例如视频文件,或作为后台执行时的缓存存储块。第二缓存存储块和第一缓存存储块均为T2cache block,由于T2 cache block的数量不能多于设定个数(例如三个),以保证缓存不会占用太大的存储空间,因此当有效数据量较少的T2 cache block达到两个时,会对该两个T2 cache block进行数据整合,例如将该两个T2 cache block中的有效数据搬移至一个新的T2 cache block中,删除该两个T2 cache block的数据,以备回收,该新的T2 cacheblock即第二缓存存储块的信息存储在第二自由存储块信息表中。通过查找自由存储块头表,以确定是否需要对T2 cache block到T2 cache block的GC进行复建。
具体的,当不存在写入数据的第二缓存存储块时,则说明无需对T2 cache block到T2 cache block的GC进行复建。
步骤220、查找所述自由存储块链表,确定是否存在写入数据的第一用户数据存储块和第二用户数据存储块。若所述自由存储块链表中仅存在第二用户数据存储块,则继续执行步骤230-步骤260;若同时存在第一用户数据存储块和第二用户数据存储块,则直接执行步骤270。
图3是本发明实施例二提供的一种存储块扫描示意图。参考图3,步骤220包括:
由所述自由存储块链表的末尾开始依次检测每一自由存储块的信息;
若检测到的自由存储块为写入数据的存储块,则继续检测,直至检测出未被写入数据的自由存储块;
查询写入数据的自由存储块的类型,并根据所述类型确定其是否为第一用户数据存储块和第二用户数据存储块。
具体的,GC在自由存储块链表中选取目标存储块时由自由存储块链表的末尾开始选取,即选择擦除次数最少(lowest wear level)的存储块,且GC完成后源存储块回收后也会先存储到自由存储块链表的末尾,因此通过由自由存储块链表的末尾开始依次扫描可以快速的扫描到第一用户数据存储块和第二用户数据存储块,进一步缩短GC的复建时间。
步骤230、将所述第二用户数据存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最多的第三用户数据存储块对应的逻辑地址进行比对。
步骤240、若存在相同的逻辑地址,则确定所述第三用户数据存储块为数据搬移的源存储块,所述第二用户数据存储块为数据搬移的目标存储块。
步骤250、比较所述源存储块与所述目标存储块中的有效数据的逻辑地址,判断数据搬移是否完成。
具体的,可以比较源存储块与目标存储块的最后一条有效数据的逻辑地址,判断数据搬移是否完成。当最后一条有效数据的逻辑地址相同时,则说明GC中数据搬移完成,则继续进行GC的后续过程。当最有一条有效数据的逻辑地址不同时,则说明GC中数据搬移未完成。
此外,当查找的多个原存储块时,可以将每一源存储块最后一条有效数据的逻辑地址与目标存储块中有效数据的逻辑地址比较,当存储相同的逻辑地址时,则该源存储块的数据搬移完成,当某一源存储块的最后一条有效数据的逻辑地址在目标存储块中未找到时,则该源存储块的数据未搬移完成。
步骤260、若未完成,则继续将所述源存储中的有效数据搬移至所述目标存储块中。
可选的,将所述源存储中的有效数据搬移至所述目标存储块中之后,还包括:
将所述源存储块移至所述自由存储块链表中,并将所述目标存储块移至用户数据存储块信息表中。
具体的,源存储块移到自由存储块链表中供后续使用。
步骤270、将所述第一用户数据存储块中的数据擦除,将所述第二用户数据存储块移至用户数据存储块信息表中,并更新所述自由存储块链表和所述户数据存储块信息表。
具体的,GC完成后,源存储块回收到自由存储块链表中,然后将存储的数据擦除,作为自由存储块使用。因此若在自由存储块链表中发现第一用户数据存储块,说明GC中的数据搬移过程已经完成,且源存储块已经回收到自由存储块链表中,只是数据尚未擦除。则继续将第一用户数据存储块中的数据擦除,并更新所述自由存储块链表,完成GC的完整过程。其中,更新自由存储块链表包括根据自由存储块的擦除次数对自由存储块进行降序排序,即擦除次数最少的自由存储块位于自由存储块链表末尾。
本实施例的方案仅需通过查找自由存储块链表,并当自由存储块链表中同时查到写入数据的第一用户数据存储块和第二用户数据存储块时,将所述第一用户数据存储块中的数据擦除,将所述第二用户数据存储块移至用户数据存储块信息表中,并更新所述自由存储块链表和所述户数据存储块信息表,完成GC的完整过程。本实施例的方案数据查找量少,实现了简化GC复建过程,缩短复建时间。
实施例三
本实施例提供了一种用户数据搬移的恢复装置。图4是本发明实施例三提供的一种用户数据搬移的恢复装置的结构示意图,参考图4,该装置包括:
信息表获取模块310,用于获取自由存储块链表,其中,所述自由存储块链表存储有每一自由存储块的类型、有效数据量以及逻辑地址,且数据搬移的目标存储块由所述自由存储块链表中存储的自由存储块中选取,以及数据搬移的源存储块在搬移完成后回收到所述自由存储块链表;
查表模块320,用于查找所述自由存储块链表,确定是否存在写入数据的第一用户数据存储块和第二用户数据存储块;其中,所述第一用户数据存储块的存储容量小于所述第二用户数据存储块的存储容量,所述第一用户数据存储块为第一类型用户输出存储块,所述第二用户数据存储块为第二类型用户数据存储块;
逻辑地址比对模块330,用于若所述自由存储块链表中仅存在第二用户数据存储块,且所述第二用户数据存储块未被写满,则将所述第二用户数据存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最多的第三用户数据存储块对应的逻辑地址进行比对;其中,所述第三用户数据存储块与所述第一用户数据存储块为同种类型的存储块;
搬移恢复模块340,用于若存在相同的逻辑地址,则确定所述第三用户数据存储块为数据搬移的源存储块,所述第二用户数据存储块为数据搬移的目标存储块,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移。
可选的,该装置还包括:
数据擦除模块,用于若所述自由存储块链表中同时存在第一用户数据存储块和第二用户数据存储块时,则将所述第一用户数据存储块中的数据擦除;
存储表更新模块,用于将所述第二用户数据存储块移至用户数据存储块信息表中,并更新所述自由存储块链表和所述户数据存储块信息表。
可选的,搬移恢复模块340包括:
比较单元,用于比较所述源存储块与所述目标存储块中的有效数据的逻辑地址,判断数据搬移是否完成;
搬移单元,用于若未完成,则继续将所述源存储块中的有效数据搬移至所述目标存储块中。
可选的,该装置还包括:
用户数据信息表更新模块,用于将所述源存储块移至所述自由存储块链表中,并将所述目标存储块移至用户数据存储块信息表中。
可选的,查表模块320包括:
存储块检测单元,用于由所述自由存储块链表的末尾开始依次检测每一存储块;若存储块为写入数据的存储块,则继续检测,直至检测出未被写入数据的存储块;
类型查询单元,用于查询写入数据的存储块的类型,并根据所述类型确定其是否为第一用户数据存储块和第二用户数据存储块。
可选的,所述第一类型用户数据存储块为单层存储单元存储块,所述第二类型用户数据存储块为多层层存储单元存储块。
本实施例提供的用户数据搬移的恢复装置与本发明任意实施例提供的用户数据搬移的恢复方法属于相同的发明构思,具有相应的有益效果,未在本实施例详尽的技术细节,详见本发明任意实施例所述的用户数据搬移的恢复方法。
实施例四
图5为本发明实施例四提供的一种电子设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性电子设备12的框图。图5显示的电子设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如用户数据搬移的恢复装置的信息表获取模块、查表模块、逻辑地址比对模块和搬移恢复模块)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(例如用户数据搬移的恢复装置的信息表获取模块、查表模块、逻辑地址比对模块和搬移恢复模块)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的用户数据搬移的恢复方法,该方法包括:
获取自由存储块链表,其中,所述自由存储块链表存储有每一自由存储块的类型、有效数据量以及逻辑地址,且数据搬移的目标存储块由所述自由存储块链表中存储的自由存储块中选取,以及数据搬移的源存储块在搬移完成后回收到所述自由存储块链表;
查找所述自由存储块链表,确定是否存在写入数据的第一用户数据存储块和第二用户数据存储块;其中,所述第一用户数据存储块的存储容量小于所述第二用户数据存储块的存储容量,所述第一用户数据存储块为第一类型用户数据存储块,所述第二用户数据存储块为第二类型用户数据存储块;
若所述自由存储块链表中仅存在第二用户数据存储块,且所述第二用户数据存储块未被写满,则将所述第二用户数据存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最多的第三用户数据存储块对应的逻辑地址进行比对;其中,所述第三用户数据存储块与所述第一用户数据存储块为同种类型的存储块;
若存在相同的逻辑地址,则确定所述第三用户数据存储块为数据搬移的源存储块,所述第二用户数据存储块为数据搬移的目标存储块,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的用户数据搬移的恢复方法。
当然,本领域技术人员可以理解,处理器还可以实现本发明任意实施例所提供的用户数据搬移的恢复方法的技术方案。
实施例五
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的用户数据搬移的恢复方法,该方法包括:
获取自由存储块链表,其中,所述自由存储块链表存储有每一自由存储块的类型、有效数据量以及逻辑地址,且数据搬移的目标存储块由所述自由存储块链表中存储的自由存储块中选取,以及数据搬移的源存储块在搬移完成后回收到所述自由存储块链表;
查找所述自由存储块链表,确定是否存在写入数据的第一用户数据存储块和第二用户数据存储块;其中,所述第一用户数据存储块的存储容量小于所述第二用户数据存储块的存储容量,所述第一用户数据存储块为第一类型用户数据存储块,所述第二用户数据存储块为第二类型用户数据存储块;
若所述自由存储块链表中仅存在第二用户数据存储块,且所述第二用户数据存储块未被写满时,则将所述第二用户数据存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最多的第三用户数据存储块对应的逻辑地址进行比对;其中,所述第三用户数据存储块与所述第一用户数据存储块为同种类型的存储块;
若存在相同的逻辑地址,则确定所述第三用户数据存储块为数据搬移的源存储块,所述第二用户数据存储块为数据搬移的目标存储块,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移。
当然,本实施例所提供的一种计算机可读存储介质,其上存储的计算机程序不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的用户数据搬移的恢复方法中的相关操作。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整、相互结合和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种用户数据搬移的恢复方法,其特征在于,包括:
获取自由存储块链表,其中,所述自由存储块链表存储有每一自由存储块的类型、有效数据量以及逻辑地址,且数据搬移的目标存储块由所述自由存储块链表中存储的自由存储块中选取,以及数据搬移的源存储块在搬移完成后回收到所述自由存储块链表;
查找所述自由存储块链表,确定是否存在写入数据的第一用户数据存储块和第二用户数据存储块;其中,所述第一用户数据存储块的存储容量小于所述第二用户数据存储块的存储容量,所述第一用户数据存储块为第一类型用户数据存储块,所述第二用户数据存储块为第二类型用户数据存储块;
若所述自由存储块链表中仅存在第二用户数据存储块,且所述第二用户数据存储块未被写满,则将所述第二用户数据存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最多的第三用户数据存储块对应的逻辑地址进行比对;其中,所述第三用户数据存储块与所述第一用户数据存储块为同种类型的存储块;
若存在相同的逻辑地址,则确定所述第三用户数据存储块为数据搬移的源存储块,所述第二用户数据存储块为数据搬移的目标存储块,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述自由存储块链表中同时存在第一用户数据存储块和第二用户数据存储块,则将所述第一用户数据存储块中的数据擦除,将所述第二用户数据存储块移至用户数据存储块信息表中,并更新所述自由存储块链表和所述户数据存储块信息表。
3.根据权利要求1所述的方法,其特征在于,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移,包括:
比较所述源存储块与所述目标存储块中的有效数据的逻辑地址,判断数据搬移是否完成;
若未完成,则继续将所述源存储块中的有效数据搬移至所述目标存储块中。
4.根据权利要求3所述的方法,其特征在于,将所述源存储块中的有效数据搬移至所述目标存储块中之后,还包括:
将所述源存储块移至所述自由存储块链表中,并将所述目标存储块移至用户数据存储块信息表中。
5.根据权利要求1所述的方法,其特征在于,查找所述自由存储块链表,确定是否存在写入数据的第一用户数据存储块和第二用户数据存储块,包括:
由所述自由存储块链表的末尾开始依次检测每一存储块;
若存储块为写入数据的存储块,则继续检测,直至检测出未被写入数据的存储块;
查询写入数据的存储块的类型,并根据所述类型确定其是否为第一用户数据存储块和第二用户数据存储块。
6.根据权利要求1所述的方法,其特征在于:
所述第一类型用户数据存储块为单层存储单元存储块,所述第二类型用户数据存储块为多层存储单元存储块。
7.一种用户数据搬移的恢复装置,其特征在于,包括:
信息表获取模块,用于获取自由存储块链表,其中,所述自由存储块链表存储有每一自由存储块的类型、有效数据量以及逻辑地址,且数据搬移的目标存储块由所述自由存储块链表中存储的自由存储块中选取,以及数据搬移的源存储块在搬移完成后回收到所述自由存储块链表;
查表模块,用于查找所述自由存储块链表,确定是否存在写入数据的第一用户数据存储块和第二用户数据存储块;其中,所述第一用户数据存储块的存储容量小于所述第二用户数据存储块的存储容量,所述第一用户数据存储块为第一类型用户数据存储块,所述第二用户数据存储块为第二类型用户数据存储块;
逻辑地址比对模块,用于若所述自由存储块链表中仅存在第二用户数据存储块,且所述第二用户数据存储块未被写满,则将所述第二用户数据存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最多的第三用户数据存储块对应的逻辑地址进行比对;其中,所述第三用户数据存储块与所述第一用户数据存储块为同种类型的存储块;
搬移恢复模块,用于若存在相同的逻辑地址,则确定所述第三用户数据存储块为数据搬移的源存储块,所述第二用户数据存储块为数据搬移的目标存储块,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移。
8.根据权利要求7所述的装置,其特征在于,还包括:
数据擦除模块,用于若所述自由存储块链表中同时存在第一用户数据存储块和第二用户数据存储块时,则将所述第一用户数据存储块中的数据擦除;
存储表更新模块,用于将所述第二用户数据存储块移至用户数据存储块信息表中,并更新所述自由存储块链表和所述户数据存储块信息表。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述的用户数据搬移的恢复方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时实现如权利要求1-6中任一项所述的用户数据搬移的恢复方法。
CN201910708965.9A 2019-08-01 2019-08-01 用户数据搬移的恢复方法、装置、电子设备及存储介质 Active CN112306378B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910708965.9A CN112306378B (zh) 2019-08-01 2019-08-01 用户数据搬移的恢复方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910708965.9A CN112306378B (zh) 2019-08-01 2019-08-01 用户数据搬移的恢复方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112306378A CN112306378A (zh) 2021-02-02
CN112306378B true CN112306378B (zh) 2024-04-09

Family

ID=74486442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910708965.9A Active CN112306378B (zh) 2019-08-01 2019-08-01 用户数据搬移的恢复方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112306378B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102696010A (zh) * 2009-09-08 2012-09-26 弗森-艾奥公司 用于将数据高速缓存在固态存储设备上的装置、系统和方法
WO2015154617A1 (zh) * 2014-09-17 2015-10-15 中兴通讯股份有限公司 一种主机系统对虚拟机磁盘数据的动态压缩方法及装置
CN107229417A (zh) * 2016-03-25 2017-10-03 三星电子株式会社 数据存储设备及其操作方法
CN108920096A (zh) * 2018-06-06 2018-11-30 深圳忆联信息系统有限公司 一种ssd的数据储存方法、装置、计算机设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102696010A (zh) * 2009-09-08 2012-09-26 弗森-艾奥公司 用于将数据高速缓存在固态存储设备上的装置、系统和方法
WO2015154617A1 (zh) * 2014-09-17 2015-10-15 中兴通讯股份有限公司 一种主机系统对虚拟机磁盘数据的动态压缩方法及装置
CN107229417A (zh) * 2016-03-25 2017-10-03 三星电子株式会社 数据存储设备及其操作方法
CN108920096A (zh) * 2018-06-06 2018-11-30 深圳忆联信息系统有限公司 一种ssd的数据储存方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN112306378A (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
US7979626B2 (en) Flash recovery employing transaction log
US10503606B2 (en) Data backup method, data recovery method and storage controller
TWI451249B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
US9921954B1 (en) Method and system for split flash memory management between host and storage controller
CN108027764B (zh) 可转换的叶的存储器映射
US11204864B2 (en) Data storage devices and data processing methods for improving the accessing performance of the data storage devices
US20200057562A1 (en) Apparatus and method for checking valid data in block capable of storing large volume data in memory system
US8812772B2 (en) Data merging method for non-volatile memory and controller and storage apparatus using the same
US11086795B2 (en) Memory system, memory controller and operating method thereof
CN110543284A (zh) 存储块的垃圾回收方法及装置、电子设备和存储介质
TWI540428B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
KR20210024189A (ko) 마모 레벨링을 위한 바이어싱된 샘플링 방법
CN113961140A (zh) 数据处理方法及对应的数据储存装置
US20190146909A1 (en) Valid data management method and storage controller
CN113885808B (zh) 映射信息记录方法以及存储器控制电路单元与存储装置
CN114360612A (zh) 读取电压电平校正方法、存储器存储装置及控制电路单元
CN112306379B (zh) 数据搬移的恢复方法、装置、电子设备及存储介质
CN113885779A (zh) 数据处理方法及对应的数据储存装置
CN112306378B (zh) 用户数据搬移的恢复方法、装置、电子设备及存储介质
CN112306376B (zh) 用户数据搬移的恢复方法、装置、电子设备及存储介质
KR101756228B1 (ko) 메모리 장치
US20220012180A1 (en) Memory system for meta data management and operating method of memory system
CN112306375B (zh) 用户数据搬移的恢复方法、装置、电子设备及存储介质
CN112306377B (zh) 数据恢复方法、数据恢复装置、电子设备及存储介质
US20200327064A1 (en) Memory system, method of operating the same and data processing system

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
CB02 Change of applicant information

Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094

Applicant after: Zhaoyi Innovation Technology Group Co.,Ltd.

Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing

Applicant before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant