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

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

Info

Publication number
CN112306376B
CN112306376B CN201910708174.6A CN201910708174A CN112306376B CN 112306376 B CN112306376 B CN 112306376B CN 201910708174 A CN201910708174 A CN 201910708174A CN 112306376 B CN112306376 B CN 112306376B
Authority
CN
China
Prior art keywords
storage block
data
block
information table
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
CN201910708174.6A
Other languages
English (en)
Other versions
CN112306376A (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 CN201910708174.6A priority Critical patent/CN112306376B/zh
Publication of CN112306376A publication Critical patent/CN112306376A/zh
Application granted granted Critical
Publication of CN112306376B publication Critical patent/CN112306376B/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)
  • Memory System Of A Hierarchy Structure (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是本发明实施例四提供的又一种用户数据搬移的恢复方法的流程图;
图6是本发明实施例五提供的一种用户数据搬移的恢复装置的结构示意图;
图7为本发明实施例六提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
本实施例提供了一种用户数据搬移的恢复方法,可以由用户数据搬移的恢复装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在芯片中,例如EMMC芯片等。图1是本发明实施例一提供的一种用户数据搬移的恢复方法的流程图,具体的,参见图1,该方法包括如下步骤:
步骤110、获取第一自由存储块信息表。其中,所述第一自由存储块信息表包括每一自由存储块的类型、有效数据量以及逻辑地址,且数据搬移的目标存储块由所述第一自由存储块信息表中存储的自由存储块中选取,以及数据搬移的源存储块在搬移完成后回收到所述第一自由存储块信息表。
其中,每一存储块由多个存储页组成,每一存储页包括多个存储单元,每一存储单元按照存储容量分类可以包括单层存储单元(Single-Level Cell,SLC)和多层存储单元(Multi-level Cell,MLC)。单层存储单元为每一存储单元只能存储一个位元(one-bit percell);多层存储单元则为每一存储单元可以存储两个位元以上,例如可以是双层存储单元(two-bit per cell)、三层存储单元(three-bit per cell)、和四层存储单元(four-bitper cell)。存储块按照功能分类可以包括用户数据类型存储块或缓存类型存储块等类型,其中用户数据类型存储块即存储有用户数据的存储块,缓存类型存储块即作为缓存空间用的存储块。缓存类型存储块包括第一类型缓存存储块(T1 cache block)和第二类型缓存存储块(T2 cache block),其中T1 cache block用于缓存较小的数据量,例如逻辑地址对应实体地址的对照表、来自主机的命令;T2 cache block用于缓存较大的数据量,例如视频文件,或作为后台执行时的缓存存储块。
自由存储块为存储空间中角色自由且未被写入数据的存储块,第一自由存储块信息表可以为自由存储块链表(free block chain table)。自由存储块在结构上为多层存储单元,在使用时可以根据需要作为单层存储单元存储块或多层存储单元存储块使用,以及可以根据需要作为缓存类型存储块或用户数据类型存储块等类型使用。有效数据量可以为存储块中存储有效数据的存储页的个数,存储块在写入数据时会实时更新有效数据量。逻辑地址可以为存储块中每一存储页存储的数据对应的逻辑地址。
此外,源存储块即GC过程中需要将有效数据搬出的存储块,目标存储块即GC过程中有效数据要存入的存储块。GC的源存储块可以为用户数据类型存储块,目标存储块可以为缓存类型存储块,由于缓存类型的存储块的数据写入速度快,提高GC的速度。
步骤120、查找所述第一自由存储块信息表,确定是否存在写入数据的用户数据存储块和第一缓存存储块。其中,所述第一缓存存储块为所述第二类型缓存存储块。
具体的,GC的目标存储块由所述第一自由存储块信息表中存储的自由存储块中选取,且作为缓存类型的存储块对有效数据进行存储。当GC完成后,缓存类型的存储块会移出所述第一自由存储块信息表,存储到缓存存储表中,用户数据存储块会移入第一自由存储块信息表。因此当在第一自由存储块信息表中仅存在所述第一缓存存储块时,说明GC尚未完成。
可选的,所述第一缓存存储块为单层存储单元存储块,所述用户数据存储块为多层存储单元存储块或单层存储单元存储块。
步骤130、若所述第一自由存储块信息表中仅存在所述第一缓存存储块,则将所述第一缓存存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最少的用户数据存储块对应的逻辑地址进行比对。
其中,所述第一缓存存储块对应的逻辑地址即第一缓存存储块中每一存储有效数据的存储页对应的逻辑地址。所述用户数据存储块信息表即存储用户数据类型存储块的类型、有效数据量、逻辑地址以及物理地址等信息的存储表。
具体的,GC过程由所述用户数据存储块信息表中选取有效数据量最少的用户数据存储块进行数据搬移,每次对一个用户数据存储块进行数据搬移。GC尚未完成时,作为GC源存储块的用户数据存储块的信息依然在用户数据存储块信息表中,通过将所述第一缓存存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最少的用户数据存储块对应的逻辑地址进行比对,可以确定该用户数据存储块是否为GC的源存储块,以及该第一缓存存储块是否为GC的目标存储块。
步骤140、若存在相同的逻辑地址,则确定所述用户数据存储块为数据搬移的源存储块,所述第一缓存存储块为数据搬移的目标存储块,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移。
具体的,当存在相同的逻辑地址时,说明该用户数据存储块在断电前被选中做GC,即该用户数据存储块为源存储块,该第一缓存存储块为目标存储块。
本实施例的方案仅需通过查找第一自由存储块信息表,并根据第一自由存储块信息表中查到的写入数据的第一缓存存储块与用户数据存储块信息表中有效数据量最少的用户数据存储块对应的逻辑地址进行比对,当存在相同的逻辑地址时,确定所述用户数据存储块为数据搬移的源存储块,所述第一缓存存储块为数据搬移的目标存储块,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移。本实施例的方案数据查找量少,且数据比对量少,实现简化GC复建过程,缩短复建时间。
实施例二
本实施例以上述实施例为基础对用户数据搬移的恢复方法进行优化,图2是本发明实施例二提供的又一种用户数据搬移的恢复方法的流程图,参考图2,该方法包括如下步骤:
步骤210、获取第一自由存储块信息表。
步骤220、查找所述第一自由存储块信息表。确定是否存在写入数据的用户数据存储块和第一缓存存储块。若所述第一自由存储块信息表中仅存在第一缓存存储块则执行步骤230和步骤240。若所述第一自由存储块信息表中存在用户数据存储块则直接执行步骤250。
图3是本发明实施例二提供的一种存储块扫描示意图。参考图3,步骤220包括:
由所述第一自由存储块信息表的末尾开始依次检测每一自由存储块的信息;
若检测到的自由存储块为写入数据的存储块,则继续检测,直至检测出未被写入数据的自由存储块;
查询写入数据的自由存储块的类型,并根据所述类型确定其是否为用户数据存储块和第一缓存存储块。
具体的,GC在第一自由存储块信息表中选取目标存储块时由第一自由存储块信息表的末尾开始选取,即选择擦除次数最少(lowest wear level)的存储块,且GC完成后源存储块回收后也会先存储到第一自由存储块信息表的末尾,因此通过由第一自由存储块信息表的末尾开始依次扫描可以快速的扫描到用户数据存储块和第一缓存存储块,进一步缩短GC的复建时间。
步骤230、将所述第一缓存存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最少的用户数据存储块对应的逻辑地址进行比对。
步骤240、若存在相同的逻辑地址,则确定所述用户数据存储块为数据搬移的源存储块,所述第一缓存存储块为数据搬移的目标存储块,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移。
步骤250、将所述用户数据存储块中的数据擦除,并更新所述第一自由存储块信息表。
具体的,GC完成后,源存储块会回收到第一自由存储块信息表中,然后将存储的数据擦除,作为自由存储块使用。因此若在第一自由存储块信息表中发现用户数据类型存储块,说明GC中的数据搬移过程已经完成,且源存储块已经回收到第一自由存储块信息表,只是数据尚未擦除。则继续将用户数据存储块中的数据擦除,并更新所述第一自由存储块信息表,完成GC的完整过程。
本实施例的方案仅需通过查找第一自由存储块信息表,并当第一自由存储块信息表中查到的写入数据的用户数据存储块用户数据存储块时,将所述用户数据存储块中的数据擦除,并更新所述第一自由存储块信息表,完成GC的完整过程。本实施例的方案数据查找量少,实现了简化GC复建过程,缩短复建时间。
实施例三
本实施例以上述实施例为基础对用户数据搬移的恢复方法进行优化,图4是本发明实施例三提供的又一种用户数据搬移的恢复方法的流程图,参考图4,该方法包括如下步骤:
步骤310、获取第二自由存储块信息表。
其中,第二自由存储块信息表为自由存储块头表(free block header table)。
步骤320、查找所述第二存储块信息表,确定是否存在写入数据的第二缓存存储块,其中,所述第二缓存存储块用于对有效数据量少于设定值的所述第一缓存存储块的有效数据进行整合。
其中,第二缓存存储块为T2 cache block,由于T2 cache block的数量不能多于设定个数(例如三个),以保证缓存不会占用太大的存储空间,因此当有效数据量较少的T2cache block达到两个时,会对该两个T2 cache block进行数据整合,例如将该两个T2cache block中的有效数据搬移至一个新的T2 cache block中,删除该两个T2 cacheblock的数据,以备回收,该新的T2 cache block即第二缓存存储块的信息存储在第二自由存储块信息表中。通过查找所述第二存储块信息表,以确定是否需要对T2 cache block到T2 cache block的GC进行复建。
具体的,当不存在写入数据的第二缓存存储块时,则说明无需对T2 cache block到T2 cache block的GC进行复建。继续执行步骤330。
步骤330、获取第一自由存储块信息表。
步骤340、查找所述第一自由存储块信息表,确定是否存在写入数据的用户数据存储块和第一缓存存储块。若所述第一自由存储块信息表中仅存在第一缓存存储块则继续步骤350。若所述第一自由存储块信息表中存在用户数据存储块则直接执行步骤400。
步骤350、将所述第一缓存存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最少的用户数据存储块对应的逻辑地址进行比对。
步骤360、若存在相同的逻辑地址,则确定所述用户数据存储块为数据搬移的源存储块,所述第一缓存存储块为数据搬移的目标存储块。
步骤370、比较所述第一缓存存储块与所述用户数据存储块的最后一条有效数据的逻辑地址,判断数据搬移是否完成。若搬移未完成,则继续执行步骤380;若搬移完成,则执行步骤390。
具体的,当最后一条有效数据的逻辑地址相同时,则说明GC中数据搬移完成,则继续进行GC的后续过程,例如用户数据存储块的回收,以及将第一缓存存储块移出第一自由存储块信息表。当最有一条有效数据的逻辑地址不同时,则说明GC中数据搬移未完成,则继续执行步骤380。
步骤380、将所述用户数据存储块中的剩余有效数据搬移至所述第一缓存存储块。
步骤390、将所述用户数据存储块移入所述第一自由存储块信息表。
步骤400、将所述用户数据存储块中的数据擦除,并更新所述第一自由存储块信息表。
本实施例的方案通过查找所述第二存储块信息表,以确定是否需要对T2 cacheblock到T2 cache block的GC进行复建,避免数据丢失,且通过较所述第一缓存存储块与所述用户数据存储块的最后一条有效数据的逻辑地址,判断数据搬移是否完成,根据比较结果对数据搬移进行恢复,避免有效数据丢失。
实施例四
本实施例以上述实施例为基础对用户数据搬移的恢复方法进行优化,图5是本发明实施例四提供的又一种用户数据搬移的恢复方法的流程图,参考图5,该方法包括如下步骤:
步骤410、获取第二自由存储块信息表;
步骤420、查找所述第二存储块信息表,确定是否存在写入数据的第二缓存存储块,其中,所述第二缓存存储块用于对有效数据量少于设定值的所述第一缓存存储块的有效数据进行整合。
步骤430、获取第一自由存储块信息表。
步骤440、查找所述第一自由存储块信息表,确定是否存在写入数据的用户数据存储块和第一缓存存储块。若所述第一自由存储块信息表中仅存在第一缓存存储块则执行步骤450。若所述第一自由存储块信息表中存在用户数据存储块则直接执行步骤510。
步骤450、则将所述第一缓存存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最少的用户数据存储块对应的逻辑地址进行比对。
步骤460、若存在相同的逻辑地址,则确定所述用户数据存储块为数据搬移的源存储块,所述第一缓存存储块为数据搬移的目标存储块。
步骤470、读取所述目标存储块中最后一个有效数据存储页中的有效数据。
具体的,若读取成功,说明最后该有效数据成功写入目标存储块,若读取错误,说明该有效数据写入失败。
步骤480、若读取错误,则根据该有效数据对应的物理地址从源存储块中获取源数据,并将所述源数据写入目标存储块中所述最后一个有效数据存储页的下一存储页。若写入失败,则执行步骤490,若写入成功,则执行步骤500。
若写入成功,则说明当前目标存储块没有问题,写入下一存储页后,可以继续进行后续有效数据的搬移等操作。
步骤490、从自由存储块链表中获取一自由存储块作为新的缓存存储块,将当前的目标存储块中的所有有效数据搬移至所述新的缓存存储块,将所述新的缓存存储块作为新目标存储块。
具体的,若写入下一存储页失败,则说明当前的目标存储块可能存在问题,此时可以选择一新的目标存储块。通过判断最后一个有效数据存储页中的有效数据是否能够成功写入下一存储页,在写入失败时才启动数据搬移操作,而非在发现最后一个有效数据存储页中的有效数据读取失败时直接启动数据搬移操作,可以减小数据的擦、写或读等操作,进一步减少GC复建时间。
步骤500、继续进行数据搬移。
具体的,可以比较所述第一缓存存储块与所述用户数据存储块的最后一条有效数据的逻辑地址,判断数据搬移是否完成,并根据比较结果继续搬移过程。
步骤510、将所述用户数据存储块中的数据擦除,并更新所述第一自由存储块信息表。
可选的,将当前的目标存储块中的所有有效数据搬移至所述新的缓存存储块,将所述信息缓存存储块作为新目标存储块之后,还包括:
更新缓存存储块信息表和所述自由存储块链表。
本实施例的方案通过判断最后一个有效数据存储页中的有效数据是否能够成功写入下一存储页,在写入失败时才启动数据搬移操作,而非在发现最后一个有效数据存储页中的有效数据读取失败时直接启动数据搬移操作,可以减小数据的擦、写或读等操作,进一步减少GC复建时间。
实施例五
本实施例提供了一种用户数据搬移的恢复装置,图6是本发明实施例五提供的一种用户数据搬移的恢复装置的结构示意图,参考图6,该装置包括:
信息表获取模块610,用于获取第一自由存储块信息表,其中,所述第一自由存储块信息表包括每一自由存储块的类型、有效数据量以及逻辑地址,且数据搬移的目标存储块由所述第一自由存储块信息表中存储的自由存储块中选取,以及数据搬移的源存储块在搬移完成后回收到所述第一自由存储块信息表;
查表模块620,用于查找所述第一自由存储块信息表,确定是否存在写入数据的用户数据存储块和第一缓存存储块;其中,所述第一缓存存储块为第二类型缓存存储块。
逻辑地址比对模块630,用于若所述第一自由存储块信息表中仅存在第一缓存存储块,则将所述第一缓存存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最少的用户数据存储块对应的逻辑地址进行比对;
搬移恢复模块640,用于若存在相同的逻辑地址,则确定所述用户数据存储块为数据搬移的源存储块,所述第一缓存存储块为数据搬移的目标存储块,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移。
可选的,该装置还包括:
数据擦除模块,用于若所述第一自由存储块信息表中存在用户数据存储块,则将所述用户数据存储块中的数据擦除;
存储表更新模块,用于更新所述第一自由存储块信息表。
可选的,搬移恢复模块640包括:
比较单元,用于比较所述源存储块与所述目标存储块的最后一条有效数据的逻辑地址,判断数据搬移是否完成。
可选的,查表模块620包括:
数据量查找单元,用于由所述第一自由存储块信息表的末尾开始依次检测每一自由存储块的信息;若检测到的自由存储块为写入数据的存储块,则继续检测,直至检测出未被写入数据的自由存储块;
类型查询单元,用于查询写入数据的自由存储块的类型,并根据所述类型确定其是否为用户数据存储块和第一缓存存储块。
可选的,该装置还包括:
第二信息表获取模块,用于在查找所述第一自由存储块信息表之前,获取第二自由存储块信息表;
第二查表模块,用于查找所述第二存储块信息表,确定是否存在写入数据的第二缓存存储块,其中,所述第二缓存存储块用于对有效数据量少于设定值的所述第一缓存存储块的有效数据进行整合。
可选的,所述第一缓存存储块为单层存储单元存储块,所述用户数据存储块为多层存储单元存储块或单层存储单元存储块。
本实施例提供的用户数据搬移的恢复装置与本发明任意实施例提供的用户数据搬移的恢复方法属于相同的发明构思,具有相应的有益效果,未在本实施例详尽的技术细节,详见本发明任意实施例所述的用户数据搬移的恢复方法。
实施例六
图7为本发明实施例六提供的一种电子设备的结构示意图。图7示出了适于用来实现本发明实施方式的示例性电子设备12的框图。图7显示的电子设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如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.根据权利要求1所述的方法,其特征在于,查找所述第一自由存储块信息表,确定是否存在写入数据的用户数据存储块和第一缓存存储块,包括:
由所述第一自由存储块信息表的末尾开始依次检测每一自由存储块的信息;
若检测到的自由存储块为写入数据的存储块,则继续检测,直至检测出未被写入数据的自由存储块;
查询写入数据的自由存储块的类型,并根据所述类型确定其是否为用户数据存储块和第一缓存存储块。
5.根据权利要求1所述的方法,其特征在于,查找所述第一自由存储块信息表之前还包括:
获取第二自由存储块信息表;
查找所述第二自由存储块信息表,确定是否存在写入数据的第二缓存存储块,其中,所述第二缓存存储块用于对有效数据量少于设定值的所述第一缓存存储块的有效数据进行整合。
6.根据权利要求1所述的方法,其特征在于:
所述第一缓存存储块为单层存储单元存储块,所述用户数据存储块为多层存储单元存储块或单层存储单存储块。
7.一种用户数据搬移的恢复装置,其特征在于,包括:
信息表获取模块,用于获取第一自由存储块信息表,其中,所述第一自由存储块信息表包括每一自由存储块的类型、有效数据量以及逻辑地址,且数据搬移的目标存储块由所述第一自由存储块信息表中存储的自由存储块中选取,以及数据搬移的源存储块在搬移完成后回收到所述第一自由存储块信息表;
查表模块,用于查找所述第一自由存储块信息表,确定是否存在写入数据的用户数据存储块和第一缓存存储块;其中,所述第一缓存存储块为第二类型缓存存储块;
逻辑地址比对模块,用于若所述第一自由存储块信息表中仅存在第一缓存存储块,则将所述第一缓存存储块对应的逻辑地址与用户数据存储块信息表中有效数据量最少的用户数据存储块对应的逻辑地址进行比对;
搬移恢复模块,用于若存在相同的逻辑地址,则确定所述用户数据存储块为数据搬移的源存储块,所述第一缓存存储块为数据搬移的目标存储块,根据所述源存储块和所述目标存储块的存储数据恢复数据搬移。
8.根据权利要求7所述的装置,其特征在于,还包括:
数据擦除模块,用于若所述第一自由存储块信息表中存在用户数据存储块,则将所述用户数据存储块中的数据擦除;
存储表更新模块,用于更新所述第一自由存储块信息表。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述的用户数据搬移的恢复方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时实现如权利要求1-6中任一项所述的用户数据搬移的恢复方法。
CN201910708174.6A 2019-08-01 2019-08-01 用户数据搬移的恢复方法、装置、电子设备及存储介质 Active CN112306376B (zh)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN112306376A CN112306376A (zh) 2021-02-02
CN112306376B true CN112306376B (zh) 2024-05-17

Family

ID=74486425

Family Applications (1)

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

Country Status (1)

Country Link
CN (1) CN112306376B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030009250A (ko) * 2002-12-06 2003-01-29 김희성 플래시 메모리 동작 제어 방법 및 장치
CN104461779A (zh) * 2014-11-28 2015-03-25 华为技术有限公司 一种分布式数据的存储方法、装置及系统
CN108255739A (zh) * 2016-12-28 2018-07-06 爱思开海力士有限公司 存储器系统及其操作方法
CN109542675A (zh) * 2017-09-20 2019-03-29 爱思开海力士有限公司 存储器系统及其操作方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5183650B2 (ja) * 2010-02-17 2013-04-17 株式会社日立製作所 計算機システム,計算機システムにおけるバックアップ方法及びプログラム
JP2019074897A (ja) * 2017-10-16 2019-05-16 富士通株式会社 ストレージ制御装置、及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030009250A (ko) * 2002-12-06 2003-01-29 김희성 플래시 메모리 동작 제어 방법 및 장치
CN104461779A (zh) * 2014-11-28 2015-03-25 华为技术有限公司 一种分布式数据的存储方法、装置及系统
CN108255739A (zh) * 2016-12-28 2018-07-06 爱思开海力士有限公司 存储器系统及其操作方法
CN109542675A (zh) * 2017-09-20 2019-03-29 爱思开海力士有限公司 存储器系统及其操作方法

Also Published As

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

Similar Documents

Publication Publication Date Title
US10503606B2 (en) Data backup method, data recovery method and storage controller
US7979626B2 (en) Flash recovery employing transaction log
TWI451249B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
US10963160B2 (en) Apparatus and method for checking valid data in block capable of storing large volume data in memory system
US9921954B1 (en) Method and system for split flash memory management between host and storage controller
US11544157B2 (en) Apparatus and method for storing data in an MLC area of a memory system
US8812772B2 (en) Data merging method for non-volatile memory and controller and storage apparatus using the same
US20200349065A1 (en) Data storage devices and data processing methods
CN110543284A (zh) 存储块的垃圾回收方法及装置、电子设备和存储介质
TWI540428B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN114360612A (zh) 读取电压电平校正方法、存储器存储装置及控制电路单元
US11314653B2 (en) Memory controller
CN112306379B (zh) 数据搬移的恢复方法、装置、电子设备及存储介质
TWI521346B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
CN112306376B (zh) 用户数据搬移的恢复方法、装置、电子设备及存储介质
CN112306378B (zh) 用户数据搬移的恢复方法、装置、电子设备及存储介质
KR101756228B1 (ko) 메모리 장치
CN110825310A (zh) 存储器管理方法以及存储控制器
CN112306375B (zh) 用户数据搬移的恢复方法、装置、电子设备及存储介质
US11662940B2 (en) Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short
WO2019007315A1 (zh) 闪存设备中数据写入的方法及设备
CN112306377B (zh) 数据恢复方法、数据恢复装置、电子设备及存储介质
US20200327064A1 (en) Memory system, method of operating the same and data processing system
CN113835617A (zh) 数据处理方法及对应的数据储存装置
US11803331B2 (en) Method for recording unit management information, memory storage device and memory control circuit unit

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
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.

GR01 Patent grant
GR01 Patent grant